import java.util.List;\r
import java.util.UUID;\r
\r
-import javax.persistence.Transient;\r
+import org.apache.commons.lang.StringUtils;\r
+import org.apache.log4j.Logger;\r
\r
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.LanguageString;\r
import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper;\r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.media.Media;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.media.MediaRepresentation;\r
+import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;\r
import eu.etaxonomy.cdm.strategy.StrategyBase;\r
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;\r
\r
-public class MediaDefaultCacheStrategy extends StrategyBase implements\r
- IIdentifiableEntityCacheStrategy<Media> {\r
+public class MediaDefaultCacheStrategy extends StrategyBase implements IIdentifiableEntityCacheStrategy<Media> {\r
+ protected static final Logger logger = Logger.getLogger(MediaDefaultCacheStrategy.class);\r
\r
final static UUID uuid = UUID.fromString("0517ae48-597d-4d6b-9f18-8752d689720d");\r
+\r
+\r
+ public static MediaDefaultCacheStrategy NewInstance() {\r
+ return new MediaDefaultCacheStrategy();\r
+ }\r
\r
@Override\r
protected UUID getUuid() {\r
- return uuid;\r
+ return uuid; \r
}\r
\r
\r
public String getTitleCache(Media media) {\r
media = (Media) HibernateProxyHelper.deproxy(media, Media.class);\r
- \r
- List<Language> languages = Arrays.asList(new Language[]{Language.DEFAULT()});\r
- LanguageString languageString = MultilanguageTextHelper.getPreferredLanguageString(media.getAllTitles(), languages);\r
- return languageString != null ? languageString.getText() : null;\r
- \r
+ return getTitleCacheByLanguage(media, Language.DEFAULT());\r
}\r
\r
public String getTitleCacheByLanguage(Media media, Language lang) {\r
+ String result;\r
List<Language> languages = Arrays.asList(new Language[]{lang});\r
LanguageString languageString = MultilanguageTextHelper.getPreferredLanguageString(media.getAllTitles(), languages);\r
- return languageString != null ? languageString.getText() : null;\r
- \r
+ result = (languageString != null ? languageString.getText() : "");\r
+ \r
+ //get first image uri\r
+ if (StringUtils.isBlank(result)){\r
+ for (MediaRepresentation mediaRepresentation : media.getRepresentations()){\r
+ for (MediaRepresentationPart part : mediaRepresentation.getParts()){\r
+ result = part.getUri();\r
+ if (StringUtils.isBlank(result)){\r
+ continue;\r
+ }\r
+ int lastSlashPos = result.lastIndexOf("/");\r
+ if (lastSlashPos != -1 && lastSlashPos + 1 < result.length()){\r
+ result = result.substring(lastSlashPos + 1);\r
+ }\r
+ break;\r
+ }\r
+ if (! StringUtils.isBlank(result)){\r
+ break;\r
+ }\r
+ }\r
+ if (StringUtils.isBlank(result)){\r
+ result = "- empty media - <" + media.getUuid() + ">";\r
+ }\r
+ }\r
+ return result;\r
}\r
\r
\r
- public static MediaDefaultCacheStrategy NewInstance() {\r
- return new MediaDefaultCacheStrategy();\r
- }\r
-\r
\r
}\r