bruno 2003/06/26 08:34:40
Modified: src/blocks/woody/java/org/apache/cocoon/woody/datatype/typeimpl
AbstractDatatypeBuilder.java
Log:
Added support for dynamic (non-cached) selection lists
Revision Changes Path
1.3 +13 -3
cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/datatype/typeimpl/AbstractDatatypeBuilder.java
Index: AbstractDatatypeBuilder.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/datatype/typeimpl/AbstractDatatypeBuilder.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AbstractDatatypeBuilder.java 26 Jun 2003 09:11:24 -0000 1.2
+++ AbstractDatatypeBuilder.java 26 Jun 2003 15:34:40 -0000 1.3
@@ -89,10 +89,20 @@
protected void buildSelectionList(Element datatypeElement, AbstractDatatype
datatype) throws Exception {
Element selectionListElement = DomHelper.getChildElement(datatypeElement,
Constants.WD_NS, "selection-list");
if (selectionListElement != null) {
+ SelectionList selectionList;
String src = selectionListElement.getAttribute("src");
- if (src.length() > 0)
- selectionListElement = readSelectionList(src);
- SelectionList selectionList =
SelectionListBuilder.build(selectionListElement, datatype);
+ if (src.length() > 0) {
+ boolean cache =
DomHelper.getAttributeAsBoolean(selectionListElement, "cache", true);
+ if (cache) {
+ selectionListElement = readSelectionList(src);
+ selectionList =
SelectionListBuilder.build(selectionListElement, datatype);
+ } else {
+ selectionList = new DynamicSelectionList(datatype, src,
componentManager);
+ }
+ } else {
+ // selection list is defined inline
+ selectionList = SelectionListBuilder.build(selectionListElement,
datatype);
+ }
datatype.setSelectionList(selectionList);
}
}