Project

General

Profile

Download (6.32 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
 */
51
public class TestSpecimen {
52

    
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
		logger.info("Create determination event");
72
		DeterminationEvent determinationEvent = DeterminationEvent.NewInstance();
73
		determinationEvent.setTaxon(taxon);
74
		Person actor = Person.NewTitledInstance("J. M�ller (JE)");
75
		determinationEvent.setActor(actor);
76

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

    
87
		gatheringEvent.setGatheringDate(gatheringDate);
88

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

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

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

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

    
121
		MediaRepresentationPart mediaRepresentationPart = MediaRepresentationPart.NewInstance(uri, size);
122
		mediaRepresentation.addRepresentationPart(mediaRepresentationPart);
123
//		specimen.addMedia(media);    #3597
124

    
125
		//Original ID
126
		String id = "22";
127
		IdentifiableSource source = IdentifiableSource.NewDataImportInstance(id);
128
		specimen.addSource(source);
129

    
130
		FieldUnit fieldUnit = FieldUnit.NewInstance();
131
		DerivationEvent derivationEvent = DerivationEvent.NewInstance(DerivationEventType.GATHERING_IN_SITU());
132
		derivationEvent.addDerivative(specimen);
133
		fieldUnit.addDerivationEvent(derivationEvent);
134
		fieldUnit.setGatheringEvent(gatheringEvent);
135

    
136
		//type information
137
		//typified by
138

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

    
156
	private void test(){
157
		System.out.println("Start ...");
158
		this.testSpecimen();
159
		System.out.println("\nEnd ...");
160
	}
161

    
162
	public static void  main(String[] args) {
163
		TestSpecimen sc = new TestSpecimen();
164
    	sc.test();
165
	}
166
}
(5-5/5)