Collection contentVersions = content.getContentVersions();
Iterator versionIterator = contentVersions.iterator();
while(versionIterator.hasNext())
{
ContentVersion contentVersionCandidate = (ContentVersion)versionIterator.next();
ContentVersion lastVersionInThatLanguage = (ContentVersion)lastLanguageVersions.get(contentVersionCandidate.getLanguage().getId());
if(lastVersionInThatLanguage == null || (lastVersionInThatLanguage.getId().intValue() < contentVersionCandidate.getId().intValue() && contentVersionCandidate.getIsActive().booleanValue()))
lastLanguageVersions.put(contentVersionCandidate.getLanguage().getId(), contentVersionCandidate);
if(contentVersionCandidate.getIsActive().booleanValue() && contentVersionCandidate.getStateId().intValue() == stateId.intValue())
{
if(contentVersionCandidate.getOwningContent().getContentId().intValue() == content.getId().intValue())
{
ContentVersion versionInThatLanguage = (ContentVersion)languageVersions.get(contentVersionCandidate.getLanguage().getId());
if(versionInThatLanguage == null || versionInThatLanguage.getContentVersionId().intValue() < contentVersionCandidate.getId().intValue())
{
languageVersions.put(contentVersionCandidate.getLanguage().getId(), contentVersionCandidate);
}
}
}
}
logger.info("Found languageVersions:" + languageVersions.size());
logger.info("Found lastLanguageVersions:" + lastLanguageVersions.size());
Iterator i = languageVersions.values().iterator();
while(i.hasNext())
{
ContentVersion contentVersion = (ContentVersion)i.next();
ContentVersion lastVersionInThatLanguage = (ContentVersion)lastLanguageVersions.get(contentVersion.getLanguage().getId());
logger.info("contentVersion:" + contentVersion.getId());
logger.info("lastVersionInThatLanguage:" + lastVersionInThatLanguage.getId());
if(contentVersion == lastVersionInThatLanguage)
resultList.add(contentVersion.getValueObject());
}