@MediaClass(uuid1=218169601, uuid2=257, uuid3=256, uuid4={6,14,43,52,2,6,1,1}, definedName="InterchangeObject", description="The InterchangeObject class is a root class. All classes defined in an AAF file shall be sub-classes of InterchangeObject with the exception of the MetaDefinition classes defined by this document.", symbol="InterchangeObject", namespace="http://www.smpte-ra.org/schemas/2001-2/2007/aaf", prefix="aaf", aliases="AAFObject", isConcrete=false) public class InterchangeObjectImpl extends Object implements InterchangeObject, Serializable, Cloneable
Implements the root class for all AAF persistent classes. All classes defined in an AAF file shall be sub-classes of interchange object with the exception of the meta definition classes.
| Modifier and Type | Field and Description |
|---|---|
static AUID |
ObjectClassPropertyID |
| Constructor and Description |
|---|
InterchangeObjectImpl() |
| Modifier and Type | Method and Description |
|---|---|
void |
addApplicationPlugin(ApplicationPluginObject applicationPlugin)
Add an application metadata plugin
so as to this object to enhance its application-specific description.
|
void |
appendXMLChildren(Node parent) |
void |
clearApplicationPlugins()
Clear the set of application metadata plugins, omitting the optional property.
|
InterchangeObject |
clone()
Create a cloned copy of this interchange object.
|
boolean |
containsApplicationPlugin(ApplicationPluginObject applicationPlugin)
Determines whether the given application metadata plugin
instance is attached to this interchange object.
|
boolean |
containsApplicationPlugin(AUID applicationPluginInstanceID)
Determines whether the given identifier for a
application metadata plugin instance is attached to
this interchange object.
|
int |
countApplicationPlugins()
Returns the number of application metadata plugins attached
to this interchange object.
|
boolean |
deepEquals(Object o)
Tests if this interchangeable object is equal to the given object by
comparing every property and the properties of any referenced values.
|
void |
disableGenerationTracking()
Calling this method will cause generation tracking to be disabled
for the object.
|
void |
enableGenerationTracking()
Calling this method will cause generation tracking to be enabled
for the object.
|
boolean |
equals(Object o)
Tests if this interchangeable object is equal to the given object by
comparing unique identifiers where available, or property-by-property if not.
|
Set<ApplicationPluginObject> |
getApplicationPlugins()
Returns the set of application metadata plugins
attached to this interchange object, where each attached object contains application-specific
description.
|
String |
getComment() |
Identification |
getGeneration()
Gets the generation of this object, which identifies when this object was created
or last modified.
|
AUID |
getLinkedGenerationID()
Shortcut to get the AUID of the identification
representing this object's generation.
|
String |
getLinkedGenerationIDString() |
ClassDefinition |
getObjectClass()
Returns the class definition that identifies the class
of this interchange object.
|
Long |
getPersistentID()
Returns the persistent identifier for this media entity.
|
int |
getPersistentIndex() |
int |
hashCode() |
boolean |
isGenerationTracked()
Returns
true if generations are being tracked by
the object. |
boolean |
removeApplicationPlugin(ApplicationPluginObject applicationPlugin)
Remove the given application metadata plugin from the set
of application plugins attached to this interchange object.
|
boolean |
removeApplicationPlugin(AUID applicationPluginInstanceID)
Remove the application metadata plugin with the given
identifier from the set of application plugins attached to this interchange object.
|
void |
setLinkedGenerationID(AUID linkedGenerationID)
Sets the linked generation identification for this object that represents this
object's generation.
|
void |
setLinkedGenerationIDString(String linkedGenerationID) |
void |
setObjectClass(ClassDefinition objectClass)
Sets the class definition that identifies the class
of this interchange object.
|
void |
setPersistentID(Long persistentID) |
void |
setPersistentIndex(int index)
If the media entity is an element of a strong reference vector, set the index of
that element in the vector just before the value is persisted.
|
String |
toString()
Provides an XML representation of this value.
|
public static final AUID ObjectClassPropertyID
public void disableGenerationTracking()
InterchangeObjectCalling this method will cause generation tracking to be disabled
for the object. Generation information will then not be
available through the InterchangeObject.getGeneration() and
InterchangeObject.getLinkedGenerationID() methods.
Calling the InterchangeObject.enableGenerationTracking() method will enable
generation tracking for this object.
Generation tracking is disabled by default.
disableGenerationTracking in interface InterchangeObjectpublic void enableGenerationTracking()
InterchangeObjectCalling this method will cause generation tracking to be enabled
for the object. Generation information will then be available
through the InterchangeObject.getGeneration() and InterchangeObject.getLinkedGenerationID()
methods.
Calling the InterchangeObject.disableGenerationTracking() method will disable
generation tracking for this object.
Generation tracking is disabled by default.
enableGenerationTracking in interface InterchangeObject@MediaProperty(uuid1=100729092, uuid2=257, uuid3=0, uuid4={6,14,43,52,1,1,1,2}, definedName="ObjectClass", aliases="ObjClass", typeName="ClassDefinitionWeakReference", optional=false, uniqueIdentifier=false, pid=257, symbol="ObjectClass") public ClassDefinition getObjectClass()
InterchangeObjectReturns the class definition that identifies the class of this interchange object.
getObjectClass in interface InterchangeObjectMediaEngine.getClassDefinition(tv.amwa.maj.industry.MetadataObject),
TypeDefinitions.ClassDefinitionWeakReference@MediaPropertySetter(value="ObjectClass") public void setObjectClass(ClassDefinition objectClass)
InterchangeObjectSets the class definition that identifies the class of this interchange object.
Setting this property used by application metadata plugins to indicate the defined class of an extension to this class. In this case, the base class property can be used to hold the identifier of this class.
setObjectClass in interface InterchangeObjectobjectClass - Class definition that describes this object instance.ExtensionScheme.getMetaDefinitions(),
ApplicationObject.getBaseClass()public Identification getGeneration() throws InvalidParameterException, ObjectNotAttachedException
InterchangeObjectGets the generation of this object, which identifies when this object was created or last modified.
This method will succeed if generation tracking is enabled for
this object. Call InterchangeObject.enableGenerationTracking() and
InterchangeObject.disableGenerationTracking() to control generation tracking for
this object. Call InterchangeObject.isGenerationTracked() to determine if
generation tracking is currently enabled for this object.
getGeneration in interface InterchangeObjectInvalidParameterException - Generation tracking is not enabled
for this object.ObjectNotAttachedException - This object is not attached to a file
from which generation information can be obtained.@MediaProperty(uuid1=85985025, uuid2=2048, uuid3=0, uuid4={6,14,43,52,1,1,1,2}, definedName="LinkedGenerationID", aliases="Generation", typeName="AUID", optional=true, uniqueIdentifier=false, pid=258, symbol="LinkedGenerationID") public AUID getLinkedGenerationID() throws PropertyNotPresentException, ObjectNotAttachedException
InterchangeObjectShortcut to get the AUID of the identification representing this object's generation.
This method will succeed if generation tracking is enabled for
this object. Call InterchangeObject.enableGenerationTracking() and
InterchangeObject.disableGenerationTracking() to control generation tracking for
this object. Call InterchangeObject.isGenerationTracked() to determine if
generation tracking is currently enabled for this object.
getLinkedGenerationID in interface InterchangeObjectObjectNotAttachedException - This object is not attached to a file
from which generation information can be obtained.PropertyNotPresentExceptionInterchangeObject.getGeneration(),
InterchangeObject.getLinkedGenerationID()@MediaPropertySetter(value="LinkedGenerationID") public void setLinkedGenerationID(AUID linkedGenerationID)
InterchangeObjectSets the linked generation identification for this object that represents this object's generation. In a file, all objects added or modified at the same time have the same generation identification and that generation is described by an identification.
Passing a null value into to this method will omit the linked
generation property and disable generation tracking. Passing in a nil value will
indicate that this object is not attached to a file where its identification can
be resolved. Passing in a non-nil value will enable generation tracking and
a means to resolve the identification should be provided.
setLinkedGenerationID in interface InterchangeObjectlinkedGenerationID - Linked generation identification for this interchangeable
object.InterchangeObject.getLinkedGenerationID(),
InterchangeObject.getGeneration(),
InterchangeObject.getLinkedGenerationID(),
Preface.getIdentifications()public boolean isGenerationTracked()
InterchangeObjectReturns true if generations are being tracked by
the object. A value of true indicates that generation
information will be available through the InterchangeObject.getGeneration()
and InterchangeObject.getLinkedGenerationID() methods.
Calling the InterchangeObject.enableGenerationTracking() method will enable
generation tracking for this object; calling the
InterchangeObject.disableGenerationTracking() method will disable generation
tracking for this object.
Generation tracking is disabled by default.
isGenerationTracked in interface InterchangeObjectInterchangeObject.enableGenerationTracking(),
InterchangeObject.disableGenerationTracking()@MediaProperty(uuid1=100729092, uuid2=526, uuid3=0, uuid4={6,14,43,52,1,1,1,12}, definedName="ApplicationPlugins", aliases={"ApplicationPlugIns","ApplicationPlug-InBatch","ApplicationPlug-In Batch"}, typeName="ApplicationPluginObjectStrongReferenceSet", pid=0, symbol="ApplicationPlugins", optional=true, uniqueIdentifier=false, description="Set of application metadata plugins attached to this interchange object, where each attached object contains application-specific description.") public Set<ApplicationPluginObject> getApplicationPlugins() throws PropertyNotPresentException
InterchangeObjectReturns the set of application metadata plugins attached to this interchange object, where each attached object contains application-specific description. This is an optional property.
getApplicationPlugins in interface InterchangeObjectPropertyNotPresentException - The optional application plugins
extension is not present for this interchange object.Root.getRootExtensions(),
ApplicationPluginObject.getApplicationScheme()@MediaSetAdd(value="ApplicationPlugins") public void addApplicationPlugin(ApplicationPluginObject applicationPlugin) throws NullPointerException
InterchangeObjectAdd an application metadata plugin so as to this object to enhance its application-specific description.
addApplicationPlugin in interface InterchangeObjectapplicationPlugin - Application plugin object to add to the set
of application plugins.NullPointerException - Cannot add a null application plugin
object to the set of plugins.InterchangeObject.getApplicationPlugins()@MediaPropertyContains(value="ApplicationPlugins") public boolean containsApplicationPlugin(ApplicationPluginObject applicationPlugin) throws NullPointerException
InterchangeObjectDetermines whether the given application metadata plugin instance is attached to this interchange object.
containsApplicationPlugin in interface InterchangeObjectapplicationPlugin - Application plugin object to check for.NullPointerException - Cannot check for attachment using a null value.InterchangeObject.containsApplicationPlugin(AUID),
InterchangeObject.getApplicationPlugins()public boolean containsApplicationPlugin(AUID applicationPluginInstanceID) throws NullPointerException
InterchangeObjectDetermines whether the given identifier for a application metadata plugin instance is attached to this interchange object.
containsApplicationPlugin in interface InterchangeObjectapplicationPluginInstanceID - Identifier for the application plugin object to check for.NullPointerException - Cannot check for attachment using a null value for an
identifier.InterchangeObject.containsApplicationPlugin(ApplicationPluginObject),
InterchangeObject.getApplicationPlugins()@MediaPropertyClear(value="ApplicationPlugins") public void clearApplicationPlugins()
InterchangeObjectClear the set of application metadata plugins, omitting the optional property.
clearApplicationPlugins in interface InterchangeObjectInterchangeObject.getApplicationPlugins()@MediaPropertyCount(value="ApplicationPlugins") public int countApplicationPlugins()
InterchangeObjectReturns the number of application metadata plugins attached to this interchange object.
countApplicationPlugins in interface InterchangeObjectInterchangeObject.getApplicationPlugins()@MediaPropertyRemove(value="ApplicationPlugins") public boolean removeApplicationPlugin(ApplicationPluginObject applicationPlugin) throws NullPointerException
InterchangeObjectRemove the given application metadata plugin from the set of application plugins attached to this interchange object.
removeApplicationPlugin in interface InterchangeObjectapplicationPlugin - Application plugin object to remove.false is
returned if the plugin object was not already attached.NullPointerException - Cannot remove an application metadata plugin object using a null
value.InterchangeObject.getApplicationPlugins()public boolean removeApplicationPlugin(AUID applicationPluginInstanceID) throws NullPointerException
InterchangeObjectRemove the application metadata plugin with the given identifier from the set of application plugins attached to this interchange object.
removeApplicationPlugin in interface InterchangeObjectapplicationPluginInstanceID - Identifier of this application plugin object to remove.false is
returned if the plugin object was not already attached.NullPointerException - Cannot remove an application metadata plugin object using a null
identifier.InterchangeObject.getApplicationPlugins()public final String toString()
InterchangeObjectProvides an XML representation of this value. This value is useful for debugging and understanding the internal structure of an item of media.
Note that this interface does not guarantee to provide valid XML. Use
XMLBuilder.toXML(tv.amwa.maj.industry.MetadataObject) for this.
toString in interface InterchangeObjecttoString in class ObjectXMLBuilder.toXML(tv.amwa.maj.industry.MetadataObject),
MediaEngine.toString(tv.amwa.maj.industry.MetadataObject)public boolean equals(Object o)
InterchangeObjectTests if this interchangeable object is equal to the given object by comparing unique identifiers where available, or property-by-property if not. Two objects are equal if and only if the following conditions are all met:
null;Object.equals(Object);For a property-by-property comparison of each value, use InterchangeObject.deepEquals(Object).
equals in interface InterchangeObjectequals in class Objecto - Object to test equality with this one.InterchangeObject.deepEquals(Object),
MediaEngine.equals(tv.amwa.maj.industry.MetadataObject, Object),
Object.equals(Object)public boolean deepEquals(Object o)
InterchangeObjectTests if this interchangeable object is equal to the given object by comparing every property and the properties of any referenced values. Two objects are equal if and only if the following conditions are all met:
null;The main difference between this method and InterchangeObject.equals(Object) is that this
method compares every property, even when a unique identifier is provided.
deepEquals in interface InterchangeObjecto - Object to test deep equality with this one.InterchangeObject.equals(Object),
MediaEngine.deepEquals(tv.amwa.maj.industry.MetadataObject, Object)public InterchangeObject clone()
InterchangeObjectCreate a cloned copy of this interchange object.
clone in interface MediaEntityclone in interface InterchangeObjectclone in class Objectpublic void appendXMLChildren(Node parent)
public String getComment()
public Long getPersistentID()
MediaEntityReturns the persistent identifier for this media entity. This will be automatically generated by the persistence provider when the object is persisted for the first time. Before this, the identifier will be null.
getPersistentID in interface MediaEntitypublic void setPersistentID(Long persistentID)
public int getPersistentIndex()
public void setPersistentIndex(int index)
MediaEntityIf the media entity is an element of a strong reference vector, set the index of that element in the vector just before the value is persisted. When the value is retrieved, the index will be used to restore the item to the correct position in its list. This is required to overcome a shortcoming of the Java Persistence API when persisting ordered collections.
setPersistentIndex in interface MediaEntityindex - Index of the entity within the list that contains it.public String getLinkedGenerationIDString()
public void setLinkedGenerationIDString(String linkedGenerationID)
(c)2007-2016 Richard Cartwright, all rights reserved. Licensed under Apache 2 license and subject to the AMWA IPR policy.