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    {
026        private static StateTransient _instance = new StateTransient();
027    
028        /**
029         * private constructor: we use singleton instances
030         */
031        private StateTransient()
032        {
033        }
034    
035        /**
036         * perform a checkpoint, i.e. perform updates on underlying db but keep locks on objects
037         */
038        public static StateTransient getInstance()
039        {
040            return _instance;
041        }
042    
043        /**
044         * return resulting state after marking clean
045         */
046        public ModificationState markClean()
047        {
048            return this;
049        }
050    
051        /**
052         * return resulting state after marking delete
053         */
054        public ModificationState markDelete()
055        {
056            return this;
057        }
058    
059        /**
060         * return resulting state after marking dirty
061         */
062        public ModificationState markDirty()
063        {
064            return this;
065        }
066    
067        /**
068         * return resulting state after marking new
069         */
070        public ModificationState markNew()
071        {
072            return StateNewClean.getInstance();
073        }
074    
075        /**
076         * return resulting state after marking old
077         */
078        public ModificationState markOld()
079        {
080            return this;
081        }
082    
083        /**
084         * object is new, thus we need an INSERT to store it
085         */
086        public boolean needsInsert()
087        {
088            return false;
089        }
090    
091        /**
092         * checkpoint the transaction
093         */
094        public void checkpoint(ObjectEnvelope mod) throws PersistenceBrokerException
095        {
096        }
097    
098    
099        /**
100         * commit the associated transaction
101         */
102        public void commit(ObjectEnvelope mod) throws PersistenceBrokerException
103        {
104        }
105    
106        /**
107         * rollback the transaction
108         */
109        public void rollback(ObjectEnvelope mod)
110        {
111        }
112    
113        public boolean isTransient()
114        {
115            return true;
116        }
117    }