You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@depot.apache.org by ni...@apache.org on 2004/07/31 07:34:56 UTC
svn commit: rev 31018 - in incubator/depot/trunk/version/src/java/org/apache/depot/version: . impl
Author: nickchalko
Date: Sat Jul 31 00:34:55 2004
New Revision: 31018
Modified:
incubator/depot/trunk/version/src/java/org/apache/depot/version/VersionMarker.java
incubator/depot/trunk/version/src/java/org/apache/depot/version/impl/ApacheVersionMarker.java
Log:
Added getVersionSpec and getDefaultVersion.
Modified: incubator/depot/trunk/version/src/java/org/apache/depot/version/VersionMarker.java
==============================================================================
--- incubator/depot/trunk/version/src/java/org/apache/depot/version/VersionMarker.java (original)
+++ incubator/depot/trunk/version/src/java/org/apache/depot/version/VersionMarker.java Sat Jul 31 00:34:55 2004
@@ -23,6 +23,7 @@
import org.apache.depot.version.impl.ApacheVersion;
import org.apache.depot.version.impl.ApacheVersionMarker;
import org.apache.depot.version.impl.VersionIdentifier;
+import org.apache.depot.version.specification.VersionSpecification;
// :TODO: Based upon thoughts from Anou..
//
@@ -84,6 +85,13 @@
*/
String getLongVersion(); // TODO: Rename as asLongFormat
+
+ /**
+ * Default Version 1.2.7 (fred) built June 7,1981
+ * @return String
+ */
+ String getDefaultVersion(); // TODO: Rename as asLongFormat
+
/**
* Get any associated attributes, or null if none.
*/
@@ -93,4 +101,11 @@
* Get any associated annotations, or null if none.
*/
List getAnnotations();
+
+
+ /**
+ * The specifiaction used for this version.
+ * @return VersionSpecification
+ */
+ VersionSpecification getSpecification();
}
Modified: incubator/depot/trunk/version/src/java/org/apache/depot/version/impl/ApacheVersionMarker.java
==============================================================================
--- incubator/depot/trunk/version/src/java/org/apache/depot/version/impl/ApacheVersionMarker.java (original)
+++ incubator/depot/trunk/version/src/java/org/apache/depot/version/impl/ApacheVersionMarker.java Sat Jul 31 00:34:55 2004
@@ -36,6 +36,7 @@
import org.apache.depot.version.VersionException;
import org.apache.depot.version.VersionMarker;
import org.apache.depot.version.impl.data.ReleaseLevel;
+import org.apache.depot.version.specification.ApacheVersionSpecification;
import org.apache.depot.version.specification.VersionSpecification;
import org.apache.depot.version.specification.formatting.VersionFormat;
import org.apache.depot.version.specification.formatting.VersionFormatException;
@@ -47,536 +48,587 @@
/**
* @author arb_jack@users.apache.org
*/
-public class ApacheVersionMarker implements VersionMarker, Dumpable, DOMProducer, DOMConsumer {
+public class ApacheVersionMarker implements VersionMarker, Dumpable,
+ DOMProducer, DOMConsumer {
- public final static String VERSION_MARKER_TAG = "versionMarker";
- public final static String VERSION_ID_ATTRIBUTE = "versionId";
+ public final static String VERSION_MARKER_TAG = "versionMarker";
- private static final Map l_parts = new HashMap();
- static {
- l_parts.put(ApacheVersion.VERSION_TAG, ApacheVersion.class);
- }
-
- private VersionIdentifier m_identifier;
- private ApacheVersion m_version;
- public final static VersionFormat FORMAT = new ApacheVersionFormat();
-
- /** Extended Optional Settings... */
- //:TODO: final on these two?
- private Map m_attributes = null;
- private List m_annotations = null;
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(ApacheVersionMarker other) {
- super();
-
- m_identifier = other.m_identifier;
- m_version = other.m_version;
-
- validate();
- }
-
- public ApacheVersionMarker(String identifier, ApacheVersion version) {
- m_identifier = new VersionIdentifier(identifier);
- m_version = version;
- validate();
- }
-
- public ApacheVersionMarker(String identifier, CompoundVersion version) throws VersionException {
- m_identifier = new VersionIdentifier(identifier);
- m_version = new ApacheVersion(version);
- validate();
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(String identifier) {
- super();
-
- m_identifier = new VersionIdentifier(identifier);
- m_version = new ApacheVersion();
- validate();
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(VersionIdentifier identifier, Date date) {
- super();
-
- m_identifier = identifier;
- m_version = new ApacheVersion(date);
- validate();
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(String identifier, Date date) {
- this(new VersionIdentifier(identifier), date);
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(String id, String data) throws VersionException {
- this(VersionImporter.importApacheVersionMarker(VersionIdentifier.importVersionIdentifier(id), data));
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(VersionIdentifier id, String data) throws VersionException {
- this(VersionImporter.importApacheVersionMarker(id, data));
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(VersionIdentifier id, Version version) throws VersionException {
- m_identifier = id;
- m_version = ApacheVersion.fromVersion(version);
- validate();
- }
-
- /**
- * Constructor for ApacheVersion.
- *
- * @param other
- */
- public ApacheVersionMarker(VersionIdentifier id, ApacheVersion version) {
- m_identifier = id;
- m_version = version;
- validate();
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(String id, VersionSpecification specification, String data) throws VersionException {
- this(VersionImporter.importApacheVersionMarker(
- VersionIdentifier.importVersionIdentifier(id),
- specification,
- data));
- }
-
- public ApacheVersionMarker(String id, int major, int minor, ReleaseLevel releaseLevel, int buildNumber) {
- this(VersionIdentifier.importVersionIdentifier(id), new ApacheVersion(major, minor, releaseLevel, buildNumber));
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(String id, VersionSpecification specification, String data, Map properties)
- throws VersionFormatException, VersionException {
- this(VersionImporter.importApacheVersionMarker(id, specification, data));
- importProperties(properties);
- validate();
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(String id, Map properties) throws VersionFormatException, VersionException {
- this(id);
- importProperties(properties);
- validate();
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(String id, VersionSpecification specification, String data, Map attributes,
- List annotations) throws VersionFormatException, VersionException {
- this(new VersionIdentifier(id), specification, data, attributes, annotations);
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(VersionIdentifier id, VersionSpecification specification, String data, Map attributes,
- List annotations) throws VersionFormatException, VersionException {
- this(VersionImporter.importApacheVersionMarker(id, specification, data));
-
- importProperties(attributes);
-
- m_attributes = attributes;
- m_annotations = annotations;
- validate();
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(VersionIdentifier id, Version version, Map attributes, List annotations)
- throws VersionFormatException, VersionException {
- this(id, version);
-
- // :TODO: Ensure importProperties does return the
- // ununsed ones
- m_attributes = importProperties(attributes);
- m_annotations = annotations;
- validate();
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(String id, Version version, Map attributes, List annotations)
- throws VersionFormatException, VersionException {
- this(new VersionIdentifier(id), version);
-
- importProperties(attributes);
-
- m_attributes = attributes;
- m_annotations = annotations;
- validate();
- }
-
- /**
- * @param string
- * @param version
- * @param attributes
- * @param m_annotationList
- * @param date
- */
- public ApacheVersionMarker(String id, Version version, HashMap attributes, List annotationList, Date date)
- throws VersionFormatException, VersionException {
- this(id, version, attributes, annotationList);
- m_version.setBuildDate(date);
- }
-
- /**
- * Constructor for Version.
- *
- * @param other
- */
- public ApacheVersionMarker(String id, String data, Map properties) throws VersionFormatException, VersionException {
- this(VersionImporter.importApacheVersionMarker(id, data));
- importProperties(properties);
- validate();
- }
-
- public Map importProperties(Map properties) throws VersionException {
- return m_version.importProperties(properties);
- }
-
- public String getId() {
- return m_identifier.toString();
- }
-
- /**
- * Returns the identifier.
- *
- * @return VersionIdentifier
- */
- public VersionIdentifier getIdentifier() {
- return m_identifier;
- }
-
- public Version getVersion() {
- return m_version;
- }
-
- public ApacheVersion getApacheVersion() {
- return m_version;
- }
-
- // :TODO: Nick, let me complete 'MASK' in format first
- // :TODO: Nick, this really a description?
- // Please let me complete 'MASK' in format first
- public String getLongVersion() {
- return FORMAT.toVersionString(this.m_version.getData());
- }
-
- // Please let me complete 'MASK' in format first
- public String getShortVersion() {
- return getVersion().toString();
- }
-
- public int hashCode() {
- int hashCode = 0;
-
- if (null != m_identifier) hashCode = m_identifier.hashCode();
-
- if (null != m_version) hashCode += m_version.hashCode();
-
- return hashCode;
- }
-
- public boolean equals(Object other) {
- boolean equal = false;
-
- if (other instanceof ApacheVersionMarker) {
- ApacheVersionMarker otherVersionMarker = (ApacheVersionMarker) other;
-
- equal = otherVersionMarker.m_identifier.equals(m_identifier);
-
- if (equal) equal = otherVersionMarker.m_version.equals(m_version);
- } else
- throw new IllegalArgumentException("Not a ApacheVersionMarker: "
- + other.getClass()
- + " : "
- + other.toString());
-
- return equal;
- }
-
- public int compareTo(Object other) {
- int comparison = -1;
-
- if (other instanceof ApacheVersionMarker) {
- ApacheVersionMarker otherVersionMarker = (ApacheVersionMarker) other;
-
- comparison = otherVersionMarker.m_identifier.compareTo(m_identifier);
-
- if (0 == comparison) comparison = otherVersionMarker.m_version.compareTo(m_version);
- } else
- throw new IllegalArgumentException("Not a ApacheVersionMarker: "
- + other.getClass()
- + " : "
- + other.toString());
-
- return comparison;
- }
-
- public String toString() {
-
- String v = FORMAT.toVersionString(m_version.getData());
- return m_identifier + " version " + v;
- }
-
- public void dump(PrintWriter out, int depth, boolean verbose) {
- final String indent = DebugUtils.getIndent(depth);
-
- if (verbose) {
-
- if (null != m_identifier) m_identifier.dump(out, depth + 1, verbose);
-
- if (null != m_version) m_version.dump(out, depth + 1, verbose);
-
- if (null != m_annotations) {
- for (Iterator ai = m_annotations.iterator(); ai.hasNext();) {
- Object note = ai.next();
- out.println(" - " + note.toString());
- }
- }
-
- if (null != m_attributes) {
- for (Iterator ai = m_attributes.keySet().iterator(); ai.hasNext();) {
- Object key = ai.next();
- Object value = m_attributes.get(key);
-
- out.println(" - " + key + " -> [" + value.toString() + "]");
- }
- }
- } else {
- out.print(indent);
- out.print(m_identifier.toString());
- out.print(" : ");
- out.println(m_version.toString());
-
- if (null != m_attributes) {
- out.print(indent);
- out.print("Attributes :");
- out.println(m_attributes);
- }
-
- if (null != m_annotations) {
- out.print(indent);
- out.print("Annotations :");
- out.println(m_annotations);
- }
- }
- }
-
- /**
- * Returns the attributes.
- *
- * @return Map
- */
- public Map getAttributes() {
- return m_attributes;
- }
-
- /**
- * Sets the attributes.
- *
- * @param attributes
- * The attributes to set
- */
- public void setAttributes(Map attributes) {
- m_attributes = attributes;
- }
-
- public void setAttribute(String key, Object value) {
- if (null == m_attributes) m_attributes = new HashMap();
-
- m_attributes.put(key, value);
- }
-
- public Object getAttribute(String key) {
- Object value = null;
-
- if (null != m_attributes) value = m_attributes.get(key);
-
- return value;
- }
-
- public String getAttributeAsString(String key) {
- Object value = null;
-
- if (null != m_attributes) value = m_attributes.get(key);
-
- return ((null != value) ? value.toString() : null);
- }
-
- public void addAnnotation(Object note) {
- if (null == m_annotations) m_annotations = new ArrayList();
-
- m_annotations.add(note);
- }
-
- /**
- * Returns the annotations.
- *
- * @return List
- */
- public List getAnnotations() {
- return m_annotations;
- }
-
- /**
- * Sets the annotations.
- *
- * @param annotations
- * The annotations to set
- */
- public void setAnnotations(List annotations) {
- m_annotations = annotations;
- }
-
- private void validate() {
- if (null == m_identifier){
- throw new IllegalArgumentException("Invalid (null) identifier");
- }
- m_identifier.validate();
-
- if (null == m_version) {
- throw new IllegalArgumentException("Invalid (null) version");
- }
- m_version.validate();
- }
-
- public void produceDOM(Document document, Element element) {
-
- //
- // Import XML as 'smart'
- //
- Element v = document.createElement(VERSION_MARKER_TAG);
- DOMUtils.appendChild(document, element, v);
-
- Attr a = document.createAttribute(VERSION_ID_ATTRIBUTE);
- a.setNodeValue(getId());
- v.setAttributeNode(a);
- DOMUtils.produceDOM(document, v, m_version);
- }
-
- /**
- * The Date this version was Built.
- *
- * @return the Date the version was Built
- */
- public Date getBuildDate() {
- return (Date) m_attributes.get(VersionConstants.BUILD_DATETIME);
- }
-
- //
- // XML handling
- //
-
- public ApacheVersionMarker(Element element) throws DepotException {
- //
- // Any attributes we need?
- //
- if (element.getNodeName().equals(VERSION_MARKER_TAG)) {
- DOMUtils.consumeDOMSubElements(this, l_parts, element);
- }
- // Identifier...
- m_identifier = new VersionIdentifier(element.getAttribute(VERSION_ID_ATTRIBUTE));
- }
-
- public void consumeDOMElement(String tag, Element element) {
- }
- public void consumeDOMObject(String tag, Object object) {
- if (object instanceof ApacheVersion) m_version = (ApacheVersion) object;
- }
-
- public static ApacheVersionMarker getTestVersionMarker(String identifier) {
- return new TestApacheVersionMarker(identifier);
- }
-
- public static ApacheVersionMarker getTestVersionMarker(VersionIdentifier identifier) {
- return new TestApacheVersionMarker(identifier);
- }
-
- public static ApacheVersionMarker getTestVersionMarker(String identifier, int major, int minor) {
- return new TestApacheVersionMarker(identifier, major, minor);
- }
-
- public static ApacheVersionMarker getTestVersionMarker(VersionIdentifier identifier, int major, int minor) {
- return new TestApacheVersionMarker(identifier, major, minor);
- }
+ public final static String VERSION_ID_ATTRIBUTE = "versionId";
+
+ private static final Map l_parts = new HashMap();
+ static {
+ l_parts.put(ApacheVersion.VERSION_TAG, ApacheVersion.class);
+ }
+
+ private VersionIdentifier m_identifier;
+
+ private ApacheVersion m_version;
+
+ public final static VersionFormat FORMAT = new ApacheVersionFormat();
+
+ /** Extended Optional Settings... */
+ //:TODO: final on these two?
+ private Map m_attributes = null;
+
+ private List m_annotations = null;
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(ApacheVersionMarker other) {
+ super();
+
+ m_identifier = other.m_identifier;
+ m_version = other.m_version;
+
+ validate();
+ }
+
+ public ApacheVersionMarker(String identifier, ApacheVersion version) {
+ m_identifier = new VersionIdentifier(identifier);
+ m_version = version;
+ validate();
+ }
+
+ public ApacheVersionMarker(String identifier, CompoundVersion version)
+ throws VersionException {
+ m_identifier = new VersionIdentifier(identifier);
+ m_version = new ApacheVersion(version);
+ validate();
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(String identifier) {
+ super();
+
+ m_identifier = new VersionIdentifier(identifier);
+ m_version = new ApacheVersion();
+ validate();
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(VersionIdentifier identifier, Date date) {
+ super();
+
+ m_identifier = identifier;
+ m_version = new ApacheVersion(date);
+ validate();
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(String identifier, Date date) {
+ this(new VersionIdentifier(identifier), date);
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(String id, String data) throws VersionException {
+ this(VersionImporter.importApacheVersionMarker(VersionIdentifier
+ .importVersionIdentifier(id), data));
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(VersionIdentifier id, String data)
+ throws VersionException {
+ this(VersionImporter.importApacheVersionMarker(id, data));
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(VersionIdentifier id, Version version)
+ throws VersionException {
+ m_identifier = id;
+ m_version = ApacheVersion.fromVersion(version);
+ validate();
+ }
+
+ /**
+ * Constructor for ApacheVersion.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(VersionIdentifier id, ApacheVersion version) {
+ m_identifier = id;
+ m_version = version;
+ validate();
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(String id, VersionSpecification specification,
+ String data) throws VersionException {
+ this(VersionImporter.importApacheVersionMarker(VersionIdentifier
+ .importVersionIdentifier(id), specification, data));
+ }
+
+ public ApacheVersionMarker(String id, int major, int minor,
+ ReleaseLevel releaseLevel, int buildNumber) {
+ this(VersionIdentifier.importVersionIdentifier(id), new ApacheVersion(
+ major, minor, releaseLevel, buildNumber));
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(String id, VersionSpecification specification,
+ String data, Map properties) throws VersionFormatException,
+ VersionException {
+ this(VersionImporter.importApacheVersionMarker(id, specification, data));
+ importProperties(properties);
+ validate();
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(String id, Map properties)
+ throws VersionFormatException, VersionException {
+ this(id);
+ importProperties(properties);
+ validate();
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(String id, VersionSpecification specification,
+ String data, Map attributes, List annotations)
+ throws VersionFormatException, VersionException {
+ this(new VersionIdentifier(id), specification, data, attributes,
+ annotations);
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(VersionIdentifier id,
+ VersionSpecification specification, String data, Map attributes,
+ List annotations) throws VersionFormatException, VersionException {
+ this(VersionImporter.importApacheVersionMarker(id, specification, data));
+
+ importProperties(attributes);
+
+ m_attributes = attributes;
+ m_annotations = annotations;
+ validate();
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(VersionIdentifier id, Version version,
+ Map attributes, List annotations) throws VersionFormatException,
+ VersionException {
+ this(id, version);
+
+ // :TODO: Ensure importProperties does return the
+ // ununsed ones
+ m_attributes = importProperties(attributes);
+ m_annotations = annotations;
+ validate();
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(String id, Version version, Map attributes,
+ List annotations) throws VersionFormatException, VersionException {
+ this(new VersionIdentifier(id), version);
+
+ importProperties(attributes);
+
+ m_attributes = attributes;
+ m_annotations = annotations;
+ validate();
+ }
+
+ /**
+ * @param string
+ * @param version
+ * @param attributes
+ * @param m_annotationList
+ * @param date
+ */
+ public ApacheVersionMarker(String id, Version version, HashMap attributes,
+ List annotationList, Date date) throws VersionFormatException,
+ VersionException {
+ this(id, version, attributes, annotationList);
+ m_version.setBuildDate(date);
+ }
+
+ /**
+ * Constructor for Version.
+ *
+ * @param other
+ */
+ public ApacheVersionMarker(String id, String data, Map properties)
+ throws VersionFormatException, VersionException {
+ this(VersionImporter.importApacheVersionMarker(id, data));
+ importProperties(properties);
+ validate();
+ }
+
+ public Map importProperties(Map properties) throws VersionException {
+ return m_version.importProperties(properties);
+ }
+
+ public String getId() {
+ return m_identifier.toString();
+ }
+
+ /**
+ * Returns the identifier.
+ *
+ * @return VersionIdentifier
+ */
+ public VersionIdentifier getIdentifier() {
+ return m_identifier;
+ }
+
+ public Version getVersion() {
+ return m_version;
+ }
+
+ public ApacheVersion getApacheVersion() {
+ return m_version;
+ }
+
+ // :TODO: Nick, let me complete 'MASK' in format first
+ // :TODO: Nick, this really a description?
+ // Please let me complete 'MASK' in format first
+ public String getLongVersion() {
+ return FORMAT.format(m_version.getData(), VersionFormat.LONG);
+ }
+
+ // Please let me complete 'MASK' in format first
+ public String getShortVersion() {
+ return FORMAT.format(m_version.getData(), VersionFormat.SHORT);
+ }
+
+ public int hashCode() {
+ int hashCode = 0;
+
+ if (null != m_identifier)
+ hashCode = m_identifier.hashCode();
+
+ if (null != m_version)
+ hashCode += m_version.hashCode();
+
+ return hashCode;
+ }
+
+ public boolean equals(Object other) {
+ boolean equal = false;
+
+ if (other instanceof ApacheVersionMarker) {
+ ApacheVersionMarker otherVersionMarker = (ApacheVersionMarker) other;
+
+ equal = otherVersionMarker.m_identifier.equals(m_identifier);
+
+ if (equal)
+ equal = otherVersionMarker.m_version.equals(m_version);
+ } else
+ throw new IllegalArgumentException("Not a ApacheVersionMarker: "
+ + other.getClass() + " : " + other.toString());
+
+ return equal;
+ }
+
+ public int compareTo(Object other) {
+ int comparison = -1;
+
+ if (other instanceof ApacheVersionMarker) {
+ ApacheVersionMarker otherVersionMarker = (ApacheVersionMarker) other;
+
+ comparison = otherVersionMarker.m_identifier
+ .compareTo(m_identifier);
+
+ if (0 == comparison)
+ comparison = otherVersionMarker.m_version.compareTo(m_version);
+ } else
+ throw new IllegalArgumentException("Not a ApacheVersionMarker: "
+ + other.getClass() + " : " + other.toString());
+
+ return comparison;
+ }
+
+ public String toString() {
+
+ String v = FORMAT.toVersionString(m_version.getData());
+ return m_identifier + " version " + v;
+ }
+
+ public void dump(PrintWriter out, int depth, boolean verbose) {
+ final String indent = DebugUtils.getIndent(depth);
+
+ if (verbose) {
+
+ if (null != m_identifier)
+ m_identifier.dump(out, depth + 1, verbose);
+
+ if (null != m_version)
+ m_version.dump(out, depth + 1, verbose);
+
+ if (null != m_annotations) {
+ for (Iterator ai = m_annotations.iterator(); ai.hasNext();) {
+ Object note = ai.next();
+ out.println(" - " + note.toString());
+ }
+ }
+
+ if (null != m_attributes) {
+ for (Iterator ai = m_attributes.keySet().iterator(); ai
+ .hasNext();) {
+ Object key = ai.next();
+ Object value = m_attributes.get(key);
+
+ out.println(" - " + key + " -> [" + value.toString() + "]");
+ }
+ }
+ } else {
+ out.print(indent);
+ out.print(m_identifier.toString());
+ out.print(" : ");
+ out.println(m_version.toString());
+
+ if (null != m_attributes) {
+ out.print(indent);
+ out.print("Attributes :");
+ out.println(m_attributes);
+ }
+
+ if (null != m_annotations) {
+ out.print(indent);
+ out.print("Annotations :");
+ out.println(m_annotations);
+ }
+ }
+ }
+
+ /**
+ * Returns the attributes.
+ *
+ * @return Map
+ */
+ public Map getAttributes() {
+ return m_attributes;
+ }
+
+ /**
+ * Sets the attributes.
+ *
+ * @param attributes
+ * The attributes to set
+ */
+ public void setAttributes(Map attributes) {
+ m_attributes = attributes;
+ }
+
+ public void setAttribute(String key, Object value) {
+ if (null == m_attributes)
+ m_attributes = new HashMap();
+
+ m_attributes.put(key, value);
+ }
+
+ public Object getAttribute(String key) {
+ Object value = null;
+
+ if (null != m_attributes)
+ value = m_attributes.get(key);
+
+ return value;
+ }
+
+ public String getAttributeAsString(String key) {
+ Object value = null;
+
+ if (null != m_attributes)
+ value = m_attributes.get(key);
+
+ return ((null != value) ? value.toString() : null);
+ }
+
+ public void addAnnotation(Object note) {
+ if (null == m_annotations)
+ m_annotations = new ArrayList();
+
+ m_annotations.add(note);
+ }
+
+ /**
+ * Returns the annotations.
+ *
+ * @return List
+ */
+ public List getAnnotations() {
+ return m_annotations;
+ }
+
+ /**
+ * Sets the annotations.
+ *
+ * @param annotations
+ * The annotations to set
+ */
+ public void setAnnotations(List annotations) {
+ m_annotations = annotations;
+ }
+
+ private void validate() {
+ if (null == m_identifier) {
+ throw new IllegalArgumentException("Invalid (null) identifier");
+ }
+ m_identifier.validate();
+
+ if (null == m_version) {
+ throw new IllegalArgumentException("Invalid (null) version");
+ }
+ m_version.validate();
+ }
+
+ public void produceDOM(Document document, Element element) {
+
+ //
+ // Import XML as 'smart'
+ //
+ Element v = document.createElement(VERSION_MARKER_TAG);
+ DOMUtils.appendChild(document, element, v);
+
+ Attr a = document.createAttribute(VERSION_ID_ATTRIBUTE);
+ a.setNodeValue(getId());
+ v.setAttributeNode(a);
+ DOMUtils.produceDOM(document, v, m_version);
+ }
+
+ /**
+ * The Date this version was Built.
+ *
+ * @return the Date the version was Built
+ */
+ public Date getBuildDate() {
+ return (Date) m_attributes.get(VersionConstants.BUILD_DATETIME);
+ }
+
+ //
+ // XML handling
+ //
+
+ public ApacheVersionMarker(Element element) throws DepotException {
+ //
+ // Any attributes we need?
+ //
+ if (element.getNodeName().equals(VERSION_MARKER_TAG)) {
+ DOMUtils.consumeDOMSubElements(this, l_parts, element);
+ }
+ // Identifier...
+ m_identifier = new VersionIdentifier(element
+ .getAttribute(VERSION_ID_ATTRIBUTE));
+ }
+
+ public void consumeDOMElement(String tag, Element element) {
+ }
+
+ public void consumeDOMObject(String tag, Object object) {
+ if (object instanceof ApacheVersion)
+ m_version = (ApacheVersion) object;
+ }
+
+ public static ApacheVersionMarker getTestVersionMarker(String identifier) {
+ return new TestApacheVersionMarker(identifier);
+ }
+
+ public static ApacheVersionMarker getTestVersionMarker(
+ VersionIdentifier identifier) {
+ return new TestApacheVersionMarker(identifier);
+ }
+
+ public static ApacheVersionMarker getTestVersionMarker(String identifier,
+ int major, int minor) {
+ return new TestApacheVersionMarker(identifier, major, minor);
+ }
+
+ public static ApacheVersionMarker getTestVersionMarker(
+ VersionIdentifier identifier, int major, int minor) {
+ return new TestApacheVersionMarker(identifier, major, minor);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.depot.version.VersionMarker#getDefaultVersion()
+ */
+ public String getDefaultVersion() {
+ return FORMAT.format(m_version.getData(), VersionFormat.DEFUALT);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.depot.version.VersionMarker#getSpecification()
+ */
+ public VersionSpecification getSpecification() {
+ return new ApacheVersionSpecification();
+ }
}
//
// Testing Instances
//
+
class TestApacheVersionMarker extends ApacheVersionMarker {
- TestApacheVersionMarker(String identifier) {
- super(identifier, ApacheVersion.getTestVersion());
- }
-
- TestApacheVersionMarker(String identifier, int major, int minor) {
- super(identifier, ApacheVersion.getTestVersion(major, minor));
- }
-
- TestApacheVersionMarker(VersionIdentifier identifier) {
- super(identifier, ApacheVersion.getTestVersion());
- }
-
- TestApacheVersionMarker(VersionIdentifier identifier, int major, int minor) {
- super(identifier, ApacheVersion.getTestVersion(major, minor));
- }
+ TestApacheVersionMarker(String identifier) {
+ super(identifier, ApacheVersion.getTestVersion());
+ }
+
+ TestApacheVersionMarker(String identifier, int major, int minor) {
+ super(identifier, ApacheVersion.getTestVersion(major, minor));
+ }
+
+ TestApacheVersionMarker(VersionIdentifier identifier) {
+ super(identifier, ApacheVersion.getTestVersion());
+ }
+
+ TestApacheVersionMarker(VersionIdentifier identifier, int major, int minor) {
+ super(identifier, ApacheVersion.getTestVersion(major, minor));
+ }
}