oracle.ifs.beans
Class ClassObject


java.lang.Object

  |

  +--oracle.ifs.beans.LibraryObject

        |

        +--oracle.ifs.beans.TieLibraryObject

              |

              +--oracle.ifs.beans.SchemaObject

                    |

                    +--oracle.ifs.beans.TieSchemaObject

                          |

                          +--oracle.ifs.beans.ClassObject

All Implemented Interfaces:
IfsEventHandler, LibraryObjectInterface, SchemaObjectInterface, Traceable

public final class ClassObject
extends TieSchemaObject

A ClassObject represents a class whose instances are persistently stored and managed by the iFS server.

When installed, iFS creates a number of ClassObjects. Some of these are used internally; others are for commonly-encountered data types in content management applications. A content management application can use these provided ClassObjects, or create its own by subclassing them.

Each ClassObject may define one or more Attributes for its data. In addition to these, a ClassObject inherits its superclass's Attributes.

Any time a ClassObject is created, altered, or removed, the in-progress Transaction is implicitly committed.

See Also:
ClassObjectDefinition

Field Summary
static java.lang.String ABSTRACT_ATTRIBUTE
          An indicator of whether this ClassObject is abstract.
static java.lang.String BEANCLASSPATH_ATTRIBUTE
          The fully-qualified classname of the Beans Java class used to represent instances of this ClassObject in the repository SDK.
static java.lang.String CLASS_NAME
          The class name for this class.
static java.lang.String CLASSACL_ATTRIBUTE
          The ClassAccessControlList that determines which users and/or groups can create instances of this ClassObject.
static java.lang.String DATABASEOBJECTNAME_ATTRIBUTE
          The base name for database objects used to store data for instances of this ClassObject.
static java.lang.String DESCRIPTION_ATTRIBUTE
          A textual description of this ClassObject.
static java.lang.String FINAL_ATTRIBUTE
          An indicator of whether this ClassObject is final.
static java.lang.String PARTITIONED_ATTRIBUTE
          An indicator of whether the database table that stores data for instances of this ClassObject is partitioned.
static java.lang.String SELECTORCLASSPATH_ATTRIBUTE
          The fully-qualified classname of the Beans Java class used to represent instances of this ClassObject in the repository SDK.
static java.lang.String SERVERCLASSPATH_ATTRIBUTE
          The fully-qualified classname of the Server Java class used to represent instances of this ClassObject in the repository service.
static java.lang.String SUPERCLASS_ATTRIBUTE
          The ClassObject that is the superclass of this ClassObject.
static java.lang.String UNIQUENAME_ATTRIBUTE
          A system-set attribute used to ensure each ClassObject has a unique Name.
 
Fields inherited from class oracle.ifs.beans.SchemaObject
ACTIVE_ATTRIBUTE, NAME_ATTRIBUTE, POLICYBUNDLE_ATTRIBUTE, PROPERTYBUNDLE_ATTRIBUTE
 
Method Summary
 Attribute addAttribute(AttributeDefinition def)
          Adds an Attribute to this ClassObject.
 Attribute getAttributeFromLabel(java.lang.String label)
          returns the Attribute, based on the specified Attribute Label.
 java.lang.String getBeanClasspath()
          Gets the fully-qualified name of the Java class instantiated to represent instances of this ClassObject within a document management application.
 ClassAccessControlList getClassAcl()
          Gets the ClassAccessControlList of this ClassObject.
static ClassObject getClassObjectFromLabel(LibrarySession sess, java.lang.String label)
          returns a ClassObject, based on a specified Label.
 java.lang.String getDatabaseObjectName()
          Returns the Database Object Name.
 java.lang.String getDescription()
          Returns the description of a Class Object.
 ClassObject[] getDirectSubclasses()
          Gets the direct subclasses of this ClassObject.
 ClassObject getDirectSubclasses(int index)
          Gets the specified direct subclass of this ClassObject.
 Attribute[] getEffectiveClassAttributes()
          Gets the effective Attributes of this ClassObject.
 Attribute getEffectiveClassAttributes(int index)
          Gets the specified effective Attribute of this ClassObject.
 Attribute getEffectiveClassAttributes(java.lang.String attributeName)
          Gets the specified effective Attribute of this ClassObject.
 Attribute[] getExtendedClassAttributes()
          Gets the extended Attributes of this ClassObject.
 Attribute[] getExtendedClassAttributes(ClassObject superclass)
          Gets an array of the Attributes that this ClassObject has and that the specified superclass does not have.
 Attribute getExtendedClassAttributes(int index)
          Gets the specified extended Attribute of this ClassObject.
 Attribute getExtendedClassAttributes(java.lang.String attributeName)
          Gets the specified extended Attribute of this ClassObject.
 AttributeValue getInheritedPropertyValue(java.lang.String name)
          gets named property, if any, by searching in the target ClassObject's PropertyBundle, or in one of its superclasses PropertyBundle.
 java.lang.String getLabel()
          returns the Label for this Attribute, based on the Attribute's name and class.
 java.lang.String getSelectorClasspath()
          Returns the SelectorClassPath Attribute of the Library Object.
 java.lang.String getServerClasspath()
          Returns the ServerClassPath Attribute of the Library Object.
 ClassObject[] getSubclasses()
          Gets the subclasses of this ClassObject.
 ClassObject getSubclasses(int index)
          Gets the specified subclass of this ClassObject.
 ClassObject getSuperclass()
          Gets the superclass of this ClassObject.
 boolean isAbstract()
          Determines if this is an abstract object.
 boolean isAttribute(java.lang.String attrName)
          Gets whether this ClassObject has an Attribute with the specified name.
 boolean isDirectSubclassOf(ClassObject classObject)
          Gets whether this ClassObject is a direct subclass of the specified ClassObject.
 boolean isFinal()
          Determines if this is object cannot be sub-classed.
 boolean isSubclassOf(ClassObject classObject)
          Gets whether this ClassObject is a subclass of the specified ClassObject.
 boolean isVersionable()
          Gets whether instances of this ClassObject are versionable.
 void putPolicy(Policy policy)
          Adds a Policy to the policy bundle PropertyBundle of this ClassObject.
 void removeAllPolicies()
          Removes all Policy objects from this ClassObject's policy bundle PropertyBundle, leaving an empty PropertyBundle.
 void removeAttribute(Attribute attribute)
          Removes an Attribute from this ClassObject.
 void removePolicy(Policy policy)
          Removes a Policy from this ClassObject's policy bundle PropertyBundle.
 void removePolicy(java.lang.String opname)
          Removes a Policy from this ClassObject's policy bundle PropertyBundle.
 void setBeanClasspath(java.lang.String javaClassName)
          Sets the fully-qualified name of the Java class instantiated to represent instances of this ClassObject within a document management application.
 void setClassAcl(ClassAccessControlList acl)
          Sets the ClassAccessControlList of this ClassObject.
 void setDescription(java.lang.String description)
          Sets the description of this ClassObject.
 void setPolicyBundle(PolicyPropertyBundle bundle)
          Sets the policy bundle PropertyBundle of this ClassObject.
 void setSelectorClasspath(java.lang.String path)
          Sets the Selector Class Path attribute.
 void setServerClasspath(java.lang.String path)
          Sets the Server Class Path attribute.
 
Methods inherited from class oracle.ifs.beans.SchemaObject
getPolicyBundle, getPropertyBundle, hasNameAttribute, isActive, putProperty, putProperty, removeAllProperties, removeProperty, setActive, setPropertyBundle
 
Methods inherited from class oracle.ifs.beans.LibraryObject
equals, free, free, getAttribute, getAttributeByUpperCaseName, getAttributes, getAttributesByUpperCaseNames, getClassId, getClassObject, getDefinition, getId, getName, getSession, handleEvent, invokeServerMethod, isInstanceOf, isTraced, lookupInstanceLabel, postEvent, postEvent, renderAsReader, renderAsStream, setAttribute, setAttribute, setAttributes, setAttributes, setName, toString, trace, update
 
Methods inherited from interface oracle.ifs.common.LibraryObjectInterface
getId
 
Methods inherited from interface oracle.ifs.common.Traceable
getTraceLogger, isTraced, trace
 

Field Detail


CLASS_NAME


public static final java.lang.String CLASS_NAME
The class name for this class. Useful for methods that take a class name argument.

SUPERCLASS_ATTRIBUTE


public static final java.lang.String SUPERCLASS_ATTRIBUTE
The ClassObject that is the superclass of this ClassObject.

DESCRIPTION_ATTRIBUTE


public static final java.lang.String DESCRIPTION_ATTRIBUTE
A textual description of this ClassObject.

SERVERCLASSPATH_ATTRIBUTE


public static final java.lang.String SERVERCLASSPATH_ATTRIBUTE
The fully-qualified classname of the Server Java class used to represent instances of this ClassObject in the repository service.

BEANCLASSPATH_ATTRIBUTE


public static final java.lang.String BEANCLASSPATH_ATTRIBUTE
The fully-qualified classname of the Beans Java class used to represent instances of this ClassObject in the repository SDK.

SELECTORCLASSPATH_ATTRIBUTE


public static final java.lang.String SELECTORCLASSPATH_ATTRIBUTE
The fully-qualified classname of the Beans Java class used to represent instances of this ClassObject in the repository SDK.

DATABASEOBJECTNAME_ATTRIBUTE


public static final java.lang.String DATABASEOBJECTNAME_ATTRIBUTE
The base name for database objects used to store data for instances of this ClassObject.

CLASSACL_ATTRIBUTE


public static final java.lang.String CLASSACL_ATTRIBUTE
The ClassAccessControlList that determines which users and/or groups can create instances of this ClassObject. If a ClassACL is not specified, then any user can create an instance of the ClassObject (unless it is an abstract class).

ABSTRACT_ATTRIBUTE


public static final java.lang.String ABSTRACT_ATTRIBUTE
An indicator of whether this ClassObject is abstract. Abstract ClassObjects cannot be instantiated.

FINAL_ATTRIBUTE


public static final java.lang.String FINAL_ATTRIBUTE
An indicator of whether this ClassObject is final. Final ClassObjects cannot be subclassed.

PARTITIONED_ATTRIBUTE


public static final java.lang.String PARTITIONED_ATTRIBUTE
An indicator of whether the database table that stores data for instances of this ClassObject is partitioned. Currently only PublicObject database tables are partitioned.

UNIQUENAME_ATTRIBUTE


public static final java.lang.String UNIQUENAME_ATTRIBUTE
A system-set attribute used to ensure each ClassObject has a unique Name.
Method Detail

getLabel


public java.lang.String getLabel()
                          throws IfsException
returns the Label for this Attribute, based on the Attribute's name and class. This overrides the method defined in LibraryObject so that the AttributeLabel resource strings can be checked instead of the InstanceLabels that are checked in LibraryObject. If no AttributeLabel is defined, return the Attribute's name.
Overrides:
getLabel in class LibraryObject
Returns:
the label for this object.
Throws:
IfsException - if operation fails.

getClassObjectFromLabel


public static ClassObject getClassObjectFromLabel(LibrarySession sess,
                                                  java.lang.String label)
                                           throws IfsException
returns a ClassObject, based on a specified Label.
Parameters:
sess - The LibrarySession
label - The Label
Returns:
the corresponding ClassObject.
Throws:
IfsException - if operation fails.

getAttributeFromLabel


public Attribute getAttributeFromLabel(java.lang.String label)
                                throws IfsException
returns the Attribute, based on the specified Attribute Label.
Parameters:
label - the Attribute label
Returns:
the corresponding Attribute
Throws:
IfsException - if operation fails.

getBeanClasspath


public java.lang.String getBeanClasspath()
                                  throws IfsException
Gets the fully-qualified name of the Java class instantiated to represent instances of this ClassObject within a document management application.
Returns:
the classname
Throws:
IfsException - if the operation fails

setDescription


public void setDescription(java.lang.String description)
                    throws IfsException
Sets the description of this ClassObject.
Parameters:
description - the description
Throws:
IfsException - if the operation fails

setBeanClasspath


public void setBeanClasspath(java.lang.String javaClassName)
                      throws IfsException
Sets the fully-qualified name of the Java class instantiated to represent instances of this ClassObject within a document management application. The service should be restarted after calling this method.
Parameters:
javaClassName - the classname
Throws:
IfsException - if the operation fails

getClassAcl


public ClassAccessControlList getClassAcl()
                                   throws IfsException
Gets the ClassAccessControlList of this ClassObject.
Returns:
the ClassAccessControlList
Throws:
IfsException - if the operation fails

setClassAcl


public void setClassAcl(ClassAccessControlList acl)
                 throws IfsException
Sets the ClassAccessControlList of this ClassObject.
Parameters:
acl - the ClassAccessControlList
Throws:
IfsException - if the operation fails

setPolicyBundle


public void setPolicyBundle(PolicyPropertyBundle bundle)
                     throws IfsException
Sets the policy bundle PropertyBundle of this ClassObject.
Overrides:
setPolicyBundle in class SchemaObject
Parameters:
bundle - the policy bundle
Throws:
IfsException - if the operation fails

putPolicy


public void putPolicy(Policy policy)
               throws IfsException
Adds a Policy to the policy bundle PropertyBundle of this ClassObject.

If this ClassObject doesn't have a policy bundle, this method will throw an exception.

Overrides:
putPolicy in class SchemaObject
Parameters:
policy - the Policy to add
Throws:
IfsException - if the operation fails

removePolicy


public void removePolicy(java.lang.String opname)
                  throws IfsException
Removes a Policy from this ClassObject's policy bundle PropertyBundle.

This method does not cause a "dedicated" PropertyBundle to be created.

Overrides:
removePolicy in class SchemaObject
Parameters:
opname - the operation name of the Policy to remove
Throws:
IfsException - if the operation fails

removePolicy


public void removePolicy(Policy policy)
                  throws IfsException
Removes a Policy from this ClassObject's policy bundle PropertyBundle.

This method does not cause a "dedicated" PropertyBundle to be created.

Overrides:
removePolicy in class SchemaObject
Parameters:
policy - the Policy to remove
Throws:
IfsException - if the operation fails

removeAllPolicies


public void removeAllPolicies()
                       throws IfsException
Removes all Policy objects from this ClassObject's policy bundle PropertyBundle, leaving an empty PropertyBundle.

This method does not cause a "dedicated" PropertyBundle to be created.

Overrides:
removeAllPolicies in class SchemaObject
Throws:
IfsException - if the operation fails

addAttribute


public Attribute addAttribute(AttributeDefinition def)
                       throws IfsException
Adds an Attribute to this ClassObject.
Parameters:
def - the AttributeDefinition of the new Attribute
Returns:
the new Attribute
Throws:
IfsException - (IFS-30820) if the operation fails

removeAttribute


public void removeAttribute(Attribute attribute)
                     throws IfsException
Removes an Attribute from this ClassObject.
Parameters:
attribute - the Attribute to remove
Throws:
IfsException - (IFS-30821) if the operation fails

getEffectiveClassAttributes


public Attribute[] getEffectiveClassAttributes()
                                        throws IfsException
Gets the effective Attributes of this ClassObject.

The effective Attributes of a ClassObject are both the Attributes introduced by the ClassObject itself as well as the Attributes the ClassObject inherits from its superclasses.

Returns:
the Attributes
Throws:
IfsException - if the operation fails

getEffectiveClassAttributes


public Attribute getEffectiveClassAttributes(int index)
                                      throws IfsException
Gets the specified effective Attribute of this ClassObject.

The effective Attributes of a ClassObject are both the Attributes introduced by the ClassObject itself as well as the Attributes the ClassObject inherits from its superclasses.

Parameters:
index - the zero-based index
Returns:
the Attribute
Throws:
IfsException - if the operation fails

getEffectiveClassAttributes


public Attribute getEffectiveClassAttributes(java.lang.String attributeName)
                                      throws IfsException
Gets the specified effective Attribute of this ClassObject.

The effective Attributes of a ClassObject are both the Attributes introduced by the ClassObject itself as well as the Attributes the ClassObject inherits from its superclasses.

Parameters:
attributeName - the Attribute name
Returns:
the Attribute, or null if there is no Attribute with the specified name
Throws:
IfsException - if the operation fails

getExtendedClassAttributes


public Attribute[] getExtendedClassAttributes()
                                       throws IfsException
Gets the extended Attributes of this ClassObject.

The extended Attributes of a ClassObject are only the Attributes introduced by the ClassObject itself, and do not include any Attributes the ClassObject inherits from its superclasses.

Returns:
the Attributes. If the class has no extended Attributes, an zero-length array is returned.
Throws:
IfsException - if the operation fails

getExtendedClassAttributes


public Attribute[] getExtendedClassAttributes(ClassObject superclass)
                                       throws IfsException
Gets an array of the Attributes that this ClassObject has and that the specified superclass does not have.
Parameters:
superclass - a superclass of this ClassObject
Returns:
the Attributes. If this ClassObject has exactly the same Attributes as the specified superclass, a zero-length array is returned.
Throws:
IfsException - (IFS-19001) if superclass is null
IfsException - (IFS-19005) if superclass is not a superclass of this ClassObject
IfsException - if the operation otherwise fails

getExtendedClassAttributes


public Attribute getExtendedClassAttributes(int index)
                                     throws IfsException
Gets the specified extended Attribute of this ClassObject.

The extended Attributes of a ClassObject are only the Attributes introduced by the ClassObject itself, and do not include any Attributes the ClassObject inherits from its superclasses.

Parameters:
index - the zero-based index
Returns:
the Attribute
Throws:
IfsException - if the operation fails

getExtendedClassAttributes


public Attribute getExtendedClassAttributes(java.lang.String attributeName)
                                     throws IfsException
Gets the specified extended Attribute of this ClassObject.

The extended Attributes of a ClassObject are only the Attributes introduced by the ClassObject itself, and do not include any Attributes the ClassObject inherits from its superclasses.

Parameters:
attributeName - the Attribute name
Returns:
the Attribute, or null if there is no Attribute with the specified name
Throws:
IfsException - if the operation fails

isAttribute


public boolean isAttribute(java.lang.String attrName)
                    throws IfsException
Gets whether this ClassObject has an Attribute with the specified name.
Parameters:
the - Attribute name
Returns:
whether this ClassObject has an Attribute with that name
Throws:
IfsException - if the operation fails

getSuperclass


public ClassObject getSuperclass()
                          throws IfsException
Gets the superclass of this ClassObject.
Returns:
the superclass, or null if this ClassObject has no superclass
Throws:
IfsException - if the operation fails

getDirectSubclasses


public ClassObject[] getDirectSubclasses()
                                  throws IfsException
Gets the direct subclasses of this ClassObject.

The direct subclasses are the ClassObjects that directly extend this ClassObject.

Returns:
the subclasses
Throws:
IfsException - if the operation fails

getDirectSubclasses


public ClassObject getDirectSubclasses(int index)
                                throws IfsException
Gets the specified direct subclass of this ClassObject.

The direct subclasses are the ClassObjects that directly extend this ClassObject.

Parameters:
index - the zero-based index
Returns:
the subclass
Throws:
IfsException - if the operation fails

getSubclasses


public ClassObject[] getSubclasses()
                            throws IfsException
Gets the subclasses of this ClassObject.

The subclasses are the ClassObjects that directly extend this ClassObject and their subclasses, sub-subclasses, etc.

Returns:
the subclasses
Throws:
IfsException - if the operation fails

getSubclasses


public ClassObject getSubclasses(int index)
                          throws IfsException
Gets the specified subclass of this ClassObject.

The subclasses are the ClassObjects that directly extend this ClassObject and their subclasses, sub-subclasses, etc.

Parameters:
index - the zero-based index
Returns:
the subclass
Throws:
IfsException - if the operation fails

isDirectSubclassOf


public boolean isDirectSubclassOf(ClassObject classObject)
                           throws IfsException
Gets whether this ClassObject is a direct subclass of the specified ClassObject.
Parameters:
classObject - the ClassObject to test
Returns:
whether this ClassObject is a direct subclass of classObject
Throws:
IfsException - (IFS-19001) if classObject is null

isSubclassOf


public boolean isSubclassOf(ClassObject classObject)
                     throws IfsException
Gets whether this ClassObject is a subclass of the specified ClassObject.
Parameters:
classObject - the ClassObject to test
Returns:
whether this ClassObject is a subclass of classObject
Throws:
IfsException - (IFS-19001) if classObject is null

isVersionable


public boolean isVersionable()
                      throws IfsException
Gets whether instances of this ClassObject are versionable.
Returns:
whether instances of this ClassObject are versionable
Throws:
IfsException - if the operation fails

getInheritedPropertyValue


public AttributeValue getInheritedPropertyValue(java.lang.String name)
                                         throws IfsException
gets named property, if any, by searching in the target ClassObject's PropertyBundle, or in one of its superclasses PropertyBundle. Return null if no property exists for this name.
Parameters:
name - Property name
Returns:
the AttributeValue for the requested property, or null if no specific Proeprty exists on this class or superclasses.
Throws:
IfsException - if the operation fails

getDescription


public java.lang.String getDescription()
                                throws IfsException
Returns the description of a Class Object.
Returns:
The description of the ClassObject.
Throws:
IfsException - if the operation fails

getServerClasspath


public java.lang.String getServerClasspath()
                                    throws IfsException
Returns the ServerClassPath Attribute of the Library Object.
Returns:
The Server Class Path.
Throws:
IfsException - if the operation fails

setServerClasspath


public void setServerClasspath(java.lang.String path)
                        throws IfsException
Sets the Server Class Path attribute.
Parameters:
path - The server class path
Throws:
IfsException - if the operation fails.

getSelectorClasspath


public java.lang.String getSelectorClasspath()
                                      throws IfsException
Returns the SelectorClassPath Attribute of the Library Object.
Returns:
The Selector Class Path.
Throws:
IfsException - if the operation fails

setSelectorClasspath


public void setSelectorClasspath(java.lang.String path)
                          throws IfsException
Sets the Selector Class Path attribute.
Parameters:
path - The selector class path
Throws:
IfsException - if the operation fails.

getDatabaseObjectName


public java.lang.String getDatabaseObjectName()
                                       throws IfsException
Returns the Database Object Name.
Returns:
The Database Object Name.
Throws:
IfsException - if the operation fails.

isAbstract


public boolean isAbstract()
                   throws IfsException
Determines if this is an abstract object.
Returns:
true if the object is abstract.
Throws:
IfsException - if the operation fails.

isFinal


public boolean isFinal()
                throws IfsException
Determines if this is object cannot be sub-classed.
Returns:
true if the object is final.
Throws:
IfsException - if the operation fails.