Project

General

Profile

Download (4.54 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 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.model.reference;
11

    
12
import org.apache.log4j.Logger;
13

    
14
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
15
import eu.etaxonomy.cdm.model.common.TimePeriod;
16

    
17
public class ReferenceFactory {
18
	private static final Logger logger = Logger.getLogger(ReferenceFactory.class);
19

    
20
	public static Reference newArticle(){
21
		return new Reference(ReferenceType.Article);
22
	}
23

    
24
	public static Reference newJournal(){
25
	    return new Reference(ReferenceType.Journal);
26
	}
27

    
28
	public static Reference newBook(){
29
	    return new Reference(ReferenceType.Book);
30
	}
31

    
32
	public static Reference newThesis(){
33
	    return new Reference(ReferenceType.Thesis);
34
	}
35

    
36
	public static Reference newInProceedings(){
37
	    return new Reference(ReferenceType.InProceedings);
38
	}
39

    
40
	public static Reference newProceedings(){
41
	    return new Reference(ReferenceType.Proceedings);
42
	}
43

    
44
	public static Reference newBookSection(){
45
	    return new Reference(ReferenceType.BookSection);
46
	}
47

    
48
	public static Reference newSection(){
49
	    return new Reference(ReferenceType.Section);
50
	}
51

    
52
	public static Reference newCdDvd(){
53
	    return new Reference(ReferenceType.CdDvd);
54
	}
55

    
56
	public static Reference newGeneric(){
57
	    return new Reference(ReferenceType.Generic);
58
	}
59

    
60
	public static Reference newMap(){
61
	    return new Reference(ReferenceType.Map);
62
	}
63

    
64
	public static Reference newReport(){
65
	    return new Reference(ReferenceType.Report);
66
	}
67

    
68
	public static Reference newWebPage(){
69
	    return new Reference(ReferenceType.WebPage);
70
	}
71

    
72
	public static Reference newDatabase(){
73
	    return new Reference(ReferenceType.Database);
74
	}
75

    
76
	public static Reference newPrintSeries() {
77
	    return new Reference(ReferenceType.PrintSeries);
78
	}
79

    
80
    public static Reference newPersonalCommunication() {
81
        return new Reference(ReferenceType.PersonalCommunication);
82
    }
83

    
84
    public static Reference newPatent() {
85
        return new Reference(ReferenceType.Patent);
86
    }
87

    
88
// ******************** Short cuts **********************************************/
89

    
90
	/**
91
	 * Creates a new print series instance with a given title string.
92
	 */
93
	public static Reference newPrintSeries(String series) {
94
		Reference refBase = newPrintSeries();
95
		refBase.setTitle(series);
96
		return refBase;
97
	}
98

    
99
	public static Reference newBookSection(Reference book, TeamOrPersonBase partAuthor,
100
			String sectionTitle, String pages) {
101
		Reference bookSection = newBookSection();
102
		bookSection.setInBook(book);
103
		bookSection.setAuthorship(partAuthor);
104
		bookSection.setTitle(sectionTitle);
105
		bookSection.setPages(pages);
106
		return bookSection;
107
	}
108

    
109
	public static Reference newArticle(Reference inJournal, TeamOrPersonBase partAuthor,
110
			String title, String pages, String seriesPart, String volume, TimePeriod datePublished) {
111
		IArticle article = newArticle();
112
		article.setInReference(inJournal);
113
		article.setAuthorship(partAuthor);
114
		article.setTitle(title);
115
		article.setPages(pages);
116
		article.setVolume(volume);
117
		article.setSeriesPart(seriesPart);
118
		article.setDatePublished(datePublished);
119
		return (Reference)article;
120
	}
121

    
122
//****************************** by Type **************************************/
123

    
124
	/**
125
	 * Returns a new reference for the according reference type. If reference type is <code>null</code>,
126
	 * <code>null</code> is returned.
127
	 * @param referenceType
128
	 * @return
129
	 */
130
	public static Reference newReference(ReferenceType referenceType) {
131
		if (referenceType == null){
132
			return null;
133
		}
134
		switch(referenceType){
135
			case Article:
136
				return newArticle();
137
			case Journal:
138
				return newJournal();
139
			case BookSection:
140
				return newBookSection();
141
			case CdDvd:
142
				return newCdDvd();
143
			case Database:
144
				return newDatabase();
145
			case InProceedings:
146
				return newInProceedings();
147
			case Map:
148
				return newMap();
149
			case Patent:
150
				return newPatent();
151
			case PersonalCommunication:
152
				return newPersonalCommunication();
153
			case PrintSeries:
154
				return newPrintSeries();
155
			case Proceedings:
156
				return newProceedings();
157
			case Report:
158
				return newReport();
159
			case Thesis:
160
				return newThesis();
161
			case WebPage:
162
				return newWebPage();
163
			case Book:
164
				return newBook();
165
			case Generic:
166
				return newGeneric();
167
			case Section:
168
				return newSection();
169
			default:
170
				logger.warn("Unknown reference type " + referenceType.getMessage() + ". Created generic reference instead.");
171
				return newGeneric();
172
		}
173
	}
174

    
175
}
(24-24/27)