+/*
+ * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package org.argeo.slc.core.execution;
import org.argeo.slc.SlcException;
public class PrimitiveSpecAttribute extends AbstractSpecAttribute implements
PrimitiveAccessor {
- // public enum Type {
- // string, integer
- // }
-
- public final static String TYPE_STRING = "string";
- public final static String TYPE_INTEGER = "integer";
- public final static String TYPE_LONG = "long";
- public final static String TYPE_FLOAT = "float";
- public final static String TYPE_DOUBLE = "double";
- public final static String TYPE_BOOLEAN = "boolean";
-
+ private static final long serialVersionUID = -566676381839825483L;
private String type = "string";
private Object value = null;
return type;
}
- public Class<?> getTypeAsClass() {
- return typeAsClass(type);
- }
-
public void setType(String type) {
- this.type = type;
-
// check whether type is recognized.
- // TODO: make validation cleaner
- typeAsClass(type);
- }
-
- public static Class<?> typeAsClass(String type) {
- if (TYPE_STRING.equals(type))
- return String.class;
- else if (TYPE_INTEGER.equals(type))
- return Integer.class;
- else if (TYPE_LONG.equals(type))
- return Long.class;
- else if (TYPE_FLOAT.equals(type))
- return Float.class;
- else if (TYPE_DOUBLE.equals(type))
- return Double.class;
- else if (TYPE_BOOLEAN.equals(type))
- return Boolean.class;
- else
+ if (PrimitiveUtils.typeAsClass(type) == null)
throw new SlcException("Unrecognized type " + type);
- }
+ this.type = type;
+ }
}