*\r
* The contents of this file are subject to the Mozilla Public License Version 1.1\r
* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/ \r
+*/\r
\r
package eu.etaxonomy.cdm.strategy.cache.media;\r
\r
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;\r
\r
public class MediaDefaultCacheStrategy extends StrategyBase implements IIdentifiableEntityCacheStrategy<Media> {\r
- protected static final Logger logger = Logger.getLogger(MediaDefaultCacheStrategy.class);\r
+ private static final long serialVersionUID = 7246846028810250751L;\r
+\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
public static MediaDefaultCacheStrategy NewInstance() {\r
return new MediaDefaultCacheStrategy();\r
}\r
- \r
+\r
@Override\r
protected UUID getUuid() {\r
return uuid;\r
}\r
- \r
- \r
- public String getTitleCache(Media media) {\r
- media = (Media) HibernateProxyHelper.deproxy(media, Media.class);\r
+\r
+\r
+ @Override\r
+ public String getTitleCache(Media media) {\r
+ media = HibernateProxyHelper.deproxy(media, Media.class);\r
return getTitleCacheByLanguage(media, Language.DEFAULT());\r
}\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
result = (languageString != null ? languageString.getText() : "");\r
- \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
+ result = (part == null || part.getUri() == null) ? null : part.getUri().toString();\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
+ if (! StringUtils.isBlank(result)){\r
break;\r
}\r
}\r
}\r
\r
\r
- \r
+\r
}\r