commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Allen,Eva" <all...@oclc.org>
Subject [Digester] Can use inner classes?
Date Wed, 18 Oct 2006 02:04:28 GMT
 
I'm attempting to write a small parser as part of another larger
application.  I'd like to do something like the following:

public class Parser {

...
	ClassA s = new ClassA();
	Digester d;
	d.push(s);
      ...
	d.parse(inputStream);
      ...
}
class ClassA {
   LinkedList ClassB;
   public void addClassB();
}
class ClassB {
  String data1;
  String data2;
  String data3;
  public getters and setters;
}

I'm using an xmlrules file looks like
<digester-rules>
...
   <pattern value="resolver">
	<object-create-rule classname="ClassB" />
	<set-properties-rule />
	<set-next-rule methodname="addClassB" />

	<pattern value="data1">
		<call-method-rule methodName="setData1" paramCount="0"
/>
      </pattern>
	...
   </pattern>
...
</digester-rules>

This all works fine as long as ClassA and ClassB are public classes.
But as soon as I try to make them inner classes of the Parser class this
fails with an IllegalAccessException (Cannot access a member of class
ClassB with modifiers "").

The Digester Developer Guide mentions something about this as a known
limitation and says to ask on the mailing list if I think I'm
experiencing the problem it mentions.  So I'm asking.  Is there a way
around this or am I forced to have public classes for use with the
digester?

Since I originally wrote this I've found that I could use the
FactoryCreateRule to create an object that doesn't have a no-argument
constructor, but I haven't been able to find a proper ruleset that will
allow me to do this.  Any suggestions?
--
Eva Allen
Consulting Software Engineer, OCLC, Inc.
6565 Frantz Rd., Dublin, OH  43017
614.764.6009 | allene@oclc.org
Views contained herein are my own; they do not necessarily reflect those
of my employer


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message