Project

General

Profile

Download (6.34 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.BotanicalName;
33
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
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
 * @created 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
		TaxonNameBase<?,?> botanicalName = (BotanicalName)NonViralNameParserImpl.NewInstance().parseFullName(fullNameString);
60
		Taxon taxon = Taxon.NewInstance(botanicalName, sec);
61

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

    
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

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

    
110

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

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

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

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

    
138

    
139
		//type information
140
		//typified by
141

    
142

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

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

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