123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- /* ========================================================================
- * JCommon : a free general purpose class library for the Java(tm) platform
- * ========================================================================
- *
- * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
- *
- * Project Info: http://www.jfree.org/jcommon/index.html
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- * USA.
- *
- * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
- * in the United States and other countries.]
- *
- * ----------------------
- * DefaultModuleInfo.java
- * ----------------------
- * (C)opyright 2003, 2004, by Thomas Morgner and Contributors.
- *
- * Original Author: Thomas Morgner;
- * Contributor(s): David Gilbert (for Object Refinery Limited);
- *
- * $Id: DefaultModuleInfo.java,v 1.2 2005/10/18 13:14:50 mungady Exp $
- *
- * Changes
- * -------
- * 05-Jul-2003 : Initial version
- * 07-Jun-2004 : Added JCommon header (DG);
- *
- */
- package org.jfree.base.modules;
- /**
- * Provides a default implementation of the module info interface.
- *
- * @author Thomas Morgner
- */
- public class DefaultModuleInfo implements ModuleInfo
- {
- /** The name of the module class. */
- private String moduleClass;
- /** The major version of the described module. */
- private String majorVersion;
- /** The minor version of the described module. */
- private String minorVersion;
- /** The patchlevel version of the described module. */
- private String patchLevel;
- /**
- * DefaultConstructor.
- */
- public DefaultModuleInfo() {
- // nothing required
- }
- /**
- * Creates a new module info an initalizes it with the given values.
- *
- * @param moduleClass the class name of the module implementation holding the module
- * description.
- * @param majorVersion the modules major version.
- * @param minorVersion the modules minor version.
- * @param patchLevel the modules patchlevel.
- * @throws NullPointerException if the moduleClass is null.
- */
- public DefaultModuleInfo(final String moduleClass, final String majorVersion,
- final String minorVersion, final String patchLevel)
- {
- if (moduleClass == null)
- {
- throw new NullPointerException("Module class must not be null.");
- }
- this.moduleClass = moduleClass;
- this.majorVersion = majorVersion;
- this.minorVersion = minorVersion;
- this.patchLevel = patchLevel;
- }
- /**
- * Returns the class name of the module described implementation.
- *
- * @see ModuleInfo#getModuleClass()
- *
- * @return the module class name.
- */
- public String getModuleClass()
- {
- return this.moduleClass;
- }
- /**
- * Defines the module class name.
- *
- * @param moduleClass the class name of the module implementation.
- */
- public void setModuleClass(final String moduleClass)
- {
- if (moduleClass == null)
- {
- throw new NullPointerException();
- }
- this.moduleClass = moduleClass;
- }
- /**
- * Returns the major version of the module. This property may be
- * null to indicate that the module version is not specified.
- * @see ModuleInfo#getMajorVersion()
- *
- * @return the major version.
- */
- public String getMajorVersion()
- {
- return this.majorVersion;
- }
- /**
- * Defines the major version of the module. This property may be
- * null to indicate that the module version is not specified.
- * @see ModuleInfo#getMajorVersion()
- *
- * @param majorVersion the major version.
- */
- public void setMajorVersion(final String majorVersion)
- {
- this.majorVersion = majorVersion;
- }
- /**
- * Returns the minor version of the module. This property may be
- * null to indicate that the module version is not specified.
- * @see ModuleInfo#getMajorVersion()
- *
- * @return the minor version.
- */
- public String getMinorVersion()
- {
- return this.minorVersion;
- }
- /**
- * Defines the minor version of the module. This property may be
- * null to indicate that the module version is not specified.
- * @see ModuleInfo#getMajorVersion()
- *
- * @param minorVersion the minor version.
- */
- public void setMinorVersion(final String minorVersion)
- {
- this.minorVersion = minorVersion;
- }
- /**
- * Returns the patch level version of the module. This property may be
- * null to indicate that the module version is not specified.
- * @see ModuleInfo#getMajorVersion()
- *
- * @return the patch level version.
- */
- public String getPatchLevel()
- {
- return this.patchLevel;
- }
- /**
- * Defines the patch level version of the module. This property may be
- * null to indicate that the module version is not specified.
- * @see ModuleInfo#getMajorVersion()
- *
- * @param patchLevel the patch level version.
- */
- public void setPatchLevel(final String patchLevel)
- {
- this.patchLevel = patchLevel;
- }
- /**
- * Two moduleinfos are equal,if they have the same module class.
- *
- * @param o the other object to compare.
- * @return true, if the module points to the same module, false otherwise.
- */
- public boolean equals(final Object o)
- {
- if (this == o)
- {
- return true;
- }
- if (!(o instanceof DefaultModuleInfo))
- {
- return false;
- }
- final ModuleInfo defaultModuleInfo = (ModuleInfo) o;
- if (!this.moduleClass.equals(defaultModuleInfo.getModuleClass()))
- {
- return false;
- }
- return true;
- }
- /**
- * Computes an hashcode for this module information.
- * @see java.lang.Object#hashCode()
- *
- * @return the hashcode.
- */
- public int hashCode()
- {
- final int result;
- result = this.moduleClass.hashCode();
- return result;
- }
- /**
- * Returns a string representation of this module information.
- *
- * @see java.lang.Object#toString()
- *
- * @return a string describing this class.
- */
- public String toString()
- {
- final StringBuffer buffer = new StringBuffer();
- buffer.append(getClass().getName());
- buffer.append("={ModuleClass=");
- buffer.append(getModuleClass());
- if (getMajorVersion() != null)
- {
- buffer.append("; Version=");
- buffer.append(getMajorVersion());
- if (getMinorVersion() != null)
- {
- buffer.append("-");
- buffer.append(getMinorVersion());
- if (getPatchLevel() != null)
- {
- buffer.append("_");
- buffer.append(getPatchLevel());
- }
- }
- }
- buffer.append("}");
- return buffer.toString();
- }
- }
|