Project

General

Profile

Download (6.37 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.cdm.test.function;
11

    
12
import java.net.URI;
13
import java.net.URISyntaxException;
14
import java.util.Calendar;
15
import java.util.Set;
16

    
17
import org.apache.log4j.Logger;
18

    
19
import eu.etaxonomy.cdm.model.agent.AgentBase;
20
import eu.etaxonomy.cdm.model.agent.Institution;
21
import eu.etaxonomy.cdm.model.agent.Person;
22
import eu.etaxonomy.cdm.model.common.Annotation;
23
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
24
import eu.etaxonomy.cdm.model.common.Language;
25
import eu.etaxonomy.cdm.model.common.LanguageString;
26
import eu.etaxonomy.cdm.model.location.Country;
27
import eu.etaxonomy.cdm.model.location.NamedArea;
28
import eu.etaxonomy.cdm.model.location.NamedAreaType;
29
import eu.etaxonomy.cdm.model.media.Media;
30
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
31
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
32
import eu.etaxonomy.cdm.model.name.INonViralName;
33
import eu.etaxonomy.cdm.model.name.TaxonName;
34
import eu.etaxonomy.cdm.model.occurrence.Collection;
35
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
36
import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
37
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
38
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
39
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
40
import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
41
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
42
import eu.etaxonomy.cdm.model.reference.Reference;
43
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
44
import eu.etaxonomy.cdm.model.taxon.Taxon;
45
import eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl;
46

    
47
/**
48
 * @author AM
49
 * @since 09.05.2008
50
 * @version 1.0
51
 */
52
public class TestSpecimen {
53
	private static final Logger logger = Logger.getLogger(TestSpecimen.class);
54

    
55
	public void testSpecimen(){
56
		logger.info("Create test taxon ...");
57
		Reference sec = ReferenceFactory.newDatabase();
58
		String fullNameString = "Acanthostyles saucechicoensis (Hieron.) R.M. King & H. Rob.";
59
		INonViralName name = NonViralNameParserImpl.NewInstance().parseFullName(fullNameString);
60
		TaxonName botanicalName = TaxonName.castAndDeproxy(name);
61
		Taxon taxon = Taxon.NewInstance(botanicalName, sec);
62

    
63
		Collection collection = Collection.NewInstance();
64
		String collectionCode = "ABCDE";
65
		collection.setCode(collectionCode);
66
		Institution institution = Institution.NewInstance();
67
		String institutionCode = "Inst444";
68
		institution.setCode(institutionCode);
69
		collection.setInstitute(institution);
70

    
71

    
72
		logger.info("Create determination event");
73
		DeterminationEvent determinationEvent = DeterminationEvent.NewInstance();
74
		determinationEvent.setTaxon(taxon);
75
		Person actor = Person.NewTitledInstance("J. M�ller (JE)");
76
		determinationEvent.setActor(actor);
77

    
78
		logger.info("Create gathering event");
79
		GatheringEvent gatheringEvent = GatheringEvent.NewInstance();
80
		AgentBase<?> gatherer = Person.NewTitledInstance("Lorentz,P.G. s.n.");
81
		gatheringEvent.setActor(gatherer);
82
		Calendar gatheringDate = Calendar.getInstance();
83
		int year = 1922;
84
		int month = 10;
85
		int date = 05;
86
		gatheringDate.set(year, month, date);
87

    
88
		gatheringEvent.setGatheringDate(gatheringDate);
89

    
90
		logger.info("Create locality");
91
		NamedArea namedArea = NamedArea.NewInstance();
92
		Country country = Country.ARGENTINAARGENTINEREPUBLIC();
93
		namedArea.addCountry(country);
94
		namedArea.setType(NamedAreaType.ADMINISTRATION_AREA());
95
		// XX
96

    
97
		gatheringEvent.addCollectingArea(namedArea);
98
		String localityString = "Sierras Pampeanas, Sauce Chico";
99
		LanguageString locality = LanguageString.NewInstance(localityString, Language.DEFAULT());
100
		gatheringEvent.setLocality(locality);
101

    
102

    
103
		logger.info("Create new specimen ...");
104
		DerivedUnit specimen = DerivedUnit.NewPreservedSpecimenInstance();
105
		specimen.setCatalogNumber("JE 00004506");
106
		specimen.setStoredUnder(botanicalName);   //??
107
		specimen.setCollection(collection);
108
		String annotation = "originally designated as type specimen 2000, but corrected 2005-11";
109
		specimen.addAnnotation(Annotation.NewDefaultLanguageInstance(annotation));
110

    
111

    
112
		Media media = Media.NewInstance();
113
		URI uri = null;
114
		try {
115
			uri = new URI("http://131.130.131.9/database/img/imgBrowser.php?ID=50599");
116
		} catch (URISyntaxException e) {
117
			throw new RuntimeException(e);
118
		}
119
		String mimeType = null;
120
		Integer size = null;
121
		MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance(mimeType, "jpg");
122
		media.addRepresentation(mediaRepresentation);
123

    
124
		MediaRepresentationPart mediaRepresentationPart = MediaRepresentationPart.NewInstance(uri, size);
125
		mediaRepresentation.addRepresentationPart(mediaRepresentationPart);
126
//		specimen.addMedia(media);    #3597
127

    
128
		//Original ID
129
		String id = "22";
130
		IdentifiableSource source = IdentifiableSource.NewDataImportInstance(id);
131
		specimen.addSource(source);
132

    
133
		FieldUnit fieldUnit = FieldUnit.NewInstance();
134
		DerivationEvent derivationEvent = DerivationEvent.NewInstance(DerivationEventType.GATHERING_IN_SITU());
135
		derivationEvent.addDerivative(specimen);
136
		fieldUnit.addDerivationEvent(derivationEvent);
137
		fieldUnit.setGatheringEvent(gatheringEvent);
138

    
139

    
140
		//type information
141
		//typified by
142

    
143

    
144
		logger.warn("Specimen: " + specimen);
145
		DerivationEvent dEvent = specimen.getDerivedFrom();
146
		logger.warn("DerivationEvent: " + dEvent);
147
		Set<SpecimenOrObservationBase> originals = dEvent.getOriginals();
148
		logger.warn("Originals: " + originals);
149
		for (SpecimenOrObservationBase original : originals){
150
			if (original instanceof FieldUnit){
151
				FieldUnit fieldUnit2 = (FieldUnit)original;
152
				logger.warn("FieldUnit: " + fieldUnit2);
153
				GatheringEvent gatheringEvent2= fieldUnit2.getGatheringEvent();
154
				logger.warn("GatheringEvent: " + gatheringEvent2);
155
				AgentBase<?> gatherer2 = gatheringEvent2.getCollector();
156
				logger.warn("Gatherer: "+  gatherer2);
157
			}
158
		}
159
	}
160

    
161
	private void test(){
162
		System.out.println("Start ...");
163
		this.testSpecimen();
164
		System.out.println("\nEnd ...");
165
	}
166

    
167
	/**
168
	 * @param args
169
	 */
170
	public static void  main(String[] args) {
171
		TestSpecimen sc = new TestSpecimen();
172
    	sc.test();
173
	}
174
}
(5-5/5)