Hello everybody,

I have a simple `component id generator` that implements
`NSKeyValueCodingAdditions`. Something like this:

public class ComponentIDGenerator implements NSKeyValueCodingAdditions {
  private String idBase;

  public ComponentIDGenerator(
WOComponent component) {
    idBase = "_" + component.context().elementID().replace('.', '_');
  }

  public Object valueForKeyPath(String keypath) {
    return get(keypath);
  }

  public String get(String keypath) {
    String suffix = keypath.replace('.', '_');
    return idBase + "_" + suffix;
  }
  ...
}

I pasted it because it is really simple to understand.

When initializing a component (in the appendToResponse() method) the
generator is called like this:
`String idFor = new ComponentIDGenerator(this);`

In the wod, when I try to access keys like:
`idFor.foo` or `idFor.bar` i get WO Template errors from WOLips:
"there is no key foo for the keypath idFor".

It's useless to say that at runtime everything runs fine.

I found two ways to workaround this issues:
1) use WOGNL expression in the wod. So i use ~idFor.foo
2) foreach key create a getKey method. For example: getFoo()
  return idFor.valueForKey("foo").toString();

I don't like those two ways:
the first because it is not our purpose to use WOGNL framework in the
application,
the second because the work load becomes very huge.

Maybe there is a third way:
put // VALID next to the wod defecting property-value pair, like
id = idFor.foo; // VALID

I want to know if is there a correct way to remove this kind of errors
between those i mentioned before, or maybe something better.

Thank you for reading.

Regards,
  Filippo Lauria
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to