package eu.etaxonomy.cdm.model.common;\r
\r
import java.util.HashMap;\r
+import java.util.List;\r
import java.util.Map;\r
import java.util.UUID;\r
\r
import javax.xml.bind.annotation.XmlRootElement;\r
import javax.xml.bind.annotation.XmlType;\r
\r
+import org.codehaus.plexus.util.StringUtils;\r
import org.hibernate.envers.Audited;\r
import org.hibernate.search.annotations.Indexed;\r
\r
+import eu.etaxonomy.cdm.model.location.NamedArea;\r
+\r
\r
/**\r
* @author a.mueller\r
} \r
}\r
\r
+ @Override\r
+ protected int partOfCsvLineIndex(){\r
+ return 5;\r
+ }\r
+\r
+// @Override\r
+// void readIsPartOf(DefinedTerm newInstance, List<String> csvLine, Map<UUID, DefinedTermBase> terms) {\r
+// int index = 7;\r
+// String partOfString = csvLine.get(index);\r
+//\r
+// if(StringUtils.isNotBlank(partOfString)) {\r
+// UUID partOfUuid = UUID.fromString(partOfString);\r
+// DefinedTerm partOf = (DefinedTerm)terms.get(partOfUuid);\r
+// partOf.addIncludes(newInstance);\r
+// }\r
+// \r
+// }\r
+\r
}\r
public T readCsvLine(Class<T> termClass, List<String> csvLine, Map<UUID,DefinedTermBase> terms, boolean abbrevAsId) {
try {
T newInstance = getInstance(termClass);
- return readCsvLine(newInstance, csvLine, Language.CSV_LANGUAGE(), abbrevAsId);
+ readCsvLine(newInstance, csvLine, Language.CSV_LANGUAGE(), abbrevAsId);
+ readIsPartOf(newInstance, csvLine, terms);
+ return newInstance;
} catch (Exception e) {
logger.error(e);
for(StackTraceElement ste : e.getStackTrace()) {
logger.error(ste);
}
+ throw new RuntimeException(e);
}
-
- return null;
}
- private <T extends DefinedTermBase> T getInstance(Class<? extends DefinedTermBase> termClass) {
- try {
- Constructor<T> c = ((Class<T>)termClass).getDeclaredConstructor();
- c.setAccessible(true);
- T termInstance = c.newInstance();
- return termInstance;
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
+ protected void readIsPartOf(T newInstance, List<String> csvLine, Map<UUID, DefinedTermBase> terms){
+ int index = partOfCsvLineIndex();
+ if (index != -1){
+ String partOfString = csvLine.get(index);
+ if(StringUtils.isNotBlank(partOfString)) {
+ UUID partOfUuid = UUID.fromString(partOfString);
+ DefinedTermBase partOf = (DefinedTermBase)terms.get(partOfUuid);
+ partOf.addIncludes(newInstance);
+ }
+ }
+
+ }
+
+ /**
+ * Get the
+ * @return
+ */
+ protected int partOfCsvLineIndex() {
+ return -1;
}
- protected static <TERM extends DefinedTermBase> TERM readCsvLine(TERM newInstance, List<String> csvLine, Language lang, boolean abbrevAsId) {
+ protected static <TERM extends DefinedTermBase> TERM readCsvLine(TERM newInstance, List<String> csvLine, Language lang, boolean abbrevAsId) {
newInstance.setUuid(UUID.fromString(csvLine.get(0)));
newInstance.setUri( URI.create(csvLine.get(1)));
String label = csvLine.get(2).trim();
newInstance.setIdInVocabulary(abbreviatedLabel); //new in 3.3
}
newInstance.addRepresentation(Representation.NewInstance(description, label, abbreviatedLabel, lang) );
+
return newInstance;
}
+ private <T extends DefinedTermBase> T getInstance(Class<? extends DefinedTermBase> termClass) {
+ try {
+ Constructor<T> c = ((Class<T>)termClass).getDeclaredConstructor();
+ c.setAccessible(true);
+ T termInstance = c.newInstance();
+ return termInstance;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
@Override
public void writeCsvLine(CSVWriter writer, T term) {
String [] line = new String[4];
"3b82c375-66bb-4636-be74-dc9cd087292a",,"Measurement Unit","Measurement Unit","MU","1"\r
-"e19dd590-5be8-4c93-978f-b78554116289",,"measurement_unit_dummy","mudummy description","m","mud",
\ No newline at end of file
+"e19dd590-5be8-4c93-978f-b78554116289",,"measurement_unit_dummy","mudummy description","mud",
\ No newline at end of file
"a7dc20c9-e6b3-459e-8f05-8d6d8fceb465",,"Preservation Method","Preservation Method","PRM","1"\r
-"3edc2633-365b-4a9b-bc3a-f3f85f59dbdf",,"preservation_method_dummy","pmdummy","p","pmd",
\ No newline at end of file
+"3edc2633-365b-4a9b-bc3a-f3f85f59dbdf",,"preservation_method_dummy","pmdummy","pmd",
\ No newline at end of file
"ceb65a53-c6cf-42bb-862f-daca7f2fc11d",,"State","State","STA","1"\r
-"881b9c80-626d-47a6-b308-a63ee5f4178f",,"state_dummy","stdummy","s","std",
\ No newline at end of file
+"881b9c80-626d-47a6-b308-a63ee5f4178f",,"state_dummy","stdummy","std",
\ No newline at end of file