01: // THIS SOFTWARE IS PROVIDED BY SOFTARIS PTY.LTD. AND OTHER METABOSS
02: // CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
03: // BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
04: // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTARIS PTY.LTD.
05: // OR OTHER METABOSS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
06: // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
07: // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
08: // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
09: // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
10: // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
11: // EVEN IF SOFTARIS PTY.LTD. OR OTHER METABOSS CONTRIBUTORS ARE ADVISED OF THE
12: // POSSIBILITY OF SUCH DAMAGE.
13: //
14: // Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
15: package com.oldboss.framework.bo;
16:
17: import com.metaboss.enterprise.bo.BOException;
18:
19: /** Definition of the generic Entity object interface. Entity is analogous to the
20: * record in the table (entity type is like table type). Entity can be created,
21: * read, updated or deleted */
22: public interface BOObject {
23: /** ReadOnly is one of three major lifecycle stages BO can be in.
24: * In this state, all getXXXX() operation working Ok.
25: * All transactional methods fail with BOExceptionInvalidOperationForReadOnly
26: * @exception BOException look at exception's type and message for the specific errors */
27: public boolean isReadOnly() throws BOException;
28:
29: /** Deleted is one of three major lifecycle stages BO can be in.
30: * In this state, all operations will fail with BOExceptionInvalidOperationForDeleted
31: * @exception BOException look at exception's code and message for the specific errors */
32: public boolean isDeleted() throws BOException;
33:
34: /** BeingEdited is one of three major lifecycle stages BO can be in.
35: * In this state, all operations are working Ok.
36: * @exception BOException look at exception's code and message for the specific errors */
37: public boolean isBeingEdited() throws BOException;
38:
39: /** NewlyCreated is one of two modes BO can be in.
40: * When BO represents a newly created domain object, some
41: * things may have to be done differently. The other mode is Existing.
42: * @exception BOException look at exception's code and message for the specific errors */
43: public boolean isNewlyCreated() throws BOException;
44:
45: /** Existing is one of two modes BO can be in.
46: * When BO represents an existing domain object, some
47: * things may have to be done differently. The other mode is NewlyCreated.
48: * @exception BOException look at exception's code and message for the specific errors */
49: public boolean isExisting() throws BOException;
50:
51: /** Moves an Existing/ReadOnly BO to the Existing/BeingEdited stage
52: * Can only be done as part of transaction. This method "locks"
53: * underlying data base record(s) and refreshes the data
54: * so data integrity is observed. This means that potentially
55: * values for some fields may have changed since last retrieval.
56: * @exception BOException look at exception's code and message for the specific errors */
57: public void beginEdit(BOTransaction pTransaction)
58: throws BOException;
59:
60: /** Deletes the underlying data base record.
61: * Can only be done when object is being edited.
62: * @exception BOException look at exception's code and message for the specific errors */
63: public void delete(BOTransaction pTransaction) throws BOException;
64:
65: /** Returns true if object is currently part of any transaction
66: * (object is associated with the uncommitted transaction)
67: * @exception BOException look at exception's code and message for the specific errors */
68: public boolean isInTransaction() throws BOException;
69: }
|