public static Extension NewInstance(){
return new Extension();
}
-
- public static Extension NewInstance(IdentifiableEntity<?> extendedObject, String value){
- Extension extension = new Extension();
- extension.setExtendedObj(extendedObject);
- extension.setValue(value);
- return extension;
- }
public static Extension NewInstance(IdentifiableEntity<?> extendedObject, String value, ExtensionType extensionType){
- Extension extension = NewInstance(extendedObject, value);
+ Extension extension = new Extension();
+ extension.setValue(value);
extension.setType(extensionType);
+ extendedObject.addExtension(extension);
return extension;
}
public IdentifiableEntity getExtendedObj() {
return extendedObj;
}
- public void setExtendedObj(IdentifiableEntity extendedObj) {
+ //for hibernate use only
+ protected void setExtendedObj(IdentifiableEntity extendedObj) {
this.extendedObj = extendedObj;
}
public Set<Extension> getExtensions(){
return this.extensions;
}
+
+ public void addExtension(String value, ExtensionType extensionType){
+ Extension.NewInstance(this, value, extensionType);
+ }
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.model.common.IIdentifiableEntity#addExtension(eu.etaxonomy.cdm.model.common.Extension)
*/
public void addExtension(Extension extension){
- this.extensions.add(extension);
+ if (extension != null){
+ extension.setExtendedObj(this);
+ this.extensions.add(extension);
+ }
}
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.model.common.IIdentifiableEntity#removeExtension(eu.etaxonomy.cdm.model.common.Extension)
*/
public void removeExtension(Extension extension){
- this.extensions.remove(extension);
+ if (extension != null){
+ extension.setExtendedObj(null);
+ this.extensions.remove(extension);
+ }
}
//Title of the reference
@XmlElement(name ="Title" )
- @Column(length=4096, name="title")
- @Lob
+// @Column(length=4096, name="title")
+// @Lob
+ @Column(length=256, name="title") //FIXME H2 has problem with clob
@Field(index=Index.TOKENIZED)
private String title;