- no change (just updated "last edited" for svn)
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / common / LanguageString.java
index f771959ca1eaeed69dfb70fc65e09fed4ce29291..edb4570fea1fc15a0879f6069f089475e56ccbfc 100644 (file)
@@ -9,64 +9,70 @@
 
 package eu.etaxonomy.cdm.model.common;
 
+import javax.persistence.Entity;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 
 import org.apache.log4j.Logger;
-import org.hibernate.annotations.Cascade;
-import org.hibernate.annotations.CascadeType;
-
-import java.util.*;
-import javax.persistence.*;
+import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Indexed;
 
 /**
+ * This class is an instantiatable class for the base class {@link LanguageStringBase}.
+ * No further functionality is added.
  * @author m.doering
  * @version 1.0
  * @created 08-Nov-2007 13:06:32
  */
-@MappedSuperclass
-public class LanguageString  extends VersionableEntity{
-       static Logger logger = Logger.getLogger(LanguageString.class);
-       protected String text;
-       private Language language;
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "LanguageString")
+@XmlRootElement(name = "LanguageString")
+@Entity
+@Indexed(index = "eu.etaxonomy.cdm.model.common.LanguageString")
+@Audited
+public class LanguageString  extends LanguageStringBase implements Cloneable {
+       private static final long serialVersionUID = -1502298496073201104L;
+       @SuppressWarnings("unused")
+       private static final Logger logger = Logger.getLogger(LanguageString.class);
 
-       public LanguageString() {
-               super();
+       public static LanguageString NewInstance(String text, Language language){
+               return new LanguageString(text, language);
        }
-       public LanguageString(String text, Language lang) {
-               this.setLanguage(lang);
-               this.setText(text);
-       }
-
-
-       @ManyToOne
-       //@Cascade({CascadeType.SAVE_UPDATE})
-       public Language getLanguage(){
-               return this.language;
+       
+       protected LanguageString() {
+               super();
        }
-       public void setLanguage(Language language){
-               this.language = language;
+       
+       protected LanguageString(String text, Language language) {
+               super(text, language);
        }
 
-       public String getText(){
-               return this.text;
-       }
-       protected void setText(String text) {
-               this.text = text;
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.model.common.CdmBase#toString()
+        */
+       @Override
+       public String toString() {
+               if (text == null){
+                       return super.toString() + "null";
+               }else{
+                       String languagePart = "";
+                       if (this.language != null){
+                               languagePart = "(" + this.language.toString() + ")";
+                       }
+                       if (text.length() > 20){
+                               return text.substring(0, 20) + "..." + languagePart;
+                       }else{
+                               return text + languagePart;
+                       }
+               }
        }
        
-       @Transient
-       public String getLanguageLabel(){
-               return this.language.getRepresentation(Language.DEFAULT()).getLabel();
-       }
-       @Transient
-       public String getLanguageLabel(Language lang){
-               return this.language.getRepresentation(lang).getLabel();
-       }
-       @Transient
-       public String getLanguageText(){
-               return this.language.getRepresentation(Language.DEFAULT()).getLabel();
-       }
-       @Transient
-       public String getLanguageText(Language lang){
-               return this.language.getRepresentation(lang).getLabel();
+       @Override
+       public Object clone() throws CloneNotSupportedException {
+               LanguageString result = (LanguageString)super.clone();
+               return result;
        }
+       
 }
\ No newline at end of file