your class must be declared as "public"

On 10/6/06, Daryl Beattie <[EMAIL PROTECTED]> wrote:
Hi Velocity people,



            Okay, first off; I tried searching for answers to this, but
the mailing list archive is not searchable (in any way that I could
find), so if this question is a faq, please don't be upset.

            I am having trouble getting a value out of a Map. Every time
I try, the reference gets printed out as it is. Even normal methods
don't seem to be functioning consistently.

            I have developed a test case to illustrate my problem. The
code may look long but it's pretty simple:



class BO extends BOBase {

  // Empty.

}



class BOBase extends DataHolder {

  // Empty.

}



class DataHolder extends HashMap<Name, Value> {

  public Value getA() {

    return this.get(new Name("a")); //$NON-NLS-1$

  }

  @Override

  public Value get(Object key) {

    return super.get(new Name(key.toString()));

  }

}



class Name {

  String name;

  public Name(String name) {

    this.name = name;

  }

  @Override

  public String toString() {

    return name;

  }

  @Override

  public boolean equals(Object a) {

    return ((a != null) && (a instanceof Name) &&
a.toString().equals(this.toString()));

  }

  @Override

  public int hashCode() {

    return name.hashCode();

  }

}



class Value {

  String value;

  public Value(String value) {

    this.value = value;

  }

  @Override

  public String toString() {

    return value;

  }

}



            And when I run velocity I do this:



VelocityContext context = new VelocityContext();



BO test = new BO();

test.put(new Name("a"), new Value("1"));

context.put("bo", test);



Map<Name, Value> test2 = new HashMap<Name, Value>();

test2.put(new Name("a"), new Value("1"));

context.put("bo2", test2);

context.put("a", new Name("a"));



context.put("test", new String("Boo!"));



            My template looks like this:



$bo.A

$bo.getA()

$bo.get("a")



$bo2.get($a)



$test



            But my output looks like this:



$bo.A

$bo.getA()

$bo.get("a")



1



Boo!



            What is going on?



Sincerely,



            Daryl.




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

Reply via email to