Last modified by Florijan Stamenkovic on 2009/03/27 13:30

Show last authors
1 This template requires the [[JBND>>url:http://web.mac.com/flor385/JBND||shape="rect"]] library or source code be included on the Client-Side of the application. NSArray is not parameterized so if you want to use it with 5.4, slight modifications might be beneficial.
2
3 {{code}}
4
5 // <$GEN_PREFIX$><$classNameWithoutPackage$>.java
6 //
7 // Created by eogenerator
8 //
9 // DO NOT EDIT. Make changes to <$classNameWithoutPackage$>.java instead.
10 //
11 // This EO was generated to perform standard JBND behaviors
12 // 1. All setter methods will not set new values if they are identical to old values.
13 // 2. All setter methods invoke EOFDataObject.fireDataObjectEvent(String key, Object oldValue).
14 // 3. All attribute and relationship keys are stored as static final Strings.
15 // 4. A default constructor is provided to automatically call the superclass constructor
16 // that accepts an EOClassDescription argument, used to avoid bugs in the client side EOF.
17
18 #if ($entity.superclassPackageName)
19 package $entity.superclassPackageName;
20 #end
21
22 import com.webobjects.foundation.*;
23 import com.webobjects.eocontrol.*;
24 import java.math.BigDecimal;
25 import java.util.*;
26 import org.jbnd.support.JBNDUtil;
27 import org.jbnd.eof.EOFDataObject;
28 import org.jbnd.event.DataObjectEvent;
29 import org.jbnd.event.DataObjectEvent.Type;
30
31 /**
32 * DO NOT EDIT!
33 */
34 @SuppressWarnings("all")
35 public abstract class ${entity.prefixClassNameWithoutPackage} extends #if ($entity.parentSet)${entity.parent.classNameWithDefault}#elseif ($EOGenericRecord)${EOGenericRecord}#else EOFDataObject#end {
36
37 /** Entity name */
38 public static final String ENTITY_NAME = "$entity.name";
39
40 /** Attribute keys */
41 #foreach ($attribute in $entity.sortedClientClassAttributes)
42 public static final String ${attribute.uppercaseUnderscoreName}_KEY = "$attribute.name";
43 #end
44
45 /** Relationship keys */
46 #foreach ($relationship in $entity.sortedClientClassRelationships)
47 public static final String ${relationship.uppercaseUnderscoreName}_KEY = "$relationship.name";
48 #end
49
50 /**
51 * Constructor. Creates an EO with the <tt>EOClassDescription</tt> of the
52 * relevant entity, to ensure a proper client side behavior.
53 */
54 public ${entity.prefixClassNameWithoutPackage}() {
55 super(EOClassDescription.classDescriptionForEntityName("$entity.name"));
56 }
57
58 /**
59 * Constructor used in inheritance situations, when this entity is the parent.
60 *
61 * @param cd The class description of the sub-entity.
62 */
63 protected ${entity.prefixClassNameWithoutPackage}(EOClassDescription cd) {
64 super(cd);
65 }
66
67 #foreach ($attribute in $entity.sortedClientClassAttributes)
68 #if (!$attribute.inherited)
69 public $attribute.javaClassName ${attribute.name}() {
70 return ($attribute.javaClassName)storedValueForKey(${attribute.uppercaseUnderscoreName}_KEY);
71 }
72
73 public void set${attribute.capitalizedName}($attribute.javaClassName aValue) {
74 // extract old value
75 $attribute.javaClassName oldValue = ${attribute.name}();
76
77 // do not perform EOF work unless values are different
78 if(JBNDUtil.equals(oldValue, aValue)) return;
79
80 takeStoredValueForKey(aValue, ${attribute.uppercaseUnderscoreName}_KEY);
81 fireDataObjectEvent(${attribute.uppercaseUnderscoreName}_KEY, oldValue, DataObjectEvent.Type.ATTRIBUTE_CHANGE);
82 }
83 #end
84 #end
85
86 #foreach ($relationship in $entity.sortedClientClassToOneRelationships)
87 #if (!$relationship.inherited)
88 public $relationship.actualDestination.classNameWithDefault ${relationship.name}() {
89 return ($relationship.actualDestination.classNameWithDefault)storedValueForKey(${relationship.uppercaseUnderscoreName}_KEY);
90 }
91
92 public void set${relationship.capitalizedName}($relationship.actualDestination.classNameWithDefault aValue) {
93 // get old value
94 $relationship.actualDestination.classNameWithDefault oldValue = ${relationship.name}();
95
96 // do not perform EOF work unless values are different
97 if(JBNDUtil.equals(oldValue, aValue)) return;
98
99 takeStoredValueForKey(aValue, ${relationship.uppercaseUnderscoreName}_KEY);
100 fireDataObjectEvent(${relationship.uppercaseUnderscoreName}_KEY, oldValue, DataObjectEvent.Type.TO_ONE_CHANGE);
101 }
102 #end
103 #end
104
105 #foreach ($relationship in $entity.sortedClientClassToManyRelationships)
106 #if (!$relationship.inherited)
107 public NSArray<${relationship.actualDestination.classNameWithDefault}> ${relationship.name}() {
108 return (NSArray<${relationship.actualDestination.classNameWithDefault}>)storedValueForKey(${relationship.uppercaseUnderscoreName}_KEY);
109 }
110
111 public void set${relationship.capitalizedName}(NSArray<${relationship.actualDestination.classNameWithDefault}> aValue) {
112 Object oldValue = ${relationship.name}().clone();
113 takeStoredValueForKey(aValue, ${relationship.uppercaseUnderscoreName}_KEY);
114 fireDataObjectEvent(${relationship.uppercaseUnderscoreName}_KEY, oldValue, DataObjectEvent.Type.TO_MANY_CHANGE);
115 }
116
117 public void addTo${relationship.capitalizedName}(${relationship.actualDestination.classNameWithDefault} object) {
118 if(${relationship.name}().contains(object)) return;
119 includeObjectIntoPropertyWithKey(object, ${relationship.uppercaseUnderscoreName}_KEY);
120 fireDataObjectEvent(${relationship.uppercaseUnderscoreName}_KEY, object, DataObjectEvent.Type.TO_MANY_ADD);
121 }
122
123 public void removeFrom${relationship.capitalizedName}(${relationship.actualDestination.classNameWithDefault} object) {
124 if(!${relationship.name}().contains(object)) return;
125 excludeObjectFromPropertyWithKey(object, ${relationship.uppercaseUnderscoreName}_KEY);
126 fireDataObjectEvent(${relationship.uppercaseUnderscoreName}_KEY, object, DataObjectEvent.Type.TO_MANY_REMOVE);
127 }
128 #end
129 #end
130 }
131
132 {{/code}}