public final class Metadata
extends java.lang.Object
| Modifier and Type | Method and Description | 
|---|---|
| java.util.Collection<java.lang.Class<? extends DBObject>> | getAllDBObjectClasses()Gets all DBObject classes that are registered with the metadata (that
 is, those that have an associated type String). | 
| java.util.Collection<java.lang.String> | getAllTypes(java.lang.Class<? extends DBObject> clz)Gets all the valid DBObject types for the given class, including all
 subclasses and implementations. | 
| java.util.Map<java.lang.String,java.lang.Class<? extends DBObject>> | getDBObjectClasses()The returned map contains a mapping of DBObject types to their declaring
 DBObject subclasses. | 
| static Metadata | getInstance()Gets the metadata for the database API. | 
| java.lang.Class<? extends DBObject> | getObjectClass(java.lang.String type)Gets the DBObject class that corresponds to the given object type. | 
| java.util.Collection<java.lang.Class<? extends DBObject>> | getOwnerClasses(java.lang.Class<? extends DBObject> childClz)Gets the classes of all objects that can own a child of the given
 class. | 
| java.util.Collection<java.lang.String> | getOwnerTypes(java.lang.String childType)Gets the object types of all objects that can own a child of the given
 type. | 
| java.util.Collection<java.lang.String> | getSupportedProperties(java.lang.Class<?> objClz,
                      java.lang.Class<? extends DBObjectProvider> proClz) | 
| java.util.Collection<java.lang.String> | getSupportedProperties(java.lang.Class<?> objClz,
                      java.lang.Class<? extends DBObjectProvider> proClz,
                      boolean incBean,
                      boolean incExtra) | 
| static java.lang.String | getType(java.lang.Class<? extends DBObject> objClass)Returns the type defined for the given object class. | 
| boolean | hasSupportedProperty(java.lang.Class<?> objClz,
                    java.lang.Class<? extends DBObjectProvider> proClz,
                    java.util.function.Predicate<PropertyInfo> predicate)Checks whether any property matches the given criteria. | 
| boolean | isBeanProperty(java.lang.Class<? extends DBObject> clz,
              java.lang.String propName)Tests whether a given property is a bean property (i.e. | 
| static boolean | isRealBean(java.lang.Class<?> clz)Tests whether the given bean class is a concrete bean - i.e. | 
| boolean | isSchemaObject(java.lang.String type)Returns true if the given DBObject type represents a SchemaObject. | 
| boolean | isStaticReferenceProperty(java.lang.String propName)Tests whether the given property name is a static reference property, i.e. | 
| boolean | isTypeOf(java.lang.Class<? extends DBObject> clz,
        java.lang.String type)Tests whether the given object type corresponds to a subclass of the given
 object class. | 
| DBObject | newDBObject(java.lang.String type,
           java.lang.String name)Creates a new DBObject of given type, and sets it up with a name. | 
| DBObject | newInstance(java.lang.String type)Creates a new instance of a DBObject of the given type. | 
| void | registerBooleanProperty(java.lang.String name,
                       Nullable.NullBehaviour nullBehaviour,
                       java.lang.Class<? extends DBObjectProvider> providerType,
                       java.lang.Class<? extends DBObject>... objectTypes)Registers a new Boolean property in the APIs metadata for a given
 object class and provider. | 
| void | registerIDProperty(java.lang.String name,
                  boolean staticReference,
                  java.lang.Class<? extends DBObject> referencedClass,
                  java.lang.String[] referencedTypes,
                  java.lang.Class<? extends DBObjectProvider> providerType,
                  java.lang.Class<? extends DBObject>... objectTypes)Registers a new property in the APIs metadata that has a return type of
 DBObjectID. | 
| void | registerIDProperty(java.lang.String name,
                  boolean staticReference,
                  java.lang.Class<? extends DBObjectProvider> providerType,
                  java.lang.Class<? extends DBObject>... objectTypes)Registers a new property in the APIs metadata that has a return type of
 DBObjectID. | 
| void | registerObjectClass(java.lang.String type,
                   java.lang.Class<? extends DBObject> clz)Registers a new object type with its corresponding DBObject
 implementation. | 
| void | registerObjectClass(java.lang.String type,
                   Thunk<java.lang.Class<? extends DBObject>> clzThunk)Registers a new object type with its corresponding DBObject
 implementation. | 
| void | registerProperties(java.lang.Iterable<? extends PropertyInfo> infos)Registers extra properties into the API metadata. | 
| void | registerProperty(PropertyInfo info)Registers an extra property into the API metadata. | 
| void | registerProperty(java.lang.String name,
                java.lang.Class returnType,
                java.lang.Class<? extends DBObjectProvider> providerType,
                java.lang.Class<? extends DBObject>... objectTypes)Registers a new property in the APIs metadata for a given object class and
 provider. | 
| void | registerStringProperty(java.lang.String name,
                      boolean isMultiLine,
                      java.lang.Class<? extends DBObjectProvider> providerType,
                      java.lang.Class<? extends DBObject>... objectTypes)Registers a new property in the APIs metadata that has a return type of
 String. | 
public static Metadata getInstance()
public java.util.Collection<java.lang.Class<? extends DBObject>> getAllDBObjectClasses()
public java.util.Map<java.lang.String,java.lang.Class<? extends DBObject>> getDBObjectClasses()
public boolean isSchemaObject(java.lang.String type)
isTypeOf( SchemaObject.class, type )public boolean isTypeOf(java.lang.Class<? extends DBObject> clz, java.lang.String type)
boolean isRelation = Metadata.getInstance().isTypeOf( Relation.class, type );
clz - the class to query (e.g. SystemObject.class)type - the database object type (e.g. Table.TYPE )public DBObject newDBObject(java.lang.String type, java.lang.String name)
type - the type of object to createname - the name to give the object (optional)public java.lang.Class<? extends DBObject> getObjectClass(java.lang.String type)
type - the object type to lookuppublic void registerObjectClass(java.lang.String type,
                                Thunk<java.lang.Class<? extends DBObject>> clzThunk)
public void registerObjectClass(java.lang.String type,
                                java.lang.Class<? extends DBObject> clz)
public java.util.Collection<java.lang.String> getAllTypes(java.lang.Class<? extends DBObject> clz)
public DBObject newInstance(java.lang.String type)
null if a new instance cannot be instantiated - for example
 some types are defined at the interface level and therefore cannot be
 instantiated.type - the object type required ( e.g. "TABLE" )@Deprecated
public java.util.Collection<java.lang.String> getSupportedProperties(java.lang.Class<?> objClz,
                                                                                 java.lang.Class<? extends DBObjectProvider> proClz)
@Deprecated
public java.util.Collection<java.lang.String> getSupportedProperties(java.lang.Class<?> objClz,
                                                                                 java.lang.Class<? extends DBObjectProvider> proClz,
                                                                                 boolean incBean,
                                                                                 boolean incExtra)
public boolean hasSupportedProperty(java.lang.Class<?> objClz,
                                    java.lang.Class<? extends DBObjectProvider> proClz,
                                    java.util.function.Predicate<PropertyInfo> predicate)
#getSupportedPropertiesMaps but stops when a
 property matches (thereby avoiding unnecessary property loading).
 An example use would be to check whether a given object class has any extra properties.
objClz - the object class to query - must not be null.proClz - the provider class to query - can be null.predicate - the test that at least one PropertyInfo must pass
 (for example a PropertyCriteria) - must not be null.public void registerProperty(java.lang.String name,
                             java.lang.Class returnType,
                             java.lang.Class<? extends DBObjectProvider> providerType,
                             java.lang.Class<? extends DBObject>... objectTypes)
name - the property namereturnType - the expected return type for the propertyproviderType - the class of DBObjectProvider that this property is to
 be registered against (null or DBObjectProvider.class registers for all
 providers).objectTypes - the object types this property is valid against (null
 or DBObject.class registers for all DBObjects).public void registerBooleanProperty(java.lang.String name,
                                    Nullable.NullBehaviour nullBehaviour,
                                    java.lang.Class<? extends DBObjectProvider> providerType,
                                    java.lang.Class<? extends DBObject>... objectTypes)
name - the property namenullBehaviour - the behaviour of the property regarding null as
 an allowed valueproviderType - the class of DBObjectProvider that this property is to
 be registered against (null or DBObjectProvider.class registers for all
 providers).objectTypes - the object types this property is valid against (null
 or DBObject.class registers for all DBObjects).public void registerStringProperty(java.lang.String name,
                                   boolean isMultiLine,
                                   java.lang.Class<? extends DBObjectProvider> providerType,
                                   java.lang.Class<? extends DBObject>... objectTypes)
name - the property nameisMultiLine - wher the String can contain newlinesproviderType - the class of DBObjectProvider that this property is to
 be registered against (null or DBObjectProvider.class registers for all
 providers).objectTypes - the object types this property is valid against (null
 or DBObject.class registers for all DBObjects).public void registerIDProperty(java.lang.String name,
                               boolean staticReference,
                               java.lang.Class<? extends DBObjectProvider> providerType,
                               java.lang.Class<? extends DBObject>... objectTypes)
name - the property namestaticReference - true if the property value is treated as a normal
 reference and replaced by the replaceReferenceIDs method on DBObject.providerType - the class of DBObjectProvider that this property is to
 be registered against (null or DBObjectProvider.class registers for all
 providers).objectTypes - the object types this property is valid against (null
 or DBObject.class registers for all DBObjects).public void registerIDProperty(java.lang.String name,
                               boolean staticReference,
                               java.lang.Class<? extends DBObject> referencedClass,
                               java.lang.String[] referencedTypes,
                               java.lang.Class<? extends DBObjectProvider> providerType,
                               java.lang.Class<? extends DBObject>... objectTypes)
name - the property namestaticReference - true if the property value is treated as a normal
 reference and replaced by the replaceReferenceIDs method on DBObject.providerType - the class of DBObjectProvider that this property is to
 be registered against (null or DBObjectProvider.class registers for all
 providers).objectTypes - the object types this property is valid against (null
 or DBObject.class registers for all DBObjects).public void registerProperty(PropertyInfo info)
java.lang.IllegalArgumentException - if the PropertyInfo is not valid or a
 property is already registered with that name.public void registerProperties(java.lang.Iterable<? extends PropertyInfo> infos)
public boolean isStaticReferenceProperty(java.lang.String propName)
propName - the name of the property to querypublic boolean isBeanProperty(java.lang.Class<? extends DBObject> clz, java.lang.String propName)
clz - the object type to testpropName - the property name to findpublic java.util.Collection<java.lang.String> getOwnerTypes(java.lang.String childType)
childType - the child type to lookupgetOwnerClasses(java.lang.Class<? extends oracle.javatools.db.DBObject>)public java.util.Collection<java.lang.Class<? extends DBObject>> getOwnerClasses(java.lang.Class<? extends DBObject> childClz)
childClz - the child class to lookupgetOwnerTypes(java.lang.String)public static boolean isRealBean(java.lang.Class<?> clz)
clz - the class to test