public class TemporaryObjectID extends java.lang.Object implements DBObjectID
| Modifier and Type | Class and Description | 
|---|---|
| static class  | TemporaryObjectID.CopyBackPolicyIDPolicy to use when copying the temp copy of an object back over its
 original object. | 
| static class  | TemporaryObjectID.TemporaryIDPolicyIDPolicy that creates a TemporaryObjectID for every object that has the
 original object set. | 
UNSPECIFIED_TYPE| Modifier and Type | Method and Description | 
|---|---|
| java.lang.Object | copyTo(java.lang.Object target)Copies the internal state of  thisobject to the
  specifiedcopy. | 
| static DBObjectID | createID(DBObject obj)Creates a new DBObjectID pointing to a specific object. | 
| static DBObjectID | createID(DBObject obj,
        DBObject original)Creates a new DBObjectID pointing to a specific object. | 
| boolean | equals(DBObjectID other,
      boolean strict)Returns whether the DBObjectID  otheris "equal" to this id. | 
| boolean | equals(java.lang.Object obj) | 
| static DBObjectID | findOriginalID(TemporaryObjectID id)Finds the original most ID in the given TemporaryObjectID's "original
 object" heirachy. | 
| static <T extends DBObject> | findOriginalObject(T obj)Recursively finds the original object for the given object, if the
 given object is a copy with a TemporaryObjectID. | 
| static DBObject | findOriginalObject(TemporaryObjectID id)Returns the original object's id, or null if there is no original
 object. | 
| DBObject | getDBObject()Gets the object that this ID resolves to. | 
| DBObject | getOriginalObject()Get the original object which this temporary one was copied from. | 
| static <T extends DBObject> | getOriginalObject(T obj)Gets the original object for the given object, if it has a
 TemporaryObjectID. | 
| DBObjectID | getParent()Returns null. | 
| java.lang.String | getType()Retrieves the type of object referenced by this id. | 
| int | hashCode() | 
| DBObject | resolveID()Resolves the id into the object referenced. | 
| DBObject | resolveOriginalID()Deprecated. 
 use  getOriginalObject()which does not throw
 DBException. | 
| static void | setID(DBObject obj,
     boolean recurse)If the given object doesn't have an ID, this sets a new
 TemporaryObjectID on the object. | 
| java.lang.String | toString() | 
public java.lang.Object copyTo(java.lang.Object target)
Copyablethis object to the
  specified copy.  If copy is
  null, then this method should create a new instance
  of this class and proceed to copy the internal state
  to the newly created object.  Generally, only the persistent
  state of the object should be copied, but whether or not it is
  appropriate to copy transient properties is at the discretion
  of the individual implementor.
  Regardless of whether the copy occurs to an existing object or to
  a newly created object, the return value is object to which
  this object's state was copied.
  There is a standard implementation pattern for the
  copyTo method that helps avoid problems that arise
  when a Copyable object is subclassed.  The pattern
  is:
    public Object copyTo( Object target )
    {
      final <this_class> copy =
        target != null ? (<this_class>) target : new <this_class>();
      copyToImpl( copy );
      return copy;
    }
    protected final void copyToImpl( <this_class> copy )
    {
      super.copyToImpl( copy );  //  if necessary
      //  put code here for copying the properties of <this_class>
    }
  copyToImpl method is
  the same type of this class.  The responsibility of
  copyToImpl is to copy the state of this
  class through direct access of the fields.  The
  copyToImpl method should not use getters and setters
  since these may be overridden, causing the state of
  this class to be incompletely copied.copyTo in interface Copyabletarget - The target object to which the state of
  this object should be copied.  If target
  is null, then the copyTo method will
  return a new instance of this class.this
  object was copied.  If the target was
  non-null, then the return value is the same as the
  target object that was passed in; otherwise, the
  return value is a new instance of this class.public final boolean equals(java.lang.Object obj)
equals in class java.lang.Objectpublic boolean equals(DBObjectID other, boolean strict)
other is "equal" to this id.
 Due to the nature of TemporaryObjectIDs the notion of "strict" is
 slightly looser than it is for other ids. Strict equality for
 TemporaryObjectID means one the following must be true:
 other is a TemporaryObjectID and one of the following is
 also true:
  other's original chain.other's object is anywhere in this id's original chain.other equates strictly to the id of any object in this id's
 original object chain.other is NameBasedID that has matching details to the
 underlying object in this id.Note that in order to make equals commutative there is code in AbstractDBObjectID to ensure comparison of a TemporaryObjectID and a non-TemporaryObjectID is always done by this method. If another DBObjectID subclass does not extend AbstractDBObjectID it must ensure that as well.
equals in interface DBObjectIDother - the other id to compare to this idstrict - whether to perform a strict comparisonpublic java.lang.String getType()
DBObjectIDgetType in interface DBObjectIDDBObject.getType()public DBObjectID getParent()
getParent in interface DBObjectIDpublic DBObject resolveID() throws DBException
DBObjectIDresolveID in interface DBObjectIDDBExceptionpublic DBObject getOriginalObject()
public DBObject getDBObject()
@Deprecated public DBObject resolveOriginalID() throws DBException
getOriginalObject() which does not throw
 DBException.DBExceptionpublic java.lang.String toString()
toString in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic static DBObjectID createID(DBObject obj)
obj - the DBObject referenced by this IDpublic static void setID(DBObject obj, boolean recurse)
obj - the DBObject referenced by this IDrecurse - whether to set TemporaryObjectIDs on obj's descendentspublic static DBObjectID createID(DBObject obj, DBObject original)
obj - the DBObject referenced by this IDoriginal - the DBObject which has been copied to create the temporary objectpublic static DBObjectID findOriginalID(TemporaryObjectID id)
public static DBObject findOriginalObject(TemporaryObjectID id)
public static <T extends DBObject> T findOriginalObject(T obj)
getOriginalObject(DBObject).obj - the copy to find the original forfindOriginalObject(TemporaryObjectID)public static <T extends DBObject> T getOriginalObject(T obj)
findOriginalObject methods do.obj - the copy to find the direct original forobj's id isn't
 a TemporaryObjectID with an original.findOriginalObject(DBObject)