Overview | Package | Class | Tree | Deprecated | Index | Help
| Copyright © 2006 BEA Systems, Inc. All Rights Reserved
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.bea.content.controls.extensible
Interface CmxControl

All Known Subinterfaces:
  AnnouncementsPollerCmxControl, CommunityContentCmxControl, FeedEntriesCmxControl, FeedFoldersCmxControl, FolderCmxControl, FoldersCmxControl, com.bea.apps.groupspace.controls.extensible.GroupSpaceCmxControl, GS_UtilCmxControl, GsDocCmxControl, IssuesCmxControl, LinksCmxControl, RichTextCmxControl, SavedSearchCmxControl, UtilCmxControl

All Known Implementing Classes:
  CmxControlImpl

    public interface CmxControl

Copyright (c) 2005-2006 by BEA Systems, Inc. All Rights Reserved.

Simplifies access to content management (CM) content repositories.

To create an `ObjectClass` and `Node` of that new type, one writes an interface that:

1. extends CmxControl is annotated with `@ControlExtention`
2. specifies the repository name using an `@RepositoryInfo` annotation
3. declares a method annotated with `@Create`
4. annotates one method argument with `@ParentId`
5. annotates the other method arguments with `@Property`; supplying necessary type information
6. generates a `Bean` from the new interface using an annotation processing tool
7. calls the `@Create` method

For example:
`@org.apache.beehive.controls.api.bean.ControlExtension
` `@CmxControl.RepositoryInfo(repositoryName="Foo_Repository")
` `public interface BarCmxControl extends CmxControl
` `{
` `@Create(nodeType="BAR")
` `public Bar createBar(@Property(name="BAR_TITLE") String title);
` `}
`

The new `ObjectClass` is created on the first call; `Node` instances of that type are created on each call.

Method-level and Paramter-level annotations are mutually exclusive in that only one should be used per method/argument

Declarative instantiation (`@Control fooControl;`) from a PageFlow or from another control is the preferred method of instantiating controls (as this will supply the control a proper Control Container Context (CCC)). Should the control be instantiated programmatically, from a different context or with an application scope (rather than webapp), extra measures should be taken:

- Application Scoped Control - must use `AppScopedControlsFactory` to obtain the CCC
- Backing File Controls - must create custom CCC to use controls from a backing file
- Servlet Test Case Controls - must include `ControlFilter` in web.xml

see http://beehive.apache.org for more on extensible controls

See Also
  `Extensible`

Nested Class Summary
`static interface` | `CmxControl.Create` Method-level annotation for `@ControlExtention` methods to Create CM `Node` & `ObjectClass`
`static interface` | `CmxControl.Delete` Method-level annotation for methods in a `@ControlExtension` which wish to Delete CM nodes.
`static interface` | `CmxControl.DynamicProperties` Parameter-level annotation to mark a parameter as a property
`static interface` | `CmxControl.FindBy` Method-level annotation for methods in a `@ControlExtension` which wish to find CM nodes using an expression.
`static interface` | `CmxControl.FindById` Method-level annotation for methods in a `@ControlExtension` which wish to find CM nodes using an ID...returns a Node.
`static interface` | `CmxControl.Id` Parameter-level annotation to mark a parameter as a property
`static interface` | `CmxControl.Move` Method-level annotation for methods in a `@ControlExtension` which wish to Delete CM nodes.
`static interface` | `CmxControl.ParentId` Parameter-level annotation to mark a parameter as a property
`static interface` | `CmxControl.Property` Parameter-level annotation to mark a parameter as a property
`static class` | `CmxControl.PropertyPair` Holds a `Property` and its corresponding `PropertyDefinition`
`static interface` | `CmxControl.RepositoryInfo` Class-level annotation for making a RepositoryInfo available for use within the CmxControlImpl.
`static interface` | `CmxControl.SearchPaths` Parameter-level annotation to mark a parameter as a property
`static interface` | `CmxControl.SortOrder` Parameter-level annotation to mark a parameter as a property
`static interface` | `CmxControl.Update` Method-level annotation for methods in a `@ControlExtension` which wish to Delete CM nodes.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006 BEA Systems, Inc. All Rights Reserved