From 5808bc275c42b3d12f23f9b04b7549417ea4c6dc Mon Sep 17 00:00:00 2001
From: kenneth_suter <kenneth_suter@localhost>
Date: Fri, 27 Apr 2007 21:30:01 +0000
Subject: [PATCH] implements code to access and parse the newly published upgrade build availability information published at http://www.opends.org/upgrade-builds
---
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/upgrader/Build.java | 135 ++++++++++++++++++++++++++++++++++++++------
1 files changed, 116 insertions(+), 19 deletions(-)
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/upgrader/Build.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/upgrader/Build.java
index 9cd4b12..13493a2 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/upgrader/Build.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/upgrader/Build.java
@@ -28,23 +28,81 @@
package org.opends.quicksetup.upgrader;
import java.net.URL;
+import java.util.EnumSet;
/**
* Representation of an OpenDS build package.
*/
public class Build implements Comparable<Build> {
- private URL url;
- private String id;
+ /**
+ * Describes build types.
+ */
+ enum Category {
+
+ /**
+ * Daily build descriptor.
+ */
+ DAILY("Daily Build"),
+
+ /**
+ * Weekly build descriptor.
+ */
+ WEEKLY("Weekly Build"),
+
+ /**
+ * Release build descriptor.
+ */
+ RELEASE("Release Build");
+
+ /**
+ * Creates a Category from its 'key' String value.
+ * @param s String representing a key
+ * @return the Category corresponding to the input <code>key</code>; null
+ * if the input string is not a category key
+ */
+ public static Category fromString(String s) {
+ Category category = null;
+ for (Category c : EnumSet.allOf(Category.class)) {
+ if (c.key.equals(s)) {
+ category = c;
+ break;
+ }
+ }
+ return category;
+ }
+
+ String key;
+
+ private Category(String key) {
+ this.key = key;
+ }
+
+ /**
+ * Gets the string that represents this category in
+ * the build information page.
+ * @return String key
+ */
+ public String getKey() {
+ return key;
+ }
+
+ }
+
+ private URL downloadUrl;
+ private String displayName;
+ private Category category;
/**
* Creates an instance.
- * @param url where the build package can be accessed
- * @param id of the new build
+ * @param displayName where the build package can be accessed
+ * @param downloadUrl of the new build
+ * @param category build category
*/
- Build(URL url, String id) {
- this.url = url;
- this.id = id;
+ Build(String displayName, URL downloadUrl, Category category) {
+ this.displayName = displayName;
+ this.downloadUrl = downloadUrl;
+ this.category = category;
}
/**
@@ -52,16 +110,7 @@
* @return URL representing access to the build package
*/
public URL getUrl() {
- return url;
- }
-
- /**
- * Gets the builds ID number, a 14 digit number representing the time
- * the build was created.
- * @return String represenging the build
- */
- public String getId() {
- return id;
+ return this.downloadUrl;
}
/**
@@ -69,7 +118,15 @@
* @return String representing this build
*/
public String getDisplayName() {
- return getId();
+ return this.displayName;
+ }
+
+ /**
+ * Gets the category of this build.
+ * @return Category indicating the type of this build.
+ */
+ public Category getCategory() {
+ return this.category;
}
/**
@@ -83,7 +140,47 @@
* {@inheritDoc}
*/
public int compareTo(Build o) {
- return getDisplayName().compareTo(o.getDisplayName());
+ if (o == null) throw new NullPointerException();
+ int c = getCategory().compareTo(o.getCategory());
+ if (c == 0) {
+ c = getDisplayName().compareTo(o.getDisplayName());
+ }
+ return c;
}
+ /**
+ * {@inheritDoc}
+ */
+ public int hashCode() {
+ int hc = 11;
+ Category cat = getCategory();
+ if (cat != null) {
+ hc = 31 * hc + cat.hashCode();
+ }
+ String disp = getDisplayName();
+ if (disp != null) {
+ hc = 31 * hc + disp.hashCode();
+ }
+ return hc;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean equals(Object obj) {
+ if (this == obj) return true;
+ boolean eq = false;
+ if (obj != null && obj instanceof Build) {
+ Category thisCat = getCategory();
+ Category thatCat = ((Build)obj).getCategory();
+ if ((thisCat != null && thisCat.equals(thatCat)) ||
+ (thisCat == null && thatCat == null)) {
+ String thisDisp = getDisplayName();
+ String thatDisp = ((Build)obj).getDisplayName();
+ eq = ((thisDisp != null && thisDisp.equals(thatDisp)) ||
+ (thisDisp == null && thatDisp == null));
+ }
+ }
+ return eq;
+ }
}
--
Gitblit v1.10.0