Package org.datanucleus

Examples of org.datanucleus.StateManager


        if (value == null)
        {
            return null;
        }

        StateManager thisSM = ownerSM.getObjectManager().findStateManager(value);
        if (thisSM == null)
        {
            // Assign a StateManager to manage our embedded object
            thisSM = StateManagerFactory.newStateManagerForEmbedded(ownerSM.getObjectManager(), value, false);
            thisSM.addEmbeddedOwner(ownerSM, mmd.getAbsoluteFieldNumber());
            thisSM.setPcObjectType(objectType);
        }

        return thisSM;
    }
View Full Code Here


                    Map.Entry entry = (Map.Entry)iter.next();
                    Object key = entry.getKey();
                    Object value = entry.getValue();
                    if (fmd.getMap().keyIsPersistent())
                    {
                        StateManager objSM = om.findStateManager(key);
                        if (objSM == null)
                        {
                            objSM = StateManagerFactory.newStateManagerForEmbedded(om, key, false);
                            objSM.addEmbeddedOwner(ownerSM, fieldNumber);
                        }
                    }
                    if (fmd.getMap().valueIsPersistent())
                    {
                        StateManager objSM = om.findStateManager(value);
                        if (objSM == null)
                        {
                            objSM = StateManagerFactory.newStateManagerForEmbedded(om,  value, false);
                            objSM.addEmbeddedOwner(ownerSM, fieldNumber);
                        }
                    }
                }
            }
View Full Code Here

     */
    protected String getReferenceStringForObject(ObjectManager om, Object value)
    {
        if (om.getApiAdapter().isPersistable(value))
        {
            StateManager sm = om.findStateManager(value);
            if (sm == null)
            {
                // Referenced object is not yet persistent, so persist it
                om.persistObjectInternal(value, null, null, -1, StateManager.PC);
                sm = om.findStateManager(value);
                sm.flush(); // Make sure the object is in the datastore so the id is set
            }
            if (sm != null)
            {
                String refString = null;
                if (mappingStrategy == ID_MAPPING)
                {
                    refString = value.getClass().getName() + ":" + sm.getInternalObjectId();
                }
                else if (mappingStrategy == XCALIA_MAPPING)
                {
                    AbstractClassMetaData cmd = sm.getClassMetaData();
                    DiscriminatorMetaData dismd = cmd.getDiscriminatorMetaDataForTable();
                    String definer = null;
                    if (dismd != null && dismd.getValue() != null)
                    {
                        definer = dismd.getValue();
                    }
                    else
                    {
                        definer = cmd.getFullClassName();
                    }
                    if (cmd.getIdentityType() == IdentityType.DATASTORE)
                    {
                        refString = definer + ":" + ((OID)sm.getInternalObjectId()).getKeyValue();
                    }
                    else
                    {
                        refString = definer + ":" + sm.getInternalObjectId().toString();
                    }
                }
                return refString;
            }
            else
View Full Code Here

                ObjectManager om = ownerSM.getObjectManager();
                Iterator iter = c.iterator();
                while (iter.hasNext())
                {
                    Object pc = iter.next();
                    StateManager objSM = om.findStateManager(pc);
                    if (objSM == null)
                    {
                        objSM = StateManagerFactory.newStateManagerForEmbedded(om, pc, false);
                        objSM.addEmbeddedOwner(ownerSM, fieldNumber);
                    }
                }
            }

            if (backingStore != null && useCache && !isCacheLoaded)
View Full Code Here

    {
        ApiAdapter api = om.getApiAdapter();
        if (api.isPersistable(value))
        {
            // Assign a StateManager to the serialised object if none present
            StateManager embSM = om.findStateManager(value);
            if (embSM == null || api.getObjectManager(value) == null)
            {
                embSM = StateManagerFactory.newStateManagerForEmbedded(om, value, false);
                embSM.addEmbeddedOwner(ownerSM, fieldNumber);
            }
        }

        StateManager sm = null;
        if (api.isPersistable(value))
        {
            // Find SM for serialised PC object
            sm = om.findStateManager(value);
        }

        if (sm != null)
        {
            sm.setStoringPC();
        }
        getDataStoreMapping(0).setObject(preparedStatement, exprIndex[0], value);
        if (sm != null)
        {
            sm.unsetStoringPC();
        }
    }
View Full Code Here

        Object obj = getDataStoreMapping(0).getObject(resultSet, exprIndex[0]);
        ApiAdapter api = om.getApiAdapter();
        if (api.isPersistable(obj))
        {
            // Assign a StateManager to the serialised object if none present
            StateManager embSM = om.findStateManager(obj);
            if (embSM == null || api.getObjectManager(obj) == null)
            {
                embSM = StateManagerFactory.newStateManagerForEmbedded(om, obj, false);
                embSM.addEmbeddedOwner(ownerSM, fieldNumber); // Feed dirty flags to the owning object
            }
        }
        return obj;
    }
View Full Code Here

            // Ordered List - no index so null the FK (if nullable) or delete the element
            if (ownerMapping.isNullable())
            {
                // Nullify the FK
                ObjectManager om = sm.getObjectManager();
                StateManager elementSM = om.findStateManager(element);
                if (relationType == Relation.ONE_TO_MANY_BI &&
                    om.getOMFContext().getPersistenceConfiguration().getBooleanProperty("datanucleus.manageRelationships"))
                {
                    // TODO Move this into manageRemovalOfElement
                    elementSM.replaceField(ownerMemberMetaData.getRelatedMemberMetaData(clr)[0].getAbsoluteFieldNumber(),
                        null, true);
                    if (sm.getObjectManager().isFlushing())
                    {
                        elementSM.flush();
                    }
                }
                // TODO Shouldn't we always null the FK in the datastore, not just when unidirectional?
                else
                {
View Full Code Here

                {
                    Object element = elementsIter.next();
                    if (om.getApiAdapter().isPersistable(element) && om.getApiAdapter().isDeleted(element))
                    {
                        // Element is waiting to be deleted so flush it (it has the FK)
                        StateManager objSM = om.findStateManager(element);
                        objSM.flush();
                    }
                    else
                    {
                        // Element not yet marked for deletion so go through the normal process
                        om.deleteObjectInternal(element);
View Full Code Here

                ObjectManager om = ownerSM.getObjectManager();
                Iterator iter = c.iterator();
                while (iter.hasNext())
                {
                    Object pc = iter.next();
                    StateManager objSM = om.findStateManager(pc);
                    if (objSM == null)
                    {
                        objSM = StateManagerFactory.newStateManagerForEmbedded(om, pc, false);
                        objSM.addEmbeddedOwner(ownerSM, fieldNumber);
                    }
                }
            }

            if (backingStore != null && useCache && !isCacheLoaded)
View Full Code Here

        }

        // Create a StateManager to give us a means of extracting the detached info
        PersistenceCapable pc = (PersistenceCapable)obj;
        org.datanucleus.ObjectManager thePM = ((JDOPersistenceManager)pm).getObjectManager();
        StateManager sm = StateManagerFactory.newStateManagerForDetached(thePM, pc, getObjectId(pc), null);
        pc.jdoReplaceStateManager((javax.jdo.spi.StateManager) sm); // Assign this StateManager to our detached object
        sm.retrieveDetachState(sm);
        String[] dirtyFieldNames = sm.getDirtyFieldNames();
        pc.jdoReplaceStateManager(null); // Remove the StateManager from our detached object

        return dirtyFieldNames;
    }
View Full Code Here

TOP

Related Classes of org.datanucleus.StateManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.