cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/IVersionableEntity.java -text svneol=unset#text/plain
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/IdentifiableEntity.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/IdentifiableSource.java -text
+cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/Identifier.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/LSID.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/LSIDAuthority.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/LSIDWSDLLocator.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/PreferenceSubject.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/molecular/Amplification.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/molecular/Cloning.java -text
+cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/molecular/DnaQuality.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/molecular/DnaSample.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/molecular/PhylogeneticTree.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/molecular/Primer.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/TaxonRelationshipType.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/package-info.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/package.html -text
+cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/validation/EntityConstraintViolation.java -text
+cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/validation/EntityValidationResult.java -text
+cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/validation/SeverityType.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/view/AuditEvent.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/view/AuditEventRecord.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/view/AuditEventRecordImpl.java -text
-cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/view/View.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/view/context/AuditEventContext.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/view/context/AuditEventContextHolder.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/view/context/AuditEventContextHolderStrategy.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/parser/TaxonNameParserHistory.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/parser/TimePeriodParser.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/parser/location/CoordinateConverter.java -text
+cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/CRUDEventType.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/Level2.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/Level3.java -text
+cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/Severity.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/ValidationException.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/BasionymsMustShareEpithetsAndAuthors.java -text
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/ChildTaxaMustBeLowerRankThanParent.java -text
cdmlib-model/src/main/resources/terms/Feature.csv -text
cdmlib-model/src/main/resources/terms/FormerCountries -text
cdmlib-model/src/main/resources/terms/HybridRelationshipType.csv -text
+cdmlib-model/src/main/resources/terms/IdentifierType.csv -text
cdmlib-model/src/main/resources/terms/InstitutionType.csv -text
cdmlib-model/src/main/resources/terms/Language.csv -text
cdmlib-model/src/main/resources/terms/MarkerType.csv -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v31_33/SpecimenMediaMoverUpdater.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v31_33/TermUpdater_31_33.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v31_33/TermVocabularyRepresentationUpdater.java -text
+cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v33_34/SchemaUpdater_331_34.java -text
+cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v33_34/TermUpdater_33_34.java -text
+cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v33_34/UsernameConstraintUpdater.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/IAlternativeSpellingSuggestionParser.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/IMethodCache.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/MethodCacheImpl.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/config/TaxonNodeDeletionConfigurator.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/config/TermDeletionConfigurator.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/description/TransmissionEngineDistribution.java -text
+cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/DerivateHierarchyDTO.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/DistributionInfoDTO.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/IncludedTaxaDTO.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/exception/DataChangeNoRollbackException.java -text
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>cdmlib-parent</artifactId>
- <version>3.3.8-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>cdmlib-parent</artifactId>
- <version>3.3.8-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
reference.setPublisher(text);\r
}\r
if(dcFieldName.equals(DC_CREATOR)){\r
- TeamOrPersonBase authorTeam = new Team();\r
- authorTeam.setTitleCache(text, true);\r
- reference.setAuthorTeam(authorTeam);\r
+ TeamOrPersonBase authorship = new Team();\r
+ authorship.setTitleCache(text, true);\r
+ reference.setAuthorship(authorship);\r
}\r
\r
}\r
reference.setPublisher(text);\r
}\r
if(dcFieldName.equals(DC_CREATOR)){\r
- TeamOrPersonBase authorTeam = new Team();\r
- authorTeam.setTitleCache(text, true);\r
- reference.setAuthorTeam(authorTeam);\r
+ TeamOrPersonBase authorship = new Team();\r
+ authorship.setTitleCache(text, true);\r
+ reference.setAuthorship(authorship);\r
}\r
\r
}\r
String author = valueMap.get(PUBLICATION_AUTHOR_TEAM);\r
if (StringUtils.isNotBlank(author)){\r
Team team = Team.NewTitledInstance(author, author);\r
- ref.setAuthorTeam(team);\r
+ ref.setAuthorship(team);\r
}\r
\r
//remarks\r
\r
\r
String tl2AuthorString = valueMap.get(TL2_AUTHOR);\r
- if (ref.getAuthorTeam() == null){\r
+ if (ref.getAuthorship() == null){\r
Team tl2Author = Team.NewTitledInstance(tl2AuthorString, null);\r
- ref.setAuthorTeam(tl2Author);\r
+ ref.setAuthorship(tl2Author);\r
}else{\r
//TODO parse name, \r
- ref.getAuthorTeam().setTitleCache(tl2AuthorString, true);\r
+ ref.getAuthorship().setTitleCache(tl2AuthorString, true);\r
ref.addAnnotation(Annotation.NewInstance(tl2AuthorString, AnnotationType.EDITORIAL(), Language.ENGLISH()));\r
}\r
\r
OpenUrlReference reference = null;\r
\r
ResponseStatus status = null;\r
- Team authorTeam = null;\r
+ Team authorship = null;\r
String message = null;\r
\r
String elementName = null;\r
} else if (status != null && qName.equals(OPENURL_RESPONSE_CITATION)) {\r
reference = new OpenUrlReference();\r
} else if (reference != null && qName.equals(AUTHORS)) {\r
- authorTeam = Team.NewInstance();\r
+ authorship = Team.NewInstance();\r
} else if (reference != null && qName.equals(SUBJECTS)) {\r
//TODO implement, but no equivalent in the cdm model \r
} else {\r
referenceList.add(reference);\r
reference = null;\r
} else if (reference != null && qName.equals(AUTHORS)) {\r
- reference.setAuthorTeam(authorTeam);\r
- authorTeam = null;\r
+ reference.setAuthorship(authorship);\r
+ authorship = null;\r
} else if (reference != null && qName.equals(SUBJECTS)) {\r
//TODO implement, but no equivalent in the cdm model \r
}else {\r
}\r
}\r
\r
- // --- Reference.authorTeam --- //\r
- if(authorTeam != null && reference != null){\r
+ // --- Reference.authorship --- //\r
+ if(authorship != null && reference != null){\r
if(elementNameToStore.equals("String")){\r
- authorTeam.addTeamMember(Person.NewTitledInstance(trimmedText));\r
+ authorship.addTeamMember(Person.NewTitledInstance(trimmedText));\r
}\r
}\r
\r
refList = service1.getPublications("Flora Europaea [ed. 2]", null, services, config);\r
Assert.assertEquals("There should be exactly 1 result for 'Flora Europaea [ed. 2]'", 1, refList.size());\r
ref = refList.get(0);\r
- Assert.assertEquals("", "Tutin, Thomas Gaskell", ref.getAuthorTeam().getTitleCache());\r
+ Assert.assertEquals("", "Tutin, Thomas Gaskell", ref.getAuthorship().getTitleCache());\r
\r
\r
// for (Reference ref : refList){\r
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.AGENTBASE_IDENTIFIER(
+ AGENTBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.AGENTBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ AGENTBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.AGENTBASE_MARKER(
AGENTBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
PROTECTEDTITLECACHE BOOLEAN NOT NULL,
TITLECACHE VARCHAR(255),
MICROREFERENCE VARCHAR(255),
+ TIMEPERIOD_START VARCHAR(255),
+ TIMEPERIOD_FREETEXT VARCHAR(255),
+ TIMEPERIOD_END VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
NAME_ID INTEGER,
PROTECTEDTITLECACHE BOOLEAN,
TITLECACHE VARCHAR(255),
MICROREFERENCE VARCHAR(255),
+ TIMEPERIOD_START VARCHAR(255),
+ TIMEPERIOD_FREETEXT VARCHAR(255),
+ TIMEPERIOD_END VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
NAME_ID INTEGER,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_CREDIT_AUD;
+
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_DESCRIPTION(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ DESCRIPTION_ID INTEGER NOT NULL,
+ DESCRIPTION_MAPKEY_ID INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_DESCRIPTION;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_DESCRIPTION_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ DESCRIPTION_ID INTEGER NOT NULL,
+ DESCRIPTION_MAPKEY_ID INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_DESCRIPTION_AUD;
+
CREATE CACHED TABLE PUBLIC.CLASSIFICATION_EXTENSION(
CLASSIFICATION_ID INTEGER NOT NULL,
EXTENSIONS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_GEOSCOPE(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ GEOSCOPES_ID INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_GEOSCOPE;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_GEOSCOPE_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ GEOSCOPES_ID INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_GEOSCOPE_AUD;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_IDENTIFIER(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.CLASSIFICATION_MARKER(
CLASSIFICATION_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.COLLECTION_IDENTIFIER(
+ COLLECTION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.COLLECTION_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ COLLECTION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.COLLECTION_MARKER(
COLLECTION_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_IDENTIFIER(
+ DEFINEDTERMBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ DEFINEDTERMBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_MARKER(
DEFINEDTERMBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_IDENTIFIER(
+ DESCRIPTIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ DESCRIPTIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_FEATURE(
DESCRIPTIONBASE_ID INTEGER NOT NULL,
DESCRIPTIVESYSTEM_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DETERMINATIONEVENT_REFERENCE_AUD;
+CREATE CACHED TABLE PUBLIC.DNAQUALITY(
+ ID INTEGER NOT NULL,
+ CREATED TIMESTAMP,
+ UUID VARCHAR(36) NOT NULL,
+ UPDATED TIMESTAMP,
+ PURIFICATIONMETHOD VARCHAR(255),
+ RATIOOFABSORBANCE260_230 DOUBLE,
+ RATIOOFABSORBANCE260_280 DOUBLE,
+ QUALITYCHECKDATE TIMESTAMP,
+ CONCENTRATION DOUBLE,
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CONCENTRATIONUNIT_ID INTEGER,
+ QUALITYTERM_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DNAQUALITY;
+CREATE CACHED TABLE PUBLIC.DNAQUALITY_AUD(
+ ID INTEGER NOT NULL,
+ REV INTEGER NOT NULL,
+ REVTYPE TINYINT,
+ CREATED TIMESTAMP,
+ UUID VARCHAR(36) NOT NULL,
+ UPDATED TIMESTAMP,
+ PURIFICATIONMETHOD VARCHAR(255),
+ RATIOOFABSORBANCE260_230 DOUBLE,
+ RATIOOFABSORBANCE260_280 DOUBLE,
+ QUALITYCHECKDATE TIMESTAMP,
+ CONCENTRATION DOUBLE,
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CONCENTRATIONUNIT_ID INTEGER,
+ QUALITYTERM_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DNAQUALITY_AUD;
+CREATE CACHED TABLE PUBLIC.ENTITYVALIDATIONRESULT(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ VALIDATEDENTITYID INTEGER,
+ VALIDATEDENTITYUUID VARCHAR(36),
+ VALIDATEDENTITYCLASS VARCHAR(255),
+ USERFRIENDLYDESCRIPTION VARCHAR(255),
+ USERFRIENDLYTYPENAME VARCHAR(255),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CRUDEVENTTYPE VARCHAR(24)
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ENTITYVALIDATIONRESULT;
+CREATE CACHED TABLE PUBLIC.ENTITYCONSTRAINTVIOLATION(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ PROPERTYPATH VARCHAR(255),
+ USERFRIENDLYFIELDNAME VARCHAR(255),
+ INVALIDVALUE VARCHAR(255),
+ SEVERITY VARCHAR(24),
+ MESSAGE VARCHAR(255),
+ VALIDATOR VARCHAR(255),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ ENTITYVALIDATIONRESULT_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ENTITYCONSTRAINTVIOLATION;
CREATE CACHED TABLE PUBLIC.EXTENSION(
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.FEATURETREE_IDENTIFIER(
+ FEATURETREE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.FEATURETREE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ FEATURETREE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.FEATURETREE_MARKER(
FEATURETREE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
UUID VARCHAR(36),
- AUTHORITY VARCHAR(255),
+ AUTHORITY VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.GRANTEDAUTHORITYIMPL;
DESCRIPTION_MAPKEY_ID INTEGER NOT NULL
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.INDIVIDUALASSOCIATION_LANGUAGESTRING;
+CREATE CACHED TABLE PUBLIC.IDENTIFIER(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ UPDATED TIMESTAMP,
+ IDENTIFIEDOBJ_TYPE VARCHAR(255),
+ IDENTIFIEDOBJ_ID INTEGER,
+ IDENTIFIER VARCHAR(800),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ TYPE_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.IDENTIFIER_AUD(
+ ID INTEGER NOT NULL,
+ REV INTEGER NOT NULL,
+ REVTYPE TINYINT,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ UPDATED TIMESTAMP,
+ IDENTIFIEDOBJ_TYPE VARCHAR(255),
+ IDENTIFIEDOBJ_ID INTEGER,
+ IDENTIFIER VARCHAR(800),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ TYPE_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.INDIVIDUALASSOCIATION_LANGUAGESTRING_AUD(
REV INTEGER NOT NULL,
DESCRIPTIONELEMENTBASE_ID INTEGER NOT NULL,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.MEDIA_IDENTIFIER(
+ MEDIA_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.MEDIA_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ MEDIA_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.MEDIA_LANGUAGESTRING(
MEDIA_ID INTEGER NOT NULL,
TITLE_ID INTEGER NOT NULL,
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
UUID VARCHAR(36),
- NAME VARCHAR(255),
+ NAME VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.PERMISSIONGROUP;
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_IDENTIFIER(
+ POLYTOMOUSKEY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ POLYTOMOUSKEY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_MARKER(
POLYTOMOUSKEY_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
UUID VARCHAR(36),
UPDATED TIMESTAMP,
LABEL VARCHAR(255),
+ SEQUENCE_LENGTH INTEGER,
+ SEQUENCE_STRING CLOB,
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
PUBLISHEDIN_ID INTEGER,
- SEQUENCE_ID INTEGER,
PRIMARY KEY (ID)
);
CREATE TABLE PRIMER_AUD (
UUID VARCHAR(36),
UPDATED TIMESTAMP,
LABEL VARCHAR(255),
+ SEQUENCE_LENGTH INTEGER,
+ SEQUENCE_STRING CLOB,
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
PUBLISHEDIN_ID INTEGER,
- SEQUENCE_ID INTEGER
);
CREATE TABLE PRIMER_ANNOTATION (
PROBLEMSTARTS INTEGER NOT NULL,
PUBLISHER VARCHAR(255),
REFERENCEABSTRACT CLOB,
- SERIES VARCHAR(255),
SERIESPART VARCHAR(255),
TITLE CLOB,
ABBREVTITLE VARCHAR(255),
VOLUME VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
- AUTHORTEAM_ID INTEGER,
+ AUTHORSHIP_ID INTEGER,
INREFERENCE_ID INTEGER,
INSTITUTION_ID INTEGER,
SCHOOL_ID INTEGER
PROBLEMSTARTS INTEGER,
PUBLISHER VARCHAR(255),
REFERENCEABSTRACT CLOB,
- SERIES VARCHAR(255),
SERIESPART VARCHAR(255),
TITLE CLOB,
ABBREVTITLE VARCHAR(255),
VOLUME VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
- AUTHORTEAM_ID INTEGER,
+ AUTHORSHIP_ID INTEGER,
INREFERENCE_ID INTEGER,
INSTITUTION_ID INTEGER,
SCHOOL_ID INTEGER
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.REFERENCE_IDENTIFIER(
+ REFERENCE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.REFERENCE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ REFERENCE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.REFERENCE_MARKER(
REFERENCE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
CATALOGNUMBER VARCHAR(255),
COLLECTORSNUMBER VARCHAR(255),
EXSICCATUM VARCHAR(255),
+ ORIGINALLABELINFO CLOB,
FIELDNOTES VARCHAR(255),
FIELDNUMBER VARCHAR(255),
CREATEDBY_ID INTEGER,
PRESERVATION_ID INTEGER,
GATHERINGEVENT_ID INTEGER,
PRIMARYCOLLECTOR_ID INTEGER,
- MEDIASPECIMEN_ID INTEGER
+ MEDIASPECIMEN_ID INTEGER,
+ DNAQUALITY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE;
CREATE INDEX PUBLIC.SPECIMENOROBSERVATIONBASETITLECACHEINDEX ON PUBLIC.SPECIMENOROBSERVATIONBASE(TITLECACHE);
CATALOGNUMBER VARCHAR(255),
COLLECTORSNUMBER VARCHAR(255),
EXSICCATUM VARCHAR(255),
+ ORIGINALLABELINFO CLOB,
FIELDNOTES VARCHAR(255),
FIELDNUMBER VARCHAR(255),
CREATEDBY_ID INTEGER,
PRESERVATION_ID INTEGER,
GATHERINGEVENT_ID INTEGER,
PRIMARYCOLLECTOR_ID INTEGER,
- MEDIASPECIMEN_ID INTEGER
+ MEDIASPECIMEN_ID INTEGER,
+ DNAQUALITY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_AUD;
CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_ANNOTATION(
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER(
+ SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_LANGUAGESTRING(
SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
DEFINITION_ID INTEGER NOT NULL,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TAXONBASE_IDENTIFIER(
+ TAXONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TAXONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TAXONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TAXONBASE_MARKER(
TAXONBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_IDENTIFIER(
+ TAXONNAMEBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TAXONNAMEBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_MARKER(
TAXONNAMEBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_IDENTIFIER(
+ TERMVOCABULARY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TERMVOCABULARY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_MARKER(
TERMVOCABULARY_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
EMAILADDRESS VARCHAR(255),
ENABLED BOOLEAN NOT NULL,
PASSWORD VARCHAR(255),
- USERNAME VARCHAR(255),
+ USERNAME VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER,
PERSON_ID INTEGER
);
ALTER TABLE PUBLIC.MULTIACCESSKEY_SCOPE ADD CONSTRAINT PUBLIC.FKCC6CE4F7546985E4 FOREIGN KEY(SCOPERESTRICTIONS_ID) REFERENCES PUBLIC.DEFINEDTERMBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.AGENTBASE_ADDRESS ADD CONSTRAINT PUBLIC.FK1EDFF7EB86EFC5D4 FOREIGN KEY(AGENTBASE_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_MARKER ADD CONSTRAINT PUBLIC.FK8E6106C7777265A1 FOREIGN KEY(MARKERS_ID) REFERENCES PUBLIC.MARKER(ID) NOCHECK;
-ALTER TABLE PUBLIC.REFERENCE ADD CONSTRAINT PUBLIC.FK404D5F2B697665E FOREIGN KEY(AUTHORTEAM_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
+ALTER TABLE PUBLIC.REFERENCE ADD CONSTRAINT PUBLIC.FK404D5F2B697665E FOREIGN KEY(AUTHORSHIP_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.CLASSIFICATION_CREDIT_AUD ADD CONSTRAINT PUBLIC.FK48AC64334869AAE FOREIGN KEY(REV) REFERENCES PUBLIC.AUDITEVENT(REVISIONNUMBER) NOCHECK;
ALTER TABLE PUBLIC.TAXONBASE ADD CONSTRAINT PUBLIC.FK9249B49B7C7B5AED FOREIGN KEY(TAXONOMICPARENTCACHE_ID) REFERENCES PUBLIC.TAXONBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.AGENTBASE_ADDRESS ADD CONSTRAINT PUBLIC.FK1EDFF7EB50751EC5 FOREIGN KEY(CONTACT_ADDRESSES_ID) REFERENCES PUBLIC.ADDRESS(ID) NOCHECK;
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>cdmlib-parent</artifactId>
- <version>3.3.8-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
package eu.etaxonomy.cdm.io.common.mapping;\r
\r
-import org.jdom.Content;\r
-import org.jdom.Element;\r
-\r
import com.hp.hpl.jena.rdf.model.Resource;\r
import com.hp.hpl.jena.rdf.model.Statement;\r
\r
\r
//author\r
TeamOrPersonBase<?> author = handleCreator(strCreator);\r
- reference.setAuthorTeam(author);\r
+ reference.setAuthorship(author);\r
//date\r
TimePeriod publicationDate = handleDate(strDate);\r
reference.setDatePublished(publicationDate);\r
if (taxon.getName() != null && reference != null && taxon.getName().isInstanceOf(NonViralName.class)){\r
NonViralName<?> nvn = CdmBase.deproxy(taxon.getName(), NonViralName.class);\r
String taxonAuthor = nvn.getAuthorshipCache();\r
- String refAuthor = reference.getAuthorTeam().getNomenclaturalTitle();\r
+ String refAuthor = reference.getAuthorship().getNomenclaturalTitle();\r
Integer combYear = null;\r
Integer origYear = null;\r
if (nvn.isInstanceOf(ZoologicalName.class)){\r
//TODO microreference\r
record.setBibliographicCitation(reference.getTitleCache());\r
record.setTitle(reference.getTitle());\r
- record.setCreator(reference.getAuthorTeam());\r
+ record.setCreator(reference.getAuthorship());\r
record.setDate(reference.getDatePublished());\r
record.setSource(reference.getInReference()==null?null:reference.getInReference().getTitleCache());\r
\r
String value = sourceMap.get(type);\r
if (type.equals(SourceType.Author)){\r
TeamOrPersonBase<?> author = getAuthorAccordingToConfig(value, state);\r
- ref.setAuthorTeam(author);\r
+ ref.setAuthorship(author);\r
}else if (type.equals(SourceType.Title)) {\r
ref.setTitle(value);\r
}else if (type.equals(SourceType.Year)) {\r
@XmlElement(name = "Taxon", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0", type = Taxon.class),\r
@XmlElement(name = "Synonym", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0", type = Synonym.class)\r
})\r
- protected List<TaxonBase> taxonBases = new ArrayList<TaxonBase>();\r
+ protected List<TaxonBase<?>> taxonBases = new ArrayList<TaxonBase<?>>();\r
\r
@XmlElementWrapper(name = "Media")\r
@XmlElements({\r
* {@link Collection<TaxonBase> }\r
* \r
*/\r
- public void addTaxonBases(Collection<TaxonBase> value) {\r
+ public void addTaxonBases(Collection<TaxonBase<?>> value) {\r
this.taxonBases.addAll(value);\r
}\r
\r
* {@link List<TaxonBase> }\r
* \r
*/\r
- public List<TaxonBase> getTaxonBases() {\r
+ public List<TaxonBase<?>> getTaxonBases() {\r
return taxonBases;\r
}\r
\r
* {@link List<TaxonBase> }\r
* \r
*/\r
- public void setTaxonBases(List<TaxonBase> value) {\r
+ public void setTaxonBases(List<TaxonBase<?>> value) {\r
this.taxonBases = value;\r
}\r
\r
import java.net.URI;\r
import java.net.URISyntaxException;\r
import java.util.Collection;\r
-import java.util.Iterator;\r
import java.util.List;\r
\r
import org.apache.log4j.Logger;\r
// Need to get the taxa and the synonyms here.\r
try {\r
if (jaxbImpConfig.isDoTaxa() == true) {\r
- if ((taxonBases = dataSet.getTaxonBases()).size() > 0) {\r
- logger.info("Taxon bases: " + taxonBases.size());\r
- Iterator <TaxonBase> taxBases = taxonBases.iterator();\r
- getTaxonService().save(taxonBases);\r
+ if ( dataSet.getTaxonBases().size() > 0) {\r
+ List taxa = dataSet.getTaxonBases();\r
+ dataSet.getTaxonBases();\r
+ logger.info("Taxon bases: " + taxa.size());\r
+ taxa.iterator();\r
+ getTaxonService().save(taxa);\r
/*while (taxBases.hasNext()){\r
getTaxonService().save(taxBases.next());\r
}*/\r
Reference<?> sec = ReferenceFactory.newBookSection();\r
sec.setTitle(taxonTitle);\r
TeamOrPersonBase<?> author = createAuthor(writer.writer);\r
- sec.setAuthorTeam(author);\r
+ sec.setAuthorship(author);\r
sec.setInReference(state.getConfig().getSourceReference());\r
taxon.setSec(sec);\r
registerFootnotes(state, sec, writer.footnotes);\r
fireUnexpectedAttributeValue(parent, "type", type); //currently we handle only "personal"\r
}else{\r
Person person = Person.NewInstance();\r
- TeamOrPersonBase<?> author = modsRef.getAuthorTeam();\r
+ TeamOrPersonBase<?> author = modsRef.getAuthorship();\r
if (author == null){\r
- modsRef.setAuthorTeam(person);\r
+ modsRef.setAuthorship(person);\r
}else if (author.isInstanceOf(Person.class)){\r
Team team = Team.NewInstance();\r
team.addTeamMember(person);\r
- modsRef.setAuthorTeam(team);\r
+ modsRef.setAuthorship(team);\r
}else {\r
CdmBase.deproxy(author, Team.class).addTeamMember(person);\r
}\r
\r
if (state.getConfig().isUseEditorAsInAuthorWhereNeeded()){\r
TeamOrPersonBase<?> inAuthor = createAuthor(editors);\r
- book.setAuthorTeam(inAuthor);\r
+ book.setAuthorship(inAuthor);\r
editors = null;\r
}\r
} else if (refType == RefType.Book){\r
if (isBlank(authorStr)){\r
if (refType != RefType.LatestUsed){\r
author = state.getLatestAuthorInHomotype();\r
- reference.setAuthorTeam(author);\r
+ reference.setAuthorship(author);\r
}\r
}else{\r
author = createAuthor(authorStr);\r
state.setLatestAuthorInHomotype(author);\r
- reference.setAuthorTeam(author);\r
+ reference.setAuthorship(author);\r
}\r
\r
\r
\r
// TODO type\r
TeamOrPersonBase<?> author = createAuthor(authorStr);\r
- reference.setAuthorTeam(author);\r
+ reference.setAuthorship(author);\r
\r
//title\r
reference.setTitle(titleStr);\r
\r
package eu.etaxonomy.cdm.io.reference.endnote.in;\r
\r
-import static eu.etaxonomy.cdm.io.common.ImportHelper.OBLIGATORY;\r
-import static eu.etaxonomy.cdm.io.common.ImportHelper.OVERWRITE;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Arrays;\r
-import java.util.HashSet;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.Set;\r
-\r
import org.apache.log4j.Logger;\r
-import org.jdom.Content;\r
import org.jdom.Element;\r
import org.jdom.Namespace;\r
-import org.jdom.Text;\r
\r
-import eu.etaxonomy.cdm.common.CdmUtils;\r
-import eu.etaxonomy.cdm.common.ResultWrapper;\r
-import eu.etaxonomy.cdm.common.XmlHelp;\r
import eu.etaxonomy.cdm.io.common.CdmImportBase;\r
-import eu.etaxonomy.cdm.io.common.CdmIoBase;\r
-import eu.etaxonomy.cdm.io.common.IImportConfigurator;\r
-import eu.etaxonomy.cdm.io.common.ImportHelper;\r
-import eu.etaxonomy.cdm.io.common.MapWrapper;\r
-import eu.etaxonomy.cdm.io.tcsrdf.CdmSingleAttributeXmlMapperBase;\r
-import eu.etaxonomy.cdm.model.agent.Team;\r
-import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
-import eu.etaxonomy.cdm.model.reference.IGeneric;\r
-import eu.etaxonomy.cdm.model.reference.Reference;\r
-import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
-import eu.etaxonomy.cdm.model.reference.ReferenceType;\r
\r
/**\r
* @author a.mueller\r
public abstract class EndNoteImportBase extends CdmImportBase<EndnoteImportConfigurator, EndnoteImportState> {\r
private static final Logger logger = Logger.getLogger(EndNoteImportBase.class);\r
\r
- protected static Namespace nsTcom = Namespace.getNamespace("http://rs.tdwg.org/ontology/voc/Common#");\r
- protected static Namespace nsTn = Namespace.getNamespace("http://rs.tdwg.org/ontology/voc/TaxonName#");\r
- protected static Namespace nsTgeo = Namespace.getNamespace("http://rs.tdwg.org/ontology/voc/GeographicRegion#");\r
- protected static Namespace nsTc = Namespace.getNamespace("http://rs.tdwg.org/ontology/voc/TaxonConcept#");\r
- protected static Namespace nsTpub = Namespace.getNamespace("http://rs.tdwg.org/ontology/voc/PublicationCitation#");\r
- protected static Namespace nsTpalm = Namespace.getNamespace("http://wp5.e-taxonomy.eu/import/palmae/common");\r
- \r
- protected abstract void doInvoke(EndnoteImportState state);\r
-\r
- \r
-// /* (non-Javadoc)\r
-// * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doInvoke(eu.etaxonomy.cdm.io.common.IImportConfigurator, eu.etaxonomy.cdm.api.application.CdmApplicationController, java.util.Map)\r
-// */\r
-// @Override\r
-// protected boolean doInvoke(IImportConfigurator config, \r
-// Map<String, MapWrapper<? extends CdmBase>> stores){ \r
-// TcsXmlImportState state = ((TcsXmlImportConfigurator)config).getState();\r
-// state.setConfig((TcsXmlImportConfigurator)config);\r
-// return doInvoke(state);\r
-// }\r
- \r
- \r
- protected boolean makeStandardMapper(Element parentElement, CdmBase ref, Set<String> omitAttributes, CdmSingleAttributeXmlMapperBase[] classMappers){\r
- if (omitAttributes == null){\r
- omitAttributes = new HashSet<String>();\r
- }\r
- boolean result = true; \r
- for (CdmSingleAttributeXmlMapperBase mapper : classMappers){\r
- Object value = getValue(mapper, parentElement);\r
- //write to destination\r
- if (value != null){\r
- String destinationAttribute = mapper.getDestinationAttribute();\r
- if (! omitAttributes.contains(destinationAttribute)){\r
- result &= ImportHelper.addValue(value, ref, destinationAttribute, mapper.getTypeClass(), OVERWRITE, OBLIGATORY);\r
- }\r
- }\r
- }\r
- return true;\r
- }\r
- \r
- private Object getValue(CdmSingleAttributeXmlMapperBase mapper, Element parentElement){\r
- String sourceAttribute = mapper.getSourceAttribute();\r
- Namespace sourceNamespace = mapper.getSourceNamespace(parentElement);\r
- Element child = parentElement.getChild(sourceAttribute, sourceNamespace);\r
- if (child == null){\r
- return null;\r
- }\r
- if (child.getContentSize() > 1){\r
- logger.warn("Element is not String");\r
- }\r
- Object value = child.getTextTrim();\r
- return value;\r
- }\r
- \r
- protected boolean checkAdditionalContents(Element parentElement, CdmSingleAttributeXmlMapperBase[] classMappers, CdmSingleAttributeXmlMapperBase[] operationalMappers, CdmSingleAttributeXmlMapperBase[] unclearMappers){\r
- List<Content> additionalContentList = new ArrayList<Content>();\r
- List<Content> contentList = parentElement.getContent();\r
- List<CdmSingleAttributeXmlMapperBase> mapperList = new ArrayList<CdmSingleAttributeXmlMapperBase>();\r
- \r
- mapperList.addAll(Arrays.asList(classMappers));\r
- mapperList.addAll(Arrays.asList(operationalMappers));\r
- mapperList.addAll(Arrays.asList(unclearMappers));\r
- \r
- for(Content content: contentList){\r
- boolean contentExists = false;\r
- if (content instanceof Element){\r
- for (CdmSingleAttributeXmlMapperBase mapper : mapperList){\r
- if (mapper.mapsSource(content, parentElement)){\r
- contentExists = true;\r
- break;\r
- }\r
- }\r
- \r
- }else if (content instanceof Text){\r
- //empty Text\r
- if (((Text)content).getTextNormalize().equals("")){\r
- contentExists = true;\r
- }else{\r
- //\r
- }\r
- }\r
- \r
- if (contentExists == false){\r
- additionalContentList.add(content);\r
- }\r
- }\r
- for (Content additionalContent : additionalContentList){\r
- logger.warn("Additional content: " + additionalContent);\r
- }\r
- return (additionalContentList.size() == 0);\r
- }\r
- \r
protected Element getXmlElement(EndnoteImportConfigurator tcsConfig){\r
Element root = tcsConfig.getSourceRoot();\r
\r
\r
return root;\r
}\r
- \r
-// static public boolean checkFirstTwoFunctionElements(List<Object> objList){\r
-// if (! (objList.get(0) instanceof TcsXmlImportConfigurator)){\r
-// logger.error("first method object has wrong type. Must be " + TcsXmlImportConfigurator.class.getSimpleName() + " but is " + (objList.get(0) == null ? "null": objList.get(0).getClass().getSimpleName()));\r
-// return false;\r
-// }\r
-// if (! (objList.get(1) == null) && ! (objList.get(1) instanceof Element)){\r
-// logger.error("first method object has wrong type. Must be " + Element.class.getSimpleName() + " but is " + (objList.get(1) == null ? "null": objList.get(1).getClass().getSimpleName()));\r
-// return false;\r
-// }\r
-// return true;\r
-// }\r
- \r
- \r
- protected boolean testAdditionalElements(Element parentElement, List<String> excludeList){\r
- boolean result = true;\r
- List<Element> list = parentElement.getChildren();\r
- for (Element element : list){\r
- if (! excludeList.contains(element.getName())){\r
- logger.warn("Unknown element (" + element.getName() + ") in parent element (" + parentElement.getName() + ")");\r
- result = false;\r
- }\r
- }\r
- return result;\r
- }\r
- \r
- \r
- protected <T extends IdentifiableEntity> T makeReferenceType(Element element, ReferenceType refType, MapWrapper<? extends T> objectMap, ResultWrapper<Boolean> success){\r
- T result = null;\r
- \r
- String linkType = element.getAttributeValue("linkType");\r
- String ref = element.getAttributeValue("ref");\r
- if(ref == null && linkType == null){\r
- result = (T) ReferenceFactory.newReference(refType);\r
- \r
- if (result != null){\r
- String title = element.getTextNormalize();\r
- result.setTitleCache(title, true);\r
- }\r
- }else if (linkType == null || linkType.equals("local")){\r
- //TODO\r
- result = objectMap.get(ref);\r
- if (result == null){\r
- logger.warn("Object (ref = " + ref + ")could not be found in WrapperMap");\r
- }\r
- }else if(linkType.equals("external")){\r
- logger.warn("External link types not yet implemented");\r
- }else if(linkType.equals("other")){\r
- logger.warn("Other link types not yet implemented");\r
- }else{\r
- logger.warn("Unknown link type or missing ref");\r
- }\r
- if (result == null){\r
- success.setValue(false);\r
- }\r
- return result;\r
- }\r
- \r
- \r
- protected Reference makeAccordingTo(Element elAccordingTo, MapWrapper<Reference> referenceMap, ResultWrapper<Boolean> success){\r
- Reference result = null;\r
- if (elAccordingTo != null){\r
- String childName = "AccordingToDetailed";\r
- boolean obligatory = false;\r
- Element elAccordingToDetailed = XmlHelp.getSingleChildElement(success, elAccordingTo, childName, elAccordingTo.getNamespace(), obligatory);\r
-\r
- childName = "Simple";\r
- obligatory = true;\r
- Element elSimple = XmlHelp.getSingleChildElement(success, elAccordingTo, childName, elAccordingTo.getNamespace(), obligatory);\r
- \r
- if (elAccordingToDetailed != null){\r
- result = makeAccordingToDetailed(elAccordingToDetailed, referenceMap, success);\r
- }else{\r
- result = ReferenceFactory.newGeneric();\r
- String title = elSimple.getTextNormalize();\r
- result.setTitleCache(title, true);\r
- }\r
- }\r
- return result;\r
- }\r
- \r
- \r
- private Reference makeAccordingToDetailed(Element elAccordingToDetailed, MapWrapper<Reference> referenceMap, ResultWrapper<Boolean> success){\r
- Reference result = null;\r
- Namespace tcsNamespace = elAccordingToDetailed.getNamespace();\r
- if (elAccordingToDetailed != null){\r
- //AuthorTeam\r
- String childName = "AuthorTeam";\r
- boolean obligatory = false;\r
- Element elAuthorTeam = XmlHelp.getSingleChildElement(success, elAccordingToDetailed, childName, tcsNamespace, obligatory);\r
- makeAccordingToAuthorTeam(elAuthorTeam, success);\r
- \r
- //PublishedIn\r
- childName = "PublishedIn";\r
- obligatory = false;\r
- Element elPublishedIn = XmlHelp.getSingleChildElement(success, elAccordingToDetailed, childName, tcsNamespace, obligatory);\r
- result = makeReferenceType(elPublishedIn, ReferenceType.Generic, referenceMap, success);\r
- \r
- //MicroReference\r
- childName = "MicroReference";\r
- obligatory = false;\r
- Element elMicroReference = XmlHelp.getSingleChildElement(success, elAccordingToDetailed, childName, tcsNamespace, obligatory);\r
- String microReference = elMicroReference.getTextNormalize();\r
- if (CdmUtils.Nz(microReference).equals("")){\r
- //TODO\r
- logger.warn("MicroReference not yet implemented for AccordingToDetailed"); \r
- }\r
- }\r
- return result;\r
- }\r
-\r
- private Team makeAccordingToAuthorTeam(Element elAuthorTeam, ResultWrapper<Boolean> succes){\r
- Team result = null;\r
- if (elAuthorTeam != null){\r
- //TODO\r
- logger.warn("AuthorTeam not yet implemented for AccordingToDetailed");\r
- }\r
- return result;\r
- }\r
-\r
-\r
-\r
}\r
Reference<?> report = ReferenceFactory.newReport();\r
Reference<?> webPage = ReferenceFactory.newWebPage();\r
Institution school = Institution.NewInstance();\r
- Team authorTeam = Team.NewInstance(); \r
+ Team authorship = Team.NewInstance(); \r
\r
logger.info("start make database ...");\r
childName = "database";\r
String strSize = elStyle.getAttributeValue("size");\r
String author_style = elStyle.getTextNormalize();\r
\r
- reference.setAuthorTeam(authorTeam);\r
- authorTeam.setNomenclaturalTitle(author_style); \r
+ reference.setAuthorship(authorship);\r
+ authorship.setNomenclaturalTitle(author_style); \r
}\r
}\r
} \r
String strSize_secondary = elStyle_secondary.getAttributeValue("size");\r
String secondary_author= elStyle_secondary.getTextNormalize();\r
\r
- reference.setAuthorTeam(authorTeam);\r
- authorTeam.setTitleCache(secondary_author, true);\r
+ reference.setAuthorship(authorship);\r
+ authorship.setTitleCache(secondary_author, true);\r
}\r
}\r
}\r
\r
Contact contact = new Contact();\r
Address address = Address.NewInstance();\r
- reference.setAuthorTeam(authorTeam);\r
- authorTeam.setContact(contact); \r
+ reference.setAuthorship(authorship);\r
+ authorship.setContact(contact); \r
contact.addAddress(address);\r
address.setLocality(address_style);\r
}\r
team.addTeamMember(edit);\r
}\r
}\r
- sec.setAuthorTeam(team);\r
- sourceReference.setAuthorTeam(team);\r
+ sec.setAuthorship(team);\r
+ sourceReference.setAuthorship(team);\r
}\r
\r
if (copyright != null) {\r
team.addTeamMember(edit);\r
}\r
}\r
- sec.setAuthorTeam(team);\r
- sourceReference.setAuthorTeam(team);\r
+ sec.setAuthorship(team);\r
+ sourceReference.setAuthorship(team);\r
}\r
\r
if (copyright != null) {\r
ElementImpl revisionData = new ElementImpl(document, REVISION_DATA);\r
\r
// authors\r
- TeamOrPersonBase authors = database.getAuthorTeam();\r
+ TeamOrPersonBase authors = database.getAuthorship();\r
// TeamOrPersonBase editors = database.getUpdatedBy();\r
\r
if ((authors != null)) { // || (editors != null)) {\r
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.Team;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.name.ZoologicalName;
import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
+import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
import eu.etaxonomy.cdm.model.reference.Reference;
private Abcd206DataHolder dataHolder;
private DerivedUnit derivedUnitBase;
+ private FieldUnit fieldUnit;
private List<OriginalSourceBase<?>> associationRefs = new ArrayList<OriginalSourceBase<?>>();
boolean associationSourcesSet=false;
dataHolder = null;
derivedUnitBase = null;
+ fieldUnit = null;
associationRefs = new ArrayList<OriginalSourceBase<?>>();
associationSourcesSet=false;
// create facade
DerivedUnitFacade derivedUnitFacade = getFacade();
derivedUnitBase = derivedUnitFacade.innerDerivedUnit();
+ fieldUnit = derivedUnitFacade.getFieldUnit(true);
/**
* GATHERING EVENT
try {
media = getImageMedia(multimediaObject, READ_MEDIA_DATA);
derivedUnitFacade.addDerivedUnitMedia(media);
+ if(state.getConfig().isAddMediaAsMediaSpecimen()){
+ //add media also as specimen scan
+ MediaSpecimen mediaSpecimen = MediaSpecimen.NewInstance(SpecimenOrObservationType.Media);
+ mediaSpecimen.setMediaSpecimen(media);
+ DefinedTermBase specimenScanTerm = getTermService().load(UUID.fromString("acda15be-c0e2-4ea8-8783-b9b0c4ad7f03"));
+ if(specimenScanTerm instanceof DefinedTerm){
+ mediaSpecimen.setKindOfUnit((DefinedTerm) specimenScanTerm);
+ }
+ DerivationEvent derivationEvent = DerivationEvent.NewInstance(DerivationEventType.PREPARATION());
+ derivationEvent.addDerivative(mediaSpecimen);
+ derivedUnitFacade.innerDerivedUnit().addDerivationEvent(derivationEvent);
+ }
+
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
determinationEvent.setIdentifiedUnit(derivedUnitBase);
derivedUnitBase.addDetermination(determinationEvent);
- try {
- if(DEBUG){
- logger.info("NB TYPES INFO: "+ dataHolder.statusList.size());
- }
- for (SpecimenTypeDesignationStatus specimenTypeDesignationstatus : dataHolder.statusList) {
- if (specimenTypeDesignationstatus != null) {
- if(DEBUG){
- logger.info("specimenTypeDesignationstatus :"+ specimenTypeDesignationstatus);
- }
-
- ICdmApplicationConfiguration cdmAppController = config.getCdmAppController();
- if(cdmAppController == null){
- cdmAppController = this;
- }
- specimenTypeDesignationstatus = (SpecimenTypeDesignationStatus) cdmAppController.getTermService().find(specimenTypeDesignationstatus.getUuid());
- //Designation
- TaxonNameBase<?,?> name = taxon.getName();
- SpecimenTypeDesignation designation = SpecimenTypeDesignation.NewInstance();
+ if(DEBUG){
+ logger.info("NB TYPES INFO: "+ dataHolder.statusList.size());
+ }
+ for (SpecimenTypeDesignationStatus specimenTypeDesignationstatus : dataHolder.statusList) {
+ if (specimenTypeDesignationstatus != null) {
+ if(DEBUG){
+ logger.info("specimenTypeDesignationstatus :"+ specimenTypeDesignationstatus);
+ }
- designation.setTypeStatus(specimenTypeDesignationstatus);
- designation.setTypeSpecimen(derivedUnitBase);
- name.addTypeDesignation(designation, true);
+ ICdmApplicationConfiguration cdmAppController = config.getCdmAppController();
+ if(cdmAppController == null){
+ cdmAppController = this;
}
+ specimenTypeDesignationstatus = (SpecimenTypeDesignationStatus) cdmAppController.getTermService().find(specimenTypeDesignationstatus.getUuid());
+ //Designation
+ TaxonNameBase<?,?> name = taxon.getName();
+ SpecimenTypeDesignation designation = SpecimenTypeDesignation.NewInstance();
+
+ designation.setTypeStatus(specimenTypeDesignationstatus);
+ designation.setTypeSpecimen(derivedUnitBase);
+ name.addTypeDesignation(designation, true);
}
- } catch (Exception e) {
- logger.warn("PB addding SpecimenType " + e);
}
for (String[] fullReference : dataHolder.referenceList) {
- try{
- List<Reference> references = getReferenceService().list(Reference.class, null, null, null, null);
-
- String strReference=fullReference[0];
- String citationDetail = fullReference[1];
- String citationURL = fullReference[2];
-
- if (isNotBlank(strReference)){
- Reference<?> reference = null;
- for (Reference<?> refe: references) {
- if (refe.getTitleCache().equalsIgnoreCase(strReference)) {
- reference =refe;
- break;
- }
- }
- if (reference ==null){
- reference = ReferenceFactory.newGeneric();
- reference.setTitleCache(strReference, true);
- save(reference, state);
+ List<Reference> references = getReferenceService().list(Reference.class, null, null, null, null);
+
+ String strReference=fullReference[0];
+ String citationDetail = fullReference[1];
+ String citationURL = fullReference[2];
+
+ if (isNotBlank(strReference)){
+ Reference<?> reference = null;
+ for (Reference<?> refe: references) {
+ if (refe.getTitleCache().equalsIgnoreCase(strReference)) {
+ reference =refe;
+ break;
}
- determinationEvent.addReference(reference);
}
- } catch (Exception e) {
- logger.warn("pv getReferenceList " + e);
+ if (reference ==null){
+ reference = ReferenceFactory.newGeneric();
+ reference.setTitleCache(strReference, true);
+ save(reference, state);
+ }
+ determinationEvent.addReference(reference);
}
}
save(derivedUnitBase, state);
}
makeIndividualsAssociation(state, taxon, determinationEvent);
+
+ if(state.getConfig().isDeterminationOnFieldUnitLevel()){
+ DeterminationEvent fieldUnitDeterminationEvent = DeterminationEvent.NewInstance();
+ fieldUnitDeterminationEvent.setTaxon(determinationEvent.getTaxon());
+ fieldUnitDeterminationEvent.setPreferredFlag(determinationEvent.getPreferredFlag());
+ fieldUnitDeterminationEvent.setIdentifiedUnit(fieldUnit);
+ Set<Reference> references = determinationEvent.getReferences();
+ for (Reference reference : references) {
+ fieldUnitDeterminationEvent.addReference(reference);
+ }
+ fieldUnit.addDetermination(fieldUnitDeterminationEvent);
+ }
+
save(derivedUnitBase, state);
}
}
}
/**
- * @param derivedUnitBase2
+ * @param specimen
* @param source
* @return
*/
- private boolean sourceNotLinkedToElement(DerivedUnit derivedUnitBase2, OriginalSourceBase<?> source) {
- Set<IdentifiableSource> linkedSources = derivedUnitBase2.getSources();
+ private boolean sourceNotLinkedToElement(SpecimenOrObservationBase<?> specimen, OriginalSourceBase<?> source) {
+ Set<IdentifiableSource> linkedSources = specimen.getSources();
for (IdentifiableSource is:linkedSources){
Reference a = is.getCitation();
Reference b = source.getCitation();
if (spe != null){
species = getTaxon(state, prefix+" "+name+" "+spe, -1, Rank.SPECIES());
if (preferredFlag) {
- parent = saveOrUpdateClassification(subgenus, species, state);
+ parent = saveOrUpdateClassification(subgenus, species, state);
}
}
}
if (name != null){
species = getTaxon(state, prefix+" "+name, -1, Rank.SPECIES());
if (preferredFlag) {
- parent = saveOrUpdateClassification(genus, species, state);
+ parent = saveOrUpdateClassification(genus, species, state);
}
}
}
if (rank.isInfraSpecific()){
subspecies = getTaxon(state, nvname.getFullTitleCache(), -1, Rank.SUBSPECIES());
if (preferredFlag) {
- parent = saveOrUpdateClassification(species, subspecies, state);
+ parent = saveOrUpdateClassification(species, subspecies, state);
}
}
if (preferredFlag) {
private Map<String, Person> titleCachePerson;\r
private String defaultAuthor="";\r
private boolean allowReuseOtherClassifications =true;\r
+ private boolean addMediaAsMediaSpecimen = false;\r
+ private boolean determinationOnFieldUnitLevel = false;\r
\r
\r
private final SpecimenUserInteraction specimenUserInteraction = new SpecimenUserInteraction();\r
\r
private URI sourceUri;\r
\r
+\r
@Override\r
@SuppressWarnings("unchecked")\r
protected void makeIoClassList(){\r
return namedAreaDecisions.get(areaStr);\r
}\r
\r
+ /**\r
+ * @return the doAddMediaAsMediaSpecimen\r
+ */\r
+ public boolean isAddMediaAsMediaSpecimen() {\r
+ return addMediaAsMediaSpecimen;\r
+ }\r
+\r
+ public void setAddMediaAsMediaSpecimen(boolean addMediaAsMediaSpecimen) {\r
+ this.addMediaAsMediaSpecimen = addMediaAsMediaSpecimen;\r
+ }\r
+\r
+ public boolean isDeterminationOnFieldUnitLevel() {\r
+ return determinationOnFieldUnitLevel;\r
+ }\r
+\r
+ public void setDeterminationOnFieldUnitLevel(boolean determinationOnFieldUnitLevel) {\r
+ this.determinationOnFieldUnitLevel = determinationOnFieldUnitLevel;\r
+ }\r
\r
/**\r
* @return the allowReuseOtherClassifications\r
* @param root
*/
protected void getGatheringPeople(Element root) {
- NodeList group, childs, person;
try {
- group = root.getElementsByTagName(prefix + "GatheringAgent");
dataHolder.gatheringAgentList = new ArrayList<String>();
+
+ NodeList group = root.getElementsByTagName(prefix + "GatheringAgent");
for (int i = 0; i < group.getLength(); i++) {
- childs = group.item(i).getChildNodes();
- for (int j = 0; j < childs.getLength(); j++) {
- if (childs.item(j).getNodeName().equals(prefix + "Person")) {
- person = childs.item(j).getChildNodes();
- for (int k = 0; k < person.getLength(); k++) {
- if (person.item(k).getNodeName().equals(prefix + "FullName")) {
- path = person.item(k).getNodeName();
- getHierarchie(person.item(k));
+ NodeList children = group.item(i).getChildNodes();
+ for (int j = 0; j < children.getLength(); j++) {
+ if (children.item(j).getNodeName().equals(prefix + "Person")) {
+ NodeList persons = children.item(j).getChildNodes();
+ for (int k = 0; k < persons.getLength(); k++) {
+ if (persons.item(k).getNodeName().equals(prefix + "FullName")) {
+ path = persons.item(k).getNodeName();
+ getHierarchie(persons.item(k));
dataHolder.knownABCDelements.add(path);
path = "";
- if (!person.item(k).getTextContent().trim().equalsIgnoreCase("none")) {
- dataHolder.gatheringAgentList.add(person.item(k).getTextContent());
+ if (!persons.item(k).getTextContent().trim().equalsIgnoreCase("none")) {
+ dataHolder.gatheringAgentList.add(persons.item(k).getTextContent());
}
}
}
}
}
+
+ group = root.getElementsByTagName(prefix + "Gathering");
+ for (int i = 0; i < group.getLength(); i++) {
+ NodeList children = group.item(i).getChildNodes();
+ for (int j = 0; j < children.getLength(); j++) {
+ if (children.item(j).getNodeName().equals(prefix + "Agents")) {
+ NodeList persons = children.item(j).getChildNodes();
+ for (int k = 0; k < persons.getLength(); k++) {
+ if (persons.item(k).getNodeName().equals(prefix + "GatheringAgentsText")) {
+ path = persons.item(k).getNodeName();
+ getHierarchie(persons.item(k));
+ dataHolder.knownABCDelements.add(path);
+ path = "";
+ if (!persons.item(k).getTextContent().trim().equalsIgnoreCase("none")) {
+ dataHolder.gatheringAgentList.add(persons.item(k).getTextContent());
+ }
+ }
+ }
+ }
+
+ }
+ }
+
} catch (NullPointerException e) {
dataHolder.gatheringAgentList = new ArrayList<String>();
}
} catch (StringNotParsableException e) {
determinedBy = Team.NewTitledInstance(commonDetermination.determinedBy, commonDetermination.determinedBy);
}
- sec.setAuthorTeam(determinedBy);
+ sec.setAuthorship(determinedBy);
}
//taxon
authors.add(determination.determinedBy);
}
TeamOrPersonBase<?> actor = getOrMakeAgent(state, authors);
- TeamOrPersonBase<?> secAuthor = taxon.getSec() == null ? null : taxon.getSec().getAuthorTeam();
+ TeamOrPersonBase<?> secAuthor = taxon.getSec() == null ? null : taxon.getSec().getAuthorship();
if (actor != null && secAuthor != null && secAuthor.getTitleCache().equals(actor.getTitleCache()) && secAuthor.getNomenclaturalTitle().equals(actor.getNomenclaturalTitle())) {
actor = secAuthor;
}
if (ref == null){
ref = state.getConfig().getSourceReference();
}
- AgentBase<?> agent= ref.getAuthorTeam();
+ AgentBase<?> agent= ref.getAuthorship();
if (agent != null){
if (agent.getClass().equals(Team.class)){
for (Person p : ((Team) agent).getTeamMembers()){
int PARSED = 1;\r
Namespace nsMods = elModsName.getNamespace();\r
List<Content> contentList = elModsName.getContent();\r
- Team authorTeam = Team.NewInstance();\r
+ Team authorship = Team.NewInstance();\r
\r
//name\r
List<Element> elNameParts = elModsName.getChildren("namePart", nsMods);\r
if (elNamePart != null){\r
String namePart = elNamePart.getTextNormalize();\r
contentList.remove(elNamePart);\r
- authorTeam.setTitleCache(namePart, true);\r
+ authorship.setTitleCache(namePart, true);\r
}\r
if (elNameParts.size()> 1){\r
logger.warn("Multiple nameparts of unexpected type");\r
for (Element elNamePart: tmpNamePartList){\r
if (elNamePart.getAttributeValue("type").equals("family")){\r
lastTeamMember = Person.NewInstance();\r
- authorTeam.addTeamMember(lastTeamMember);\r
+ authorship.addTeamMember(lastTeamMember);\r
lastTeamMember.setLastname(elNamePart.getTextNormalize());\r
}else if (elNamePart.getAttributeValue("type").equals("given")){\r
lastTeamMember.setFirstname(elNamePart.getTextNormalize());\r
contentList.remove(elNamePart);\r
}\r
}\r
- ref.setAuthorTeam(authorTeam);\r
+ ref.setAuthorship(authorship);\r
\r
removeEmptyContent(contentList);\r
for (Content o: contentList){\r
if (ref == null){
logger.warn("mods:name exists but reference is null");
}else if (persons.size()==1){
- ref.setAuthorTeam(persons.get(0));
+ ref.setAuthorship(persons.get(0));
}
else{
- Team authorTeam = Team.NewInstance();
+ Team authorship = Team.NewInstance();
for (Person pers:persons){
- authorTeam.addTeamMember(pers);
+ authorship.addTeamMember(pers);
}
- if (!personMap.containsKey(authorTeam.getTitleCache()) && (authorTeam.getTeamMembers().size()>0)){
- UUID uuid = importer.getAgentService().saveOrUpdate(authorTeam);
- personMap.put(authorTeam.getTitleCache(),uuid);
+ if (!personMap.containsKey(authorship.getTitleCache()) && (authorship.getTeamMembers().size()>0)){
+ UUID uuid = importer.getAgentService().saveOrUpdate(authorship);
+ personMap.put(authorship.getTitleCache(),uuid);
}else{
- if(authorTeam.getTeamMembers().size()>1) {
- UUID uuid = personMap.get(authorTeam.getTitleCache());
- authorTeam = (Team) importer.getAgentService().find(uuid);
+ if(authorship.getTeamMembers().size()>1) {
+ UUID uuid = personMap.get(authorship.getTitleCache());
+ authorship = (Team) importer.getAgentService().find(uuid);
}
}
- ref.setAuthorTeam(authorTeam);
+ ref.setAuthorship(authorship);
}
if (editors.size()>0) {
ref.setEditor(StringUtils.join(editors,", "));
tcsNamespace = publicationNamespace;\r
String strAuthorship = elPublicationCitation.getChildText(tcsElementName, tcsNamespace);\r
//TODO\r
- TeamOrPersonBase<?> authorTeam = Team.NewInstance();\r
- authorTeam.setTitleCache(strAuthorship, true);\r
- ref.setAuthorTeam(authorTeam);\r
+ TeamOrPersonBase<?> authorship = Team.NewInstance();\r
+ authorship.setTitleCache(strAuthorship, true);\r
+ ref.setAuthorship(authorship);\r
\r
tcsElementName = "year";\r
tcsNamespace = publicationNamespace;\r
<xs:sequence>
<xs:element name="URI" type="xs:string" minOccurs="0"/>
<xs:element name="IsNomenclaturallyRelevant" type="xs:boolean"/>
- <xs:element name="AuthorTeam" type="xs:IDREF" minOccurs="0"/>
+ <xs:element name="Authorship" type="xs:IDREF" minOccurs="0"/>
<xs:element name="Abstract" type="xs:string" minOccurs="0"/>
<xs:element name="Title" type="xs:string" minOccurs="0"/>
<xs:element name="Editor" type="xs:string" minOccurs="0"/>
// DescriptionElementSource source = textData.getSources().iterator().next();\r
// Reference ref = source.getCitation();\r
// assertNotNull("Citation should not be null", ref);\r
-// assertNotNull("AuthorTeam should not be null", ref.getAuthorTeam());\r
-// assertEquals("Source author should be 'Meyer et. al.'", "Meyer et. al.",ref.getAuthorTeam().getTitleCache());\r
+// assertNotNull("Authorship should not be null", ref.getAuthorship());\r
+// assertEquals("Source author should be 'Meyer et. al.'", "Meyer et. al.",ref.getAuthorship().getTitleCache());\r
// assertEquals("Publication title should be 'My first book'", "My first book", ref.getTitle());\r
// assertEquals("Publication year should be '1987'", "1987", ref.getYear());\r
// TaxonNameBase nameUsedInSource = source.getNameUsedInSource();\r
// source = textData.getSources().iterator().next();\r
// ref = source.getCitation();\r
// assertNotNull("Citation should not be null", ref);\r
-// assertNotNull("AuthorTeam should not be null", ref.getAuthorTeam());\r
-// assertEquals("Source author should be 'Theys, A.'", "Theys, A.",ref.getAuthorTeam().getTitleCache());\r
+// assertNotNull("Authorship should not be null", ref.getAuthorship());\r
+// assertEquals("Source author should be 'Theys, A.'", "Theys, A.",ref.getAuthorship().getTitleCache());\r
// assertEquals("Publication title should be 'The ultimate book'", "The ultimate book", ref.getTitle());\r
// assertEquals("Publication year should be '2011'", "2011", ref.getYear());\r
// nameUsedInSource = source.getNameUsedInSource();\r
DescriptionElementSource source = textData.getSources().iterator().next();\r
Reference<?> ref = source.getCitation();\r
assertNotNull("Citation should not be null", ref);\r
- assertNotNull("AuthorTeam should not be null", ref.getAuthorTeam());\r
- assertEquals("Source author should be 'Meyer et. al.'", "Meyer et. al.",ref.getAuthorTeam().getTitleCache());\r
+ assertNotNull("Authorship should not be null", ref.getAuthorship());\r
+ assertEquals("Source author should be 'Meyer et. al.'", "Meyer et. al.",ref.getAuthorship().getTitleCache());\r
assertEquals("Publication title should be 'My first book'", "My first book", ref.getTitle());\r
assertEquals("Publication year should be '1987'", "1987", ref.getYear());\r
TaxonNameBase<?,?> nameUsedInSource = source.getNameUsedInSource();\r
source = textData.getSources().iterator().next();\r
ref = source.getCitation();\r
assertNotNull("Citation should not be null", ref);\r
- assertNotNull("AuthorTeam should not be null", ref.getAuthorTeam());\r
- assertEquals("Source author should be 'Theys, A.'", "Theys, A.",ref.getAuthorTeam().getTitleCache());\r
+ assertNotNull("Authorship should not be null", ref.getAuthorship());\r
+ assertEquals("Source author should be 'Theys, A.'", "Theys, A.",ref.getAuthorship().getTitleCache());\r
assertEquals("Publication title should be 'The ultimate book'", "The ultimate book", ref.getTitle());\r
assertEquals("Publication year should be '2011'", "2011", ref.getYear());\r
nameUsedInSource = source.getNameUsedInSource();\r
\r
import org.junit.Assert;\r
import org.junit.Before;\r
-import org.junit.Ignore;\r
import org.junit.Test;\r
import org.unitils.dbunit.annotation.DataSet;\r
import org.unitils.spring.annotation.SpringBeanByName;\r
import org.unitils.spring.annotation.SpringBeanByType;\r
\r
+import eu.etaxonomy.cdm.api.service.IAgentService;\r
import eu.etaxonomy.cdm.api.service.ICommonService;\r
import eu.etaxonomy.cdm.api.service.INameService;\r
import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
import eu.etaxonomy.cdm.api.service.ITermService;\r
import eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultImport;\r
import eu.etaxonomy.cdm.io.common.IImportConfigurator;\r
+import eu.etaxonomy.cdm.model.agent.Institution;\r
+import eu.etaxonomy.cdm.model.agent.Person;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;\r
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;\r
public class SpecimenImportConfiguratorTest extends CdmTransactionalIntegrationTest {\r
\r
@SpringBeanByName\r
- CdmApplicationAwareDefaultImport<?> defaultImport;\r
+ private CdmApplicationAwareDefaultImport<?> defaultImport;\r
\r
@SpringBeanByType\r
- INameService nameService;\r
+ private INameService nameService;\r
\r
@SpringBeanByType\r
- IOccurrenceService occurrenceService;\r
+ private IOccurrenceService occurrenceService;\r
\r
@SpringBeanByType\r
- ITermService termService;\r
+ private ITermService termService;\r
\r
@SpringBeanByType\r
- ICommonService commonService;\r
+ private ICommonService commonService;\r
\r
@SpringBeanByType\r
- ITaxonNodeService taxonNodeService;\r
- \r
+ private ITaxonNodeService taxonNodeService;\r
+\r
+ @SpringBeanByType\r
+ private IAgentService agentService;\r
+\r
@SpringBeanByType\r
private IReferenceService referenceService;\r
\r
Assert.fail();\r
}\r
assertNotNull("Configurator2 could not be created", configurator);\r
- \r
+\r
//test2\r
String inputFile2 = "/eu/etaxonomy/cdm/io/specimen/abcd206/in/Campanula_ABCD_import_3_taxa_11_units.xml";\r
URL url2 = this.getClass().getResource(inputFile2);\r
*/\r
assertEquals("Number of TaxonNodes is incorrect", 3, taxonNodeService.count(TaxonNode.class));\r
assertEquals("Number of specimen and observation is incorrect", 10, occurrenceService.count(DerivedUnit.class));\r
+ //Asch. + Mitarbeiter der Floristischen Kartierung Deutschlands\r
+ assertEquals("Number of persons is incorrect", 2, agentService.count(Person.class));\r
+ //BfN\r
+ assertEquals("Number of institutions is incorrect", 1, agentService.count(Institution.class));\r
}\r
- \r
+\r
\r
@Test\r
@DataSet(value="SpecimenImportConfiguratorTest.doInvoke2.xml", loadStrategy=CleanSweepInsertLoadStrategy.class)\r
assertEquals("Number of TaxonNodes is incorrect", 5, taxonNodeService.count(TaxonNode.class));\r
assertEquals("Number of derived units is incorrect", 11, occurrenceService.count(DerivedUnit.class));\r
assertEquals("Number of field units is incorrect", 11, occurrenceService.count(FieldUnit.class));\r
- assertEquals("Number of field units is incorrect", 1, referenceService.count(Reference.class));\r
+ assertEquals("Number of gathering agents is incorrect", 4, agentService.count(Person.class));\r
+ //BGBM\r
+ assertEquals("Number of institutions is incorrect", 1, agentService.count(Institution.class));\r
+ assertEquals("Number of references is incorrect", 1, referenceService.count(Reference.class));\r
}\r
}\r
TransactionStatus txStatus = appCtr.startTransaction();\r
DataSet dataSet = buildDataSet();\r
\r
- appCtr.getTaxonService().save(dataSet.getTaxonBases());\r
+ appCtr.getTaxonService().save((List)dataSet.getTaxonBases());\r
\r
appCtr.commitTransaction(txStatus);\r
appCtr.close();\r
\r
// references\r
sec = ReferenceFactory.newBook();\r
- sec.setAuthorTeam(linne);\r
+ sec.setAuthorship(linne);\r
sec.setTitleCache("Plant Speciation", true);\r
references.add(sec);\r
\r
citRef = ReferenceFactory.newDatabase();\r
- citRef.setAuthorTeam(linne);\r
+ citRef.setAuthorship(linne);\r
citRef.setTitleCache("BioCASE", true);\r
references.add(citRef);\r
\r
dataSet.setTerms(terms);\r
dataSet.setReferences(references);\r
dataSet.setTaxonomicNames(taxonomicNames);\r
- dataSet.setTaxonBases(taxonBases);\r
+ dataSet.setTaxonBases((List)taxonBases);\r
\r
return dataSet;\r
\r
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.AGENTBASE_IDENTIFIER(
+ AGENTBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.AGENTBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ AGENTBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.AGENTBASE_MARKER(
AGENTBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
PROTECTEDTITLECACHE BOOLEAN NOT NULL,
TITLECACHE VARCHAR(255),
MICROREFERENCE VARCHAR(255),
+ TIMEPERIOD_START VARCHAR(255),
+ TIMEPERIOD_FREETEXT VARCHAR(255),
+ TIMEPERIOD_END VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
NAME_ID INTEGER,
PROTECTEDTITLECACHE BOOLEAN,
TITLECACHE VARCHAR(255),
MICROREFERENCE VARCHAR(255),
+ TIMEPERIOD_START VARCHAR(255),
+ TIMEPERIOD_FREETEXT VARCHAR(255),
+ TIMEPERIOD_END VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
NAME_ID INTEGER,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_CREDIT_AUD;
+
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_DESCRIPTION(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ DESCRIPTION_ID INTEGER NOT NULL,
+ DESCRIPTION_MAPKEY_ID INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_DESCRIPTION;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_DESCRIPTION_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ DESCRIPTION_ID INTEGER NOT NULL,
+ DESCRIPTION_MAPKEY_ID INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_DESCRIPTION_AUD;
+
CREATE CACHED TABLE PUBLIC.CLASSIFICATION_EXTENSION(
CLASSIFICATION_ID INTEGER NOT NULL,
EXTENSIONS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_GEOSCOPE(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ GEOSCOPES_ID INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_GEOSCOPE;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_GEOSCOPE_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ GEOSCOPES_ID INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_GEOSCOPE_AUD;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_IDENTIFIER(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.CLASSIFICATION_MARKER(
CLASSIFICATION_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.COLLECTION_IDENTIFIER(
+ COLLECTION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.COLLECTION_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ COLLECTION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.COLLECTION_MARKER(
COLLECTION_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_IDENTIFIER(
+ DEFINEDTERMBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ DEFINEDTERMBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_MARKER(
DEFINEDTERMBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_IDENTIFIER(
+ DESCRIPTIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ DESCRIPTIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_FEATURE(
DESCRIPTIONBASE_ID INTEGER NOT NULL,
DESCRIPTIVESYSTEM_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DETERMINATIONEVENT_REFERENCE_AUD;
+CREATE CACHED TABLE PUBLIC.DNAQUALITY(
+ ID INTEGER NOT NULL,
+ CREATED TIMESTAMP,
+ UUID VARCHAR(36) NOT NULL,
+ UPDATED TIMESTAMP,
+ PURIFICATIONMETHOD VARCHAR(255),
+ RATIOOFABSORBANCE260_230 DOUBLE,
+ RATIOOFABSORBANCE260_280 DOUBLE,
+ QUALITYCHECKDATE TIMESTAMP,
+ CONCENTRATION DOUBLE,
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CONCENTRATIONUNIT_ID INTEGER,
+ QUALITYTERM_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DNAQUALITY;
+CREATE CACHED TABLE PUBLIC.DNAQUALITY_AUD(
+ ID INTEGER NOT NULL,
+ REV INTEGER NOT NULL,
+ REVTYPE TINYINT,
+ CREATED TIMESTAMP,
+ UUID VARCHAR(36) NOT NULL,
+ UPDATED TIMESTAMP,
+ PURIFICATIONMETHOD VARCHAR(255),
+ RATIOOFABSORBANCE260_230 DOUBLE,
+ RATIOOFABSORBANCE260_280 DOUBLE,
+ QUALITYCHECKDATE TIMESTAMP,
+ CONCENTRATION DOUBLE,
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CONCENTRATIONUNIT_ID INTEGER,
+ QUALITYTERM_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DNAQUALITY_AUD;
+CREATE CACHED TABLE PUBLIC.ENTITYVALIDATIONRESULT(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ VALIDATEDENTITYID INTEGER,
+ VALIDATEDENTITYUUID VARCHAR(36),
+ VALIDATEDENTITYCLASS VARCHAR(255),
+ USERFRIENDLYDESCRIPTION VARCHAR(255),
+ USERFRIENDLYTYPENAME VARCHAR(255),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CRUDEVENTTYPE VARCHAR(24)
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ENTITYVALIDATIONRESULT;
+CREATE CACHED TABLE PUBLIC.ENTITYCONSTRAINTVIOLATION(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ PROPERTYPATH VARCHAR(255),
+ USERFRIENDLYFIELDNAME VARCHAR(255),
+ INVALIDVALUE VARCHAR(255),
+ SEVERITY VARCHAR(24),
+ MESSAGE VARCHAR(255),
+ VALIDATOR VARCHAR(255),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ ENTITYVALIDATIONRESULT_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ENTITYCONSTRAINTVIOLATION;
CREATE CACHED TABLE PUBLIC.EXTENSION(
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.FEATURETREE_IDENTIFIER(
+ FEATURETREE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.FEATURETREE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ FEATURETREE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.FEATURETREE_MARKER(
FEATURETREE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
UUID VARCHAR(36),
- AUTHORITY VARCHAR(255),
+ AUTHORITY VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.GRANTEDAUTHORITYIMPL;
DESCRIPTION_MAPKEY_ID INTEGER NOT NULL
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.INDIVIDUALASSOCIATION_LANGUAGESTRING;
+CREATE CACHED TABLE PUBLIC.IDENTIFIER(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ UPDATED TIMESTAMP,
+ IDENTIFIEDOBJ_TYPE VARCHAR(255),
+ IDENTIFIEDOBJ_ID INTEGER,
+ IDENTIFIER VARCHAR(800),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ TYPE_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.IDENTIFIER_AUD(
+ ID INTEGER NOT NULL,
+ REV INTEGER NOT NULL,
+ REVTYPE TINYINT,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ UPDATED TIMESTAMP,
+ IDENTIFIEDOBJ_TYPE VARCHAR(255),
+ IDENTIFIEDOBJ_ID INTEGER,
+ IDENTIFIER VARCHAR(800),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ TYPE_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.INDIVIDUALASSOCIATION_LANGUAGESTRING_AUD(
REV INTEGER NOT NULL,
DESCRIPTIONELEMENTBASE_ID INTEGER NOT NULL,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.MEDIA_IDENTIFIER(
+ MEDIA_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.MEDIA_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ MEDIA_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.MEDIA_LANGUAGESTRING(
MEDIA_ID INTEGER NOT NULL,
TITLE_ID INTEGER NOT NULL,
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
UUID VARCHAR(36),
- NAME VARCHAR(255),
+ NAME VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.PERMISSIONGROUP;
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_IDENTIFIER(
+ POLYTOMOUSKEY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ POLYTOMOUSKEY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_MARKER(
POLYTOMOUSKEY_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
UUID VARCHAR(36),
UPDATED TIMESTAMP,
LABEL VARCHAR(255),
+ SEQUENCE_LENGTH INTEGER,
+ SEQUENCE_STRING CLOB,
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
PUBLISHEDIN_ID INTEGER,
- SEQUENCE_ID INTEGER,
PRIMARY KEY (ID)
);
CREATE TABLE PRIMER_AUD (
UUID VARCHAR(36),
UPDATED TIMESTAMP,
LABEL VARCHAR(255),
+ SEQUENCE_LENGTH INTEGER,
+ SEQUENCE_STRING CLOB,
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
PUBLISHEDIN_ID INTEGER,
- SEQUENCE_ID INTEGER
);
CREATE TABLE PRIMER_ANNOTATION (
PROBLEMSTARTS INTEGER NOT NULL,
PUBLISHER VARCHAR(255),
REFERENCEABSTRACT CLOB,
- SERIES VARCHAR(255),
SERIESPART VARCHAR(255),
TITLE CLOB,
ABBREVTITLE VARCHAR(255),
VOLUME VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
- AUTHORTEAM_ID INTEGER,
+ AUTHORSHIP_ID INTEGER,
INREFERENCE_ID INTEGER,
INSTITUTION_ID INTEGER,
SCHOOL_ID INTEGER
PROBLEMSTARTS INTEGER,
PUBLISHER VARCHAR(255),
REFERENCEABSTRACT CLOB,
- SERIES VARCHAR(255),
SERIESPART VARCHAR(255),
TITLE CLOB,
ABBREVTITLE VARCHAR(255),
VOLUME VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
- AUTHORTEAM_ID INTEGER,
+ AUTHORSHIP_ID INTEGER,
INREFERENCE_ID INTEGER,
INSTITUTION_ID INTEGER,
SCHOOL_ID INTEGER
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.REFERENCE_IDENTIFIER(
+ REFERENCE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.REFERENCE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ REFERENCE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.REFERENCE_MARKER(
REFERENCE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
CATALOGNUMBER VARCHAR(255),
COLLECTORSNUMBER VARCHAR(255),
EXSICCATUM VARCHAR(255),
+ ORIGINALLABELINFO CLOB,
FIELDNOTES VARCHAR(255),
FIELDNUMBER VARCHAR(255),
CREATEDBY_ID INTEGER,
PRESERVATION_ID INTEGER,
GATHERINGEVENT_ID INTEGER,
PRIMARYCOLLECTOR_ID INTEGER,
- MEDIASPECIMEN_ID INTEGER
+ MEDIASPECIMEN_ID INTEGER,
+ DNAQUALITY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE;
CREATE INDEX PUBLIC.SPECIMENOROBSERVATIONBASETITLECACHEINDEX ON PUBLIC.SPECIMENOROBSERVATIONBASE(TITLECACHE);
CATALOGNUMBER VARCHAR(255),
COLLECTORSNUMBER VARCHAR(255),
EXSICCATUM VARCHAR(255),
+ ORIGINALLABELINFO CLOB,
FIELDNOTES VARCHAR(255),
FIELDNUMBER VARCHAR(255),
CREATEDBY_ID INTEGER,
PRESERVATION_ID INTEGER,
GATHERINGEVENT_ID INTEGER,
PRIMARYCOLLECTOR_ID INTEGER,
- MEDIASPECIMEN_ID INTEGER
+ MEDIASPECIMEN_ID INTEGER,
+ DNAQUALITY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_AUD;
CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_ANNOTATION(
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER(
+ SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_LANGUAGESTRING(
SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
DEFINITION_ID INTEGER NOT NULL,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TAXONBASE_IDENTIFIER(
+ TAXONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TAXONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TAXONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TAXONBASE_MARKER(
TAXONBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_IDENTIFIER(
+ TAXONNAMEBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TAXONNAMEBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_MARKER(
TAXONNAMEBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_IDENTIFIER(
+ TERMVOCABULARY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TERMVOCABULARY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_MARKER(
TERMVOCABULARY_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
EMAILADDRESS VARCHAR(255),
ENABLED BOOLEAN NOT NULL,
PASSWORD VARCHAR(255),
- USERNAME VARCHAR(255),
+ USERNAME VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER,
PERSON_ID INTEGER
);
ALTER TABLE PUBLIC.MULTIACCESSKEY_SCOPE ADD CONSTRAINT PUBLIC.FKCC6CE4F7546985E4 FOREIGN KEY(SCOPERESTRICTIONS_ID) REFERENCES PUBLIC.DEFINEDTERMBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.AGENTBASE_ADDRESS ADD CONSTRAINT PUBLIC.FK1EDFF7EB86EFC5D4 FOREIGN KEY(AGENTBASE_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_MARKER ADD CONSTRAINT PUBLIC.FK8E6106C7777265A1 FOREIGN KEY(MARKERS_ID) REFERENCES PUBLIC.MARKER(ID) NOCHECK;
-ALTER TABLE PUBLIC.REFERENCE ADD CONSTRAINT PUBLIC.FK404D5F2B697665E FOREIGN KEY(AUTHORTEAM_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
+ALTER TABLE PUBLIC.REFERENCE ADD CONSTRAINT PUBLIC.FK404D5F2B697665E FOREIGN KEY(AUTHORSHIP_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.CLASSIFICATION_CREDIT_AUD ADD CONSTRAINT PUBLIC.FK48AC64334869AAE FOREIGN KEY(REV) REFERENCES PUBLIC.AUDITEVENT(REVISIONNUMBER) NOCHECK;
ALTER TABLE PUBLIC.TAXONBASE ADD CONSTRAINT PUBLIC.FK9249B49B7C7B5AED FOREIGN KEY(TAXONOMICPARENTCACHE_ID) REFERENCES PUBLIC.TAXONBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.AGENTBASE_ADDRESS ADD CONSTRAINT PUBLIC.FK1EDFF7EB50751EC5 FOREIGN KEY(CONTACT_ADDRESSES_ID) REFERENCES PUBLIC.ADDRESS(ID) NOCHECK;
<common:TitleCache>Godfray, 2002</common:TitleCache>\r
<common:ProtectedTitleCache>false</common:ProtectedTitleCache>\r
<reference:IsNomenclaturallyRelevant>false</reference:IsNomenclaturallyRelevant>\r
- <reference:AuthorTeam>urn-uuid-1a634162-4db8-4d83-84b0-079730d73c51</reference:AuthorTeam>\r
+ <reference:Authorship>urn-uuid-1a634162-4db8-4d83-84b0-079730d73c51</reference:Authorship>\r
<reference:Title>Challenges for taxonomy</reference:Title>\r
<reference:Volume>417</reference:Volume>\r
<reference:Pages>17-19</reference:Pages>\r
<common:TitleCache>Darwin, 1859</common:TitleCache>\r
<common:ProtectedTitleCache>false</common:ProtectedTitleCache>\r
<reference:IsNomenclaturallyRelevant>false</reference:IsNomenclaturallyRelevant>\r
- <reference:AuthorTeam>urn-uuid-b8506159-0555-4489-a74c-eb50c2062218</reference:AuthorTeam>\r
+ <reference:Authorship>urn-uuid-b8506159-0555-4489-a74c-eb50c2062218</reference:Authorship>\r
<reference:Title>On the Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life</reference:Title>\r
<reference:DatePublished>\r
<common:Start>1859-11-24</common:Start>\r
<common:TitleCache>Darwin, 2005</common:TitleCache>\r
<common:ProtectedTitleCache>false</common:ProtectedTitleCache>\r
<reference:IsNomenclaturallyRelevant>false</reference:IsNomenclaturallyRelevant>\r
- <reference:AuthorTeam>urn-uuid-b8506159-0555-4489-a74c-eb50c2062218</reference:AuthorTeam>\r
+ <reference:Authorship>urn-uuid-b8506159-0555-4489-a74c-eb50c2062218</reference:Authorship>\r
<reference:Title>From So Simple a Beginning: Darwin's Four Great Books (Voyage of the H.M.S. Beagle, The Origin of Species, The Descent of Man, The Expression of Emotions in Man and Animals)</reference:Title>\r
<reference:DatePublished>\r
<common:Start>2005-11</common:Start>\r
<common:TitleCache>Linnaeus, 1758</common:TitleCache>\r
<common:ProtectedTitleCache>false</common:ProtectedTitleCache>\r
<reference:IsNomenclaturallyRelevant>true</reference:IsNomenclaturallyRelevant>\r
- <reference:AuthorTeam>urn-uuid-5d3161eb-d227-415f-ba2a-93b8c7ddb98a</reference:AuthorTeam>\r
+ <reference:Authorship>urn-uuid-5d3161eb-d227-415f-ba2a-93b8c7ddb98a</reference:Authorship>\r
<reference:Title>Syst. Nat. (Edn 10)</reference:Title>\r
<reference:DatePublished>\r
<common:Start>1758</common:Start>\r
<common:TitleCache>Linnaeus, 1753</common:TitleCache>\r
<common:ProtectedTitleCache>false</common:ProtectedTitleCache>\r
<reference:IsNomenclaturallyRelevant>true</reference:IsNomenclaturallyRelevant>\r
- <reference:AuthorTeam>urn-uuid-5d3161eb-d227-415f-ba2a-93b8c7ddb98a</reference:AuthorTeam>\r
+ <reference:Authorship>urn-uuid-5d3161eb-d227-415f-ba2a-93b8c7ddb98a</reference:Authorship>\r
<reference:Title>Species Plantarum</reference:Title>\r
<reference:DatePublished>\r
<common:Start>1753</common:Start>\r
<common:TitleCache>Schott, 1856</common:TitleCache>\r
<common:ProtectedTitleCache>false</common:ProtectedTitleCache>\r
<reference:IsNomenclaturallyRelevant>true</reference:IsNomenclaturallyRelevant>\r
- <reference:AuthorTeam>urn-uuid-28e67c60-ca40-41bb-aa1c-f713efd0f235</reference:AuthorTeam>\r
+ <reference:Authorship>urn-uuid-28e67c60-ca40-41bb-aa1c-f713efd0f235</reference:Authorship>\r
<reference:Title>Synopsis aroidearum complectens enumerationem sytematicam generum et ...</reference:Title>\r
<reference:DatePublished>\r
<common:Start>1856</common:Start>\r
<common:TitleCache>Tutt, 1904</common:TitleCache>\r
<common:ProtectedTitleCache>false</common:ProtectedTitleCache>\r
<reference:IsNomenclaturallyRelevant>true</reference:IsNomenclaturallyRelevant>\r
- <reference:AuthorTeam>urn-uuid-b8cd17ba-32ea-4201-85f1-63d31526ccdb</reference:AuthorTeam>\r
+ <reference:Authorship>urn-uuid-b8cd17ba-32ea-4201-85f1-63d31526ccdb</reference:Authorship>\r
<reference:Title>A Natural History of the British Lepidoptera</reference:Title>\r
<reference:DatePublished>\r
<common:Start>1904</common:Start>\r
<common:TitleCache>Kitching & Cadiou, 2000</common:TitleCache>\r
<common:ProtectedTitleCache>true</common:ProtectedTitleCache>\r
<reference:IsNomenclaturallyRelevant>true</reference:IsNomenclaturallyRelevant>\r
- <reference:AuthorTeam>urn-uuid-cb525bcb-3736-4fda-91f1-13dceb64466c</reference:AuthorTeam>\r
+ <reference:Authorship>urn-uuid-cb525bcb-3736-4fda-91f1-13dceb64466c</reference:Authorship>\r
<reference:Title>Hawkmoths of the World: An Annotated and Illustrated Revisionary Checklist</reference:Title>\r
<reference:DatePublished>\r
<common:Start>2000</common:Start>\r
<common:TitleCache>Laspeyres, 1809</common:TitleCache>\r
<common:ProtectedTitleCache>false</common:ProtectedTitleCache>\r
<reference:IsNomenclaturallyRelevant>true</reference:IsNomenclaturallyRelevant>\r
- <reference:AuthorTeam>urn-uuid-73b1c67a-b61a-4e6a-96fc-b6568c08542f</reference:AuthorTeam>\r
+ <reference:Authorship>urn-uuid-73b1c67a-b61a-4e6a-96fc-b6568c08542f</reference:Authorship>\r
<reference:Title>Jena. allg. Lit.-Ztg</reference:Title>\r
<reference:DatePublished>\r
<common:Start>1809</common:Start>\r
<TAXONBASE DTYPE="Taxon" ID="3346" CREATED="2013-09-07 00:28:13.0" UUID="f3c3a9e3-92d1-4866-b2bf-35ae2ebad170" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Cichorium sec. ABCD classic" APPENDEDPHRASE="[null]" DOUBTFUL="false" PUBLISH="true" USENAMECACHE="false" EXCLUDED="false" TAXONSTATUSUNKNOWN="false" TAXONOMICCHILDRENCOUNT="0" UNPLACED="false" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" NAME_ID="3346" SEC_ID="3951" TAXONOMICPARENTCACHE_ID="[null]"/>
<TAXONNAMEBASE DTYPE="BotanicalName" ID="3345" CREATED="2013-09-07 00:28:13.0" UUID="b40fe405-870e-4116-b717-703d5db3e323" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Cichorium calvum Asch." APPENDEDPHRASE="[null]" FULLTITLECACHE="Cichorium calvum Asch." NOMENCLATURALMICROREFERENCE="[null]" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="Asch." BINOMHYBRID="false" GENUSORUNINOMIAL="Cichorium" HYBRIDFORMULA="false" INFRAGENERICEPITHET="[null]" INFRASPECIFICEPITHET="[null]" MONOMHYBRID="false" NAMECACHE="Cichorium calvum" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="calvum" TRINOMHYBRID="false" NAMEAPPROBATION="[null]" SUBGENUSAUTHORSHIP="[null]" ANAMORPHIC="false" CULTIVARNAME="[null]" ACRONYM="[null]" BREED="[null]" ORIGINALPUBLICATIONYEAR="[null]" PUBLICATIONYEAR="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" HOMOTYPICALGROUP_ID="3345" NOMENCLATURALREFERENCE_ID="[null]" RANK_ID="765" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="3675" EXBASIONYMAUTHORTEAM_ID="[null]" EXCOMBINATIONAUTHORTEAM_ID="[null]"/>
<TAXONNAMEBASE DTYPE="NonViralName" ID="3346" CREATED="2013-09-07 00:28:13.0" UUID="bff220f2-0166-4d29-9aef-026e7fe1c3b4" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Cichorium" APPENDEDPHRASE="[null]" FULLTITLECACHE="Cichorium" NOMENCLATURALMICROREFERENCE="[null]" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" BINOMHYBRID="false" GENUSORUNINOMIAL="[null]" HYBRIDFORMULA="false" INFRAGENERICEPITHET="[null]" INFRASPECIFICEPITHET="[null]" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="[null]" TRINOMHYBRID="false" NAMEAPPROBATION="[null]" SUBGENUSAUTHORSHIP="[null]" ANAMORPHIC="[null]" CULTIVARNAME="[null]" ACRONYM="[null]" BREED="[null]" ORIGINALPUBLICATIONYEAR="[null]" PUBLICATIONYEAR="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" HOMOTYPICALGROUP_ID="3346" NOMENCLATURALREFERENCE_ID="[null]" RANK_ID="774" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]" EXBASIONYMAUTHORTEAM_ID="[null]" EXCOMBINATIONAUTHORTEAM_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="3000" CREATED="2013-09-07 00:27:43.0" UUID="3a886a0e-3520-479b-ad27-f13280bf29c6" UPDATED="2013-09-07 00:27:43.703" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="DwC-A Import" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="DwC-A Import" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="3001" CREATED="2013-09-07 00:27:44.0" UUID="3ddbb5ab-0651-4a0f-98d9-b7a28a870550" UPDATED="2013-09-07 00:27:44.948" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Excel Stream Import" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel Stream Import" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="3002" CREATED="2013-09-07 00:27:45.0" UUID="2e2e8d37-e020-4330-b9da-55078db4fb47" UPDATED="2013-09-07 00:27:45.261" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Excel_34U" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="Excel_34U " ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel_34U" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="3003" CREATED="2013-09-07 00:27:45.0" UUID="c362cc01-bdab-4408-a2a9-2e34d191642b" UPDATED="2013-09-07 00:27:45.277" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Excel_34U" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="Excel_34U " ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel_34U" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="3004" CREATED="2013-09-07 00:27:45.0" UUID="cfb1f108-7f01-436c-a465-04adf7967ff3" UPDATED="2013-09-07 00:27:45.28" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Excel_34U" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="Excel_34U " ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel_34U" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="3005" CREATED="2013-09-07 00:27:45.0" UUID="75d3830e-5986-4b81-9be3-31e965e71260" UPDATED="2013-09-07 00:27:45.283" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Excel_34U" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="Excel_34U " ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel_34U" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="3006" CREATED="2013-09-07 00:27:45.0" UUID="c12c4a77-30af-445f-a0bf-0d80c293c096" UPDATED="2013-09-07 00:27:45.286" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Excel_34U" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="Excel_34U " ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel_34U" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="3010" CREATED="2013-09-07 00:27:46.0" UUID="cf565d59-8289-4b83-9fe6-fc7a6598b966" UPDATED="2013-09-07 00:27:46.641" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Excel Taxon import" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel Taxon import" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="3949" CREATED="2006-04-20 08:00:00.0" UUID="8bdbe508-5022-4833-8103-fcc59ac79fd7" UPDATED="2013-09-07 00:28:10.036" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Kevin Thiele, Gregor Hagedorn & Ali Baba, " DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="Kevin Thiele, Gregor Hagedorn & Ali Baba, " PROTECTEDABBREVTITLECACHE="false" REFTYPE="DB" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="3670" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="3950" CREATED="2013-09-07 00:28:10.0" UUID="06372db8-ded5-4686-b467-83df00a8f9f3" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Sample Citation" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="3951" CREATED="2013-09-07 00:28:10.0" UUID="db7ab9bc-bfbc-4ea3-a332-c815714b1eea" UPDATED="2013-09-07 00:28:10.864" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="ABCD classic" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="ABCD classic" ABBREVTITLE="[null]" ABBREVTITLECACHE="ABCD classic" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="3000" CREATED="2013-09-07 00:27:43.0" UUID="3a886a0e-3520-479b-ad27-f13280bf29c6" UPDATED="2013-09-07 00:27:43.703" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="DwC-A Import" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="DwC-A Import" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="3001" CREATED="2013-09-07 00:27:44.0" UUID="3ddbb5ab-0651-4a0f-98d9-b7a28a870550" UPDATED="2013-09-07 00:27:44.948" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Excel Stream Import" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel Stream Import" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="3002" CREATED="2013-09-07 00:27:45.0" UUID="2e2e8d37-e020-4330-b9da-55078db4fb47" UPDATED="2013-09-07 00:27:45.261" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Excel_34U" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="Excel_34U " ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel_34U" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="3003" CREATED="2013-09-07 00:27:45.0" UUID="c362cc01-bdab-4408-a2a9-2e34d191642b" UPDATED="2013-09-07 00:27:45.277" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Excel_34U" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="Excel_34U " ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel_34U" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="3004" CREATED="2013-09-07 00:27:45.0" UUID="cfb1f108-7f01-436c-a465-04adf7967ff3" UPDATED="2013-09-07 00:27:45.28" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Excel_34U" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="Excel_34U " ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel_34U" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="3005" CREATED="2013-09-07 00:27:45.0" UUID="75d3830e-5986-4b81-9be3-31e965e71260" UPDATED="2013-09-07 00:27:45.283" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Excel_34U" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="Excel_34U " ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel_34U" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="3006" CREATED="2013-09-07 00:27:45.0" UUID="c12c4a77-30af-445f-a0bf-0d80c293c096" UPDATED="2013-09-07 00:27:45.286" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Excel_34U" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="Excel_34U " ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel_34U" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="3010" CREATED="2013-09-07 00:27:46.0" UUID="cf565d59-8289-4b83-9fe6-fc7a6598b966" UPDATED="2013-09-07 00:27:46.641" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Excel Taxon import" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="Excel Taxon import" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="3949" CREATED="2006-04-20 08:00:00.0" UUID="8bdbe508-5022-4833-8103-fcc59ac79fd7" UPDATED="2013-09-07 00:28:10.036" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Kevin Thiele, Gregor Hagedorn & Ali Baba, " DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="Kevin Thiele, Gregor Hagedorn & Ali Baba, " PROTECTEDABBREVTITLECACHE="false" REFTYPE="DB" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="3670" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="3950" CREATED="2013-09-07 00:28:10.0" UUID="06372db8-ded5-4686-b467-83df00a8f9f3" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Sample Citation" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="3951" CREATED="2013-09-07 00:28:10.0" UUID="db7ab9bc-bfbc-4ea3-a332-c815714b1eea" UPDATED="2013-09-07 00:28:10.864" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="ABCD classic" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="ABCD classic" ABBREVTITLE="[null]" ABBREVTITLECACHE="ABCD classic" PROTECTEDABBREVTITLECACHE="false" REFTYPE="GEN" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
<DESCRIPTIONELEMENTBASE DTYPE="CommonTaxonName" ID="3000" CREATED="2013-09-07 00:27:44.0" UUID="0f3d7aed-cbf4-4930-8790-fcfce1f636b1" UPDATED="2013-09-07 00:27:44.274" NAME="[null]" TIMEPERIOD_START="[null]" TIMEPERIOD_END="[null]" TIMEPERIOD_FREETEXT="[null]" ORDERRELEVANT="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" FEATURE_ID="933" INDESCRIPTION_ID="3000" AREA_ID="[null]" LANGUAGE_ID="406" STATUS_ID="[null]" ASSOCIATEDSPECIMENOROBSERVATION_ID="[null]" UNIT_ID="[null]" TAXON2_ID="[null]" FORMAT_ID="[null]"/>
<DESCRIPTIONELEMENTBASE DTYPE="CommonTaxonName" ID="3001" CREATED="2013-09-07 00:27:44.0" UUID="9924f1e6-c445-4aee-b5ba-fc97d7f595da" UPDATED="2013-09-07 00:27:44.278" NAME="[null]" TIMEPERIOD_START="[null]" TIMEPERIOD_END="[null]" TIMEPERIOD_FREETEXT="[null]" ORDERRELEVANT="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" FEATURE_ID="933" INDESCRIPTION_ID="3001" AREA_ID="[null]" LANGUAGE_ID="406" STATUS_ID="[null]" ASSOCIATEDSPECIMENOROBSERVATION_ID="[null]" UNIT_ID="[null]" TAXON2_ID="[null]" FORMAT_ID="[null]"/>
<DESCRIPTIONELEMENTBASE DTYPE="CommonTaxonName" ID="3002" CREATED="2013-09-07 00:27:44.0" UUID="70b5bc2e-21df-41f8-93c7-b634865fb94d" UPDATED="2013-09-07 00:27:44.389" NAME="[null]" TIMEPERIOD_START="[null]" TIMEPERIOD_END="[null]" TIMEPERIOD_FREETEXT="[null]" ORDERRELEVANT="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" FEATURE_ID="933" INDESCRIPTION_ID="3002" AREA_ID="[null]" LANGUAGE_ID="406" STATUS_ID="[null]" ASSOCIATEDSPECIMENOROBSERVATION_ID="[null]" UNIT_ID="[null]" TAXON2_ID="[null]" FORMAT_ID="[null]"/>
<parent>
<artifactId>cdmlib-parent</artifactId>
<groupId>eu.etaxonomy</groupId>
- <version>3.3.8-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
package eu.etaxonomy.cdm.model.agent;
+import java.net.URI;
import java.util.List;
import java.util.Set;
Contact newContact = Contact.NewInstance();
if (create){
contact = newContact;
+ this.setContact(contact);
}
return contact;
}
* @param location
* @see eu.etaxonomy.cdm.model.agent.Contact#addAddress(java.lang.String, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.location.Country, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.location.Point)
*/
- public void addAddress(String street, String postcode, String locality,
+ public Address addAddress(String street, String postcode, String locality,
Country country, String pobox, String region,
Point location) {
- getNewOrExistingContact(true).addAddress(street, postcode, locality, country, pobox, region,
+ return getNewOrExistingContact(true).addAddress(street, postcode, locality, country, pobox, region,
location);
}
/**
* @param url
* @see eu.etaxonomy.cdm.model.agent.Contact#addUrl(java.lang.String)
*/
- public void addUrl(String url) {
+ public void addUrl(URI url) {
getNewOrExistingContact(true).addUrl(url);
}
/**
* @see eu.etaxonomy.cdm.model.agent.Contact#getUrls()
*/
@Transient
- public List<String> getUrls() {
+ public List<URI> getUrls() {
return getNewOrExistingContact(false).getUrls();
}
/**
* @param url
* @see eu.etaxonomy.cdm.model.agent.Contact#removeUrl(java.lang.String)
*/
- public void removeUrl(String url) {
+ public void removeUrl(URI url) {
getNewOrExistingContact(false).removeUrl(url);
}
package eu.etaxonomy.cdm.model.agent;
import java.io.Serializable;
+import java.net.URI;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@XmlElement(name = "URL")
@XmlSchemaType(name = "anyURI")
@ElementCollection(fetch = FetchType.LAZY)
- @Column(name = "contact_urls_element")
- private List<String> urls;
+ @Column(name = "contact_urls_element", length=330)
+ @Cascade({CascadeType.SAVE_UPDATE, CascadeType.MERGE, CascadeType.DELETE})
+ private List<String> urls = new ArrayList<String>();
@XmlElementWrapper(name = "PhoneNumbers", nillable = true)
@XmlElement(name = "PhoneNumber")
@ElementCollection(fetch = FetchType.LAZY)
@Column(name = "contact_phonenumbers_element")
+ @Cascade({CascadeType.SAVE_UPDATE, CascadeType.MERGE, CascadeType.DELETE})
private List<String> phoneNumbers;
@XmlElementWrapper(name = "FaxNumbers", nillable = true)
*/
public static Contact NewInstance(String street, String postcode, String locality,
Country country, String pobox, String region,
- String email, String faxNumber, String phoneNumber, String url, Point location) {
+ String email, String faxNumber, String phoneNumber, URI url, Point location) {
Contact result = new Contact();
if (country != null || StringUtils.isNotBlank(locality) || StringUtils.isNotBlank(pobox) || StringUtils.isNotBlank(postcode) ||
StringUtils.isNotBlank(region) || StringUtils.isNotBlank(street) ){
public static Contact NewInstance(Set<Address> addresses, List<String> emailAdresses,
- List<String> faxNumbers, List<String> phoneNumbers, List<String> urls) {
+ List<String> faxNumbers, List<String> phoneNumbers, List<URI> urls) {
Contact result = new Contact();
if (addresses != null){
result.addresses = addresses;
result.phoneNumbers = phoneNumbers;
}
if (urls != null){
- result.urls = urls;
+ for (URI uri : urls){
+ result.urls.add(uri.toString());
+ }
}
return result;
}
}
}
- public void addAddress(String street, String postcode, String locality,
+ public Address addAddress(String street, String postcode, String locality,
Country country, String pobox, String region, Point location){
Address newAddress = Address.NewInstance(country, locality, pobox, postcode, region, street, location);
getAddresses().add(newAddress);
+ return newAddress;
}
/**
* Returns the list of strings representing the "Uniform Resource Locators" (urls)
* included in <i>this</i> contact.
*/
- public List<String> getUrls(){
- if(this.urls == null) {
- this.urls = new ArrayList<String>();
+ public List<URI> getUrls(){
+ List<URI> result = new ArrayList<URI>();
+ if(this.urls != null) {
+ for (String uri : this.urls){
+ result.add(URI.create(uri));
+ }
}
- return this.urls;
+ return result;
}
/**
* @see #getUrls()
*/
- public void addUrl(String url){
- getUrls().add(url);
+ public void addUrl(URI url){
+ this.urls.add(url.toString());
}
/**
* @param url the url of <i>this</i> contact which should be deleted
* @see #getUrls()
*/
- public void removeUrl(String url){
- getUrls().remove(url);
+ public void removeUrl(URI url){
+ this.urls.remove(url.toString());
}
/**
@XmlElement(name = "ProtectedNomenclaturalTitleCache")
private boolean protectedNomenclaturalTitleCache = false;
- //An abreviated name for the team (e. g. in case of nomenclatural authorteams). A non abreviated name for the team (e. g.
+ //An abbreviated name for the team (e. g. in case of nomenclatural authorteams).
+ //A non abbreviated name for the team (e. g.
//in case of some bibliographical references)
@XmlElementWrapper(name = "TeamMembers", nillable = true)
@XmlElement(name = "TeamMember")
\r
package eu.etaxonomy.cdm.model.common;\r
\r
+import javax.persistence.Column;\r
import javax.persistence.Entity;\r
+import javax.validation.constraints.NotNull;\r
import javax.xml.bind.annotation.XmlAccessType;\r
import javax.xml.bind.annotation.XmlAccessorType;\r
import javax.xml.bind.annotation.XmlElement;\r
import javax.xml.bind.annotation.XmlType;\r
\r
import org.apache.log4j.Logger;\r
-import org.hibernate.annotations.NaturalId;\r
import org.springframework.security.core.GrantedAuthority;\r
\r
@XmlAccessorType(XmlAccessType.FIELD)\r
public class GrantedAuthorityImpl extends CdmBase implements GrantedAuthority {\r
\r
private static final long serialVersionUID = 2651969425860655040L;\r
- private static final Logger logger = Logger\r
- .getLogger(GrantedAuthority.class);\r
+ private static final Logger logger = Logger.getLogger(GrantedAuthority.class);\r
\r
@XmlElement(name = "Authority")\r
- @NaturalId\r
+ @Column(unique = true)\r
+ @NotNull\r
private String authority;\r
\r
protected GrantedAuthorityImpl() {\r
return new GrantedAuthorityImpl();\r
}\r
\r
- /* (non-Javadoc)\r
- * @see org.springframework.security.core.GrantedAuthority#getAuthority()\r
- */\r
@Override\r
public String getAuthority() {\r
return authority;\r
import java.util.Set;\r
import java.util.UUID;\r
\r
+import javax.persistence.Column;\r
import javax.persistence.Entity;\r
import javax.persistence.FetchType;\r
import javax.persistence.ManyToMany;\r
import javax.persistence.Table;\r
+import javax.validation.constraints.NotNull;\r
import javax.xml.bind.annotation.XmlAccessType;\r
import javax.xml.bind.annotation.XmlAccessorType;\r
import javax.xml.bind.annotation.XmlElement;\r
import org.apache.log4j.Logger;\r
import org.hibernate.annotations.Cascade;\r
import org.hibernate.annotations.CascadeType;\r
-import org.hibernate.annotations.NaturalId;\r
import org.hibernate.search.annotations.Field;\r
import org.hibernate.search.annotations.Indexed;\r
import org.springframework.security.core.GrantedAuthority;\r
public final static UUID groupEditorUuid = UUID.fromString("22e5e8af-b99c-4884-a92f-71978efd3770");\r
public final static UUID groupProjectManagerUuid = UUID.fromString("645191ae-32a4-4d4e-9b86-c90e0d41944a");\r
\r
+//*********************** FACTORY *********************/\r
+\r
+ public static Group NewInstance(){\r
+ return new Group();\r
+ }\r
+\r
+ public static Group NewInstance(String name){\r
+ Group group = Group.NewInstance();\r
+ group.setName(name);\r
+ return group;\r
+ }\r
+ \r
+//**************** FIELDS ******************************/ \r
+ \r
@XmlElement(name = "Name")\r
- @NaturalId\r
+ @Column(unique = true)\r
@Field\r
+ @NotNull\r
protected String name;\r
\r
@XmlElementWrapper(name = "Members")\r
@Cascade({CascadeType.SAVE_UPDATE})\r
protected Set <GrantedAuthority> grantedAuthorities = new HashSet<GrantedAuthority>();\r
\r
+// ********************* CONSTRUCTOR ************************/ \r
+ \r
protected Group(){\r
super();\r
}\r
\r
- public static Group NewInstance(){\r
- return new Group();\r
- }\r
-\r
- public static Group NewInstance(String name){\r
- Group group = Group.NewInstance();\r
- group.setName(name);\r
- return group;\r
- }\r
+// *************** METHODS ***********************************/ \r
\r
public Set<GrantedAuthority> getGrantedAuthorities() {\r
return grantedAuthorities;\r
\r
/**\r
* Sets the title cache without changing the <code>protectCache</code> flag.<BR><BR>\r
- * NOTE: Use with care. If this flag is <code>false</code> the <code>titleCache</code> may be \r
+ * NOTE: Use with care. If this flag is <code>false</code> the <code>titleCache</code> may be\r
* recomputed with the next call of {@link #getTitleCache()}, which is automatically the case when\r
* the object is persisted.\r
* @see #setTitleCache(String, boolean)\r
* @param titleCache\r
* @deprecated this method only exists to be in line with the Java Beans Specification (JSR 220 or JSR 273) .\r
* As it will set the {@link #isProtectedTitleCache() protected} flag to false the title cache value\r
- * may be automatically recomputed later. There are only very rare use cases were a programmer may \r
+ * may be automatically recomputed later. There are only very rare use cases were a programmer may\r
* want to use this method directly.\r
* Better use {@link #setTitleCache(String, boolean)} with second parameter <code>protectCache</code>\r
* set to <code>true</code>.\r
* Sets the title cache.<BR>\r
* NOTE: In most cases the <code>protectCache</code> argument should be set to <code>true</code>.\r
* See comments at {@link #setTitleCache(String)}\r
- * \r
+ *\r
* @param titleCache the new title cache\r
* @param protectCache the protect flag, <b>should in most cases be set to <code>true</code></b>\r
*/\r
public boolean isProtectedTitleCache();\r
\r
public void setProtectedTitleCache(boolean protectedTitleCache);\r
- \r
+\r
public Set<Rights> getRights();\r
\r
public void addRights(Rights right);\r
\r
public void removeExtension(Extension extension);\r
\r
+ /**\r
+ * Returns the list of {@link Identifier alternative identifiers}.\r
+ * In case the order of these identifiers is important it should be\r
+ * implemented such that the first item in the list is the most \r
+ * important/most current identifier. <BR>\r
+ * E.g. if a barcode identifier\r
+ * is more important than the accession number for a certain \r
+ * specimen, than the barcode identifier should be before the accession number.\r
+ * <BR>Or if a sample designation is the most recent of all sample designations\r
+ * than it should be the first in the list while all history designations come\r
+ * later.\r
+ * @return\r
+ */\r
+ public List<Identifier> getIdentifiers();\r
+\r
+ /**\r
+ * @see #getIdentifiers()\r
+ * @param identifier\r
+ */\r
+ public void addIdentifier(Identifier identifier);\r
+ \r
+ /**\r
+ * Adds an identifier at the given position. For use of \r
+ * <code>index</code> see {@link List#add(int, Object)} and {@link#getIdentifiers()}\r
+ * @param index the list index \r
+ * @param identifier the identifier\r
+ */\r
+ public void addIdentifier(int index, Identifier identifier);\r
+\r
+ /**\r
+ * Removes an identifier at the given position. For use of \r
+ * <code>index</code> see {@link List#add(int, Object)} and {@link#getIdentifiers()}\r
+ * @param index the list index \r
+ */\r
+ public void removeIdentifier(int index);\r
+\r
+ \r
+ /**\r
+ * Removes an identifier\r
+ * @see #getIdentifiers()\r
+ * @param identifier\r
+ */\r
+ public void removeIdentifier(Identifier identifier);\r
+\r
+\r
/**\r
* Overrides {@link eu.etaxonomy.cdm.model.common.CdmBase#toString()}.\r
* This returns an String that identifies the object well without beeing necessarily unique.\r
* For example: Taxon#13<b5938a98-c1de-4dda-b040-d5cc5bfb3bc0>\r
* @see java.lang.Object#toString()\r
*/\r
+ @Override\r
public String toString();\r
\r
public byte[] getData();\r
import javax.persistence.FetchType;
import javax.persistence.MappedSuperclass;
import javax.persistence.OneToMany;
+import javax.persistence.OrderColumn;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
"lsid",
"titleCache",
"protectedTitleCache",
- "rights",
- "extensions",
"credits",
+ "extensions",
+ "identifiers",
+ "rights",
"sources"
})
@Audited
@NotNull
private Set<Extension> extensions = new HashSet<Extension>();
+ @XmlElementWrapper(name = "Identifiers", nillable = true)
+ @XmlElement(name = "Identifier")
+ @OrderColumn(name="sortIndex")
+ @OneToMany(fetch = FetchType.LAZY, orphanRemoval=true)
+ @Cascade({CascadeType.SAVE_UPDATE, CascadeType.MERGE, CascadeType.DELETE})
+ @Merge(MergeMode.ADD_CLONE)
+ @NotNull
+ private List<Identifier> identifiers = new ArrayList<Identifier>();
+
@XmlElementWrapper(name = "Sources", nillable = true)
@XmlElement(name = "IdentifiableSource")
@OneToMany(fetch = FetchType.LAZY, orphanRemoval=true)
@Deprecated
@Override
public void setTitleCache(String titleCache){
- //TODO shouldn't we call setTitleCache(String, boolean),but is this conformant with Java Bean Specification?
+ //TODO shouldn't we call setTitleCache(String, boolean),but is this conformant with Java Bean Specification?
this.titleCache = getTruncatedCache(titleCache);
}
getCredits().remove(index);
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.model.common.IIdentifiableEntity#getIdentifiers()
+ */
+ @Override
+ public List<Identifier> getIdentifiers(){
+ if(this.identifiers == null) {
+ this.identifiers = new ArrayList<Identifier>();
+ }
+ return this.identifiers;
+ }
+ /**
+ * @param type
+ * @return a Set of extension value strings
+ */
+ public Set<String> getIdentifiers(DefinedTerm type){
+ return getIdentifiers(type.getUuid());
+ }
+ /**
+ * @param extensionTypeUuid
+ * @return a Set of extension value strings
+ */
+ public Set<String> getIdentifiers(UUID identifierTypeUuid){
+ Set<String> result = new HashSet<String>();
+ for (Identifier identifier : getIdentifiers()){
+ if (identifier.getType().getUuid().equals(identifierTypeUuid)){
+ result.add(identifier.getIdentifier());
+ }
+ }
+ return result;
+ }
+
+ public Identifier addIdentifier(String identifier, DefinedTerm identifierType){
+ Identifier result = Identifier.NewInstance(this, identifier, identifierType);
+ return result;
+ }
+
+ @Override
+ public void addIdentifier(int index, Identifier identifier){
+ if (identifier != null){
+ identifier.setIdentifiedObj(this);
+ getIdentifiers().add(index, identifier);
+ }
+ }
+
+ @Override
+ public void addIdentifier(Identifier identifier){
+ addIdentifier(getIdentifiers().size(), identifier);
+ }
+
+ @Override
+ public void removeIdentifier(Identifier identifier){
+ if (identifier != null){
+ identifier.setIdentifiedObj(null);
+ getIdentifiers().remove(identifier);
+ }
+ }
+ @Override
+ public void removeIdentifier(int index){
+ getIdentifiers().remove(index);
+ }
+
@Override
public Set<Extension> getExtensions(){
if(extensions == null) {
addSource(source);
return source;
}
-
-
+
+
@Override
public IdentifiableSource addImportSource(String id, String idNamespace, Reference<?> citation, String microCitation) {
if (id == null && idNamespace == null && citation == null && microCitation == null){
((BotanicalName)identifiableEntity).setNameCache(null, false);
specifiedNameCache = ((BotanicalName) identifiableEntity).getNameCache();
((BotanicalName)identifiableEntity).setNameCache(oldNameCache, isProtected);
-
+
}
}
if(this.isInstanceOf(NonViralName.class)) {
thisNameCache = HibernateProxyHelper.deproxy(this, NonViralName.class).getNameCache();
thisTitleCache = getTitleCache();
-
+
if (this instanceof BotanicalName){
if (((BotanicalName)this).isAutonym()){
boolean isProtected = false;
}
// Compare name cache of taxon names
-
-
+
+
if (!specifiedNameCache.equals("") && !thisNameCache.equals("")) {
result = thisNameCache.compareTo(specifiedNameCache);
}\r
\r
// ********************** GETTER /SETTER *****************************/\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.model.common.IOriginalSource#getSourcedObj()\r
- */\r
+\r
+ @Override\r
public IdentifiableEntity getSourcedObj() {\r
return sourcedObj;\r
}\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.model.common.IOriginalSource#setSourcedObj(eu.etaxonomy.cdm.model.common.IdentifiableEntity)\r
- */\r
+ @Override\r
public void setSourcedObj(IdentifiableEntity sourcedObj) {\r
this.sourcedObj = sourcedObj;\r
}\r
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.model.common;\r
+\r
+import javax.persistence.Column;\r
+import javax.persistence.Entity;\r
+import javax.persistence.FetchType;\r
+import javax.persistence.JoinColumn;\r
+import javax.persistence.ManyToOne;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlIDREF;\r
+import javax.xml.bind.annotation.XmlSchemaType;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.hibernate.annotations.Any;\r
+import org.hibernate.annotations.Index;\r
+import org.hibernate.annotations.Table;\r
+import org.hibernate.envers.Audited;\r
+import org.hibernate.envers.NotAudited;\r
+import org.hibernate.search.annotations.Field;\r
+\r
+import eu.etaxonomy.cdm.validation.annotation.NullOrNotEmpty;\r
+\r
+/**\r
+ * @author a.mueller\r
+ * @date 2014-06-30\r
+ */\r
+\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "Identifier", propOrder = {\r
+ "identifier",\r
+ "type",\r
+ "identifiedObj" \r
+})\r
+@Entity\r
+@Audited\r
+@Table(appliesTo="Identifier", indexes = { @Index(name = "identifierIndex", columnNames = { "identifier" }) })\r
+public class Identifier<T extends IdentifiableEntity<?>> extends VersionableEntity {\r
+ private static final long serialVersionUID = -798893563577142030L;\r
+ private static final Logger logger = Logger.getLogger(IdentifiableSource.class);\r
+\r
+ @XmlElement(name ="Identifier" )\r
+ @Column(length=800, name="identifier")\r
+ @Field\r
+ @NullOrNotEmpty\r
+ private String identifier;\r
+ \r
+ @XmlElement(name = "Type")\r
+ @XmlIDREF\r
+ @XmlSchemaType(name = "IDREF")\r
+ @ManyToOne(fetch = FetchType.LAZY)\r
+// @IndexedEmbedded(depth=1)\r
+ private DefinedTerm type;\r
+\r
+ @XmlElement(name = "IdentifiedObject")\r
+ @XmlIDREF\r
+ @XmlSchemaType(name = "IDREF")\r
+ @Any(metaDef = "CdmBase",\r
+ metaColumn=@Column(name = "identifiedObj_type"),\r
+ fetch = FetchType.LAZY,\r
+ optional = false)\r
+ @JoinColumn(name = "identifiedObj_id")\r
+ @NotAudited\r
+ private T identifiedObj;\r
+ \r
+// **************************** FACTORY ******************************/ \r
+ \r
+ public static <T extends IdentifiableEntity<?>> Identifier<T> NewInstance(T entity, String identifier, DefinedTerm type){\r
+ return new Identifier<T>(entity, identifier, type);\r
+ }\r
+\r
+// ************************* CONSTRUCTOR ************************************ \r
+ \r
+ @Deprecated //for hibernate use only\r
+ protected Identifier(){};\r
+ \r
+ public Identifier (T entity, String identifier, DefinedTerm type){\r
+ this.identifier = identifier;\r
+ this.type = type;\r
+ logger.warn("Identified object not yet implemented");\r
+// this.identifiedObj = entity;\r
+ }\r
+\r
+ \r
+// ****************** GETTER / SETTER **********************/ \r
+ \r
+ public String getIdentifier() {\r
+ return identifier;\r
+ }\r
+\r
+\r
+ public void setIdentifier(String identifier) {\r
+ this.identifier = identifier;\r
+ }\r
+\r
+\r
+ /**\r
+ * The identifier type. E.g. DOI, LSID, Barcode, Sample Designation, ...\r
+ * @see TermType#IdentifierType \r
+ * @return\r
+ */\r
+ public DefinedTerm getType() {\r
+ return type;\r
+ }\r
+\r
+\r
+ public void setType(DefinedTerm identifierType) {\r
+ this.type = identifierType;\r
+ }\r
+ \r
+ public T getIdentifiedObj() {\r
+ return identifiedObj;\r
+ }\r
+ protected void setIdentifiedObj(T identifiedObj) {\r
+ this.identifiedObj = identifiedObj;\r
+ }\r
+ \r
+}\r
@SuppressWarnings("unused")
private static final Logger logger = Logger.getLogger(LanguageString.class);
+//********************* FACTORY *******************************************/
+
public static LanguageString NewInstance(String text, Language language){
return new LanguageString(text, language);
}
+
+// ********************* CONSTRUCTOR ********************************/
protected LanguageString() {
super();
super(text, language);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.model.common.CdmBase#toString()
- */
+
+//*************** TO STRING ***********************************/
@Override
public String toString() {
if (text == null){
- return super.toString() + "null";
+ return super.toString() + ":null";
}else{
String languagePart = "";
if (this.language != null){
}
}
}
-
+
+// ************************ CLONE ********************************/
@Override
public Object clone() throws CloneNotSupportedException {
LanguageString result = (LanguageString)super.clone();
*/\r
@XmlEnumValue("DnaMarker")\r
DnaMarker(UUID.fromString("7fdddb4f-b0ec-4ce0-bc28-dc94e30e8252"), "DNA Marker", "DMA", null),\r
+ \r
+ \r
+ /**\r
+ * An Identifier Type which can be used as a type in {@link Identifier#type} . It may often be a global unique identifier such as DOI, LSID, Barcode ....\r
+ * But also local identifier types such Sample Designation, Catalog Number, \r
+ * Accession Number, ... are allowed.\r
+ * {@link Identifier#type}\r
+ */\r
+ @XmlEnumValue("IdentifierType")\r
+ IdentifierType(UUID.fromString("d24eda99-0716-467f-aa1e-4c0f2b6c3922"), "Identifier", "IDE", null),\r
;\r
\r
@SuppressWarnings("unused")\r
case Stage:\r
case KindOfUnit:\r
case PresenceAbsenceTerm:\r
+ case IdentifierType:\r
case DnaMarker:\r
return DefinedTerm.NewInstance(this, null, "Untitled", null);\r
case Feature:\r
import java.util.HashSet;\r
import java.util.Set;\r
\r
+import javax.persistence.Column;\r
import javax.persistence.Entity;\r
import javax.persistence.FetchType;\r
import javax.persistence.ManyToMany;\r
import javax.persistence.OneToOne;\r
import javax.persistence.Table;\r
import javax.persistence.Transient;\r
+import javax.validation.constraints.NotNull;\r
import javax.xml.bind.annotation.XmlAccessType;\r
import javax.xml.bind.annotation.XmlAccessorType;\r
import javax.xml.bind.annotation.XmlElement;\r
import org.apache.log4j.Logger;\r
import org.hibernate.annotations.Cascade;\r
import org.hibernate.annotations.CascadeType;\r
-import org.hibernate.annotations.NaturalId;\r
import org.hibernate.envers.Audited;\r
import org.hibernate.envers.NotAudited;\r
import org.hibernate.search.annotations.Analyze;\r
private static final long serialVersionUID = 6582191171369439163L;\r
private static final Logger logger = Logger.getLogger(User.class);\r
\r
- protected User(){\r
- super();\r
- }\r
-\r
+ // **************************** FACTORY *****************************************/ \r
+ \r
public static User NewInstance(String username, String pwd){\r
User user = new User();\r
user.setUsername(username);\r
return user;\r
}\r
\r
+//***************************** Fields *********************** /\r
+ \r
@XmlElement(name = "Username")\r
- @NaturalId\r
+ @Column(unique = true)\r
@Field(analyze = Analyze.NO)\r
+ @NotNull\r
protected String username;\r
\r
/**\r
@Transient\r
private Set<GrantedAuthority> authorities; //authorities of this user and of all groups the user belongs to\r
\r
+//***************************** Constructor *********************** /\r
+ \r
+ protected User(){\r
+ super();\r
+ }\r
+ \r
+// ***************************** METHODS ******************************/\r
+ \r
/**\r
* Initializes or refreshes the collection of authorities, See\r
* {@link #getAuthorities()}\r
DnaMarkerChloroplast("e572d370-a27b-40d3-974c-cb17562b59cf", DefinedTerm.class),
PlantKindOfUnit("5167c47b-7726-4dba-b02f-dafb7629481b", DefinedTerm.class),
SpecimenKindOfUnit("b0344ec4-12f7-40d3-82c1-0092e9780bbd", DefinedTerm.class),
- MediaSpecimenKindOfUnit("56f47c83-8d42-404a-88fc-03c57b560f6d", DefinedTerm.class)
+ MediaSpecimenKindOfUnit("56f47c83-8d42-404a-88fc-03c57b560f6d", DefinedTerm.class),
+ IdentifierType("67d91839-484e-4183-8b4c-6a4a80dfc066", DefinedTerm.class)
;
@MetaValue(value = "eu.etaxonomy.cdm.model.occurrence.FieldUnit", targetEntity = FieldUnit.class),\r
@MetaValue(value = "eu.etaxonomy.cdm.model.occurrence.DerivedUnit", targetEntity = DerivedUnit.class),\r
@MetaValue(value = "eu.etaxonomy.cdm.model.reference.Reference", targetEntity = Reference.class),\r
- @MetaValue(value = "eu.etaxonomy.cdm.model.reference.Journal", targetEntity = Reference.class),\r
- @MetaValue(value = "eu.etaxonomy.cdm.model.reference.Article", targetEntity = Reference.class),\r
- @MetaValue(value = "eu.etaxonomy.cdm.model.reference.Book", targetEntity = Reference.class),\r
- @MetaValue(value = "eu.etaxonomy.cdm.model.reference.Generic", targetEntity = Reference.class),\r
- @MetaValue(value = "eu.etaxonomy.cdm.model.reference.Database", targetEntity = Reference.class),\r
- @MetaValue(value = "eu.etaxonomy.cdm.model.reference.BookSection", targetEntity = Reference.class),\r
- @MetaValue(value = "eu.etaxonomy.cdm.model.reference.Reference", targetEntity = Reference.class),\r
- @MetaValue(value = "eu.etaxonomy.cdm.model.reference.PrintSeries", targetEntity = Reference.class),\r
- @MetaValue(value = "eu.etaxonomy.cdm.model.reference.Proceedings", targetEntity = Reference.class),\r
- @MetaValue(value = "eu.etaxonomy.cdm.model.reference.Thesis", targetEntity = Reference.class),\r
- @MetaValue(value = "eu.etaxonomy.cdm.model.reference.WebPage", targetEntity = Reference.class),\r
@MetaValue(value = "eu.etaxonomy.cdm.model.taxon.Synonym", targetEntity = Synonym.class),\r
@MetaValue(value = "eu.etaxonomy.cdm.model.taxon.Taxon", targetEntity = Taxon.class),\r
@MetaValue(value = "eu.etaxonomy.cdm.model.taxon.Classification", targetEntity = Classification.class),\r
private DescriptionBase inDescription;
@XmlElement(name = "TimePeriod")
- private TimePeriod timeperiod = TimePeriod.NewInstance();;
+ private TimePeriod timeperiod = TimePeriod.NewInstance();
@XmlElementWrapper(name = "Sources")
@XmlElement(name = "DescriptionElementSource")
private Set<Media> media = new HashSet<Media>();
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.model.media.IMediaEntity#getMedia()
- */
@Override
public Set<Media> getMedia() {
return media;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.model.media.IMediaEntity#addMedia(eu.etaxonomy.cdm.model.media.Media)
- */
@Override
public void addMedia(Media media) {
this.media.add(media);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.model.media.IMediaEntity#removeMedia(eu.etaxonomy.cdm.model.media.Media)
- */
@Override
public void removeMedia(Media media) {
this.media.remove(media);
//******************** CLONE **********************************************/
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.model.common.IdentifiableEntity#clone()
- */
@Override
public Object clone() throws CloneNotSupportedException{
IdentifiableMediaEntity<?> result = (IdentifiableMediaEntity<?>)super.clone();
* be handled by SCHEMA_VALIDATION.UPDATE\r
* The last number represents the date of change.\r
*/\r
-// private static final String dbSchemaVersion = "3.0.1.0.201104190000"; \r
-// private static final String dbSchemaVersion = "3.3.0.0.201309240000";\r
- private static final String dbSchemaVersion = "3.3.1.0.201401140000";\r
+// private static final String dbSchemaVersion = "3.3.1.0.201401140000";\r
+ private static final String dbSchemaVersion = "3.4.0.0.201407010000";\r
+ \r
\r
\r
\r
* \r
* The last number represents the date of change.\r
*/\r
- private static final String termsVersion = "3.3.0.0.201309010000";\r
- \r
+// private static final String termsVersion = "3.3.0.0.201309010000";\r
+ private static final String termsVersion = "3.4.0.0.201407010000";\r
+\r
\r
public enum MetaDataPropertyName{\r
DB_SCHEMA_VERSION,\r
--- /dev/null
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.cdm.model.molecular;
+
+
+import javax.persistence.Basic;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.ManyToOne;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlIDREF;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+import org.apache.log4j.Logger;
+import org.hibernate.annotations.Type;
+import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
+import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.FieldBridge;
+import org.joda.time.DateTime;
+
+import eu.etaxonomy.cdm.hibernate.search.DateTimeBridge;
+import eu.etaxonomy.cdm.jaxb.DateTimeAdapter;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.VersionableEntity;
+import eu.etaxonomy.cdm.model.description.MeasurementUnit;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+
+/**
+ * A DNA Quality describes the quality of a {@link SpecimenOrObservationType#DnaSample}
+ *
+ * @author a.mueller
+ * @created 18-Oct-2014
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DnaQuality", propOrder = {
+ "purificationMethod",
+ "ratioOfAbsorbance260_230",
+ "ratioOfAbsorbance260_280",
+ "concentration",
+ "concentrationUnit",
+ "qualityTerm",
+ "qualityCheckDate"
+})
+@XmlRootElement(name = "DnaQuality")
+@Entity
+//@Indexed(index = "eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase")
+@Audited
+public class DnaQuality extends VersionableEntity implements Cloneable {
+ private static final long serialVersionUID = -8829069331010573654L;
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(DnaQuality.class);
+
+// ****************** FACTORY METHOD *****************/
+
+ /**
+ * Factory method
+ * @return
+ */
+ public static DnaQuality NewInstance(){
+ return new DnaQuality();
+ }
+
+// ************** ATTRIBUTES ****************************/
+
+ //TODO
+// @XmlTransient
+// @Transient
+// private MaterialOrMethodEvent purificationMethod;
+ private String purificationMethod;
+
+
+ private Double ratioOfAbsorbance260_230;
+
+ private Double ratioOfAbsorbance260_280;
+
+ private Double concentration;
+
+ @XmlElement(name = "Type")
+ @XmlIDREF
+ @XmlSchemaType(name = "IDREF")
+ @ManyToOne(fetch = FetchType.LAZY)
+ private MeasurementUnit concentrationUnit;
+
+
+ @XmlElement(name = "Type")
+ @XmlIDREF
+ @XmlSchemaType(name = "IDREF")
+ @ManyToOne(fetch = FetchType.LAZY)
+ private DefinedTerm qualityTerm;
+
+ @XmlElement (name = "QualityCheckDate", type= String.class)
+ @XmlJavaTypeAdapter(DateTimeAdapter.class)
+ @Type(type="dateTimeUserType")
+ @Basic(fetch = FetchType.LAZY)
+ @Field(analyze = Analyze.NO)
+ @FieldBridge(impl = DateTimeBridge.class)
+ @Audited
+ private DateTime qualityCheckDate;
+
+
+// ******************* CONSTRUCTOR *************************/
+
+ /**
+ * Constructor
+ */
+ private DnaQuality() {}
+
+//************ GETTER / SETTER **********************************/
+
+
+ public String getPurificationMethod() {
+ return purificationMethod;
+ }
+
+ public void setPurificationMethod(String purificationMethod) {
+ this.purificationMethod = purificationMethod;
+ }
+
+ public Double getRatioOfAbsorbance260_230() {
+ return ratioOfAbsorbance260_230;
+ }
+
+ public void setRatioOfAbsorbance260_230(Double ratioOfAbsorbance260_230) {
+ this.ratioOfAbsorbance260_230 = ratioOfAbsorbance260_230;
+ }
+
+ public Double getRatioOfAbsorbance260_280() {
+ return ratioOfAbsorbance260_280;
+ }
+
+ public void setRatioOfAbsorbance260_280(Double ratioOfAbsorbance260_280) {
+ this.ratioOfAbsorbance260_280 = ratioOfAbsorbance260_280;
+ }
+
+
+ public Double getConcentration() {
+ return concentration;
+ }
+
+ public void setConcentration(Double concentration) {
+ this.concentration = concentration;
+ }
+
+ public MeasurementUnit getConcentrationUnit() {
+ return concentrationUnit;
+ }
+
+ public void setConcentrationUnit(MeasurementUnit concentrationUnit) {
+ this.concentrationUnit = concentrationUnit;
+ }
+
+ public DateTime getQualityCheckDate() {
+ return qualityCheckDate;
+ }
+
+ public void setQualityCheckDate(DateTime qualityCheckDate) {
+ this.qualityCheckDate = qualityCheckDate;
+ }
+
+ public DefinedTerm getQualityTerm() {
+ return qualityTerm;
+ }
+
+ public void setQualityTerm(DefinedTerm qualityTerm) {
+ this.qualityTerm = qualityTerm;
+ }
+
+
+
+//*********** CLONE **********************************/
+
+ /**
+ * Clones <i>this</i> dna quality. This is a shortcut that enables to
+ * create a new instance that differs only slightly from <i>this</i> dna quality
+ * by modifying only some of the attributes.<BR>
+ * @throws CloneNotSupportedException
+ *
+ * @see Specimen#clone()
+ * @see DerivedUnit#clone()
+ * @see eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity#clone()
+ * @see java.lang.Object#clone()
+ */
+ @Override
+ public DnaQuality clone() {
+ try {
+ DnaQuality result = (DnaQuality)super.clone();
+
+ //purification method ??
+
+ //no changes to: rationXXX, concentration, qualityCheckDate, qualityTerm,
+ return result;
+
+ } catch (CloneNotSupportedException e) {
+ throw new RuntimeException(e); //may not occur as Clonable is implemented
+ }
+ }
+
+}
\ No newline at end of file
import javax.persistence.Entity;
import javax.persistence.FetchType;
+import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
import org.hibernate.envers.Audited;
import org.hibernate.search.annotations.ContainedIn;
import org.hibernate.search.annotations.Indexed;
+import org.hibernate.search.annotations.IndexedEmbedded;
import eu.etaxonomy.cdm.model.occurrence.Collection;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DnaSample", propOrder = {
"sequences",
- "amplifications"
+ "amplifications",
+ "dnaQuality"
})
@XmlRootElement(name = "DnaSample")
@Entity
@ContainedIn
@NotNull
private Set<Amplification> amplifications = new HashSet<Amplification>();
+
+ @XmlElement(name = "DnaQuality", required = true)
+ @XmlIDREF
+ @XmlSchemaType(name = "IDREF")
+ @ManyToOne(fetch = FetchType.LAZY)
+ @IndexedEmbedded
+ @Cascade({CascadeType.SAVE_UPDATE, CascadeType.MERGE, CascadeType.DELETE})
+ private DnaQuality dnaQuality;
// ******************* CONSTRUCTOR *************************/
public void removeAmplification(Amplification amplification) {
this.amplifications.remove(amplification);
}
+
+ public DnaQuality getDnaQuality() {
+ return dnaQuality;
+ }
-// ************* Convenience Getter / Setter ************/
+ public void setDnaQuality(DnaQuality dnaQuality) {
+ this.dnaQuality = dnaQuality;
+ }
+
+// ************* Convenience Getter / Setter ************/
+
+
@Transient
public Collection getStoredAt(){
return this.getCollection();
private String label;\r
\r
/** @see #getSequence() */\r
+ //(see #4139)\r
@XmlElement(name = "Sequence")\r
- @XmlIDREF\r
- @XmlSchemaType(name = "IDREF")\r
- @ManyToOne(fetch=FetchType.LAZY)\r
- @Cascade({CascadeType.SAVE_UPDATE})\r
- //TODO the use of Sequence in this case is a bit of a overhead since you would expect\r
- // just having a SequenceString. This may change in future (see #4139)\r
- private Sequence sequence;\r
+ private SequenceString sequence = SequenceString.NewInstance();\r
\r
/** @see #getPublishedIn() */\r
@XmlElement(name = "PublishedIn")\r
* The DNA {@link Sequence} of this primer. A primer is usually a\r
* small piece of DNA and therefore can be expressed as a sequence.\r
*/\r
- public Sequence getSequence() {\r
+ public SequenceString getSequence() {\r
return sequence;\r
}\r
\r
/**\r
* @see Primer#getSequence()\r
*/\r
- public void setSequence(Sequence sequence) {\r
+ public void setSequence(SequenceString sequence) {\r
+ if (sequence == null){\r
+ sequence = SequenceString.NewInstance();\r
+ }\r
this.sequence = sequence;\r
}\r
\r
import javax.persistence.Entity;
import javax.persistence.FetchType;
+import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Transient;
"barcode",
"preservation",
"exsiccatum",
+ "originalLabelInfo",
"specimenTypeDesignations"
})
@XmlRootElement(name = "DerivedUnit")
@Cascade(CascadeType.SAVE_UPDATE)
@IndexedEmbedded(depth = 4)
private DerivationEvent derivedFrom;
+
+ @XmlElement(name = "OriginalLabelInfo")
+ @Lob
+ private String originalLabelInfo;
@XmlElementWrapper(name = "SpecimenTypeDesignations")
@XmlElement(name = "SpecimenTypeDesignation")
this.collection = collection;
}
-
public String getCatalogNumber() {
return catalogNumber;
}
public void setAccessionNumber(String accessionNumber) {
this.accessionNumber = accessionNumber;
}
+
+
+ /**
+ * Original label information may present the exact original text
+ * or any other text which fully or partly represents the text available
+ * on the specimens label. This information may differ from the information
+ * available in the derived unit itself.
+ * @return the original label information
+ */
+ //#4218
+ public String getOriginalLabelInfo() {
+ return originalLabelInfo;
+ }
+
+ public void setOriginalLabelInfo(String originalLabelInfo) {
+ this.originalLabelInfo = originalLabelInfo;
+ }
/**
* Will be removed in future versions as semantics is not clear.
}
+
}
/**\r
* Returns the references author(s)\r
*/\r
- public TeamOrPersonBase getAuthorTeam();\r
+ public TeamOrPersonBase getAuthorship();\r
\r
/**\r
* Sets the references author(s)\r
*/\r
- public void setAuthorTeam(TeamOrPersonBase authorTeam);\r
+ public void setAuthorship(TeamOrPersonBase authorship);\r
\r
/**\r
* Returns the references title\r
"abbrevTitleCache",\r
"protectedAbbrevTitleCache",\r
"nomenclaturallyRelevant",\r
- "authorTeam",\r
+ "authorship",\r
"referenceAbstract",\r
"title",\r
"abbrevTitle",\r
"editor",\r
"volume",\r
"pages",\r
- "series",\r
- "edition",\r
+ "edition",\r
"isbn",\r
"issn",\r
"doi",\r
@Length(max = 255)\r
protected String editor;\r
\r
- @XmlElement(name = "Series")\r
- @Field\r
- //TODO Val #3379\r
-// @NullOrNotEmpty\r
- @Length(max = 255)\r
- @Deprecated //series and seriesPart are duplicates #4293 \r
- protected String series;\r
-\r
@XmlElement(name = "Volume")\r
@Field\r
//TODO Val #3379\r
@Merge(MergeMode.OR)\r
private boolean nomenclaturallyRelevant;\r
\r
- @XmlElement(name = "AuthorTeam")\r
+ @XmlElement(name = "Authorship")\r
@XmlIDREF\r
@XmlSchemaType(name = "IDREF")\r
@ManyToOne(fetch = FetchType.LAZY)\r
@IndexedEmbedded\r
@Cascade(CascadeType.SAVE_UPDATE)\r
- private TeamOrPersonBase<?> authorTeam;\r
+ private TeamOrPersonBase<?> authorship;\r
+\r
\r
// @XmlElement(name = "ReferenceIdentity")\r
// @XmlIDREF\r
* @see eu.etaxonomy.cdm.model.agent.TeamOrPersonBase\r
*/\r
@Override\r
- public TeamOrPersonBase getAuthorTeam(){\r
- return this.authorTeam;\r
+ public TeamOrPersonBase getAuthorship(){\r
+ return this.authorship;\r
}\r
\r
/**\r
- * @see #getAuthorTeam()\r
+ * @see #getAuthorship()\r
*/\r
@Override\r
- public void setAuthorTeam(TeamOrPersonBase authorTeam){\r
- this.authorTeam = authorTeam;\r
+ public void setAuthorship(TeamOrPersonBase authorship){\r
+ this.authorship = authorship;\r
}\r
\r
/**\r
try {\r
Reference<?> result = (Reference<?>)super.clone();\r
result.setDatePublished(datePublished != null? (TimePeriod)datePublished.clone(): null);\r
- //no changes to: title, authorTeam, hasProblem, nomenclaturallyRelevant, uri\r
+ //no changes to: title, authorship, hasProblem, nomenclaturallyRelevant, uri\r
return result;\r
} catch (CloneNotSupportedException e) {\r
logger.warn("Object does not implement cloneable");\r
public static Reference newBookSection(Reference book, Person partAuthor,\r
String sectionTitle, String pages) {\r
Reference<?> bookSection = newBookSection();\r
- bookSection.setAuthorTeam(partAuthor);\r
+ bookSection.setAuthorship(partAuthor);\r
bookSection.setTitle(sectionTitle);\r
bookSection.setPages(pages);\r
return bookSection;\r
String title, String pages, String series, String volume, TimePeriod datePublished) {\r
Reference<?> article = newArticle();\r
article.setInReference(inJournal);\r
- article.setAuthorTeam(partAuthor);\r
+ article.setAuthorship(partAuthor);\r
article.setTitle(title);\r
article.setPages(pages);\r
article.setVolume(volume);\r
package eu.etaxonomy.cdm.model.taxon;\r
\r
import java.util.ArrayList;\r
+import java.util.HashMap;\r
import java.util.HashSet;\r
import java.util.Iterator;\r
import java.util.List;\r
+import java.util.Map;\r
import java.util.Set;\r
\r
import javax.persistence.Entity;\r
import javax.persistence.FetchType;\r
import javax.persistence.JoinColumn;\r
+import javax.persistence.JoinTable;\r
+import javax.persistence.ManyToMany;\r
import javax.persistence.ManyToOne;\r
+import javax.persistence.MapKeyJoinColumn;\r
+import javax.persistence.OneToMany;\r
import javax.persistence.OneToOne;\r
import javax.persistence.Transient;\r
+import javax.validation.constraints.NotNull;\r
import javax.xml.bind.annotation.XmlAccessType;\r
import javax.xml.bind.annotation.XmlAccessorType;\r
import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlElementWrapper;\r
import javax.xml.bind.annotation.XmlIDREF;\r
import javax.xml.bind.annotation.XmlRootElement;\r
import javax.xml.bind.annotation.XmlSchemaType;\r
import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;\r
\r
import org.apache.log4j.Logger;\r
import org.hibernate.annotations.Cascade;\r
import org.hibernate.annotations.CascadeType;\r
import org.hibernate.envers.Audited;\r
+import org.hibernate.search.annotations.Field;\r
+import org.hibernate.search.annotations.FieldBridge;\r
import org.hibernate.search.annotations.Indexed;\r
import org.hibernate.search.annotations.IndexedEmbedded;\r
+import org.hibernate.search.annotations.Store;\r
\r
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
+import eu.etaxonomy.cdm.hibernate.search.MultilanguageTextFieldBridge;\r
+import eu.etaxonomy.cdm.jaxb.MultilanguageTextAdapter;\r
import eu.etaxonomy.cdm.model.common.IReferencedEntity;\r
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.LanguageString;\r
+import eu.etaxonomy.cdm.model.common.MultilanguageText;\r
+import eu.etaxonomy.cdm.model.common.TimePeriod;\r
+import eu.etaxonomy.cdm.model.location.NamedArea;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;\r
\r
@XmlAccessorType(XmlAccessType.FIELD)\r
@XmlType(name = "Classification", propOrder = {\r
"name",\r
+ "description",\r
"rootNode",\r
"reference",\r
- "microReference"\r
-\r
+ "microReference",\r
+ "timeperiod",\r
+ "geoScopes"\r
})\r
@XmlRootElement(name = "Classification")\r
@Entity\r
@Cascade({CascadeType.SAVE_UPDATE})\r
private Reference<?> reference;\r
\r
-\r
-\r
@XmlElement(name = "microReference")\r
private String microReference;\r
+ \r
+ @XmlElement(name = "TimePeriod")\r
+ private TimePeriod timeperiod = TimePeriod.NewInstance();\r
+ \r
+ @XmlElementWrapper( name = "GeoScopes")\r
+ @XmlElement( name = "GeoScope")\r
+ @XmlIDREF\r
+ @XmlSchemaType(name="IDREF")\r
+ @ManyToMany(fetch = FetchType.LAZY)\r
+ @JoinTable(name="Classification_GeoScope")\r
+ @Cascade({CascadeType.SAVE_UPDATE})\r
+ private Set<NamedArea> geoScopes = new HashSet<NamedArea>();\r
+ \r
+ @XmlElement(name = "Description")\r
+ @XmlJavaTypeAdapter(MultilanguageTextAdapter.class)\r
+ @OneToMany(fetch = FetchType.LAZY, orphanRemoval=true)\r
+ @MapKeyJoinColumn(name="description_mapkey_id")\r
+ @Cascade({CascadeType.SAVE_UPDATE,CascadeType.MERGE, CascadeType.DELETE })\r
+ @JoinTable(name = "Classification_Description")\r
+// @Field(name="text", store=Store.YES)\r
+// @FieldBridge(impl=MultilanguageTextFieldBridge.class)\r
+ private Map<Language,LanguageString> description = new HashMap<Language,LanguageString>();\r
+\r
+\r
\r
// /**\r
// * If this classification is an alternative classification for a subclassification in\r
public void setMicroReference(String microReference) {\r
this.microReference = microReference;\r
}\r
+ \r
+\r
+ /**\r
+ * The point in time, the time period or the season for which this description element \r
+ * is valid. A season may be expressed by not filling the year part(s) of the time period. \r
+ */\r
+ public TimePeriod getTimeperiod() {\r
+ return timeperiod;\r
+ }\r
+\r
+ /**\r
+ * @see #getTimeperiod()\r
+ */\r
+ public void setTimeperiod(TimePeriod timeperiod) {\r
+ if (timeperiod == null){\r
+ timeperiod = TimePeriod.NewInstance();\r
+ }\r
+ this.timeperiod = timeperiod;\r
+ }\r
+ \r
+\r
+ /**\r
+ * Returns the set of {@link NamedArea named areas} indicating the geospatial\r
+ * data where <i>this</i> {@link Classification} is valid.\r
+ */\r
+ public Set<NamedArea> getGeoScopes(){\r
+ return this.geoScopes;\r
+ }\r
+\r
+ /**\r
+ * Adds a {@link NamedArea named area} to the set of {@link #getGeoScopes() named areas}\r
+ * delimiting the geospatial area where <i>this</i> {@link Classification} is valid.\r
+ *\r
+ * @param geoScope the named area to be additionally assigned to <i>this</i> taxon description\r
+ * @see #getGeoScopes()\r
+ */\r
+ public void addGeoScope(NamedArea geoScope){\r
+ this.geoScopes.add(geoScope);\r
+ }\r
+\r
+ /**\r
+ * Removes one element from the set of {@link #getGeoScopes() named areas} delimiting\r
+ * the geospatial area where <i>this</i> {@link Classification} is valid.\r
+ *\r
+ * @param geoScope the named area which should be removed\r
+ * @see #getGeoScopes()\r
+ * @see #addGeoScope(NamedArea)\r
+ */\r
+ public void removeGeoScope(NamedArea geoScope){\r
+ this.geoScopes.remove(geoScope);\r
+ }\r
+ \r
+ \r
+ /** \r
+ * Returns the i18n description used to describe\r
+ * <i>this</i> {@link Classification}. The different {@link LanguageString language strings}\r
+ * contained in the multilanguage text should all have the same meaning.\r
+ */\r
+ public Map<Language,LanguageString> getDescription(){\r
+ return this.description;\r
+ }\r
+ \r
+ /**\r
+ * Adds a translated {@link LanguageString text in a particular language}\r
+ * to the {@link MultilanguageText description} used to describe\r
+ * <i>this</i> {@link Classification}.\r
+ * \r
+ * @param description the language string describing the individuals association\r
+ * in a particular language\r
+ * @see #getDescription()\r
+ * @see #putDescription(Language, String)\r
+ * \r
+ */\r
+ public void putDescription(LanguageString description){\r
+ this.description.put(description.getLanguage(),description);\r
+ }\r
+ /**\r
+ * Creates a {@link LanguageString language string} based on the given text string\r
+ * and the given {@link Language language} and adds it to the {@link MultilanguageText multilanguage text} \r
+ * used to describe <i>this</i> {@link Classification}.\r
+ * \r
+ * @param text the string describing the individuals association\r
+ * in a particular language\r
+ * @param language the language in which the text string is formulated\r
+ * @see #getDescription()\r
+ * @see #putDescription(LanguageString)\r
+ */\r
+ public void putDescription(Language language, String text){\r
+ this.description.put(language, LanguageString.NewInstance(text, language));\r
+ }\r
+ /** \r
+ * Removes from the {@link MultilanguageText description} used to describe\r
+ * <i>this</i> {@link Classification} the one {@link LanguageString language string}\r
+ * with the given {@link Language language}.\r
+ *\r
+ * @param language the language in which the language string to be removed\r
+ * has been formulated\r
+ * @see #getDescription()\r
+ */\r
+ public void removeDescription(Language language){\r
+ this.description.remove(language);\r
+ }\r
+ \r
\r
@Override\r
public String generateTitle() {\r
result.addChildNode(rootNodeClone, rootNode.getReference(), rootNode.getMicroReference());\r
rootNodeClone.setSynonymToBeUsed(rootNode.getSynonymToBeUsed());\r
}\r
+ \r
+ //geo-scopes\r
+ result.geoScopes = new HashSet<NamedArea>();\r
+ for (NamedArea namedArea : getGeoScopes()){\r
+ result.geoScopes.add(namedArea);\r
+ }\r
\r
return result;\r
\r
"synonymRelations",
"relationsFromThisTaxon",
"relationsToThisTaxon",
- "descriptions",
- "publish"
+ "descriptions"
})
@XmlRootElement(name = "Taxon")
@Entity
@ClassBridge(impl = TaxonRelationshipClassBridge.class)
})
public class Taxon extends TaxonBase<IIdentifiableEntityCacheStrategy<Taxon>>
- implements IRelated<RelationshipBase>, IDescribable<TaxonDescription>, IPublishable, Cloneable{
+ implements IRelated<RelationshipBase>, IDescribable<TaxonDescription>, Cloneable{
private static final long serialVersionUID = -584946869762749006L;
private static final Logger logger = Logger.getLogger(Taxon.class);
@Deprecated //will be removed in future versions. Use Classification/TaxonNode instead
private int taxonomicChildrenCount;
-
- @XmlAttribute(name = "publish")
- private boolean publish = true;
-
// ************************* FACTORY METHODS ********************************/
/**
this.excluded = excluded;
}
-
- /**
- * Returns the boolean value indicating if this taxon should be withheld (<code>publish=false</code>) or not
- * (<code>publish=true</code>) during any publication process to the general public.
- * This publish flag implementation is preliminary and may be replaced by a more general
- * implementation of READ rights in future.<BR>
- * The default value is <code>true</code>.
- */
- @Override
- public boolean isPublish() {
- return publish;
- }
-
- @Override
- public void setPublish(boolean publish) {
- this.publish = publish;
- }
-
/**
* Returns the ordered list of all {@link eu.etaxonomy.cdm.model.name.HomotypicalGroup homotypical groups}
* that contain {@link Synonym synonyms} that are heterotypic to <i>this</i> taxon.
import eu.etaxonomy.cdm.hibernate.search.AcceptedTaxonBridge;
import eu.etaxonomy.cdm.hibernate.search.ClassInfoBridge;
+import eu.etaxonomy.cdm.model.common.IPublishable;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
"sec",
"doubtful",
"appendedPhrase",
- "useNameCache"
+ "useNameCache",
+ "publish"
})
@Entity
@Audited
impl = AcceptedTaxonBridge.class),
@ClassBridge(impl = eu.etaxonomy.cdm.hibernate.search.NomenclaturalSortOrderBrigde.class)
})
-public abstract class TaxonBase<S extends IIdentifiableEntityCacheStrategy> extends IdentifiableEntity<S> implements Cloneable {
+public abstract class TaxonBase<S extends IIdentifiableEntityCacheStrategy> extends IdentifiableEntity<S> implements IPublishable, Cloneable {
private static final long serialVersionUID = -3589185949928938529L;
private static final Logger logger = Logger.getLogger(TaxonBase.class);
@XmlAttribute(name= "UseNameCache")
private boolean useNameCache = false;
+
+ @XmlAttribute(name = "publish")
+ private boolean publish = true;
// ************* CONSTRUCTORS *************/
public void setDoubtful(boolean doubtful){
this.doubtful = doubtful;
}
+
+
+ /**
+ * Returns the boolean value indicating if this taxon should be withheld (<code>publish=false</code>) or not
+ * (<code>publish=true</code>) during any publication process to the general public.
+ * This publish flag implementation is preliminary and may be replaced by a more general
+ * implementation of READ rights in future.<BR>
+ * The default value is <code>true</code>.
+ */
+ @Override
+ public boolean isPublish() {
+ return publish;
+ }
+
+ @Override
+ public void setPublish(boolean publish) {
+ this.publish = publish;
+ }
/**
* Returns the {@link eu.etaxonomy.cdm.model.reference.Reference reference} of <i>this</i> (abstract) taxon.
--- /dev/null
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/ \r
+package eu.etaxonomy.cdm.model.validation;\r
+\r
+import javax.persistence.Entity;\r
+import javax.persistence.FetchType;\r
+import javax.persistence.ManyToOne;\r
+import javax.validation.ConstraintValidator;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.hibernate.annotations.Cascade;\r
+import org.hibernate.annotations.CascadeType;\r
+import org.hibernate.annotations.Type;\r
+\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.validation.Severity;\r
+\r
+/**\r
+ * An {@code EntityConstraintViolation} represents a single error resulting from the\r
+ * validation of an entity. It basically is a database model for the\r
+ * {@link ConstraintValidator} class of the javax.validation framework.\r
+ * \r
+ * @author admin.ayco.holleman\r
+ * \r
+ */\r
+\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+//@formatter:off\r
+@XmlType(name = "EntityConstraintViolation", propOrder = {\r
+ "PropertyPath",\r
+ "UserFriendlyFieldName",\r
+ "InvalidValue",\r
+ "Severity",\r
+ "Message",\r
+ "Validator",\r
+ "EntityValidationResult"\r
+})\r
+//@formatter:on\r
+@XmlRootElement(name = "EntityConstraintViolation")\r
+@Entity\r
+public class EntityConstraintViolation extends CdmBase {\r
+ private static final long serialVersionUID = 6685798691716413950L;\r
+\r
+ @SuppressWarnings("unused")\r
+ private static final Logger logger = Logger.getLogger(EntityConstraintViolation.class);\r
+\r
+\r
+ public static EntityConstraintViolation NewInstance(){\r
+ return new EntityConstraintViolation();\r
+ }\r
+\r
+ @XmlElement(name = "PropertyPath")\r
+ private String propertyPath;\r
+\r
+ @XmlElement(name = "UserFriendlyFieldName")\r
+ private String userFriendlyFieldName;\r
+\r
+ @XmlElement(name = "InvalidValue")\r
+ private String invalidValue;\r
+\r
+ @XmlElement(name = "Severity")\r
+ @Type(type = "eu.etaxonomy.cdm.model.validation.SeverityType")\r
+ private Severity severity;\r
+\r
+ @XmlElement(name = "Message")\r
+ private String message;\r
+\r
+ @XmlElement(name = "Validator")\r
+ private String validator;\r
+\r
+ @XmlElement(name = "EntityValidationResult")\r
+ @ManyToOne(fetch = FetchType.LAZY)\r
+ @Cascade({ CascadeType.ALL })\r
+ private EntityValidationResult entityValidationResult;\r
+\r
+\r
+ protected EntityConstraintViolation(){\r
+ }\r
+\r
+\r
+ /**\r
+ * Get the path from the root bean to the field with the invalid value. Ordinarily\r
+ * this simply is the simple name of the field of the validated entity (see\r
+ * {@link EntityValidationResult#getValidatedEntityClass()}). Only if you have used @Valid\r
+ * annotations, and the error was in a parent or child entity, will this be a\r
+ * dot-separated path (e.g. "addresses[0].street" or "company.name").\r
+ */\r
+ public String getPropertyPath(){\r
+ return propertyPath;\r
+ }\r
+ public void setPropertyPath(String propertyPath){\r
+ this.propertyPath = propertyPath;\r
+ }\r
+\r
+\r
+ /**\r
+ * A user-friendly name for the property path.\r
+ */\r
+ public String getUserFriendlyFieldName(){\r
+ return userFriendlyFieldName;\r
+ }\r
+ public void setUserFriendlyFieldName(String userFriendlyFieldName){\r
+ this.userFriendlyFieldName = userFriendlyFieldName;\r
+ }\r
+\r
+\r
+ /**\r
+ * Get the value that violated the constraint.\r
+ * @return\r
+ */\r
+ public String getInvalidValue(){\r
+ return invalidValue;\r
+ }\r
+\r
+ public void setInvalidValue(String invalidValue){\r
+ this.invalidValue = invalidValue;\r
+ }\r
+\r
+\r
+ /**\r
+ * Get the severity of the constraint violation.\r
+ * \r
+ * @return\r
+ */\r
+ public Severity getSeverity(){\r
+ return severity;\r
+ }\r
+ public void setSeverity(Severity severity){\r
+ this.severity = severity;\r
+ }\r
+\r
+\r
+ /**\r
+ * Get the error message associated with the constraint violation.\r
+ * \r
+ * @return The error message\r
+ */\r
+ public String getMessage(){\r
+ return message;\r
+ }\r
+ public void setMessage(String message){\r
+ this.message = message;\r
+ }\r
+\r
+\r
+ /**\r
+ * Get the fully qualified class name of the {@link ConstraintValidator} responsible\r
+ * for invalidating the entity.\r
+ * \r
+ * @param validator\r
+ */\r
+ public String getValidator(){\r
+ return validator;\r
+ }\r
+ public void setValidator(String validator){\r
+ this.validator = validator;\r
+ }\r
+\r
+\r
+ public EntityValidationResult getEntityValidationResult(){\r
+ return entityValidationResult;\r
+ }\r
+ public void setEntityValidationResult(EntityValidationResult entityValidationResult){\r
+ this.entityValidationResult = entityValidationResult;\r
+ }\r
+\r
+}\r
--- /dev/null
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/ \r
+package eu.etaxonomy.cdm.model.validation;\r
+\r
+import java.util.HashSet;\r
+import java.util.Set;\r
+import java.util.UUID;\r
+\r
+import javax.persistence.Column;\r
+import javax.persistence.Entity;\r
+import javax.persistence.EnumType;\r
+import javax.persistence.Enumerated;\r
+import javax.persistence.OneToMany;\r
+import javax.validation.Validator;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlElementWrapper;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.hibernate.annotations.Cascade;\r
+import org.hibernate.annotations.CascadeType;\r
+import org.hibernate.annotations.Fetch;\r
+import org.hibernate.annotations.FetchMode;\r
+import org.hibernate.annotations.Type;\r
+import org.hibernate.search.annotations.FieldBridge;\r
+\r
+import eu.etaxonomy.cdm.hibernate.search.UuidBridge;\r
+import eu.etaxonomy.cdm.jaxb.UUIDAdapter;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.validation.CRUDEventType;\r
+\r
+/**\r
+ * An {@code EntityValidationResult} models the result of validating one entity, that is,\r
+ * the outcome of calling {@link Validator#validate(Object, Class...)}. More than one\r
+ * constraint {@link EntityConstraintViolation} may be violated while validating the\r
+ * entity.\r
+ * \r
+ * @see EntityValidationResult\r
+ * \r
+ * @author ayco_holleman\r
+ * \r
+ */\r
+\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+//@formatter:off\r
+@XmlType(name = "EntityValidationResult", propOrder = {\r
+ "ValidatedEntityId",\r
+ "ValidatedEntityUuid",\r
+ "ValidatedEntityClass",\r
+ "UserFriendlyDescription",\r
+ "UserFriendlyTypeName",\r
+ "CrudEventType",\r
+ "ConstraintViolations"\r
+})\r
+//@formatter:on\r
+@XmlRootElement(name = "EntityValidationResult")\r
+@Entity\r
+public class EntityValidationResult extends CdmBase {\r
+\r
+ private static final long serialVersionUID = 9120571815593117363L;\r
+\r
+ @SuppressWarnings("unused")\r
+ private static final Logger logger = Logger.getLogger(EntityValidationResult.class);\r
+\r
+\r
+ public static EntityValidationResult newInstance(){\r
+ return new EntityValidationResult();\r
+ }\r
+\r
+ @XmlElement(name = "ValidatedEntityId")\r
+ private int validatedEntityId;\r
+\r
+ @XmlElement(name = "ValidatedEntityUuid")\r
+ @XmlJavaTypeAdapter(UUIDAdapter.class)\r
+ @Type(type = "uuidUserType")\r
+ @Column(length=36) //TODO needed? Type UUID will always assure that is exactly 36\r
+ @FieldBridge(impl = UuidBridge.class) //TODO required?\r
+ private UUID validatedEntityUuid;\r
+\r
+ @XmlElement(name = "ValidatedEntityClass")\r
+ private String validatedEntityClass;\r
+\r
+ @XmlElement(name = "UserFriendlyDescription")\r
+ private String userFriendlyDescription;\r
+\r
+ @XmlElement(name = "UserFriendlyTypeName")\r
+ private String userFriendlyTypeName;\r
+\r
+ @XmlElement(name = "CrudEventType")\r
+ @Enumerated(EnumType.STRING)\r
+ private CRUDEventType crudEventType;\r
+\r
+ @XmlElementWrapper(name = "EntityConstraintViolations")\r
+ @OneToMany(mappedBy = "entityValidationResult")\r
+ @Cascade({ CascadeType.ALL })\r
+ @Fetch(value = FetchMode.JOIN)\r
+ private Set<EntityConstraintViolation> entityConstraintViolations;\r
+\r
+\r
+ protected EntityValidationResult(){\r
+ super();\r
+ }\r
+\r
+\r
+ public int getValidatedEntityId(){\r
+ return validatedEntityId;\r
+ }\r
+\r
+\r
+ public void setValidatedEntityId(int validatedEntityId){\r
+ this.validatedEntityId = validatedEntityId;\r
+ }\r
+\r
+\r
+ public UUID getValidatedEntityUuid(){\r
+ return validatedEntityUuid;\r
+ }\r
+\r
+\r
+ public void setValidatedEntityUuid(UUID validatedEntityUuid){\r
+ this.validatedEntityUuid = validatedEntityUuid;\r
+ }\r
+\r
+\r
+ public String getValidatedEntityClass(){\r
+ return validatedEntityClass;\r
+ }\r
+\r
+\r
+ public void setValidatedEntityClass(String validatedEntityClass){\r
+ this.validatedEntityClass = validatedEntityClass;\r
+ }\r
+\r
+\r
+ public String getUserFriendlyTypeName(){\r
+ return userFriendlyTypeName;\r
+ }\r
+\r
+\r
+ public void setUserFriendlyTypeName(String userFriendlyTypeName){\r
+ this.userFriendlyTypeName = userFriendlyTypeName;\r
+ }\r
+\r
+\r
+ public CRUDEventType getCrudEventType(){\r
+ return crudEventType;\r
+ }\r
+\r
+\r
+ public void setCrudEventType(CRUDEventType crudEventType){\r
+ this.crudEventType = crudEventType;\r
+ }\r
+\r
+\r
+ public String getUserFriendlyDescription(){\r
+ return userFriendlyDescription;\r
+ }\r
+\r
+\r
+ public void setUserFriendlyDescription(String userFriendlyDescription){\r
+ this.userFriendlyDescription = userFriendlyDescription;\r
+ }\r
+\r
+\r
+ public Set<EntityConstraintViolation> getEntityConstraintViolations(){\r
+ if (entityConstraintViolations == null) {\r
+ entityConstraintViolations = new HashSet<EntityConstraintViolation>();\r
+ }\r
+ return entityConstraintViolations;\r
+ }\r
+\r
+\r
+ public void addEntityConstraintViolation(EntityConstraintViolation ecv){\r
+ if (ecv != null) {\r
+ getEntityConstraintViolations().add(ecv);\r
+ }\r
+ }\r
+\r
+\r
+ public void removeEntityConstraintViolation(EntityConstraintViolation ecv){\r
+ if (ecv != null) {\r
+ getEntityConstraintViolations().remove(ecv);\r
+ }\r
+ }\r
+}\r
--- /dev/null
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/ \r
+package eu.etaxonomy.cdm.model.validation;\r
+\r
+import java.io.Serializable;\r
+import java.sql.PreparedStatement;\r
+import java.sql.ResultSet;\r
+import java.sql.SQLException;\r
+\r
+import org.hibernate.HibernateException;\r
+import org.hibernate.engine.spi.SessionImplementor;\r
+import org.hibernate.usertype.UserType;\r
+\r
+import eu.etaxonomy.cdm.validation.Severity;\r
+\r
+/**\r
+ * A Hibernate {@code UserType} for persisting {@link Severity} instances.\r
+ * \r
+ * @see EntityConstraintViolation\r
+ * \r
+ * @author ayco_holleman\r
+ * \r
+ */\r
+public class SeverityType implements UserType {\r
+\r
+ @Override\r
+ public int[] sqlTypes(){\r
+ return new int[] { java.sql.Types.VARCHAR };\r
+ }\r
+\r
+\r
+ @SuppressWarnings("rawtypes")\r
+ @Override\r
+ public Class returnedClass(){\r
+ return Severity.class;\r
+ \r
+ }\r
+\r
+\r
+ @Override\r
+ public boolean equals(Object x, Object y) throws HibernateException{\r
+ if (x == null) {\r
+ if (y == null) {\r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
+ if (y == null) {\r
+ return false;\r
+ }\r
+ return ((Severity) x).equals(y);\r
+ }\r
+\r
+\r
+ @Override\r
+ public int hashCode(Object x) throws HibernateException{\r
+ return x.getClass().hashCode();\r
+ }\r
+\r
+\r
+ @Override\r
+ public Object nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object owner) throws HibernateException, SQLException{\r
+ String severity = rs.getString(names[0]);\r
+ return rs.wasNull() ? null : Severity.forName(severity);\r
+ }\r
+\r
+\r
+ @Override\r
+ public void nullSafeSet(PreparedStatement st, Object value, int index, SessionImplementor session) throws HibernateException, SQLException{\r
+ st.setString(index, value == null ? null : value.toString());\r
+ }\r
+\r
+\r
+ @Override\r
+ public Object deepCopy(Object value) throws HibernateException{\r
+ return value;\r
+ }\r
+\r
+\r
+ @Override\r
+ public boolean isMutable(){\r
+ return false;\r
+ }\r
+\r
+\r
+ @Override\r
+ public Serializable disassemble(Object value) throws HibernateException{\r
+ return null;\r
+ }\r
+\r
+\r
+ @Override\r
+ public Object assemble(Serializable cached, Object owner) throws HibernateException{\r
+ return null;\r
+ }\r
+\r
+\r
+ @Override\r
+ public Object replace(Object original, Object target, Object owner) throws HibernateException{\r
+ return original;\r
+ }\r
+\r
+}\r
+++ /dev/null
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.cdm.model.view;
-
-
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.ManyToOne;
-import javax.persistence.OneToMany;
-import javax.persistence.Transient;
-
-import org.apache.log4j.Logger;
-import org.hibernate.annotations.Cascade;
-import org.hibernate.annotations.CascadeType;
-
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.common.IReferencedEntity;
-import eu.etaxonomy.cdm.model.reference.Reference;
-
-/**
- * use ARCHIVE view/dataset to maintain an archive. All members of that view will
- * never be changed
- * @author m.doering
- * @version 1.0
- * @created 08-Nov-2007 13:07:01
- */
-@Entity(name="CDM_VIEW")
-public class View extends CdmBase implements IReferencedEntity{
- private static final long serialVersionUID = 3668860188614455213L;
- private static final Logger logger = Logger.getLogger(View.class);
-
- private String name;
- private String description;
-
- @ManyToOne(fetch = FetchType.LAZY)
- @Cascade(CascadeType.SAVE_UPDATE)
- private Reference<?> reference;
-
- @OneToMany(fetch = FetchType.LAZY)
- private final Set<View> superViews = new HashSet<View>();
-
- @Transient
- private final Set<CdmBase> members = new HashSet<CdmBase>();
-
- @Transient
- private final Set<CdmBase> nonMembers = new HashSet<CdmBase>();
-
- public String getName(){
- logger.debug("getName");
- return this.name;
- }
- public void setName(String name){
- this.name = name;
- }
-
- public String getDescription(){
- return this.description;
- }
-
- public void setDescription(String description){
- this.description = description;
- }
-
- @Override
- @Transient
- public Reference getCitation() {
- return getReference();
- }
-
- public Reference getReference() {
- return reference;
- }
-
- public void setReference(Reference reference) {
- this.reference = reference;
- }
-
- public Set<View> getSuperViews() {
- return superViews;
- }
-
- public void addSuperView(View superView) {
- this.superViews.add(superView);
- }
- public void removeSuperView(View superView) {
- this.superViews.remove(superView);
- }
-
- public Set<CdmBase> getMembers() {
- return members;
- }
-
- public void addMember(CdmBase member) {
- this.members.add(member);
- }
- public void removeMember(ICdmBase member) {
- this.members.remove(member);
- }
-
- public Set<CdmBase> getNonMembers() {
- return nonMembers;
- }
-
- public void addNonMember(CdmBase member) {
- this.nonMembers.add(member);
- }
- public void removeNonMember(ICdmBase member) {
- this.nonMembers.remove(member);
- }
-}
\ No newline at end of file
\r
final static UUID uuid = UUID.fromString("9cdf52c1-bac4-4b6c-a7f9-1a87401bd8f9");\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.strategy.StrategyBase#getUuid()\r
- */\r
@Override\r
protected UUID getUuid() {\r
return uuid;\r
}\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy#getTitleCache(eu.etaxonomy.cdm.model.common.IdentifiableEntity)\r
- */\r
+ @Override\r
public String getTitleCache(T term) {\r
String result = null;\r
if (term.getRepresentations().size() > 0) {\r
}\r
String result = getTitleWithoutYearAndAuthor(article, false);\r
result = addYear(result, article, false);\r
- TeamOrPersonBase<?> team = article.getAuthorTeam();\r
+ TeamOrPersonBase<?> team = article.getAuthorship();\r
result = CdmUtils.concat(" ", article.getTitle(), result);\r
if (team != null && isNotBlank(team.getTitleCache())){\r
String authorSeparator = isNotBlank(article.getTitle())? afterAuthor : " ";\r
}\r
String result = getTitleWithoutYearAndAuthor(article, true);\r
result = addYear(result, article, false);\r
- TeamOrPersonBase<?> team = article.getAuthorTeam();\r
+ TeamOrPersonBase<?> team = article.getAuthorship();\r
String articleTitle = CdmUtils.getPreferredNonEmptyString(article.getAbbrevTitle(), article.getTitle(), false, true);\r
result = CdmUtils.concat(" ", articleTitle, result); //Article should maybe left out for nomenclatural references (?)\r
if (team != null && isNotBlank(team.getNomenclaturalTitle())){\r
if (book == null){\r
return "";\r
}\r
- TeamOrPersonBase<?> team = book.getAuthorTeam();\r
+ TeamOrPersonBase<?> team = book.getAuthorship();\r
String result = Nz( team == null ? "" : team.getNomenclaturalTitle());\r
if (! result.trim().equals("")){\r
result = result + seperator; \r
}\r
\r
//section author\r
- TeamOrPersonBase<?> thisRefTeam = thisRef.getAuthorTeam();\r
+ TeamOrPersonBase<?> thisRefTeam = thisRef.getAuthorship();\r
String thisRefAuthor = "";\r
if (thisRefTeam != null){\r
thisRefAuthor = CdmUtils.getPreferredNonEmptyString(thisRefTeam.getTitleCache(), thisRefTeam.getNomenclaturalTitle(), isAbbrev, true);\r
// result = addYear(result, journal);\r
\r
\r
- TeamOrPersonBase<?> team = journal.getAuthorTeam();\r
+ TeamOrPersonBase<?> team = journal.getAuthorship();\r
if (team != null){\r
String author = CdmUtils.getPreferredNonEmptyString(team.getTitleCache(), team.getNomenclaturalTitle(), isAbbrev, true);\r
if (StringUtils.isNotBlank(author)){\r
public String getCitation(Reference referenceBase) {\r
StringBuilder stringBuilder = new StringBuilder();\r
\r
- TeamOrPersonBase<?> team = referenceBase.getAuthorTeam();\r
+ TeamOrPersonBase<?> team = referenceBase.getAuthorship();\r
if (team != null && ! (team.getTitleCache() == null) && ! team.getTitleCache().trim().equals("")){\r
//String author = CdmUtils.Nz(team == null? "" : team.getTitleCache());\r
stringBuilder.append(team.getTitleCache() + afterAuthor);\r
}\r
String result = getTitleWithoutYearAndAuthor(ref, isAbbrev);\r
result = addYear(result, ref, false);\r
- TeamOrPersonBase<?> team = ref.getAuthorTeam();\r
+ TeamOrPersonBase<?> team = ref.getAuthorship();\r
\r
if (team != null){\r
String teamTitle = CdmUtils.getPreferredNonEmptyString(team.getTitleCache(), team.getNomenclaturalTitle(), isAbbrev, true);\r
\r
String nextConcat = "";\r
\r
- TeamOrPersonBase<?> team = referenceBase.getAuthorTeam();\r
+ TeamOrPersonBase<?> team = referenceBase.getAuthorship();\r
if (team != null && isNotBlank(team.getTitleCache())){\r
stringBuilder.append(team.getTitleCache() );\r
nextConcat = afterAuthor;\r
}\r
\r
result = addYear(result, ref);\r
- TeamOrPersonBase<?> team = ref.getAuthorTeam();\r
+ TeamOrPersonBase<?> team = ref.getAuthorship();\r
if (team != null){\r
String author = CdmUtils.getPreferredNonEmptyString(team.getTitleCache(), team.getNomenclaturalTitle(), isAbbrev, true);\r
if (isNotBlank(author)){\r
public String getCitation(Reference referenceBase) {\r
StringBuilder stringBuilder = new StringBuilder();\r
\r
- TeamOrPersonBase<?> team = referenceBase.getAuthorTeam();\r
+ TeamOrPersonBase<?> team = referenceBase.getAuthorship();\r
if (team != null && ! (team.getTitleCache() == null) && ! team.getTitleCache().trim().equals("")){\r
//String author = CdmUtils.Nz(team == null? "" : team.getTitleCache());\r
stringBuilder.append(team.getTitleCache() + afterAuthor);\r
Reference<?> sec = taxonBase.getSec();\r
if (sec != null){\r
if (sec.getCacheStrategy() != null && \r
- sec.getAuthorTeam() != null && \r
- isNotBlank(sec.getAuthorTeam().getTitleCache()) && \r
+ sec.getAuthorship() != null && \r
+ isNotBlank(sec.getAuthorship().getTitleCache()) && \r
isNotBlank(sec.getYear())){\r
result = sec.getCacheStrategy().getCitation(sec);\r
// sec.getAuthorTeam().getTitleCache() + sec.getYear();\r
\r
Reference<?> nomRef;\r
if ( (nomRef = (Reference<?>)nameToBeFilled.getNomenclaturalReference()) != null ){\r
- nomRef.setAuthorTeam((TeamOrPersonBase<?>)nameToBeFilled.getCombinationAuthorTeam());\r
+ nomRef.setAuthorship((TeamOrPersonBase<?>)nameToBeFilled.getCombinationAuthorTeam());\r
}\r
}\r
\r
\r
TeamOrPersonBase<?> authorTeam = author(authorString);\r
IBook inBook = parseBook(bookString);\r
- inBook.setAuthorTeam(authorTeam);\r
+ inBook.setAuthorship(authorTeam);\r
result.setInBook(inBook);\r
}\r
return result;\r
--- /dev/null
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/ \r
+\r
+package eu.etaxonomy.cdm.validation;\r
+\r
+/**\r
+ * The CRUD event that triggered a validation. When an entity violates some constraint, it\r
+ * might be helpful to report back to the user what type of CRUD event caused the violation.\r
+ * Note that validation may not not have been triggered by any CRUD event at all, e.g. during\r
+ * some batch-like validation process. Level-2 validation can never be triggered by a DELETE\r
+ * event, because Level-2 validation only validates the entity itself. However, a DELETE event\r
+ * <i>can</i> possibly trigger a Level-3 validation, because that disrupts the object graph the\r
+ * entity was part of.\r
+ * \r
+ * @author ayco holleman\r
+ * \r
+ */\r
+public enum CRUDEventType{\r
+ NONE, INSERT, UPDATE, DELETE\r
+}\r
--- /dev/null
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/ \r
+\r
+package eu.etaxonomy.cdm.validation;\r
+\r
+import java.util.Set;\r
+\r
+import javax.validation.ConstraintViolation;\r
+import javax.validation.Payload;\r
+\r
+/**\r
+ * A class conveying the severity of a {@link ConstraintViolation}. Severity levels are\r
+ * extraneous to the javax.validation framework and can only be conveyed using generic\r
+ * {@link Payload} objects. Unfortunately, only the class of those objects is communicated\r
+ * back to the client. The class <i>is</i> the message. Concrete instances or {@code enum}\r
+ * s (an obvious choice for severity levels) cannot function as {@code Payload} objects.\r
+ * The Severity class enables you to program using true Severity instances (one for each\r
+ * level), while behind the scenes only the class of those instances is taken into\r
+ * account.\r
+ * \r
+ * @author ayco holleman\r
+ */\r
+public abstract class Severity implements Payload {\r
+\r
+ public static final Notice NOTICE = new Notice();\r
+ public static final Warning WARNING = new Warning();\r
+ public static final Error ERROR = new Error();\r
+\r
+ //@formatter:off\r
+ public static final class Notice extends Severity {};\r
+ public static final class Warning extends Severity {};\r
+ public static final class Error extends Severity {};\r
+ //@formatter:on\r
+\r
+ /**\r
+ * Get {@code Severity} object for the specified {@code String} representation. Does the\r
+ * opposite of {@link #toString()}.\r
+ * \r
+ * @param name\r
+ * The {@code String} representation of {@code Severity} object you want.\r
+ * \r
+ * @return The {@code Severity} object\r
+ */\r
+ public static Severity forName(String name)\r
+ {\r
+ if (name.equals(Error.class.getSimpleName())) {\r
+ return ERROR;\r
+ }\r
+ if (name.equals(Warning.class.getSimpleName())) {\r
+ return WARNING;\r
+ }\r
+ return NOTICE;\r
+ }\r
+\r
+\r
+ /**\r
+ * Get the {@code Severity} of the specified {@code ConstraintViolation}.\r
+ * \r
+ * @param error\r
+ * The {@code ConstraintViolation}\r
+ * \r
+ * @return The {@code Severity}\r
+ */\r
+ public static Severity getSeverity(ConstraintViolation<?> error)\r
+ {\r
+ Set<Class<? extends Payload>> payloads = error.getConstraintDescriptor().getPayload();\r
+ for (Class<? extends Payload> payload : payloads) {\r
+ if (payload == Error.class) {\r
+ return ERROR;\r
+ }\r
+ if (payload == Warning.class) {\r
+ return WARNING;\r
+ }\r
+ if (payload == Notice.class) {\r
+ return NOTICE;\r
+ }\r
+ }\r
+ return null;\r
+ }\r
+\r
+\r
+ private Severity()\r
+ {\r
+ }\r
+\r
+\r
+ @Override\r
+ public String toString()\r
+ {\r
+ return getClass().getSimpleName();\r
+ }\r
+}\r
--- /dev/null
+"67d91839-484e-4183-8b4c-6a4a80dfc066",,"Identifier Type","Identifier Type","IDE","0"\r
+"fadeba12-1be3-4bc7-9ff5-361b088d86fc",,"Sample Designation","Sample Designation","SD"\r
+"a2a67523-b56c-4463-9a50-846b56f03419",,"Unknown","Unknown","UNK"\r
+"e0c3b15f-d779-4d94-91f0-7d83888576b2",,"Barcode","Barcode","BC"\r
+"ea7ef3c4-0ff5-4b1c-9264-b0f86dc00b61",,"Accession Number","Accession Number","ACN"\r
+"664eb28f-d9b6-42f1-b8fd-b3748784e0a4",,"Digital Object Identifier","DOI","DOI"\r
+"ab402e4b-93a0-4311-a85a-696c1498b67d",,"Catalog Number","Catalog Number","CAN"
\ No newline at end of file
public void setUp() throws Exception {
Person linne =new Person("Carl", "Linné", "L.");
sec= ReferenceFactory.newBook();
- sec.setAuthorTeam(linne);
+ sec.setAuthorship(linne);
sec.setTitleCache("Schönes saftiges Allgäu", true);
misSec = ReferenceFactory.newBook();
misSec.setTitleCache("Stupid book", true);
@Test\r
public void testGetTitleCache(){\r
journal1.setTitle("My journal");\r
- journal1.setAuthorTeam(team2);\r
+ journal1.setAuthorship(team2);\r
article1.setTitle("My article");\r
article1.setInJournal(journal1);\r
- article1.setAuthorTeam(team1);\r
+ article1.setAuthorship(team1);\r
article1.setDatePublished(TimePeriod.NewInstance(1975));\r
Assert.assertEquals("Team1, My article in My journal. 1975", article1.getTitleCache());\r
\r
//set to null by setInJournal(null)\r
public void testGetTitleCache2(){\r
journal1.setTitle("My journal");\r
- journal1.setAuthorTeam(team2);\r
+ journal1.setAuthorship(team2);\r
article1.setTitle("My article");\r
article1.setInJournal(journal1);\r
- article1.setAuthorTeam(team1);\r
+ article1.setAuthorship(team1);\r
article1.setDatePublished(TimePeriod.NewInstance(1975));\r
Assert.assertEquals("Team1, My article in My journal. 1975", article1.getTitleCache());\r
\r
\r
journal1.setTitle("My journal");\r
journal1.setTitle("M. Journ.");\r
- journal1.setAuthorTeam(team2);\r
+ journal1.setAuthorship(team2);\r
article1.setTitle("My article");\r
article1.setInJournal(journal1);\r
- article1.setAuthorTeam(team1);\r
+ article1.setAuthorship(team1);\r
article1.setDatePublished(TimePeriod.NewInstance(1975));\r
article1.setAbbrevTitle("M. Art.");\r
Assert.assertEquals("T., M. Art. in M. Journ. 1975", article1.getAbbrevTitleCache()); //double dot may be removed in future #3645\r
public void testGetNomenclaturalCitation(){\r
journal1.setTitle("My journal");\r
journal1.setTitle("M. J.");\r
- journal1.setAuthorTeam(team2);\r
+ journal1.setAuthorship(team2);\r
article1.setTitle("My article");\r
article1.setInJournal(journal1);\r
- article1.setAuthorTeam(team1);\r
+ article1.setAuthorship(team1);\r
article1.setDatePublished(TimePeriod.NewInstance(1975));\r
Assert.assertEquals("in M. J.: 55. 1975", article1.getNomenclaturalCitation(detail1));\r
\r
article1.setInJournal(journal1);\r
article1.setVolume("22");\r
journal1.setAbbrevTitle("J. Pl. Eur.");\r
- journal1.setAuthorTeam(team2);\r
+ journal1.setAuthorship(team2);\r
article1.setDatePublished(TimePeriod.NewInstance(1975));\r
//no ser, sect, abt\r
Assert.assertEquals("in J. Pl. Eur. 22: 55. 1975", article1.getNomenclaturalCitation(detail1));\r
@Test \r
public void testGetTitleWithoutYearAndAuthor(){\r
journal1.setTitle("My journal");\r
- journal1.setAuthorTeam(team2);\r
+ journal1.setAuthorship(team2);\r
article1.setTitle("My article");\r
article1.setInJournal(journal1);\r
- article1.setAuthorTeam(team1);\r
+ article1.setAuthorship(team1);\r
article1.setVolume("34");\r
article1.setSeriesPart("ser. 2");\r
article1.setDatePublished(TimePeriod.NewInstance(1975));\r
@Test \r
public void testOldExistingBugs(){\r
journal1.setTitle("Univ. Calif. Publ. Bot.");\r
- journal1.setAuthorTeam(null);\r
+ journal1.setAuthorship(null);\r
\r
Team articleAuthor = Team.NewTitledInstance("Babc. & Stebbins", "Babc. & Stebbins");\r
article1.setTitle("");\r
article1.setInJournal(journal1);\r
- article1.setAuthorTeam(articleAuthor);\r
+ article1.setAuthorship(articleAuthor);\r
article1.setVolume("18");\r
article1.setDatePublished(TimePeriod.NewInstance(1943));\r
Assert.assertEquals("Babc. & Stebbins in Univ. Calif. Publ. Bot. 18. 1943", defaultStrategy.getTitleCache((Reference<?>)article1));\r
@Test\r
public void testGetTitleCache(){\r
book1.setTitle("My book");\r
- book1.setAuthorTeam(bookTeam1);\r
+ book1.setAuthorship(bookTeam1);\r
book1.setDatePublished(TimePeriod.NewInstance(1975));\r
Assert.assertEquals("Unexpected title cache.", "Book Author, My book. 1975", book1.getTitleCache());\r
\r
@Test\r
public void testGetNomenclaturalCitation(){\r
book1.setTitle("My book");\r
- book1.setAuthorTeam(bookTeam1);\r
+ book1.setAuthorship(bookTeam1);\r
book1.setDatePublished(TimePeriod.NewInstance(1975));\r
Assert.assertEquals("My book: 55. 1975", book1.getNomenclaturalCitation(detail1));\r
book1.setAbbrevTitle("Analect. Bot.");\r
@Test\r
public void testGetTitleCache(){\r
book1.setTitle("My book");\r
- book1.setAuthorTeam(bookTeam1);\r
+ book1.setAuthorship(bookTeam1);\r
bookSection1.setTitle("My chapter");\r
bookSection1.setInBook(book1);\r
- bookSection1.setAuthorTeam(sectionTeam1);\r
+ bookSection1.setAuthorship(sectionTeam1);\r
book1.setDatePublished(TimePeriod.NewInstance(1975));\r
Assert.assertEquals("Unexpected title cache.", "Section Author - My chapter in Book Author, My book. 1975", bookSection1.getTitleCache());\r
book1.setDatePublished(null);\r
//set to null by setInBook(null) and others\r
public void testGetTitleCache2(){\r
book1.setTitle("My book");\r
- book1.setAuthorTeam(bookTeam1);\r
+ book1.setAuthorship(bookTeam1);\r
bookSection1.setTitle("My chapter");\r
bookSection1.setInBook(book1);\r
- bookSection1.setAuthorTeam(sectionTeam1);\r
+ bookSection1.setAuthorship(sectionTeam1);\r
book1.setDatePublished(TimePeriod.NewInstance(1975));\r
Assert.assertEquals("Unexpected title cache.", "Section Author - My chapter in Book Author, My book. 1975", bookSection1.getTitleCache());\r
book1.setDatePublished(null);\r
@Test\r
public void testGetNomenclaturalCitation(){\r
book1.setTitle("My book");\r
- book1.setAuthorTeam(bookTeam1);\r
+ book1.setAuthorship(bookTeam1);\r
bookSection1.setTitle("My chapter");\r
bookSection1.setInBook(book1);\r
- bookSection1.setAuthorTeam(sectionTeam1);\r
+ bookSection1.setAuthorship(sectionTeam1);\r
book1.setDatePublished(TimePeriod.NewInstance(1975));\r
//TODO still unclear which is correct\r
// Assert.assertEquals("in Book Author, My book: 55. 1975", bookSection1.getNomenclaturalCitation(detail1));\r
Team bookTeam = Team.NewTitledInstance("Chaudhary S. A.(ed.)", "Chaudhary S. A.(ed.)");\r
IBook book = ReferenceFactory.newBook();\r
book.setTitle("Flora of the Kingdom of Saudi Arabia");\r
- book.setAuthorTeam(bookTeam);\r
+ book.setAuthorship(bookTeam);\r
book.setVolume("2(3)");\r
book.setPlacePublished("Riyadh");\r
book.setPublisher("National Herbarium");\r
IBookSection bookSection = ReferenceFactory.newBookSection();\r
bookSection.setTitle("73. Hedypnois - 87. Crepis");\r
bookSection.setInBook(book);\r
- bookSection.setAuthorTeam(sectionTeam);\r
+ bookSection.setAuthorship(sectionTeam);\r
bookSection.setPages("222-251");\r
Assert.assertEquals("Chaudhary S. A. - 73. Hedypnois - 87. Crepis in Chaudhary S. A.(ed.), Flora of the Kingdom of Saudi Arabia 2(3). 2000", bookSection.getTitleCache());\r
\r
generic1.setTitle("auct.");\r
IBook book1 = ReferenceFactory.newBook();\r
book1.setTitle("My book title");\r
- book1.setAuthorTeam(team1);\r
+ book1.setAuthorship(team1);\r
Reference<?> inRef = (Reference<?>)book1;\r
generic1.setInReference(inRef);\r
generic1.setTitleCache(null, false); //reset cache in case aspectJ is not enabled\r
@Test\r
public void testGetInRefWithoutInRef(){\r
generic1.setTitle("My generic title");\r
- generic1.setAuthorTeam(team1);\r
+ generic1.setAuthorship(team1);\r
generic1.setTitleCache(null, false); //reset cache in case aspectJ is not enabled\r
Assert.assertEquals("Unexpected title cache.", "My generic title: 2", generic1.getNomenclaturalCitation("2"));\r
}\r
generic1.setTitle("Part Title");\r
IBook book1 = ReferenceFactory.newBook();\r
book1.setTitle("My book title");\r
- book1.setAuthorTeam(team1);\r
+ book1.setAuthorship(team1);\r
Reference<?> inRef = (Reference<?>)book1;\r
generic1.setInReference(inRef);\r
generic1.setTitleCache(null, false); //reset cache in case aspectJ is not enabled\r
IBook book1 = ReferenceFactory.newBook();\r
book1.setTitle("My book title");\r
book1.setAbbrevTitle("My bk. tit.");\r
- book1.setAuthorTeam(team1); //TODO handling not yet defined\r
+ book1.setAuthorship(team1); //TODO handling not yet defined\r
Reference<?> inRef = (Reference<?>)book1;\r
generic1.setInReference(inRef);\r
generic1.setTitleCache(null, false); //reset cache in case aspectJ is not enabled\r
@Test\r
public void testGetTitleCacheWithoutInRef(){\r
generic1.setTitle("My generic title");\r
- generic1.setAuthorTeam(team1);\r
+ generic1.setAuthorship(team1);\r
generic1.setTitleCache(null, false); //reset cache in case aspectJ is not enabled\r
Assert.assertEquals("Unexpected title cache.", "Authorteam, My generic title", generic1.getTitleCache());\r
}\r
\r
@Test\r
public void testAuthorOnly(){\r
- generic1.setAuthorTeam(team1);\r
+ generic1.setAuthorship(team1);\r
generic1.setTitleCache(null, false); //reset cache in case aspectJ is not enabled\r
Assert.assertEquals("Unexpected title cache.", "Authorteam", generic1.getTitleCache());\r
Assert.assertEquals("", generic1.getNomenclaturalCitation(null));\r
\r
@Test\r
public void testYearAndAuthorOnly(){\r
- generic1.setAuthorTeam(team1);\r
+ generic1.setAuthorship(team1);\r
generic1.setDatePublished(TimePeriodParser.parseString("1792"));\r
generic1.setTitleCache(null, false); //reset cache in case aspectJ is not enabled\r
Assert.assertEquals("Unexpected title cache.", "Authorteam, 1792", generic1.getTitleCache()); \r
\r
@Test\r
public void testDoubleDotBeforeYear(){\r
- generic1.setAuthorTeam(team1);\r
+ generic1.setAuthorship(team1);\r
String detail = "sine no.";\r
generic1.setAbbrevTitle("My title");\r
generic1.setDatePublished(TimePeriodParser.parseString("1883-1884"));\r
\r
package eu.etaxonomy.cdm.strategy.match;\r
\r
+import java.net.URI;\r
+\r
import org.apache.log4j.Logger;\r
import org.joda.time.DateTime;\r
import org.junit.After;\r
annotation2 = Annotation.NewInstance(annotationString2, null);\r
\r
book1 = ReferenceFactory.newBook();\r
- book1.setAuthorTeam(team1);\r
+ book1.setAuthorship(team1);\r
book1.setTitle(title1);\r
book1.setEdition(editionString1);\r
book1.setVolume(volumeString1);\r
((Reference<?>) book1).setNomenclaturallyRelevant(false);\r
\r
book2 = ReferenceFactory.newBook();\r
- book2.setAuthorTeam(team2);\r
+ book2.setAuthorship(team2);\r
book2.setTitle(title2);\r
book2.setEdition(editionString2);\r
book2.setVolume(volumeString2);\r
\r
Assert.assertTrue("Equal books should match", matchStrategy.invoke(book1, book2));\r
\r
- book1.setAuthorTeam(person1);\r
- book2.setAuthorTeam(person1);\r
+ book1.setAuthorship(person1);\r
+ book2.setAuthorship(person1);\r
Assert.assertTrue("Books with same author should match", matchStrategy.invoke(book1, book2));\r
\r
- book2.setAuthorTeam(person2);\r
+ book2.setAuthorship(person2);\r
Assert.assertFalse("Books with different authors should not match", matchStrategy.invoke(book1, book2));\r
\r
person2.setPrefix("pre1");\r
Assert.assertTrue("Teams should match", matchStrategy.invoke(team1, team3));\r
\r
String street1 = "Strasse1";\r
- team1.setContact(Contact.NewInstance(street1, "12345", "Berlin", Country.ARGENTINAARGENTINEREPUBLIC(),"pobox" , "Region", "a@b.de", "f12345", "+49-30-123456", "www.abc.de", Point.NewInstance(2.4, 3.2, ReferenceSystem.WGS84(), 3)));\r
+ team1.setContact(Contact.NewInstance(street1, "12345", "Berlin", Country.ARGENTINAARGENTINEREPUBLIC(),"pobox" , "Region", "a@b.de", "f12345", "+49-30-123456", URI.create("www.abc.de"), Point.NewInstance(2.4, 3.2, ReferenceSystem.WGS84(), 3)));\r
team2.setContact(Contact.NewInstance("Street2", null, "London", null, null, null, null, "874599873", null, null, null));\r
Assert.assertTrue("Contacts should be ignoredin default match strategy", matchStrategy.invoke(team1, team2));\r
\r
\r
package eu.etaxonomy.cdm.strategy.merge;\r
\r
+import java.net.URI;\r
import java.util.HashSet;\r
import java.util.Set;\r
import java.util.UUID;\r
annotation2 = Annotation.NewInstance(annotationString2, null);\r
\r
book1 = ReferenceFactory.newBook();\r
- book1.setAuthorTeam(team1);\r
+ book1.setAuthorship(team1);\r
book1.setTitle(title1);\r
book1.setEdition(editionString1);\r
book1.setVolume(volumeString1);\r
book1.setNomenclaturallyRelevant(false);\r
\r
book2 = ReferenceFactory.newBook();\r
- book2.setAuthorTeam(team2);\r
+ book2.setAuthorship(team2);\r
book2.setTitle(title2);\r
book2.setEdition(editionString2);\r
book2.setVolume(volumeString2);\r
try {\r
bookMergeStrategy.setMergeMode("edition", MergeMode.SECOND);\r
bookMergeStrategy.setMergeMode("volume", MergeMode.NULL);\r
- bookMergeStrategy.setMergeMode("authorTeam", MergeMode.SECOND);\r
+ bookMergeStrategy.setMergeMode("authorship", MergeMode.SECOND);\r
bookMergeStrategy.setMergeMode("created", MergeMode.SECOND);\r
bookMergeStrategy.setMergeMode("updated",MergeMode.NULL);\r
bookMergeStrategy.setMergeMode("datePublished", MergeMode.SECOND);\r
\r
\r
//CdmBase\r
- Assert.assertSame("AuthorTeam must be the one of book2", team2, book1.getAuthorTeam());\r
+ Assert.assertSame("Authorship must be the one of book2", team2, book1.getAuthorship());\r
Assert.assertSame("In Series must be the one of book2", printSeries2, book1.getInReference());\r
\r
//Transient\r
team1.setTitleCache("Team1", true);\r
team1.setNomenclaturalTitle("T.1");\r
String street1 = "Strasse1";\r
- team1.setContact(Contact.NewInstance(street1, "12345", "Berlin", Country.ARGENTINAARGENTINEREPUBLIC(),"pobox" , "Region", "a@b.de", "f12345", "+49-30-123456", "www.abc.de", Point.NewInstance(2.4, 3.2, ReferenceSystem.WGS84(), 3)));\r
+ team1.setContact(Contact.NewInstance(street1, "12345", "Berlin", Country.ARGENTINAARGENTINEREPUBLIC(),"pobox" , "Region", "a@b.de", "f12345", "+49-30-123456", URI.create("www.abc.de"), Point.NewInstance(2.4, 3.2, ReferenceSystem.WGS84(), 3)));\r
team2.setContact(Contact.NewInstance("Street2", null, "London", null, null, null, null, "874599873", null, null, null));\r
String street3 = "Street3";\r
team2.addAddress(street3, null, null, null, null, null, Point.NewInstance(1.1, 2.2, null, 4));\r
name = parser.parseReferencedName(strNameWith3Authors, botanicCode, speciesRank);\r
Assert.assertFalse("No problems should exist", name.hasProblem());\r
Assert.assertEquals("Name should not include reference part", "Abies alba Mess., L. & Mill.", name.getTitleCache());\r
- Assert.assertEquals("Name should have authorteam with 2 authors", 3, ((Team)name.getCombinationAuthorTeam()).getTeamMembers().size());\r
+ Assert.assertEquals("Name should have authorship with 2 authors", 3, ((Team)name.getCombinationAuthorTeam()).getTeamMembers().size());\r
Assert.assertEquals("Mess., L. & Mill., Sp. Pl., ed. 3. 1987", name.getNomenclaturalReference().getTitleCache());\r
\r
}\r
assertFullRefStandard(name1);\r
assertTrue(((Reference<?>)name1.getNomenclaturalReference()).getType().equals(eu.etaxonomy.cdm.model.reference.ReferenceType.Book));\r
assertEquals(fullReference, name1.getFullTitleCache());\r
- assertTrue("Name author and reference author should be the same", name1.getCombinationAuthorTeam() == ((Reference<?>)name1.getNomenclaturalReference()).getAuthorTeam());\r
+ assertTrue("Name author and reference author should be the same", name1.getCombinationAuthorTeam() == ((Reference<?>)name1.getNomenclaturalReference()).getAuthorship());\r
\r
//Book Section\r
fullReference = "Abies alba Mill. in Otto, Sp. Pl. 4(6): 455. 1987";\r
IBookSection bookSection = (IBookSection) ref;\r
IBook inBook = bookSection.getInBook();\r
assertNotNull(inBook);\r
- assertNotNull(inBook.getAuthorTeam());\r
- assertEquals("Otto", inBook.getAuthorTeam().getTitleCache());\r
+ assertNotNull(inBook.getAuthorship());\r
+ assertEquals("Otto", inBook.getAuthorship().getTitleCache());\r
assertEquals("Otto, Sp. Pl. 4(6)", inBook.getTitleCache());\r
assertEquals("Sp. Pl.", inBook.getTitle());\r
assertEquals("4(6)", inBook.getVolume());\r
- assertTrue("Name author and reference author should be the same", name2.getCombinationAuthorTeam() == ((Reference<?>)name2.getNomenclaturalReference()).getAuthorTeam());\r
+ assertTrue("Name author and reference author should be the same", name2.getCombinationAuthorTeam() == ((Reference<?>)name2.getNomenclaturalReference()).getAuthorship());\r
\r
//Article\r
fullReference = "Abies alba Mill. in Sp. Pl. 4(6): 455. 1987";\r
assertEquals("Sp. Pl.",((Reference<?>) journal).getTitleCache());\r
assertEquals("Sp. Pl.", journal.getTitle());\r
assertEquals("4(6)",((IArticle)ref).getVolume());\r
- assertTrue("Name author and reference author should be the same", name3.getCombinationAuthorTeam() == name3.getNomenclaturalReference().getAuthorTeam());\r
+ assertTrue("Name author and reference author should be the same", name3.getCombinationAuthorTeam() == name3.getNomenclaturalReference().getAuthorship());\r
\r
//SoftArticle - having "," on position > 4\r
String journalTitle = "Bull. Soc. Bot.France. Louis., Roi";\r
\r
book.setDatePublished(TimePeriod.NewInstance(cal));\r
Person bookAuthor = Person.NewTitledInstance("BuchAuthorTitle");\r
- book.setAuthorTeam(bookAuthor);\r
+ book.setAuthorship(bookAuthor);\r
book.setVolume("v 22");\r
book.setEdition("55");\r
System.out.println("FULL" + book.getNomenclaturalCitation("344"));\r
System.out.println("*********** ARTICLE **************");\r
Reference<?> inJournal = ReferenceFactory.newJournal();\r
Person journalAuthor = Person.NewTitledInstance("JournalAuthorTitle");\r
- inJournal.setAuthorTeam(journalAuthor);\r
+ inJournal.setAuthorship(journalAuthor);\r
inJournal.setTitle("JournalTitle");\r
inJournal.setIssn("issn");\r
Reference<?> article = ReferenceFactory.newArticle(inJournal, partAuthor, "artTitel", "123-456", "ser4", "55", TimePeriod.NewInstance(cal));\r
System.out.println("*********** GENERIC **************");\r
Reference<?> generic = ReferenceFactory.newGeneric();\r
Person genericAuthor = Person.NewTitledInstance("GenericAuthorTitle");\r
- generic.setAuthorTeam(genericAuthor);\r
+ generic.setAuthorship(genericAuthor);\r
generic.setTitle("GenericTitle");\r
generic.setDatePublished(TimePeriod.NewInstance(cal));\r
generic.setEditor("EditorString");\r
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>cdmlib-parent</artifactId>
- <version>3.3.8-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
\r
/**\r
+ * Base class for a {@link ISchemaUpdaterStep schema update step} which supports automated handling \r
+ * of auditing tables.\r
+ * \r
+ * @see CdmUpdater\r
+ * @see ISchemaUpdater\r
+ * \r
* @author a.mueller\r
*\r
* @param <T>\r
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
import eu.etaxonomy.cdm.database.CdmDataSource;\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
-import eu.etaxonomy.cdm.database.update.v31_33.SchemaUpdater_31_33;\r
-import eu.etaxonomy.cdm.database.update.v31_33.SchemaUpdater_33_331;\r
-import eu.etaxonomy.cdm.database.update.v31_33.TermUpdater_31_33;\r
+import eu.etaxonomy.cdm.database.update.v33_34.SchemaUpdater_331_34;\r
+import eu.etaxonomy.cdm.database.update.v33_34.TermUpdater_33_34;\r
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData;\r
\r
/**\r
+ * This class launches CDM model updates.\r
+ * Currently it splits the update in model updates and defined term related updates by\r
+ * using a {@link ISchemaUpdater schema updater} and a {@link ITermUpdater}. However, this \r
+ * architecture often results in problems and therefore will be replaced by only 1 schema updater.\r
+ * Term updates will be handled differently or also by using the schema updater.\r
+ * <BR>\r
+ * For each new schema version number there usually exists 1 {@link ISchemaUpdater} which is \r
+ * represents a list of schema update steps. {@link ISchemaUpdater schema updaters} are linked\r
+ * to previous updaters which are called, if relevant, previous to the latest updater.\r
+ * So it is possible to upgrade multiple schema version steps in one call.\r
+ * <BR><BR>\r
+ * As said before each {@link ISchemaUpdater schema updater} creates a list of \r
+ * {@link ISchemaUpdaterStep update steps}.\r
+ * <BR><BR>\r
+ * {@link ISchemaUpdater} support progression monitoring with each update step being one task.\r
+ * <BR><BR>\r
+ * ATTENTION: Some steps in the schema update are not transactional by nature. E.g. adding or removing a column\r
+ * to a table in a SQL database can not be handled in a transaction. Therefore failures in\r
+ * certain steps may not lead to a complete rollback of all steps covered by a {@link ISchemaUpdater}.\r
+ * This may lead to a situation where the database becomes inconsistent.\r
+ * <BR><BR> \r
+ * <u>HOW TO ADD A NEW UPDATER?</u><BR>\r
+ * Adding a new updater currently still needs adjustment at multiple places.\r
+ * <BR>\r
+ * <BR>1.) Increment {@link CdmMetaData} schema version number and term version number.\r
+ * <BR>2.) Create a new class instance of {@link SchemaUpdaterBase} (e.g. by copying an old one). \r
+ * <BR>3.) Update startSchemaVersion and endSchemaVersion in this new class, where startSchemaVersion\r
+ * is the old schema version and endSchemaVersion is the new schema version.\r
+ * <BR>4.) Implement {@link ISchemaUpdater#getPreviousUpdater()} and {@link ISchemaUpdater#getNextUpdater()}\r
+ * in a way that the former returns an instance of the previous schema updater and the later returns null (for now).\r
+ * <BR>5.) Go to the previous schema updater class and adjust {@link ISchemaUpdater#getNextUpdater()}\r
+ * in a way that it returns an instance of the newly created updater.\r
+ * <BR>6.) Repeat steps 2.-5. for {@link ITermUpdater}\r
+ * <BR>7.) Adjust {@link #getCurrentSchemaUpdater()} and {@link #getCurrentTermUpdater()} to return\r
+ * instances of the newly created updaters.\r
+ * \r
+ * @see ISchemaUpdater\r
+ * @see ITermUpdater\r
+ * @see ISchemaUpdaterStep\r
+ * @see ITermUpdaterStep\r
+ * \r
* @author a.mueller\r
* @date 10.09.2010\r
*\r
\r
\r
private ITermUpdater getCurrentTermUpdater() {\r
- return TermUpdater_31_33.NewInstance();\r
+ return TermUpdater_33_34.NewInstance();\r
}\r
\r
/**\r
* @return\r
*/\r
private ISchemaUpdater getCurrentSchemaUpdater() {\r
- return SchemaUpdater_33_331.NewInstance();\r
+ return SchemaUpdater_331_34.NewInstance();\r
}\r
\r
/**\r
}\r
}\r
\r
- ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance(server, database, 3306, username, password, null);\r
+ ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance(server, database, port, username, password, null);\r
boolean success = myUpdater.updateToCurrentVersion(dataSource, null);\r
System.out.println("DONE " + (success ? "successfully" : "with ERRORS"));\r
}\r
return new ColumnAdder(stepName, tableName, newColumnName, "clob", includeAudTable, null, false, null);\r
}\r
\r
- public static final ColumnAdder NewDateTimeInstance(String stepName, String tableName, String newColumnName, boolean includeAudTable){\r
- return new ColumnAdder(stepName, tableName, newColumnName, "datetime", includeAudTable, null, false, null);\r
+ public static final ColumnAdder NewDateTimeInstance(String stepName, String tableName, String newColumnName, boolean includeAudTable, boolean notNull){\r
+ return new ColumnAdder(stepName, tableName, newColumnName, "datetime", includeAudTable, null, notNull, null);\r
}\r
\r
protected ColumnAdder(String stepName, String tableName, String newColumnName, String columnType, boolean includeAudTable, Object defaultValue, boolean notNull, String referencedTable) {\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
\r
/**\r
+ * Class which represents a CDM schema version step. See {@link CdmUpdater}\r
+ * for further documentation or implementing classes for examples.\r
+ *\r
+ * @see CdmUpdater\r
+ * @see ISchemaUpdaterStep\r
+ * @see ISchemaUpdater\r
+ * @see ITermUpdaterStep\r
+ * \r
* @author a.mueller\r
* @date 09.2010\r
- *\r
*/\r
public interface ISchemaUpdater extends IUpdater<ISchemaUpdater>{\r
\r
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
\r
+/**\r
+ * Interface which represents a CDM model update step. See {@link CdmUpdater}\r
+ * for further documentation or implementing classes for examples.\r
+ * \r
+ * @see CdmUpdater\r
+ * @see ISchemaUpdater\r
+ * @see ISchemaUpdater\r
+ * @see ITermUpdaterStep\r
+ * \r
+ * @see CdmUpdater\r
+ * @author a.mueller\r
+ *\r
+ */\r
public interface ISchemaUpdaterStep {\r
\r
/**\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
\r
/**\r
+ * Class which represents a CDM term version step. See {@link CdmUpdater}\r
+ * for further documentation or implementing classes for examples.\r
+ * \r
+ * @see CdmUpdater\r
+ * @see ITermUpdaterStep\r
+ * @see ISchemaUpdaterStep\r
+ * @see ISchemaUpdater\r
+ * \r
* @author a.mueller\r
* @date 09.2010\r
*\r
package eu.etaxonomy.cdm.database.update;\r
\r
/**\r
- * Interface for classes that represent a step in a term update.\r
+ * Interface which represents a CDM terms update step. See {@link CdmUpdater}\r
+ * for further documentation or implementing classes for examples.\r
+ * \r
+ * @see CdmUpdater\r
+ * @see ITermUpdater\r
+ * @see ISchemaUpdaterStep\r
+ * @see ISchemaUpdater\r
+ * \r
* @author a.mueller\r
* @date 24.11.2010\r
*\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
\r
/**\r
+ * Common interface for {@link ISchemaUpdater} and {@link ITermUpdater}\r
+ * \r
* @author a.mueller\r
* @date 16.11.2010\r
- *\r
*/\r
public interface IUpdater<U extends IUpdater<U>> {\r
\r
\r
\r
protected MapTableCreator(String stepName, String firstTableName, String firstTableAlias, String secondTableName, String secondTableAlias, String mapKeyTableName, boolean includeAudTable) {\r
- super(stepName, firstTableName + "_" + secondTableName, new ArrayList<String>(), new ArrayList<String>(), new ArrayList<Object>(), new ArrayList<Boolean>(), new ArrayList<String>(), includeAudTable, false, false, false);\r
+ super(stepName, firstTableName + "_" + secondTableName, new ArrayList<String>(), new ArrayList<String>(), new ArrayList<Object>(), new ArrayList<Boolean>(), new ArrayList<String>(), includeAudTable, false, false, false, false);\r
this.firstTableName = firstTableName;\r
this.secondTableName = secondTableName;\r
this.firstTableAlias = (firstTableAlias != null )? firstTableAlias : firstTableName ;\r
\r
protected MnTableCreator(String stepName, String firstTableName, String firstTableAlias, String secondTableName, String secondTableAlias, String[] columnNames, String[] columnTypes,\r
List<Object> defaultValues, List<Boolean> isNull, boolean includeAudTable, boolean hasSortIndex, boolean secondTableInKey, boolean includeCdmBaseAttributes,boolean includeAnnotatableEntity, boolean includeIdentifiableEntity) {\r
- super(stepName, firstTableName + "_" + secondTableName, Arrays.asList(columnNames), Arrays.asList(columnTypes), defaultValues, isNull, new ArrayList<String>(), includeAudTable, includeCdmBaseAttributes, includeAnnotatableEntity, includeIdentifiableEntity);\r
+ super(stepName, firstTableName + "_" + secondTableName, Arrays.asList(columnNames), Arrays.asList(columnTypes), defaultValues, isNull, new ArrayList<String>(), includeAudTable, includeCdmBaseAttributes, includeAnnotatableEntity, includeIdentifiableEntity, false);\r
this.firstTableName = firstTableName;\r
this.secondTableName = secondTableName;\r
this.firstTableAlias = (firstTableAlias != null )? firstTableAlias : firstTableName ;\r
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
import eu.etaxonomy.cdm.database.DatabaseTypeEnum;\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
-import eu.etaxonomy.cdm.model.agent.AgentBase;\r
\r
/**\r
* @author a.mueller\r
private boolean includeIdentifiableEntity;\r
private boolean includeAnnotatableEntity;\r
private boolean includeEventBase;\r
+ private boolean excludeVersionableAttributes;\r
protected List<ColumnAdder> columnAdders = new ArrayList<ColumnAdder>();\r
protected List<ISchemaUpdaterStep> mnTablesStepList = new ArrayList<ISchemaUpdaterStep>();\r
private String primaryKeyParams;\r
\r
// public static final TableCreator NewInstance(String stepName, String tableName, List<String> columnNames, List<String> columnTypes, List<Object> defaultValues, List<Boolean> isNull, boolean includeAudTable){\r
public static final TableCreator NewInstance(String stepName, String tableName, List<String> columnNames, List<String> columnTypes, boolean includeAudTable, boolean includeCdmBaseAttributes){\r
- return new TableCreator(stepName, tableName, columnNames, columnTypes, null, null, null, includeAudTable, includeCdmBaseAttributes, false, false);\r
+ return new TableCreator(stepName, tableName, columnNames, columnTypes, null, null, null, includeAudTable, includeCdmBaseAttributes, false, false, false);\r
}\r
\r
public static final TableCreator NewInstance(String stepName, String tableName, String[] columnNames, String[] columnTypes, String[] referencedTables, boolean includeAudTable, boolean includeCdmBaseAttributes){\r
- return new TableCreator(stepName, tableName, Arrays.asList(columnNames), Arrays.asList(columnTypes), null, null, Arrays.asList(referencedTables), includeAudTable, includeCdmBaseAttributes, false, false);\r
+ return new TableCreator(stepName, tableName, Arrays.asList(columnNames), Arrays.asList(columnTypes), null, null, Arrays.asList(referencedTables), includeAudTable, includeCdmBaseAttributes, false, false, false);\r
+ }\r
+ \r
+ public static final TableCreator NewNonVersionableInstance(String stepName, String tableName, String[] columnNames, String[] columnTypes, String[] referencedTables, boolean includeAudTable){\r
+ return new TableCreator(stepName, tableName, Arrays.asList(columnNames), Arrays.asList(columnTypes), null, null, Arrays.asList(referencedTables), includeAudTable, true, false, false, true);\r
}\r
\r
public static final TableCreator NewAnnotatableInstance(String stepName, String tableName, String[] columnNames, String[] columnTypes, String[] referencedTables, boolean includeAudTable){\r
- return new TableCreator(stepName, tableName, Arrays.asList(columnNames), Arrays.asList(columnTypes), null, null, Arrays.asList(referencedTables), includeAudTable, true, true, false);\r
+ return new TableCreator(stepName, tableName, Arrays.asList(columnNames), Arrays.asList(columnTypes), null, null, Arrays.asList(referencedTables), includeAudTable, true, true, false, false);\r
}\r
\r
public static final TableCreator NewEventInstance(String stepName, String tableName, String[] columnNames, String[] columnTypes, String[] referencedTables, boolean includeAudTable){\r
- TableCreator result = new TableCreator(stepName, tableName, Arrays.asList(columnNames), Arrays.asList(columnTypes), null, null, Arrays.asList(referencedTables), includeAudTable, true, true, false);\r
+ TableCreator result = new TableCreator(stepName, tableName, Arrays.asList(columnNames), Arrays.asList(columnTypes), null, null, Arrays.asList(referencedTables), includeAudTable, true, true, false, false);\r
result.includeEventBase = true;\r
return result;\r
}\r
\r
public static final TableCreator NewIdentifiableInstance(String stepName, String tableName, String[] columnNames, String[] columnTypes, String[] referencedTables, boolean includeAudTable){\r
- return new TableCreator(stepName, tableName, Arrays.asList(columnNames), Arrays.asList(columnTypes), null, null, Arrays.asList(referencedTables), includeAudTable, true, true, true);\r
+ return new TableCreator(stepName, tableName, Arrays.asList(columnNames), Arrays.asList(columnTypes), null, null, Arrays.asList(referencedTables), includeAudTable, true, true, true, false);\r
}\r
\r
protected TableCreator(String stepName, String tableName, List<String> columnNames, List<String> columnTypes, List<Object> defaultValues, List<Boolean> isNotNull, List<String> referencedTables, \r
- boolean includeAudTable, boolean includeCdmBaseAttributes, boolean includeAnnotatableEntity, boolean includeIdentifiableEntity) {\r
+ boolean includeAudTable, boolean includeCdmBaseAttributes, boolean includeAnnotatableEntity, boolean includeIdentifiableEntity, boolean excludeVersionableAttributes) {\r
super(stepName);\r
this.tableName = tableName;\r
this.columnNames = columnNames;\r
this.includeCdmBaseAttributes = includeCdmBaseAttributes;\r
this.includeAnnotatableEntity = includeAnnotatableEntity;\r
this.includeIdentifiableEntity = includeIdentifiableEntity;\r
+ this.excludeVersionableAttributes = excludeVersionableAttributes;\r
makeColumnAdders();\r
makeMnTables();\r
}\r
throw new RuntimeException ("ColumnNames and columnTypes must be of same size. Step: " + getStepName());\r
}\r
\r
- for (int i = 0; i < columnNames.size(); i++){\r
- boolean isNotNull = this.isNotNull == null ? false : this.isNotNull.get(i);\r
- if ("integer".equals(columnTypes.get(i)) || "int".equals(columnTypes.get(i))){\r
- String referencedTable = (this.referencedTables == null) ? null : this.referencedTables.get(i);\r
- ColumnAdder adder = ColumnAdder.NewIntegerInstance(this.getStepName(), this.tableName, this.columnNames.get(i), includeAudTable, isNotNull, referencedTable);\r
- this.columnAdders.add(adder);\r
- }else if ("boolean".equals(columnTypes.get(i)) || "bit".equals(columnTypes.get(i))){\r
- String defaultValue = this.defaultValues == null ? null : this.defaultValues.get(i).toString();\r
- ColumnAdder adder = ColumnAdder.NewBooleanInstance(getStepName(), this.tableName, this.columnNames.get(i), includeAudTable, Boolean.valueOf(defaultValue));\r
- this.columnAdders.add(adder);\r
- }else if (columnTypes.get(i).startsWith("string")){\r
- Integer length = Integer.valueOf(columnTypes.get(i).substring("string_".length()));\r
- ColumnAdder adder = ColumnAdder.NewStringInstance(this.getStepName(), this.tableName, this.columnNames.get(i), length, includeAudTable);\r
- this.columnAdders.add(adder);\r
- }else if ("tinyint".equals(columnTypes.get(i)) ){\r
- ColumnAdder adder = ColumnAdder.NewTinyIntegerInstance(this.getStepName(), this.tableName, this.columnNames.get(i), includeAudTable, isNotNull);\r
- this.columnAdders.add(adder);\r
- }else if ("double".equals(columnTypes.get(i)) ){\r
- ColumnAdder adder = ColumnAdder.NewDoubleInstance(this.getStepName(), this.tableName, this.columnNames.get(i), includeAudTable, isNotNull);\r
- this.columnAdders.add(adder);\r
+ try {\r
+ for (int i = 0; i < columnNames.size(); i++){\r
+ boolean isNotNull = this.isNotNull == null ? false : this.isNotNull.get(i);\r
+ if ("integer".equals(columnTypes.get(i)) || "int".equals(columnTypes.get(i))){\r
+ String referencedTable = (this.referencedTables == null) ? null : this.referencedTables.get(i);\r
+ ColumnAdder adder = ColumnAdder.NewIntegerInstance(this.getStepName(), this.tableName, this.columnNames.get(i), includeAudTable, isNotNull, referencedTable);\r
+ this.columnAdders.add(adder);\r
+ }else if ("boolean".equals(columnTypes.get(i)) || "bit".equals(columnTypes.get(i))){\r
+ String defaultValue = this.defaultValues == null ? null : this.defaultValues.get(i).toString();\r
+ ColumnAdder adder = ColumnAdder.NewBooleanInstance(getStepName(), this.tableName, this.columnNames.get(i), includeAudTable, Boolean.valueOf(defaultValue));\r
+ this.columnAdders.add(adder);\r
+ }else if (columnTypes.get(i).startsWith("string")){\r
+ Integer length = Integer.valueOf(columnTypes.get(i).substring("string_".length()));\r
+ ColumnAdder adder = ColumnAdder.NewStringInstance(this.getStepName(), this.tableName, this.columnNames.get(i), length, includeAudTable);\r
+ this.columnAdders.add(adder);\r
+ }else if ("tinyint".equals(columnTypes.get(i)) ){\r
+ ColumnAdder adder = ColumnAdder.NewTinyIntegerInstance(this.getStepName(), this.tableName, this.columnNames.get(i), includeAudTable, isNotNull);\r
+ this.columnAdders.add(adder);\r
+ }else if ("datetime".equals(columnTypes.get(i)) ){\r
+ ColumnAdder adder = ColumnAdder.NewDateTimeInstance(this.getStepName(), this.tableName, this.columnNames.get(i), includeAudTable, isNotNull);\r
+ this.columnAdders.add(adder);\r
+ }else if ("double".equals(columnTypes.get(i)) ){\r
+ ColumnAdder adder = ColumnAdder.NewDoubleInstance(this.getStepName(), this.tableName, this.columnNames.get(i), includeAudTable, isNotNull);\r
+ this.columnAdders.add(adder);\r
+ }else{\r
+ throw new RuntimeException("Column type " + columnTypes.get(i) + " not yet supported");\r
+ }\r
}\r
+ } catch (Exception e) {\r
+ throw new RuntimeException(e);\r
}\r
}\r
\r
if (includeCdmBaseAttributes){\r
updateQuery += " id integer NOT NULL,"\r
+ " created " + ColumnAdder.getDatabaseColumnType(datasource, "datetime") + ", "\r
- + " uuid varchar(36),"\r
- + " updated " + ColumnAdder.getDatabaseColumnType(datasource, "datetime") + ", "\r
+ + " uuid varchar(36) NOT NULL,"\r
+ + (excludeVersionableAttributes? "" : " updated " + ColumnAdder.getDatabaseColumnType(datasource, "datetime") + ", ")\r
+ " createdby_id integer,"\r
- + " updatedby_id integer, ";\r
+ + (excludeVersionableAttributes ? "" : " updatedby_id integer, ");\r
}\r
//EventBase\r
if (this.includeEventBase){\r
\r
/**\r
* Common updater base class for updating schema or terms.\r
+ * \r
+ * @see CdmUpdater\r
+ * @see ISchemaUpdater\r
+ * @see ITermUpdater\r
+ * \r
* @author a.mueller\r
* @date 16.11.2010\r
*\r
import eu.etaxonomy.cdm.database.update.SimpleSchemaUpdaterStep;
import eu.etaxonomy.cdm.database.update.TableDroper;
import eu.etaxonomy.cdm.database.update.TreeIndexUpdater;
+import eu.etaxonomy.cdm.database.update.v33_34.SchemaUpdater_331_34;
/**
* @author a.mueller
@Override
public ISchemaUpdater getNextUpdater() {
- return null;
+ return SchemaUpdater_331_34.NewInstance();
}
@Override
import eu.etaxonomy.cdm.database.update.SingleTermUpdater;\r
import eu.etaxonomy.cdm.database.update.TermUpdaterBase;\r
import eu.etaxonomy.cdm.database.update.v30_31.TermUpdater_314_315;\r
+import eu.etaxonomy.cdm.database.update.v33_34.TermUpdater_33_34;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.TermType;\r
import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
\r
@Override\r
public ITermUpdater getNextUpdater() {\r
- return null;\r
+ return TermUpdater_33_34.NewInstance();\r
}\r
\r
@Override\r
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.cdm.database.update.v33_34;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.database.update.ColumnAdder;
+import eu.etaxonomy.cdm.database.update.ColumnNameChanger;
+import eu.etaxonomy.cdm.database.update.ColumnRemover;
+import eu.etaxonomy.cdm.database.update.ColumnTypeChanger;
+import eu.etaxonomy.cdm.database.update.ISchemaUpdater;
+import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep;
+import eu.etaxonomy.cdm.database.update.SchemaUpdaterBase;
+import eu.etaxonomy.cdm.database.update.SimpleSchemaUpdaterStep;
+import eu.etaxonomy.cdm.database.update.TableCreator;
+import eu.etaxonomy.cdm.database.update.TableDroper;
+import eu.etaxonomy.cdm.database.update.v31_33.SchemaUpdater_33_331;
+
+/**
+ * @author a.mueller
+ * @created Jan 14, 2014
+ */
+public class SchemaUpdater_331_34 extends SchemaUpdaterBase {
+
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(SchemaUpdater_331_34.class);
+ private static final String startSchemaVersion = "3.3.1.0.201401140000";
+ private static final String endSchemaVersion = "3.4.0.0.201407010000";
+
+ // ********************** FACTORY METHOD
+ // *******************************************
+
+ public static SchemaUpdater_331_34 NewInstance() {
+ return new SchemaUpdater_331_34();
+ }
+
+ /**
+ * @param startSchemaVersion
+ * @param endSchemaVersion
+ */
+ protected SchemaUpdater_331_34() {
+ super(startSchemaVersion, endSchemaVersion);
+ }
+
+ @Override
+ protected List<ISchemaUpdaterStep> getUpdaterList() {
+
+ String stepName;
+ String tableName;
+ ISchemaUpdaterStep step;
+ String columnName;
+
+ List<ISchemaUpdaterStep> stepList = new ArrayList<ISchemaUpdaterStep>();
+
+ //TODO H2 / PostGreSQL / SQL Server
+ //UserAccount unique
+ stepName = "Update User unique indexes";
+ tableName = "UserAccount";
+ columnName = "username";
+ step = UsernameConstraintUpdater.NewInstance(stepName, tableName, columnName);
+ stepList.add(step);
+
+ //TODO H2 / PostGreSQL / SQL Server
+ //PermissionGroup unique
+ stepName = "Update Group unique indexes";
+ tableName = "PermissionGroup";
+ columnName = "name";
+ step = UsernameConstraintUpdater.NewInstance(stepName, tableName, columnName);
+ stepList.add(step);
+
+ //TODO H2 / PostGreSQL / SQL Server
+ //GrantedAuthority unique
+ stepName = "Update User unique indexes";
+ tableName = "GrantedAuthorityImpl";
+ columnName = "authority";
+ step = UsernameConstraintUpdater.NewInstance(stepName, tableName, columnName);
+ stepList.add(step);
+
+ //TODO H2 / PostGreSQL / SQL Server
+ stepName = "Add label column to derived unit";
+ tableName = "SpecimenOrObservationBase";
+ columnName = "originalLabelInfo";
+ step = ColumnAdder.NewClobInstance(stepName, tableName, columnName, INCLUDE_AUDIT);
+ stepList.add(step);
+
+
+ //TODO test with data and H2 / PostGreSQL / SQL Server
+ //set default value to true where required
+ stepName = "Set publish to true if null";
+ String query = " UPDATE @@TaxonBase@@ " +
+ " SET publish = @TRUE@ " +
+ " WHERE DTYPE IN ('Synonym') AND publish IS NULL ";
+ step = SimpleSchemaUpdaterStep.NewAuditedInstance(stepName, query, "TaxonBase", 99);
+ stepList.add(step);
+
+
+ addIdentifierTables(stepList);
+
+
+ //remove series from Reference #4293
+ stepName = "Copy series to series part";
+ String sql = " UPDATE Reference r " +
+ " SET r.seriespart = r.series " +
+ " WHERE r.series is NOT NULL AND r.seriesPart IS NULL ";
+ step = SimpleSchemaUpdaterStep.NewAuditedInstance(stepName, sql, "Reference", 99);
+ stepList.add(step);
+
+ stepName = "Set series to NULL";
+ sql = " UPDATE Reference r " +
+ " SET r.series = NULL " +
+ " WHERE r.series = r.seriesPart ";
+ step = SimpleSchemaUpdaterStep.NewAuditedInstance(stepName, sql, "Reference", 99);
+ stepList.add(step);
+
+ //TODO check all series are null
+
+ stepName = "Remove series column";
+ tableName = "Reference";
+ String oldColumnName = "series";
+ step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, INCLUDE_AUDIT);
+ stepList.add(step);
+
+ //authorTeam -> authorship
+ stepName = "Rename Reference.authorTeam column";
+ tableName = "Reference";
+ oldColumnName = "authorTeam_id";
+ String newColumnName = "authorship_id";
+ step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
+ stepList.add(step);
+
+ //remove CDM_VIEW #4316
+ stepName = "Remove CDM_VIEW_CDM_VIEW table";
+ tableName = "CDM_VIEW_CDM_VIEW";
+ boolean ifExists = true;
+ step = TableDroper.NewInstance(stepName, tableName, ! INCLUDE_AUDIT, ifExists);
+ stepList.add(step);
+
+ stepName = "Remove CDM_VIEW table";
+ tableName = "CDM_VIEW";
+ ifExists = true;
+ step = TableDroper.NewInstance(stepName, tableName, ! INCLUDE_AUDIT, ifExists);
+ stepList.add(step);
+
+ //change size of AgentBase_contact_urls.contact_urls_element #3920
+ stepName = "Change length of AgentBase_contact_urls.contact_urls_element";
+ tableName = "AgentBase_contact_urls";
+ columnName = "contact_urls_element";
+ step = ColumnTypeChanger.NewStringSizeInstance(stepName, tableName,
+ columnName, 330, INCLUDE_AUDIT);
+ stepList.add(step);
+
+ //TODO not null on username, groupname and authority #4382
+
+ //DnaQuality #4434
+ //Identifier
+ stepName = "Create dna quality";
+ boolean includeCdmBaseAttributes = true;
+ tableName = "DnaQuality";
+ String[] columnNames = new String[]{"purificationmethod","concentration","ratioofabsorbance260_230", "ratioofabsorbance260_280","qualitycheckdate","concentrationunit_id","qualityterm_id"};
+ String[] columnTypes = new String[]{"string_255","double","double","double","datetime","int","int"};
+ String[] referencedTables = new String[]{null,null,null,null,null,"DefinedTermBase","DefinedTermBase"};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ stepList.add(step);
+
+ //DnaQuality in TissueSample
+ //TODO H2 / PostGreSQL / SQL Server
+ stepName = "Add foreign key to dna quality";
+ tableName = "SpecimenOrObservationBase";
+ newColumnName = "dnaQuality_id";
+ boolean notNull = false;
+ String referencedTable = "DnaQuality";
+ step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, notNull, referencedTable);
+ stepList.add(step);
+
+ //time scope for classifications
+ //TODO H2 / PostGreSQL / SQL Server
+ stepName = "Add time scope (start) for classifications";
+ tableName = "Classification";
+ newColumnName = "timeperiod_start";
+ int length = 255;
+ step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, length, INCLUDE_AUDIT);
+ stepList.add(step);
+
+ //TODO H2 / PostGreSQL / SQL Server
+ stepName = "Add time scope (end) for classifications";
+ tableName = "Classification";
+ newColumnName = "timeperiod_end";
+ length = 255;
+ step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, length, INCLUDE_AUDIT);
+ stepList.add(step);
+
+ //TODO H2 / PostGreSQL / SQL Server
+ stepName = "Add time scope (freetext) for classifications";
+ tableName = "Classification";
+ newColumnName = "timeperiod_freetext";
+ length = 255;
+ step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, length, INCLUDE_AUDIT);
+ stepList.add(step);
+
+ //Classification_GeoScope
+ //TODO
+ stepName = "Create Classification_GeoScope table";
+ includeCdmBaseAttributes = false;
+ tableName = "Classification_GeoScope";
+ columnNames = new String[]{"Classification_id","geoScopes_id"};
+ columnTypes = new String[]{"int","int"};
+ referencedTables = new String[]{"Classification","DefinedTermBase"};
+ TableCreator creator = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ creator.setPrimaryKeyParams("Classification_id,geoScopes_id", "REV,Classification_id,geoScopes_id");
+ stepList.add(creator);
+
+ //Classification_Description
+ //TODO
+ stepName = "Create Classification_Description table";
+ includeCdmBaseAttributes = false;
+ tableName = "Classification_Description";
+ columnNames = new String[]{"Classification_id","description_id","description_mapkey_id"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"Classification","LanguageString","DefinedTermBase"};
+ creator = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ creator.setPrimaryKeyParams("Classification_id", "REV,Classification_id,description_id,description_mapkey_id");
+ stepList.add(creator);
+
+ //Primer.sequence type #4139
+ stepName = "Add sequence string column to primer";
+ tableName = "Primer";
+ newColumnName = "sequence_string";
+ step = ColumnAdder.NewClobInstance(stepName, tableName, newColumnName,
+ INCLUDE_AUDIT);
+ stepList.add(step);
+
+ //Primer.sequence length
+ stepName = "Add sequence length column to primer";
+ tableName = "Primer";
+ newColumnName = "sequence_length";
+ notNull = false;
+ referencedTable = null;
+ step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, null, notNull);
+ stepList.add(step);
+
+ //remove sequence_id column //we do not move data as we do not expect data available yet
+ stepName = "Remove sequence_id column from primer";
+ tableName = "Primer";
+ oldColumnName = "sequence_id";
+ step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, INCLUDE_AUDIT);
+ stepList.add(step);
+
+ //EntityValidationResult
+ //TODO
+ stepName = "Create EntityValidationResult table";
+ includeCdmBaseAttributes = true;
+ tableName = "EntityValidationResult";
+ columnNames = new String[]{"crudeventtype","userfriendlydescription","userfriendlytypename",
+ "validatedentityclass","validatedentityid","validatedentityuuid"};
+ columnTypes = new String[]{"string_255","string_255","string_255","string_255","int","string_36"};
+ referencedTables = new String[]{null,null,null,null,null,null};
+ creator = TableCreator.NewNonVersionableInstance(stepName, tableName, columnNames, columnTypes, referencedTables, ! INCLUDE_AUDIT);
+ stepList.add(creator);
+
+
+ //EntityConstraintViolation
+ //TODO
+ stepName = "Create EntityConstraintViolation table";
+ includeCdmBaseAttributes = true;
+ tableName = "EntityConstraintViolation";
+ columnNames = new String[]{"invalidvalue","message","propertypath","severity","userfriendlyfieldname",
+ "validator","entityvalidationresult_id"};
+ columnTypes = new String[]{"string_255","string_255","string_255","string_255","string_255","string_255","int"};
+ referencedTables = new String[]{null,null,null,null,null,null,"EntityValidationResult"};
+ creator = TableCreator.NewNonVersionableInstance(stepName, tableName, columnNames, columnTypes, referencedTables, ! INCLUDE_AUDIT);
+ stepList.add(creator);
+
+
+
+ return stepList;
+
+ }
+
+ private void addIdentifierTables(List<ISchemaUpdaterStep> stepList) {
+
+ //Identifier
+ String stepName = "Create Identifier table";
+ boolean includeCdmBaseAttributes = true;
+ String tableName = "Identifier";
+ String[] columnNames = new String[]{"identifier","identifiedObj_type", "identifiedObj_id","type_id"};
+ String[] columnTypes = new String[]{"string_800","string_255","int","int"};
+ String[] referencedTables = new String[]{null,null,null,"DefinedTermBase"};
+ TableCreator step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ stepList.add(step);
+
+ //AgentBase_Identifier
+ stepName = "Create AgentBase_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "AgentBase_Identifier";
+ columnNames = new String[]{"AgentBase_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"AgentBase","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("AgentBase_id,identifiers_id", "REV,AgentBase_id,identifiers_id");
+ stepList.add(step);
+
+ //Classification_Identifier
+ stepName = "Create Classification_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "Classification_Identifier";
+ columnNames = new String[]{"Classification_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"Classification","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("Classification_id,identifiers_id", "REV,Classification_id,identifiers_id");
+ stepList.add(step);
+
+ //Collection_Identifier
+ stepName = "Create Collection_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "Collection_Identifier";
+ columnNames = new String[]{"Collection_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"Collection","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("Collection_id,identifiers_id", "REV,Collection_id,identifiers_id");
+ stepList.add(step);
+
+ //DefinedTermBase_Identifier
+ stepName = "Create DefinedTermBase_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "DefinedTermBase_Identifier";
+ columnNames = new String[]{"DefinedTermBase_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"DefinedTermBase","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("DefinedTermBase_id,identifiers_id", "REV,DefinedTermBase_id,identifiers_id");
+ stepList.add(step);
+
+ //DescriptionBase_Identifier
+ stepName = "Create DescriptionBase_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "DescriptionBase_Identifier";
+ columnNames = new String[]{"DescriptionBase_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"DescriptionBase","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("DescriptionBase_id,identifiers_id", "REV,DescriptionBase_id,identifiers_id");
+ stepList.add(step);
+
+ //FeatureTree_Identifier
+ stepName = "Create FeatureTree_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "FeatureTree_Identifier";
+ columnNames = new String[]{"FeatureTree_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"FeatureTree","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("FeatureTree_id,identifiers_id", "REV,FeatureTree_id,identifiers_id");
+ stepList.add(step);
+
+ //Media_Identifier
+ stepName = "Create Media_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "Media_Identifier";
+ columnNames = new String[]{"Media_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"Media","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("Media_id,identifiers_id", "REV,Media_id,identifiers_id");
+ stepList.add(step);
+
+ //PolytomousKey_Identifier
+ stepName = "Create PolytomousKey_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "PolytomousKey_Identifier";
+ columnNames = new String[]{"PolytomousKey_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"PolytomousKey","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("PolytomousKey_id,identifiers_id", "REV,PolytomousKey_id,identifiers_id");
+ stepList.add(step);
+
+ //Reference_Identifier
+ stepName = "Create Reference_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "Reference_Identifier";
+ columnNames = new String[]{"Reference_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"Reference","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("Reference_id,identifiers_id", "REV,Reference_id,identifiers_id");
+ stepList.add(step);
+
+ //SpecimenOrObservationBase_Identifier
+ stepName = "Create SpecimenOrObservationBase_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "SpecimenOrObservationBase_Identifier";
+ columnNames = new String[]{"SpecimenOrObservationBase_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"SpecimenOrObservationBase","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("SpecimenOrObservationBase_id,identifiers_id", "REV,SpecimenOrObservationBase_id,identifiers_id");
+ stepList.add(step);
+
+ //TaxonBase_Identifier
+ stepName = "Create TaxonBase_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "TaxonBase_Identifier";
+ columnNames = new String[]{"TaxonBase_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"TaxonBase","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("TaxonBase_id,identifiers_id", "REV,TaxonBase_id,identifiers_id");
+ stepList.add(step);
+
+ //TaxonNameBase_Identifier
+ stepName = "Create TaxonNameBase_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "TaxonNameBase_Identifier";
+ columnNames = new String[]{"TaxonNameBase_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"TaxonNameBase","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("TaxonNameBase_id,identifiers_id", "REV,TaxonNameBase_id,identifiers_id");
+ stepList.add(step);
+
+ //TermVocabulary_Identifier
+ stepName = "Create TermVocabulary_Identifier table";
+ includeCdmBaseAttributes = false;
+ tableName = "TermVocabulary_Identifier";
+ columnNames = new String[]{"TermVocabulary_id","identifiers_id","sortIndex"};
+ columnTypes = new String[]{"int","int","int"};
+ referencedTables = new String[]{"TermVocabulary","Identifier",null};
+ step = TableCreator.NewInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes);
+ step.setPrimaryKeyParams("TermVocabulary_id,identifiers_id", "REV,TermVocabulary_id,identifiers_id");
+ stepList.add(step);
+
+ }
+
+ @Override
+ public ISchemaUpdater getNextUpdater() {
+ return null;
+ }
+
+ @Override
+ public ISchemaUpdater getPreviousUpdater() {
+ return SchemaUpdater_33_331.NewInstance();
+ }
+
+}
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.database.update.v33_34;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import eu.etaxonomy.cdm.database.update.ITermUpdater;\r
+import eu.etaxonomy.cdm.database.update.ITermUpdaterStep;\r
+import eu.etaxonomy.cdm.database.update.TermUpdaterBase;\r
+import eu.etaxonomy.cdm.database.update.v31_33.TermUpdater_31_33;\r
+\r
+/**\r
+ * @author a.mueller\r
+ * @date 10.09.2010\r
+ *\r
+ */\r
+public class TermUpdater_33_34 extends TermUpdaterBase implements ITermUpdater {\r
+ @SuppressWarnings("unused")\r
+ private static final Logger logger = Logger.getLogger(TermUpdater_33_34.class);\r
+ \r
+ public static final String startTermVersion = "3.3.0.0.201309240000";\r
+ private static final String endTermVersion = "3.4.0.0.201407010000";\r
+ \r
+// *************************** FACTORY **************************************/\r
+ \r
+ public static TermUpdater_33_34 NewInstance(){\r
+ return new TermUpdater_33_34(startTermVersion, endTermVersion);\r
+ }\r
+ \r
+// *************************** CONSTRUCTOR ***********************************/ \r
+\r
+ protected TermUpdater_33_34(String startTermVersion, String endTermVersion) {\r
+ super(startTermVersion, endTermVersion);\r
+ }\r
+ \r
+ \r
+ @Override\r
+ protected List<ITermUpdaterStep> getUpdaterList() {\r
+ List<ITermUpdaterStep> list = new ArrayList<ITermUpdaterStep>();\r
+\r
+// // proles, #2793\r
+// UUID uuidTerm = UUID.fromString("8810d1ba-6a34-4ae3-a355-919ccd1cd1a5");\r
+// String description = "Rank ''Proles''. Note: This rank is not compliant with the current nomenclatural codes";\r
+// String label = "Proles";\r
+// String abbrev = "prol.";\r
+// String dtype = Rank.class.getSimpleName();\r
+// boolean isOrdered = true;\r
+// UUID uuidVocabulary = UUID.fromString("ef0d1ce1-26e3-4e83-b47b-ca74eed40b1b");\r
+// UUID uuidAfterTerm = UUID.fromString("bff22f84-553a-4429-a4e7-c4b3796c3a18");\r
+// UUID uuidLang = Language.uuidEnglish;\r
+// RankClass rankClass = RankClass.Infraspecific;\r
+// String stepName = "Add 'proles' rank to ranks";\r
+// TermType termType = TermType.Rank;\r
+// list.add( SingleTermUpdater.NewInstance(stepName, termType, uuidTerm, abbrev, description, label, abbrev, dtype, uuidVocabulary, uuidLang, isOrdered, uuidAfterTerm).setRankClass(rankClass));\r
+\r
+ //there are some more new vocabularies, but we trust that the term initializer will \r
+ //initialize and persist them correctly\r
+ \r
+ return list;\r
+ }\r
+ \r
+ @Override\r
+ public ITermUpdater getNextUpdater() {\r
+ return null;\r
+ }\r
+\r
+ @Override\r
+ public ITermUpdater getPreviousUpdater() {\r
+ return TermUpdater_31_33.NewInstance();\r
+ }\r
+\r
+}\r
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.database.update.v33_34;\r
+\r
+import java.sql.SQLException;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
+import eu.etaxonomy.cdm.database.DatabaseTypeEnum;\r
+import eu.etaxonomy.cdm.database.ICdmDataSource;\r
+import eu.etaxonomy.cdm.database.update.CaseType;\r
+import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep;\r
+import eu.etaxonomy.cdm.database.update.SchemaUpdaterStepBase;\r
+\r
+/**\r
+ * @author a.mueller\r
+ * @date 16.09.2010\r
+ *\r
+ */\r
+public class UsernameConstraintUpdater extends SchemaUpdaterStepBase<UsernameConstraintUpdater> implements ISchemaUpdaterStep {\r
+ private static final Logger logger = Logger.getLogger(UsernameConstraintUpdater.class);\r
+ \r
+ private String tableName;\r
+ \r
+ private String columnName;\r
+ \r
+ public static final UsernameConstraintUpdater NewInstance(String stepName, String tableName, String columnName){\r
+ return new UsernameConstraintUpdater(stepName, tableName, columnName);\r
+ }\r
+\r
+ \r
+ protected UsernameConstraintUpdater(String stepName, String tableName, String columnName) {\r
+ super(stepName);\r
+ this.tableName = tableName;\r
+ this.columnName = columnName;\r
+ }\r
+ \r
+\r
+ @Override\r
+ public Integer invoke(ICdmDataSource datasource, IProgressMonitor monitor, CaseType caseType) throws SQLException {\r
+ //remove 2-fold constraint\r
+ boolean result = removeExistingConstraint(datasource, caseType);\r
+ result &= createColumnConstraint(datasource, caseType);\r
+ result &= createUuidConstraint(datasource, caseType);\r
+ return result ? 1 : null;\r
+ }\r
+ \r
+ private boolean createUuidConstraint(ICdmDataSource datasource, CaseType caseType) {\r
+ try {\r
+ String updateQuery = getCreateQuery(datasource, caseType, tableName, "_UniqueKey", "uuid");\r
+ datasource.executeUpdate(updateQuery);\r
+ return true;\r
+ } catch (Exception e) {\r
+ logger.warn("Unique index for " + tableName + ".uuid could not be created");\r
+ return false;\r
+ }\r
+ }\r
+ \r
+ private boolean createColumnConstraint(ICdmDataSource datasource, CaseType caseType) {\r
+ try {\r
+ String updateQuery = getCreateQuery(datasource, caseType, tableName, columnName + "_", columnName);\r
+ datasource.executeUpdate(updateQuery);\r
+ return true;\r
+ } catch (Exception e) {\r
+ logger.warn("Unique index for username could not be created");\r
+ return false;\r
+ }\r
+ }\r
+ \r
+ private String getCreateQuery(ICdmDataSource datasource, CaseType caseType, String tableName, String constraintName, String columnName) {\r
+ DatabaseTypeEnum type = datasource.getDatabaseType();\r
+ String indexName = "_UniqueKey";\r
+ String updateQuery;\r
+ if (type.equals(DatabaseTypeEnum.MySQL)){\r
+ //Maybe MySQL also works with the below syntax. Did not check yet.\r
+ updateQuery = "ALTER TABLE @@"+ tableName + "@@ ADD UNIQUE INDEX " + constraintName + " ("+columnName+");";\r
+ }else if (type.equals(DatabaseTypeEnum.H2) || type.equals(DatabaseTypeEnum.PostgreSQL) || type.equals(DatabaseTypeEnum.SqlServer2005)){\r
+ updateQuery = "CREATE UNIQUE INDEX " + constraintName + " ON "+tableName+"(" + columnName + ")";\r
+ }else{\r
+ throw new IllegalArgumentException("Datasource type not supported: " + type.getName());\r
+ }\r
+ updateQuery = updateQuery.replace("@indexName", indexName);\r
+ updateQuery = caseType.replaceTableNames(updateQuery);\r
+ return updateQuery;\r
+ }\r
+\r
+\r
+ private boolean removeExistingConstraint(ICdmDataSource datasource, CaseType caseType) {\r
+ try {\r
+ DatabaseTypeEnum type = datasource.getDatabaseType();\r
+ String indexName = "_UniqueKey";\r
+ String updateQuery;\r
+ if (type.equals(DatabaseTypeEnum.MySQL)){\r
+ updateQuery = "ALTER TABLE @@" + tableName + "@@ DROP INDEX @indexName";\r
+ }else if (type.equals(DatabaseTypeEnum.H2)){\r
+ updateQuery = "ALTER TABLE @@" + tableName + "@@ DROP CONSTRAINT IF EXISTS @indexName";\r
+ }else if (type.equals(DatabaseTypeEnum.PostgreSQL)){\r
+ updateQuery = "ALTER TABLE @@" + tableName + "@@ DROP CONSTRAINT @indexName";\r
+ }else if (type.equals(DatabaseTypeEnum.SqlServer2005)){\r
+ //TODO\r
+ throw new RuntimeException("Remove index not yet supported for SQLServer");\r
+ }else{\r
+ throw new IllegalArgumentException("Datasource type not supported: " + type.getName());\r
+ }\r
+ updateQuery = updateQuery.replace("@indexName", indexName);\r
+ updateQuery = caseType.replaceTableNames(updateQuery);\r
+ datasource.executeUpdate(updateQuery);\r
+ return true;\r
+ } catch (Exception e) {\r
+ logger.warn("Old index could not be removed");\r
+ return false;\r
+ }\r
+ }\r
+\r
+\r
+}\r
FullTextSession fullTextSession = Search.getFullTextSession(getSession());\r
\r
for(Reference reference : list(null,null)) { // re-index all agents\r
- Hibernate.initialize(reference.getAuthorTeam());\r
+ Hibernate.initialize(reference.getAuthorship());\r
\r
if(reference.getType().equals(ReferenceType.Article)) {\r
Hibernate.initialize(((IArticle)reference).getInJournal());\r
Session session = getSession();\r
\r
Query query = session.createQuery("select " +\r
- "r.uuid, r.titleCache, ab.titleCache from " + type.getSimpleName() + " as r left outer join r.authorTeam as ab ");//"select uuid, titleCache from " + type.getSimpleName());\r
+ "r.uuid, r.titleCache, ab.titleCache from " + type.getSimpleName() + " as r left outer join r.authorship as ab ");//"select uuid, titleCache from " + type.getSimpleName());\r
\r
List<Object[]> result = query.list();\r
\r
<!-- Common Package -->\r
<mapping class="eu.etaxonomy.cdm.model.common.Annotation"/>\r
<mapping class="eu.etaxonomy.cdm.model.common.AnnotationType"/>\r
- <mapping class="eu.etaxonomy.cdm.model.metadata.CdmMetaData"/>\r
- <mapping class="eu.etaxonomy.cdm.model.metadata.CdmPreference"/>\r
<mapping class="eu.etaxonomy.cdm.model.common.Credit"/>\r
<mapping class="eu.etaxonomy.cdm.model.common.DefinedTerm"/>\r
<mapping class="eu.etaxonomy.cdm.model.common.DefinedTermBase"/>\r
<mapping class="eu.etaxonomy.cdm.model.common.Extension"/>\r
<mapping class="eu.etaxonomy.cdm.model.common.ExtensionType"/>\r
<mapping class="eu.etaxonomy.cdm.model.common.IdentifiableSource"/>\r
- <mapping class="eu.etaxonomy.cdm.model.description.DescriptionElementSource"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.common.Identifier"/>\r
<mapping class="eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl"/>\r
<mapping class="eu.etaxonomy.cdm.model.common.Group"/>\r
<mapping class="eu.etaxonomy.cdm.model.common.Language"/>\r
<mapping class="eu.etaxonomy.cdm.model.description.CommonTaxonName"/>\r
<mapping class="eu.etaxonomy.cdm.model.description.DescriptionBase"/>\r
<mapping class="eu.etaxonomy.cdm.model.description.DescriptionElementBase"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.description.DescriptionElementSource"/>\r
<mapping class="eu.etaxonomy.cdm.model.description.Distribution"/>\r
<mapping class="eu.etaxonomy.cdm.model.description.Feature"/>\r
<mapping class="eu.etaxonomy.cdm.model.description.FeatureNode"/>\r
<mapping class="eu.etaxonomy.cdm.model.media.MovieFile"/>\r
<mapping class="eu.etaxonomy.cdm.model.media.Rights"/>\r
<mapping class="eu.etaxonomy.cdm.model.media.RightsType"/>\r
+ <!-- Meta Data Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.metadata.CdmMetaData"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.metadata.CdmPreference"/>\r
<!-- Molecular Package -->\r
<mapping class="eu.etaxonomy.cdm.model.molecular.PhylogeneticTree"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.molecular.DnaQuality"/>\r
<mapping class="eu.etaxonomy.cdm.model.molecular.DnaSample"/>\r
<mapping class="eu.etaxonomy.cdm.model.molecular.Amplification"/>\r
<mapping class="eu.etaxonomy.cdm.model.molecular.Primer"/>\r
<mapping class="eu.etaxonomy.cdm.model.taxon.Classification"/>\r
<mapping class="eu.etaxonomy.cdm.model.taxon.TaxonRelationship"/>\r
<mapping class="eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType"/>\r
+ \r
+ <!-- Validation Package -->\r
+ <mapping class="eu.etaxonomy.cdm.model.validation.EntityValidationResult"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.validation.EntityConstraintViolation"/>\r
+ \r
<!-- View Package -->\r
- <mapping class="eu.etaxonomy.cdm.model.view.View"/>
<mapping class="eu.etaxonomy.cdm.model.view.AuditEvent"/>\r
\r
<!-- for filling caches -->\r
<!-- since hibernate 4 listeners are not handled via hibernate.cfg.xml anymore -->\r
<!-- http://stackoverflow.com/questions/8616146/eventlisteners-using-hibernate-4-0-with-spring-3-1-0-release\r
https://community.jboss.org/wiki/HibernateCoreMigrationGuide40 -->\r
-<!-- <event type="save-update"> -->\r
-<!-- <listener class="eu.etaxonomy.cdm.persistence.hibernate.CacheStrategyGenerator"/> -->\r
-<!-- <listener class="org.hibernate.event.def.DefaultSaveOrUpdateEventListener"/> -->\r
-<!-- <listener class="eu.etaxonomy.cdm.persistence.hibernate.SaveOrUpdateEntityListener"/> -->\r
-<!-- </event> -->\r
-<!-- <event type="save"> -->\r
-<!-- <listener class="eu.etaxonomy.cdm.persistence.hibernate.CacheStrategyGenerator"/> -->\r
-<!-- <listener class="eu.etaxonomy.cdm.persistence.hibernate.SaveEntityListener"/> -->\r
-<!-- <listener class="org.hibernate.event.def.DefaultSaveEventListener"/> -->
-<!-- </event> -->\r
-<!-- <event type="update"> -->\r
-<!-- <listener class="eu.etaxonomy.cdm.persistence.hibernate.CacheStrategyGenerator"/> -->\r
-<!-- <listener class="eu.etaxonomy.cdm.persistence.hibernate.UpdateEntityListener"/> -->\r
-<!-- <listener class="org.hibernate.event.def.DefaultUpdateEventListener"/> -->\r
-<!-- </event> -->\r
-<!-- <event type="delete"> -->\r
-<!-- <listener class="eu.etaxonomy.cdm.persistence.hibernate.CdmDeleteListener"/> -->\r
-<!-- <listener class="org.hibernate.event.def.DefaultDeleteEventListener"/> -->\r
-<!-- </event> -->\r
-<!-- <event type="post-insert"> -->\r
-<!-- <listener class="org.hibernate.envers.event.AuditEventListener"/> -->\r
-<!-- <listener class="eu.etaxonomy.cdm.persistence.hibernate.CdmPostDataChangeObservableListener"/> -->\r
-<!-- </event> -->\r
-<!-- <event type="post-load"> -->\r
-<!-- <listener class="eu.etaxonomy.cdm.persistence.hibernate.CdmPostDataChangeObservableListener"/> -->\r
-<!-- </event> -->\r
-<!-- <event type="post-update"> -->\r
-<!-- <listener class="org.hibernate.envers.event.AuditEventListener"/> -->\r
-<!-- <listener class="eu.etaxonomy.cdm.persistence.hibernate.CdmPostDataChangeObservableListener"/> -->\r
-<!-- </event> -->\r
-<!-- <event type="post-delete"> -->\r
-<!-- <listener class="org.hibernate.envers.event.AuditEventListener"/> -->\r
-<!-- <listener class="eu.etaxonomy.cdm.persistence.hibernate.CdmPostDataChangeObservableListener"/> -->\r
-<!-- </event> -->\r
-<!-- <event type="pre-collection-update"> -->\r
-<!-- <listener class="org.hibernate.envers.event.AuditEventListener"/> -->\r
-<!-- </event> -->\r
-<!-- <event type="pre-collection-remove"> -->\r
-<!-- <listener class="org.hibernate.envers.event.AuditEventListener"/> -->\r
-<!-- </event> -->\r
-<!-- <event type="post-collection-recreate"> -->\r
-<!-- <listener class="org.hibernate.envers.event.AuditEventListener"/> -->\r
-<!-- </event> -->\r
+\r
</session-factory>\r
</hibernate-configuration>
\ No newline at end of file
/**\r
- * \r
+ *\r
*/\r
package eu.etaxonomy.cdm.datagenerator;\r
\r
import eu.etaxonomy.cdm.strategy.parser.TimePeriodParser;\r
\r
/**\r
- * This class tries to create a database that has \r
+ * This class tries to create a database that has\r
* at least one record in each database.\r
* It is meant to test update scripts as well as imports\r
* and exports.\r
- * ATTENTION: As the content of the created database may change \r
+ * ATTENTION: As the content of the created database may change\r
* over time due to model changes and other requirements test using\r
- * this class should be written in a way that they do rather \r
- * depend on general parameter than concrete data values. \r
- * \r
+ * this class should be written in a way that they do rather\r
+ * depend on general parameter than concrete data values.\r
+ *\r
* @author a.mueller\r
* @created 3013-12-02\r
- * \r
+ *\r
* TODO under construction\r
- * \r
+ *\r
*/\r
public class FullCoverageDataGenerator {\r
\r
- \r
+\r
public void fillWithData(Session session){\r
- List<CdmBase> cdmBases = new ArrayList<CdmBase>(); \r
- \r
+ List<CdmBase> cdmBases = new ArrayList<CdmBase>();\r
+\r
createAgents(cdmBases);\r
- \r
+\r
createDescriptions(cdmBases);\r
- \r
+\r
createMedia(cdmBases);\r
- \r
+\r
createMolecular(cdmBases);\r
- \r
+\r
createTaxonName(cdmBases);\r
- \r
+\r
createOccurrence(cdmBases);\r
- \r
+\r
createReference(cdmBases);\r
- \r
+\r
createTaxon(cdmBases);\r
- \r
+\r
createSupplemental(cdmBases);\r
\r
for (CdmBase cdmBase: cdmBases){\r
person.setLifespan(TimePeriodParser.parseString("1905-1995"));\r
person.setPrefix("prefix");\r
person.setSuffix("suffix");\r
- \r
+\r
handleIdentifiableEntity(person);\r
- \r
+\r
//Contact\r
Contact contact = Contact.NewInstance();\r
person.setContact(contact);\r
contact.addEmailAddress("a@b.de");\r
contact.addFaxNumber("f:010-123456");\r
contact.addPhoneNumber("p:090-987654");\r
- contact.addUrl(URI.create("http://www.abc.de").toString());\r
- \r
+ contact.addUrl(URI.create("http://www.abc.de"));\r
+\r
//Address\r
Address address = Address.NewInstance(Country.GERMANY(), "locality", "pobox", "12345", "region", "street", locality);\r
contact.addAddress(address);\r
- \r
+\r
//Team\r
Team team = Team.NewTitledInstance("Team title", "Team abbrev title");\r
team.addTeamMember(person);\r
handleIdentifiableEntity(team);\r
- \r
- \r
+\r
+\r
//Institution\r
Institution institution = Institution.NewInstance();\r
institution.setCode("institution code");\r
institution.setName("institution name");\r
handleIdentifiableEntity(institution);\r
- \r
- \r
+\r
+\r
//TODO vocabulary\r
// voc = "29ad808b-3126-4274-be81-4561e7afc76f"\r
DefinedTerm instType = DefinedTerm.NewInstitutionTypeInstance("Description forthis instition type", "institution type", "inst. t.");\r
cdmBases.add(instType);\r
institution.addType(instType);\r
person.addInstitutionalMembership(institution, TimePeriodParser.parseString("1955-1956"), "department", "role");\r
- \r
+\r
Institution subInstitution = Institution.NewInstance();\r
subInstitution.setCode("sub institution code");\r
subInstitution.setName("sub institution name");\r
subInstitution.setIsPartOf(institution);\r
- \r
+\r
cdmBases.add(person);\r
cdmBases.add(team);\r
cdmBases.add(institution);\r
}\r
- \r
+\r
\r
private void createDescriptions(List<CdmBase> cdmBases) {\r
- \r
+\r
TermVocabulary voc = TermVocabulary.NewInstance(TermType.AnnotationType, "my termVoc desc",\r
"myTerm voc", "mtv", URI.create("http://www.abc.de"));\r
handleIdentifiableEntity(voc);\r
StateData stateData = categoricalData.getStateData().get(0);\r
stateData.addModifier(DefinedTerm.SEX_FEMALE());\r
handleAnnotatableEntity(categoricalData);\r
- \r
- \r
+\r
+\r
State nextState = State.NewInstance();\r
cdmBases.add(nextState);\r
StateData stateData2 = StateData.NewInstance(nextState);\r
stateData2.putModifyingText(Language.ENGLISH(), "State2 modifying text");\r
categoricalData.addStateData(stateData2);\r
categoricalData.setOrderRelevant(true);\r
- \r
+\r
//Quantitative data\r
Feature leaveLength = Feature.NewInstance("Leave length description", "leave length", "l.l.");\r
cdmBases.add(leaveLength);\r
\r
CommonTaxonName commonTaxonName = CommonTaxonName.NewInstance("common name", Language.ENGLISH(), Country.UNITEDSTATESOFAMERICA());\r
handleAnnotatableEntity(commonTaxonName);\r
- \r
+\r
TextData textData = TextData.NewInstance(Feature.DIAGNOSIS());\r
Language eng = Language.ENGLISH();\r
textData.putText(eng, "My text data");\r
textData.setFormat(format);\r
cdmBases.add(format);\r
handleAnnotatableEntity(format);\r
- \r
+\r
DerivedUnit specimen = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);\r
IndividualsAssociation indAssoc = IndividualsAssociation.NewInstance(specimen);\r
indAssoc.putDescription(Language.ENGLISH(), "description for individuals association");\r
handleAnnotatableEntity(indAssoc);\r
- \r
- \r
+\r
+\r
TaxonInteraction taxonInteraction = TaxonInteraction.NewInstance(Feature.HOSTPLANT());\r
taxonInteraction.putDescription(Language.ENGLISH(), "interaction description");\r
handleAnnotatableEntity(taxonInteraction);\r
- \r
+\r
NamedArea inCountryArea = NamedArea.NewInstance("My area in a country", "my area", "ma");\r
inCountryArea.addCountry(Country.TURKEYREPUBLICOF());\r
cdmBases.add(inCountryArea);\r
\r
Taxon taxon = getTaxon();\r
TaxonDescription taxonDescription = TaxonDescription.NewInstance(taxon);\r
- taxonDescription.addElements(categoricalData, quantitativeData, \r
+ taxonDescription.addElements(categoricalData, quantitativeData,\r
textData, commonTaxonName, taxonInteraction, indAssoc, distribution);\r
- \r
- DerivedUnit describedSpecimenOrObservation = DerivedUnit.NewInstance(SpecimenOrObservationType.DerivedUnit); \r
+\r
+ DerivedUnit describedSpecimenOrObservation = DerivedUnit.NewInstance(SpecimenOrObservationType.DerivedUnit);\r
taxonDescription.setDescribedSpecimenOrObservation(describedSpecimenOrObservation);\r
- \r
+\r
taxonDescription.addScope(DefinedTerm.SEX_FEMALE());\r
taxonDescription.addGeoScope(Country.GERMANY());\r
handleIdentifiableEntity(taxonDescription);\r
SpecimenDescription specDesc = SpecimenDescription.NewInstance(specimen);\r
cdmBases.add(describedSpecimen);\r
handleAnnotatableEntity(specDesc);\r
- \r
+\r
//Name description\r
TaxonNameBase<?,?> name = BotanicalName.NewInstance(Rank.GENUS());\r
TaxonNameDescription nameDesc = TaxonNameDescription.NewInstance(name);\r
cdmBases.add(name);\r
handleAnnotatableEntity(nameDesc);\r
- \r
- \r
+\r
+\r
//Feature Tree\r
FeatureTree featureTree = FeatureTree.NewInstance();\r
// featureTree\r
workingSet.setLabel("My Workingset");\r
workingSet.getDescriptiveSystem();\r
handleAnnotatableEntity(workingSet);\r
- \r
- \r
+\r
+\r
//polytomous keys\r
Taxon coveredTaxon = Taxon.NewInstance(name, null);\r
PolytomousKey key = PolytomousKey.NewTitledInstance("My Polykey");\r
handleIdentificationKey(key, taxon, coveredTaxon);\r
key.setStartNumber(10);\r
- \r
- \r
+\r
+\r
PolytomousKeyNode firstChildNode = PolytomousKeyNode.NewInstance("Green", "What is the leave length?", coveredTaxon, leaveLength);\r
key.getRoot().addChild(firstChildNode);\r
PolytomousKeyNode secondChildNode = PolytomousKeyNode.NewInstance("234");\r
firstChildNode.addChild(secondChildNode);\r
- \r
+\r
PolytomousKey subkey = PolytomousKey.NewTitledInstance("Sub-key");\r
firstChildNode.setSubkey(subkey);\r
- \r
+\r
PolytomousKeyNode subKeyNode = PolytomousKeyNode.NewInstance("sub key couplet");\r
subkey.getRoot().addChild(subKeyNode);\r
secondChildNode.setOtherNode(subKeyNode);\r
- \r
+\r
secondChildNode.putModifyingText(Language.GERMAN(), "manchmal");\r
- \r
+\r
cdmBases.add(key);\r
cdmBases.add(subkey);\r
- \r
+\r
MediaKey mediaKey = MediaKey.NewInstance();\r
mediaKey.addKeyRepresentation(Representation.NewInstance("Media Key Representation", "media key", null, Language.ENGLISH()));\r
handleIdentificationKey(mediaKey, taxon, coveredTaxon);\r
- \r
+\r
MultiAccessKey multiAccessKey = MultiAccessKey.NewInstance();\r
handleIdentificationKey(multiAccessKey, taxon, coveredTaxon);\r
- \r
+\r
cdmBases.add(mediaKey);\r
cdmBases.add(multiAccessKey);\r
- \r
+\r
}\r
\r
\r
}else{\r
handleAnnotatableEntity((AnnotatableEntity)key);\r
}\r
- \r
+\r
\r
}\r
- \r
- \r
+\r
+\r
private void createMedia(List<CdmBase> cdmBases){\r
AudioFile audioFile = AudioFile.NewInstance(URI.create("http://a.b.de"), 22);\r
ImageFile imageFile = ImageFile.NewInstance(URI.create("http://b.c.de"), 44, 467, 55);\r
MovieFile movieFile = MovieFile.NewInstance(URI.create("http://b.c.de"), 67);\r
- MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance("mime", "media"); \r
- \r
+ MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance("mime", "media");\r
+\r
mediaRepresentation.addRepresentationPart(movieFile);\r
mediaRepresentation.addRepresentationPart(imageFile);\r
mediaRepresentation.addRepresentationPart(audioFile);\r
Media media = Media.NewInstance();\r
media.addRepresentation(mediaRepresentation);\r
- \r
+\r
media.putTitle(Language.ENGLISH(), "Media title");\r
media.setMediaCreated(DateTime.now());\r
media.putDescription(Language.ENGLISH(), "Media description");\r
handleIdentifiableEntity(media);\r
- \r
- \r
+\r
+\r
Person artist = Person.NewTitledInstance("artist");\r
media.setArtist(artist);\r
cdmBases.add(media);\r
cdmBases.add(artist);\r
}\r
- \r
+\r
\r
private void createMolecular(List<CdmBase> cdmBases) {\r
DnaSample dnaSample = DnaSample.NewInstance();\r
- \r
+\r
//Amplification\r
Amplification amplification = Amplification.NewInstance(dnaSample);\r
DefinedTerm dnaMarker = DefinedTerm.NewDnaMarkerInstance("My dna marker", "dna marker", null);\r
amplification.setSuccessful(true);\r
amplification.setSuccessText("Very successful");\r
handleAnnotatableEntity(amplification);\r
- \r
+\r
Primer forwardPrimer = Primer.NewInstance("forward primer");\r
forwardPrimer.setPublishedIn(getReference());\r
- forwardPrimer.setSequence(Sequence.NewInstance("my sequence"));\r
+ forwardPrimer.setSequence(SequenceString.NewInstance("my sequence"));\r
handleAnnotatableEntity(forwardPrimer);\r
- \r
+\r
Primer reversePrimer = Primer.NewInstance("reverse primer");\r
handleAnnotatableEntity(reversePrimer);\r
- \r
+\r
amplification.setForwardPrimer(forwardPrimer);\r
amplification.setReversePrimer(reversePrimer);\r
- \r
+\r
DefinedTerm cloningMethod = DefinedTerm.NewInstance(TermType.MaterialOrMethod, "cloning method", "cloning method", null);\r
cdmBases.add(cloningMethod);\r
Cloning cloning = Cloning.NewInstance(cloningMethod, "My cloning method", "my strain", forwardPrimer, reversePrimer);\r
amplification.setCloning(cloning);\r
handleAnnotatableEntity(cloningMethod);\r
handleAnnotatableEntity(cloning);\r
- \r
+\r
DefinedTerm purificationMethod = DefinedTerm.NewInstance(TermType.MaterialOrMethod, "purification method", "purification method", null);\r
cdmBases.add(purificationMethod);\r
MaterialOrMethodEvent purification = MaterialOrMethodEvent.NewInstance(purificationMethod, "purification method");\r
amplification.setPurification(purification);\r
handleAnnotatableEntity(purification);\r
handleAnnotatableEntity(purificationMethod);\r
- \r
+\r
amplification.setLadderUsed("ladder");\r
amplification.setElectrophoresisVoltage(5.5);\r
amplification.setGelConcentration(2.4);\r
amplification.setGelRunningTime(3.6);\r
Media gelPhoto = Media.NewInstance();\r
amplification.setGelPhoto(gelPhoto);\r
- \r
- \r
+\r
+\r
//SingleRead\r
SingleRead singleRead = SingleRead.NewInstance();\r
handleAnnotatableEntity(singleRead);\r
MaterialOrMethodEvent readMethod = MaterialOrMethodEvent.NewInstance(null, "read method");\r
singleRead.setMaterialOrMethod(readMethod);\r
handleAnnotatableEntity(readMethod);\r
- \r
+\r
Media pherogram = Media.NewInstance();\r
singleRead.setPherogram(pherogram);\r
- \r
+\r
singleRead.setPrimer(forwardPrimer);\r
singleRead.setSequence(SequenceString.NewInstance("ABTC"));\r
singleRead.setDirection(SequenceDirection.Forward);\r
- \r
+\r
//Seuqence\r
Sequence sequence = Sequence.NewInstance("ADDT");\r
dnaSample.addSequence(sequence);\r
Reference<?> sequenceCitation = getReference();\r
sequence.addCitation(sequenceCitation);\r
handleAnnotatableEntity(sequence);\r
- \r
+\r
//Phylogenetic Tree\r
PhylogeneticTree phyloTree = PhylogeneticTree.NewInstance();\r
phyloTree.addUsedSequences(sequence);\r
handleIdentifiableEntity(phyloTree);\r
- \r
- \r
+\r
+\r
cdmBases.add(dnaSample);\r
cdmBases.add(phyloTree);\r
}\r
handleAnnotatableEntity(synRel);\r
handleIdentifiableEntity(syn);\r
\r
- \r
+\r
Taxon concept = Taxon.NewInstance(name, getReference());\r
- TaxonRelationship taxRel = taxon.addTaxonRelation(concept, TaxonRelationshipType.CONGRUENT_TO(), \r
+ TaxonRelationship taxRel = taxon.addTaxonRelation(concept, TaxonRelationshipType.CONGRUENT_TO(),\r
sec, "444");\r
taxon.setTaxonStatusUnknown(true);\r
taxon.setUnplaced(true);\r
taxon.setExcluded(true);\r
handleAnnotatableEntity(taxRel);\r
\r
- \r
+\r
//Classification\r
Classification classification = Classification.NewInstance("My classification", sec);\r
TaxonNode node = classification.addChildTaxon(taxon, sec,"22");\r
\r
Taxon childTaxon = Taxon.NewInstance(synName, sec);\r
node.addChildTaxon(childTaxon, sec, "44");\r
- \r
+\r
cdmBases.add(taxon);\r
cdmBases.add(concept);\r
cdmBases.add(childTaxon);\r
cdmBases.add(classification);\r
- \r
- \r
+\r
+\r
}\r
\r
\r
private void createReference(List<CdmBase> cdmBases) {\r
Reference<?> reference = ReferenceFactory.newArticle();\r
Person author = Person.NewTitledInstance("Author team");\r
- reference.setAuthorTeam(author);\r
+ reference.setAuthorship(author);\r
reference.setTitle("ref title");\r
reference.setAbbrevTitle("abbrev title");\r
reference.setDatePublished(TimePeriodParser.parseString("1999"));\r
reference.setSeriesPart("seriesPart");\r
reference.setVolume("vol. 3");\r
reference.setUri(URI.create("http://rer.abc.de"));\r
- \r
+\r
Reference<?> journal = ReferenceFactory.newJournal();\r
reference.setInJournal(journal);\r
- \r
+\r
handleIdentifiableEntity(reference);\r
\r
cdmBases.add(reference);\r
- \r
+\r
}\r
\r
\r
subCollection.setSuperCollection(collection);\r
handleIdentifiableEntity(collection);\r
handleIdentifiableEntity(subCollection);\r
- \r
- \r
+\r
+\r
collection.setCode("coll code");\r
collection.setCodeStandard("codeStandard");\r
collection.setName("coll name");\r
collection.setTownOrLocation("townOrLocation");\r
Institution institution = Institution.NewInstance();\r
collection.setInstitute(institution);\r
- \r
+\r
//FieldUnit\r
FieldUnit fieldUnit = FieldUnit.NewInstance();\r
fieldUnit.setFieldNumber("fieldNumber");\r
GatheringEvent gatheringEvent = GatheringEvent.NewInstance();\r
fieldUnit.setGatheringEvent(gatheringEvent);\r
gatheringEvent.putLocality(Language.ENGLISH(), "locality");\r
- gatheringEvent.setExactLocation(Point.NewInstance(22.4, -34.2, \r
+ gatheringEvent.setExactLocation(Point.NewInstance(22.4, -34.2,\r
ReferenceSystem.WGS84(), 33));\r
gatheringEvent.setCountry(Country.GERMANY());\r
gatheringEvent.addCollectingArea(NamedArea.EUROPE());\r
gatheringEvent.setAbsoluteElevation(10);\r
gatheringEvent.setAbsoluteElevationMax(100);\r
gatheringEvent.setAbsoluteElevationText("elevation text");\r
- \r
+\r
gatheringEvent.setDistanceToGround(10.4);\r
gatheringEvent.setDistanceToGroundMax(100.3);\r
gatheringEvent.setDistanceToGroundText("distance to ground text");\r
gatheringEvent.setDistanceToWaterSurfaceText("distance to water text");\r
handleAnnotatableEntity(gatheringEvent);\r
\r
- \r
+\r
//Derived Unit\r
MediaSpecimen mediaSpecimen = MediaSpecimen.NewInstance(SpecimenOrObservationType.StillImage);\r
mediaSpecimen.setCollection(collection);\r
event.addDerivative(mediaSpecimen);\r
handleAnnotatableEntity(event);\r
\r
- \r
+\r
//SpecOrObservationBase\r
fieldUnit.setSex(DefinedTerm.SEX_FEMALE());\r
DefinedTerm lifeStage = DefinedTerm.NewStageInstance("Live stage", "stage", null);\r
bacName.setSubGenusAuthorship("sub Genus author");\r
bacName.setNameApprobation("nameApprobation");\r
handleIdentifiableEntity(bacName);\r
- \r
+\r
CultivarPlantName botName = CultivarPlantName.NewInstance(Rank.SUBSPECIES());\r
botName.setAnamorphic(true);\r
botName.setCultivarName("cultivarName");\r
BotanicalName botName2 = BotanicalName.NewInstance(Rank.SPECIES());\r
HybridRelationship hybridRel = botName2.addHybridChild(botName, HybridRelationshipType.FIRST_PARENT(), "Rule 1.2.3");\r
handleAnnotatableEntity(hybridRel);\r
- \r
+\r
ZoologicalName zooName = ZoologicalName.NewInstance(Rank.GENUS());\r
zooName.setBreed("breed");\r
zooName.setPublicationYear(1922);\r
viralName.setAcronym("acronym");\r
handleIdentifiableEntity(viralName);\r
\r
- \r
+\r
cdmBases.add(bacName);\r
cdmBases.add(botName);\r
cdmBases.add(viralName);\r
cdmBases.add(zooName);\r
}\r
- \r
+\r
private void handleAnnotatableEntity(AnnotatableEntity entity){\r
Annotation annotation = Annotation.NewDefaultLanguageInstance("annotation");\r
entity.addAnnotation(annotation);\r
Marker marker = Marker.NewInstance(MarkerType.COMPLETE(), true);\r
entity.addMarker(marker);\r
}\r
- \r
+\r
private void handleIdentifiableEntity(IdentifiableEntity<?> identifiableEntity){\r
handleAnnotatableEntity(identifiableEntity);\r
- \r
+\r
//Credits\r
Person creditor = Person.NewTitledInstance("Creditor");\r
Credit credit = Credit.NewInstance(creditor, "credit");\r
identifiableEntity.addCredit(credit);\r
- \r
+\r
//Extension\r
Extension.NewInstance(identifiableEntity, "extension", ExtensionType.INFORMAL_CATEGORY());\r
- \r
+\r
//Rights\r
Rights rights = Rights.NewInstance("right", Language.ENGLISH());\r
rights.setUri(URI.create("http://rights.abc.de"));\r
Person owner = Person.NewTitledInstance("Owner");\r
rights.setAgent(owner);\r
identifiableEntity.addRights(rights);\r
- \r
+\r
if (identifiableEntity.isInstanceOf(IdentifiableMediaEntity.class)){\r
Media media = Media.NewInstance(URI.create("http://www.identifiableMedia.de"), 22, "img/jpg", "jpg");\r
((IdentifiableMediaEntity<?>)identifiableEntity).addMedia(media);\r
}\r
- \r
+\r
//source\r
- IdentifiableSource source = identifiableEntity.addSource(OriginalSourceType.Import, "id", "idNamespace", \r
+ IdentifiableSource source = identifiableEntity.addSource(OriginalSourceType.Import, "id", "idNamespace",\r
getReference(), "123");\r
source.setOriginalNameString("original name");\r
- \r
+\r
//LSID\r
try {\r
LSID lsid = new LSID("urn:lsid:a.b.de:namespace:1234");\r
} catch (MalformedLSIDException e) {\r
e.printStackTrace();\r
}\r
- \r
- \r
+\r
+\r
}\r
\r
\r
result.setTitle("some generic reference");\r
return result;\r
}\r
- \r
- \r
+\r
+\r
private DerivedUnit getSpecimen() {\r
DerivedUnit derivedUnit = DerivedUnit.NewPreservedSpecimenInstance();\r
return derivedUnit;\r
}\r
- \r
+\r
\r
\r
private Taxon getTaxon() {\r
TaxonNameBase<?,?> name = BotanicalName.NewInstance(Rank.GENUS());\r
Taxon taxon = Taxon.NewInstance(name, sec);\r
return taxon;\r
- \r
+\r
}\r
}\r
\r
import static org.junit.Assert.assertEquals;\r
\r
+import java.net.URI;\r
import java.util.ArrayList;\r
import java.util.Arrays;\r
import java.util.List;\r
Person author = Person.NewInstance();\r
author.setTitleCache("Author", true);\r
ref1.addAnnotation(Annotation.NewInstance("A1", Language.DEFAULT()));\r
- ref1.setAuthorTeam(author);\r
+ ref1.setAuthorship(author);\r
name.setBasionymAuthorTeam(author);\r
\r
name.setNomenclaturalReference(ref1);\r
article1.addMedia(media1);\r
article2.addMedia(media2);\r
\r
-// ref1.setAuthorTeam(author);\r
+// ref1.setAuthorship(author);\r
// name1.setBasionymAuthorTeam(author);\r
\r
name1.setNomenclaturalReference(article1);\r
\r
team1.setNomenclaturalTitle("T.1");\r
String street1 = "Strasse1";\r
- team1.setContact(Contact.NewInstance(street1, "12345", "Berlin", Country.ARGENTINAARGENTINEREPUBLIC(),"pobox" , "Region", "a@b.de", "f12345", "+49-30-123456", "www.abc.de", Point.NewInstance(2.4, 3.2, ReferenceSystem.WGS84(), 3)));\r
+ team1.setContact(Contact.NewInstance(street1, "12345", "Berlin", Country.ARGENTINAARGENTINEREPUBLIC(),"pobox" , "Region", "a@b.de", "f12345", "+49-30-123456", URI.create("www.abc.de"), Point.NewInstance(2.4, 3.2, ReferenceSystem.WGS84(), 3)));\r
team2.setContact(Contact.NewInstance("Street2", null, "London", null, null, null, null, "874599873", null, null, null));\r
String street3 = "Street3";\r
team2.addAddress(street3, null, null, null, null, null, Point.NewInstance(1.1, 2.2, null, 4));\r
team3.addTeamMember(person3);\r
team3.addEmailAddress("emailAddress3");\r
\r
- book1.setAuthorTeam(team2);\r
- book2.setAuthorTeam(team3);\r
+ book1.setAuthorship(team2);\r
+ book2.setAuthorship(team3);\r
\r
Credit credit1 = Credit.NewInstance(team3, "credit1");\r
book2.addCredit(credit1);\r
\r
cdmGenericDao.merge(team2, team3, null);\r
\r
- Assert.assertSame("Author of book1 must be team2.", team2, book1.getAuthorTeam());\r
- Assert.assertSame("Author of book2 must be team2.", team2, book2.getAuthorTeam());\r
+ Assert.assertSame("Author of book1 must be team2.", team2, book1.getAuthorship());\r
+ Assert.assertSame("Author of book2 must be team2.", team2, book2.getAuthorship());\r
Assert.assertSame("Agent of credit1 must be team2.", team2, credit1.getAgent());\r
\r
Assert.assertEquals("Team2 must have 3 persons as members.",3, team2.getTeamMembers().size());\r
// matchResult = cdmGenericDao.findMatching(book3, matchStrategy);\r
// Assert.assertEquals("Resultlist must have 2 entries", 2, matchResult.size());\r
\r
- book1.setAuthorTeam(person1);\r
- book2.setAuthorTeam(person1);\r
- book3.setAuthorTeam(person1);\r
+ book1.setAuthorship(person1);\r
+ book2.setAuthorship(person1);\r
+ book3.setAuthorship(person1);\r
\r
boolean m = matchStrategy.invoke(book1, book3);\r
boolean m2 = matchStrategy.invoke(book2, book3);\r
matchResult = cdmGenericDao.findMatching(book3, matchStrategy);\r
Assert.assertEquals("Resultlist must have 2 entries", 2, matchResult.size());\r
\r
- book2.setAuthorTeam(person2);\r
- book3.setAuthorTeam(person3);\r
+ book2.setAuthorship(person2);\r
+ book3.setAuthorship(person3);\r
matchResult = cdmGenericDao.findMatching(book3, null);\r
Assert.assertEquals("Resultlist must have no entries", 0, matchResult.size());\r
\r
\r
book1.setTitle("Title1");\r
book1.setEdition("Edition1");\r
- book1.setAuthorTeam(team1);\r
+ book1.setAuthorship(team1);\r
\r
\r
IBook book2 = (IBook) ((Reference)book1).clone();\r
boolean teamsMatch = teamMatcher.invoke(team1, team2);\r
Assert.assertTrue("Team1 and team2 should match" ,teamsMatch);\r
\r
- book3.setAuthorTeam(team2);\r
+ book3.setAuthorship(team2);\r
matchResult = cdmGenericDao.findMatching(book3, matchStrategy);\r
Assert.assertEquals("Resultlist must have 1 entries", 1, matchResult.size());\r
Assert.assertTrue("Resultlist must contain book 1", matchResult.contains(book1));\r
\r
- book3.setAuthorTeam(null);\r
+ book3.setAuthorship(null);\r
matchResult = cdmGenericDao.findMatching(book3, matchStrategy);\r
Assert.assertEquals("Resultlist must have 1 entries", 1, matchResult.size());\r
Assert.assertTrue("Resultlist must contain book 1", matchResult.contains(book1));\r
teamsMatch = teamMatcher.invoke(team1, team2);\r
Assert.assertFalse("Team1 and team2 should not match" ,teamsMatch);\r
\r
- book3.setAuthorTeam(team1);\r
- book2.setAuthorTeam(team2);\r
+ book3.setAuthorship(team1);\r
+ book2.setAuthorship(team2);\r
matchResult = cdmGenericDao.findMatching(book3, matchStrategy);\r
Assert.assertEquals("Resultlist must have 1 entries", 1, matchResult.size());\r
Assert.assertTrue("Resultlist must contain book 1", matchResult.contains(book1));\r
package eu.etaxonomy.cdm.persistence.dao.hibernate.occurrence;\r
\r
-import static org.junit.Assert.*;\r
-\r
+import org.h2.util.StringUtils;\r
+import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.BeforeClass;\r
import org.junit.Test;\r
+import org.unitils.spring.annotation.SpringBeanByType;\r
\r
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;\r
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;\r
+import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;\r
import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;\r
\r
public class OccurrenceDaoHibernateImplTest extends CdmIntegrationTest {\r
\r
+ @SpringBeanByType\r
+ private IOccurrenceDao dao;\r
+ \r
+ \r
@BeforeClass\r
public static void setUpBeforeClass() throws Exception {\r
}\r
public void testListByAnyAssociation() {\r
logger.warn("Not yet implemented");\r
}\r
+ \r
+ @Test\r
+ public void testSaveOriginalLabelData(){\r
+ DerivedUnit unit = DerivedUnit.NewInstance(SpecimenOrObservationType.DerivedUnit);\r
+ String originalLabelInfo = StringUtils.pad("my original info", 10000, "x", false);\r
+ Assert.assertEquals(Integer.valueOf(10000), (Integer)originalLabelInfo.length());\r
+ unit.setOriginalLabelInfo(originalLabelInfo);\r
+ //test that lob is supported\r
+ dao.save(unit);\r
+ //assert no exception\r
+ }\r
\r
}\r
journal1.setTitle("My journal");\r
journal1.setUuid(UUID.fromString("a7fdf3b8-acd8-410a-afcd-1768d29d67e9"));\r
journal1.setAbbrevTitle("M. Journ.");\r
- journal1.setAuthorTeam(journalAuthor);\r
+ journal1.setAuthorship(journalAuthor);\r
\r
referenceDao.save((Reference<?>)journal1);\r
\r
article1.setVolume("1");\r
article1.setDatePublished(TimePeriod.NewInstance(1972));\r
article1.setInJournal(journal1);\r
- article1.setAuthorTeam(articleAuthor);\r
+ article1.setAuthorship(articleAuthor);\r
article1.getAbbrevTitleCache();\r
\r
referenceDao.saveOrUpdate((Reference<?>)article1);\r
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.AGENTBASE_IDENTIFIER(
+ AGENTBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.AGENTBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ AGENTBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.AGENTBASE_MARKER(
AGENTBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
PROTECTEDTITLECACHE BOOLEAN NOT NULL,
TITLECACHE VARCHAR(255),
MICROREFERENCE VARCHAR(255),
+ TIMEPERIOD_START VARCHAR(255),
+ TIMEPERIOD_FREETEXT VARCHAR(255),
+ TIMEPERIOD_END VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
NAME_ID INTEGER,
PROTECTEDTITLECACHE BOOLEAN,
TITLECACHE VARCHAR(255),
MICROREFERENCE VARCHAR(255),
+ TIMEPERIOD_START VARCHAR(255),
+ TIMEPERIOD_FREETEXT VARCHAR(255),
+ TIMEPERIOD_END VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
NAME_ID INTEGER,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_CREDIT_AUD;
+
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_DESCRIPTION(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ DESCRIPTION_ID INTEGER NOT NULL,
+ DESCRIPTION_MAPKEY_ID INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_DESCRIPTION;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_DESCRIPTION_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ DESCRIPTION_ID INTEGER NOT NULL,
+ DESCRIPTION_MAPKEY_ID INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_DESCRIPTION_AUD;
+
CREATE CACHED TABLE PUBLIC.CLASSIFICATION_EXTENSION(
CLASSIFICATION_ID INTEGER NOT NULL,
EXTENSIONS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_GEOSCOPE(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ GEOSCOPES_ID INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_GEOSCOPE;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_GEOSCOPE_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ GEOSCOPES_ID INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_GEOSCOPE_AUD;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_IDENTIFIER(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.CLASSIFICATION_MARKER(
CLASSIFICATION_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.COLLECTION_IDENTIFIER(
+ COLLECTION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.COLLECTION_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ COLLECTION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.COLLECTION_MARKER(
COLLECTION_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_IDENTIFIER(
+ DEFINEDTERMBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ DEFINEDTERMBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_MARKER(
DEFINEDTERMBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_IDENTIFIER(
+ DESCRIPTIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ DESCRIPTIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_FEATURE(
DESCRIPTIONBASE_ID INTEGER NOT NULL,
DESCRIPTIVESYSTEM_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DETERMINATIONEVENT_REFERENCE_AUD;
+CREATE CACHED TABLE PUBLIC.DNAQUALITY(
+ ID INTEGER NOT NULL,
+ CREATED TIMESTAMP,
+ UUID VARCHAR(36) NOT NULL,
+ UPDATED TIMESTAMP,
+ PURIFICATIONMETHOD VARCHAR(255),
+ RATIOOFABSORBANCE260_230 DOUBLE,
+ RATIOOFABSORBANCE260_280 DOUBLE,
+ QUALITYCHECKDATE TIMESTAMP,
+ CONCENTRATION DOUBLE,
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CONCENTRATIONUNIT_ID INTEGER,
+ QUALITYTERM_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DNAQUALITY;
+CREATE CACHED TABLE PUBLIC.DNAQUALITY_AUD(
+ ID INTEGER NOT NULL,
+ REV INTEGER NOT NULL,
+ REVTYPE TINYINT,
+ CREATED TIMESTAMP,
+ UUID VARCHAR(36) NOT NULL,
+ UPDATED TIMESTAMP,
+ PURIFICATIONMETHOD VARCHAR(255),
+ RATIOOFABSORBANCE260_230 DOUBLE,
+ RATIOOFABSORBANCE260_280 DOUBLE,
+ QUALITYCHECKDATE TIMESTAMP,
+ CONCENTRATION DOUBLE,
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CONCENTRATIONUNIT_ID INTEGER,
+ QUALITYTERM_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DNAQUALITY_AUD;
+CREATE CACHED TABLE PUBLIC.ENTITYVALIDATIONRESULT(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ VALIDATEDENTITYID INTEGER,
+ VALIDATEDENTITYUUID VARCHAR(36),
+ VALIDATEDENTITYCLASS VARCHAR(255),
+ USERFRIENDLYDESCRIPTION VARCHAR(255),
+ USERFRIENDLYTYPENAME VARCHAR(255),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CRUDEVENTTYPE VARCHAR(24)
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ENTITYVALIDATIONRESULT;
+CREATE CACHED TABLE PUBLIC.ENTITYCONSTRAINTVIOLATION(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ PROPERTYPATH VARCHAR(255),
+ USERFRIENDLYFIELDNAME VARCHAR(255),
+ INVALIDVALUE VARCHAR(255),
+ SEVERITY VARCHAR(24),
+ MESSAGE VARCHAR(255),
+ VALIDATOR VARCHAR(255),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ ENTITYVALIDATIONRESULT_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ENTITYCONSTRAINTVIOLATION;
CREATE CACHED TABLE PUBLIC.EXTENSION(
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.FEATURETREE_IDENTIFIER(
+ FEATURETREE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.FEATURETREE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ FEATURETREE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.FEATURETREE_MARKER(
FEATURETREE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
UUID VARCHAR(36),
- AUTHORITY VARCHAR(255),
+ AUTHORITY VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.GRANTEDAUTHORITYIMPL;
DESCRIPTION_MAPKEY_ID INTEGER NOT NULL
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.INDIVIDUALASSOCIATION_LANGUAGESTRING;
+CREATE CACHED TABLE PUBLIC.IDENTIFIER(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ UPDATED TIMESTAMP,
+ IDENTIFIEDOBJ_TYPE VARCHAR(255),
+ IDENTIFIEDOBJ_ID INTEGER,
+ IDENTIFIER VARCHAR(800),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ TYPE_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.IDENTIFIER_AUD(
+ ID INTEGER NOT NULL,
+ REV INTEGER NOT NULL,
+ REVTYPE TINYINT,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ UPDATED TIMESTAMP,
+ IDENTIFIEDOBJ_TYPE VARCHAR(255),
+ IDENTIFIEDOBJ_ID INTEGER,
+ IDENTIFIER VARCHAR(800),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ TYPE_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.INDIVIDUALASSOCIATION_LANGUAGESTRING_AUD(
REV INTEGER NOT NULL,
DESCRIPTIONELEMENTBASE_ID INTEGER NOT NULL,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.MEDIA_IDENTIFIER(
+ MEDIA_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.MEDIA_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ MEDIA_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.MEDIA_LANGUAGESTRING(
MEDIA_ID INTEGER NOT NULL,
TITLE_ID INTEGER NOT NULL,
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
UUID VARCHAR(36),
- NAME VARCHAR(255),
+ NAME VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.PERMISSIONGROUP;
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_IDENTIFIER(
+ POLYTOMOUSKEY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ POLYTOMOUSKEY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_MARKER(
POLYTOMOUSKEY_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
UUID VARCHAR(36),
UPDATED TIMESTAMP,
LABEL VARCHAR(255),
+ SEQUENCE_LENGTH INTEGER,
+ SEQUENCE_STRING CLOB,
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
PUBLISHEDIN_ID INTEGER,
- SEQUENCE_ID INTEGER,
PRIMARY KEY (ID)
);
CREATE TABLE PRIMER_AUD (
UUID VARCHAR(36),
UPDATED TIMESTAMP,
LABEL VARCHAR(255),
+ SEQUENCE_LENGTH INTEGER,
+ SEQUENCE_STRING CLOB,
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
PUBLISHEDIN_ID INTEGER,
- SEQUENCE_ID INTEGER
);
CREATE TABLE PRIMER_ANNOTATION (
PROBLEMSTARTS INTEGER NOT NULL,
PUBLISHER VARCHAR(255),
REFERENCEABSTRACT CLOB,
- SERIES VARCHAR(255),
SERIESPART VARCHAR(255),
TITLE CLOB,
ABBREVTITLE VARCHAR(255),
VOLUME VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
- AUTHORTEAM_ID INTEGER,
+ AUTHORSHIP_ID INTEGER,
INREFERENCE_ID INTEGER,
INSTITUTION_ID INTEGER,
SCHOOL_ID INTEGER
PROBLEMSTARTS INTEGER,
PUBLISHER VARCHAR(255),
REFERENCEABSTRACT CLOB,
- SERIES VARCHAR(255),
SERIESPART VARCHAR(255),
TITLE CLOB,
ABBREVTITLE VARCHAR(255),
VOLUME VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
- AUTHORTEAM_ID INTEGER,
+ AUTHORSHIP_ID INTEGER,
INREFERENCE_ID INTEGER,
INSTITUTION_ID INTEGER,
SCHOOL_ID INTEGER
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.REFERENCE_IDENTIFIER(
+ REFERENCE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.REFERENCE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ REFERENCE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.REFERENCE_MARKER(
REFERENCE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
CATALOGNUMBER VARCHAR(255),
COLLECTORSNUMBER VARCHAR(255),
EXSICCATUM VARCHAR(255),
+ ORIGINALLABELINFO CLOB,
FIELDNOTES VARCHAR(255),
FIELDNUMBER VARCHAR(255),
CREATEDBY_ID INTEGER,
PRESERVATION_ID INTEGER,
GATHERINGEVENT_ID INTEGER,
PRIMARYCOLLECTOR_ID INTEGER,
- MEDIASPECIMEN_ID INTEGER
+ MEDIASPECIMEN_ID INTEGER,
+ DNAQUALITY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE;
CREATE INDEX PUBLIC.SPECIMENOROBSERVATIONBASETITLECACHEINDEX ON PUBLIC.SPECIMENOROBSERVATIONBASE(TITLECACHE);
CATALOGNUMBER VARCHAR(255),
COLLECTORSNUMBER VARCHAR(255),
EXSICCATUM VARCHAR(255),
+ ORIGINALLABELINFO CLOB,
FIELDNOTES VARCHAR(255),
FIELDNUMBER VARCHAR(255),
CREATEDBY_ID INTEGER,
PRESERVATION_ID INTEGER,
GATHERINGEVENT_ID INTEGER,
PRIMARYCOLLECTOR_ID INTEGER,
- MEDIASPECIMEN_ID INTEGER
+ MEDIASPECIMEN_ID INTEGER,
+ DNAQUALITY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_AUD;
CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_ANNOTATION(
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER(
+ SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_LANGUAGESTRING(
SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
DEFINITION_ID INTEGER NOT NULL,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TAXONBASE_IDENTIFIER(
+ TAXONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TAXONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TAXONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TAXONBASE_MARKER(
TAXONBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_IDENTIFIER(
+ TAXONNAMEBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TAXONNAMEBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_MARKER(
TAXONNAMEBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_IDENTIFIER(
+ TERMVOCABULARY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TERMVOCABULARY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_MARKER(
TERMVOCABULARY_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
EMAILADDRESS VARCHAR(255),
ENABLED BOOLEAN NOT NULL,
PASSWORD VARCHAR(255),
- USERNAME VARCHAR(255),
+ USERNAME VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER,
PERSON_ID INTEGER
);
ALTER TABLE PUBLIC.MULTIACCESSKEY_SCOPE ADD CONSTRAINT PUBLIC.FKCC6CE4F7546985E4 FOREIGN KEY(SCOPERESTRICTIONS_ID) REFERENCES PUBLIC.DEFINEDTERMBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.AGENTBASE_ADDRESS ADD CONSTRAINT PUBLIC.FK1EDFF7EB86EFC5D4 FOREIGN KEY(AGENTBASE_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_MARKER ADD CONSTRAINT PUBLIC.FK8E6106C7777265A1 FOREIGN KEY(MARKERS_ID) REFERENCES PUBLIC.MARKER(ID) NOCHECK;
-ALTER TABLE PUBLIC.REFERENCE ADD CONSTRAINT PUBLIC.FK404D5F2B697665E FOREIGN KEY(AUTHORTEAM_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
+ALTER TABLE PUBLIC.REFERENCE ADD CONSTRAINT PUBLIC.FK404D5F2B697665E FOREIGN KEY(AUTHORSHIP_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.CLASSIFICATION_CREDIT_AUD ADD CONSTRAINT PUBLIC.FK48AC64334869AAE FOREIGN KEY(REV) REFERENCES PUBLIC.AUDITEVENT(REVISIONNUMBER) NOCHECK;
ALTER TABLE PUBLIC.TAXONBASE ADD CONSTRAINT PUBLIC.FK9249B49B7C7B5AED FOREIGN KEY(TAXONOMICPARENTCACHE_ID) REFERENCES PUBLIC.TAXONBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.AGENTBASE_ADDRESS ADD CONSTRAINT PUBLIC.FK1EDFF7EB50751EC5 FOREIGN KEY(CONTACT_ADDRESSES_ID) REFERENCES PUBLIC.ADDRESS(ID) NOCHECK;
<TAXONNAMEBASE DTYPE="BotanicalName" ID="1001" CREATED="2009-06-25 14:42:27.0" UUID="b0b71ee3-3e18-4ed4-b660-6181b0ec532b" PROTECTEDTITLECACHE="true" TITLECACHE="A name" FULLTITLECACHE=" (), null" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="()" NAMECACHE=" " PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1001" NOMENCLATURALREFERENCE_ID="1001" RANK_ID="765" BASIONYMAUTHORTEAM_ID="1001"/>\r
<TAXONNAMEBASE_AUD DTYPE="BotanicalName" ID="1001" REV="1001" REVTYPE="0" CREATED="2009-06-25 14:42:27.0" UUID="b0b71ee3-3e18-4ed4-b660-6181b0ec532b" PROTECTEDTITLECACHE="true" TITLECACHE="A name" FULLTITLECACHE=" (), null" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" HOMOTYPICALGROUP_ID="1001" NOMENCLATURALREFERENCE_ID="1001" RANK_ID="765" AUTHORSHIPCACHE="()" NAMECACHE=" " PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" BASIONYMAUTHORTEAM_ID="1" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false"/>\r
\r
- <REFERENCE ID="1001" CREATED="2009-06-25 14:42:27.0" UUID="613980ac-9bd5-43b9-a374-d71e1794688f" PROTECTEDTITLECACHE="false" TITLECACHE="A Ref" PARSINGPROBLEM="0" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORTEAM_ID="1"/>\r
+ <REFERENCE ID="1001" CREATED="2009-06-25 14:42:27.0" UUID="613980ac-9bd5-43b9-a374-d71e1794688f" PROTECTEDTITLECACHE="false" TITLECACHE="A Ref" PARSINGPROBLEM="0" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORSHIP_ID="1"/>\r
<REFERENCE_ANNOTATION REFERENCE_ID="1001" ANNOTATIONS_ID="1001"/>\r
- <REFERENCE_AUD DTYPE="Article" ID="1001" REV="1001" REVTYPE="0" CREATED="2009-06-25 14:42:27.0" UUID="613980ac-9bd5-43b9-a374-d71e1794688f" PROTECTEDTITLECACHE="false" TITLECACHE="Author, null" PARSINGPROBLEM="0" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORTEAM_ID="1"/>\r
+ <REFERENCE_AUD DTYPE="Article" ID="1001" REV="1001" REVTYPE="0" CREATED="2009-06-25 14:42:27.0" UUID="613980ac-9bd5-43b9-a374-d71e1794688f" PROTECTEDTITLECACHE="false" TITLECACHE="Author, null" PARSINGPROBLEM="0" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORSHIP_ID="1"/>\r
\r
<HOMOTYPICALGROUP ID="1001" CREATED="2009-06-25 14:42:27.0" UUID="2aaf6684-8eed-4c0d-9c34-fb9715f6b31e"/>\r
<HOMOTYPICALGROUP_AUD ID="1001" REV="1001" REVTYPE="0" CREATED="2009-06-25 14:42:27.0" UUID="2aaf6684-8eed-4c0d-9c34-fb9715f6b31e"/>\r
ISSN CDATA #IMPLIED
CREATEDBY_ID CDATA #IMPLIED
UPDATEDBY_ID CDATA #IMPLIED
- AUTHORTEAM_ID CDATA #IMPLIED
+ AUTHORSHIP_ID CDATA #IMPLIED
INJOURNAL_ID CDATA #IMPLIED
CROSSREF_ID CDATA #IMPLIED
TYPE_ID CDATA #IMPLIED
URI CDATA #IMPLIED
CREATEDBY_ID CDATA #IMPLIED
UPDATEDBY_ID CDATA #IMPLIED
- AUTHORTEAM_ID CDATA #IMPLIED
+ AUTHORSHIP_ID CDATA #IMPLIED
DATEPUBLISHED_END CDATA #IMPLIED
DATEPUBLISHED_START CDATA #IMPLIED
TITLE CDATA #IMPLIED
<AGENTBASE_AGENTBASE AGENTBASE_ID="6" TEAMMEMBERS_ID="3" SORTINDEX="0"/>
<AGENTBASE_AGENTBASE AGENTBASE_ID="6" TEAMMEMBERS_ID="4" SORTINDEX="1"/>
<AGENTBASE_AGENTBASE AGENTBASE_ID="6" TEAMMEMBERS_ID="5" SORTINDEX="2"/>
- <REFERENCE ID="1" UUID="596b1325-be50-4b0a-9aa2-3ecd610215f2" PROTECTEDTITLECACHE="true" TITLECACHE="Lorem ipsum" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" REFTYPE="BK"/> <!--AUTHORTEAM_ID="1"-->
- <REFERENCE ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ad4322b7-4b05-48af-be70-f113e46c545e" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="cate-sphingidae.org" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="cate-sphingidae.org" ABBREVTITLE="cate-sphingidae.org" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORTEAM_ID="3" REFTYPE="DB"/>
+ <REFERENCE ID="1" UUID="596b1325-be50-4b0a-9aa2-3ecd610215f2" PROTECTEDTITLECACHE="true" TITLECACHE="Lorem ipsum" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" REFTYPE="BK"/> <!--AUTHORSHIP_ID="1"-->
+ <REFERENCE ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ad4322b7-4b05-48af-be70-f113e46c545e" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="cate-sphingidae.org" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="cate-sphingidae.org" ABBREVTITLE="cate-sphingidae.org" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORSHIP_ID="3" REFTYPE="DB"/>
<REFERENCE ID="3" CREATED="2008-12-10 09:56:07.0" UUID="3eea6f96-0682-4025-8cdd-aaaf7c915ae2" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="cate-araceae.org" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="cate-araceae.org" ABBREVTITLE="cate-araceae.org" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" REFTYPE="DB"/>
<TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="a49a3963-c4ea-4047-8588-2f8f15352730" PROTECTEDTITLECACHE="true" TITLECACHE="" FULLTITLECACHE="" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" BINOMHYBRID="false" GENUSORUNINOMIAL="Aus" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="1" NOMENCLATURALREFERENCE_ID="1" RANK_ID="774" BASIONYMAUTHORTEAM_ID="1" COMBINATIONAUTHORTEAM_ID="1"/>
<TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2008-12-10 09:56:07.0" UUID="05a438d6-065f-49ef-84db-c7dc2c259975" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE=" " FULLTITLECACHE=" " PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" BINOMHYBRID="false" GENUSORUNINOMIAL="Aus" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" SPECIFICEPITHET="aus" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="2" NOMENCLATURALREFERENCE_ID="1" RANK_ID="765" BASIONYMAUTHORTEAM_ID="1" COMBINATIONAUTHORTEAM_ID="[null]"/>
<HYBRIDRELATIONSHIP ID="2" CREATED="2008-12-10 09:56:07.0" UUID="bb186839-3c46-4c6e-b58b-b530f25c0b11" UPDATED="2008-12-10 09:56:07.253" RELATEDFROM_ID="40" RELATEDTO_ID="38" TYPE_ID="851" DOUBTFUL="false"/>\r
<NAMERELATIONSHIP ID="1" CREATED="2008-12-10 09:56:07.0" UUID="331c93a6-eabc-4a32-9a26-351aaff8dfbd" UPDATED="2008-12-10 09:56:07.253" RELATEDFROM_ID="15" RELATEDTO_ID="27" TYPE_ID="857" DOUBTFUL="false"/>\r
<NAMERELATIONSHIP ID="2" CREATED="2008-12-10 09:56:07.0" UUID="331c93a6-eaac-4a32-9a26-351aaff8dfbd" UPDATED="2008-12-10 09:56:07.253" RELATEDFROM_ID="14" RELATEDTO_ID="27" TYPE_ID="857" DOUBTFUL="false"/>\r
- <REFERENCE ID="1" UUID="596b1325-be50-4b0a-9aa2-3ecd610215f2" PROTECTEDTITLECACHE="true" TITLECACHE="Lorem ipsum" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" REFTYPE="BK"/> <!--AUTHORTEAM_ID="1"-->\r
- <REFERENCE ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ad4322b7-4b05-48af-be70-f113e46c545e" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="cate-sphingidae.org" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="cate-sphingidae.org" ABBREVTITLE="cate-sphingidae.org" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORTEAM_ID="3" REFTYPE="DB"/>\r
+ <REFERENCE ID="1" UUID="596b1325-be50-4b0a-9aa2-3ecd610215f2" PROTECTEDTITLECACHE="true" TITLECACHE="Lorem ipsum" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" REFTYPE="BK"/> <!--AUTHORSHIP_ID="1"-->\r
+ <REFERENCE ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ad4322b7-4b05-48af-be70-f113e46c545e" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="cate-sphingidae.org" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="cate-sphingidae.org" ABBREVTITLE="cate-sphingidae.org" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORSHIP_ID="3" REFTYPE="DB"/>\r
<REFERENCE ID="3" CREATED="2008-12-10 09:56:07.0" UUID="3eea6f96-0682-4025-8cdd-aaaf7c915ae2" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="cate-araceae.org" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="cate-araceae.org" ABBREVTITLE="cate-araceae.org" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" REFTYPE="DB"/>\r
<SPECIMENOROBSERVATIONBASE DTYPE="DerivedUnit" RECORDBASIS="PS" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="50a276c0-4df9-4da3-8b18-b4d2f82aa9b4" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Lorem ipsum" PROTECTEDTITLECACHE="true"/>\r
<TAXONBASE DTYPE="Taxon" ID="1" SEC_ID="1" CREATED="2008-12-10 09:56:07.0" UUID="258e28a3-c4e5-4b87-823e-2963c7831ce3" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acherontia lachesis (Fabricius, 1798) sec Lorem ipsum" PROTECTEDTITLECACHE="true" TAXONSTATUSUNKNOWN="false" UNPLACED="false" EXCLUDED="false" DOUBTFUL="false" PUBLISH="true" TAXONOMICCHILDRENCOUNT="0" NAME_ID="36"/>\r
<parent>
<artifactId>cdmlib-parent</artifactId>
<groupId>eu.etaxonomy</groupId>
- <version>3.3.8-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
private static final String NAME_TYPE_DESIGNATIONS = "name/" + UUID
+ "/typeDesignations";
- // TAXON_ACCEPTED should populate references but authorTeam is not always
+ // TAXON_ACCEPTED should populate references but authorship is not always
// populated so call the reference controller directly
private static final String REFERENCES = "portal/reference/" + UUID;
<!-- first of all check if any of the data we show exist: TODO remove this
test, if we modified CDM services, to export proper data -->
<xsl:if
- test="exists($reference-node/authorTeam/teamMembers/e[1]/lastname)
- or exists($reference-node/authorTeam/lastname) or exists($reference-node/datePublished/start)
+ test="exists($reference-node/authorship/teamMembers/e[1]/lastname)
+ or exists($reference-node/authorship/lastname) or exists($reference-node/datePublished/start)
or exists($reference-node/title)">
<!-- use the citation-uuid as a unique name for the reference -->
select="concat('{{EDIT_Reference|name=',$citation-uuid,'|content=')" />
<xsl:choose>
- <xsl:when test="exists($reference-node/authorTeam/teamMembers)">
+ <xsl:when test="exists($reference-node/authorship/teamMembers)">
<xsl:text>{{aut|</xsl:text>
- <xsl:for-each select="$reference-node/authorTeam/teamMembers/e">
+ <xsl:for-each select="$reference-node/authorship/teamMembers/e">
<xsl:value-of select="lastname" />
<xsl:choose>
<xsl:when test="position() != last()">
</xsl:when>
<xsl:otherwise>
<xsl:choose>
- <xsl:when test="exists($reference-node/authorTeam/lastname)">
+ <xsl:when test="exists($reference-node/authorship/lastname)">
<xsl:text>{{aut|</xsl:text>
- <xsl:value-of select="$reference-node/authorTeam/lastname" />
+ <xsl:value-of select="$reference-node/authorship/lastname" />
<xsl:text>}} </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:template match="nomenclaturalReference">
<xsl:text> (</xsl:text>
<fo:inline>
- <xsl:value-of select="authorTeam/titleCache"/>
+ <xsl:value-of select="authorship/titleCache"/>
<xsl:text> </xsl:text>
<xsl:value-of select="datePublished/start"/>: </fo:inline>
<xsl:text> </xsl:text>
<xsl:sort select="sources/e[1]/citation/datePublished/start"/>
<xsl:for-each select="sources/e">
- <xsl:variable name="lastname_text" select="citation/authorTeam/lastname"/>
- <xsl:variable name="prev_lastname_text" select="preceding-sibling::e[1]/citation/authorTeam/lastname"/>
+ <xsl:variable name="lastname_text" select="citation/authorship/lastname"/>
+ <xsl:variable name="prev_lastname_text" select="preceding-sibling::e[1]/citation/authorship/lastname"/>
<xsl:if test="nameUsedInSource/uuid=$name-uuid">
<xsl:text>; </xsl:text>
<fo:inline>
- <!--xsl:value-of select="citation/authorTeam/titleCache"/-->
+ <!--xsl:value-of select="citation/authorship/titleCache"/-->
<!--TODO wrap this in a variable and compare the previous variable to this one to see if we're dealing with the same name-->
- <xsl:for-each select="citation/authorTeam/teamMembers/e">
+ <xsl:for-each select="citation/authorship/teamMembers/e">
<xsl:value-of select="lastname"/>
<xsl:choose>
<xsl:when test="position() != last()">
<xsl:choose>
<xsl:when test="$lastname_text != $prev_lastname_text">
- <xsl:value-of select="citation/authorTeam/lastname"/><!--TODO We print lastname here as well as the author list is this a mistake?-->
+ <xsl:value-of select="citation/authorship/lastname"/><!--TODO We print lastname here as well as the author list is this a mistake?-->
<xsl:text> (</xsl:text>
<xsl:value-of select="citation/datePublished/start"/>
<xsl:if test="nameUsedInSource/uuid=$name-uuid">
<xsl:text>; </xsl:text>
<fo:inline>
- <!--xsl:value-of select="citation/authorTeam/titleCache"/-->
- <xsl:for-each select="citation/authorTeam/teamMembers/e">
+ <!--xsl:value-of select="citation/authorship/titleCache"/-->
+ <xsl:for-each select="citation/authorship/teamMembers/e">
<xsl:value-of select="lastname"/>
<xsl:choose>
<xsl:when test="position() != last()">
</xsl:choose>
</xsl:for-each>
- <xsl:value-of select="citation/authorTeam/lastname"/>
+ <xsl:value-of select="citation/authorship/lastname"/>
<xsl:text> (</xsl:text>
<xsl:value-of select="citation/datePublished/start"/>
<xsl:text>: </xsl:text>
<xsl:for-each select="//nomenclaturalReference[count(. | key('citations-by-uuid', uuid)[1]) = 1] | //citation[count(. | key('citations-by-uuid', uuid)[1]) = 1]">
<!--xsl:for-each select="//nomenclaturalReference[count(. | key('nomenclaturalrefs-by-uuid', uuid)[1]) = 1]"-->
<!--xsl:for-each select="//nomenclaturalReference"-->
- <xsl:sort select="authorTeam/lastname | authorTeam/teamMembers/e[1]/lastname" />
+ <xsl:sort select="authorship/lastname | authorship/teamMembers/e[1]/lastname" />
<xsl:sort select="datePublished/start"></xsl:sort>
<fo:block linefeed-treatment="preserve" text-align="justify" text-indent="-{$taxon-name-indentation}" start-indent="{$taxon-name-indentation}">
<!-- filter out repeated citation uuids. Could write a controller method in the CDM to get all unique references for a TaxonNode -->
<!--I am only listing references which have at least one author name. If there are other references in the database - why don't these have an author name-->
- <xsl:if test="authorTeam/teamMembers/e[1]/lastname != '' or authorTeam/lastname != ''">
+ <xsl:if test="authorship/teamMembers/e[1]/lastname != '' or authorship/lastname != ''">
<!--xsl:text>
</xsl:text-->
<xsl:choose>
- <xsl:when test="authorTeam/teamMembers/e[1]/lastname != ''">
- <xsl:for-each select="authorTeam/teamMembers/e">
+ <xsl:when test="authorship/teamMembers/e[1]/lastname != ''">
+ <xsl:for-each select="authorship/teamMembers/e">
<fo:inline>
<xsl:value-of select="lastname"/>
<xsl:text> </xsl:text>
</fo:inline>
</xsl:for-each>
</xsl:when>
- <xsl:otherwise test="authorTeam/lastname != ''">
+ <xsl:otherwise test="authorship/lastname != ''">
<fo:inline>
- <xsl:value-of select="authorTeam/lastname"/>
+ <xsl:value-of select="authorship/lastname"/>
<xsl:text> </xsl:text>
- <xsl:value-of select="authorTeam/firstname"/>
+ <xsl:value-of select="authorship/firstname"/>
</fo:inline>
</xsl:otherwise>
</xsl:choose>
<xsl:template name="Referencesold">
- <!-- need to sort by lastname of the first author i.e. //citation/authorTeam/teamMembers/e[1]/lastname -->
+ <!-- need to sort by lastname of the first author i.e. //citation/authorship/teamMembers/e[1]/lastname -->
<xsl:for-each select="//citation">
<!-- TODO sorting only works for the first citation, implement correctly -->
- <xsl:sort select="authorTeam/lastname"/>
- <xsl:sort select="authorTeam/teamMembers/e[1]/lastname"/>
+ <xsl:sort select="authorship/lastname"/>
+ <xsl:sort select="authorship/teamMembers/e[1]/lastname"/>
<fo:block>
<fo:inline>
<!-- .[not(preceding-sibling::Link[@personId = current()/@personId -->
<xsl:choose>
- <xsl:when test="authorTeam/teamMembers/e[1]/lastname != '' or authorTeam/lastname != ''">
+ <xsl:when test="authorship/teamMembers/e[1]/lastname != '' or authorship/lastname != ''">
<xsl:choose>
- <xsl:when test="authorTeam/teamMembers/e[1]/lastname != ''">
- <xsl:for-each select="authorTeam/teamMembers/e">
+ <xsl:when test="authorship/teamMembers/e[1]/lastname != ''">
+ <xsl:for-each select="authorship/teamMembers/e">
<fo:inline font-weight="bold">
<xsl:value-of select="lastname"/>
<xsl:choose>
</fo:inline>
</xsl:for-each>
</xsl:when>
- <xsl:otherwise test="authorTeam/lastname != ''">
+ <xsl:otherwise test="authorship/lastname != ''">
<fo:inline font-weight="bold">
- <xsl:value-of select="authorTeam/lastname"/>
+ <xsl:value-of select="authorship/lastname"/>
</fo:inline>
</xsl:otherwise>
</xsl:choose>
<xsl:template match="nomenclaturalReference">
<xsl:text> (</xsl:text>
<fo:inline>
- <xsl:value-of select="authorTeam/titleCache"/>
+ <xsl:value-of select="authorship/titleCache"/>
<xsl:text> </xsl:text>
<xsl:value-of select="datePublished/start"/>: </fo:inline>
<xsl:text> </xsl:text>
<xsl:sort select="sources/e[1]/citation/datePublished/start"/>
<xsl:for-each select="sources/e">
- <xsl:variable name="lastname_text" select="citation/authorTeam/lastname"/>
- <xsl:variable name="prev_lastname_text" select="preceding-sibling::e[1]/citation/authorTeam/lastname"/>
+ <xsl:variable name="lastname_text" select="citation/authorship/lastname"/>
+ <xsl:variable name="prev_lastname_text" select="preceding-sibling::e[1]/citation/authorship/lastname"/>
<xsl:if test="nameUsedInSource/uuid=$name-uuid">
<xsl:text>; </xsl:text>
<fo:inline>
- <!--xsl:value-of select="citation/authorTeam/titleCache"/-->
+ <!--xsl:value-of select="citation/authorship/titleCache"/-->
<!--TODO wrap this in a variable and compare the previous variable to this one to see if we're dealing with the same name-->
- <xsl:for-each select="citation/authorTeam/teamMembers/e">
+ <xsl:for-each select="citation/authorship/teamMembers/e">
<xsl:value-of select="lastname"/>
<xsl:choose>
<xsl:when test="position() != last()">
<xsl:choose>
<xsl:when test="$lastname_text != $prev_lastname_text">
- <xsl:value-of select="citation/authorTeam/lastname"/><!--TODO We print lastname here as well as the author list is this a mistake?-->
+ <xsl:value-of select="citation/authorship/lastname"/><!--TODO We print lastname here as well as the author list is this a mistake?-->
<xsl:text> (</xsl:text>
<xsl:value-of select="citation/datePublished/start"/>
<xsl:if test="nameUsedInSource/uuid=$name-uuid">
<xsl:text>; </xsl:text>
<fo:inline>
- <!--xsl:value-of select="citation/authorTeam/titleCache"/-->
- <xsl:for-each select="citation/authorTeam/teamMembers/e">
+ <!--xsl:value-of select="citation/authorship/titleCache"/-->
+ <xsl:for-each select="citation/authorship/teamMembers/e">
<xsl:value-of select="lastname"/>
<xsl:choose>
<xsl:when test="position() != last()">
</xsl:choose>
</xsl:for-each>
- <xsl:value-of select="citation/authorTeam/lastname"/>
+ <xsl:value-of select="citation/authorship/lastname"/>
<xsl:text> (</xsl:text>
<xsl:value-of select="citation/datePublished/start"/>
<xsl:text>: </xsl:text>
<xsl:for-each select="//nomenclaturalReference[count(. | key('citations-by-uuid', uuid)[1]) = 1] | //citation[count(. | key('citations-by-uuid', uuid)[1]) = 1]">
<!--xsl:for-each select="//nomenclaturalReference[count(. | key('nomenclaturalrefs-by-uuid', uuid)[1]) = 1]"-->
<!--xsl:for-each select="//nomenclaturalReference"-->
- <xsl:sort select="authorTeam/lastname | authorTeam/teamMembers/e[1]/lastname" />
+ <xsl:sort select="authorship/lastname | authorship/teamMembers/e[1]/lastname" />
<xsl:sort select="datePublished/start"></xsl:sort>
<fo:block linefeed-treatment="preserve" text-align="justify" text-indent="-{$taxon-name-indentation}" start-indent="{$taxon-name-indentation}">
<!--xsl:value-of select="titleCache"/-->
<!--I am only listing references which have at least one author name. If there are other references in the database - why don't these have an author name-->
- <xsl:if test="authorTeam/teamMembers/e[1]/lastname != '' or authorTeam/lastname != '' or authorTeam/titleCache != ''">
+ <xsl:if test="authorship/teamMembers/e[1]/lastname != '' or authorship/lastname != '' or authorship/titleCache != ''">
<!--xsl:text>
</xsl:text-->
<xsl:choose>
- <xsl:when test="authorTeam/teamMembers/e[1]/lastname != ''">
- <xsl:for-each select="authorTeam/teamMembers/e">
+ <xsl:when test="authorship/teamMembers/e[1]/lastname != ''">
+ <xsl:for-each select="authorship/teamMembers/e">
<fo:inline>
<xsl:value-of select="lastname"/>
<xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
- <xsl:when test="authorTeam/lastname != ''">
- <!--xsl:if test="authorTeam/lastname != ''"-->
+ <xsl:when test="authorship/lastname != ''">
+ <!--xsl:if test="authorship/lastname != ''"-->
<fo:inline>
- <xsl:value-of select="authorTeam/lastname"/>
+ <xsl:value-of select="authorship/lastname"/>
<xsl:text> </xsl:text>
- <xsl:value-of select="authorTeam/firstname"/>
+ <xsl:value-of select="authorship/firstname"/>
</fo:inline>
</xsl:when>
<xsl:otherwise>
<fo:inline>
- <xsl:value-of select="authorTeam/titleCache"/>
+ <xsl:value-of select="authorship/titleCache"/>
</fo:inline>
</xsl:otherwise>
<!--/xsl:if-->
<xsl:template name="Referencesold">
- <!-- need to sort by lastname of the first author i.e. //citation/authorTeam/teamMembers/e[1]/lastname -->
+ <!-- need to sort by lastname of the first author i.e. //citation/authorship/teamMembers/e[1]/lastname -->
<xsl:for-each select="//citation">
<!-- TODO sorting only works for the first citation, implement correctly -->
- <xsl:sort select="authorTeam/lastname"/>
- <xsl:sort select="authorTeam/teamMembers/e[1]/lastname"/>
+ <xsl:sort select="authorship/lastname"/>
+ <xsl:sort select="authorship/teamMembers/e[1]/lastname"/>
<fo:block>
<fo:inline>
<!-- .[not(preceding-sibling::Link[@personId = current()/@personId -->
<xsl:choose>
- <xsl:when test="authorTeam/teamMembers/e[1]/lastname != '' or authorTeam/lastname != ''">
+ <xsl:when test="authorship/teamMembers/e[1]/lastname != '' or authorship/lastname != ''">
<xsl:choose>
- <xsl:when test="authorTeam/teamMembers/e[1]/lastname != ''">
- <xsl:for-each select="authorTeam/teamMembers/e">
+ <xsl:when test="authorship/teamMembers/e[1]/lastname != ''">
+ <xsl:for-each select="authorship/teamMembers/e">
<fo:inline font-weight="bold">
<xsl:value-of select="lastname"/>
<xsl:choose>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
- <xsl:if test="authorTeam/lastname != ''">
+ <xsl:if test="authorship/lastname != ''">
<fo:inline font-weight="bold">
- <xsl:value-of select="authorTeam/lastname"/>
+ <xsl:value-of select="authorship/lastname"/>
</fo:inline>
</xsl:if>
</xsl:otherwise>
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;directory nest=&quot;false&quot; path=&quot;/home/alex/D:\_lib\java\jdk1.6_b3.src\j2se\src\share\classes&quot;/&gt;&#10;" typeId="org.eclipse.debug.core.containerType.directory"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;directory nest=&quot;false&quot; path=&quot;/home/alex/D:\_lib\java\jdk1.6_b3.src\j2se\src\windows\classes&quot;/&gt;&#10;" typeId="org.eclipse.debug.core.containerType.directory"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;default/&gt;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="RunJettyRunWebAppClassPathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="RunJettyRunWebAppClassPathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="runjettyrun.Bootstrap"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="cdmlib-remote-webapp"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx500M -Dlog4j.configDebug=true -Dorg.mortbay.jetty.webapp.parentLoaderPriority=true"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx500M -Dlog4j.configDebug=true -Dorg.mortbay.jetty.webapp.parentLoaderPriority=true -Dcdm.datasource=mySql3.4"/>
<stringAttribute key="run_jetty_run.CONTEXT_ATTR" value="/"/>
<booleanAttribute key="run_jetty_run.ENABLE_JNDI_ATTR" value="false"/>
<booleanAttribute key="run_jetty_run.ENABLE_MAVEN_TEST_CLASSES_ATTR" value="true"/>
<parent>
<artifactId>cdmlib-parent</artifactId>
<groupId>eu.etaxonomy</groupId>
- <version>3.3.8-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
# java -Dlog4j.configDebug=true\r
#\r
\r
-log4j.rootLogger=INFO, stdout\r
+log4j.rootLogger=WARN, stdout\r
+\r
\r
log4j.appender.stdout=org.apache.log4j.ConsoleAppender\r
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout\r
# springframework\r
###\r
log4j.logger.org.springframework = WARN\r
-#log4j.logger.org.springframework.web.servlet.DispatcherServlet = TRACE\r
-#log4j.logger.org.springframework.web.servlet.view = TRACE\r
-#log4j.logger.org.springframework.web.servlet.mvc.annotation = WARN\r
+log4j.logger.org.springframework.web.servlet.DispatcherServlet = TRACE\r
+log4j.logger.org.springframework.web.servlet.view = TRACE\r
+log4j.logger.org.springframework.web.servlet.mvc.annotation = WARN\r
#log4j.category.org.springframework.web.servlet.mvc.support=DEBUG, stdout\r
-#log4j.logger.org.springframework.web.servlet.view = WARN\r
+log4j.logger.org.springframework.web.servlet.view = WARN\r
\r
###\r
# json-lib\r
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>cdmlib-parent</artifactId>
- <version>3.3.8-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
protected static final List<String> DEFAULT_INIT_STRATEGY = Arrays.asList(new String []{
- "reference.authorTeam"
+ "reference.authorship"
});
\r
\r
private static final List<String> CLASSIFICATION_INIT_STRATEGY = Arrays.asList(new String[]{\r
- "reference.authorTeam",\r
+ "reference.authorship",\r
"childNodes"\r
});\r
\r
\r
\r
private static final List<String> CLASSIFICATION_INIT_STRATEGY = Arrays.asList(new String[]{\r
- "reference.authorTeam"\r
+ "reference.authorship"\r
\r
});\r
\r
protected static final List<String> TAXONDESCRIPTION_INIT_STRATEGY = Arrays.asList(new String []{
"$",
"elements.$",
- "elements.sources.citation.authorTeam",
+ "elements.sources.citation.authorship",
"elements.sources.nameUsedInSource",
"elements.multilanguageText",
"elements.media",
"elements.annotations",\r
"elements.markers",\r
"elements.stateData.$",\r
- "elements.sources.citation.authorTeam",\r
+ "elements.sources.citation.authorship",\r
"elements.sources.nameUsedInSource",\r
"elements.multilanguageText",\r
"elements.media",\r
"annotations",\r
"markers",\r
"stateData.$",\r
- "sources.citation.authorTeam",\r
+ "sources.citation.authorship",\r
"sources.nameUsedInSource",\r
"multilanguageText",\r
"media",\r
"elements.$",\r
"elements.multilanguageText.*",\r
"elements.annotations",\r
- "elements.sources.citation.authorTeam.$",\r
+ "elements.sources.citation.authorship.$",\r
"elements.sources.nameUsedInSource",\r
"elements.area.level",\r
"elements.modifyingText",\r
"elements.$",\r
"elements.annotations",\r
"elements.markers",\r
- "elements.sources.citation.authorTeam.$",\r
+ "elements.sources.citation.authorship.$",\r
"elements.sources.nameUsedInSource",\r
"elements.area.level",\r
});\r
\r
protected static final List<String> DISTRIBUTION_INFO_INIT_STRATEGY = Arrays.asList(new String []{\r
- "sources.citation.authorTeam.$",\r
+ "sources.citation.authorship.$",\r
"sources.nameUsedInSource",\r
"annotations"\r
});\r
"typeSpecimen",\r
"typeName",\r
"citation",\r
- "citation.authorTeam.$",\r
+ "citation.authorship.$",\r
});\r
\r
private static final List<String> NAME_CACHE_INIT_STRATEGY = Arrays.asList(new String []{\r
"typeName.$",\r
"typeSpecimen",\r
"typeStatus.representations",\r
- "typifiedNames.nomenclaturalReference.authorTeam",\r
- "citation.authorTeam.$",\r
+ "typifiedNames.nomenclaturalReference.authorship",\r
+ "citation.authorship.$",\r
"typeSpecimen.media"\r
});\r
\r
import org.springframework.web.bind.annotation.PathVariable;\r
import org.springframework.web.bind.annotation.RequestMapping;\r
import org.springframework.web.bind.annotation.RequestMethod;\r
+import org.springframework.web.bind.annotation.RequestParam;\r
import org.springframework.web.servlet.ModelAndView;\r
\r
import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
+import eu.etaxonomy.cdm.api.service.dto.DerivateHierarchyDTO;\r
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;\r
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;\r
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;\r
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
\r
/**\r
return mv;\r
}\r
\r
+ @RequestMapping(value = { "derivateHierarchy" }, method = RequestMethod.GET)\r
+ public ModelAndView doGetDerivateHierarchy(\r
+ @PathVariable("uuid") UUID uuid,\r
+ @RequestParam(value = "taxonUuid", required = true) UUID taxonUuid,\r
+ HttpServletRequest request,\r
+ HttpServletResponse response) throws IOException {\r
+\r
+ logger.info("doGetDerivateHierarchy() " + request.getRequestURI());\r
+\r
+ ModelAndView mv = new ModelAndView();\r
+\r
+ List<String> initStrategy = DEFAULT_INIT_STRATEGY;\r
+\r
+ SpecimenOrObservationBase sob = service.load(uuid);\r
+ if(sob instanceof FieldUnit){\r
+ final DerivateHierarchyDTO assembleDerivateHierarchyDTO = service.assembleDerivateHierarchyDTO((FieldUnit)sob, taxonUuid);\r
+ if(assembleDerivateHierarchyDTO!=null){\r
+ mv.addObject(assembleDerivateHierarchyDTO);\r
+ }\r
+ }\r
+ return mv;\r
+ }\r
+\r
\r
\r
}\r
\r
private static final List<String> NOMENCLATURAL_CITATION_INIT_STRATEGY = Arrays.asList(new String []{\r
"$",\r
- "authorTeam",\r
+ "authorship",\r
"inReference.inReference",\r
- "inReference.authorTeam"\r
+ "inReference.authorship"\r
});\r
\r
- private static final List<String> CITATION_WITH_AUTHORTEAM_INIT_STRATEGY = Arrays.asList(new String []{\r
- "authorTeam.$"\r
+ private static final List<String> CITATION_WITH_AUTHORSHIP_INIT_STRATEGY = Arrays.asList(new String []{\r
+ "authorship.$"\r
});\r
\r
public ReferenceController(){\r
setInitializationStrategy(Arrays.asList(new String[]{\r
"$",\r
- "authorTeam.$"\r
+ "authorship.$"\r
}));\r
}\r
\r
}\r
\r
@RequestMapping(\r
- value = {"authorTeam"},\r
+ value = {"authorship"},\r
method = RequestMethod.GET)\r
- public ModelAndView doGetAuthorTeam(\r
+ public ModelAndView doGetAuthorship(\r
@PathVariable("uuid") UUID uuid,\r
HttpServletRequest request,\r
HttpServletResponse response) {\r
ModelAndView mv = new ModelAndView();\r
- Reference rb = service.load(uuid, CITATION_WITH_AUTHORTEAM_INIT_STRATEGY);\r
- if(rb.getAuthorTeam() != null){\r
- mv.addObject(rb.getAuthorTeam());\r
+ Reference rb = service.load(uuid, CITATION_WITH_AUTHORSHIP_INIT_STRATEGY);\r
+ if(rb.getAuthorship() != null){\r
+ mv.addObject(rb.getAuthorship());\r
}\r
return mv;\r
}\r
public ReferencePortalController(){\r
setInitializationStrategy(Arrays.asList(new String[]{\r
"$",\r
- "authorTeam.*"\r
+ "authorship.*"\r
}));\r
}\r
\r
import java.io.IOException;\r
import java.util.ArrayList;\r
import java.util.Arrays;\r
+import java.util.Collection;\r
import java.util.List;\r
import java.util.Set;\r
import java.util.UUID;\r
import eu.etaxonomy.cdm.api.service.INameService;\r
import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
import eu.etaxonomy.cdm.api.service.ITaxonService;\r
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;\r
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
import eu.etaxonomy.cdm.model.taxon.Classification;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
private IOccurrenceService occurrenceService;\r
@Autowired\r
private INameService nameService;\r
- @Autowired\r
- private ITaxonService taxonService;\r
-\r
\r
protected static final List<String> TAXONNODE_INIT_STRATEGY = Arrays.asList(new String []{\r
"taxonNodes"\r
HttpServletRequest request,\r
HttpServletResponse response) throws IOException {\r
logger.info("doGetClassifications(): " + request.getRequestURI());\r
- TaxonBase taxonBase = service.load(uuid);\r
+ TaxonBase<?> taxonBase = service.load(uuid);\r
\r
if (taxonBase == null){\r
HttpStatusMessage.UUID_NOT_FOUND.send(response);\r
@PathVariable("uuid") UUID uuid,\r
HttpServletRequest request,\r
HttpServletResponse response) throws IOException {\r
- TaxonBase tb = service.load(uuid, TAXONNODE_INIT_STRATEGY);\r
+ TaxonBase<?> tb = service.load(uuid, TAXONNODE_INIT_STRATEGY);\r
if(tb instanceof Taxon){\r
return ((Taxon)tb).getTaxonNodes();\r
} else {\r
\r
ModelAndView mv = new ModelAndView();\r
\r
- TaxonBase tb = service.load(uuid);\r
+ TaxonBase<?> tb = service.load(uuid);\r
\r
List<OrderHint> orderHints = new ArrayList<OrderHint>();\r
orderHints.add(new OrderHint("titleCache", SortOrder.DESCENDING));\r
\r
if(tb instanceof Taxon){\r
- List<SpecimenOrObservationBase> specimensOrObersvations = occurrenceService.listByAssociatedTaxon(null, null, (Taxon)tb, null, null, null, orderHints, null);\r
- mv.addObject(specimensOrObersvations);\r
+ List<SpecimenOrObservationBase<?>> specimensOrObservations = occurrenceService.listByAssociatedTaxon(null, null, (Taxon)tb, null, null, null, orderHints, null);\r
+ mv.addObject(specimensOrObservations);\r
} else {\r
HttpStatusMessage.UUID_REFERENCES_WRONG_TYPE.send(response);\r
return null;\r
return mv;\r
}\r
\r
- @RequestMapping(value = "taggedName", method = RequestMethod.GET)\r
- public ModelAndView doGetTaggedName(\r
+ @RequestMapping(value = "associatedFieldUnits", method = RequestMethod.GET)\r
+ public ModelAndView doGetFieldUnits(\r
@PathVariable("uuid") UUID uuid,\r
HttpServletRequest request,\r
HttpServletResponse response) throws IOException {\r
+ logger.info("doGetFieldUnits() - " + request.getRequestURI());\r
+\r
+ ModelAndView mv = new ModelAndView();\r
+\r
+ TaxonBase<?> tb = service.load(uuid);\r
+\r
+ List<OrderHint> orderHints = new ArrayList<OrderHint>();\r
+ orderHints.add(new OrderHint("titleCache", SortOrder.DESCENDING));\r
+\r
+ if(tb instanceof Taxon){\r
+ Collection<FieldUnit> associatedFieldUnits = occurrenceService.listFieldUnitsByAssociatedTaxon(null, (Taxon)tb, null, null, null, orderHints, null);\r
+ mv.addObject(associatedFieldUnits);\r
+ } else {\r
+ HttpStatusMessage.UUID_REFERENCES_WRONG_TYPE.send(response);\r
+ return null;\r
+ }\r
+\r
+ return mv;\r
+ }\r
+\r
+ @RequestMapping(value = "taggedName", method = RequestMethod.GET)\r
+ public ModelAndView doGetTaggedName(\r
+ @PathVariable("uuid") UUID uuid,\r
+ HttpServletRequest request) {\r
logger.info("doGetDescriptionElementsByType() - " + request.getRequestURI());\r
\r
ModelAndView mv = new ModelAndView();\r
\r
- TaxonBase tb = service.load(uuid, Arrays.asList(new String[] {"name"}));\r
+ TaxonBase<?> tb = service.load(uuid, Arrays.asList(new String[] {"name"}));\r
mv.addObject(nameService.getTaggedName(tb.getName().getUuid()));\r
return mv;\r
}\r
// "relationsToThisName.fromTaxon.name",\r
// the name\r
"name.$",\r
- "name.nomenclaturalReference.authorTeam",\r
+ "name.nomenclaturalReference.authorship",\r
"name.nomenclaturalReference.inReference",\r
"name.rank.representations",\r
"name.status.type.representations",\r
"name.$",\r
"name.rank.representations",\r
"name.status.type.representations",\r
- "name.nomenclaturalReference.authorTeam",\r
+ "name.nomenclaturalReference.authorship",\r
"name.nomenclaturalReference.inReference",\r
"taxonNodes.classification",\r
});\r
"synonymRelations.$",\r
"synonymRelations.synonym.$",\r
"synonymRelations.synonym.name.status.type.representation",\r
- "synonymRelations.synonym.name.nomenclaturalReference.authorTeam",\r
+ "synonymRelations.synonym.name.nomenclaturalReference.authorship",\r
"synonymRelations.synonym.name.nomenclaturalReference.inReference",\r
"synonymRelations.synonym.name.homotypicalGroup.typifiedNames.$",\r
"synonymRelations.synonym.name.homotypicalGroup.typifiedNames.taxonBases.$",\r
\r
"name.homotypicalGroup.$",\r
"name.homotypicalGroup.typifiedNames.$",\r
- "name.homotypicalGroup.typifiedNames.nomenclaturalReference.authorTeam",\r
+ "name.homotypicalGroup.typifiedNames.nomenclaturalReference.authorship",\r
"name.homotypicalGroup.typifiedNames.nomenclaturalReference.inReference",\r
"name.homotypicalGroup.typifiedNames.taxonBases.$"\r
});\r
"synonymRelations.$",\r
"synonymRelations.synonym.$",\r
"synonymRelations.synonym.name.status.type.representation",\r
- "synonymRelations.synonym.name.nomenclaturalReference.authorTeam",\r
+ "synonymRelations.synonym.name.nomenclaturalReference.authorship",\r
"synonymRelations.synonym.name.nomenclaturalReference.inReference",\r
"synonymRelations.synonym.name.homotypicalGroup.typifiedNames.$",\r
"synonymRelations.synonym.name.homotypicalGroup.typifiedNames.taxonBases.$",\r
\r
"name.homotypicalGroup.$",\r
"name.homotypicalGroup.typifiedNames.$",\r
- "name.homotypicalGroup.typifiedNames.nomenclaturalReference.authorTeam",\r
+ "name.homotypicalGroup.typifiedNames.nomenclaturalReference.authorship",\r
"name.homotypicalGroup.typifiedNames.nomenclaturalReference.inReference",\r
\r
"name.homotypicalGroup.typifiedNames.taxonBases.$",\r
"name.$",\r
"name.rank.representations",\r
"name.status.type.representations",\r
- "name.nomenclaturalReference.authorTeam",\r
+ "name.nomenclaturalReference.authorship",\r
"name.nomenclaturalReference.inReference",\r
\r
"taxonNodes.$",\r
"$",\r
"type.inverseRepresentations",\r
"toName.$",\r
- "toName.nomenclaturalReference.authorTeam",\r
+ "toName.nomenclaturalReference.authorship",\r
"toName.nomenclaturalReference.inReference",\r
"fromName.$",\r
- "fromName.nomenclaturalReference.authorTeam",\r
+ "fromName.nomenclaturalReference.authorship",\r
"fromName.nomenclaturalReference.inReference",\r
\r
});\r
"$",\r
"elements.$",\r
"elements.stateData.$",\r
- "elements.sources.citation.authorTeam",\r
+ "elements.sources.citation.authorship",\r
"elements.sources.nameUsedInSource",\r
"elements.multilanguageText",\r
"elements.media",\r
\r
protected static final List<String> DESCRIPTION_ELEMENT_INIT_STRATEGY = Arrays.asList(new String []{\r
"$",\r
- "sources.citation.authorTeam",\r
+ "sources.citation.authorship",\r
"sources.nameUsedInSource",\r
"multilanguageText",\r
"media",\r
\r
private static final List<String> TYPEDESIGNATION_INIT_STRATEGY = Arrays.asList(new String []{\r
"typeSpecimen.$",\r
- "citation.authorTeam.$",\r
+ "citation.authorship.$",\r
"typeName",\r
"typeStatus"\r
});\r
"name.$",
"name.rank.representations",
"name.status.type.representations",
- "name.nomenclaturalReference.authorTeam",
+ "name.nomenclaturalReference.authorship",
"name.nomenclaturalReference.inReference",
"taxonNodes.classification",
});
"taxon.name",\r
"classification",\r
"classification.reference.$",\r
- "classification.reference.authorTeam.$" });\r
+ "classification.reference.authorship.$" });\r
\r
/** Hibernate classification vocabulary initialisation strategy */\r
private static final List<String> VOC_CLASSIFICATION_INIT_STRATEGY = Arrays.asList(new String[] {\r
"classification",\r
"classification.reference.$",\r
- "classification.reference.authorTeam.$" });\r
+ "classification.reference.authorship.$" });\r
\r
/** Hibernate classification vocabulary initialisation strategy */\r
private static final List<String> COMMON_INIT_STRATEGY = Arrays.asList(new String[] {});\r
protected List<String> getPropertyPaths() {\r
return Arrays.asList(new String []{ \r
"$",\r
- "inBook.authorTeam",\r
+ "inBook.authorship",\r
"inJournal",\r
"inProceedings",\r
});\r
@Override
public List<String> getIgnorePropNames() {
- //return Arrays.asList(new String[]{ "authorTeam" }); //FIXME ?????
+ //return Arrays.asList(new String[]{ "authorship" }); //FIXME ?????
return null;
}
protected static final List<String> DESCRIPTION_INIT_STRATEGY = Arrays.asList(new String []{
"$",
"elements.*",
- "elements.sources.citation.authorTeam.$",
+ "elements.sources.citation.authorship.$",
"elements.sources.nameUsedInSource.originalNameString",
"elements.area.level",
"elements.modifyingText",
protected static final List<String> DESCRIPTION_INIT_STRATEGY = Arrays.asList(new String []{
"$",
"elements.*",
- "elements.sources.citation.authorTeam.$",
+ "elements.sources.citation.authorship.$",
"elements.sources.nameUsedInSource.originalNameString",
"elements.area.level",
"elements.modifyingText",
protected static final List<String> DESCRIPTION_INIT_STRATEGY = Arrays.asList(new String []{
"$",
"elements.*",
- "elements.sources.citation.authorTeam.$",
+ "elements.sources.citation.authorship.$",
"elements.sources.nameUsedInSource.originalNameString",
"elements.area.level",
"elements.modifyingText",
protected static final List<String> DESCRIPTION_INIT_STRATEGY = Arrays.asList(new String []{
"$",
"elements.*",
- "elements.sources.citation.authorTeam.$",
+ "elements.sources.citation.authorship.$",
"elements.sources.nameUsedInSource.originalNameString",
"elements.area.level",
"elements.modifyingText",
"elements.$",
"elements.states.*",
"elements.inDescription",
- "elements.sources.citation.authorTeam",
+ "elements.sources.citation.authorship",
"elements.sources.nameUsedInSource.originalNameString",
"elements.area.level",
"elements.modifyingText",
<b>date</b>
</field>
<field custom-converter-id="hibernateProxyDeepConverter" custom-converter-param="titleCache" >
- <a>authorTeam</a>
+ <a>authorship</a>
<b>creator</b>
</field>
<field>
<a>sec</a>
<b>publishedInCitation</b>
</field>
- <field type="one-way" custom-converter-id="hibernateProxyDeepConverter" custom-converter-param="authorTeam">
+ <field type="one-way" custom-converter-id="hibernateProxyDeepConverter" custom-converter-param="authorship">
<a>sec</a>
<b>accordingTo</b>
</field>
<a>sec</a>
<b>publishedInCitationRelation</b>
</field>
- <field type="one-way" custom-converter-id="hibernateProxyDeepConverter" custom-converter-param="authorTeam">
+ <field type="one-way" custom-converter-id="hibernateProxyDeepConverter" custom-converter-param="authorship">
<a>sec</a>
<b>accordingToRelation</b>
</field>
private IBook sec;
private IBook book;
private Reference<?> bookSection;
- private TeamOrPersonBase<?> authorTeam;
+ private TeamOrPersonBase<?> authorship;
private NonViralName<?> name;
private LSID lsid;
private TaxonDescription taxonDescription;
public void setUp() throws Exception {
lsid = new LSID("urn:lsid:example.org:taxonconcepts:1");
- authorTeam = Person.NewInstance();
- authorTeam.setTitleCache("authorTeam.titleCache", true);
- authorTeam.setLsid(new LSID("urn:lsid:dagg.org:agents:2"));
+ authorship = Person.NewInstance();
+ authorship.setTitleCache("authorship.titleCache", true);
+ authorship.setLsid(new LSID("urn:lsid:dagg.org:agents:2"));
name = BotanicalName.NewInstance(null);
name.setNameCache("nameCache");
name.setRank(Rank.SPECIES());
sec = ReferenceFactory.newBook();
- sec.setAuthorTeam(authorTeam);
+ sec.setAuthorship(authorship);
sec.setTitleCache("sec.titleCache", true);
sec.setLsid(new LSID("urn:lsid:example.org:references:1"));
book = ReferenceFactory.newBook();
book.setTitle("Book.title");
- book.setAuthorTeam(authorTeam);
+ book.setAuthorship(authorship);
book.setCreated(new DateTime(2004, 12, 25, 12, 0, 0, 0));
book.setDatePublished(new TimePeriod(new Partial(DateTimeFieldType.year(), 1800)));
book.setEdition("1st Edition");
bookSection.setInReference((Reference<?>)book);
bookSection.setPages("999 ff.");
bookSection.setTitle("BookSection.title");
- bookSection.setAuthorTeam(authorTeam);
+ bookSection.setAuthorship(authorship);
bookSection.setCreated(new DateTime(2004, 12, 25, 12, 0, 0, 0));
bookSection.setDatePublished(new TimePeriod(new Partial(DateTimeFieldType.year(), 1800)));
bookSection.setReferenceAbstract("referenceAbstract");
bookSection.setUri(new URI("http://persitent.books.foo/myBookSection"));
bookSection.setUuid(UUID.randomUUID());
- bookSection.addCredit(Credit.NewInstance(authorTeam, "Credits to the authorTeam"));
+ bookSection.addCredit(Credit.NewInstance(authorship, "Credits to the authorship"));
bookSection.addSource(IdentifiableSource.NewDataImportInstance("http://persitent.IdentifiableSources.foo/2"));
}
assertEquals("CdmBase.created should be copied into BaseThing.created",new DateTime(2004, 12, 25, 12, 0, 0, 0),taxonConcept.getCreated());
assertNotNull("TaxonBase.sec should be mapped into BaseThing.publishedInCitation",taxonConcept.getPublishedInCitation());
assertEquals("TaxonBase.sec.titleCache should be mapped into BaseThing.publishedInCitation.title",sec.getTitleCache(),taxonConcept.getPublishedInCitation().getTitle());
- assertNotNull("TaxonBase.sec.authorTeam should be mapped into TaxonConcept.accordingTo",taxonConcept.getAccordingTo());
- assertEquals("TaxonBase.sec.authorTeam.titleCache should be mapped into TaxonConcept.accordingTo.title",authorTeam.getTitleCache(),taxonConcept.getAccordingTo().getTitle());
+ assertNotNull("TaxonBase.sec.authorship should be mapped into TaxonConcept.accordingTo",taxonConcept.getAccordingTo());
+ assertEquals("TaxonBase.sec.authorship.titleCache should be mapped into TaxonConcept.accordingTo.title",authorship.getTitleCache(),taxonConcept.getAccordingTo().getTitle());
assertNotNull("TaxonBase.name should be mapped to TaxonConcept.hasName",taxonConcept.getHasName());
assertEquals("NonViralName.nameCache should be mapped to TaxonName.nameComplete",name.getNameCache(),taxonConcept.getHasName().getNameComplete());
assertNotNull("Taxon.relationsToThisTaxon should be copied into TaxonConcept.hasRelationship",taxonConcept.getHasRelationship());
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>cdmlib-parent</artifactId>
- <version>3.3.8-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
\r
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;\r
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;\r
+import eu.etaxonomy.cdm.api.service.dto.DerivateHierarchyDTO;\r
import eu.etaxonomy.cdm.api.service.pager.Pager;\r
import eu.etaxonomy.cdm.api.service.search.SearchResult;\r
import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;\r
public <T extends SpecimenOrObservationBase> List<T> listByAssociatedTaxon(Class<T> type, Set<TaxonRelationshipEdge> includeRelationships,\r
Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);\r
\r
+ /**\r
+ * Lists all instances of {@link FieldUnit} which are\r
+ * associated <b>directly or indirectly</b>with the <code>taxon</code> specified\r
+ * as parameter. "Indirectly" means that a sub derivate of the FieldUnit is\r
+ * directly associated with the given taxon.\r
+ * SpecimenOrObservationBase instances can be associated to taxa in multiple\r
+ * ways, all these possible relations are taken into account:\r
+ * <ul>\r
+ * <li>The {@link IndividualsAssociation} elements in a\r
+ * {@link TaxonDescription} contain {@link DerivedUnit}s</li>\r
+ * <li>{@link SpecimenTypeDesignation}s may be associated with any\r
+ * {@link HomotypicalGroup} related to the specific {@link Taxon}.</li>\r
+ * <li>A {@link Taxon} may be referenced by the {@link DeterminationEvent}\r
+ * of the {@link SpecimenOrObservationBase}</li>\r
+ * </ul>\r
+ * Further more there also can be taxa which are associated with the taxon\r
+ * in question (parameter associatedTaxon) by {@link TaxonRelationship}s. If\r
+ * the parameter <code>includeRelationships</code> is containing elements,\r
+ * these according {@TaxonRelationshipType}s and\r
+ * directional information will be used to collect further\r
+ * {@link SpecimenOrObservationBase} instances found this way.\r
+ *\r
+ * @param <T>\r
+ * @param type\r
+ * @param associatedTaxon\r
+ * @param Set<TaxonRelationshipVector> includeRelationships. TaxonRelationships will not be taken into account if this is <code>NULL</code>.\r
+ * @param maxDepth TODO\r
+ * @param pageSize\r
+ * @param pageNumber\r
+ * @param orderHints\r
+ * @param propertyPaths\r
+ * @return\r
+ */\r
+ public Collection<FieldUnit> listFieldUnitsByAssociatedTaxon(Set<TaxonRelationshipEdge> includeRelationships,\r
+ Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);\r
+\r
/**\r
* See {@link #listByAssociatedTaxon(Class, Set, Taxon, Integer, Integer, Integer, List, List)}\r
*\r
Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);\r
\r
/**\r
- * Retrieves all {@link FieldUnit}s for the {@link DerivedUnit} with the given {@link UUID}.<br>\r
- * @param derivedUnitUuid the UUID of the derived unit\r
- * @return a collection of FieldUnits this DerivedUnit was derived from or an empty collection if no FieldUnits were found\r
+ * Retrieves all {@link FieldUnit}s for the {@link SpecimenOrObservationBase} with the given {@link UUID}.<br>\r
+ * @param specimenUuid the UUID of the specimen\r
+ * @return either a collection of FieldUnits this specimen was derived from, the FieldUnit itself\r
+ * if this was a FieldUnit or an empty collection if no FieldUnits were found\r
*/\r
- public Collection<FieldUnit> getFieldUnits(UUID derivedUnitUuid);\r
+ public Collection<FieldUnit> getFieldUnits(UUID specimenUuid);\r
\r
/**\r
* @param clazz\r
*/\r
public boolean moveDerivate(SpecimenOrObservationBase<?> from, SpecimenOrObservationBase<?> to, DerivedUnit derivate);\r
\r
+ /**\r
+ * Assembles a {@link DerivateHierarchyDTO} for the given field unit uuid which is associated to the {@link Taxon}.<br>\r
+ * <br>\r
+ * For the meaning of "associated" see also {@link #listFieldUnitsByAssociatedTaxon(Set, Taxon, Integer, Integer, Integer, List, List)}\r
+ * @param fieldUnit\r
+ * @param associatedTaxonUuid\r
+ * @return\r
+ */\r
+ public DerivateHierarchyDTO assembleDerivateHierarchyDTO(FieldUnit fieldUnit, UUID associatedTaxonUuid);\r
+\r
/**\r
* Returns a collection of {@link ICdmBase}s that are not persisted via cascading when saving the given specimen (mostly DefinedTerms).\r
* @param specimen the specimen that is checked for non-cascaded elements.\r
package eu.etaxonomy.cdm.api.service;\r
\r
import java.io.IOException;\r
+import java.net.URI;\r
import java.util.ArrayList;\r
import java.util.Arrays;\r
import java.util.Collection;\r
import java.util.HashSet;\r
import java.util.List;\r
import java.util.Map;\r
+import java.util.Map.Entry;\r
import java.util.Set;\r
import java.util.UUID;\r
\r
import org.apache.lucene.search.SortField;\r
import org.hibernate.TransientObjectException;\r
import org.hibernate.search.spatial.impl.Rectangle;\r
+import org.joda.time.Partial;\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.stereotype.Service;\r
import org.springframework.transaction.annotation.Transactional;\r
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;\r
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator;\r
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;\r
+import eu.etaxonomy.cdm.api.service.dto.DerivateHierarchyDTO;\r
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;\r
import eu.etaxonomy.cdm.api.service.pager.Pager;\r
import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;\r
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
import eu.etaxonomy.cdm.model.CdmBaseType;\r
+import eu.etaxonomy.cdm.model.agent.AgentBase;\r
import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
import eu.etaxonomy.cdm.model.common.ICdmBase;\r
import eu.etaxonomy.cdm.model.location.Country;\r
import eu.etaxonomy.cdm.model.location.NamedArea;\r
import eu.etaxonomy.cdm.model.media.Media;\r
+import eu.etaxonomy.cdm.model.media.MediaRepresentation;\r
+import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;\r
import eu.etaxonomy.cdm.model.molecular.DnaSample;\r
import eu.etaxonomy.cdm.model.molecular.Sequence;\r
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;\r
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;\r
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;\r
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;\r
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;\r
import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;\r
+import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;\r
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;\r
import eu.etaxonomy.cdm.persistence.dao.initializer.AbstractBeanInitializer;\r
import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;\r
-import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;\r
\r
@Autowired\r
private AbstractBeanInitializer beanInitializer;\r
\r
- @Autowired\r
- private ITaxonDao taxonDao;\r
-\r
@Autowired\r
private ILuceneIndexToolProvider luceneIndexToolProvider;\r
\r
return pageByAssociatedTaxon(type, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths).getRecords();\r
}\r
\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listByAnyAssociation(java.lang.Class, java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)\r
+ */\r
+ @Override\r
+ public Collection<FieldUnit> listFieldUnitsByAssociatedTaxon(Set<TaxonRelationshipEdge> includeRelationships,\r
+ Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
+\r
+ if(!getSession().contains(associatedTaxon)){\r
+ associatedTaxon = (Taxon) taxonService.load(associatedTaxon.getUuid());\r
+ }\r
+\r
+ Set<FieldUnit> fieldUnits = new HashSet<FieldUnit>();\r
+\r
+ List<SpecimenOrObservationBase> records = pageByAssociatedTaxon(null, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths).getRecords();\r
+ for(SpecimenOrObservationBase<?> specimen:records){\r
+ fieldUnits.addAll(getFieldUnits(specimen.getUuid()));\r
+ }\r
+ return fieldUnits;\r
+ }\r
+\r
+ @Override\r
+ public DerivateHierarchyDTO assembleDerivateHierarchyDTO(FieldUnit fieldUnit, UUID associatedTaxonUuid){\r
+\r
+ if(!getSession().contains(fieldUnit)){\r
+ fieldUnit = (FieldUnit) load(fieldUnit.getUuid());\r
+ }\r
+ TaxonBase associatedTaxon = taxonService.load(associatedTaxonUuid);\r
+\r
+ DerivateHierarchyDTO dto = new DerivateHierarchyDTO();\r
+ Map<UUID, TypeDesignationStatusBase> typeSpecimenUUIDtoTypeDesignationStatus = new HashMap<UUID, TypeDesignationStatusBase>();\r
+\r
+ //gather types for this taxon name\r
+ TaxonNameBase<?,?> name = associatedTaxon.getName();\r
+ Set<?> typeDesignations = name.getSpecimenTypeDesignations();\r
+ for (Object object : typeDesignations) {\r
+ if(object instanceof SpecimenTypeDesignation){\r
+ SpecimenTypeDesignation specimenTypeDesignation = (SpecimenTypeDesignation)object;\r
+ DerivedUnit typeSpecimen = specimenTypeDesignation.getTypeSpecimen();\r
+ final TypeDesignationStatusBase typeStatus = specimenTypeDesignation.getTypeStatus();\r
+ typeSpecimenUUIDtoTypeDesignationStatus.put(typeSpecimen.getUuid(), typeStatus);\r
+ }\r
+ }\r
+\r
+ if(fieldUnit.getGatheringEvent()!=null){\r
+ GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent();\r
+ //Country\r
+ final NamedArea country = gatheringEvent.getCountry();\r
+ dto.setCountry(country!=null?country.getDescription():"");\r
+ //Collection\r
+ final AgentBase collector = gatheringEvent.getCollector();\r
+ final String fieldNumber = fieldUnit.getFieldNumber();\r
+ dto.setCollection(((collector!=null?collector:"") + " " + (fieldNumber!=null?fieldNumber:"")).trim());\r
+ //Date\r
+ final Partial gatheringDate = gatheringEvent.getGatheringDate();\r
+ dto.setDate(gatheringDate!=null?gatheringDate.toString():"");\r
+ }\r
+\r
+ //Taxon Name\r
+ dto.setTaxonName(associatedTaxon.getName().getFullTitleCache());\r
+\r
+\r
+ Collection<DerivedUnit> derivedUnits = new ArrayList<DerivedUnit>();\r
+ getDerivedUnitsFor(fieldUnit, derivedUnits);\r
+\r
+ //Herbaria map\r
+ Map<eu.etaxonomy.cdm.model.occurrence.Collection, Integer> collectionToCountMap = new HashMap<eu.etaxonomy.cdm.model.occurrence.Collection, Integer>();\r
+ //List of accession numbers for citation\r
+ List<String> preservedSpecimenAccessionNumbers = new ArrayList<String>();\r
+\r
+ //iterate over sub derivates\r
+ for (DerivedUnit derivedUnit : derivedUnits) {\r
+ //current accession number\r
+ String currentAccessionNumber = derivedUnit.getAccessionNumber()!=null?derivedUnit.getAccessionNumber():"";\r
+ //current herbarium\r
+ String currentHerbarium = "";\r
+ eu.etaxonomy.cdm.model.occurrence.Collection collection = derivedUnit.getCollection();\r
+ if(collection!=null){\r
+ currentHerbarium = collection.getCode()!=null?collection.getCode():"";\r
+ //count herbaria\r
+ Integer count = collectionToCountMap.get(collection);\r
+ if(count==null){\r
+ count = 1;\r
+ }\r
+ else{\r
+ count++;\r
+ }\r
+ collectionToCountMap.put(collection, count);\r
+ }\r
+ //check if derived unit is a type\r
+ if(typeSpecimenUUIDtoTypeDesignationStatus.keySet().contains(derivedUnit.getUuid())){\r
+ dto.setHasType(true);\r
+ TypeDesignationStatusBase typeDesignationStatus = typeSpecimenUUIDtoTypeDesignationStatus.get(derivedUnit.getUuid());\r
+ String typeStatus = typeDesignationStatus.getLabel();\r
+ dto.addTypes(typeStatus, currentAccessionNumber);\r
+ }\r
+ //assemble molecular data\r
+ if(derivedUnit instanceof DnaSample){//.getRecordBasis()==SpecimenOrObservationType.DnaSample){\r
+ dto.setHasDna(true);\r
+\r
+ DnaSample dna = (DnaSample)derivedUnit;\r
+ for(Sequence sequence:dna.getSequences()){\r
+ final URI boldUri = sequence.getBoldUri();\r
+ final DefinedTerm dnaMarker = sequence.getDnaMarker();\r
+ dto.addMolecularData(boldUri!=null?boldUri.toString():"", dnaMarker!=null?dnaMarker.getLabel():"[no marker]");\r
+ }\r
+ }\r
+ //assemble media data\r
+ else if(derivedUnit instanceof MediaSpecimen){\r
+\r
+ MediaSpecimen media = (MediaSpecimen)derivedUnit;\r
+ String mediaUriString = getMediaUriString(media);\r
+ if(media.getKindOfUnit()!=null){\r
+ if(media.getKindOfUnit().getUuid().equals(UUID.fromString("acda15be-c0e2-4ea8-8783-b9b0c4ad7f03"))){\r
+ dto.setHasSpecimenScan(true);\r
+ if(mediaUriString!=null){\r
+ final String imageLinkText = currentHerbarium+" "+currentAccessionNumber;\r
+ dto.addSpecimenScan(mediaUriString, !imageLinkText.equals(" ")?imageLinkText:"[no accession]");\r
+ }\r
+ }\r
+ else if(media.getKindOfUnit().getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){\r
+ dto.setHasDetailImage(true);\r
+ if(mediaUriString!=null){\r
+ String motif = "";\r
+ if(media.getMediaSpecimen()!=null && media.getMediaSpecimen().getTitle()!=null){\r
+ motif = media.getMediaSpecimen().getTitle().getText();\r
+ }\r
+ dto.addDetailImage(mediaUriString, motif!=null?motif:"[no motif]");\r
+ }\r
+ }\r
+ }\r
+ }\r
+ //assemble preserved specimen data\r
+ else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){\r
+ if(!currentAccessionNumber.isEmpty()){\r
+ preservedSpecimenAccessionNumbers.add(currentAccessionNumber);\r
+ }\r
+ }\r
+ }\r
+\r
+ final String separator = ", ";\r
+ //assemble citation\r
+ String citation = "";\r
+ citation += !dto.getCountry().isEmpty()?dto.getCountry()+separator:"";\r
+ if(fieldUnit.getGatheringEvent()!=null){\r
+ if(fieldUnit.getGatheringEvent().getLocality()!=null){\r
+ citation += fieldUnit.getGatheringEvent().getLocality().getText();\r
+ citation += separator;\r
+ }\r
+ if(fieldUnit.getGatheringEvent().getExactLocation()!=null\r
+ && fieldUnit.getGatheringEvent().getExactLocation().getLatitude()!=null\r
+ && fieldUnit.getGatheringEvent().getExactLocation().getLongitude()!=null){\r
+ citation += fieldUnit.getGatheringEvent().getExactLocation().getLatitude().toString();\r
+ citation += separator;\r
+ citation += fieldUnit.getGatheringEvent().getExactLocation().getLongitude().toString();\r
+ citation += separator;\r
+ }\r
+ }\r
+ citation += !dto.getCollection().isEmpty()?dto.getCollection()+separator:"";\r
+ if(!preservedSpecimenAccessionNumbers.isEmpty()){\r
+ citation += "(";\r
+ for(String accessionNumber:preservedSpecimenAccessionNumbers){\r
+ if(!accessionNumber.isEmpty()){\r
+ citation += accessionNumber+separator;\r
+ }\r
+ }\r
+ citation = removeTail(citation, separator);\r
+ citation += ")";\r
+ }\r
+ citation = removeTail(citation, separator);\r
+ dto.setCitation(citation);\r
+\r
+ //assemble herbaria string\r
+ String herbariaString = "";\r
+ for(Entry<eu.etaxonomy.cdm.model.occurrence.Collection, Integer> e:collectionToCountMap.entrySet()){\r
+ eu.etaxonomy.cdm.model.occurrence.Collection collection = e.getKey();\r
+ if(collection.getCode()!=null){\r
+ herbariaString += collection.getCode();\r
+ }\r
+ if(e.getValue()>1){\r
+ herbariaString += "("+e.getValue()+")";\r
+ }\r
+ herbariaString += separator;\r
+ }\r
+ herbariaString = removeTail(herbariaString, separator);\r
+ dto.setHerbarium(herbariaString);\r
+\r
+ return dto;\r
+ }\r
+\r
+\r
+ /**\r
+ * @param string\r
+ * @param tail\r
+ * @return\r
+ */\r
+ private String removeTail(String string, final String tail) {\r
+ if(string.endsWith(tail)){\r
+ string = string.substring(0, string.length()-tail.length());\r
+ }\r
+ return string;\r
+ }\r
+\r
+ private String getMediaUriString(MediaSpecimen mediaSpecimen){\r
+ String mediaUri = null;\r
+ Collection<MediaRepresentation> mediaRepresentations = mediaSpecimen.getMediaSpecimen().getRepresentations();\r
+ if(mediaRepresentations!=null && !mediaRepresentations.isEmpty()){\r
+ Collection<MediaRepresentationPart> mediaRepresentationParts = mediaRepresentations.iterator().next().getParts();\r
+ if(mediaRepresentationParts!=null && !mediaRepresentationParts.isEmpty()){\r
+ MediaRepresentationPart part = mediaRepresentationParts.iterator().next();\r
+ if(part.getUri()!=null){\r
+ mediaUri = part.getUri().toASCIIString();\r
+ }\r
+ }\r
+ }\r
+ return mediaUri;\r
+ }\r
+\r
+ private void getDerivedUnitsFor(SpecimenOrObservationBase<?> specimen, Collection<DerivedUnit> derivedUnits){\r
+ for(DerivationEvent derivationEvent:specimen.getDerivationEvents()){\r
+ for(DerivedUnit derivative:derivationEvent.getDerivatives()){\r
+ derivedUnits.add(derivative);\r
+ getDerivedUnitsFor(derivative, derivedUnits);\r
+ }\r
+ }\r
+ }\r
+\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.IOccurrenceService#pageByAssociatedTaxon(java.lang.Class, java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)\r
// Integer limit = PagerUtils.limitFor(pageSize);\r
// Integer start = PagerUtils.startFor(pageSize, pageNumber);\r
\r
- associatedTaxon = (Taxon) taxonDao.load(associatedTaxon.getUuid());\r
+ if(!getSession().contains(associatedTaxon)){\r
+ associatedTaxon = (Taxon) taxonService.load(associatedTaxon.getUuid());\r
+ }\r
\r
if(includeRelationships != null) {\r
taxa = taxonService.listRelatedTaxa(associatedTaxon, includeRelationships, maxDepth, null, null, propertyPaths);\r
String taxonUUID, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
\r
UUID uuid = UUID.fromString(taxonUUID);\r
- Taxon tax = (Taxon) taxonDao.load(uuid);\r
+ Taxon tax = (Taxon) taxonService.load(uuid);\r
//TODO REMOVE NULL STATEMENT\r
type=null;\r
return pageByAssociatedTaxon( type,includeRelationships,tax, maxDepth, pageSize, pageNumber, orderHints, propertyPaths );\r
//from which this DerivedUnit was derived until all FieldUnits are found.\r
\r
//FIXME: use HQL queries to increase performance\r
+ SpecimenOrObservationBase<?> specimen = load(derivedUnitUuid);\r
+// specimen = HibernateProxyHelper.deproxy(specimen, SpecimenOrObservationBase.class);\r
Collection<FieldUnit> fieldUnits = new ArrayList<FieldUnit>();\r
- SpecimenOrObservationBase derivedUnit = load(derivedUnitUuid);\r
- if(derivedUnit instanceof DerivedUnit){\r
- getFieldUnits((DerivedUnit) derivedUnit, fieldUnits);\r
+\r
+ if(specimen instanceof FieldUnit){\r
+ fieldUnits.add((FieldUnit) specimen);\r
+ }\r
+ else if(specimen instanceof DerivedUnit){\r
+ getFieldUnits((DerivedUnit) specimen, fieldUnits);\r
}\r
return fieldUnits;\r
}\r
*/\r
\r
Collection<ICdmBase> nonCascadedCdmEntities = new HashSet<ICdmBase>();\r
+\r
+ //Choose the correct entry point to traverse the graph (FieldUnit or DerivedUnit)\r
+\r
+ //FieldUnit\r
+ if(specimen instanceof FieldUnit){\r
+ nonCascadedCdmEntities.addAll(getFieldUnitNonCascadedAssociatedElements((FieldUnit)specimen));\r
+ }\r
+ //DerivedUnit\r
+ else if(specimen instanceof DerivedUnit){\r
+ DerivedUnit derivedUnit = (DerivedUnit)specimen;\r
+ if(derivedUnit.getDerivedFrom()!=null){\r
+ Collection<FieldUnit> fieldUnits = new ArrayList<FieldUnit>();\r
+ getFieldUnits(derivedUnit, fieldUnits);\r
+ for(FieldUnit fieldUnit:fieldUnits){\r
+ nonCascadedCdmEntities.addAll(getFieldUnitNonCascadedAssociatedElements(fieldUnit));\r
+ }\r
+ }\r
+ }\r
+ return nonCascadedCdmEntities;\r
+ }\r
+\r
+ private Collection<ICdmBase> getFieldUnitNonCascadedAssociatedElements(FieldUnit fieldUnit){\r
+ //get non cascaded element on SpecimenOrObservationBase level\r
+ Collection<ICdmBase> nonCascadedCdmEntities = getSpecimenOrObservationNonCascadedAssociatedElements(fieldUnit);\r
+\r
+ //get FieldUnit specific elements\r
+ GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent();\r
+ if(gatheringEvent!=null){\r
+ //country\r
+ if(gatheringEvent.getCountry()!=null){\r
+ nonCascadedCdmEntities.add(gatheringEvent.getCountry());\r
+ }\r
+ //collecting areas\r
+ for (NamedArea namedArea : gatheringEvent.getCollectingAreas()) {\r
+ nonCascadedCdmEntities.add(namedArea);\r
+ }\r
+ }\r
+ for (DerivationEvent derivationEvent : fieldUnit.getDerivationEvents()) {\r
+ for (DerivedUnit derivedUnit : derivationEvent.getDerivatives()) {\r
+ nonCascadedCdmEntities.addAll(getDerivedUnitNonCascadedAssociatedElements(derivedUnit));\r
+ }\r
+ }\r
+ return nonCascadedCdmEntities;\r
+ }\r
+\r
+ private Collection<ICdmBase> getDerivedUnitNonCascadedAssociatedElements(DerivedUnit derivedUnit){\r
+ //get non cascaded element on SpecimenOrObservationBase level\r
+ Collection<ICdmBase> nonCascadedCdmEntities = getSpecimenOrObservationNonCascadedAssociatedElements(derivedUnit);\r
+\r
+ //get DerivedUnit specific elements\r
+ if(derivedUnit.getCollection()!=null && derivedUnit.getCollection().getInstitute()!=null){\r
+ for (DefinedTerm type : derivedUnit.getCollection().getInstitute().getTypes()) {\r
+ nonCascadedCdmEntities.add(type);\r
+ }\r
+ }\r
+ if(derivedUnit.getPreservation()!=null && derivedUnit.getPreservation().getMedium()!=null){\r
+ nonCascadedCdmEntities.add(derivedUnit.getPreservation().getMedium());\r
+ }\r
+ if(derivedUnit.getStoredUnder()!=null){\r
+ nonCascadedCdmEntities.add(derivedUnit.getStoredUnder());\r
+ }\r
+ return nonCascadedCdmEntities;\r
+ }\r
+\r
+ /**\r
+ * @param specimen\r
+ * @return\r
+ */\r
+ private Collection<ICdmBase> getSpecimenOrObservationNonCascadedAssociatedElements(\r
+ SpecimenOrObservationBase<?> specimen) {\r
+ Collection<ICdmBase> nonCascadedCdmEntities = new HashSet<ICdmBase>();\r
//scan SpecimenOrObservationBase\r
for(DeterminationEvent determinationEvent:specimen.getDeterminations()){\r
//modifier\r
if(specimen.getSex()!=null){\r
nonCascadedCdmEntities.add(specimen.getSex());\r
}\r
-\r
- //FieldUnit\r
- if(specimen instanceof FieldUnit){\r
- FieldUnit fieldUnit = (FieldUnit)specimen;\r
- GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent();\r
- if(gatheringEvent!=null){\r
- //country\r
- if(gatheringEvent.getCountry()!=null){\r
- nonCascadedCdmEntities.add(gatheringEvent.getCountry());\r
- }\r
- //collecting areas\r
- for (NamedArea namedArea : gatheringEvent.getCollectingAreas()) {\r
- nonCascadedCdmEntities.add(namedArea);\r
- }\r
- }\r
- for (DerivationEvent derivationEvent : fieldUnit.getDerivationEvents()) {\r
- for (DerivedUnit derivedUnit : derivationEvent.getDerivatives()) {\r
- nonCascadedCdmEntities.addAll(getNonCascadedAssociatedElements(derivedUnit));\r
- }\r
- }\r
- }\r
-\r
- //DerivedUnit\r
- else if(specimen instanceof DerivedUnit){\r
- DerivedUnit derivedUnit = (DerivedUnit)specimen;\r
- if(derivedUnit.getCollection()!=null && derivedUnit.getCollection().getInstitute()!=null){\r
- for (DefinedTerm type : derivedUnit.getCollection().getInstitute().getTypes()) {\r
- nonCascadedCdmEntities.add(type);\r
- }\r
- }\r
- if(derivedUnit.getPreservation()!=null && derivedUnit.getPreservation().getMedium()!=null){\r
- nonCascadedCdmEntities.add(derivedUnit.getPreservation().getMedium());\r
- }\r
- if(derivedUnit.getStoredUnder()!=null){\r
- nonCascadedCdmEntities.add(derivedUnit.getStoredUnder());\r
- }\r
- }\r
return nonCascadedCdmEntities;\r
}\r
\r
--- /dev/null
+package eu.etaxonomy.cdm.api.service.dto;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.hibernate.envers.tools.Pair;
+
+public class DerivateHierarchyDTO {
+
+ //Filter Flags
+ private boolean hasDna;
+ private boolean hasDetailImage;
+
+ //Row Attributes
+ private String country;
+ private String collection;
+ private String date;
+ private String herbarium;
+ private boolean hasType;
+ private boolean hasSpecimenScan;
+
+ //Detail pop-down
+ private String taxonName;
+ private String protologue;
+ private String citation;
+ private Map<String, List<String>> types;
+ private List<Pair<String, String>> specimenScans;
+ private List<Pair<String, String>> molecularData;
+ private List<Pair<String, String>> detailImages;
+ /**
+ * @return the hasDna
+ */
+ public boolean isHasDna() {
+ return hasDna;
+ }
+ /**
+ * @param hasDna the hasDna to set
+ */
+ public void setHasDna(boolean hasDna) {
+ this.hasDna = hasDna;
+ }
+ /**
+ * @return the hasDetailImage
+ */
+ public boolean isHasDetailImage() {
+ return hasDetailImage;
+ }
+ /**
+ * @param hasDetailImage the hasDetailImage to set
+ */
+ public void setHasDetailImage(boolean hasDetailImage) {
+ this.hasDetailImage = hasDetailImage;
+ }
+ /**
+ * @return the country
+ */
+ public String getCountry() {
+ return country;
+ }
+ /**
+ * @param country the country to set
+ */
+ public void setCountry(String country) {
+ this.country = country;
+ }
+ /**
+ * @return the collection
+ */
+ public String getCollection() {
+ return collection;
+ }
+ /**
+ * @param collection the collection to set
+ */
+ public void setCollection(String collection) {
+ this.collection = collection;
+ }
+ /**
+ * @return the date
+ */
+ public String getDate() {
+ return date;
+ }
+ /**
+ * @param date the date to set
+ */
+ public void setDate(String date) {
+ this.date = date;
+ }
+ /**
+ * @return the herbarium
+ */
+ public String getHerbarium() {
+ return herbarium;
+ }
+ /**
+ * @param herbarium the herbarium to set
+ */
+ public void setHerbarium(String herbarium) {
+ this.herbarium = herbarium;
+ }
+ /**
+ * @return the hasType
+ */
+ public boolean isHasType() {
+ return hasType;
+ }
+ /**
+ * @param hasType the hasType to set
+ */
+ public void setHasType(boolean hasType) {
+ this.hasType = hasType;
+ }
+ /**
+ * @return the hasSpecimenScan
+ */
+ public boolean isHasSpecimenScan() {
+ return hasSpecimenScan;
+ }
+ /**
+ * @param hasSpecimenScan the hasSpecimenScan to set
+ */
+ public void setHasSpecimenScan(boolean hasSpecimenScan) {
+ this.hasSpecimenScan = hasSpecimenScan;
+ }
+ /**
+ * @return the taxonName
+ */
+ public String getTaxonName() {
+ return taxonName;
+ }
+ /**
+ * @param taxonName the taxonName to set
+ */
+ public void setTaxonName(String taxonName) {
+ this.taxonName = taxonName;
+ }
+ /**
+ * @return the protologue
+ */
+ public String getProtologue() {
+ return protologue;
+ }
+ /**
+ * @param protologue the protologue to set
+ */
+ public void setProtologue(String protologue) {
+ this.protologue = protologue;
+ }
+ /**
+ * @return the citation
+ */
+ public String getCitation() {
+ return citation;
+ }
+ /**
+ * @param citation the citation to set
+ */
+ public void setCitation(String citation) {
+ this.citation = citation;
+ }
+
+ /**
+ * @param types the types to set
+ */
+ public void setTypes(Map<String, List<String>> types) {
+ this.types = types;
+ }
+ /**
+ * @return the types
+ */
+ public Map<String, List<String>> getTypes() {
+ return types;
+ }
+ public void addTypes(String typeStatus, String accessionNumber){
+ if(types==null){
+ types = new HashMap<String, List<String>>();
+ }
+ List<String> list = types.get(typeStatus);
+ if(list==null){
+ list = new ArrayList<String>();
+ }
+ list.add(accessionNumber);
+ types.put(typeStatus, list);
+ }
+
+ /**
+ * @param specimenScans the specimenScans to set
+ */
+ public void setSpecimenScans(List<Pair<String, String>> specimenScans) {
+ this.specimenScans = specimenScans;
+ }
+ /**
+ * @return the specimenScans
+ */
+ public List<Pair<String, String>> getSpecimenScans() {
+ return specimenScans;
+ }
+
+ public void addSpecimenScan(String uri, String herbarium){
+ if(specimenScans==null){
+ specimenScans = new ArrayList<Pair<String,String>>();
+ }
+ specimenScans.add(new Pair<String, String>(uri, herbarium));
+ }
+
+ /**
+ * @return the molecularData
+ */
+ public List<Pair<String, String>> getMolecularData() {
+ return molecularData;
+ }
+
+ /**
+ * @param molecularData the molecularData to set
+ */
+ public void setMolecularData(List<Pair<String, String>> molecularData) {
+ this.molecularData = molecularData;
+ }
+
+ public void addMolecularData(String uri, String marker){
+ if(molecularData==null){
+ molecularData = new ArrayList<Pair<String,String>>();
+ }
+ molecularData.add(new Pair<String, String>(uri, marker));
+ }
+
+ /**
+ * @return the detailImages
+ */
+ public List<Pair<String, String>> getDetailImages() {
+ return detailImages;
+ }
+ /**
+ * @param detailImages the detailImages to set
+ */
+ public void setDetailImages(List<Pair<String, String>> detailImages) {
+ this.detailImages = detailImages;
+ }
+
+ public void addDetailImage(String uri, String motif){
+ if(detailImages==null){
+ detailImages = new ArrayList<Pair<String,String>>();
+ }
+ detailImages.add(new Pair<String, String>(uri, motif));
+ }
+
+
+}
Person author = Person.NewInstance();\r
author.setTitleCache("Author", true);\r
ref1.addAnnotation(Annotation.NewInstance("A1", Language.DEFAULT()));\r
- ref1.setAuthorTeam(author);\r
+ ref1.setAuthorship(author);\r
name.setBasionymAuthorTeam(author);\r
\r
name.setNomenclaturalReference(ref1);\r
BotanicalName storedUnder = BotanicalName.NewInstance(Rank.SPECIES());
mediaSpecimen.setStoredUnder(storedUnder);
PreservationMethod preservation = PreservationMethod.NewInstance(null, "My preservation");
+ preservation.setMedium(DefinedTerm.NewDnaMarkerInstance("medium", "medium", "medium"));//dummy defined term
mediaSpecimen.setPreservation(preservation);
//DerivationEvent
event.addOriginal(fieldUnit);
event.addDerivative(mediaSpecimen);
-
//SpecOrObservationBase
fieldUnit.setSex(DefinedTerm.SEX_FEMALE());
fieldUnit.setLifeStage(DefinedTerm.NewStageInstance("Live stage", "stage", null));
Reference<?> reference = getReference();
determinationEvent.addReference(reference);
- //save specimen
- assertEquals("Incorrect number of non cascaded CDM entities", 8, occurrenceService.getNonCascadedAssociatedElements(fieldUnit).size());
+ /*NonCascaded
+ * SOOB
+ * - sex (FEMALE)
+ * - stage (Live stage)
+ * - kindOfUnit (Kind of unit)
+ * GatheringEvent
+ * - country (GERMANY)
+ * - collectingArea (EUROPE)
+ * DerivedUnit
+ * - storedUnder (botanical name)
+ * DerivedUnit-> Collection -> institiute
+ * - type (botanical garden)
+ *
+ * */
+
+ assertEquals("Incorrect number of non cascaded CDM entities", 9, occurrenceService.getNonCascadedAssociatedElements(fieldUnit).size());
+ assertEquals("Incorrect number of non cascaded CDM entities", 9, occurrenceService.getNonCascadedAssociatedElements(mediaSpecimen).size());
}
private Reference<?> getReference() {
import org.unitils.dbunit.annotation.DataSet;\r
import org.unitils.spring.annotation.SpringBeanByType;\r
\r
+import eu.etaxonomy.cdm.api.cache.MockCdmCacher;\r
import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;\r
import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;\r
-import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;\r
import eu.etaxonomy.cdm.api.service.pager.Pager;\r
import eu.etaxonomy.cdm.api.service.search.ICdmMassIndexer;\r
import eu.etaxonomy.cdm.api.service.search.LuceneMultiSearchException;\r
import eu.etaxonomy.cdm.common.UTF8;\r
import eu.etaxonomy.cdm.common.monitor.DefaultProgressMonitor;\r
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
-import eu.etaxonomy.cdm.api.cache.MockCdmCacher;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
\r
private void testNewConfigControler(){\r
List<CdmPersistentDataSource> lsDataSources = CdmPersistentDataSource.getAllDataSources();\r
- DbSchemaValidation schema = DbSchemaValidation.VALIDATE;\r
+ DbSchemaValidation schema = DbSchemaValidation.CREATE;\r
System.out.println(lsDataSources);\r
ICdmDataSource dataSource;\r
\r
// DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;\r
\r
String server = "localhost";\r
- String database = "cdm_test";\r
+ String database = "cdm34";\r
// String database = "test";\r
String username = "edit";\r
dataSource = CdmDataSource.NewMySqlInstance(server, database, username, AccountStore.readOrStorePassword(server, database, username, null));\r
\r
\r
\r
- try {\r
- CdmUpdater updater = new CdmUpdater();\r
- updater.updateToCurrentVersion(dataSource, DefaultProgressMonitor.NewInstance());\r
- } catch (Exception e) {\r
-// xx;\r
- }\r
+// try {\r
+// CdmUpdater updater = new CdmUpdater();\r
+// updater.updateToCurrentVersion(dataSource, DefaultProgressMonitor.NewInstance());\r
+// } catch (Exception e) {\r
+//// xx;\r
+// }\r
\r
//CdmPersistentDataSource.save(dataSource.getName(), dataSource);\r
CdmApplicationController appCtr;\r
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.AGENTBASE_IDENTIFIER(
+ AGENTBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.AGENTBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ AGENTBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.AGENTBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.AGENTBASE_MARKER(
AGENTBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
PROTECTEDTITLECACHE BOOLEAN NOT NULL,
TITLECACHE VARCHAR(255),
MICROREFERENCE VARCHAR(255),
+ TIMEPERIOD_START VARCHAR(255),
+ TIMEPERIOD_FREETEXT VARCHAR(255),
+ TIMEPERIOD_END VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
NAME_ID INTEGER,
PROTECTEDTITLECACHE BOOLEAN,
TITLECACHE VARCHAR(255),
MICROREFERENCE VARCHAR(255),
+ TIMEPERIOD_START VARCHAR(255),
+ TIMEPERIOD_FREETEXT VARCHAR(255),
+ TIMEPERIOD_END VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
NAME_ID INTEGER,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_CREDIT_AUD;
+
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_DESCRIPTION(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ DESCRIPTION_ID INTEGER NOT NULL,
+ DESCRIPTION_MAPKEY_ID INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_DESCRIPTION;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_DESCRIPTION_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ DESCRIPTION_ID INTEGER NOT NULL,
+ DESCRIPTION_MAPKEY_ID INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_DESCRIPTION_AUD;
+
CREATE CACHED TABLE PUBLIC.CLASSIFICATION_EXTENSION(
CLASSIFICATION_ID INTEGER NOT NULL,
EXTENSIONS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_GEOSCOPE(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ GEOSCOPES_ID INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_GEOSCOPE;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_GEOSCOPE_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ GEOSCOPES_ID INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_GEOSCOPE_AUD;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_IDENTIFIER(
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.CLASSIFICATION_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ CLASSIFICATION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CLASSIFICATION_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.CLASSIFICATION_MARKER(
CLASSIFICATION_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.COLLECTION_IDENTIFIER(
+ COLLECTION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.COLLECTION_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ COLLECTION_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.COLLECTION_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.COLLECTION_MARKER(
COLLECTION_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_IDENTIFIER(
+ DEFINEDTERMBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ DEFINEDTERMBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DEFINEDTERMBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.DEFINEDTERMBASE_MARKER(
DEFINEDTERMBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_IDENTIFIER(
+ DESCRIPTIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ DESCRIPTIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DESCRIPTIONBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.DESCRIPTIONBASE_FEATURE(
DESCRIPTIONBASE_ID INTEGER NOT NULL,
DESCRIPTIVESYSTEM_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DETERMINATIONEVENT_REFERENCE_AUD;
+CREATE CACHED TABLE PUBLIC.DNAQUALITY(
+ ID INTEGER NOT NULL,
+ CREATED TIMESTAMP,
+ UUID VARCHAR(36) NOT NULL,
+ UPDATED TIMESTAMP,
+ PURIFICATIONMETHOD VARCHAR(255),
+ RATIOOFABSORBANCE260_230 DOUBLE,
+ RATIOOFABSORBANCE260_280 DOUBLE,
+ QUALITYCHECKDATE TIMESTAMP,
+ CONCENTRATION DOUBLE,
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CONCENTRATIONUNIT_ID INTEGER,
+ QUALITYTERM_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DNAQUALITY;
+CREATE CACHED TABLE PUBLIC.DNAQUALITY_AUD(
+ ID INTEGER NOT NULL,
+ REV INTEGER NOT NULL,
+ REVTYPE TINYINT,
+ CREATED TIMESTAMP,
+ UUID VARCHAR(36) NOT NULL,
+ UPDATED TIMESTAMP,
+ PURIFICATIONMETHOD VARCHAR(255),
+ RATIOOFABSORBANCE260_230 DOUBLE,
+ RATIOOFABSORBANCE260_280 DOUBLE,
+ QUALITYCHECKDATE TIMESTAMP,
+ CONCENTRATION DOUBLE,
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CONCENTRATIONUNIT_ID INTEGER,
+ QUALITYTERM_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DNAQUALITY_AUD;
+CREATE CACHED TABLE PUBLIC.ENTITYVALIDATIONRESULT(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ VALIDATEDENTITYID INTEGER,
+ VALIDATEDENTITYUUID VARCHAR(36),
+ VALIDATEDENTITYCLASS VARCHAR(255),
+ USERFRIENDLYDESCRIPTION VARCHAR(255),
+ USERFRIENDLYTYPENAME VARCHAR(255),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ CRUDEVENTTYPE VARCHAR(24)
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ENTITYVALIDATIONRESULT;
+CREATE CACHED TABLE PUBLIC.ENTITYCONSTRAINTVIOLATION(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ PROPERTYPATH VARCHAR(255),
+ USERFRIENDLYFIELDNAME VARCHAR(255),
+ INVALIDVALUE VARCHAR(255),
+ SEVERITY VARCHAR(24),
+ MESSAGE VARCHAR(255),
+ VALIDATOR VARCHAR(255),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ ENTITYVALIDATIONRESULT_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ENTITYCONSTRAINTVIOLATION;
CREATE CACHED TABLE PUBLIC.EXTENSION(
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.FEATURETREE_IDENTIFIER(
+ FEATURETREE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.FEATURETREE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ FEATURETREE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.FEATURETREE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.FEATURETREE_MARKER(
FEATURETREE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
UUID VARCHAR(36),
- AUTHORITY VARCHAR(255),
+ AUTHORITY VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.GRANTEDAUTHORITYIMPL;
DESCRIPTION_MAPKEY_ID INTEGER NOT NULL
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.INDIVIDUALASSOCIATION_LANGUAGESTRING;
+CREATE CACHED TABLE PUBLIC.IDENTIFIER(
+ ID INTEGER NOT NULL,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ UPDATED TIMESTAMP,
+ IDENTIFIEDOBJ_TYPE VARCHAR(255),
+ IDENTIFIEDOBJ_ID INTEGER,
+ IDENTIFIER VARCHAR(800),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ TYPE_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.IDENTIFIER_AUD(
+ ID INTEGER NOT NULL,
+ REV INTEGER NOT NULL,
+ REVTYPE TINYINT,
+ UUID VARCHAR(36),
+ CREATED TIMESTAMP,
+ UPDATED TIMESTAMP,
+ IDENTIFIEDOBJ_TYPE VARCHAR(255),
+ IDENTIFIEDOBJ_ID INTEGER,
+ IDENTIFIER VARCHAR(800),
+ CREATEDBY_ID INTEGER,
+ UPDATEDBY_ID INTEGER,
+ TYPE_ID INTEGER
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.INDIVIDUALASSOCIATION_LANGUAGESTRING_AUD(
REV INTEGER NOT NULL,
DESCRIPTIONELEMENTBASE_ID INTEGER NOT NULL,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.MEDIA_IDENTIFIER(
+ MEDIA_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.MEDIA_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ MEDIA_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEDIA_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.MEDIA_LANGUAGESTRING(
MEDIA_ID INTEGER NOT NULL,
TITLE_ID INTEGER NOT NULL,
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
UUID VARCHAR(36),
- NAME VARCHAR(255),
+ NAME VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.PERMISSIONGROUP;
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_IDENTIFIER(
+ POLYTOMOUSKEY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ POLYTOMOUSKEY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.POLYTOMOUSKEY_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.POLYTOMOUSKEY_MARKER(
POLYTOMOUSKEY_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
UUID VARCHAR(36),
UPDATED TIMESTAMP,
LABEL VARCHAR(255),
+ SEQUENCE_LENGTH INTEGER,
+ SEQUENCE_STRING CLOB,
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
PUBLISHEDIN_ID INTEGER,
- SEQUENCE_ID INTEGER,
PRIMARY KEY (ID)
);
CREATE TABLE PRIMER_AUD (
UUID VARCHAR(36),
UPDATED TIMESTAMP,
LABEL VARCHAR(255),
+ SEQUENCE_LENGTH INTEGER,
+ SEQUENCE_STRING CLOB,
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
PUBLISHEDIN_ID INTEGER,
- SEQUENCE_ID INTEGER
);
CREATE TABLE PRIMER_ANNOTATION (
PROBLEMSTARTS INTEGER NOT NULL,
PUBLISHER VARCHAR(255),
REFERENCEABSTRACT CLOB,
- SERIES VARCHAR(255),
SERIESPART VARCHAR(255),
TITLE CLOB,
ABBREVTITLE VARCHAR(255),
VOLUME VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
- AUTHORTEAM_ID INTEGER,
+ AUTHORSHIP_ID INTEGER,
INREFERENCE_ID INTEGER,
INSTITUTION_ID INTEGER,
SCHOOL_ID INTEGER
PROBLEMSTARTS INTEGER,
PUBLISHER VARCHAR(255),
REFERENCEABSTRACT CLOB,
- SERIES VARCHAR(255),
SERIESPART VARCHAR(255),
TITLE CLOB,
ABBREVTITLE VARCHAR(255),
VOLUME VARCHAR(255),
CREATEDBY_ID INTEGER,
UPDATEDBY_ID INTEGER,
- AUTHORTEAM_ID INTEGER,
+ AUTHORSHIP_ID INTEGER,
INREFERENCE_ID INTEGER,
INSTITUTION_ID INTEGER,
SCHOOL_ID INTEGER
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.REFERENCE_IDENTIFIER(
+ REFERENCE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.REFERENCE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ REFERENCE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.REFERENCE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.REFERENCE_MARKER(
REFERENCE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
CATALOGNUMBER VARCHAR(255),
COLLECTORSNUMBER VARCHAR(255),
EXSICCATUM VARCHAR(255),
+ ORIGINALLABELINFO CLOB,
FIELDNOTES VARCHAR(255),
FIELDNUMBER VARCHAR(255),
CREATEDBY_ID INTEGER,
PRESERVATION_ID INTEGER,
GATHERINGEVENT_ID INTEGER,
PRIMARYCOLLECTOR_ID INTEGER,
- MEDIASPECIMEN_ID INTEGER
+ MEDIASPECIMEN_ID INTEGER,
+ DNAQUALITY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE;
CREATE INDEX PUBLIC.SPECIMENOROBSERVATIONBASETITLECACHEINDEX ON PUBLIC.SPECIMENOROBSERVATIONBASE(TITLECACHE);
CATALOGNUMBER VARCHAR(255),
COLLECTORSNUMBER VARCHAR(255),
EXSICCATUM VARCHAR(255),
+ ORIGINALLABELINFO CLOB,
FIELDNOTES VARCHAR(255),
FIELDNUMBER VARCHAR(255),
CREATEDBY_ID INTEGER,
PRESERVATION_ID INTEGER,
GATHERINGEVENT_ID INTEGER,
PRIMARYCOLLECTOR_ID INTEGER,
- MEDIASPECIMEN_ID INTEGER
+ MEDIASPECIMEN_ID INTEGER,
+ DNAQUALITY_ID INTEGER
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_AUD;
CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_ANNOTATION(
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_EXTENSION_AUD;
+
+CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER(
+ SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.SPECIMENOROBSERVATIONBASE_IDENTIFIER_AUD;
+
CREATE CACHED TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_LANGUAGESTRING(
SPECIMENOROBSERVATIONBASE_ID INTEGER NOT NULL,
DEFINITION_ID INTEGER NOT NULL,
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TAXONBASE_IDENTIFIER(
+ TAXONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TAXONBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TAXONBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TAXONBASE_MARKER(
TAXONBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_IDENTIFIER(
+ TAXONNAMEBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TAXONNAMEBASE_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAXONNAMEBASE_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TAXONNAMEBASE_MARKER(
TAXONNAMEBASE_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
REVTYPE TINYINT
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_EXTENSION_AUD;
+CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_IDENTIFIER(
+ TERMVOCABULARY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_IDENTIFIER;
+CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_IDENTIFIER_AUD(
+ REV INTEGER NOT NULL,
+ TERMVOCABULARY_ID INTEGER NOT NULL,
+ IDENTIFIERS_ID INTEGER NOT NULL,
+ SORTINDEX INTEGER NOT NULL,
+ REVTYPE TINYINT
+);
+-- 0 +/- SELECT COUNT(*) FROM PUBLIC.TERMVOCABULARY_IDENTIFIER_AUD;
CREATE CACHED TABLE PUBLIC.TERMVOCABULARY_MARKER(
TERMVOCABULARY_ID INTEGER NOT NULL,
MARKERS_ID INTEGER NOT NULL
EMAILADDRESS VARCHAR(255),
ENABLED BOOLEAN NOT NULL,
PASSWORD VARCHAR(255),
- USERNAME VARCHAR(255),
+ USERNAME VARCHAR(255) NOT NULL,
CREATEDBY_ID INTEGER,
PERSON_ID INTEGER
);
ALTER TABLE PUBLIC.MULTIACCESSKEY_SCOPE ADD CONSTRAINT PUBLIC.FKCC6CE4F7546985E4 FOREIGN KEY(SCOPERESTRICTIONS_ID) REFERENCES PUBLIC.DEFINEDTERMBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.AGENTBASE_ADDRESS ADD CONSTRAINT PUBLIC.FK1EDFF7EB86EFC5D4 FOREIGN KEY(AGENTBASE_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.SPECIMENOROBSERVATIONBASE_MARKER ADD CONSTRAINT PUBLIC.FK8E6106C7777265A1 FOREIGN KEY(MARKERS_ID) REFERENCES PUBLIC.MARKER(ID) NOCHECK;
-ALTER TABLE PUBLIC.REFERENCE ADD CONSTRAINT PUBLIC.FK404D5F2B697665E FOREIGN KEY(AUTHORTEAM_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
+ALTER TABLE PUBLIC.REFERENCE ADD CONSTRAINT PUBLIC.FK404D5F2B697665E FOREIGN KEY(AUTHORSHIP_ID) REFERENCES PUBLIC.AGENTBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.CLASSIFICATION_CREDIT_AUD ADD CONSTRAINT PUBLIC.FK48AC64334869AAE FOREIGN KEY(REV) REFERENCES PUBLIC.AUDITEVENT(REVISIONNUMBER) NOCHECK;
ALTER TABLE PUBLIC.TAXONBASE ADD CONSTRAINT PUBLIC.FK9249B49B7C7B5AED FOREIGN KEY(TAXONOMICPARENTCACHE_ID) REFERENCES PUBLIC.TAXONBASE(ID) NOCHECK;
ALTER TABLE PUBLIC.AGENTBASE_ADDRESS ADD CONSTRAINT PUBLIC.FK1EDFF7EB50751EC5 FOREIGN KEY(CONTACT_ADDRESSES_ID) REFERENCES PUBLIC.ADDRESS(ID) NOCHECK;
<TAXONBASE DTYPE="Taxon" ID="2" CREATED="2009-06-25 14:42:27.0" UUID="617ea5fc-e6b4-4a6f-832d-bc8a1dc3f572" PROTECTEDTITLECACHE="false" DOUBTFUL="false" PUBLISH="true" USENAMECACHE="false" TAXONSTATUSUNKNOWN="false" TAXONOMICCHILDRENCOUNT="0" NAME_ID="1" SEC_ID="1"/>\r
<TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2009-06-25 14:42:27.0" UUID="d693f60e-8eb8-4bff-a6ca-a1a180a4ae52" PROTECTEDTITLECACHE="true" TITLECACHE="A name" FULLTITLECACHE=" (), null" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="()" NAMECACHE=" " PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1" NOMENCLATURALREFERENCE_ID="1" RANK_ID="765" BASIONYMAUTHORTEAM_ID="1"/>\r
\r
- <REFERENCE DTYPE="Article" ID="1" CREATED="2009-06-25 14:42:27.0" UUID="613980ac-9bd5-43b9-a374-d71e1794688f" PROTECTEDTITLECACHE="false" TITLECACHE="A Ref" PARSINGPROBLEM="0" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORTEAM_ID="1"/>\r
+ <REFERENCE DTYPE="Article" ID="1" CREATED="2009-06-25 14:42:27.0" UUID="613980ac-9bd5-43b9-a374-d71e1794688f" PROTECTEDTITLECACHE="false" TITLECACHE="A Ref" PARSINGPROBLEM="0" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORSHIP_ID="1"/>\r
<REFERENCE_ANNOTATION REFERENCE_ID="1" ANNOTATIONS_ID="1"/>\r
- <REFERENCE_AUD DTYPE="Article" ID="1" REV="1001" REVTYPE="0" CREATED="2009-06-25 14:42:27.0" UUID="613980ac-9bd5-43b9-a374-d71e1794688f" PROTECTEDTITLECACHE="false" TITLECACHE="Author, null" PARSINGPROBLEM="0" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORTEAM_ID="1"/>\r
+ <REFERENCE_AUD DTYPE="Article" ID="1" REV="1001" REVTYPE="0" CREATED="2009-06-25 14:42:27.0" UUID="613980ac-9bd5-43b9-a374-d71e1794688f" PROTECTEDTITLECACHE="false" TITLECACHE="Author, null" PARSINGPROBLEM="0" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORSHIP_ID="1"/>\r
\r
<HOMOTYPICALGROUP ID="1" CREATED="2009-06-25 14:42:27.0" UUID="2aaf6684-8eed-4c0d-9c34-fb9715f6b31e"/>\r
<HOMOTYPICALGROUP_AUD ID="1" REV="1001" REVTYPE="0" CREATED="2009-06-25 14:42:27.0" UUID="2aaf6684-8eed-4c0d-9c34-fb9715f6b31e"/>\r
<SYNONYMRELATIONSHIP ID="5004" CREATED="2013-10-31 20:42:25.0" UUID="85347138-9f79-4e04-9d6d-605b532be84d" UPDATED="2013-10-31 20:42:25.879" CITATIONMICROREFERENCE="[null]" ORIGINALNAMESTRING="[null]" DOUBTFUL="false" PARTIAL="false" PROPARTE="false" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" CITATION_ID="[null]" RELATEDFROM_ID="5008" RELATEDTO_ID="5009" TYPE_ID="848"/>
<SYNONYMRELATIONSHIP ID="5005" CREATED="2013-10-31 20:42:25.0" UUID="2fad10c7-0f46-43e0-bb87-54eaec57e5aa" UPDATED="2013-10-31 20:42:25.885" CITATIONMICROREFERENCE="[null]" ORIGINALNAMESTRING="[null]" DOUBTFUL="false" PARTIAL="false" PROPARTE="false" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" CITATION_ID="[null]" RELATEDFROM_ID="5010" RELATEDTO_ID="5011" TYPE_ID="848"/>
<SYNONYMRELATIONSHIP ID="5006" CREATED="2013-10-31 20:42:25.0" UUID="a1bf150f-3162-4465-a1ce-90b9dc0b8d50" UPDATED="2013-10-31 20:42:25.89" CITATIONMICROREFERENCE="[null]" ORIGINALNAMESTRING="[null]" DOUBTFUL="false" PARTIAL="false" PROPARTE="false" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" CITATION_ID="[null]" RELATEDFROM_ID="5012" RELATEDTO_ID="5013" TYPE_ID="848"/>
- <REFERENCE DTYPE="[null]" ID="5000" CREATED="2013-10-31 20:42:25.0" UUID="a3230e8e-b4db-4d06-a7ff-46927ed6f8fd" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5001" CREATED="2013-10-31 20:42:25.0" UUID="8ee7e8df-c63c-4757-bfe2-a78a877bdc29" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.1" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="book 0.1" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.1" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5002" CREATED="2013-10-31 20:42:25.0" UUID="2ab776da-f65b-4691-8bf8-7114326ddace" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5003" CREATED="2013-10-31 20:42:25.0" UUID="edacc607-4e72-4a62-b249-9491be7a3760" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined book -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined book -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BS" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5004" CREATED="2013-10-31 20:42:25.0" UUID="72bb1ad1-22de-4880-8b65-54fd8019d598" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5005" CREATED="2013-10-31 20:42:25.0" UUID="fef66ee4-8945-4fd1-8fff-3979a8345268" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5006" CREATED="2013-10-31 20:42:25.0" UUID="6386c7d9-3fdf-4f62-bd92-1c7e5289ce12" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5007" CREATED="2013-10-31 20:42:25.0" UUID="4c439f0e-40cd-4d60-a55b-9216eddb23a4" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5008" CREATED="2013-10-31 20:42:25.0" UUID="ccd96386-8cdd-4d22-850f-f1fbc682507c" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined book -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined book -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BS" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5009" CREATED="2013-10-31 20:42:25.0" UUID="f405211c-2b38-46b0-a1ce-6bff42f5eb30" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.1" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="book 0.1" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.1" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5010" CREATED="2013-10-31 20:42:25.0" UUID="93465a6f-bb82-452b-bcf2-b7ad2d67ad01" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5011" CREATED="2013-10-31 20:42:25.0" UUID="ee757b8f-3e09-4980-ad10-79875f27bdd5" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5012" CREATED="2013-10-31 20:42:25.0" UUID="43aabc9b-847c-47cc-8964-b586079844f2" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined book -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined book -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BS" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5013" CREATED="2013-10-31 20:42:25.0" UUID="f75f54af-3e42-4b58-97d9-8deb35976534" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5014" CREATED="2013-10-31 20:42:25.0" UUID="f441aeed-3671-4b56-a21c-58e1789fc6be" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5015" CREATED="2013-10-31 20:42:25.0" UUID="3ac5f37a-f786-41b1-96f1-3861424310bf" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5016" CREATED="2013-10-31 20:42:25.0" UUID="e92f1f54-1778-4723-9c37-95b8e167a996" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5017" CREATED="2013-10-31 20:42:25.0" UUID="c5f85ca3-a81c-48c4-bfba-df24e3fe448f" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined book -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined book -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BS" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5018" CREATED="2013-10-31 20:42:25.0" UUID="f7e1f4cf-b87b-41f2-a6f4-235e85280da6" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5019" CREATED="2013-10-31 20:42:25.0" UUID="8f83f7c1-3ca1-483f-b692-ff773141af7a" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.3" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="book 0.3" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.3" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5020" CREATED="2013-10-31 20:42:25.0" UUID="8016f44d-f1dd-4582-a855-2f0eee1ce153" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5021" CREATED="2013-10-31 20:42:25.0" UUID="5a56b540-0b85-4fa0-9d94-1fafdc734be9" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined book -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined book -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BS" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5022" CREATED="2013-10-31 20:42:25.0" UUID="d1c0d738-0255-49d8-8157-a757c0885f6c" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5023" CREATED="2013-10-31 20:42:25.0" UUID="d88f9294-3a9e-4bd3-8b34-f5ebf9deabe8" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5024" CREATED="2013-10-31 20:42:25.0" UUID="820b738e-a170-424c-a241-746787799d24" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5025" CREATED="2013-10-31 20:42:25.0" UUID="6a9f8265-2fed-4875-84f3-0a704fe89053" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.3" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="book 0.3" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.3" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5026" CREATED="2013-10-31 20:42:25.0" UUID="df1d6489-78c4-4cad-9dd3-758b88197a0d" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5027" CREATED="2013-10-31 20:42:25.0" UUID="62b13dee-50ba-4917-8a28-8a8a0c9f02a3" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5028" CREATED="2013-10-31 20:42:25.0" UUID="add0f6b9-e43e-493f-b469-e1d8a784345b" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5029" CREATED="2013-10-31 20:42:25.0" UUID="cebcd5be-5a61-4b37-a6b7-e0d50670b4cc" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.5" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="book 0.5" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.5" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5030" CREATED="2013-10-31 20:42:25.0" UUID="037df9cb-197f-4166-af69-48374e84fe1b" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5031" CREATED="2013-10-31 20:42:25.0" UUID="013aed79-53c2-4207-9b80-4f623d5a1b60" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.5" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="book 0.5" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.5" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5032" CREATED="2013-10-31 20:42:25.0" UUID="b78681a9-aba9-447b-b226-5d0bc5531717" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5033" CREATED="2013-10-31 20:42:25.0" UUID="f8278370-f394-468c-aff0-57edf7832d73" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 1.1" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="book 1.1" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 1.1" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5034" CREATED="2013-10-31 20:42:25.0" UUID="72a69067-8d53-4f43-9fa1-943a5d1881d9" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5035" CREATED="2013-10-31 20:42:25.0" UUID="1966d015-cd1c-4fcd-9053-ed04b4c6d692" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 1.1" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="book 1.1" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 1.1" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5036" CREATED="2013-10-31 20:42:25.0" UUID="0c6a2b54-9878-45eb-aa2a-e76fd65c355a" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5037" CREATED="2013-10-31 20:42:25.0" UUID="cae799a8-4de8-415f-8279-8ce2b82d7052" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 2.1" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="book 2.1" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 2.1" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="5038" CREATED="2013-10-31 20:42:25.0" UUID="501cbff4-8d61-44f7-930d-962e7ab8a67e" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 2.3" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="book 2.3" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 2.3" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5000" CREATED="2013-10-31 20:42:25.0" UUID="a3230e8e-b4db-4d06-a7ff-46927ed6f8fd" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5001" CREATED="2013-10-31 20:42:25.0" UUID="8ee7e8df-c63c-4757-bfe2-a78a877bdc29" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.1" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="book 0.1" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.1" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5002" CREATED="2013-10-31 20:42:25.0" UUID="2ab776da-f65b-4691-8bf8-7114326ddace" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5003" CREATED="2013-10-31 20:42:25.0" UUID="edacc607-4e72-4a62-b249-9491be7a3760" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined book -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined book -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BS" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5004" CREATED="2013-10-31 20:42:25.0" UUID="72bb1ad1-22de-4880-8b65-54fd8019d598" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5005" CREATED="2013-10-31 20:42:25.0" UUID="fef66ee4-8945-4fd1-8fff-3979a8345268" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5006" CREATED="2013-10-31 20:42:25.0" UUID="6386c7d9-3fdf-4f62-bd92-1c7e5289ce12" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5007" CREATED="2013-10-31 20:42:25.0" UUID="4c439f0e-40cd-4d60-a55b-9216eddb23a4" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5008" CREATED="2013-10-31 20:42:25.0" UUID="ccd96386-8cdd-4d22-850f-f1fbc682507c" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined book -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined book -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BS" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5009" CREATED="2013-10-31 20:42:25.0" UUID="f405211c-2b38-46b0-a1ce-6bff42f5eb30" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.1" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="book 0.1" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.1" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5010" CREATED="2013-10-31 20:42:25.0" UUID="93465a6f-bb82-452b-bcf2-b7ad2d67ad01" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5011" CREATED="2013-10-31 20:42:25.0" UUID="ee757b8f-3e09-4980-ad10-79875f27bdd5" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5012" CREATED="2013-10-31 20:42:25.0" UUID="43aabc9b-847c-47cc-8964-b586079844f2" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined book -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined book -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BS" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5013" CREATED="2013-10-31 20:42:25.0" UUID="f75f54af-3e42-4b58-97d9-8deb35976534" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5014" CREATED="2013-10-31 20:42:25.0" UUID="f441aeed-3671-4b56-a21c-58e1789fc6be" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5015" CREATED="2013-10-31 20:42:25.0" UUID="3ac5f37a-f786-41b1-96f1-3861424310bf" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5016" CREATED="2013-10-31 20:42:25.0" UUID="e92f1f54-1778-4723-9c37-95b8e167a996" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5017" CREATED="2013-10-31 20:42:25.0" UUID="c5f85ca3-a81c-48c4-bfba-df24e3fe448f" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined book -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined book -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BS" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5018" CREATED="2013-10-31 20:42:25.0" UUID="f7e1f4cf-b87b-41f2-a6f4-235e85280da6" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5019" CREATED="2013-10-31 20:42:25.0" UUID="8f83f7c1-3ca1-483f-b692-ff773141af7a" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.3" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="book 0.3" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.3" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5020" CREATED="2013-10-31 20:42:25.0" UUID="8016f44d-f1dd-4582-a855-2f0eee1ce153" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5021" CREATED="2013-10-31 20:42:25.0" UUID="5a56b540-0b85-4fa0-9d94-1fafdc734be9" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined book -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined book -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BS" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5022" CREATED="2013-10-31 20:42:25.0" UUID="d1c0d738-0255-49d8-8157-a757c0885f6c" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5023" CREATED="2013-10-31 20:42:25.0" UUID="d88f9294-3a9e-4bd3-8b34-f5ebf9deabe8" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="in - undefined journal -" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="in - undefined journal -" PROTECTEDABBREVTITLECACHE="false" REFTYPE="ART" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5024" CREATED="2013-10-31 20:42:25.0" UUID="820b738e-a170-424c-a241-746787799d24" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5025" CREATED="2013-10-31 20:42:25.0" UUID="6a9f8265-2fed-4875-84f3-0a704fe89053" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.3" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="book 0.3" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.3" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5026" CREATED="2013-10-31 20:42:25.0" UUID="df1d6489-78c4-4cad-9dd3-758b88197a0d" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5027" CREATED="2013-10-31 20:42:25.0" UUID="62b13dee-50ba-4917-8a28-8a8a0c9f02a3" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5028" CREATED="2013-10-31 20:42:25.0" UUID="add0f6b9-e43e-493f-b469-e1d8a784345b" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5029" CREATED="2013-10-31 20:42:25.0" UUID="cebcd5be-5a61-4b37-a6b7-e0d50670b4cc" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.5" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="book 0.5" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.5" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5030" CREATED="2013-10-31 20:42:25.0" UUID="037df9cb-197f-4166-af69-48374e84fe1b" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5031" CREATED="2013-10-31 20:42:25.0" UUID="013aed79-53c2-4207-9b80-4f623d5a1b60" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 0.5" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="book 0.5" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 0.5" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5032" CREATED="2013-10-31 20:42:25.0" UUID="b78681a9-aba9-447b-b226-5d0bc5531717" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5033" CREATED="2013-10-31 20:42:25.0" UUID="f8278370-f394-468c-aff0-57edf7832d73" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 1.1" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="book 1.1" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 1.1" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5034" CREATED="2013-10-31 20:42:25.0" UUID="72a69067-8d53-4f43-9fa1-943a5d1881d9" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5035" CREATED="2013-10-31 20:42:25.0" UUID="1966d015-cd1c-4fcd-9053-ed04b4c6d692" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 1.1" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="book 1.1" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 1.1" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5036" CREATED="2013-10-31 20:42:25.0" UUID="0c6a2b54-9878-45eb-aa2a-e76fd65c355a" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" ABBREVTITLE="[null]" ABBREVTITLECACHE="" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5037" CREATED="2013-10-31 20:42:25.0" UUID="cae799a8-4de8-415f-8279-8ce2b82d7052" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 2.1" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="book 2.1" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 2.1" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="5038" CREATED="2013-10-31 20:42:25.0" UUID="501cbff4-8d61-44f7-930d-962e7ab8a67e" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="book 2.3" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" DOI="[null]" NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="book 2.3" ABBREVTITLE="[null]" ABBREVTITLECACHE="book 2.3" PROTECTEDABBREVTITLECACHE="false" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
<DESCRIPTIONELEMENTBASE DTYPE="TextData" ID="5000" CREATED="2013-10-31 20:42:25.0" UUID="7c904cc1-a28e-4f7c-8414-c51defb0ef9b" UPDATED="2013-10-31 20:42:25.828" NAME="[null]" TIMEPERIOD_START="[null]" TIMEPERIOD_END="[null]" TIMEPERIOD_FREETEXT="[null]" ORDERRELEVANT="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" FEATURE_ID="937" INDESCRIPTION_ID="5000" AREA_ID="[null]" LANGUAGE_ID="[null]" STATUS_ID="[null]" ASSOCIATEDSPECIMENOROBSERVATION_ID="[null]" UNIT_ID="[null]" TAXON2_ID="[null]" FORMAT_ID="[null]"/>
<DESCRIPTIONELEMENTBASE DTYPE="CommonTaxonName" ID="5001" CREATED="2013-10-31 20:42:25.0" UUID="92e382fe-677c-40c0-98e7-4765c82b3a35" UPDATED="2013-10-31 20:42:25.83" NAME="Veilchen1" TIMEPERIOD_START="[null]" TIMEPERIOD_END="[null]" TIMEPERIOD_FREETEXT="[null]" ORDERRELEVANT="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" FEATURE_ID="933" INDESCRIPTION_ID="5000" AREA_ID="[null]" LANGUAGE_ID="349" STATUS_ID="[null]" ASSOCIATEDSPECIMENOROBSERVATION_ID="[null]" UNIT_ID="[null]" TAXON2_ID="[null]" FORMAT_ID="[null]"/>
<DESCRIPTIONELEMENTBASE DTYPE="TextData" ID="5002" CREATED="2013-10-31 20:42:25.0" UUID="1ad762da-e714-4dcf-a656-0e5d8edc2aae" UPDATED="[null]" NAME="[null]" TIMEPERIOD_START="[null]" TIMEPERIOD_END="[null]" TIMEPERIOD_FREETEXT="[null]" ORDERRELEVANT="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" FEATURE_ID="937" INDESCRIPTION_ID="5001" AREA_ID="[null]" LANGUAGE_ID="[null]" STATUS_ID="[null]" ASSOCIATEDSPECIMENOROBSERVATION_ID="[null]" UNIT_ID="[null]" TAXON2_ID="[null]" FORMAT_ID="[null]"/>
<TAXONNAMEBASE DTYPE="BotanicalName" ID="5006" CREATED="2013-09-23 16:10:04.0" UUID="04c329c3-bd61-423c-83dc-44f43970b62d" UPDATED="2013-09-23 16:10:04.552" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="Abies lasiocarpa" APPENDEDPHRASE="[null]" FULLTITLECACHE="Abies lasiocarpa" NOMENCLATURALMICROREFERENCE="[null]" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" GENUSORUNINOMIAL="[null]" HYBRIDFORMULA="false" INFRAGENERICEPITHET="[null]" INFRASPECIFICEPITHET="[null]" MONOMHYBRID="false" NAMECACHE="Abies lasiocarpa" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="true" SPECIFICEPITHET="[null]" TRINOMHYBRID="false" NAMEAPPROBATION="[null]" SUBGENUSAUTHORSHIP="[null]" ANAMORPHIC="false" CULTIVARNAME="[null]" ACRONYM="[null]" BREED="[null]" ORIGINALPUBLICATIONYEAR="[null]" PUBLICATIONYEAR="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" HOMOTYPICALGROUP_ID="5006" NOMENCLATURALREFERENCE_ID="[null]" RANK_ID="765" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]" EXBASIONYMAUTHORTEAM_ID="[null]" EXCOMBINATIONAUTHORTEAM_ID="[null]"/>
<SYNONYMRELATIONSHIP ID="5000" CREATED="2013-09-23 16:10:04.0" UUID="32b38626-d53c-4d14-9e03-fe7c4c1d3bb7" UPDATED="2013-09-23 16:10:04.533" CITATIONMICROREFERENCE="[null]" ORIGINALNAMESTRING="[null]" DOUBTFUL="false" PARTIAL="false" PROPARTE="false" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" CITATION_ID="[null]" RELATEDFROM_ID="5002" RELATEDTO_ID="5003" TYPE_ID="848"/>
<TAXONRELATIONSHIP ID="5000" CREATED="2013-09-23 16:10:04.0" UUID="65b5d706-f454-4345-997e-95a69803baa4" UPDATED="2013-09-23 16:10:04.616" CITATIONMICROREFERENCE="[null]" ORIGINALNAMESTRING="[null]" DOUBTFUL="false" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" CITATION_ID="[null]" RELATEDFROM_ID="5006" RELATEDTO_ID="5003" TYPE_ID="888"/>
- <REFERENCE REFTYPE="BK" ID="5000" CREATED="2013-09-23 16:10:04.0" UUID="2e47ff29-430c-4c5f-800a-a897441b557e" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Kohlbecker, A., Testcase standart views, 2013" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" NOMENCLATURALLYRELEVANT="false" PROTECTEDABBREVTITLECACHE="true" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE REFTYPE="BK" ID="5001" CREATED="2013-09-23 16:10:04.0" UUID="ddc0f5c2-6768-467e-8a03-8a5794602281" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Komarov, V. L., Flora SSSR 29" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" NOMENCLATURALLYRELEVANT="false" PROTECTEDABBREVTITLECACHE="true" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE REFTYPE="BK" ID="5000" CREATED="2013-09-23 16:10:04.0" UUID="2e47ff29-430c-4c5f-800a-a897441b557e" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Kohlbecker, A., Testcase standart views, 2013" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" NOMENCLATURALLYRELEVANT="false" PROTECTEDABBREVTITLECACHE="true" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE REFTYPE="BK" ID="5001" CREATED="2013-09-23 16:10:04.0" UUID="ddc0f5c2-6768-467e-8a03-8a5794602281" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Komarov, V. L., Flora SSSR 29" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" NOMENCLATURALLYRELEVANT="false" PROTECTEDABBREVTITLECACHE="true" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
<DESCRIPTIONELEMENTBASE DTYPE="Distribution" ID="5000" CREATED="2013-09-23 16:10:04.0" UUID="c8bef21f-1d2c-47c4-b415-64c38cdbba19" UPDATED="2013-09-23 16:10:04.565" ORDERRELEVANT="[null]" NAME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" FEATURE_ID="923" INDESCRIPTION_ID="5000" AREA_ID="664" LANGUAGE_ID="[null]" STATUS_ID="1993" ASSOCIATEDSPECIMENOROBSERVATION_ID="[null]" UNIT_ID="[null]" TAXON2_ID="[null]" FORMAT_ID="[null]"/>
<DESCRIPTIONELEMENTBASE DTYPE="TextData" ID="5001" CREATED="2013-09-23 16:10:04.0" UUID="6e0411eb-1889-46da-ad94-76bbee3094f9" UPDATED="2013-09-23 16:10:04.568" ORDERRELEVANT="[null]" NAME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" FEATURE_ID="937" INDESCRIPTION_ID="5000" AREA_ID="[null]" LANGUAGE_ID="[null]" STATUS_ID="[null]" ASSOCIATEDSPECIMENOROBSERVATION_ID="[null]" UNIT_ID="[null]" TAXON2_ID="[null]" FORMAT_ID="[null]"/>
<DESCRIPTIONELEMENTBASE DTYPE="TextData" ID="5002" CREATED="2013-09-23 16:10:04.0" UUID="45dadcf2-ed50-40d9-b3ff-0c34819d2ef5" UPDATED="2013-09-23 16:10:04.569" ORDERRELEVANT="[null]" NAME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" FEATURE_ID="937" INDESCRIPTION_ID="5000" AREA_ID="[null]" LANGUAGE_ID="[null]" STATUS_ID="[null]" ASSOCIATEDSPECIMENOROBSERVATION_ID="[null]" UNIT_ID="[null]" TAXON2_ID="[null]" FORMAT_ID="[null]"/>
<TAXONNAMEBASE DTYPE="BotanicalName" ID="1002" CREATED="2013-02-28 16:53:26.0" UUID="f4d3b31d-91c6-466a-b18f-d41e2d49fe7d" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="L. communis subsp. communis" APPENDEDPHRASE="[null]" FULLTITLECACHE="L. communis subsp. communis" NOMENCLATURALMICROREFERENCE="[null]" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" GENUSORUNINOMIAL="[null]" HYBRIDFORMULA="false" INFRAGENERICEPITHET="[null]" INFRASPECIFICEPITHET="[null]" MONOMHYBRID="false" NAMECACHE="subsp." PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="[null]" TRINOMHYBRID="false" NAMEAPPROBATION="[null]" SUBGENUSAUTHORSHIP="[null]" ANAMORPHIC="false" CULTIVARNAME="[null]" ACRONYM="[null]" BREED="[null]" ORIGINALPUBLICATIONYEAR="[null]" PUBLICATIONYEAR="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" HOMOTYPICALGROUP_ID="1002" NOMENCLATURALREFERENCE_ID="[null]" RANK_ID="763" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]" EXBASIONYMAUTHORTEAM_ID="[null]" EXCOMBINATIONAUTHORTEAM_ID="[null]"/>
<TAXONNAMEBASE DTYPE="BotanicalName" ID="1003" CREATED="2013-02-28 16:53:26.0" UUID="86bd7382-15c9-4180-bc1d-61cd2516defe" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="L. communis subsp. adenophora" APPENDEDPHRASE="[null]" FULLTITLECACHE="L. communis subsp. adenophora" NOMENCLATURALMICROREFERENCE="[null]" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" GENUSORUNINOMIAL="[null]" HYBRIDFORMULA="false" INFRAGENERICEPITHET="[null]" INFRASPECIFICEPITHET="[null]" MONOMHYBRID="false" NAMECACHE="subsp." PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="[null]" TRINOMHYBRID="false" NAMEAPPROBATION="[null]" SUBGENUSAUTHORSHIP="[null]" ANAMORPHIC="false" CULTIVARNAME="[null]" ACRONYM="[null]" BREED="[null]" ORIGINALPUBLICATIONYEAR="[null]" PUBLICATIONYEAR="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" HOMOTYPICALGROUP_ID="1003" NOMENCLATURALREFERENCE_ID="[null]" RANK_ID="763" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]" EXBASIONYMAUTHORTEAM_ID="[null]" EXCOMBINATIONAUTHORTEAM_ID="[null]"/>
<TAXONNAMEBASE DTYPE="BotanicalName" ID="1004" CREATED="2013-02-28 16:53:26.0" UUID="f77f56b8-a7ed-407a-b113-67ea0b25a6f4" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="L. communis subsp. alpina" APPENDEDPHRASE="[null]" FULLTITLECACHE="L. communis subsp. alpina" NOMENCLATURALMICROREFERENCE="[null]" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" GENUSORUNINOMIAL="[null]" HYBRIDFORMULA="false" INFRAGENERICEPITHET="[null]" INFRASPECIFICEPITHET="[null]" MONOMHYBRID="false" NAMECACHE="subsp." PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="[null]" TRINOMHYBRID="false" NAMEAPPROBATION="[null]" SUBGENUSAUTHORSHIP="[null]" ANAMORPHIC="false" CULTIVARNAME="[null]" ACRONYM="[null]" BREED="[null]" ORIGINALPUBLICATIONYEAR="[null]" PUBLICATIONYEAR="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" HOMOTYPICALGROUP_ID="1004" NOMENCLATURALREFERENCE_ID="[null]" RANK_ID="763" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]" EXBASIONYMAUTHORTEAM_ID="[null]" EXCOMBINATIONAUTHORTEAM_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="1000" CREATED="2013-02-28 16:53:26.0" UUID="94caeb80-51eb-4b77-9b99-fc8bfcee0d31" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Sp.Pl." DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" REFTYPE="DB" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
- <REFERENCE DTYPE="[null]" ID="1001" CREATED="2013-02-28 16:53:26.0" UUID="c9d8faac-9f6d-475c-ba9b-9a59b59b3679" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIES="[null]" SERIESPART="[null]" TITLE="[null]" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORTEAM_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="1000" CREATED="2013-02-28 16:53:26.0" UUID="94caeb80-51eb-4b77-9b99-fc8bfcee0d31" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="true" TITLECACHE="Sp.Pl." DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" REFTYPE="DB" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
+ <REFERENCE DTYPE="[null]" ID="1001" CREATED="2013-02-28 16:53:26.0" UUID="c9d8faac-9f6d-475c-ba9b-9a59b59b3679" UPDATED="[null]" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="" DATEPUBLISHED_END="[null]" DATEPUBLISHED_FREETEXT="[null]" DATEPUBLISHED_START="[null]" EDITION="[null]" EDITOR="[null]" ISBN="[null]" ISSN="[null]" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" ORGANIZATION="[null]" PAGES="[null]" PARSINGPROBLEM="0" PLACEPUBLISHED="[null]" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PUBLISHER="[null]" REFERENCEABSTRACT="[null]" SERIESPART="[null]" TITLE="[null]" REFTYPE="BK" URI="[null]" VOLUME="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" AUTHORSHIP_ID="[null]" INREFERENCE_ID="[null]" INSTITUTION_ID="[null]" SCHOOL_ID="[null]"/>
<CLASSIFICATION ID="1000" CREATED="2013-02-28 16:53:26.0" UUID="4b266053-a841-4980-b548-3f21d8d7d712" UPDATED="2013-02-28 16:53:26.168" LSID_AUTHORITY="[null]" LSID_LSID="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" LSID_REVISION="[null]" PROTECTEDTITLECACHE="false" TITLECACHE="TestClassification" MICROREFERENCE="[null]" CREATEDBY_ID="[null]" UPDATEDBY_ID="[null]" NAME_ID="1000" REFERENCE_ID="[null]" ROOTNODE_ID="1000"/>
<!-- <CLASSIFICATION_TAXONNODE CLASSIFICATION_ID="1000" ROOTNODES_ID="1000" SORTINDEX="0"/> -->
<modelVersion>4.0.0</modelVersion>
<groupId>eu.etaxonomy</groupId>
<artifactId>cdmlib-parent</artifactId>
- <version>3.3.8-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
<name>CDM Library</name>
<description>The Java implementation of the Common Data Model (CDM), the data model for EDIT's internet platform for cybertaxonomy.</description>
<url>http://cybertaxonomy.eu/cdmlib/</url>