|
|||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
PersistenceManager
(and server-side-only
PersistenceManagerSvr
) to find and manage Persistable
objects.
See:
Description
Interface Summary | |
BinaryLink | Interfaces that represents an association between two objects. |
BusinessInformation | Deprecated. |
DatastoreArray | This interface provides an abstraction for a Datastore array. |
DatastoreElement | This interface provides a common abstraction for all Datastore element types. |
DatastoreSequence | This interface provides an abstraction for a Datastore sequence. |
DatastoreStruct | This interface provides an abstraction for a Datastore sequence. |
DatastoreTable | This interface provides an abstraction for a Datastore table. |
DatastoreType | This interface specifies common behavior for a Datastore Type. |
Evolvable | Supported API: true Extendable: true |
FilterResultProcessor | This interface extends ResultProcessor to support methods for filtering results to an underlying ResultProcessor. |
IdentificationObjectNamespace | Supported API: false Extendable: false |
IdentificationObjectNamespaceDelegate | Supported API: false Extendable: false |
Identified | Identified is the interface to be implemented by classes that have attribute or collection of attributes that distinguishes the object. |
IdentityService | Remote interface with public identity service methods. |
Link | Link is the interface that represents any kind of associations between two or more domain-specific objects. |
LinkRoleIndicator | |
Named | A Named class has a name. |
NetFactor | Interface which specifies basic characteristics of Windchill code generation classes. |
ObjectMappable | Objects that implement ObjectMappable have code generated methods that enable them to go in and out of relational databases. |
ObjectVectorIfc | Interface that specifies the APIs used to manipulate an object vector
Supported API: true Extendable: false |
Persistable | Objects that implement the Persistable interface are first class objects that may be targets of PersistenceManager operations. |
PersistenceManager | The PersistenceManager interface identifies the set of methods that applications use to manage the persistent state of their business objects. |
PersistenceManagerSvr | The PersistenceManagerSvr interface identifies the set of PersistentManager
methods that are invokable only from classes running in the method server
Supported API: true Extendable: false |
QueryKey | Interface that defines the properties of an object that allow it to be queried out of persistent storage and to perform comparison operations against an object using those properties. |
QueryStringDelegate | Supported API: false Extendable: false |
ReferenceDelegate | Supported API: false Extendable: false |
ReferentialIntegrityExceptionHandler | This interface specificies delegate methods for additional processing relateted to ReferentialIntegrityException. |
ResultProcessor | Supported API: false Extendable: false |
UniquelyIdentified | Interface that marks Identified classes for which the identity is subject to uniqueness constraint. |
WTReference | Interface that defines the basic notion of holding a reference to a Persistable
object. |
Class Summary | |
AbstractDatastoreArray | This abstract class contains common implementation for a Datastore Type. |
AbstractDatastoreStruct | This abstract class contains common implementation for a Datastore Type. |
AbstractFilterResultProcessor | This abstract class provides implmentation for some common FilterResultProcessor methods. |
ActionIconDelegate | Supported API: false Extendable: false |
BasicObjectVector | This class implments a basic vector of objects and is used to hold query results. |
BinaryLinkUtilities | Utility static methods for working with BinaryLink objects. |
CachedObjectReference | Supported API: false Extendable: false |
CachedObjectReference.Singleton | |
DynamicEnumType | Supported API: true Extendable: true |
EnumeratedType | A type that has a defined list of valid values, which may change over time. |
EnumeratedType.OrderOnDisplay | |
EnumeratedType.OrderOnOrder | |
EnumeratedTypeUtil | A set utility methods for working with EnumeratedTypes. |
ETLocaleTool | |
EvolvableHelper | Facilitates special operations needed by objects that evolve during deserialization. |
ExtendedPageResults | This class represents the persistent table used for storing extended paging results. |
ExtendedPageResultsList | Supported API: false Extendable: false |
ExtendedPageResultTable |
Use the newExtendedPageResultTable static factory method(s),
not the ExtendedPageResultTable constructor, to construct
instances of this class. |
ForeignKeyLink | Abstract class that represents an association between two Persistables where one of the objects persistently holds a reference to the other. |
IconDelegate | Supported API: true Extendable: false |
IconDelegateFactory | Supported API: true Extendable: false |
IdentificationObject | The IdentificationObject is an abstract class that encapsulates information about the identity of a single class or a set of classes. |
IdentityCollationKeyFactory | A collation key factory for Identified objects. |
IdentityHelper | The IdentityHelper provides access to the identity service through its public 'service' member. |
IdentityMigrateHelper | Provides migration with a way to assign values to restricted attributes |
IdentityServiceEvent | The IdentityServiceEvent encapsulates identity change events. |
IdentityServiceFwd | Remote interface with public identity service methods. |
IdOidObject | This class represents a Datastore struct for an ID and ObjectIdentifier pair. |
IdOidObjectList | This class represents a Datastore array for a list of ID and ObjectIdentifier pairs. |
IDSequence | This class represents the datastore sequnce for generating ObjectIdentifier ID values. |
IdUpdateCountObject | This class represents a Datastore struct containing an object's ID and update count. |
IdUpdateCountObjectList | This class represents a Datastore array containing IdUpdateCountObject objects. |
Item | Item is the abstract base class that represents discrete items that can be associated with an administrative domain and are directly subject to access control. |
IteratedObjectVector | Supported API: false Extendable: false |
LinkVector | |
LobLocator | LobLocator provides interfaces to store and retrieve large objects (LOBs) from a datastore. |
ObjectIdentifier | ObjectIdentifier represents a unique identifier assigned to the object by the PersistenceManager when it saves a Persistable object to a datastore. |
ObjectReference | Holds a reference to a Persistable object by means of the
object's ObjectIdentifier . |
ObjectReferenceDelegate | Supported API: false Extendable: false |
ObjectReferenceQueryStringDelegate | Supported API: false Extendable: false |
ObjectReferenceSearch | Extends the basic AttributeSearchSpecification class to support handling of an Object Reference. |
ObjectReferenceSearchValue | Supported API: false Extendable: false |
ObjectSetVector | Supported API: false Extendable: false |
ObjectTable | A table of Persistable objects with support for maintaining a set of
shared ObjectReference objects which may refer to objects in the table. |
ObjectTable.OidArrayImpl | |
ObjectToObjectLink | Abstract class that represents an association between two Persistable
objects. |
ObjectVector | Supported API: false Extendable: false |
ObjectVectorEnumerator | Supported API: false Extendable: false |
OidObject | This class represents a Datastore struct for an ObjectIdentifier. |
OidObjectList | Supported API: false Extendable: false |
PageResults | This class represents the persistent table used for storing paging results. |
PageResultsList | Supported API: false Extendable: false |
PageResultTable |
Use the newPageResultTable static factory method(s), not
the PageResultTable constructor, to construct instances
of this class. |
PagingCleanup | |
PagingQueryResult | This class is a container of results returned from a query along with paging session information. |
PagingQueueDriver | |
PagingSession | This class represents a persistent paging session. |
PagingSessionHelper | This class provides static helper methods for managing PagingSessions. |
PersistenceHelper | The class contains utility methods associated with the PersistenceManager. |
PersistenceManagerEvent | Used to represent events occuring within the PersistenceManager. |
PersistenceManagerFwd | The PersistenceManager interface identifies the set of methods that applications use to manage the persistent state of their business objects. |
PersistenceServerHelper | This class implements helper methods for server side PersistenceManagerSvr operations. |
PersistentReference | This class holds a WTReference in a persistant form regardless of the type of reference. |
PersistentReferenceQueryStringDelegate | Supported API: false Extendable: false |
PersistInfo | PersistInfo represents the information that must be maintained about a Persistable object. |
QueryResult | The QueryResult class is a container of results returned from a query. |
QueryResult.ChunkedExternalization | Class used when streaming large results set to overcome scalability limitations of object streams by resetting stream at reasonable intervals. |
QueryResult.DuplicateStringEliminator | Class used to eliminate duplicate strings from large query result stream. |
QueryStringDelegateFactory | Supported API: false Extendable: false |
RawObject |
Use the newRawObject static factory method(s), not the RawObject
constructor, to construct instances of this class. |
RawObjectList | Supported API: false Extendable: false |
ReCreateSemanticKeys | This gets called immediately after all the SemanticKeys with no references are deleted. |
ReferenceDelegateFactory | Supported API: false Extendable: false |
ReferenceFactory | A factory for getting references and strings that refer to persistable objects. |
ReferenceResolver | Uses introspection and reflection to find the best matching reference class for a given Persistable class. |
RequiredBlobMigrator | This class implements a migrator to check Required BLOB columns to ensure that the column does not contain a valid BLOB with zero length. |
RowObject |
Use the newRowObject static factory method(s), not the RowObject
constructor, to construct instances of this class. |
RowObjectList | Supported API: false Extendable: false |
SemanticKey | The SemanticKey class helps to ensure the uniqueness constraint on object's identity. |
SequencePool | This class is used to manage a pool of sequence values obtained from a datastore seuqence. |
SimpleLinkRoleIndicator | |
SourceLinkMapResultProcessor | The ResultProcessor creates a mapping of source QueryKeys and associated Link ObjectIdentifiers stored in a WTArrayList value. |
StandardIdentityService | Standard implementation of the identity service. |
StandardPersistenceManager | StandardPersistenceManager is a concrete persistent manager targeted for WTObject classes. |
StandardPersistenceManager.AbstractInsertUpdateProcessor | |
StandardPersistenceManager.PersistInfoData | |
StandardPersistenceManager.ReferentialIntegrityValidator | |
StandardReferentialIntegrityExceptionHandler | The class implements a standard mechanism for building a single generic message for each referential integrity violation. |
StreamObjectVector | Supported API: false Extendable: false |
StringKey |
Use the newStringKey static factory method(s), not the StringKey
constructor, to construct instances of this class. |
TableOfDate | Supported API: false Extendable: false |
TableOfNumber | Supported API: false Extendable: false |
TableOfVarchar2 | Supported API: false Extendable: false |
TheSemanticKeyTheUniquelyIdentified |
Use the newTheSemanticKeyTheUniquelyIdentified static factory
method(s), not the TheSemanticKeyTheUniquelyIdentified constructor,
to construct instances of this class. |
VersionReferenceDelegate | Supported API: false Extendable: false |
VersionReferenceQueryStringDelegate | Supported API: false Extendable: false |
WTCollectionRetrySingleProcessor | This class implments a Template Method design pattern for executing a multi-object operation such that if it fails with an exception, a new exception can be constructed that will indicate the exact objects that failed. |
WTLargeStringSet | This class duplicates the behavior of WTStringSet, but does NOT limit the total number of bytes in the String's it contains. |
WTObject | WTObject is the abstract base class for all domain-specific item and link classes. |
WTObjectCounter | |
WTStringMap | WTStringMap class maps keys to values. |
WTStringSet | This class represents sets of strings that are represented in the database as a comma separated list of the strings it contains. |
Exception Summary | |
InvalidAttributeException | Supported API: true Extendable: false |
InvalidNavigateSourceException | Supported API: true Extendable: false |
InvalidRoleException | Supported API: true Extendable: false |
ModificationNotAllowedException | Supported API: true Extendable: false |
ObjectNoLongerExistsException | Supported API: true Extendable: false |
ObjectNotForLinkException | Supported API: true Extendable: false |
ReferentialIntegrityException | This exception is used to report exception information related to referential integrity violations. |
Provides high level datastore access by using the PersistenceManager
(and server-side-only
PersistenceManagerSvr
) to find and manage Persistable
objects. Also, contains
the IdentityService
to manage Identified
objects.
The PersistenceManager methods generally take Persistable
objects as argument values and/or return
them as results. Classes that implement Persistable have the necessary code generated to read and write data to
and from the database and display its identity. Applications should access the PersistenceManager through a
convenience class named PersistenceHelper
. This class also contains methods for accessing Persistence
information and other utility methods for common operations that use PersistenceManager. The PersistenceManager
service implementation also supports event notification for most of its operations.
The PersistenceManager service implementation dispatches the PersistenceManagerEvent
for various
operations. The types of events are defined as static fields on this class. The event target object can be
a single Persistable, a WTCollection
of Persistables, or a
WTKeyedMap
of Persistables. The actual event target object is based on the event type.
Persistable objects are first created in memory and can then be persisted to the datastore using the methods
PersistenceManager.store(wt.fc.Persistable)
or
PersistenceManager.store(wt.fc.collections.WTCollection)
. The general pattern for constructing
a persistent business object is as follows.
Example:
Customer c = Customer.newCustomer("Acme");
c.setPhone("555-1234");
c.setAddressUS(anAddress);
c = (Customer)PersistenceHelper.manager.store(c);
Customer.newCustomer("Acme")
calls initialize("Acme")
, whereas
Customer c = new Customer()
does not. Always construct business objects with the factory method
created by system generation. Also, note that setting the local variable to the return value is important in
programming the client because the underlying RMI makes copies of the objects referenced by the arguments of
the method. This means that objects passed as arguments by the client in the create method are not changed
by the operations that occur on the method server.
Persistable objects that have already been persisted can be modified in the datastore using the
methods PersistenceManager.modify(wt.fc.Persistable)
or
PersistenceManager.modify(wt.fc.collections.WTCollection)
. The general pattern for modifying
a persistent business object is as follows.
Example:
Customer aCustomer = ...;
aCustomer.setPhone("555-0000");
aCustomer = (Customer)PersistenceHelper.manager.modify(aCustomer);
Persistable objects that have already been persisted can be deleted from the datastore using the
methods PersistenceManager.delete(wt.fc.Persistable)
or
PersistenceManager.delete(wt.fc.collections.WTSet)
. In addition to deleting the object, the
persistence service will also perform referential integrity processing. This processing is driven by the
modeled associations and properties related to the target object. The Rose model properties affect this behavior.
Persistable
objects can be retrieved from the datastore using
PersistenceManager.refresh(Persistable obj,boolean fullRefresh,boolean inPlace,boolean lock)
or
PersistenceManagerSvr.restore(Persistable obj,boolean fullRestore,boolean inPlace,boolean checkFreshness,boolean lock)
.
The refresh and restore methods ensure that neither the client nor the server has a stale business object.
The refresh method performs the following operations.
Client code typically provides mechanisms that let you decide when business information should be refreshed. Server code should refresh the business object before performing any significant operation on that object. There is, however, one important exception to this rule: do not refresh the target object of an event in a service event listener and then subsequently update or modify the object. Because the refresh method actually returns a new object, the update count of the event’s target object will not be incremented when the update operation is called. Then, when any subsequent listeners are notified of the event and try to update it, they will get an ObjectIsStaleException because the update count of the in-memory object differs from that in the database.
Both of these methods provide signatures that support specifying an "in-place" refresh or restore. When "in-place" is true, then the Persistable argument passed to the method is populated with persistent attributes from the datastore. If false, then a new Persistable object is created and populated. The following are implications of using "in-place" refresh or restore.
Both of these methods provide signatures that support specifying a "locking" refresh or restore. When "lock" is true, then the persistent row in the datastore is locked. This means that no other code executing can modify, delete, or lock that same object without blocking.
Objects in the persistent datastore can be updated or deleted without passing the full objects as arguments. A
Batch Specfication object is constructed that describes the update or delete operation and the objects that are affected.
This specfication object is then used as an argument to the PersistenceManagerSvr.execute(AbstractBatchSpec)
method. Note that when using this method, no events are guaranteed to be dispatched. For more details on constructing
a Batch Specification object, see the wt.fc.batch package.
Objects in the persistent datastore can be retrieved without passing the full objects as arguments. A Statement
Specfication object is constructed that describes the object types and criteria to use for querying the objects.
This specfication object is then used as an argument to the PersistenceManager.find(StatementSpec)
or
PersistenceManagerSvr.query(StatementSpec)
methods. For more details on constructing a Statement
Specification object, see the wt.query package.
Objects retrieved from the persistent datastore are returned in a QueryResult
object. When the
PersistenceManager.find(StatementSpec)
method is called, any objects retrieved that the user is
not allowed to view are removed from the result before it is returned to the caller.
A navigate operation is a specialized form of a retrival operation that returns objects associated to other
objects. A navigate is similar to a "join" between the source object(s) and the associated objects. The Windchill
information model supports associations of BinaryLink
between two object types. Each side of
the association has a named role. When navigating an association, the BinaryLink implementation type or
linkClass is specified along with the role which specifies the direction to navigate. The navigate operations
also support an "onlyOtherSide" argument. This argument indicates whether the association's link objects should
be returned (onlyOtherSide=false) or the role objects should be returned (onlyOtherSide=true). The source object
can either be a single Persistable object or a collection of Persistable objects. The navigate operation is
supported with the helper method PersistenceHelper.navigate(Object,String,Class,boolean)
which
also returns a QueryResult
object and filters out any objects that the user is not allowed to view.
|
|||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |