You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by "Craig Russell (JIRA)" <ji...@apache.org> on 2007/01/07 18:22:27 UTC

[jira] Assigned: (JDO-459) PersistenceCapable.jdoIsDetached needs update to reflect latest

     [ https://issues.apache.org/jira/browse/JDO-459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Craig Russell reassigned JDO-459:
---------------------------------

    Assignee: Craig Russell

> 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
>         Assigned To: Craig Russell
>             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