/** * Gets the realization of this particle, if any. * * @return null if the "collection" attribute was not specified. */ public final FieldRenderer getRealization() { String v = DOMUtil.getAttribute(element, "collection"); if (v == null) return null; v = v.trim(); if (v.equals("array")) return opts.getFieldRendererFactory().getArray(); if (v.equals("list")) return opts.getFieldRendererFactory().getList(parent.parent.codeModel.ref(ArrayList.class)); // the correctness of the attribute value must be // checked by the validator. throw new InternalError("unexpected collection value: " + v); }
/** Entry point. */ public static Model build( XSSchemaSet _schemas, JCodeModel codeModel, ErrorReceiver _errorReceiver, Options opts) { // set up a ring final Ring old = Ring.begin(); try { ErrorReceiverFilter ef = new ErrorReceiverFilter(_errorReceiver); Ring.add(XSSchemaSet.class, _schemas); Ring.add(codeModel); Model model = new Model(opts, codeModel, null /*set later*/, opts.classNameAllocator, _schemas); Ring.add(model); Ring.add(ErrorReceiver.class, ef); Ring.add(CodeModelClassFactory.class, new CodeModelClassFactory(ef)); BGMBuilder builder = new BGMBuilder( opts.defaultPackage, opts.defaultPackage2, opts.isExtensionMode(), opts.getFieldRendererFactory()); builder._build(); if (ef.hadError()) return null; else return model; } finally { Ring.end(old); } }