KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jicengine > element > impl > CdataConverterInvocationOperation


1 package org.jicengine.element.impl;
2
3
4 import org.jicengine.element.Element;
5 import org.jicengine.expression.FactoryInvocationParser;
6 import org.jicengine.operation.Context;
7 import org.jicengine.operation.Factory;
8 import org.jicengine.operation.FactoryInvocationOperation;
9 import org.jicengine.operation.MethodInvocationOperation;
10 import org.jicengine.operation.ObjectNotFoundException;
11 import org.jicengine.operation.Operation;
12 import org.jicengine.operation.OperationException;
13 import org.jicengine.operation.StaticValue;
14 import org.jicengine.operation.VariableValueOperation;
15
16 /**
17  *
18  * @author timo
19  *
20  */

21 public class CdataConverterInvocationOperation implements Operation {
22
23   private Class JavaDoc targetClass;
24   private String JavaDoc cdata;
25   
26   public CdataConverterInvocationOperation(Class JavaDoc targetClass, String JavaDoc cdata)
27   {
28     this.targetClass = targetClass;
29     this.cdata = cdata;
30   }
31   
32   public boolean needsParameters()
33   {
34     return true;
35   }
36
37   public boolean needsParameter(String JavaDoc name)
38   {
39     return name.equals(Element.VARIABLE_NAME_CDATA);
40   }
41
42   public Object JavaDoc execute(Context context) throws OperationException
43   {
44      
45     String JavaDoc contextVariableName = CdataConverterElementCompiler.toContextVariableName(this.targetClass);
46     
47     try {
48       Factory factory = (Factory) context.getObject(contextVariableName);
49
50       Object JavaDoc result = factory.invoke(new Object JavaDoc[]{this.cdata});
51       
52       return result;
53     } catch (ObjectNotFoundException e){
54       throw new OperationException("CDATA conversion for class '" + this.targetClass.getName() + "' not available.");
55     }
56     
57   }
58
59 }
60
Popular Tags