Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / real-world application / jigsaw / src / org / w3c / tools / resources / ClassAttribute.java
diff --git a/JMCR-Stable/real-world application/jigsaw/src/org/w3c/tools/resources/ClassAttribute.java b/JMCR-Stable/real-world application/jigsaw/src/org/w3c/tools/resources/ClassAttribute.java
new file mode 100644 (file)
index 0000000..5f2b58b
--- /dev/null
@@ -0,0 +1,72 @@
+// ClassAttribute.java\r
+// $Id: ClassAttribute.java,v 1.2 2010/06/15 17:52:59 smhuang Exp $\r
+// (c) COPYRIGHT MIT and INRIA, 1996.\r
+// Please first read the full copyright statement in file COPYRIGHT.html\r
+\r
+package org.w3c.tools.resources ;\r
+\r
+/**\r
+ * The generic description of an ClassAttribute.\r
+ */\r
+\r
+public class ClassAttribute extends SimpleAttribute {\r
+\r
+    /**\r
+     * Make a String out of a ClassAttribute value.\r
+     * The default <code>toString</code> method on classes doesn't work\r
+     * for that purpose, since it will preceed the class name with\r
+     * a <strong>class</strong> keyword.\r
+     * @return The String name of the class.\r
+     */\r
+\r
+    public String stringify(Object value) {\r
+       return ((value instanceof Class) \r
+               ? ((Class) value).getName()\r
+               : "<unknown-class>");\r
+    }\r
+\r
+    /**\r
+     * Is the given object a valid ClassAttribute value ?\r
+     * @param obj The object to test.\r
+     * @return A boolean <strong>true</strong> if okay.\r
+     */\r
+\r
+    public boolean checkValue(Object obj) {\r
+       return (obj instanceof Class);\r
+    }\r
+\r
+    /**\r
+     * Pickle an integer to the given output stream.\r
+     * @param obj The object to pickle.\r
+     */\r
+\r
+    public String pickle(Object obj) {\r
+       return ((Class) obj).getName();\r
+    }\r
+\r
+    /**\r
+     * Unpickle an integer from the given input stream.\r
+     * @param value the string representation of this integer\r
+     * @return An instance of Integer.\r
+     */\r
+\r
+    public Object unpickle (String value) {\r
+       try {\r
+           return Class.forName(value);\r
+           //Added by Jeff Huang\r
+           //TODO: FIXIT\r
+       } catch (Exception ex) {\r
+           return null;\r
+       }\r
+    }\r
+\r
+    public ClassAttribute(String name, Class def, int flags) {\r
+       super(name, def, flags) ;\r
+       this.type = "java.lang.Class".intern();\r
+    }\r
+\r
+    public ClassAttribute() {\r
+       super() ;\r
+    }\r
+\r
+}\r