PersistenceCapable.jdoIsDetached needs update to reflect latest
---------------------------------------------------------------

                 Key: JDO-459
                 URL: https://issues.apache.org/jira/browse/JDO-459
             Project: JDO
          Issue Type: Bug
          Components: specification
    Affects Versions: JDO 2 final
            Reporter: Andy Jefferson
             Fix For: JDO 2 maintenance release 1


There are two issues.
1. The JDO2 spec 21.21.3 has a suggested implementation of jdoIsDetached. This 
was clearly written before we added "jdoDetachedState" to the 
PersistenceCapable interface and so a StateManager is not present on a detached 
object.

2. When we have a base class that is not detachable and a subclass that is 
detachable we have a problem to define PersistenceCapable.jdoIsDetached since 
the base class has no "jdoDetachedState", and the method is final so cant be 
overridden by subclasses. We have 2 possible solutions to this. Either we 
change the signature of jdoIsDetached to not be final (allowing subclasses to 
override it), or we implement it like this

Root class be enhanced with the following method
public final boolean jdoIsDetached()
{
    return jdoIsDetachedInternal();
}

and if a class is Detachable it also gains the following method
protected boolean jdoIsDetachedInternal()
{
    if (jdoStateManager == null)
    {
        if (jdoDetachedState == null)
            return false;
        return true;
    }
    return false;
}

and if a class is not Detachable it gains the following method
protected boolean jdoIsDetachedInternal()
{
    return false;
}

This would then cater for the root class not being Detachable, and 
subclass(es) being Detachable.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to