Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / mcr-test / WWW / Doc / Programmer / samples / RedirecterFrame.html
diff --git a/JMCR-Stable/mcr-test/WWW/Doc/Programmer/samples/RedirecterFrame.html b/JMCR-Stable/mcr-test/WWW/Doc/Programmer/samples/RedirecterFrame.html
new file mode 100644 (file)
index 0000000..96da009
--- /dev/null
@@ -0,0 +1,88 @@
+<!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>RedirecterFrame.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">// RedirecterFrame.java\r
+// $Id: RedirecterFrame.html,v 1.1 2010/06/15 12:20:05 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">frames</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
+<span class="keyword">import</span> <span class="reference">java</span>.<span class="reference">net</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
+<span class="keyword">import</span> <span class="reference">org</span>.<span class="reference">w3c</span>.<span class="reference">jigsaw</span>.<span class="reference">http</span>.*;\r
+<span class="keyword">import</span> <span class="reference">org</span>.<span class="reference">w3c</span>.<span class="reference">www</span>.<span class="reference">http</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>.<span class="type">ProtocolException</span>;\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>.<span class="type">NotAProtocolException</span>;\r
+\r
+<span class="comment">/**\r
+ * Perform an internal redirect.\r
+ */</span>\r
+<span class="reference">public</span> <span class="keyword">class</span> <span class="function-name">RedirecterFrame</span> <span class="keyword">extends</span> <span class="type">HTTPFrame</span> {\r
+    <span class="comment">/**\r
+     * Attributes index - The index for the target attribute.\r
+     */</span>\r
+    <span class="preprocessor">protected</span> <span class="type">static</span> <span class="type">int</span> <span class="variable-name">ATTR_TARGET</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
+       <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.frames.RedirecterFrame</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
+       a = <span class="keyword">new</span> <span class="type">StringAttribute</span>("<span class="string">target</span>"\r
+                               , <span class="keyword">null</span>\r
+                               , Attribute.EDITABLE);\r
+       ATTR_TARGET = AttributeRegistry.registerAttribute(cls, a) ;\r
+    }\r
+\r
+    <span class="preprocessor">protected</span> <span class="type">String</span> <span class="function-name">getTarget</span>() {\r
+       <span class="keyword">return</span> (<span class="type">String</span>) getValue(ATTR_TARGET, <span class="keyword">null</span>);\r
+    }\r
+\r
+    <span class="reference">public</span> <span class="type">ReplyInterface</span> <span class="function-name">perform</span>(<span class="type">RequestInterface</span> <span class="variable-name">req</span>) \r
+       <span class="keyword">throws</span> <span class="type">ProtocolException</span>, <span class="type">NotAProtocolException</span>\r
+    {\r
+       <span class="type">Reply</span>        <span class="variable-name">reply</span>  = (<span class="type">Reply</span>) performFrames(req);\r
+       <span class="keyword">if</span> (reply != <span class="keyword">null</span>) \r
+           <span class="keyword">return</span> reply;\r
+       <span class="type">Request</span> <span class="variable-name">request</span> = (<span class="type">Request</span>) req;\r
+       httpd        server = (httpd) getServer();\r
+       request.setReferer(getURLPath());\r
+       <span class="keyword">try</span> {\r
+           request.setURL( <span class="keyword">new</span> <span class="type">URL</span>(server.getURL(), getTarget()));\r
+       } <span class="keyword">catch</span> (<span class="type">MalformedURLException</span> <span class="variable-name">ex</span>) {\r
+           <span class="type">Reply</span> <span class="variable-name">error</span> = request.makeReply(HTTP.INTERNAL_SERVER_ERROR);\r
+           error.setContent("<span class="string">&lt;html&gt;&lt;head&gt;&lt;title&gt;Server Error&lt;/title&gt;</span>"+\r
+                            "<span class="string">&lt;/head&gt;&lt;body&gt;&lt;h1&gt;Server misconfigured&lt;/h1&gt;</span>"+\r
+                            "<span class="string">&lt;p&gt;The resource &lt;b&gt;</span>"+getIdentifier()+"<span class="string">&lt;/b&gt;</span>"+\r
+                            "<span class="string">has an invalid target attribute : &lt;p&gt;&lt;b&gt;</span>"+\r
+                            getTarget()+"<span class="string">&lt;/b&gt;&lt;/body&gt;&lt;/html&gt;</span>");      \r
+           <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">HTTPException</span> (error);\r
+       }\r
+       <span class="keyword">return</span> server.perform(request);\r
+    }\r
+}\r
+\r
+    </pre>\r
+  </body>\r
+</html>\r