create = (component.getTargetNamespace() == null);
else
create = tns.equals(component.getTargetNamespace());
if (create) {
JClass tmpClass = createSourceCode(simpleType, sgState);
classInfo.setSchemaType(new XSClass(tmpClass));
}
} else {
//////////////////////////////////////////////////////////
//NOTE: generate sources if the flag for generating sources
//from imported schemas in on
//////////////////////////////////////////////////////////
return new JClass[0];
}
}
//--5c the type is an anyType
else if (type.isAnyType()) {
//-- Do not create classes for AnyType
classInfo.setSchemaType(new XSClass(SGTypes.Object));
return new JClass[0];
}
}
//--no type we must be facing an XML schema group
else {
//--MODEL GROUP OR GROUP
try{
createForGroup = true;
Group group = (Group)component.getAnnotated();
processContentModel(group, state);
component.setView(group);
//-- Check Group Type
Order order = group.getOrder();
if (order == Order.choice)
classInfo.getGroupInfo().setAsChoice();
else if (order == Order.seq)
classInfo.getGroupInfo().setAsSequence();
else
classInfo.getGroupInfo().setAsAll();
} catch (ClassCastException ce) {
//--Should not happen
throw new IllegalArgumentException("Illegal binding component:"+ce.getMessage());
}
}
//6--createGroupItem
if (createGroupItem) {
//-- create Bound Properties code
if (component.hasBoundProperties())
createPropertyChangeMethods(jClass);
sgState.bindReference(jClass, classInfo);
classes[1] = jClass;
//-- create main group class
String fname = component.getJavaClassName() + ITEM_NAME;
fname = JavaNaming.toJavaMemberName(fname, false);
FieldInfo fInfo = null;
if (createForGroup) {
//A choice Item can occur only once in the nested group
fInfo = infoFactory.createFieldInfo(new XSClass(jClass),
fname);
} else {
fInfo = infoFactory.createCollection(new XSClass(jClass),
"_items", fname);
}
fInfo.setContainer(true);
className = className.substring(0,className.length()-4);
state = new FactoryState(className, sgState, packageName);