001    //$HeadURL: svn+ssh://jwilden@svn.wald.intevation.org/deegree/base/branches/2.5_testing/src/org/deegree/model/metadata/iso19115/CitedResponsibleParty.java $
002    /*
003    /*----------------------------------------------------------------------------
004     This file is part of deegree, http://deegree.org/
005     Copyright (C) 2001-2009 by:
006       Department of Geography, University of Bonn
007     and
008       lat/lon GmbH
009    
010     This library is free software; you can redistribute it and/or modify it under
011     the terms of the GNU Lesser General Public License as published by the Free
012     Software Foundation; either version 2.1 of the License, or (at your option)
013     any later version.
014     This library is distributed in the hope that it will be useful, but WITHOUT
015     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
016     FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
017     details.
018     You should have received a copy of the GNU Lesser General Public License
019     along with this library; if not, write to the Free Software Foundation, Inc.,
020     59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
021    
022     Contact information:
023    
024     lat/lon GmbH
025     Aennchenstr. 19, 53177 Bonn
026     Germany
027     http://lat-lon.de/
028    
029     Department of Geography, University of Bonn
030     Prof. Dr. Klaus Greve
031     Postfach 1147, 53001 Bonn
032     Germany
033     http://www.geographie.uni-bonn.de/deegree/
034    
035     e-mail: info@deegree.org
036    ----------------------------------------------------------------------------*/
037    
038    package org.deegree.model.metadata.iso19115;
039    
040    import java.io.Serializable;
041    import java.util.ArrayList;
042    import java.util.Arrays;
043    import java.util.List;
044    
045    /**
046     * CitedResponsibleParty_Impl.java
047     *
048     * Created on 16. September 2002, 09:55
049     * <p>
050     * ----------------------------------------------------------------------
051     * </p>
052     *
053     * @author <a href="mailto:schaefer@lat-lon.de">Axel Schaefer</a>
054     * @version $Revision: 18195 $ $Date: 2009-06-18 17:55:39 +0200 (Do, 18 Jun 2009) $ *
055     */
056    public class CitedResponsibleParty implements Serializable {
057    
058        private static final long serialVersionUID = 5912684530267785339L;
059    
060        private List<ContactInfo> contactinfo = null;
061    
062        private List<String> individualname = null;
063    
064        private List<String> organisationname = null;
065    
066        private List<String> positionname = null;
067    
068        private List<RoleCode> rolecode = null;
069    
070        /**
071         * Creates new instance through <code>List</code>s.
072         *
073         * @param contactInfo
074         * @param individualName
075         * @param organizationName
076         * @param positionName
077         * @param roleCode
078         */
079        public CitedResponsibleParty( List<ContactInfo> contactInfo, List<String> individualName,
080                                      List<String> organizationName, List<String> positionName, List<RoleCode> roleCode ) {
081            contactinfo = contactInfo;
082            individualname = individualName;
083            organisationname = organizationName;
084            positionname = positionName;
085            rolecode = roleCode;
086        }
087    
088        /** Creates a new instance of CitedResponsibleParty_Impl */
089        public CitedResponsibleParty( ContactInfo[] contactinfo, String[] individualname, String[] organisationname,
090                                      String[] positionname, RoleCode[] rolecode ) {
091    
092            this.contactinfo = new ArrayList<ContactInfo>();
093            this.individualname = new ArrayList<String>();
094            this.organisationname = new ArrayList<String>();
095            this.positionname = new ArrayList<String>();
096            this.rolecode = new ArrayList<RoleCode>();
097    
098            setContactInfo( contactinfo );
099            setIndividualName( individualname );
100            setOrganisationName( organisationname );
101            setPositionName( positionname );
102            setRoleCode( rolecode );
103        }
104    
105        /**
106         * @return ContactInfo-Array
107         *
108         */
109        public ContactInfo[] getContactInfo() {
110            return contactinfo.toArray( new ContactInfo[contactinfo.size()] );
111        }
112    
113        /**
114         * @see CitedResponsibleParty#getContactInfo()
115         */
116        public void addContactInfo( ContactInfo contactinfo ) {
117            this.contactinfo.add( contactinfo );
118        }
119    
120        /**
121         * @see CitedResponsibleParty#getContactInfo()
122         */
123        public void setContactInfo( ContactInfo[] contactinfo ) {
124            this.contactinfo = Arrays.asList( contactinfo );
125        }
126    
127        /**
128         * @return String-Array
129         *
130         */
131        public String[] getIndividualName() {
132            return individualname.toArray( new String[individualname.size()] );
133        }
134    
135        /**
136         * @see CitedResponsibleParty#getIndividualName()
137         */
138        public void addIndividualName( String individualname ) {
139            this.individualname.add( individualname );
140        }
141    
142        /**
143         * @see CitedResponsibleParty#getIndividualName()
144         */
145        public void setIndividualName( String[] individualname ) {
146            this.individualname = Arrays.asList( individualname );
147        }
148    
149        /**
150         *
151         * @return String-Array
152         */
153        public String[] getOrganisationName() {
154            return organisationname.toArray( new String[organisationname.size()] );
155        }
156    
157        /**
158         * @see CitedResponsibleParty#getOrganisationName()
159         */
160        public void addOrganisationName( String organisationname ) {
161            this.organisationname.add( organisationname );
162        }
163    
164        /**
165         * @see CitedResponsibleParty#getOrganisationName()
166         */
167        public void setOrganisationName( String[] organisationname ) {
168            this.organisationname = Arrays.asList( organisationname );
169        }
170    
171        /**
172         * @return String-Array
173         *
174         */
175        public String[] getPositionName() {
176            return positionname.toArray( new String[positionname.size()] );
177        }
178    
179        /**
180         * @see CitedResponsibleParty#getPositionName()
181         */
182        public void addPositionName( String positionname ) {
183            this.positionname.add( positionname );
184        }
185    
186        /**
187         * @see CitedResponsibleParty#getPositionName()
188         */
189        public void setPositionName( String[] positionname ) {
190            this.positionname = Arrays.asList( positionname );
191        }
192    
193        /**
194         * @return RoleCode-Array
195         *
196         */
197        public RoleCode[] getRoleCode() {
198            return rolecode.toArray( new RoleCode[rolecode.size()] );
199        }
200    
201        /**
202         * @see CitedResponsibleParty#getRoleCode()
203         */
204        public void addRoleCode( RoleCode rolecode ) {
205            this.rolecode.add( rolecode );
206        }
207    
208        /**
209         * @see CitedResponsibleParty#getRoleCode()
210         */
211        public void setRoleCode( RoleCode[] rolecode ) {
212            if ( rolecode != null ) {
213                this.rolecode = Arrays.asList( rolecode );
214            } else
215                this.rolecode.clear();
216        }
217    
218        /**
219         * to String method
220         */
221        @Override
222        public String toString() {
223            String ret = null;
224            ret = "contactinfo = " + contactinfo + "\n";
225            ret += "individualname = " + individualname + "\n";
226            ret += "organisationname = " + organisationname + "\n";
227            ret += "positionname = " + positionname + "\n";
228            ret += "rolecode = " + rolecode + "\n";
229            return ret;
230        }
231    
232    }