Using digester: how to create parent node knowing the child nodes...

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Using digester: how to create parent node knowing the child nodes...

Valerio
Hello,
this is my first post to the commons ml, thanks for the support.

i'm willing to use digester to parse this kind ofxml:

<parameters  type=3D"RenameRelationOperator Parameter">
   <param>newName</param>
</parameters>

there could be different kind of type values.

Now, the value of the parameters should be used on the
1-arg constructor for objects of type RenameRelationOperatorParameter. At
this time, there are no setParam method, and i' searching for a solution
that avoid adding them.

in my digesterReader at this time i have this (reduced to show the problem)
:

digester.addFactoryCreate("parameters", new OperatorParameterFactory());

and the OperatorParameterFactory (local to MyDigesterReader) is:

   public static class OperatorParameterFactory extends
AbstractObjectCreationFactory {

     @Override
     public Object createObject(Attributes arg0) throws Exception {
         String operatorType =3D arg0.getValue("type");
         OperatorParameter result =3D null;

         try {
           result =3D (OperatorParameter) Class.forName
(operatorType).newInstance();
         }catch ( ClassNotFoundException e) {
           throw new UnsupportedOperationException("OperatorParameter name=
d
"+operatorType+" is not supported yet");
         }

         return result;
     }

 }

thanks for any support you can provide,
valerio


--
To Iterate is Human, to Recurse, Divine
James O. Coplien, Bell Labs