public class ObjectLibrary extends JdapiModule
In some cases, using methods on this class may result in a
JdapiIllegalStateException being thrown. When this happens, you are using
an object that refers to a Forms object that has been deleted - your
reference is no longer valid. You can check if an instance of this
class is valid by using the isValidFormsObject() method.
If you code correctly, this should not happen. It will tend to happen
if you keep references (for extended periods) to Forms objects rather
than look them up dynamically. Of course you will only have this
problem if you destroy Forms objects.
BaseAPI| Modifier and Type | Field and Description |
|---|---|
protected java.lang.Object |
m_clientInfo
Client info object held against this Forms object.
|
protected long |
m_pd2fob
This is the d2fob pointer in the C ifjapi60 for the object
that is derived from this class.
|
PROPERTY_DEFAULT_VALUE, PROPERTY_INHERITED_VALUE, PROPERTY_OVERRIDDEN_DEFAULT_VALUE, PROPERTY_OVERRIDDEN_INHERITED_VALUE, PROPERTY_STATE_UNKNOWN| Modifier | Constructor and Description |
|---|---|
protected |
ObjectLibrary(long pd2folb)
Protected constructor, used internally to create ObjectLibrary
objects.
|
|
ObjectLibrary(java.lang.String name)
Constructor used to create ObjectLibrary objects.
|
| Modifier and Type | Method and Description |
|---|---|
JdapiObject |
addObject(ObjectLibraryTab tab,
JdapiObject obj,
boolean replace)
Add an object to the ObjectLibrary.
|
void |
changeOwner(JdapiObject newOwner)
Assigns a new owner to the referred object.
|
protected void |
clearObjectPointer()
Used internally to flag this object as an invalid object.
|
JdapiObject |
clone(JdapiObject parent,
java.lang.String newName)
Creates a clone of the specified object, creating a new
object with the given name and owner.
|
ObjectLibrary |
clone(java.lang.String newName)
Creates a copy of the object as a child of 'parent'.
|
void |
compile()
Compiles the module to the filesystem.
|
JdapiObject |
createSubclassedChild(JdapiObject childOwner,
java.lang.String childName)
Subclass the referred object.
|
boolean |
equals(JdapiObject obj)
Compares two objects and determines if they are equal.
|
static ObjectLibrary |
find(java.lang.String name)
Find an instance of ObjectLibrary.
|
JdapiObject |
findObjectByPosition(int pos)
Gets an object from the ObjectLibrary based on it's index.
|
boolean |
getBooleanProperty(int propertyTypeId)
Retrieves a boolean property from the referred object.
|
JdapiIterator |
getChildObjectProperty(int propertyTypeId)
Retrieves child objects for a given property value.
|
java.lang.String |
getClassName()
Gets the class name of the object.
|
java.lang.Object |
getClientInfo()
Returns the client info object associated with this Object.
|
java.lang.String |
getComment()
Get text property Comment (COMMENT_PTID).
|
java.lang.String |
getDescription(JdapiObject obj)
Gets description of object in the library.
|
int |
getIntegerProperty(int propertyTypeId)
Retrieves an integer property from the referred object.
|
java.lang.String |
getIntegerPropertyString(int propertyTypeId)
Gets a numeric (
long) property value's text
representation. |
JdapiMetaObject |
getJdapiMetaObject()
Gets the metadata object for the specified object.
|
JdapiIterator |
getMetaProperties()
Return an iterator over the meta properties in object referred.
|
JdapiObject |
getModule()
Get Module (MODULE_PTID) object property.
|
java.lang.String |
getName()
Get text property Name (NAME_PTID).
|
int |
getObjectCount()
Get number property ObjectCount (OBJECT_COUNT_PTID).
|
JdapiIterator |
getObjectLibraryObjects()
Gets an iterator over all the objects in the library
|
JdapiIterator |
getObjectLibraryTabs()
Accessor for child ObjectLibraryTab objects (OBJECT_LIBRARY_TAB_PTID).
|
protected long |
getObjectPointer()
Gets the Forms API pointer for this object.
|
JdapiObject |
getObjectProperty(int propertyTypeId)
Retrieves a JdapiObject property from the referred object.
|
ObjectLibraryTab |
getObjectTab(JdapiObject obj)
Gets the ObjectLibraryTab for the tab a given object is on.
|
java.lang.String |
getObjectTabName(JdapiObject obj)
Gets the name of the tab in the library that a given object
is on.
|
protected long |
getObjProp(int propertyTypeId)
Internal method used to get an object property value.
|
JdapiIterator |
getOwnedObjects()
Get the object instances owned by this particular object.
|
JdapiObject |
getOwner()
Get Owner (OWNER_PTID) object property.
|
Blob |
getPersistentClientInfoBlob()
Returns the persistent client info Blob associated with this
object.
|
int |
getPersistentClientInfoLength()
Get number property PersistentClientInfoLength (PERSISTENT_CLIENT_INFO_LENGTH_PTID).
|
java.lang.Object |
getPersistentClientInfoObject()
Returns the persistent client info Java object associated with this
object.
|
int |
getPropertyState(int propertyTypeId)
Returns the current state of the specified property.
|
java.lang.String |
getPropertyValueName(int propertyTypeId,
int val)
Gets the string representation of a given property's value.
|
java.lang.String |
getQualifiedName(boolean includeModule)
Gets a fully qualified name for the object in the format of:
MODULE.OBJECT.CHILD.CHILD...
|
int |
getStringIDProperty(int propertyTypeId)
Retrieves a special String ID (integer) property from the referred object.
|
java.lang.String |
getStringProperty(int propertyTypeId)
Retrieves a string property from the referred object.
|
JdapiObject |
getSubclassParent()
Get Source (SOURCE_PTID) object property, i.e.
|
TranslationTable |
getTranslationTable()
Get a TranslationTable object representing the translations for this module.
|
int |
getTypeId()
Gets the HtmlForms object type ID.
|
boolean |
hasDefaultedProperty(int propertyTypeId)
Checks if a property is set to it's default value.
|
boolean |
hasInheritedProperty(int propertyTypeId)
Checks if a property is inherited.
|
boolean |
hasOverriddenProperty(int propertyTypeId)
Determine whether the object referred has a property of
the given type id with an overridden value.
|
boolean |
hasProperty(int propertyTypeId)
Checks if the object has a given property.
|
void |
inheritProperty(int propertyTypeId)
Resets a property to it's default value (confusing name eh?).
|
boolean |
isDirtyInfo()
Get boolean property DirtyInfo (DIRTY_INFO_PTID).
|
boolean |
isSmartClass(JdapiObject obj)
Checks if an object in the library is a 'smart' object.
|
boolean |
isSubclassed()
Checks if the object is subclassed from another object.
|
boolean |
isValidFormsObject()
Determines whether this Java instance references a valid Forms object.
|
void |
move(JdapiObject next)
Reorders an object with respect to its siblings in
the collection it belongs to.
|
static ObjectLibrary |
open(java.io.File file)
Loads a ObjectLibrary module from the filesystem or from the loaded
modules list.
|
static ObjectLibrary |
open(java.io.File file,
java.lang.String formsPath)
Loads a ObjectLibrary module from the filesystem or from the loaded
modules list.
|
static ObjectLibrary |
open(java.lang.String fileName)
Loads a ObjectLibrary module from the filesystem or from the loaded
modules list.
|
static ObjectLibrary |
open(java.lang.String fileName,
java.lang.String formsPath)
Loads a ObjectLibrary module from the filesystem or from the loaded
modules list.
|
int |
queryType()
Returns the FormAPI object type ID (x_OTID in
JdapiTypes). |
void |
reattach()
Reattaches subclassed object.
|
void |
removeObject(JdapiObject obj)
Removes an object from the ObjectLibrary.
|
void |
save(java.lang.String fileName)
Saves the module to the filesystem.
|
void |
setBooleanProperty(int propertyTypeId,
boolean propertyValue)
Sets the value of the specified boolean property belonging to the referred object.
|
void |
setClientInfo(java.lang.Object clientInfo)
Sets the client information.
|
void |
setComment(java.lang.String value)
Sets text property Comment (COMMENT_PTID).
|
void |
setDescription(JdapiObject obj,
java.lang.String description)
Sets the description for a object in the library.
|
void |
setDirtyInfo(boolean value)
Sets boolean property DirtyInfo (DIRTY_INFO_PTID).
|
void |
setIntegerProperty(int propertyTypeId,
int propertyValue)
Sets the value of the specified object integer property.
|
void |
setName(java.lang.String value)
Sets text property Name (NAME_PTID).
|
void |
setObjectProperty(int propertyTypeId,
JdapiObject propertyValue)
Sets the value of the specified object object property value.
|
protected void |
setObjProp(int propertyTypeId,
long val)
Internal method used to set an object property.
|
void |
setPersistentClientInfo(Blob val)
Sets persistent client info for this object.
|
void |
setPersistentClientInfo(java.io.Serializable obj)
Serializes any Java object which supports the Serializable
interface to this object's Persistent Client Info.
|
void |
setPersistentClientInfoLength(int value)
Sets number property PersistentClientInfoLength (PERSISTENT_CLIENT_INFO_LENGTH_PTID).
|
void |
setSmartClass(JdapiObject obj,
boolean smart)
Flag if an object is considered a 'smart' object.
|
void |
setStringProperty(int propertyTypeId,
java.lang.String propertyValue)
Sets the value of the specified string property for the object.
|
void |
setSubclassParent(JdapiObject parent)
Change the subclassing parent of the object referred.
|
java.lang.String |
toString()
Converts and returns the object properties to string format.
|
void |
unsetSubclassParent()
Remove the subclassing parent of the object referred.
|
compile_all, destroy, getAbsolutePath, getModulesProductVersion, openModule, openModule, openModule, openModule, setAbsolutePathprotected transient long m_pd2fob
protected transient java.lang.Object m_clientInfo
public ObjectLibrary(java.lang.String name)
name - Name of the new objectprotected ObjectLibrary(long pd2folb)
Do NOT use this constructor, even within the Jdapi package. If you have a pointer and need to instantiate it's Java representation, get the object via the context cache, e.g.
myBaseObject = Jdapi.getObject(myPointer);
pd2folb - C pointer to Forms objectpublic int getTypeId()
getTypeId in interface JdapiObjectqueryTypepublic static ObjectLibrary open(java.lang.String fileName)
A runtime exception is thrown if
a module the file has subclassed from cannot be found on the
Forms path. This behaviour can be suppressed with the
Jdapi.setFailSubclassLoad() method.
fileName - File name of ObjectLibrary to loadpublic static ObjectLibrary open(java.io.File file)
A runtime exception is thrown if
a module the file has subclassed from cannot be found on the
Forms path. This behaviour can be suppressed with the
Jdapi.setFailSubclassLoad() method.
file - File representing ObjectLibrary to loadpublic static ObjectLibrary open(java.lang.String fileName, java.lang.String formsPath)
A runtime exception is thrown if
a module the file has subclassed from cannot be found on the
Forms path. This behaviour can be suppressed with the
Jdapi.setFailSubclassLoad() method.
fileName - Filename of ObjectLibrary to loadformsPath - Path to use to look for modules that have been
subclassed from. 'null' means use the default
FORMS70_PATH.public static ObjectLibrary open(java.io.File file, java.lang.String formsPath)
A runtime exception is thrown if
a module the file has subclassed from cannot be found on the
Forms path. This behaviour can be suppressed with the
Jdapi.setFailSubclassLoad() method.
file - File representing ObjectLibrary to loadformsPath - Path to use to look for modules that have been
subclassed from. 'null' means use the default
FORMS70_PATH.public void save(java.lang.String fileName)
save in class JdapiModulefileName - Filename to save aspublic void compile()
Note that this method is currently unsupported for ObjectLibrary types, and if called, a JdapiUnsupportedOperationException will be thrown.
compile in class JdapiModulepublic ObjectLibrary clone(java.lang.String newName)
newName - Name of object that's being createdpublic static ObjectLibrary find(java.lang.String name)
name - Name of object you wish to findpublic JdapiObject addObject(ObjectLibraryTab tab, JdapiObject obj, boolean replace)
Note: Although you can add any Forms object (JdapiObject) to the ObjectLibrary using this method, Forms does not support all objects in a library, e.g. you can't put a Form in an object library (at time of writing). Trying to do so will have unexpected results, i.e. don't :)
tab - Tab to add object toobj - Forms object to add to libraryreplace - Replace existing object (?)public void removeObject(JdapiObject obj)
obj - Object to removepublic JdapiIterator getObjectLibraryObjects()
public JdapiObject findObjectByPosition(int pos)
getObjectCount() method.pos - Position to get object at, this is 1-basedpublic void setSmartClass(JdapiObject obj, boolean smart)
obj - Object in library to set flag forsmart - Flag to indicate if it's a 'smart' object or notpublic boolean isSmartClass(JdapiObject obj)
obj - Object in library to checkpublic void setDescription(JdapiObject obj, java.lang.String description)
obj - Object in library to set description fordescription - Description to set for objectpublic java.lang.String getDescription(JdapiObject obj)
obj - Object in library to get description ofpublic java.lang.String getObjectTabName(JdapiObject obj)
obj - Object in librarypublic ObjectLibraryTab getObjectTab(JdapiObject obj)
obj - Object in librarypublic TranslationTable getTranslationTable()
public java.lang.String getComment()
public void setComment(java.lang.String value)
value - Value to set property topublic java.lang.String getName()
getName in interface JdapiObjectpublic void setName(java.lang.String value)
value - Value to set property topublic int getObjectCount()
public int getPersistentClientInfoLength()
public void setPersistentClientInfoLength(int value)
value - Value to set property topublic boolean isDirtyInfo()
public void setDirtyInfo(boolean value)
value - Value to set property topublic JdapiIterator getObjectLibraryTabs()
protected long getObjectPointer()
public int queryType()
JdapiTypes). This should always be the
same value as returned for getTypeId. The difference between the two methods is that
queryType calls down to the API itself; this ensures that the correct type
is returned. Because this method calls down to the API, you might find it
a little faster to use getTypeID instead.queryType in interface JdapiObjectJdapiTypes.public void setClientInfo(java.lang.Object clientInfo)
This client info object is not persistent and will be lost when the session ends.
setClientInfo in interface JdapiObjectclientInfo - client info to be associated with the object.public java.lang.Object getClientInfo()
setClientObject.getClientInfo in interface JdapiObjectpublic Blob getPersistentClientInfoBlob()
getPersistentClientInfoBlob in interface JdapiObjectBlob containing client info.public java.lang.Object getPersistentClientInfoObject()
getPersistentClientInfoObject in interface JdapiObjectpublic void setPersistentClientInfo(Blob val)
Like the non-persistent client info methods, the client info can be any information that you want to save with the form. Unlike the non-persistent client info methods, the persistent info is saved as part of the form and will not be lost when the session is ended.
setPersistentClientInfo in interface JdapiObjectval - a Blob object containing client info.public void setPersistentClientInfo(java.io.Serializable obj)
Like the non-persistent client info methods, the client info can be any information that you want to save with the form. Unlike the non-persistent client info methods, the persistent info is saved as part of the form and will not be lost when the session is ended.
setPersistentClientInfo in interface JdapiObjectobj - any Serializable object containing client info.public boolean equals(JdapiObject obj)
equals in interface JdapiObjectobj - object to be compared.public JdapiObject clone(JdapiObject parent, java.lang.String newName)
The new object is the same as the original object in that it has the same property values. However, subclassing information is discarded, and the inherited property values "flattened" into local values in the new object.
It is your reponsibility to pass in an appropriate parent object. If you do not do this, you will probably get a JdapiException runtime exception. If possible, use the type safe clone method that is provided on each Forms object class.
clone in interface JdapiObjectparent - owner of the new object.newName - name of the new object.public void changeOwner(JdapiObject newOwner)
Set newOwner to null if you want the object to have no owner.
The only restriction on this method is that the new owner must be in the same module
as the referred object. If you attempt to assign a new owner that is in a different
module, then a JdapiException will be thrown.
Note: If you want to assign the object to a new owner in a different module, then you will have to clone or subclass the object.
changeOwner in interface JdapiObjectnewOwner - the new owner of referred object; specify null if you want the object to have no owner.JdapiException - if newOwner is in a different
module.public java.lang.String toString()
toString in interface JdapiObjecttoString in class java.lang.Objectprotected void clearObjectPointer()
public boolean isValidFormsObject()
JdapiObject
For example, assume that you have a reference to a block.
If you call destroy() on its owning module, then the module and all of its blocks
should be deleted from memory. The reference that you have no longer
refers to a valid Forms object. A call to isValidFormsObject() on the
block should return false.
isValidFormsObject in interface JdapiObjectpublic void move(JdapiObject next)
Pass null to this method to move the object to the end of the list. If the specified object and the next_object do not share the same owner, or do not have the same type, the method throws an exception.
You cannot use this method to move objects between parents. For example, it cannot be used to move an Item from one Block to another. If you want to move an object from one parent to another you will have to do something like:
// e.g. to move 'itmA' to be positioned before 'itmB' in block // 'blkB' (when 'itmA' is in another block) // copy itmA into a new parent (blkB) using same name Item newItmA = itmA.clone(blkB, itmA.getName()); newItmA.move(itmB); // move new item relative to itmB itmA.destroy(); // delete original object itmA = newItmA;
move in interface JdapiObjectnext - the object next to which the specified object
is to be moved.JdapiException - if you attempt to
move an object next to an object that does not share the same owner or
is not of the samme type.public boolean getBooleanProperty(int propertyTypeId)
getBooleanProperty in interface JdapiObjectpropertyTypeId - property type ID for which a boolean value is returned.public java.lang.String getStringProperty(int propertyTypeId)
getStringProperty in interface JdapiObjectpropertyTypeId - property type ID for which a string value is returned.public int getIntegerProperty(int propertyTypeId)
...
if(propClass.hasProperty(propNumber) && propClass.allowGet(propNumber))
{
int propValue = propClass.getIntegerProperty(propNum);
}
...
getIntegerProperty in interface JdapiObjectpropertyTypeId - property type ID for which an integer value is returned.public int getStringIDProperty(int propertyTypeId)
This method is intended for use with the TranslationTable
object only. For a given property ID it retrieves the integer that indexes the string
property in the table for the current language.
getStringIDProperty in interface JdapiObjectpropertyTypeId - property type ID for which a String ID value is returned.public java.lang.String getPropertyValueName(int propertyTypeId,
int val)
JdapiObjectgetPropertyValueName in interface JdapiObjectpropertyTypeId - Property numberval - Value of propertypublic java.lang.String getIntegerPropertyString(int propertyTypeId)
JdapiObjectlong) property value's text
representation.getIntegerPropertyString in interface JdapiObjectpropertyTypeId - Number identifying the propertyprotected long getObjProp(int propertyTypeId)
ContextCache to lookup/instantiate
the Java representation of the object.propertyTypeId - Number identifying the propertyContextCache,
getObjectProperty(int)public JdapiObject getObjectProperty(int propertyTypeId)
JdapiObjectgetObjectProperty in interface JdapiObjectpropertyTypeId - property type ID for which a JdapiObject value is returned.public JdapiIterator getChildObjectProperty(int propertyTypeId)
JdapiObjectFor example:
...
// get the actual values for the current child object type,
// for example, get the Items on a Block
iter = jo.getChildObjectProperty(prop.getPropertyId());
...
Note, it should be (slightly) faster to call the specific method
on the object, for example getBlocks() on the FormModule, as it involves
fewer API calls. However, getChildObjectProperty should be sufficient if
you only have a propertyTypeId available.
This method also differs from the direct accessors in that null is returned if there are no objects, not an empty iterator.
getChildObjectProperty in interface JdapiObjectpropertyTypeId - number identifying the child object property.public void setBooleanProperty(int propertyTypeId,
boolean propertyValue)
JdapiObjectsetBooleanProperty in interface JdapiObjectpropertyTypeId - property type ID of the property for which you want to set the boolean value.propertyValue - the boolean value for the property.public void setStringProperty(int propertyTypeId,
java.lang.String propertyValue)
JdapiObjectsetStringProperty in interface JdapiObjectpropertyTypeId - property type ID of the property for which you want to set the string value.propertyValue - the string value for the property.public void setIntegerProperty(int propertyTypeId,
int propertyValue)
setIntegerProperty in interface JdapiObjectpropertyTypeId - property type id for which we set the integer value.propertyValue - the integer property value in property.protected void setObjProp(int propertyTypeId,
long val)
propertyTypeId - Number identifying the propertyval - Value to set the property tosetObjectProperty(int, oracle.forms.jdapi.JdapiObject)public void setObjectProperty(int propertyTypeId,
JdapiObject propertyValue)
setObjectProperty in interface JdapiObjectpropertyTypeId - property type id for which we set the object property value.propertyValue - the object property value in property.public boolean hasProperty(int propertyTypeId)
hasProperty in interface JdapiObjectpropertyTypeId - Number identifying the propertypublic void inheritProperty(int propertyTypeId)
inheritProperty in interface JdapiObjectpropertyTypeId - Number that identified the propertypublic boolean hasInheritedProperty(int propertyTypeId)
hasInheritedProperty in interface JdapiObjectpropertyTypeId - Number that identified the propertypublic boolean hasOverriddenProperty(int propertyTypeId)
hasOverriddenProperty in interface JdapiObjectpropertyTypeId - The type id of the property to
be queried.public boolean hasDefaultedProperty(int propertyTypeId)
hasDefaultedProperty in interface JdapiObjectpropertyTypeId - Number that identified the propertypublic int getPropertyState(int propertyTypeId)
A property can be in one of the 5 states:
PROPERTY_STATE_UNKNOWN = 0;
PROPERTY_DEFAULT_VALUE = 1;
PROPERTY_OVERRIDDEN_DEFAULT_VALUE = 2;
PROPERTY_INHERITED_VALUE = 3;
PROPERTY_OVERRIDDEN_INHERITED_VALUE = 3;
getPropertyState in interface JdapiObjectpropertyTypeId - The type id of the property.public boolean isSubclassed()
isSubclassed in interface JdapiObjectpublic JdapiObject getSubclassParent()
getSubclassParent in interface JdapiObjectpublic void setSubclassParent(JdapiObject parent)
The metadata associated with each object describes the types of objects that can become its subclassing parent. If the subclassing metadata associated with the refrred object doesn't indicate the objects of the given parent's type are allowed, then this method will throw an exception.
setSubclassParent in interface JdapiObjectparent - The parent object. If this is null, the child
the referred object will become an orphan. This is the
way to unset the subclassing parent of an object.public void unsetSubclassParent()
The subclassing will be removed completely if it existed and the object will now contain the default values.
public JdapiObject createSubclassedChild(JdapiObject childOwner, java.lang.String childName)
createSubclassedChild in interface JdapiObjectchildOwner - The object that will own
the newly created subclassed child object.childName - The name to be given to the newly
created child.public void reattach()
reattach in interface JdapiObjectpublic JdapiObject getModule()
getModule in interface JdapiObjectpublic JdapiObject getOwner()
getOwner in interface JdapiObjectpublic JdapiIterator getOwnedObjects()
getOwnedObjects in interface JdapiObjectpublic java.lang.String getClassName()
getClassName in interface JdapiObjectpublic java.lang.String getQualifiedName(boolean includeModule)
getQualifiedName in interface JdapiObjectincludeModule - Include the module namepublic JdapiMetaObject getJdapiMetaObject()
getJdapiMetaObject in interface JdapiObjectpublic JdapiIterator getMetaProperties()
The various property type ids and the object-property mapping are defined by the specific implementation in the respective Constants file.
getMetaProperties in interface JdapiObject