001: package org.apache.ojb.odmg.states;
002:
003: /* Copyright 2002-2005 The Apache Software Foundation
004: *
005: * Licensed under the Apache License, Version 2.0 (the "License");
006: * you may not use this file except in compliance with the License.
007: * You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: import org.apache.ojb.odmg.ObjectEnvelope;
019: import org.apache.ojb.broker.PersistenceBrokerException;
020:
021: /**
022: * this state represents objects which are not persisted and no longer used.
023: */
024: public class StateTransient extends ModificationState {
025: private static StateTransient _instance = new StateTransient();
026:
027: /**
028: * private constructor: we use singleton instances
029: */
030: private StateTransient() {
031: }
032:
033: /**
034: * perform a checkpoint, i.e. perform updates on underlying db but keep locks on objects
035: */
036: public static StateTransient getInstance() {
037: return _instance;
038: }
039:
040: /**
041: * return resulting state after marking clean
042: */
043: public ModificationState markClean() {
044: return this ;
045: }
046:
047: /**
048: * return resulting state after marking delete
049: */
050: public ModificationState markDelete() {
051: return this ;
052: }
053:
054: /**
055: * return resulting state after marking dirty
056: */
057: public ModificationState markDirty() {
058: return this ;
059: }
060:
061: /**
062: * return resulting state after marking new
063: */
064: public ModificationState markNew() {
065: return StateNewClean.getInstance();
066: }
067:
068: /**
069: * return resulting state after marking old
070: */
071: public ModificationState markOld() {
072: return this ;
073: }
074:
075: /**
076: * object is new, thus we need an INSERT to store it
077: */
078: public boolean needsInsert() {
079: return false;
080: }
081:
082: /**
083: * checkpoint the transaction
084: */
085: public void checkpoint(ObjectEnvelope mod)
086: throws PersistenceBrokerException {
087: }
088:
089: /**
090: * commit the associated transaction
091: */
092: public void commit(ObjectEnvelope mod)
093: throws PersistenceBrokerException {
094: }
095:
096: /**
097: * rollback the transaction
098: */
099: public void rollback(ObjectEnvelope mod) {
100: }
101:
102: public boolean isTransient() {
103: return true;
104: }
105: }
|