/**
*
*/
package de.fhkoeln.cosima.media;
import java.util.HashMap;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
/**
* <!-- begin-UML-doc -->
* <!-- end-UML-doc -->
* @author user
* @generated "UML to Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public class AbstractMedia {
public Map<MetadataKeys, Metadata> metadata;
private String uri;
public AbstractMedia(String uri) {
setUri(uri);
this.metadata = new HashMap<MetadataKeys, Metadata>();
}
public Set<MetadataKeys> getListOfMetadataKeys() {
return this.metadata.keySet();
}
public void addMetadata(Metadata metadata) {
this.metadata.put(metadata.getKey(), metadata);
}
public Metadata getMetadata(MetadataKeys key) {
if(this.metadata.containsKey(key)) {
return this.metadata.get(key);
} else {
throw new NoSuchElementException("This Media Object does not have any metadata for key: '" + key + "'.");
}
}
/**
* @return The URI of this AbstractMedia Object
*/
public String getUri() {
return this.uri;
}
private void setMediaIO(MediaIO mediaIO) {
}
/**
* Private Setter for the URI of this AbstractMedia Object. It is a
* setter to allow encapsulation of URI pre-verification.
*
* @param uri - The URI to set
*/
private void setUri(String uri) {
this.uri = uri;
}
}