hi paul

there isn't such a helper class at the moment (AFAIK no one's asked for one before).

here's an (untested) Rule that should create a Long and push it onto the stack. (you'll need to add a setNextRule so that the long gets added to your collection.)

public class CreateLongRule extends Rule {
public void body(String namespace, String name, String text) throws Exception {
digester.push(new Long(text));
}


        public vod end(String namespace, String name) {
                digester.pop();
        }
}

primitive conversion rules for this situation might be good additions to digester - possibly using ConvertUtils to provide custom conversions. anyone fancy giving them a go?

- robert

On Tuesday, February 25, 2003, at 06:05 AM, Paul Smith wrote:

Firstly, I am still pretty new to Digester.

I am needing to use Digester to read xml of the form of this test case:

  public void test1() throws Exception
  {
    String xml = "<Collection>" +
                        "  <ID>1</ID> " +
                        "</Collection>";

   Digester digester = new Digester();
   digester.addObjectCreate("Collection", java.util.ArrayList.class);
   digester.addObjectCreate("Collection/ID", java.lang.Long.class);
   digester.addSetNext("Collection/ID", "add" , "java.lang.Object");

Collection collection = (Collection)digester.parse( new StringReader(xml)
);
assertTrue("Should contain 1 instance: size=" + collection.size(),
collection.size()==1);
assertTrue("Should contain 1: size=" + collection.size() + ",
collection=" + collection, collection.contains(new Long(1)));
}
At the end of the day, I want this:


<Collection>
 <ID>101</ID>
 <IDI>105</ID>
</Collection>

To be digested into a Collection of Long wrappers.

But I am of course getting the following exception:

java.lang.InstantiationException: java.lang.Long

because there is no no-arg constructor for long. I really am hoping I don't
have to create an ObjectCreationFactory, as I was hoping there'd be some
helper class within Digester to assist with primitives as such (such as a
NumberObjectCreationFactory?).


Any help would be appreciated.

cheers,
_________________________
Paul Smith
Lawlex Compliance Solutions
phone: +61 3 9278 1511
email: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to