Project

General

Profile

« Previous | Next » 

Revision b09f8d3c

Added by Andreas Müller about 5 years ago

ref #8120 Add structuralModifier and propertyModifier to Character

View differences:

cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/TermType.java
472 472
    @XmlEnumValue("Property")
473 473
    Property(UUID.fromString("bbe4730c-4c3f-4d89-9823-d144cc43baf5"), "Property", "PROP", null),
474 474

  
475
    //39
476
    /**
477
     * A modifier for {@link #Structure structures} used to define
478
     * spatial and maybe other modifiers.
479
     * StructureModifier is a specialization of {@link #Modifier}.
480
     *
481
     * @see Modifier
482
     * @see Character#getStructureModifier()
483
     * @see Character#getStructure()
484
     */
485
    @XmlEnumValue("StructureModifier")
486
    StructureModifier(UUID.fromString("41617e59-17c9-47f5-8fe6-319e117447ce"), "Structure Modifier", "STMO", Modifier),
487

  
475 488
    ;
476 489

  
477 490

  
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/Character.java
23 23
import org.hibernate.envers.Audited;
24 24
import org.hibernate.search.annotations.IndexedEmbedded;
25 25

  
26
import eu.etaxonomy.cdm.model.common.DefinedTerm;
26 27
import eu.etaxonomy.cdm.model.common.Language;
27 28

  
28 29
/**
......
37 38
@XmlAccessorType(XmlAccessType.PROPERTY)
38 39
@XmlType(name="Feature", factoryMethod="NewInstance", propOrder = {
39 40
        "structure",
40
        "property"
41
        "structureModifier",
42
        "property",
43
        "propertyModifier"
41 44
})
42
@XmlRootElement(name = "Feature")
45
@XmlRootElement(name = "Character")
43 46
@Entity
44 47
@Audited
45 48
public class Character extends Feature {
......
48 51
    @SuppressWarnings("unused")
49 52
    private static final Logger logger = Logger.getLogger(Feature.class);
50 53

  
51

  
52 54
    @XmlElement(name = "Structure")
53 55
    @XmlIDREF
54 56
    @XmlSchemaType(name = "IDREF")
......
57 59
//    @Cascade({CascadeType.SAVE_UPDATE,CascadeType.MERGE})
58 60
    private FeatureNode structure;
59 61

  
62
    //#8120
63
    @XmlElement(name = "StructureModifier")
64
    @XmlIDREF
65
    @XmlSchemaType(name = "IDREF")
66
    @ManyToOne(fetch = FetchType.LAZY)
67
    @IndexedEmbedded
68
    private DefinedTerm structureModifier;
69

  
60 70
    @XmlElement(name = "Property")
61 71
    @XmlIDREF
62 72
    @XmlSchemaType(name = "IDREF")
......
65 75
//    @Cascade({CascadeType.SAVE_UPDATE,CascadeType.MERGE})
66 76
    private FeatureNode property;
67 77

  
78
    //#8120
79
    /**
80
     * @deprecated experimental, may be removed in future
81
     */
82
    @Deprecated
83
    @XmlElement(name = "PropertyModifier")
84
    @XmlIDREF
85
    @XmlSchemaType(name = "IDREF")
86
    @ManyToOne(fetch = FetchType.LAZY)
87
    @IndexedEmbedded
88
    private DefinedTerm propertyModifier;
89

  
68 90
/* ***************** CONSTRUCTOR AND FACTORY METHODS **********************************/
69 91

  
70 92

  
93

  
94

  
71 95
    public static Character NewInstance() {
72 96
        return new Character();
73 97
    }
......
145 169
    public FeatureNode getStructure() {
146 170
        return structure;
147 171
    }
172
    public void setStructure(FeatureNode structure) {
173
        this.structure = structure;
174
    }
148 175

  
149 176
    public FeatureNode getProperty() {
150 177
        return property;
151 178
    }
179
    public void setProperty(FeatureNode property) {
180
        this.property = property;
181
    }
182

  
183
    public DefinedTerm getStructureModifier() {
184
        return structureModifier;
185
    }
186
    public void setStructureModifier(DefinedTerm structureModifier) {
187
        this.structureModifier = structureModifier;
188
    }
189

  
190
    /**
191
     * @return
192
     * @deprecated experimental, may be removed in future
193
     */
194
    @Deprecated
195
    public DefinedTerm getPropertyModifier() {
196
        return propertyModifier;
197
    }
198
    /**
199
     * @param propertyModifier
200
     * @deprecated experimental, may be removed in future
201
     */
202
    @Deprecated
203
    public void setPropertyModifier(DefinedTerm propertyModifier) {
204
        this.propertyModifier = propertyModifier;
205
    }
206

  
152 207
}
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v50_51/SchemaUpdater_50_55.java
161 161
                .setNotNull(NOT_NULL);
162 162
        stepList.add(step);
163 163

  
164
        //#8120 add structure modifier
165
        stepName = "Add structure modifier to Character";
166
        tableName = "DefinedTermBase";
167
        String referedTableName = "DefinedTermBase";
168
        newColumnName = "structureModifier";
169
        step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, !NOT_NULL, referedTableName);
170
        stepList.add(step);
171

  
172
        //#8120 add property modifier
173
        stepName = "Add property modifier to Character";
174
        tableName = "DefinedTermBase";
175
        referedTableName = "DefinedTermBase";
176
        newColumnName = "propertyModifier";
177
        step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, !NOT_NULL, referedTableName);
178
        stepList.add(step);
179

  
164 180

  
165 181
        return stepList;
166 182

  
cdmlib-test/src/main/resources/dbscripts/001-cdm.h2.sql
952 952
    TYPE_ID INTEGER,
953 953
	STRUCTURE_ID INTEGER,
954 954
	PROPERTY_ID INTEGER,
955
	STRUCTUREMODIFIER_ID INTEGER,
956
	PROPERTYMODIFIER_ID INTEGER,
955 957
);
956 958
-- 2084 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE;
957 959
CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_AUD(
......
1008 1010
    TYPE_ID INTEGER,
1009 1011
    STRUCTURE_ID INTEGER,
1010 1012
	PROPERTY_ID INTEGER,
1013
	STRUCTUREMODIFIER_ID INTEGER,
1014
	PROPERTYMODIFIER_ID INTEGER,
1011 1015
);
1012 1016
-- 2084 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_AUD;
1013 1017
CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_ANNOTATION(
cdmlib-test/src/main/resources/eu/etaxonomy/cdm/database/schema/dataset.dtd
842 842
    SHAPE_ID CDATA #IMPLIED
843 843
    TYPE_ID CDATA #IMPLIED
844 844
    STRUCTURE_ID CDATA #IMPLIED
845
    PROPERTY_ID CDATA #IMPLIED
846
    STRUCTUREMODIFIER_ID CDATA #IMPLIED
847
    PROPERTYMODIFIER_ID CDATA #IMPLIED
845 848
>
846 849

  
847 850
<!ELEMENT DEFINEDTERMBASE_AUD EMPTY>
......
890 893
    TYPE_ID CDATA #IMPLIED
891 894
    TYPE_ID CDATA #IMPLIED
892 895
    STRUCTURE_ID CDATA #IMPLIED
896
    PROPERTY_ID CDATA #IMPLIED
897
    STRUCTUREMODIFIER_ID CDATA #IMPLIED
898
    PROPERTYMODIFIER_ID CDATA #IMPLIED
893 899
>
894 900

  
895 901
<!ELEMENT DEFINEDTERMBASE_CONTINENT EMPTY>

Also available in: Unified diff