use of com.sun.tools.xjc.reader.xmlschema.bindinfo.BindInfo in project jaxb-ri by eclipse-ee4j.
the class BGMBuilder method promoteGlobalBindings.
/**
* List up all the global bindings.
*/
private void promoteGlobalBindings() {
// promote any global bindings in the schema
XSSchemaSet schemas = Ring.get(XSSchemaSet.class);
for (XSSchema s : schemas.getSchemas()) {
BindInfo bi = getBindInfo(s);
// collect all global customizations
model.getCustomizations().addAll(bi.toCustomizationList());
BIGlobalBinding gb = bi.get(BIGlobalBinding.class);
if (gb == null)
continue;
gb.markAsAcknowledged();
if (globalBinding == null) {
globalBinding = gb;
} else {
if (!globalBinding.isEqual(gb)) {
// see Issue 687 - this may happen with syntactically imported documents
// acknowledge this customization and report an error
// otherwise the user will see "customization is attached to a wrong place" error,
// which is incorrect
getErrorReporter().error(gb.getLocation(), Messages.ERR_MULTIPLE_GLOBAL_BINDINGS);
getErrorReporter().error(globalBinding.getLocation(), Messages.ERR_MULTIPLE_GLOBAL_BINDINGS_OTHER);
}
}
}
if (globalBinding == null) {
// no global customization is present.
// use the default one
globalBinding = new BIGlobalBinding();
BindInfo big = new BindInfo();
big.addDecl(globalBinding);
big.setOwner(this, null);
}
// code generation mode
model.strategy = globalBinding.getCodeGenerationStrategy();
model.rootClass = globalBinding.getSuperClass();
model.rootInterface = globalBinding.getSuperInterface();
particleBinder = globalBinding.isSimpleMode() ? new ExpressionParticleBinder() : new DefaultParticleBinder();
// check XJC extensions and realize them
BISerializable serial = globalBinding.getSerializable();
if (serial != null) {
model.serializable = true;
model.serialVersionUID = serial.uid;
}
// obtain the name conversion mode
if (globalBinding.nameConverter != null)
model.setNameConverter(globalBinding.nameConverter);
// attach global conversions to the appropriate simple types
globalBinding.dispatchGlobalConversions(schemas);
globalBinding.errorCheck();
}
Aggregations