/**
* true
if the object is an instance.
* @see Class#isInstance
*/
boolean isInstance(Object object);
/**
* Returns the List of the {@link Property Properties} of this type.
*
* The expression *
* type.getProperties().indexOf(property) ** yields the property's index relative to this type. * As such, these expressions are equivalent: *
* dataObject.{@link DataObject#get(int) get}(i) * dataObject.{@link DataObject#get(Property) get}((Property)dataObject.getType().getProperties().get(i)); ** * @return the Properties of the type. * @see Property#getContainingType */ List /*Property*/ getProperties(); /** * Returns from {@link #getProperties all the Properties} of this type, the one with the specified name. * As such, these expressions are equivalent: *
* dataObject.{@link DataObject#get(String) get}("name") * dataObject.{@link DataObject#get(Property) get}(dataObject.getType().getProperty("name")) ** * @return the Property with the specified name. * @see #getProperties */ Property getProperty(String propertyName); /** * Indicates if this Type specifies DataTypes (true) or DataObjects (false). * When false, any object that is an instance of this type * also implements the DataObject interface. * True for simple types such as Strings and numbers. * For any object: *
* isInstance(object) && !isDataType() implies * DataObject.class.isInstance(object) returns true. ** @return true if Type specifies DataTypes, false for DataObjects. */ boolean isDataType(); /** * Indicates if this Type allows any form of open content. If false, * dataObject.getInstanceProperties() must be the same as * dataObject.getType().getProperties() for any DataObject dataObject of this Type. * @return true if this Type allows open content. */ boolean isOpen(); /** * Indicates if this Type specifies Sequenced DataObjects. * Sequenced DataObjects are used when the order of values * between Properties must be preserved. * When true, a DataObject will return a Sequence. For example, *
* Sequence elements = dataObject.{@link DataObject#getSequence() getSequence}(); ** @return true if this Type specifies Sequenced DataObjects. */ boolean isSequenced(); /** * Indicates if this Type is abstract. If true, this Type cannot be * instantiated. Abstract types cannot be used in DataObject or * DataFactory create methods. * @return true if this Type is abstract. */ boolean isAbstract(); /** * Returns the List of base Types for this Type. The List is empty * if there are no base Types. XSD