/** * {@inheritDoc} * * @see org.opencastproject.mediapackage.MediaPackageBuilder#createNew(org.opencastproject.mediapackage.identifier.Id) */ public MediaPackage createNew(Id identifier) throws MediaPackageException { return new MediaPackageImpl(identifier); }
/** * {@inheritDoc} * * @see org.opencastproject.mediapackage.MediaPackage#addDerived(org.opencastproject.mediapackage.MediaPackageElement, * org.opencastproject.mediapackage.MediaPackageElement) */ @Override public void addDerived(MediaPackageElement derivedElement, MediaPackageElement sourceElement) { addDerived(derivedElement, sourceElement, null); }
/** * @see org.opencastproject.mediapackage.MediaPackage#add(org.opencastproject.mediapackage.Catalog) */ @Override public void add(Catalog catalog) { integrateCatalog(catalog); addInternal(catalog); fireElementAdded(catalog); }
/** * @see org.opencastproject.mediapackage.MediaPackage#add(org.opencastproject.mediapackage.Track) */ @Override public void add(Track track) { integrateTrack(track); addInternal(track); fireElementAdded(track); }
/** * @see org.opencastproject.mediapackage.MediaPackage#add(org.opencastproject.mediapackage.Attachment) */ @Override public void add(Attachment attachment) { integrateAttachment(attachment); addInternal(attachment); fireElementAdded(attachment); }
/** * {@inheritDoc} * * @see org.opencastproject.mediapackage.MediaPackage#add(org.opencastproject.mediapackage.MediaPackageElement) */ @Override public void add(MediaPackageElement element) { if (element.getElementType().equals(MediaPackageElement.Type.Track) && element instanceof Track) { integrateTrack((Track) element); } else if (element.getElementType().equals(MediaPackageElement.Type.Catalog) && element instanceof Catalog) { integrateCatalog((Catalog) element); } else if (element.getElementType().equals(MediaPackageElement.Type.Attachment) && element instanceof Attachment) { integrateAttachment((Attachment) element); } else { integrate(element); } addInternal(element); fireElementAdded(element); }
/** * Integrates the attachment into the media package. This mainly involves moving the attachment into the media package * file structure. * * @param attachment * the attachment to integrate */ private void integrateAttachment(Attachment attachment) { // Check (uniqueness of) attachment identifier String id = attachment.getIdentifier(); if (id == null || contains(id)) { attachment.setIdentifier(createElementIdentifier()); } integrate(attachment); }
/** * @see org.opencastproject.mediapackage.MediaPackage#add(URI, * org.opencastproject.mediapackage.MediaPackageElement.Type, * org.opencastproject.mediapackage.MediaPackageElementFlavor) */ @Override public MediaPackageElement add(URI uri, Type type, MediaPackageElementFlavor flavor) { if (uri == null) throw new IllegalArgumentException("Argument 'url' may not be null"); if (type == null) throw new IllegalArgumentException("Argument 'type' may not be null"); if (mediaPackageElementBuilder == null) { mediaPackageElementBuilder = MediaPackageElementBuilderFactory.newInstance().newElementBuilder(); } MediaPackageElement element = mediaPackageElementBuilder.elementFromURI(uri, type, flavor); integrate(element); addInternal(element); fireElementAdded(element); return element; }
void setPublications(Publication[] publications) { List<Publication> newPublications = Arrays.asList(publications); List<Publication> oldPublications = Arrays.asList(getPublications()); for (Publication oldp : oldPublications) { if (!newPublications.contains(oldp)) { remove(oldp); } } for (Publication newp : newPublications) { if (!oldPublications.contains(newp)) { add(newp); } } }
void setCatalogs(Catalog[] catalogs) { List<Catalog> newCatalogs = Arrays.asList(catalogs); List<Catalog> oldCatalogs = Arrays.asList(getCatalogs()); // remove any catalogs not in this array for (Catalog existing : oldCatalogs) { if (!newCatalogs.contains(existing)) { remove(existing); } } for (Catalog newCatalog : newCatalogs) { if (!oldCatalogs.contains(newCatalog)) { add(newCatalog); } } }
void setAttachments(Attachment[] catalogs) { List<Attachment> newAttachments = Arrays.asList(catalogs); List<Attachment> oldAttachments = Arrays.asList(getAttachments()); // remove any catalogs not in this array for (Attachment existing : oldAttachments) { if (!newAttachments.contains(existing)) { remove(existing); } } for (Attachment newAttachment : newAttachments) { if (!oldAttachments.contains(newAttachment)) { add(newAttachment); } } }
void setTracks(Track[] tracks) { List<Track> newTracks = Arrays.asList(tracks); List<Track> oldTracks = Arrays.asList(getTracks()); // remove any catalogs not in this array for (Track existing : oldTracks) { if (!newTracks.contains(existing)) { remove(existing); } } for (Track newTrack : newTracks) { if (!oldTracks.contains(newTrack)) { add(newTrack); } } }
/** * Removes an element from the media package * * @param element * the media package element */ void removeElement(MediaPackageElement element) { removeInternal(element); fireElementRemoved(element); if (element instanceof AbstractMediaPackageElement) { ((AbstractMediaPackageElement) element).setMediaPackage(null); } }
/** * {@inheritDoc} * * @see org.opencastproject.mediapackage.MediaPackage#addDerived(org.opencastproject.mediapackage.MediaPackageElement, * org.opencastproject.mediapackage.MediaPackageElement, java.util.Map) */ @Override public void addDerived(MediaPackageElement derivedElement, MediaPackageElement sourceElement, Map<String, String> properties) { if (derivedElement == null) throw new IllegalArgumentException("The derived element is null"); if (sourceElement == null) throw new IllegalArgumentException("The source element is null"); if (!contains(sourceElement)) throw new IllegalStateException("The sourceElement needs to be part of the media package"); derivedElement.referTo(sourceElement); addInternal(derivedElement); if (properties != null) { MediaPackageReference ref = derivedElement.getReference(); for (Map.Entry<String, String> entry : properties.entrySet()) { ref.setProperty(entry.getKey(), entry.getValue()); } } }
/** * {@inheritDoc} * * @see org.opencastproject.mediapackage.MediaPackage#getAttachments(org.opencastproject.mediapackage.MediaPackageReference) */ @Override public Attachment[] getAttachments(MediaPackageReference reference) { return getAttachments(reference, false); }
/** * @see org.opencastproject.mediapackage.MediaPackage#getCatalogs(org.opencastproject.mediapackage.MediaPackageReference) */ @Override public Catalog[] getCatalogs(MediaPackageReference reference) { return getCatalogs(reference, false); }
/** * Integrates the catalog into the media package. This mainly involves moving the catalog into the media package file * structure. * * @param catalog * the catalog to integrate */ private void integrateCatalog(Catalog catalog) { // Check (uniqueness of) catalog identifier String id = catalog.getIdentifier(); if (id == null || contains(id)) { catalog.setIdentifier(createElementIdentifier()); } integrate(catalog); }
/** * {@inheritDoc} * * @see org.opencastproject.mediapackage.MediaPackage#add(java.net.URI) */ @Override public MediaPackageElement add(URI url) { if (url == null) throw new IllegalArgumentException("Argument 'url' may not be null"); if (mediaPackageElementBuilder == null) { mediaPackageElementBuilder = MediaPackageElementBuilderFactory.newInstance().newElementBuilder(); } MediaPackageElement element = mediaPackageElementBuilder.elementFromURI(url); integrate(element); addInternal(element); fireElementAdded(element); return element; }
/** * Integrates the track into the media package. This mainly involves moving the track into the media package file * structure. * * @param track * the track to integrate */ private void integrateTrack(Track track) { // Check (uniqueness of) track identifier String id = track.getIdentifier(); if (id == null || contains(id)) { track.setIdentifier(createElementIdentifier()); } duration = null; integrate(track); }
/** * {@inheritDoc} * * @see org.opencastproject.mediapackage.MediaPackageBuilder#createNew() */ public MediaPackage createNew() throws MediaPackageException { return new MediaPackageImpl(); }