001    //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/model/metadata/iso19115/Citation.java $
002    /*
003     ----------------    FILE HEADER  ------------------------------------------
004     
005     This file is part of deegree.
006     Copyright (C) 2001-2008 by:
007     EXSE, Department of Geography, University of Bonn
008     http://www.giub.uni-bonn.de/deegree/
009     lat/lon GmbH
010     http://www.lat-lon.de
011     
012     This library is free software; you can redistribute it and/or
013     modify it under the terms of the GNU Lesser General Public
014     License as published by the Free Software Foundation; either
015     version 2.1 of the License, or (at your option) any later version.
016     
017     This library is distributed in the hope that it will be useful,
018     but WITHOUT ANY WARRANTY; without even the implied warranty of
019     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
020     Lesser General Public License for more details.
021     
022     You should have received a copy of the GNU Lesser General Public
023     License along with this library; if not, write to the Free Software
024     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
025     
026     Contact:
027     
028     Andreas Poth
029     lat/lon GmbH
030     Aennchenstr. 19
031     53115 Bonn
032     Germany
033     E-Mail: poth@lat-lon.de
034     
035     Prof. Dr. Klaus Greve
036     Department of Geography
037     University of Bonn
038     Meckenheimer Allee 166
039     53115 Bonn
040     Germany
041     E-Mail: greve@giub.uni-bonn.de
042     
043     
044     ---------------------------------------------------------------------------*/
045    
046    package org.deegree.model.metadata.iso19115;
047    
048    import java.util.ArrayList;
049    
050    /**
051     * 
052     * 
053     * 
054     * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
055     * @author last edited by: $Author: apoth $
056     * 
057     * @version. $Revision: 9343 $, $Date: 2007-12-27 14:30:32 +0100 (Do, 27 Dez 2007) $
058     */
059    public class Citation {
060    
061        private ArrayList<String> alternatetitle = null;
062    
063        private ArrayList<CitedResponsibleParty> citedresponsibleparty = null;
064    
065        private ArrayList<Date> date = null;
066    
067        private String edition = null;
068    
069        private String editiondate = null;
070    
071        private ArrayList<String> identifier = null;
072    
073        private String isbn = null;
074    
075        private String issn = null;
076    
077        private String issueidentification = null;
078    
079        private String seriesname = null;
080    
081        private String title = null;
082    
083        /**
084         * 
085         * @param alternatetitle
086         * @param citedresponsibleparty
087         * @param date
088         * @param edition
089         * @param editiondate
090         * @param identifier
091         * @param isbn
092         * @param issn
093         * @param issueidentification
094         * @param seriesname
095         * @param title
096         */
097        public Citation( String[] alternatetitle, CitedResponsibleParty[] citedresponsibleparty, Date[] date,
098                         String edition, String editiondate, String[] identifier, String isbn, String issn,
099                         String issueidentification, String seriesname, String title ) {
100    
101            this.alternatetitle = new ArrayList<String>();
102            this.citedresponsibleparty = new ArrayList<CitedResponsibleParty>();
103            this.date = new ArrayList<Date>();
104            this.identifier = new ArrayList<String>();
105    
106            setAlternateTitle( alternatetitle );
107            setCitedResponsibleParty( citedresponsibleparty );
108            setDate( date );
109            setEdition( edition );
110            setEditionDate( editiondate );
111            setIdentifier( identifier );
112            setIsbn( isbn );
113            setIssn( issn );
114            setIssueIdentification( issueidentification );
115            setSeriesName( seriesname );
116            setTitle( title );
117        }
118    
119        /**
120         * @return aleternate titles
121         * 
122         */
123        public String[] getAlternateTitle() {
124            return alternatetitle.toArray( new String[alternatetitle.size()] );
125        }
126    
127        /**
128         * @see Citation#getAlternateTitle()
129         */
130        public void addAlternateTitle( String alternatetitle ) {
131            this.alternatetitle.add( alternatetitle );
132        }
133    
134        /**
135         * @see Citation#getAlternateTitle()
136         */
137        public void setAlternateTitle( String[] alternatetitle ) {
138            this.alternatetitle.clear();
139            for ( int i = 0; i < alternatetitle.length; i++ ) {
140                this.alternatetitle.add( alternatetitle[i] );
141            }
142        }
143    
144        /**
145         * @return Cited Responsible Parties
146         */
147        public CitedResponsibleParty[] getCitedResponsibleParty() {
148            return citedresponsibleparty.toArray( new CitedResponsibleParty[citedresponsibleparty.size()] );
149        }
150    
151        /**
152         * @see Citation#getCitedResponsibleParty()
153         * @param citedresponsibleparty
154         */
155        public void addCitedResponsibleParty( CitedResponsibleParty citedresponsibleparty ) {
156            this.citedresponsibleparty.add( citedresponsibleparty );
157        }
158    
159        /**
160         * @see Citation#getCitedResponsibleParty()
161         * @param citedresponsibleparty
162         */
163        public void setCitedResponsibleParty( CitedResponsibleParty[] citedresponsibleparty ) {
164            this.citedresponsibleparty.clear();
165            for ( int i = 0; i < citedresponsibleparty.length; i++ ) {
166                this.citedresponsibleparty.add( citedresponsibleparty[i] );
167            }
168        }
169    
170        /**
171         * @return dates
172         * 
173         */
174        public Date[] getDate() {
175            return date.toArray( new Date[date.size()] );
176        }
177    
178        /**
179         * @see Citation#getDate()
180         */
181        public void addDate( Date date ) {
182            this.date.add( date );
183        }
184    
185        /**
186         * @see Citation#getDate()
187         */
188        public void setDate( Date[] date ) {
189            this.date.clear();
190            for ( int i = 0; i < date.length; i++ ) {
191                this.date.add( date[i] );
192            }
193        }
194    
195        /**
196         * @return String
197         * 
198         */
199        public String getEdition() {
200            return edition;
201        }
202    
203        /**
204         * @see Citation#getEdition()
205         * @param edition
206         */
207        public void setEdition( String edition ) {
208            this.edition = edition;
209        }
210    
211        /**
212         * @return edition date
213         */
214        public String getEditionDate() {
215            return editiondate;
216        }
217    
218        /**
219         * @see Citation#getEditionDate()
220         * @param editiondate
221         */
222        public void setEditionDate( String editiondate ) {
223            this.editiondate = editiondate;
224        }
225    
226        /**
227         * @return identifiers
228         * 
229         */
230        public String[] getIdentifier() {
231            return identifier.toArray( new String[identifier.size()] );
232        }
233    
234        /**
235         * @see Citation#getIdentifier()
236         * @param identifier
237         */
238        public void addIdentifier( String identifier ) {
239            this.identifier.add( identifier );
240        }
241    
242        /**
243         * @see Citation#getIdentifier()
244         * @param identifier
245         */
246        public void setIdentifier( String[] identifier ) {
247            this.identifier.clear();
248            for ( int i = 0; i < identifier.length; i++ ) {
249                this.identifier.add( identifier[i] );
250            }
251        }
252    
253        /**
254         * 
255         * @return isbn
256         */
257        public String getIsbn() {
258            return isbn;
259        }
260    
261        /**
262         * @see Citation#getIsbn()
263         * @param isbn
264         */
265        public void setIsbn( String isbn ) {
266            this.isbn = isbn;
267        }
268    
269        /**
270         * @return issn
271         * 
272         */
273        public String getIssn() {
274            return issn;
275        }
276    
277        /**
278         * @see Citation#getIssn()
279         * @param issn
280         */
281        public void setIssn( String issn ) {
282            this.issn = issn;
283        }
284    
285        /**
286         * @return Issue Identification
287         * 
288         */
289        public String getIssueIdentification() {
290            return issueidentification;
291        }
292    
293        /**
294         * @see Citation#getIssueIdentification()
295         * @param issueidentification
296         */
297        public void setIssueIdentification( String issueidentification ) {
298            this.issueidentification = issueidentification;
299        }
300    
301        /**
302         * @return sereis name
303         * 
304         */
305        public String getSeriesName() {
306            return seriesname;
307        }
308    
309        /**
310         * @see Citation#getSeriesName()
311         * @param seriesname
312         */
313        public void setSeriesName( String seriesname ) {
314            this.seriesname = seriesname;
315        }
316    
317        /**
318         * @return title
319         * 
320         */
321        public String getTitle() {
322            return title;
323        }
324    
325        /**
326         * @see Citation#getTitle()
327         * 
328         * @param title
329         */
330        public void setTitle( String title ) {
331            this.title = title;
332        }
333    
334        /**
335         * to String method
336         * 
337         * @param string
338         *            representation
339         */
340        public String toString() {
341            String ret = null;
342            ret = "alternatetitle = " + alternatetitle + "\n";
343            ret += "citedresponsibleparty = " + citedresponsibleparty + "\n";
344            ret += "date = " + date + "\n";
345            ret += "edition = " + edition + "\n";
346            ret += "editiondate = " + editiondate + "\n";
347            ret += "identifier = " + identifier + "\n";
348            ret += "isbn = " + isbn + "\n";
349            ret += "issn = " + issn + "\n";
350            ret += "issueidentification = " + issueidentification + "\n";
351            ret += "seriesname = " + seriesname + "\n";
352            ret += "title = " + title + "\n";
353            return ret;
354        }
355    
356    }