From: Dennis S. <dso...@us...> - 2009-03-04 13:41:34
|
Update of /cvsroot/jibx/core/build/src/org/jibx/schema/codegen/custom In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv9227/src/org/jibx/schema/codegen/custom Modified Files: SchemaRootBase.java SchemaCustom.java GlobalExtension.java Log Message: Final pre-release cleanup: Changing code generation extension interface names to drop the leading 'I', deleting some of the no-longer-used attributes from the validation lists, fixing an issue with DefaultNameConverter which would have applied the field prefix and suffix to base names. Index: GlobalExtension.java =================================================================== RCS file: /cvsroot/jibx/core/build/src/org/jibx/schema/codegen/custom/GlobalExtension.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** GlobalExtension.java 27 Feb 2009 01:48:08 -0000 1.11 --- GlobalExtension.java 4 Mar 2009 13:41:21 -0000 1.12 *************** *** 29,34 **** import org.jibx.schema.codegen.DefinitionItem; import org.jibx.schema.codegen.PackageHolder; ! import org.jibx.schema.codegen.extend.IClassDecorator; ! import org.jibx.schema.codegen.extend.INameConverter; import org.jibx.schema.elements.OpenAttrBase; import org.jibx.schema.elements.SchemaElement; --- 29,34 ---- import org.jibx.schema.codegen.DefinitionItem; import org.jibx.schema.codegen.PackageHolder; ! import org.jibx.schema.codegen.extend.ClassDecorator; ! import org.jibx.schema.codegen.extend.NameConverter; import org.jibx.schema.elements.OpenAttrBase; import org.jibx.schema.elements.SchemaElement; *************** *** 46,53 **** /** Name converter used for this component (may be <code>null</code> if no code generation). */ ! private final INameConverter m_nameConverter; /** Decorators to be called in order during class code generation. */ ! private final IClassDecorator[] m_decorators; /** Package to be used for class generation (may be <code>null</code> if no code generation). */ --- 46,53 ---- /** Name converter used for this component (may be <code>null</code> if no code generation). */ ! private final NameConverter m_nameConverter; /** Decorators to be called in order during class code generation. */ ! private final ClassDecorator[] m_decorators; /** Package to be used for class generation (may be <code>null</code> if no code generation). */ *************** *** 85,89 **** * @param useinner use inner classes for substructures */ ! public GlobalExtension(OpenAttrBase comp, INameConverter nconv, IClassDecorator[] decorators, PackageHolder pack, boolean prefinline, boolean useinner) { super(comp, null); --- 85,89 ---- * @param useinner use inner classes for substructures */ ! public GlobalExtension(OpenAttrBase comp, NameConverter nconv, ClassDecorator[] decorators, PackageHolder pack, boolean prefinline, boolean useinner) { super(comp, null); *************** *** 100,104 **** * @return converter */ ! public INameConverter getNameConverter() { return m_nameConverter; } --- 100,104 ---- * @return converter */ ! public NameConverter getNameConverter() { return m_nameConverter; } *************** *** 109,113 **** * @return converter */ ! public IClassDecorator[] getClassDecorators() { return m_decorators; } --- 109,113 ---- * @return converter */ ! public ClassDecorator[] getClassDecorators() { return m_decorators; } Index: SchemaCustom.java =================================================================== RCS file: /cvsroot/jibx/core/build/src/org/jibx/schema/codegen/custom/SchemaCustom.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** SchemaCustom.java 27 Feb 2009 01:48:08 -0000 1.19 --- SchemaCustom.java 4 Mar 2009 13:41:21 -0000 1.20 *************** *** 37,42 **** import org.jibx.schema.TreeWalker; import org.jibx.schema.codegen.PackageHolder; ! import org.jibx.schema.codegen.extend.IClassDecorator; ! import org.jibx.schema.codegen.extend.INameConverter; import org.jibx.schema.elements.AnnotatedBase; import org.jibx.schema.elements.FacetElement; --- 37,42 ---- import org.jibx.schema.TreeWalker; import org.jibx.schema.codegen.PackageHolder; ! import org.jibx.schema.codegen.extend.ClassDecorator; ! import org.jibx.schema.codegen.extend.NameConverter; import org.jibx.schema.elements.AnnotatedBase; import org.jibx.schema.elements.FacetElement; *************** *** 244,248 **** * @param vctx validation context */ ! public void extend(INameConverter nconv, IClassDecorator[] decorators, PackageHolder pack, ValidationContext vctx) { // build the basic include and exclude sets --- 244,248 ---- * @param vctx validation context */ ! public void extend(NameConverter nconv, ClassDecorator[] decorators, PackageHolder pack, ValidationContext vctx) { // build the basic include and exclude sets Index: SchemaRootBase.java =================================================================== RCS file: /cvsroot/jibx/core/build/src/org/jibx/schema/codegen/custom/SchemaRootBase.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** SchemaRootBase.java 3 Mar 2009 12:39:05 -0000 1.18 --- SchemaRootBase.java 4 Mar 2009 13:41:21 -0000 1.19 *************** *** 36,41 **** import org.jibx.runtime.impl.UnmarshallingContext; import org.jibx.schema.codegen.extend.DefaultNameConverter; ! import org.jibx.schema.codegen.extend.IClassDecorator; ! import org.jibx.schema.codegen.extend.INameConverter; import org.jibx.schema.support.Conversions; import org.jibx.schema.validation.ProblemLocation; --- 36,41 ---- import org.jibx.runtime.impl.UnmarshallingContext; import org.jibx.schema.codegen.extend.DefaultNameConverter; ! import org.jibx.schema.codegen.extend.ClassDecorator; ! import org.jibx.schema.codegen.extend.NameConverter; import org.jibx.schema.support.Conversions; import org.jibx.schema.validation.ProblemLocation; *************** *** 53,66 **** private static final String[] EMPTY_STRING_ARRAY = new String[0]; ! private static final IClassDecorator[] EMPTY_DECORATORS_ARRAY = new IClassDecorator[0]; /** Enumeration of allowed attribute names */ ! public static final StringArray s_allowedAttributes = new StringArray(new String[] { "collection-methods", ! "delete-annotations", "enumeration-type", "generate-all", "import-docs", "line-width", "null-collection", ! "package", "prefer-inline", "repeated-type", "show-schema", "structure-optional", "use-inner" }, ! NestingCustomBase.s_allowedAttributes); /** Default converter used if none set. */ ! private static final INameConverter s_defaultNameConverter = new DefaultNameConverter(); // --- 53,65 ---- private static final String[] EMPTY_STRING_ARRAY = new String[0]; ! private static final ClassDecorator[] EMPTY_DECORATORS_ARRAY = new ClassDecorator[0]; /** Enumeration of allowed attribute names */ ! public static final StringArray s_allowedAttributes = new StringArray(new String[] { "delete-annotations", ! "enumeration-type", "generate-all", "import-docs", "line-width", "package", "prefer-inline", "repeated-type", ! "show-schema", "structure-optional", "use-inner" }, NestingCustomBase.s_allowedAttributes); /** Default converter used if none set. */ ! private static final NameConverter s_defaultNameConverter = new DefaultNameConverter(); // *************** *** 111,115 **** /** Name converter instance (<code>null</code> if none set at level). */ ! private INameConverter m_nameConverter; /** Inherit code generation class decorators from parent flag. */ --- 110,114 ---- /** Name converter instance (<code>null</code> if none set at level). */ ! private NameConverter m_nameConverter; /** Inherit code generation class decorators from parent flag. */ *************** *** 445,449 **** * @param ictx */ ! private void setNameConverter(INameConverter nconv, IUnmarshallingContext ictx) { if (m_nameConverter != null) { ValidationContext vctx = (ValidationContext)ictx.getUserContext(); --- 444,448 ---- * @param ictx */ ! private void setNameConverter(NameConverter nconv, IUnmarshallingContext ictx) { if (m_nameConverter != null) { ValidationContext vctx = (ValidationContext)ictx.getUserContext(); *************** *** 458,462 **** * @return converter (<code>null</code> if none defined) */ ! public INameConverter getNameConverter() { SchemaRootBase root = this; while (root != null) { --- 457,461 ---- * @return converter (<code>null</code> if none defined) */ ! public NameConverter getNameConverter() { SchemaRootBase root = this; while (root != null) { *************** *** 475,479 **** * @param decor */ ! private void addClassDecorator(IClassDecorator decor) { if (m_classDecorators == null) { m_classDecorators = new ArrayList(); --- 474,478 ---- * @param decor */ ! private void addClassDecorator(ClassDecorator decor) { if (m_classDecorators == null) { m_classDecorators = new ArrayList(); *************** *** 487,496 **** * @return decorators */ ! public IClassDecorator[] getClassDecorators() { SchemaRootBase root = this; while (root != null) { List decorators = root.m_classDecorators; if (decorators != null) { ! return (IClassDecorator[])decorators.toArray(new IClassDecorator[decorators.size()]); } else if (root.m_inheritDecorators == null || root.m_inheritDecorators.booleanValue()) { root = root.getRootParent(); --- 486,495 ---- * @return decorators */ ! public ClassDecorator[] getClassDecorators() { SchemaRootBase root = this; while (root != null) { List decorators = root.m_classDecorators; if (decorators != null) { ! return (ClassDecorator[])decorators.toArray(new ClassDecorator[decorators.size()]); } else if (root.m_inheritDecorators == null || root.m_inheritDecorators.booleanValue()) { root = root.getRootParent(); *************** *** 509,513 **** * @return class decorator instance, or <code>null</code> if error */ ! private static IClassDecorator classDecoratorFactory(IUnmarshallingContext ictx) { // get the class to be used for class decorator instance --- 508,512 ---- * @return class decorator instance, or <code>null</code> if error */ ! private static ClassDecorator classDecoratorFactory(IUnmarshallingContext ictx) { // get the class to be used for class decorator instance *************** *** 522,531 **** // make sure the class implements the required interface Class clas = SchemaRootBase.class.getClassLoader().loadClass(cname); ! if (IClassDecorator.class.isAssignableFrom(clas)) { vctx.addError("Class " + cname + " does not implement the required IClassDecorator interface", new ProblemLocation(ictx)); } else { try { ! return (IClassDecorator)clas.newInstance(); } catch (InstantiationException e) { vctx.addError("Error creating instance of class " + cname + ": " + e.getMessage(), --- 521,530 ---- // make sure the class implements the required interface Class clas = SchemaRootBase.class.getClassLoader().loadClass(cname); ! if (ClassDecorator.class.isAssignableFrom(clas)) { vctx.addError("Class " + cname + " does not implement the required IClassDecorator interface", new ProblemLocation(ictx)); } else { try { ! return (ClassDecorator)clas.newInstance(); } catch (InstantiationException e) { vctx.addError("Error creating instance of class " + cname + ": " + e.getMessage(), *************** *** 665,674 **** // make sure the class implements the required interface Class clas = SchemaRootBase.class.getClassLoader().loadClass(cname); ! if (INameConverter.class.isAssignableFrom(clas)) { try { // check for existing name converter instance to pass to constructor SchemaRootBase outer = (SchemaRootBase)ctx.getStackTop(); ! INameConverter prior = outer.getNameConverter(); if (prior != null) { --- 664,673 ---- // make sure the class implements the required interface Class clas = SchemaRootBase.class.getClassLoader().loadClass(cname); ! if (NameConverter.class.isAssignableFrom(clas)) { try { // check for existing name converter instance to pass to constructor SchemaRootBase outer = (SchemaRootBase)ctx.getStackTop(); ! NameConverter prior = outer.getNameConverter(); if (prior != null) { *************** *** 677,681 **** Constructor cons = clas.getConstructor(new Class[] { prior.getClass() }); try { ! return (INameConverter)cons.newInstance(new Object[] { prior }); } catch (IllegalArgumentException e) { /* ignore failure */ } catch (InvocationTargetException e) { --- 676,680 ---- Constructor cons = clas.getConstructor(new Class[] { prior.getClass() }); try { ! return (NameConverter)cons.newInstance(new Object[] { prior }); } catch (IllegalArgumentException e) { /* ignore failure */ } catch (InvocationTargetException e) { *************** *** 689,693 **** // just create instance using no-argument constructor ! return (INameConverter)clas.newInstance(); } catch (InstantiationException e) { --- 688,692 ---- // just create instance using no-argument constructor ! return (NameConverter)clas.newInstance(); } catch (InstantiationException e) { *************** *** 699,703 **** } } else { ! vctx.addError("Class " + cname + " does not implement the required INameConverter interface", new ProblemLocation(ctx)); } --- 698,702 ---- } } else { ! vctx.addError("Class " + cname + " does not implement the required NameConverter interface", new ProblemLocation(ctx)); } *************** *** 741,747 **** // make sure the class implements the required interface Class clas = SchemaRootBase.class.getClassLoader().loadClass(cname); ! if (IClassDecorator.class.isAssignableFrom(clas)) { try { ! return (IClassDecorator)clas.newInstance(); } catch (InstantiationException e) { vctx.addError("Error creating instance of class " + cname + ": " + e.getMessage(), --- 740,746 ---- // make sure the class implements the required interface Class clas = SchemaRootBase.class.getClassLoader().loadClass(cname); ! if (ClassDecorator.class.isAssignableFrom(clas)) { try { ! return (ClassDecorator)clas.newInstance(); } catch (InstantiationException e) { vctx.addError("Error creating instance of class " + cname + ": " + e.getMessage(), *************** *** 752,756 **** } } else { ! vctx.addError("Class " + cname + " does not implement the required IClassDecorator interface", new ProblemLocation(ctx)); } --- 751,755 ---- } } else { ! vctx.addError("Class " + cname + " does not implement the required ClassDecorator interface", new ProblemLocation(ctx)); } |