diff options
Diffstat (limited to 'petascope/src/petascope/wcps/server/core/RangeElement.java')
-rw-r--r-- | petascope/src/petascope/wcps/server/core/RangeElement.java | 294 |
1 files changed, 150 insertions, 144 deletions
diff --git a/petascope/src/petascope/wcps/server/core/RangeElement.java b/petascope/src/petascope/wcps/server/core/RangeElement.java index f878d5a..6e2daf2 100644 --- a/petascope/src/petascope/wcps/server/core/RangeElement.java +++ b/petascope/src/petascope/wcps/server/core/RangeElement.java @@ -14,151 +14,157 @@ * You should have received a copy of the GNU General Public License * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>. * - * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann / - rasdaman GmbH. + * Copyright 2003 - 2010 Peter Baumann / rasdaman GmbH. * * For more information please see <http://www.rasdaman.org> * or contact Peter Baumann via <baumann@rasdaman.com>. */ -package petascope.wcps.server.core;
-
-//A single component of a coverage's range. See the WCPS standard for more information.
-import petascope.wcps.server.exceptions.InvalidMetadataException;
-
-public class RangeElement implements Cloneable {
-
- private String name;
- private String type;
-
- public RangeElement(String name, String type) throws InvalidMetadataException {
- if ((name == null) || (type == null)) {
- throw new InvalidMetadataException(
- "Invalid range element: Element name and type cannot be null");
- }
-
- if (name.equals("")) {
- throw new InvalidMetadataException(
- "Invalid range element: Element name cannot be empty");
- }
-
- if (!(type.equals("boolean") || type.equals("char") || type.equals("unsigned char")
- || type.equals("short") || type.equals("unsigned short") || type.equals("int")
- || type.equals("unsigned int") || type.equals("long")
- || type.equals("unsigned long") || type.equals("float")
- || type.equals("double") || type.equals("complex") || type.equals("complex2"))) {
- throw new InvalidMetadataException(
- "Invalid range element: Invalid element type:" + type);
- }
-
- this.name = name;
- this.type = type;
-
- }
-
- public RangeElement clone() {
- try {
- return new RangeElement(new String(name), new String(type));
- } catch (InvalidMetadataException ime) {
- throw new RuntimeException(
- "Invalid metadata while cloning RangeElement. This is a software bug in WCPS.",
- ime);
- }
-
- }
-
- public boolean equals(RangeElement re) {
- return name.equals(re.type);
-
- }
-
- public String getName() {
- return name;
-
- }
-
- public String getType() {
- return type;
-
- }
-
- public boolean isBoolean() {
- return type.equals("boolean");
-
- }
-
- public static boolean isBoolean(String type) {
- return type.equals("boolean");
-
- }
-
- public boolean isComplex() {
- return type.equals("complex") || type.equals("complex2");
-
- }
-
- public static boolean isComplex(String type) {
- return type.equals("complex") || type.equals("complex2");
-
- }
-
- public boolean isIntegral() {
- return type.equals("char") || type.equals("short") || type.equals("unsigned short")
- || type.equals("int") || type.equals("unsigned int") || type.equals("long")
- || type.equals("unsigend long");
-
- }
-
- public static boolean isIntegral(String type) {
- return type.equals("char") || type.equals("short") || type.equals("unsigned short")
- || type.equals("int") || type.equals("unsigned int") || type.equals("long")
- || type.equals("unsigend long");
-
- }
-
- public boolean isFloating() {
- return type.equals("float") || type.equals("double");
-
- }
-
- public static boolean isFloating(String type) {
- return type.equals("float") || type.equals("double");
-
- }
-
- public boolean isNumeric() {
- return type.equals("char") || type.equals("short") || type.equals("unsigned short")
- || type.equals("int") || type.equals("unsigned int") || type.equals("long")
- || type.equals("unsigend long") || type.equals("float")
- || type.equals("double") || type.equals("complex")
- || type.equals("complex2");
-
- }
-
- public static boolean isNumeric(String type) {
- return type.equals("char") || type.equals("short") || type.equals("unsigned short")
- || type.equals("int") || type.equals("unsigned int") || type.equals("long")
- || type.equals("unsigend long") || type.equals("float")
- || type.equals("double") || type.equals("complex")
- || type.equals("complex2");
-
- }
-
- public void setType(String type) throws InvalidMetadataException {
- if (!(type.equals("boolean") || type.equals("char") || type.equals("unsigned char")
- || type.equals("short") || type.equals("unsigned short") || type.equals("int")
- || type.equals("unsigned int") || type.equals("long")
- || type.equals("unsigned long") || type.equals("float")
- || type.equals("double") || type.equals("complex") || type.equals("complex2"))) {
- throw new InvalidMetadataException(
- "Invalid range element: Invalid element type:" + type);
- }
-
- this.type = type;
-
- }
-
- public String toString() {
- String r = "Range Element { Name '" + name + "', Type '" + type + "'}";
- return r;
- }
-}
+package petascope.wcps.server.core; + + +//A single component of a coverage's range. See the WCPS standard for more information. +import petascope.exceptions.ExceptionCode; +import petascope.exceptions.WCPSException; + +public class RangeElement implements Cloneable { + + private String name; + private String type; + private String uom; + + public RangeElement(String name, String type, String uom) throws WCPSException { + if ((name == null) || (type == null)) { + throw new WCPSException(ExceptionCode.InvalidMetadata, + "Invalid range element: Element name and type cannot be null"); + } + + if (name.equals("")) { + throw new WCPSException(ExceptionCode.InvalidMetadata, + "Invalid range element: Element name cannot be empty"); + } + + if (!(type.equals("boolean") || type.equals("char") || type.equals("unsigned char") + || type.equals("short") || type.equals("unsigned short") || type.equals("int") + || type.equals("unsigned int") || type.equals("long") + || type.equals("unsigned long") || type.equals("float") + || type.equals("double") || type.equals("complex") || type.equals("complex2"))) { + throw new WCPSException(ExceptionCode.InvalidMetadata, + "Invalid range element: Invalid element type:" + type); + } + + this.name = name; + this.type = type; + this.uom = uom; + } + + public String getUom() { + return uom; + } + + public RangeElement clone() { + try { + return new RangeElement(new String(name), new String(type), new String(uom)); + } catch (WCPSException ime) { + throw new RuntimeException( + "Invalid metadata while cloning RangeElement. This is a software bug in WCPS.", + ime); + } + + } + + public boolean equals(RangeElement re) { + return name.equals(re.type); + + } + + public String getName() { + return name; + + } + + public String getType() { + return type; + + } + + public boolean isBoolean() { + return type.equals("boolean"); + + } + + public static boolean isBoolean(String type) { + return type.equals("boolean"); + + } + + public boolean isComplex() { + return type.equals("complex") || type.equals("complex2"); + + } + + public static boolean isComplex(String type) { + return type.equals("complex") || type.equals("complex2"); + + } + + public boolean isIntegral() { + return type.equals("char") || type.equals("short") || type.equals("unsigned short") + || type.equals("int") || type.equals("unsigned int") || type.equals("long") + || type.equals("unsigend long"); + + } + + public static boolean isIntegral(String type) { + return type.equals("char") || type.equals("short") || type.equals("unsigned short") + || type.equals("int") || type.equals("unsigned int") || type.equals("long") + || type.equals("unsigend long"); + + } + + public boolean isFloating() { + return type.equals("float") || type.equals("double"); + + } + + public static boolean isFloating(String type) { + return type.equals("float") || type.equals("double"); + + } + + public boolean isNumeric() { + return type.equals("char") || type.equals("short") || type.equals("unsigned short") + || type.equals("int") || type.equals("unsigned int") || type.equals("long") + || type.equals("unsigend long") || type.equals("float") + || type.equals("double") || type.equals("complex") + || type.equals("complex2"); + + } + + public static boolean isNumeric(String type) { + return type.equals("char") || type.equals("short") || type.equals("unsigned short") + || type.equals("int") || type.equals("unsigned int") || type.equals("long") + || type.equals("unsigend long") || type.equals("float") + || type.equals("double") || type.equals("complex") + || type.equals("complex2"); + + } + + public void setType(String type) throws WCPSException { + if (!(type.equals("boolean") || type.equals("char") || type.equals("unsigned char") + || type.equals("short") || type.equals("unsigned short") || type.equals("int") + || type.equals("unsigned int") || type.equals("long") + || type.equals("unsigned long") || type.equals("float") + || type.equals("double") || type.equals("complex") || type.equals("complex2"))) { + throw new WCPSException(ExceptionCode.InvalidMetadata, + "Invalid range element: Invalid element type:" + type); + } + + this.type = type; + + } + + public String toString() { + String r = "Range Element { Name '" + name + "', Type '" + type + "'}"; + return r; + } +} |