/** * Creates a reference to the specified media package. * * @param mediaPackage * the media package to refer to */ public MediaPackageReferenceImpl(MediaPackage mediaPackage) { if (mediaPackage == null) throw new IllegalArgumentException("Parameter media package must not be null"); type = TYPE_MEDIAPACKAGE; if (mediaPackage.getIdentifier() != null) identifier = mediaPackage.getIdentifier().toString(); else identifier = SELF; properties = new HashMap<String, String>(); }
/** Replaces all elements of <code>mp</code> with <code>es</code>. Mutates <code>mp</code>. */ public static void replaceElements(MediaPackage mp, List<MediaPackageElement> es) { for (MediaPackageElement e : mp.getElements()) mp.remove(e); for (MediaPackageElement e : es) mp.add(e); }
@Override public List<MetadataValue<String>> getContributors() { return strings2MetadataValues(mp.getContributors(), "contributor"); }
/** Update a mediapackage element of a mediapackage. Mutates <code>mp</code>. */ public static void updateElement(MediaPackage mp, MediaPackageElement e) { mp.removeElementById(e.getIdentifier()); mp.add(e); }
/** * Gets a notification message with placeholders and substitute them with corresponding meta-data of workflowInstance. * The resulting String is transformed to a Json-String * * @param s The notification message to transform to Json-String * @param workflowInstance The workflowInstance which getting metadata from * @return JSON-String containing the information of the workflowInstance */ private String makeJson(String s, WorkflowInstance workflowInstance) { s = s.replace("%t", checkIfNull(workflowInstance.getTitle(), "Title")); s = s.replace("%i", String.valueOf(workflowInstance.getId())); s = s.replace("%s", String.valueOf(workflowInstance.getState())); s = s.replace("%o", String.valueOf(workflowInstance.getCurrentOperation().getId())); s = s.replace("%I", checkIfNull(workflowInstance.getMediaPackage().getIdentifier(), "Mediapackage-ID")); s = s.replace("%T", checkIfNull(workflowInstance.getMediaPackage().getTitle(), "Mediapackage-Title")); s = s.replace("%c", checkIfNull(workflowInstance.getMediaPackage().getContributors(), "Contributors")); s = s.replace("%C", checkIfNull(workflowInstance.getMediaPackage().getCreators(), "Creators")); s = s.replace("%D", checkIfNull(workflowInstance.getMediaPackage().getDate(), "Date")); s = s.replace("%d", checkIfNull(workflowInstance.getMediaPackage().getDuration(), "Duration")); s = s.replace("%l", checkIfNull(workflowInstance.getMediaPackage().getLanguage(), "Language")); s = s.replace("%L", checkIfNull(workflowInstance.getMediaPackage().getLicense(), "License")); s = s.replace("%S", checkIfNull(workflowInstance.getMediaPackage().getSeriesTitle(), "Series-Title")); JsonObject json = new JsonObject(); json.addProperty("text", s); return gson.toJson(json); }
public WorkflowOperationResult start(WorkflowInstance workflowInstance, JobContext context) throws WorkflowOperationException { MediaPackage mediaPackage = workflowInstance.getMediaPackage(); logger.info("Start timeline previews workflow operation for mediapackage {}", mediaPackage.getIdentifier().compact()); logger.info("No tracks found in mediapackage {} with specified {} {}", mediaPackage.getIdentifier().compact(), SOURCE_FLAVOR_PROPERTY, sourceFlavorProperty); sourceTrack.getIdentifier(), mediaPackage.getIdentifier().compact()); } catch (MediaPackageException | TimelinePreviewsException ex) { logger.error("Creating timeline previews job for track '{}' in media package '{}' failed with error {}", sourceTrack.getIdentifier(), mediaPackage.getIdentifier().compact(), ex.getMessage()); logger.info("Wait for timeline previews jobs for media package {}", mediaPackage.getIdentifier().compact()); if (!waitForStatus(timelinepreviewsJobs.toArray(new Job[timelinepreviewsJobs.size()])).isSuccess()) { cleanupWorkspace(timelinepreviewsJobs); throw new WorkflowOperationException( String.format("Timeline previews jobs for media package '%s' have not completed successfully", mediaPackage.getIdentifier().compact())); timelinePreviewsMpe.getURI(), mediaPackage.getIdentifier().compact()); URI timelinePreviewsWfrUri = workspace.put(mediaPackage.getIdentifier().compact(), timelinePreviewsMpe.getIdentifier(), fileName, timelinePreviewsInputStream); timelinePreviewsMpe.setURI(timelinePreviewsWfrUri); mediaPackage.add(timelinePreviewsMpe);
mp.setSeries(metadata.getSeriesIdentifier()); mp.setSeriesTitle(metadata.getSeriesTitle()); mp.setTitle(metadata.getTitle()); mp.setDate(metadata.getDate()); if (mp.getSubjects() != null) { for (String subject : mp.getSubjects()) { mp.removeSubject(subject); mp.addSubject(subject); if (mp.getContributors() != null) { for (String contributor : mp.getContributors()) { mp.removeContributor(contributor); mp.addContributor(contributor); if (mp.getCreators().length == 0 && metadata.getCreators().length > 0) { if (mp.getCreators() != null) { for (String creator : mp.getCreators()) { mp.removeCreator(creator); mp.addCreator(creator); mp.setLicense(metadata.getLicense());
if (mediaPackage.getIdentifier() != null) mpXml.setAttribute("id", mediaPackage.getIdentifier().toString()); if (mediaPackage.getDate() != null && mediaPackage.getDate().getTime() > 0) mpXml.setAttribute("start", DateTimeSupport.toUTC(mediaPackage.getDate().getTime())); if (mediaPackage.getDuration() != null) mpXml.setAttribute("duration", Long.toString(mediaPackage.getDuration())); for (MediaPackageElement e : mediaPackage.elements()) { if (e instanceof Track) tracks.add((Track) e);
MediaPackageElement[] mpes = mediaPackage.getElementsByFlavor(MediaPackageElementFlavor.parseFlavor(skipOption)); if (mpes != null && mpes.length > 0) { logger.info( job = service.startTranscription(mediaPackage.getIdentifier().compact(), track);
public MediaPackageMetadata getMetadata(MediaPackage mp) { MediapackageMetadataImpl metadata = new MediapackageMetadataImpl(); for (Catalog catalog : Stream.$(mp.getCatalogs(DublinCoreCatalog.ANY_DUBLINCORE)).sort(COMPARE_BY_FLAVOR)) { DublinCoreCatalog dc = DublinCoreUtil.loadDublinCore(workspace, catalog); if (MediaPackageElements.EPISODE.equals(catalog.getFlavor())) { } else { logger.debug("Excluding unknown catalog flavor '{}' from the top level metadata of mediapackage '{}'", catalog.getFlavor(), mp.getIdentifier());
for (MediaPackageElement e : src.elements()) { if (dest.getElementById(e.getIdentifier()) == null) dest.add(e); else { if (MergeMode.Replace == mode) { logger.debug("Replacing element " + e.getIdentifier() + " while merging " + dest + " with " + src); dest.remove(dest.getElementById(e.getIdentifier())); dest.add(e); } else if (MergeMode.Skip == mode) { logger.debug("Skipping element " + e.getIdentifier() + " while merging " + dest + " with " + src); logger.debug("Renaming element " + e.getIdentifier() + " while merging " + dest + " with " + src); e.setIdentifier(null); dest.add(e); } else if (MergeMode.Fail == mode) { throw new MediaPackageException("Target media package " + dest + " already contains element with id "
@Override public List<MetadataValue<String>> getCreators() { return strings2MetadataValues(mp.getCreators(), "creator"); }
@Override public Option<Long> getExtent() { return option(mp.getDuration()); }
MediaPackageElement original = service.getGeneratedTranscription(mediaPackage.getIdentifier().compact(), jobId); MediaPackageElement transcription = original; mediaPackage.add(transcription); transcription.setURI(workspace.moveTo(transcription.getURI(), mediaPackage.getIdentifier().toString(), transcription.getIdentifier(), "captions." + ext)); } catch (Exception e) {
@Override public String apply(MediaPackage mp) { return mp.getIdentifier().toString(); } };
if (!waitForStatus(waveformJobs.toArray(new Job[waveformJobs.size()])).isSuccess()) { throw new WorkflowOperationException(String.format("Waveform extraction jobs for media package '%s' have not completed successfully", mediaPackage.getIdentifier())); try { waveformMpe = MediaPackageElementParser.getFromXml(jobPayload); URI newURI = workspace.moveTo(waveformMpe.getURI(), mediaPackage.getIdentifier().toString(), waveformMpe.getIdentifier(), "waveform.png"); waveformMpe.setURI(newURI); waveformMpe.addTag(tag); mediaPackage.add(waveformMpe); workspace.cleanup(mediaPackage.getIdentifier(), true); } catch (IOException e) { throw new WorkflowOperationException(e);
/** * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (obj instanceof MediaPackage) { return getIdentifier().equals(((MediaPackage) obj).getIdentifier()); } return false; }
@Override public Option<String> getId() { return option(mp.getIdentifier().toString()); }