You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ky...@apache.org on 2005/05/06 22:14:17 UTC
svn commit: r168647 -
/incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/controls/controlsProgramming.xml
Author: kylem
Date: Fri May 6 13:14:17 2005
New Revision: 168647
URL: http://svn.apache.org/viewcvs?rev=168647&view=rev
Log:
Added basic section and sample describing Control inheritance.
Modified:
incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/controls/controlsProgramming.xml
Modified: incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/controls/controlsProgramming.xml
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/controls/controlsProgramming.xml?rev=168647&r1=168646&r2=168647&view=diff
==============================================================================
--- incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/controls/controlsProgramming.xml (original)
+++ incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/controls/controlsProgramming.xml Fri May 6 13:14:17 2005
@@ -905,6 +905,36 @@
<p>Whether ContainerBeanContext or ControlBeanContext, the BeanContext instances also provide the basic hierarchy of composition, as shown by the parent-child relationships above.</p>
</section>
</section>
+ <section>
+ <title>Inheritance</title>
+ <p>The Controls architecture also makes it possible to extend the functionality of existing Controls using standard Java inheritance. While more complex scenarios are possible, a common model for extending a Control type using inheritance involves extending both public interface <b>and</b> the implementation to extend base functionality by adding new operations, events, or properties.</p>
+<p>The following code sample shows the basic structure:</p>
+<p><strong>Basic Inheritance Sample Code</strong></p>
+<source>
+ // A.java: The base control interface
+ @ControlInterface
+ public interface A { ... }
+
+ // AImpl.java: The implementation of the base control interface
+ @ControlImplementation
+ public class AImpl implements A { ... }
+
+ // B.java: The extension of the base interface that adds
+ // operations, properties, and/or events
+ @ControlInterface
+ public interface B extends A { ... }
+
+ // BImpl.java: The implementation of the extended control interface
+ @ControlImplementation
+ public class BImpl implements B { ... }
+</source>
+
+<p>In the example above, the BBean JavaBean class that results from processing of B.java will expose the operations, properties, and events defined by both the A and B control interfaces. The BImpl class would need to implement all operations defined by the B interface, and could also choose to override some, all, or none of the operations defined by A.</p>
+
+<p>Inheritance is also supported for extensible control types. If AImpl implements the Extensible interface, then BImpl could choose to define additional extensibility PropertySets and implement a new Extensible.invoke() method to provide their semantics (delegating to AImpl.invoke() as approriate). It could also choose not to extend the extensibilty semantics and allow all operations defined within a ControlExtension derived from B to be handled by AImpl.invoke().
+</p>
+
+ </section>
<section>
<title>Context and Resource Events</title>