Rev 1815 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/** Generated file - Do not edit!*/package <XDtPackage:packageOf><XDtEjbValueObj:valueObjectClass/></XDtPackage:packageOf>;/*** Value object for <XDtEjb:ejbName/>.*<XDtClass:classCommentTags indent="0"/> */public class <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>extends <XDtEjbValueObj:extendsFrom valueobject="<XDtEjbValueObj:valueObjectName/>"/>implements java.io.Serializable <XDtEjbValueObj:valueObjectImplements/>{<XDtEjbPersistent:forAllPersistentFields superclasses="false" valueobject="<XDtEjbValueObj:valueObjectMatch/>">private <XDtMethod:methodType/> <XDtMethod:propertyName/>;private boolean <XDtMethod:propertyName/>HasBeenSet = false;</XDtEjbPersistent:forAllPersistentFields><XDtEjbValueObj:forAllRelations superclasses="false" valueobject="<XDtEjbValueObj:valueObjectMatch/>"><XDtMethod:ifDoesntHaveMethodTag tagName="ejb:value-object" paramName="type">private <XDtEjbValueObj:currentAggregateType/> <XDtEjbValueObj:currentAggregateName/>;private boolean <XDtEjbValueObj:currentAggregateName/>HasBeenSet = false;</XDtMethod:ifDoesntHaveMethodTag><XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type">private <XDtMethod:methodTagValue tagName="ejb:value-object" paramName="type"/> <XDtEjbValueObj:currentAggregateName/>s = new <XDtEjbValueObj:concreteCollectionType/>();</XDtMethod:ifHasMethodTag></XDtEjbValueObj:forAllRelations>private <XDtEjbPk:pkClass/> pk;<XDtEjbBmp:ifUseSoftLocking>private int _version = 0;</XDtEjbBmp:ifUseSoftLocking>public <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>(){<XDtEjbPk:ifDoesntHavePrimkeyField>pk = new <XDtEjbPk:pkClass/>();</XDtEjbPk:ifDoesntHavePrimkeyField>}public <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>( <XDtEjbPersistent:persistentfieldList valueobject="<XDtEjbValueObj:valueObjectMatch/>"/> ){<XDtEjbPersistent:forAllPersistentFields superclasses="true" valueobject="<XDtEjbValueObj:valueObjectMatch/>">this.<XDtMethod:propertyName/> = <XDtMethod:propertyName/>;<XDtMethod:propertyName/>HasBeenSet = true;</XDtEjbPersistent:forAllPersistentFields><XDtEjbPk:ifHasPrimkeyField>pk = this.<XDtEjbPk:primkeyGetter/>();</XDtEjbPk:ifHasPrimkeyField><XDtEjbPk:ifDoesntHavePrimkeyField>pk = new <XDtEjbPk:pkClass/>(<XDtEjbPk:pkfieldListFrom name="this"/>);</XDtEjbPk:ifDoesntHavePrimkeyField>}// Cloneable is better than this !public <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>( <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf> otherValue ){<XDtEjbPersistent:forAllPersistentFields superclasses="true" valueobject="<XDtEjbValueObj:valueObjectMatch/>">this.<XDtMethod:propertyName/> = otherValue.<XDtMethod:propertyName/>;<XDtMethod:propertyName/>HasBeenSet = true;</XDtEjbPersistent:forAllPersistentFields><XDtEjbValueObj:forAllRelations superclasses="false" valueobject="<XDtEjbValueObj:valueObjectMatch/>">// TODO Clone is better no ?<XDtMethod:ifDoesntHaveMethodTag tagName="ejb:value-object" paramName="type">this.<XDtEjbValueObj:currentAggregateName/> = otherValue.<XDtEjbValueObj:currentAggregateName/>;<XDtEjbValueObj:currentAggregateName/>HasBeenSet = true;</XDtMethod:ifDoesntHaveMethodTag><XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type">this.<XDtEjbValueObj:currentAggregateName/>s = otherValue.<XDtEjbValueObj:currentAggregateName/>s;</XDtMethod:ifHasMethodTag></XDtEjbValueObj:forAllRelations><XDtEjbPk:ifHasPrimkeyField>pk = this.<XDtEjbPk:primkeyGetter/>();</XDtEjbPk:ifHasPrimkeyField><XDtEjbPk:ifDoesntHavePrimkeyField>pk = new <XDtEjbPk:pkClass/>(<XDtEjbPk:pkfieldListFrom name="this"/>);</XDtEjbPk:ifDoesntHavePrimkeyField>}public <XDtEjbPk:pkClass/> getPrimaryKey(){return pk;}public void setPrimaryKey( <XDtEjbPk:pkClass/> pk ){// it's also nice to update PK object - just in case// somebody would ask for it later...this.pk = pk;<XDtEjbPersistent:forAllPersistentFields superclasses="true" valueobject="<XDtEjbValueObj:valueObjectMatch/>"><XDtMethod:ifHasMethod name="<XDtMethod:setterMethod/>" parameters="<XDtMethod:methodType/>"><XDtEjbPk:ifHasPrimkeyField><XDtEjbPk:ifIsPrimkeyField><XDtMethod:setterMethod/>( pk );</XDtEjbPk:ifIsPrimkeyField></XDtEjbPk:ifHasPrimkeyField><XDtEjbPk:ifDoesntHavePrimkeyField><XDtEjbPk:ifIsPkField><XDtMethod:setterMethod/>( pk.<XDtMethod:propertyName/> );</XDtEjbPk:ifIsPkField></XDtEjbPk:ifDoesntHavePrimkeyField></XDtMethod:ifHasMethod></XDtEjbPersistent:forAllPersistentFields>}<XDtEjbPersistent:forAllPersistentFields superclasses="true" valueobject="<XDtEjbValueObj:valueObjectMatch/>">public <XDtMethod:methodType/> <XDtMethod:getterMethod/>(){return this.<XDtMethod:propertyName/>;}<XDtMethod:ifHasMethod name="<XDtMethod:setterMethod/>" parameters="<XDtMethod:methodType/>">public void <XDtMethod:setterMethod/>( <XDtMethod:methodType/> <XDtMethod:propertyName/> ){this.<XDtMethod:propertyName/> = <XDtMethod:propertyName/>;<XDtMethod:propertyName/>HasBeenSet = true;<XDtEjbPk:ifHasPrimkeyField><XDtEjbPk:ifIsPrimkeyField>pk = <XDtMethod:propertyName/>;</XDtEjbPk:ifIsPrimkeyField></XDtEjbPk:ifHasPrimkeyField><XDtEjbPk:ifDoesntHavePrimkeyField><XDtEjbPk:ifIsPkField>pk.<XDtMethod:setterMethod/>(<XDtMethod:propertyName/>);</XDtEjbPk:ifIsPkField></XDtEjbPk:ifDoesntHavePrimkeyField>}public boolean <XDtMethod:propertyName/>HasBeenSet(){return <XDtMethod:propertyName/>HasBeenSet;}</XDtMethod:ifHasMethod></XDtEjbPersistent:forAllPersistentFields><XDtEjbValueObj:forAllRelations superclasses="false" valueobject="<XDtEjbValueObj:valueObjectMatch/>"><XDtMethod:ifDoesntHaveMethodTag tagName="ejb:value-object" paramName="type">public <XDtEjbValueObj:currentAggregateType/> get<XDtEjbValueObj:currentAggregateName/>(){return this.<XDtEjbValueObj:currentAggregateName/>;}public void set<XDtEjbValueObj:currentAggregateName/>( <XDtEjbValueObj:currentAggregateType/> <XDtEjbValueObj:currentAggregateName/> ){this.<XDtEjbValueObj:currentAggregateName/> = <XDtEjbValueObj:currentAggregateName/>;<XDtEjbValueObj:currentAggregateName/>HasBeenSet = true;}</XDtMethod:ifDoesntHaveMethodTag><XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type">protected <XDtMethod:methodTagValue tagName="ejb:value-object" paramName="type"/> added<XDtEjbValueObj:currentAggregateName/>s = new <XDtEjbValueObj:concreteCollectionType/>();protected <XDtMethod:methodTagValue tagName="ejb:value-object" paramName="type"/> removed<XDtEjbValueObj:currentAggregateName/>s = new <XDtEjbValueObj:concreteCollectionType/>();protected <XDtMethod:methodTagValue tagName="ejb:value-object" paramName="type"/> updated<XDtEjbValueObj:currentAggregateName/>s = new <XDtEjbValueObj:concreteCollectionType/>();public <XDtMethod:methodTagValue tagName="ejb:value-object" paramName="type"/> getAdded<XDtEjbValueObj:currentAggregateName/>s() { return added<XDtEjbValueObj:currentAggregateName/>s; }public <XDtMethod:methodTagValue tagName="ejb:value-object" paramName="type"/> getRemoved<XDtEjbValueObj:currentAggregateName/>s() { return removed<XDtEjbValueObj:currentAggregateName/>s; }public <XDtMethod:methodTagValue tagName="ejb:value-object" paramName="type"/> getUpdated<XDtEjbValueObj:currentAggregateName/>s() { return updated<XDtEjbValueObj:currentAggregateName/>s; }public void setAdded<XDtEjbValueObj:currentAggregateName/>s(<XDtMethod:methodTagValue tagName="ejb:value-object" paramName="type"/> added<XDtEjbValueObj:currentAggregateName/>s){this.added<XDtEjbValueObj:currentAggregateName/>s.clear();this.added<XDtEjbValueObj:currentAggregateName/>s.addAll(added<XDtEjbValueObj:currentAggregateName/>s);}public void setRemoved<XDtEjbValueObj:currentAggregateName/>s(<XDtMethod:methodTagValue tagName="ejb:value-object" paramName="type"/> removed<XDtEjbValueObj:currentAggregateName/>s){this.removed<XDtEjbValueObj:currentAggregateName/>s.clear();this.removed<XDtEjbValueObj:currentAggregateName/>s.addAll(removed<XDtEjbValueObj:currentAggregateName/>s);}public void setUpdated<XDtEjbValueObj:currentAggregateName/>s(<XDtMethod:methodTagValue tagName="ejb:value-object" paramName="type"/> updated<XDtEjbValueObj:currentAggregateName/>s){this.updated<XDtEjbValueObj:currentAggregateName/>s.clear();this.updated<XDtEjbValueObj:currentAggregateName/>s.addAll(updated<XDtEjbValueObj:currentAggregateName/>s);}public <XDtEjbValueObj:currentAggregateType/>[] get<XDtEjbValueObj:currentAggregateName/>s(){return (<XDtEjbValueObj:currentAggregateType/>[])this.<XDtEjbValueObj:currentAggregateName/>s.toArray(new <XDtEjbValueObj:currentAggregateType/>[<XDtEjbValueObj:currentAggregateName/>s.size()]);}public void set<XDtEjbValueObj:currentAggregateName/>s(<XDtEjbValueObj:currentAggregateType/>[] <XDtEjbValueObj:currentAggregateName/>s){this.<XDtEjbValueObj:currentAggregateName/>s.clear();for (int i=0; i < <XDtEjbValueObj:currentAggregateName/>s.length; i++)this.<XDtEjbValueObj:currentAggregateName/>s.add(<XDtEjbValueObj:currentAggregateName/>s[i]);}public void clear<XDtEjbValueObj:currentAggregateName/>s(){this.<XDtEjbValueObj:currentAggregateName/>s.clear();}public void add<XDtEjbValueObj:currentAggregateName/>(<XDtEjbValueObj:currentAggregateType/> added){this.<XDtEjbValueObj:currentAggregateName/>s.add(added);if ( ! this.added<XDtEjbValueObj:currentAggregateName/>s.contains(added))this.added<XDtEjbValueObj:currentAggregateName/>s.add(added);}public void remove<XDtEjbValueObj:currentAggregateName/>(<XDtEjbValueObj:currentAggregateType/> removed){this.<XDtEjbValueObj:currentAggregateName/>s.remove(removed);this.removed<XDtEjbValueObj:currentAggregateName/>s.add(removed);if (this.added<XDtEjbValueObj:currentAggregateName/>s.contains(removed))this.added<XDtEjbValueObj:currentAggregateName/>s.remove(removed);if (this.updated<XDtEjbValueObj:currentAggregateName/>s.contains(removed))this.updated<XDtEjbValueObj:currentAggregateName/>s.remove(removed);}public void update<XDtEjbValueObj:currentAggregateName/>(<XDtEjbValueObj:currentAggregateType/> updated){if ( !this.updated<XDtEjbValueObj:currentAggregateName/>s.contains(updated) && !this.added<XDtEjbValueObj:currentAggregateName/>s.contains(updated))this.updated<XDtEjbValueObj:currentAggregateName/>s.add(updated);}public void clean<XDtEjbValueObj:currentAggregateName/>(){this.added<XDtEjbValueObj:currentAggregateName/>s = new <XDtEjbValueObj:concreteCollectionType/>();this.removed<XDtEjbValueObj:currentAggregateName/>s = new <XDtEjbValueObj:concreteCollectionType/>();this.updated<XDtEjbValueObj:currentAggregateName/>s = new <XDtEjbValueObj:concreteCollectionType/>();}public void copy<XDtEjbValueObj:currentAggregateName/>sFrom(<XDtEjbValueObj:valueObjectClass/> from){// TODO Clone the List ????this.<XDtEjbValueObj:currentAggregateName/>s = from.<XDtEjbValueObj:currentAggregateName/>s;}</XDtMethod:ifHasMethodTag></XDtEjbValueObj:forAllRelations><XDtEjbBmp:ifUseSoftLocking>public int getVersion(){return _version;}public void setVersion(int version){this._version = version;}</XDtEjbBmp:ifUseSoftLocking>public String toString(){StringBuffer str = new StringBuffer("{");str.append(<XDtEjbPersistent:persistentfieldNameValueList valueobject="<XDtEjbValueObj:valueObjectMatch/>" superclasses="true"/>);<XDtEjbBmp:ifUseSoftLocking>str.append(",version=");str.append(_version);</XDtEjbBmp:ifUseSoftLocking>str.append('}');return(str.toString());}/*** A Value object have an identity if its attributes making its Primary Key* has all been set. One object without identity is never equal to any other* object.** @return true if this instance have an identity.*/protected boolean hasIdentity(){<XDtEjbPk:ifHasPrimkeyField>return <XDtEjbPk:primkeyField/>HasBeenSet;</XDtEjbPk:ifHasPrimkeyField><XDtEjbPk:ifDoesntHavePrimkeyField>boolean ret = true;<XDtEjbPersistent:forAllPersistentFields superclasses="true" valueobject="<XDtEjbValueObj:valueObjectMatch/>" only-pk="true">ret = ret && <XDtMethod:propertyName/>HasBeenSet;</XDtEjbPersistent:forAllPersistentFields>return ret;</XDtEjbPk:ifDoesntHavePrimkeyField>}public boolean equals(Object other){if (this == other)return true;if ( ! hasIdentity() ) return false;if (other instanceof <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>){<XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf> that = (<XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>) other;if ( ! that.hasIdentity() ) return false;boolean lEquals = true;<XDtEjbPersistent:forAllPersistentFields superclasses="true" valueobject="<XDtEjbValueObj:valueObjectMatch/>" only-pk="true"><XDtType:ifIsPrimitive value="<XDtMethod:methodType/>">lEquals = lEquals && this.<XDtMethod:propertyName/> == that.<XDtMethod:propertyName/>;</XDtType:ifIsPrimitive><XDtType:ifIsNotPrimitive value="<XDtMethod:methodType/>">if( this.<XDtMethod:propertyName/> == null ){lEquals = lEquals && ( that.<XDtMethod:propertyName/> == null );}else{lEquals = lEquals && this.<XDtMethod:propertyName/>.equals( that.<XDtMethod:propertyName/> );}</XDtType:ifIsNotPrimitive></XDtEjbPersistent:forAllPersistentFields>lEquals = lEquals && isIdentical(that);return lEquals;}else{return false;}}public boolean isIdentical(Object other){if (other instanceof <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>){<XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf> that = (<XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>) other;boolean lEquals = true;<XDtEjbPersistent:forAllPersistentFields superclasses="true" valueobject="<XDtEjbValueObj:valueObjectMatch/>" not-pk="true"><XDtType:ifIsPrimitive value="<XDtMethod:methodType/>">lEquals = lEquals && this.<XDtMethod:propertyName/> == that.<XDtMethod:propertyName/>;</XDtType:ifIsPrimitive><XDtType:ifIsNotPrimitive value="<XDtMethod:methodType/>">if( this.<XDtMethod:propertyName/> == null ){lEquals = lEquals && ( that.<XDtMethod:propertyName/> == null );}else{lEquals = lEquals && this.<XDtMethod:propertyName/>.equals( that.<XDtMethod:propertyName/> );}</XDtType:ifIsNotPrimitive></XDtEjbPersistent:forAllPersistentFields><XDtEjbValueObj:forAllRelations superclasses="false" valueobject="<XDtEjbValueObj:valueObjectMatch/>"><XDtMethod:ifDoesntHaveMethodTag tagName="ejb:value-object" paramName="type">if( this.<XDtEjbValueObj:currentAggregateName/> == null ){lEquals = lEquals && ( that.<XDtEjbValueObj:currentAggregateName/> == null );}else{lEquals = lEquals && this.<XDtEjbValueObj:currentAggregateName/>.equals( that.<XDtEjbValueObj:currentAggregateName/> );}</XDtMethod:ifDoesntHaveMethodTag><XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type">if( this.get<XDtEjbValueObj:currentAggregateName/>s() == null ){lEquals = lEquals && ( that.get<XDtEjbValueObj:currentAggregateName/>s() == null );}else{lEquals = lEquals && java.util.Arrays.equals(this.get<XDtEjbValueObj:currentAggregateName/>s() , that.get<XDtEjbValueObj:currentAggregateName/>s()) ;}</XDtMethod:ifHasMethodTag></XDtEjbValueObj:forAllRelations>return lEquals;}else{return false;}}public int hashCode(){int result = 17;<XDtEjbPersistent:forAllPersistentFields superclasses="true" valueobject="<XDtEjbValueObj:valueObjectMatch/>"><XDtMerge:merge file="xdoclet/modules/ejb/entity/resources/entity-object-hashcode.xdt"></XDtMerge:merge></XDtEjbPersistent:forAllPersistentFields><XDtEjbValueObj:forAllRelations superclasses="false" valueobject="<XDtEjbValueObj:valueObjectMatch/>"><XDtMethod:ifDoesntHaveMethodTag tagName="ejb:value-object" paramName="type">result = 37*result + ((this.<XDtEjbValueObj:currentAggregateName/> != null) ? this.<XDtEjbValueObj:currentAggregateName/>.hashCode() : 0);</XDtMethod:ifDoesntHaveMethodTag><XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type"><XDtComment:comment>hashCode() is implemented in java.util.List so we don't have to worry</XDtComment:comment>result = 37*result + ((this.get<XDtEjbValueObj:currentAggregateName/>s() != null) ? this.get<XDtEjbValueObj:currentAggregateName/>s().hashCode() : 0);</XDtMethod:ifHasMethodTag></XDtEjbValueObj:forAllRelations>return result;}<XDtMerge:merge file="valueobject-custom.xdt"></XDtMerge:merge>}