Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / real-world application / jigsaw / WWW / Doc / Programmer / samples / PassDirectory.html
diff --git a/JMCR-Stable/real-world application/jigsaw/WWW/Doc/Programmer/samples/PassDirectory.html b/JMCR-Stable/real-world application/jigsaw/WWW/Doc/Programmer/samples/PassDirectory.html
new file mode 100644 (file)
index 0000000..8c64ab9
--- /dev/null
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN"\r
+                      "http://www.w3.org/TR/REC-html40/strict.dtd">\r
+<html>\r
+  <head>\r
+    <title>PassDirectory.java</title>\r
+    <meta name="Author" content="Benoit Mahe">\r
+    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+    <meta name="Generator" content="*emacs: emacs-css">\r
+\r
+    <link rel="Stylesheet" media="screen" type="text/css" href="default-html.css">\r
+  </head>\r
+  <body>\r
+\r
+    <pre>\r
+<span class="comment">// PassDirectory.java\r
+// $Id: PassDirectory.html,v 1.1 2010/06/15 12:20:04 smhuang Exp $\r
+// (c) COPYRIGHT MIT and INRIA, 1996.\r
+// Please first read the full copyright statement in file COPYRIGHT.html\r
+</span>\r
+<span class="keyword">package</span> <span class="reference">org</span>.<span class="reference">w3c</span>.<span class="reference">jigsaw</span>.<span class="type">resources</span> ;\r
+\r
+<span class="keyword">import</span> <span class="reference">java</span>.<span class="reference">util</span>.*;\r
+<span class="keyword">import</span> <span class="reference">java</span>.<span class="reference">io</span>.*;\r
+\r
+<span class="keyword">import</span> <span class="reference">org</span>.<span class="reference">w3c</span>.<span class="reference">tools</span>.<span class="reference">resources</span>.*;\r
+\r
+<span class="reference">public</span> <span class="keyword">class</span> <span class="function-name">PassDirectory</span> <span class="keyword">extends</span> <span class="reference">org</span>.<span class="reference">w3c</span>.<span class="reference">jigsaw</span>.<span class="reference">resources</span>.<span class="type">DirectoryResource</span> {\r
+\r
+    <span class="comment">/**\r
+     * Attribute index - The target physicall directory of this resource.\r
+     */</span>\r
+    <span class="preprocessor">protected</span> <span class="type">static</span> <span class="type">int</span> <span class="variable-name">ATTR_PASSTARGET</span> = -1 ;\r
+\r
+    <span class="type">static</span> {\r
+       <span class="type">Attribute</span> <span class="variable-name">a</span>   = <span class="keyword">null</span> ;\r
+       <span class="type">Class</span>     <span class="variable-name">cls</span> = <span class="keyword">null</span> ;\r
+\r
+       <span class="comment">// Get a pointer to our class.\r
+</span>        <span class="keyword">try</span> {\r
+           cls = Class.forName("<span class="string">org.w3c.jigsaw.resources.PassDirectory</span>") ;\r
+       } <span class="keyword">catch</span> (<span class="type">Exception</span> <span class="variable-name">ex</span>) {\r
+           ex.printStackTrace() ;\r
+           System.exit(1) ;\r
+       }\r
+       <span class="comment">// The directory attribute.\r
+</span>        a = <span class="keyword">new</span> <span class="type">FileAttribute</span>("<span class="string">pass-target</span>"\r
+                             , <span class="keyword">null</span>\r
+                             , Attribute.EDITABLE);\r
+       ATTR_PASSTARGET = AttributeRegistry.registerAttribute(cls, a) ;\r
+    }\r
+\r
+    <span class="comment">/**\r
+     * Catch side-effects on pass-target, to absolutize it.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">idx</span><span class="comment"> The attribute to set.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">value</span><span class="comment"> The new value.\r
+     */</span>\r
+\r
+    <span class="reference">public</span> <span class="type">void</span> <span class="function-name">setValue</span>(<span class="type">int</span> <span class="variable-name">idx</span>, <span class="type">Object</span> <span class="variable-name">value</span>) {\r
+       <span class="reference">super</span>.setValue(idx, value);\r
+       <span class="keyword">if</span> ( idx == ATTR_PASSTARGET ) {\r
+           <span class="type">File</span> <span class="variable-name">file</span> = (<span class="type">File</span>) value;\r
+           <span class="keyword">if</span> ( ! file.isAbsolute() ) {\r
+               <span class="comment">// Make it absolute, relative to the server space.\r
+</span>                <span class="type">File</span> <span class="variable-name">abs</span> = <span class="keyword">new</span> <span class="type">File</span>(getServer().getRootDirectory()\r
+                                   , file.toString());\r
+               values[ATTR_PASSTARGET] = abs;\r
+               values[ATTR_DIRECTORY]  = abs;\r
+           }\r
+       }\r
+    }\r
+\r
+    <span class="comment">/**\r
+     * The getDirectory method now returns the pass-directory.\r
+     * </span><span class="keyword">@return </span><span class="comment">The pass target location.\r
+     */</span>\r
+\r
+    <span class="reference">public</span> <span class="type">File</span> <span class="function-name">getDirectory</span>() {\r
+       <span class="keyword">return</span> (<span class="type">File</span>) getValue(ATTR_PASSTARGET, <span class="keyword">null</span>) ;\r
+    }\r
+\r
+    <span class="comment">/**\r
+     * Make the directory attribute default to the target location.\r
+     * This is required for classes that rely on the directory attribute to\r
+     * compute their own attributes.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">values</span><span class="comment"> The values we should initialized from.\r
+     */</span>\r
+\r
+    <span class="reference">public</span> <span class="type">void</span> <span class="function-name">initialize</span>(<span class="type">Object</span> <span class="variable-name">values</span>[]) {\r
+       <span class="reference">super</span>.initialize(values);\r
+       <span class="type">File</span> <span class="variable-name">target</span> = getDirectory();\r
+       <span class="keyword">if</span> ( target != <span class="keyword">null</span> ) \r
+           setValue(ATTR_DIRECTORY, target);\r
+    }\r
+\r
+\r
+}\r
+\r
+    </pre>\r
+  </body>\r
+</html>\r