KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > values > SetJob


1 package org.oddjob.values;
2
3 import org.oddjob.arooa.ArooaHandler;
4 import org.oddjob.arooa.ArooaContext;
5 import org.oddjob.arooa.ArooaConstants;
6 import org.oddjob.arooa.handlers.MappedPropertyHandler;
7 import org.oddjob.arooa.reflect.DefaultRegistryLookup;
8 import org.oddjob.arooa.reflect.RegistryLookup;
9 import org.oddjob.framework.SimpleJob;
10
11
12 /**
13  * @oddjob.description A job which sets properties in other
14  * jobs when it executes.
15  *
16  * @oddjob.example
17  * This will set the text property of greeting to "hello".
18  * <pre><code>
19  * &lt;sequential&gt;
20  * &lt;set&gt;
21  * &lt;string name="greeting.text" value="hello"/&gt;
22  * &lt;/set&gt;
23  * &lt;echo id="greeting"/&gt;
24  * &lt;/sequential&gt;
25  * </code></pre>
26  */

27
28 public class SetJob extends SimpleJob {
29     
30     private RegistryLookup componentRegistry;
31     
32     /**
33      * Add a name value pair.
34      *
35      * @oddjob.element <i>Any type</i>
36      * @oddjob.description Any type. In addition to the attributes
37      * which are the properties of the type (documented with each
38      * type) a name attribute is required.
39      * @oddjob.required No.
40      *
41      * @param name The name of the variable.
42      * @param value The runtime configurable for the value.
43      */

44     public void setValue(String JavaDoc name, Object JavaDoc value) {
45         logger().debug("Setting [" + name + "] = [" + value + "]");
46         componentRegistry.setProperty(name, value);
47     }
48     
49     /*
50      * (non-Javadoc)
51      * @see org.oddjob.jobs.AbstractJob#execute()
52      */

53     protected int execute() throws Exception JavaDoc {
54         return 0;
55     }
56
57     /**
58      * Provide our own handler for child elements.
59      *
60      * @param context Not required.
61      * @return Our handler.
62      */

63     public ArooaHandler handlerFor(ArooaContext context) {
64         componentRegistry = new DefaultRegistryLookup("set", context);
65         context.set(ArooaConstants.RTC_LEAVE_PROXY, new Boolean JavaDoc(true));
66         context.set(ArooaConstants.ELEMENT_NAME, "value");
67         return new MappedPropertyHandler();
68     }
69
70 }
71
72
Popular Tags