From: Patric Plitzner
Date: Thu, 21 Aug 2014 07:52:52 +0000 (+0000)
Subject: - generalized simple user interface to add media (#3339)
X-Git-Tag: cdmlib-parent-3.3.7~19
X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/commitdiff_plain/04e1aa91589471a15266500da5ed523e7db30802
- generalized simple user interface to add media (#3339)
---
diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaUtils.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaUtils.java
index 30d26c1d1c..988e289c6b 100644
--- a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaUtils.java
+++ b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaUtils.java
@@ -31,18 +31,49 @@ public class MediaUtils {
public static MediaRepresentation findBestMatchingRepresentation(Media media, Class extends MediaRepresentationPart> representationPartType, Integer size, Integer height, Integer widthOrDuration, String[] mimeTypes){
// find best matching representations of each media
SortedMap prefRepresentations
- = filterAndOrderMediaRepresentations(media.getRepresentations(), null, mimeTypes, size, widthOrDuration, height);
- try {
- // take first one and remove all other representations
- MediaRepresentation prefOne = prefRepresentations.get(prefRepresentations.firstKey());
+ = filterAndOrderMediaRepresentations(media.getRepresentations(), null, mimeTypes, size, widthOrDuration, height);
+ try {
+ // take first one and remove all other representations
+ MediaRepresentation prefOne = prefRepresentations.get(prefRepresentations.firstKey());
- return prefOne;
+ return prefOne;
- } catch (NoSuchElementException nse) {
- /* IGNORE */
+ } catch (NoSuchElementException nse) {
+ /* IGNORE */
+ }
+ return null;
+ }
+
+ /**
+ * Creates one single {@link MediaRepresentationPart} for the given {@link Media}
+ * if it does not already exists. Otherwise the first part found is returned.
+ * @param media the media for which the representation part should be created
+ * @return the first or newly created representation part
+ */
+ public static MediaRepresentationPart initFirstMediaRepresentationPart(Media media) {
+ MediaRepresentationPart mediaRepresentationPart;
+ Set representations = media.getRepresentations();
+ if(representations!=null && representations.size()>0){
+ MediaRepresentation mediaRepresentation = representations.iterator().next();
+ List parts = mediaRepresentation.getParts();
+ if(parts!=null && parts.size()>0){
+ mediaRepresentationPart = parts.iterator().next();
+ }
+ else{
+ mediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);
+ mediaRepresentation.addRepresentationPart(mediaRepresentationPart);
}
- return null;
}
+ else{
+ mediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);
+
+ MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance();
+ mediaRepresentation.addRepresentationPart(mediaRepresentationPart);
+ media.addRepresentation(mediaRepresentation);
+ }
+ return mediaRepresentationPart;
+ }
+
/**
* Filters the given List of Media by the supplied filter parameters representationPartType
,