Update of /var/cvs/src/org/mmbase/module/builders
In directory james.mmbase.org:/tmp/cvs-serv9948
Modified Files:
Properties.java
Log Message:
added a nodelist function to list properties
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/module/builders
Index: Properties.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/module/builders/Properties.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- Properties.java 12 Jun 2008 12:06:48 -0000 1.18
+++ Properties.java 15 Jan 2009 19:48:13 -0000 1.19
@@ -39,9 +39,13 @@
</mm:listnodes>
</div>
</mm:cloud>
+
+ <mm:nodelistfunction nodemanager="properties" name="list"
referids="_n...@node">
+ <mm:field name="key" />:<mm:field name="value" />
+ </mm:nodelistfunction>
</pre>
*
- * @version $Id: Properties.java,v 1.18 2008/06/12 12:06:48 michiel Exp $
+ * @version $Id: Properties.java,v 1.19 2009/01/15 19:48:13 andre Exp $
*/
public class Properties extends MMObjectBuilder {
@@ -63,6 +67,7 @@
protected final static Parameter<String> KEY = new
Parameter<String>("key", String.class, true);
protected final static Parameter<Object> VALUE = new
Parameter<Object>("value", Object.class);
protected final static Parameter<Object> DEFAULT = new
Parameter<Object>("default", Object.class);
+ protected final static Parameter[] LIST_PARAMETERS = { NODE, DEFAULT };
protected final static Parameter[] GET_PARAMETERS = { NODE, KEY, DEFAULT };
protected final static Parameter[] SET_PARAMETERS = { new
Parameter.Wrapper(GET_PARAMETERS), VALUE };
@@ -100,7 +105,23 @@
}
+ /**
+ * @since MMBase-1.9.1
+ */
+ protected NodeList getPropertyNodes(Node node) {
+ NodeQuery q =
node.getCloud().getNodeManager(Properties.this.getTableName()).createQuery();
+ Queries.addConstraint(q, Queries.createConstraint(q, "parent",
FieldCompareConstraint.EQUAL, node));
+ return q.getNodeManager().getList(q);
+ }
+
{
+ addFunction(new AbstractFunction<Object>("list", LIST_PARAMETERS) {
+ public Object getFunctionValue(Parameters parameters) {
+ Object v =
Properties.this.getPropertyNodes(parameters.get(NODE));
+ if (v == null) return parameters.get(DEFAULT);
+ return v;
+ }
+ });
addFunction(new AbstractFunction<Object>("get", GET_PARAMETERS) {
public Object getFunctionValue(Parameters parameters) {
Object v = Properties.this.getValue(parameters.get(NODE),
parameters.get(KEY));
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs