All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.jdo.spi.StateManager Maven / Gradle / Ivy

Go to download

The Java Data Objects API (JDO) : a standard interface-based Java model abstraction of persistence, developed by the JCP.

There is a newer version: 3.2.1
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 * See the License for the specific language governing permissions and 
 * limitations under the License.
 */

package javax.jdo.spi;

import javax.jdo.PersistenceManager;

/** This interface is the point of contact between managed instances of
 * PersistenceCapable classes and the JDO implementation.  It 
 * contains the methods used by PersistenceCapable instances to 
 * delegate behavior to the JDO implementation.
 *

Each managed PersistenceCapable instance contains a reference * to a StateManager. A StateManager might manage one * or multiple instances of PersistenceCapable instances, at the * choice of the implementation. * * @version 2.0 * */ public interface StateManager { /** The owning StateManager uses this method to supply the * value of the flags to the PersistenceCapable instance. * @param pc the calling PersistenceCapable instance * @return the value of jdoFlags to be stored in the * PersistenceCapable instance */ byte replacingFlags(PersistenceCapable pc); /** Replace the current value of jdoStateManager. *

* This method is called by the PersistenceCapable whenever * jdoReplaceStateManager is called and there is already * an owning StateManager. This is a security precaution * to ensure that the owning StateManager is the only * source of any change to its reference in the * PersistenceCapable. * @return the new value for the jdoStateManager * @param pc the calling PersistenceCapable instance * @param sm the proposed new value for the jdoStateManager */ StateManager replacingStateManager (PersistenceCapable pc, StateManager sm); /** Tests whether this object is dirty. * * Instances that have been modified, deleted, or newly * made persistent in the current transaction return true. * *

Transient nontransactional instances return false. *

* @see PersistenceCapable#jdoMakeDirty(String fieldName) * @param pc the calling PersistenceCapable instance * @return true if this instance has been modified in the * current transaction. */ boolean isDirty(PersistenceCapable pc); /** Tests whether this object is transactional. * * Instances that respect transaction boundaries return true. * These instances include transient instances made transactional as a * result of being the target of a makeTransactional method * call; newly made persistent or deleted persistent instances; persistent * instances read in data store transactions; and persistent instances * modified in optimistic transactions. * *

Transient nontransactional instances return false. *

* @param pc the calling PersistenceCapable instance * @return true if this instance is transactional. */ boolean isTransactional(PersistenceCapable pc); /** Tests whether this object is persistent. * * Instances whose state is stored in the data store return * true. * *

Transient instances return false. *

* @see PersistenceManager#makePersistent(Object pc) * @param pc the calling PersistenceCapable instance * @return true if this instance is persistent. */ boolean isPersistent(PersistenceCapable pc); /** Tests whether this object has been newly made persistent. * * Instances that have been made persistent in the current transaction * return true. * *

Transient instances return false. *

* @see PersistenceManager#makePersistent(Object pc) * @param pc the calling PersistenceCapable instance * @return true if this instance was made persistent * in the current transaction. */ boolean isNew(PersistenceCapable pc); /** Tests whether this object has been deleted. * * Instances that have been deleted in the current transaction return * true. * *

Transient instances return false. *

* @see PersistenceManager#deletePersistent(Object pc) * @param pc the calling PersistenceCapable instance * @return true if this instance was deleted * in the current transaction. */ boolean isDeleted(PersistenceCapable pc); /** Return the PersistenceManager that owns this instance. * @param pc the calling PersistenceCapable instance * @return the PersistenceManager that owns this instance */ PersistenceManager getPersistenceManager (PersistenceCapable pc); /** Mark the associated PersistenceCapable field dirty. *

The StateManager will make a copy of the field * so it can be restored if needed later, and then mark * the field as modified in the current transaction. * @param pc the calling PersistenceCapable instance * @param fieldName the name of the field */ void makeDirty (PersistenceCapable pc, String fieldName); /** Return the object representing the JDO identity * of the calling instance. If the JDO identity is being changed in * the current transaction, this method returns the identity as of * the beginning of the transaction. * @param pc the calling PersistenceCapable instance * @return the object representing the JDO identity of the calling instance */ Object getObjectId (PersistenceCapable pc); /** Return the object representing the JDO identity * of the calling instance. If the JDO identity is being changed in * the current transaction, this method returns the current identity as * changed in the transaction. * @param pc the calling PersistenceCapable instance * @return the object representing the JDO identity of the calling instance */ Object getTransactionalObjectId (PersistenceCapable pc); /** Return the object representing the version * of the calling instance. * @param pc the calling PersistenceCapable instance * @return the object representing the version of the calling instance * @since 2.0 */ Object getVersion (PersistenceCapable pc); /** Return true if the field is cached in the calling * instance. * @param pc the calling PersistenceCapable instance * @param field the field number * @return whether the field is cached in the calling instance */ boolean isLoaded (PersistenceCapable pc, int field); /** Guarantee that the serializable transactional and persistent fields * are loaded into the instance. This method is called by the generated * jdoPreSerialize method prior to serialization of the * instance. * @param pc the calling PersistenceCapable instance */ void preSerialize (PersistenceCapable pc); /** Return the value for the field. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @return the new value for the field */ boolean getBooleanField ( PersistenceCapable pc, int field, boolean currentValue); /** Return the value for the field. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @return the new value for the field */ char getCharField (PersistenceCapable pc, int field, char currentValue); /** Return the value for the field. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @return the new value for the field */ byte getByteField (PersistenceCapable pc, int field, byte currentValue); /** Return the value for the field. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @return the new value for the field */ short getShortField (PersistenceCapable pc, int field, short currentValue); /** Return the value for the field. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @return the new value for the field */ int getIntField (PersistenceCapable pc, int field, int currentValue); /** Return the value for the field. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @return the new value for the field */ long getLongField (PersistenceCapable pc, int field, long currentValue); /** Return the value for the field. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @return the new value for the field */ float getFloatField (PersistenceCapable pc, int field, float currentValue); /** Return the value for the field. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @return the new value for the field */ double getDoubleField (PersistenceCapable pc, int field, double currentValue); /** Return the value for the field. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @return the new value for the field */ String getStringField (PersistenceCapable pc, int field, String currentValue); /** Return the value for the field. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @return the new value for the field */ Object getObjectField (PersistenceCapable pc, int field, Object currentValue); /** Mark the field as modified by the user. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @param newValue the proposed new value of the field */ void setBooleanField (PersistenceCapable pc, int field, boolean currentValue, boolean newValue); /** Mark the field as modified by the user. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @param newValue the proposed new value of the field */ void setCharField (PersistenceCapable pc, int field, char currentValue, char newValue); /** Mark the field as modified by the user. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @param newValue the proposed new value of the field */ void setByteField (PersistenceCapable pc, int field, byte currentValue, byte newValue); /** Mark the field as modified by the user. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @param newValue the proposed new value of the field */ void setShortField (PersistenceCapable pc, int field, short currentValue, short newValue); /** Mark the field as modified by the user. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @param newValue the proposed new value of the field */ void setIntField (PersistenceCapable pc, int field, int currentValue, int newValue); /** Mark the field as modified by the user. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @param newValue the proposed new value of the field */ void setLongField (PersistenceCapable pc, int field, long currentValue, long newValue); /** Mark the field as modified by the user. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @param newValue the proposed new value of the field */ void setFloatField (PersistenceCapable pc, int field, float currentValue, float newValue); /** Mark the field as modified by the user. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @param newValue the proposed new value of the field */ void setDoubleField (PersistenceCapable pc, int field, double currentValue, double newValue); /** Mark the field as modified by the user. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @param newValue the proposed new value of the field */ void setStringField (PersistenceCapable pc, int field, String currentValue, String newValue); /** Mark the field as modified by the user. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field * @param newValue the proposed new value of the field */ void setObjectField (PersistenceCapable pc, int field, Object currentValue, Object newValue); /** The value of the field requested to be provided to the * StateManager. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field */ void providedBooleanField (PersistenceCapable pc, int field, boolean currentValue); /** The value of the field requested to be provided to the * StateManager. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field */ void providedCharField (PersistenceCapable pc, int field, char currentValue); /** The value of the field requested to be provided to the * StateManager. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field */ void providedByteField (PersistenceCapable pc, int field, byte currentValue); /** The value of the field requested to be provided to the * StateManager. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field */ void providedShortField (PersistenceCapable pc, int field, short currentValue); /** The value of the field requested to be provided to the * StateManager. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field */ void providedIntField (PersistenceCapable pc, int field, int currentValue); /** The value of the field requested to be provided to the * StateManager. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field */ void providedLongField (PersistenceCapable pc, int field, long currentValue); /** The value of the field requested to be provided to the * StateManager. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field */ void providedFloatField (PersistenceCapable pc, int field, float currentValue); /** The value of the field requested to be provided to the * StateManager. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field */ void providedDoubleField (PersistenceCapable pc, int field, double currentValue); /** The value of the field requested to be provided to the * StateManager. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field */ void providedStringField (PersistenceCapable pc, int field, String currentValue); /** The value of the field requested to be provided to the * StateManager. * @param pc the calling PersistenceCapable instance * @param field the field number * @param currentValue the current value of the field */ void providedObjectField (PersistenceCapable pc, int field, Object currentValue); /** The replacement value of the field in the calling instance. * @param pc the calling PersistenceCapable instance * @param field the field number * @return the new value for the field */ boolean replacingBooleanField (PersistenceCapable pc, int field); /** The replacement value of the field in the calling instance. * @param pc the calling PersistenceCapable instance * @param field the field number * @return the new value for the field */ char replacingCharField (PersistenceCapable pc, int field); /** The replacement value of the field in the calling instance. * @param pc the calling PersistenceCapable instance * @param field the field number * @return the new value for the field */ byte replacingByteField (PersistenceCapable pc, int field); /** The replacement value of the field in the calling instance. * @param pc the calling PersistenceCapable instance * @param field the field number * @return the new value for the field */ short replacingShortField (PersistenceCapable pc, int field); /** The replacement value of the field in the calling instance. * @param pc the calling PersistenceCapable instance * @param field the field number * @return the new value for the field */ int replacingIntField (PersistenceCapable pc, int field); /** The replacement value of the field in the calling instance. * @param pc the calling PersistenceCapable instance * @param field the field number * @return the new value for the field */ long replacingLongField (PersistenceCapable pc, int field); /** The replacement value of the field in the calling instance. * @param pc the calling PersistenceCapable instance * @param field the field number * @return the new value for the field */ float replacingFloatField (PersistenceCapable pc, int field); /** The replacement value of the field in the calling instance. * @param pc the calling PersistenceCapable instance * @param field the field number * @return the new value for the field */ double replacingDoubleField (PersistenceCapable pc, int field); /** The replacement value of the field in the calling instance. * @param pc the calling PersistenceCapable instance * @param field the field number * @return the new value for the field */ String replacingStringField (PersistenceCapable pc, int field); /** The replacement value of the field in the calling instance. * @param pc the calling PersistenceCapable instance * @param field the field number * @return the new value for the field */ Object replacingObjectField (PersistenceCapable pc, int field); /** The replacement value of the detached state in the calling instance. * @param pc the calling Detachable instance * @param state the current value of the detached state * @return the replacement value for the detached state * @since 2.0 */ Object[] replacingDetachedState (Detachable pc, Object[] state); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy