Revision b09f8d3c
Added by Andreas Müller about 5 years ago
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
ref #8120 Add structuralModifier and propertyModifier to Character