db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andy Jefferson (JIRA)" <j...@apache.org>
Subject [jira] Created: (JDO-459) PersistenceCapable.jdoIsDetached needs update to reflect latest
Date Sun, 07 Jan 2007 08:42:27 GMT
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

        

Mime
View raw message