001 package org.apache.ojb.otm.states;
002
003 /* Copyright 2003-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 /**
019 * this state represents persistent objects outside of transaction
020 * (no ODMG equivalent).
021 */
022 public class Hollow extends State
023 {
024
025 Hollow()
026 {
027 }
028
029 /**
030 * return a String representation
031 */
032 public String toString()
033 {
034 return "Hollow";
035 }
036
037 //-------------- State transitions --------------------
038
039 /**
040 * Describes the state transition when object is gotten from the cache
041 * or is loaded from database (once per transaction).
042 */
043 public State getObject()
044 throws IllegalObjectStateException
045 {
046 return State.PERSISTENT_CLEAN;
047 }
048
049 /**
050 * Describes the state transition when user modifies object
051 */
052 public State markDirty()
053 throws IllegalObjectStateException
054 {
055 return State.PERSISTENT_DIRTY;
056 }
057
058 /**
059 * Describes the state transition on deletePersistent()
060 */
061 public State deletePersistent()
062 throws IllegalObjectStateException
063 {
064 return State.PERSISTENT_DELETED;
065 }
066
067 public State rollback()
068 throws IllegalObjectStateException
069 {
070 return this;
071 }
072 }