    001    /* ========================================================================
    002     * JCommon : a free general purpose class library for the Java(tm) platform
    003     * ========================================================================
    004     *
    005     * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
    006     *
    007     * Project Info:  http://www.jfree.org/jcommon/index.html
    008     *
    009     * This library is free software; you can redistribute it and/or modify it
    010     * under the terms of the GNU Lesser General Public License as published by
    011     * the Free Software Foundation; either version 2.1 of the License, or
    012     * (at your option) any later version.
    013     *
    014     * This library is distributed in the hope that it will be useful, but
    015     * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    016     * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
    017     * License for more details.
    018     *
    019     * You should have received a copy of the GNU Lesser General Public
    020     * License along with this library; if not, write to the Free Software
    021     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
    022     * USA.
    023     *
    024     * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
    025     * in the United States and other countries.]
    026     *
    027     * ---------------------
    028     * BasicProjectInfo.java
    029     * ---------------------
    030     * (C)opyright 2004, by Thomas Morgner and Contributors.
    031     *
    032     * Original Author:  Thomas Morgner;
    033     * Contributor(s):   David Gilbert (for Object Refinery Limited);
    034     *
    035     * $Id: BasicProjectInfo.java,v 1.4 2005/10/18 13:13:58 mungady Exp $
    036     *
    037     * Changes
    038     * -------
    039     * 07-Jun-2004 : Added source headers (DG);
    040     *
    041     */
    042
    043    package org.jfree.base;
    044
    045    import java.util.ArrayList;
    046    import java.util.List;
    047
    048    /**
    049     * Basic project info.
    050     *
    051     * @author Thomas Morgner
    052     */
    053    public class BasicProjectInfo extends Library {
    054
    055        /** The project copyright statement. */
    056        private String copyright;
    057
    058        /** A list of libraries used by the project. */
    059        private List libraries;
    060
    061        /**
    062         * Default constructor.
    063         */
    064        public BasicProjectInfo() {
    065            this.libraries = new ArrayList();
    066        }
    067
    068        /**
    069         * Creates a new library reference.
    070         *
    071         * @param name    the name.
    072         * @param version the version.
    073         * @param licence the licence.
    074         * @param info    the web address or other info.
    075         */
    076        public BasicProjectInfo(final String name, final String version,
    077                                final String licence, final String info) {
    078            this();
    079            setName(name);
    080            setVersion(version);
    081            setLicenceName(licence);
    082            setInfo(info);
    083        }
    084
    085        /**
    086         * Creates a new project info instance.
    087         *
    088         * @param name  the project name.
    089         * @param version  the project version.
    090         * @param info  the project info (web site for example).
    091         * @param copyright  the copyright statement.
    092         * @param licenceName  the license name.
    093         */
    094        public BasicProjectInfo(final String name, final String version,
    095                                final String info, final String copyright,
    096                                final String licenceName) {
    097            this(name, version, licenceName, info);
    098            setCopyright(copyright);
    099        }
    100
    101        /**
    102         * Returns the copyright statement.
    103         *
    104         * @return The copyright statement.
    105         */
    106        public String getCopyright() {
    107            return this.copyright;
    108        }
    109
    110        /**
    111         * Sets the project copyright statement.
    112         *
    113         * @param copyright  the project copyright statement.
    114         */
    115        public void setCopyright(final String copyright) {
    116            this.copyright = copyright;
    117        }
    118
    119        /**
    120         * Sets the project info string (for example, this could be the project URL).
    121         *
    122         * @param info  the info string.
    123         */
    124        public void setInfo(final String info) {
    125            super.setInfo(info);
    126        }
    127
    128        /**
    129         * Sets the license name.
    130         *
    131         * @param licence  the license name.
    132         */
    133        public void setLicenceName(final String licence) {
    134            super.setLicenceName(licence);
    135        }
    136
    137        /**
    138         * Sets the project name.
    139         *
    140         * @param name  the project name.
    141         */
    142        public void setName(final String name) {
    143            super.setName(name);
    144        }
    145
    146        /**
    147         * Sets the project version number.
    148         *
    149         * @param version  the version number.
    150         */
    151        public void setVersion(final String version) {
    152            super.setVersion(version);
    153        }
    154
    155        /**
    156         * Returns a list of libraries used by the project.
    157         *
    158         * @return the list of libraries.
    159         */
    160        public Library[] getLibraries() {
    161            return (Library[]) this.libraries.toArray(new Library[this.libraries.size()]);
    162        }
    163
    164        /**
    165         * Adds a library.
    166         *
    167         * @param library  the library.
    168         */
    169        public void addLibrary (final Library library) {
    170            if (library == null) {
    171                throw new NullPointerException();
    172            }
    173            this.libraries.add(library);
    174        }
    175
    176    }