Hi.
>> I'd like to make *Field/*FieldRenderers public.
>> Any objections?
>
> I'm bit uncomfortable.
>
> The exposed part of the Fields are defined in FieldOutline. We should
> rather think about extending *Outline than making their implementations
> accessible.
>
> Perhaps would you elaborate on why would you like to make them public?
I have to generate identifier properties for Hibernate. To hold property
model consistent, I'd like to generate them as CValuePropertyInfos.
However, generated fields must be @XmlTransient so that they won't be
processed by JAXB. This means I need something like TransientSingleField:
public class TransientSingleField extends SingleField {
public TransientSingleField(ClassOutlineImpl context, CPropertyInfo
prop) {
super(context, prop);
}
protected void annotate(JAnnotatable field) {
field.annotate(XmlTransient.class);
}
}
To be able to extend SingleField, I need it to be public.
You're right, I could implement FieldOutline, but this would result in
copying a lot of the code from SingleField, AbstractField* and so on,
I'd like to avoid this.
I will also need a ProxyField - a field which simply accesses field from
another property.
Choices are: add TransientSingleField and ProxyField to JAXB or make
appropriate classes public to allow extensions. I like the last
alternative a bit better - more freedom in plugins and I don't have to
hack into JAXB with my field classes.
Bye.
/lexi