Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / real-world application / jigsaw / WWW / Doc / Programmer / samples / AbstractContainer.html
diff --git a/JMCR-Stable/real-world application/jigsaw/WWW/Doc/Programmer/samples/AbstractContainer.html b/JMCR-Stable/real-world application/jigsaw/WWW/Doc/Programmer/samples/AbstractContainer.html
new file mode 100644 (file)
index 0000000..0a88480
--- /dev/null
@@ -0,0 +1,163 @@
+<!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>AbstractContainer.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">// ContainerInterfaceImpl.java\r
+// $Id: AbstractContainer.html,v 1.1 2010/06/15 12:20:02 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">tools</span>.<span class="type">resources</span> ;\r
+\r
+<span class="keyword">import</span> <span class="reference">java</span>.<span class="reference">util</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="reference">event</span>.*;\r
+\r
+\r
+<span class="comment">/**\r
+ * The top level class for Resource Container.\r
+ */</span>\r
+<span class="reference">public</span> <span class="type">abstract</span> <span class="keyword">class</span> <span class="function-name">AbstractContainer</span> <span class="keyword">extends</span> <span class="type">FramedResource</span>\r
+                                        <span class="keyword">implements</span> <span class="type">ContainerInterface</span>,\r
+                                                   StructureChangedListener,\r
+                                                   <span class="type">AttributeChangedListener</span>\r
+{\r
+\r
+    <span class="comment">/**\r
+     * This handles the &lt;code&gt;RESOURCE_MODIFIED&lt;/code&gt; kind of events.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">evt</span><span class="comment"> The StructureChangeEvent.\r
+     */</span>\r
+  \r
+    <span class="reference">public</span> <span class="type">void</span> <span class="function-name">resourceModified</span>(<span class="type">StructureChangedEvent</span> <span class="variable-name">evt</span>) {\r
+       displayEvent( <span class="reference">this</span>, evt );\r
+    }\r
+\r
+    <span class="comment">/**\r
+     * A new resource has been created in some space.\r
+     * This handles the &lt;code&gt;RESOURCE_CREATED&lt;/code&gt; kind of events.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">evt</span><span class="comment"> The event describing the change.\r
+     */</span>\r
+\r
+    <span class="reference">public</span> <span class="type">void</span> <span class="function-name">resourceCreated</span>(<span class="type">StructureChangedEvent</span> <span class="variable-name">evt</span>) {\r
+       displayEvent( <span class="reference">this</span>, evt );\r
+    }\r
+  \r
+    <span class="comment">/**\r
+     * A resource is about to be removed\r
+     * This handles the &lt;code&gt;RESOURCE_REMOVED&lt;/code&gt; kind of events.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">evt</span><span class="comment"> The event describing the change.\r
+     */</span>\r
+  \r
+    <span class="reference">public</span> <span class="type">void</span> <span class="function-name">resourceRemoved</span>(<span class="type">StructureChangedEvent</span> <span class="variable-name">evt</span>) {\r
+       displayEvent( <span class="reference">this</span>, evt );\r
+    }\r
+\r
+    <span class="comment">/**\r
+     * A resource is about to be unloaded\r
+     * This handles the &lt;code&gt;RESOURCE_UNLOADED&lt;/code&gt; kind of events.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">evt</span><span class="comment"> The event describing the change.\r
+     */</span>\r
+\r
+    <span class="reference">public</span> <span class="type">void</span> <span class="function-name">resourceUnloaded</span>(<span class="type">StructureChangedEvent</span> <span class="variable-name">evt</span>){\r
+       <span class="comment">// don't display event here, because the resource is about\r
+</span>        <span class="comment">// to be unloaded.\r
+</span>    }\r
+\r
+    <span class="comment">/**\r
+     * Gets called when a property changes.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">evt</span><span class="comment"> The AttributeChangeEvent describing the change.\r
+     */</span>\r
+\r
+    <span class="reference">public</span> <span class="type">void</span> <span class="function-name">attributeChanged</span>(<span class="type">AttributeChangedEvent</span> <span class="variable-name">evt</span>) {\r
+       displayEvent( <span class="reference">this</span>, evt );\r
+    }\r
+\r
+    <span class="comment">/**\r
+     * Enumerate children resource identifiers.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">all</span><span class="comment"> Should all resources be enumerated ? Resources are often\r
+     * created on demand only, this flag allows the caller to tell the \r
+     * container about wether it is interested only in already created\r
+     * resources, or in all resources (even the one that have not yet been\r
+     * created).\r
+     * </span><span class="keyword">@return </span><span class="comment">An String enumeration, one element per child.\r
+     */</span>\r
+\r
+    <span class="type">abstract</span> <span class="reference">public</span> <span class="type">Enumeration</span> <span class="function-name">enumerateResourceIdentifiers</span>(<span class="type">boolean</span> <span class="variable-name">all</span>);\r
+\r
+    <span class="reference">public</span> <span class="type">Enumeration</span> <span class="function-name">enumerateResourceIdentifiers</span>() {\r
+       <span class="keyword">return</span> enumerateResourceIdentifiers(<span class="keyword">true</span>);\r
+    }\r
+\r
+    <span class="comment">/**\r
+     * Ask our frames to update default child attributes.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">attrs</span><span class="comment"> A hashtable.\r
+     */</span>\r
+    <span class="preprocessor">protected</span> <span class="type">ResourceContext</span> <span class="function-name">updateDefaultChildAttributes</span>(<span class="type">Hashtable</span> <span class="variable-name">attrs</span>) {\r
+       <span class="type">ResourceFrame</span> <span class="variable-name">frames</span>[] = getFrames();\r
+       <span class="keyword">if</span> ( frames != <span class="keyword">null</span> ) {\r
+           <span class="keyword">for</span> (<span class="type">int</span> <span class="variable-name">i</span> = 0 ; i < frames.length ; i++) {\r
+               <span class="keyword">if</span> ( frames[i] == <span class="keyword">null</span> )\r
+                   <span class="keyword">continue</span>;\r
+               frames[i].updateDefaultChildAttributes(attrs);\r
+           }\r
+       }\r
+       <span class="keyword">return</span> (<span class="type">ResourceContext</span>)attrs.get("<span class="string">context</span>");\r
+    }\r
+\r
+    <span class="comment">/**\r
+     * Lookup a children in the container.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">name</span><span class="comment"> The name of the children to lookup.\r
+     * </span><span class="keyword">@exception </span><span class="type">InvalidResourceException</span><span class="comment"> If the container could not restore \r
+     * the resource from its store.\r
+     */</span>\r
+\r
+    <span class="type">abstract</span> <span class="reference">public</span> <span class="type">ResourceReference</span> <span class="function-name">lookup</span>(<span class="type">String</span> <span class="variable-name">name</span>);\r
+\r
+    <span class="comment">/**\r
+     * Remove a child resource from that container.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">name</span><span class="comment"> The name of the child to remove.\r
+     * </span><span class="keyword">@exception </span><span class="type">MultipleLockException</span><span class="comment"> If someone else\r
+     * has locked the resource.\r
+     */</span>\r
+\r
+    <span class="type">abstract</span> <span class="reference">public</span> <span class="type">void</span> <span class="function-name">delete</span>(<span class="type">String</span> <span class="variable-name">name</span>)\r
+       <span class="keyword">throws</span> <span class="type">MultipleLockException</span>;\r
+\r
+    <span class="comment">/**\r
+     * Create a default child resource in that container.\r
+     * This method is called by the editor to add a default resource\r
+     * in the container under the given name. The meaning of &lt;em&gt;default&lt;/em&gt;\r
+     * is left up to the container here.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">name</span><span class="comment"> The identifier for the new resource.\r
+     */</span>\r
+    <span class="type">abstract</span> <span class="reference">public</span> <span class="type">ResourceReference</span> <span class="function-name">createDefaultResource</span>(<span class="type">String</span> <span class="variable-name">name</span>);\r
+\r
+    <span class="comment">/**\r
+     * Initialize and register the given resource within that container.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">name</span><span class="comment"> The identifier for the resource.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">resource</span><span class="comment"> An unitialized resource instance.\r
+     * </span><span class="keyword">@param </span><span class="variable-name">defs</span><span class="comment"> A default set of init attribute values (may be\r
+     * &lt;strong&gt;null&lt;/strong&gt;).\r
+     * </span><span class="keyword">@exception </span><span class="type">InvalidResourceException</span><span class="comment"> If an error occurs during the\r
+     * registration.\r
+     */</span>\r
+\r
+    <span class="type">abstract</span> <span class="reference">public</span> <span class="type">void</span> <span class="function-name">registerResource</span>(<span class="type">String</span> <span class="variable-name">name</span>,\r
+                                         <span class="type">Resource</span> <span class="variable-name">resource</span>,\r
+                                         <span class="type">Hashtable</span> <span class="variable-name">defs</span>)\r
+       <span class="keyword">throws</span> <span class="type">InvalidResourceException</span>;\r
+}\r
+\r
+    </pre>\r
+  </body>\r
+</html>\r