I think André's suggestion, which I filed as LPP-7613 is a simpler
approach than what we were trying to do in this thread.
On 2009-01-11, at 14:35EST, Henry Minsky wrote:
There are likely even more aspects which make clear that
setAttribute
isn't a good candidate for such stuff.
Yes, you are exactly right here. So, there needs to be some other
interface
for removing a constraint on an attribute.
It sounds like __LZhasConstraint (or something like it) should be
made
public. Perhaps it should return the constraint method name when an
attribute is constrained, so you can use removeConstraintMethod to
remove
the constraint if you want to override it?
I think that having an API to tell if a constraint exists might be the
best solution for now.
Question, what happens if someone has two or more different
constraints which set the same attribute? I guess that would be an app
design bug, no? Or at least a bad idea?
If you can manually remove find and remove a constraint, and can tell
if the user explicitly supplied an attribute value, then your class
can decide whether to use the default constraint or override it with a
constant value.
I guess the only way to tell if an arg is supplied explicitly, is to
use the idiom you had where the construct() method looks for the
attribute name in the args list, e.g., args['x']?
Henry Minsky
Software Architect
[email protected]