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 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,