, XJC-. , . --> DO SOMETHING WITH THIS FIELD
.
, fo[i]
( f).
Set JType. , , f
setType
:
JType inner = ((JClass)f.type()).getTypeParameters().get(0);
JType setType = co.parent().getCodeModel().ref(Set.class).narrow(inner);
f.type(setType);
narrow()
.
, , XJC, . , . .
replaceGetter()
private void replaceGetter(ClassOutline co, JFieldVar f, JType inner) {
String get = "get";
String name = f.name().substring(0, 1).toUpperCase()
+ f.name().substring(1);
String methodName = get+name;
JType hashSetType = co.parent().getCodeModel().ref(HashSet.class).narrow(inner);
JMethod oldGetter = co.implClass.getMethod(methodName, new JType[0]);
co.implClass.methods().remove(oldGetter);
JMethod getter = co.implClass.method(JMod.PUBLIC, f.type(), methodName);
getter.body()._if(JExpr.ref(f.name()).eq(JExpr._null()))._then()
.assign(f, JExpr._new(hashSetType));
getter.body()._return(JExpr.ref(f.name()));
}
, .