1 package com.loribel.commons.business.abstraction;
2
3 /***
4 * Abstraction of a simple BusinessObject.
5 * <br />
6 * A Business Object is defined by a list of property and a list of values :
7 * <ul>
8 * <li>a property is the description with meta data of a kind of value
9 * <li>a value is an Object or a collection of Objects for a property
10 * </ul>
11 *
12 * @author Grégory Borelli
13 */
14 public interface GB_SimpleBusinessObject
15 extends
16 GB_BOParentOwner
17 {
18 /***
19 * Returns the BO Name of the objet.
20 * It is an important value, because generaly we can retrieve property
21 * using the BOFactory.
22 *
23 * @return String
24 */
25 String getBOName();
26
27 /***
28 * Returns the meta data that describe a property.
29 *
30 * @param a_propertyName String -
31 *
32 * @return GB_BOProperty
33 */
34 GB_BOProperty getProperty(
35 String a_propertyName);
36
37 /***
38 * Returns an array with the property names of this BusinessObject.
39 *
40 * @return String[]
41 */
42 String[] getPropertyNames();
43
44 /***
45 * Returns the value associated to a property.
46 * This method can return a collection of values if necessary
47 *
48 * @param a_propertyName String -
49 *
50 * @return Object
51 */
52 Object getPropertyValue(
53 String a_propertyName);
54
55 /***
56 * Returns true if the businessObject is ReadOnly.
57 *
58 * @return boolean
59 */
60 boolean isReadOnly();
61
62 /***
63 * Returns true if this object has been modified.
64 * If a complex property has been changed, this method may
65 * return false if no direct modifications has beeen done to the simple properties of this object.
66 *
67 * @return boolean
68 */
69 boolean isModified();
70 }