Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/IdentityConstraint.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/IdentityConstraint.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/IdentityConstraint.java
 (original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/IdentityConstraint.java
 Fri Dec 31 00:01:16 2021
@@ -26,17 +26,17 @@ import java.util.*;
 
 /**
  * Identity constraint engine. Performs streaming validation of identity 
constraints.
- * This includes key, keyref, & unique, as well as ID & IDRef.
+ * This includes key, keyref and unique, as well as ID and IDRef.
  */
 public class IdentityConstraint {
 
     private ConstraintState _constraintStack;
     private ElementState _elementStack;
-    private Collection _errorListener;
+    private final Collection<XmlError> _errorListener;
     private boolean _invalid;
-    private boolean _trackIdrefs; // We only track idrefs if validating from 
the root element
+    private final boolean _trackIdrefs; // We only track idrefs if validating 
from the root element
 
-    public IdentityConstraint(Collection errorListener, boolean trackIdrefs) {
+    public IdentityConstraint(Collection<XmlError> errorListener, boolean 
trackIdrefs) {
         _errorListener = errorListener;
         _trackIdrefs = trackIdrefs;
     }
@@ -241,7 +241,7 @@ public class IdentityConstraint {
 
     public class SelectorState extends ConstraintState {
         SchemaIdentityConstraint _constraint;
-        Set _values = new LinkedHashSet();
+        Set<XmlObjectList> _values = new LinkedHashSet<>();
         XPathExecutionContext _context;
 
         SelectorState(SchemaIdentityConstraint constraint, Event e, SchemaType 
st) {
@@ -304,22 +304,21 @@ public class IdentityConstraint {
     }
 
     public class KeyrefState extends SelectorState {
-        Map _keyValues = new HashMap();
-        private Object CHILD_ADDED = new Object();
-        private Object CHILD_REMOVED = new Object();
-        private Object SELF_ADDED = new Object();
+        Map<XmlObjectList,Object> _keyValues = new HashMap<>();
+        private final Object CHILD_ADDED = new Object();
+        private final Object CHILD_REMOVED = new Object();
+        private final Object SELF_ADDED = new Object();
 
         KeyrefState(SchemaIdentityConstraint constraint, Event e, SchemaType 
st) {
             super(constraint, e, st);
         }
 
-        void addKeyValues(final Set values, boolean child) {
-            /** If the key values are added by children, then if two or
+        void addKeyValues(final Set<XmlObjectList> values, boolean child) {
+            /* If the key values are added by children, then if two or
              more children add the same value, the value dissapears from the 
map
              but if is added by the element in question directly then it will
              be present in the map regardless of what children contained */
-            for (Iterator it = values.iterator(); it.hasNext(); ) {
-                Object key = it.next();
+            for (XmlObjectList key : values) {
                 Object value = _keyValues.get(key);
                 if (value == null) {
                     _keyValues.put(key, child ? CHILD_ADDED : SELF_ADDED);
@@ -337,7 +336,7 @@ public class IdentityConstraint {
             }
         }
 
-        private boolean hasKeyValue(Object key) {
+        private boolean hasKeyValue(XmlObjectList key) {
             Object value = _keyValues.get(key);
             return value != null && value != CHILD_REMOVED;
         }
@@ -356,9 +355,7 @@ public class IdentityConstraint {
 
 
             // validate all values have been seen
-            for (Iterator it = _values.iterator(); it.hasNext(); ) {
-
-                XmlObjectList fields = (XmlObjectList) it.next();
+            for (XmlObjectList fields : _values) {
                 if (fields.unfilled() < 0 && !hasKeyValue(fields)) {
                     // KHK: cvc-identity-constraint.4.3 ?
                     emitError(e, 
XmlErrorCodes.IDENTITY_CONSTRAINT_VALID$KEYREF_KEY_NOT_FOUND,
@@ -517,7 +514,7 @@ public class IdentityConstraint {
     }
 
     public class IdState extends ConstraintState {
-        Set _values = new LinkedHashSet();
+        Set<XmlObjectList> _values = new LinkedHashSet<>();
 
         IdState() {
         }
@@ -578,11 +575,11 @@ public class IdentityConstraint {
 
     public class IdRefState extends ConstraintState {
         IdState _ids;
-        List _values;
+        List<XmlObjectList> _values;
 
         IdRefState(IdState ids) {
             _ids = ids;
-            _values = new ArrayList();
+            _values = new ArrayList<>();
         }
 
         private void handleValue(Event e, SchemaType st, String value) {
@@ -606,9 +603,9 @@ public class IdentityConstraint {
                 List l = lv.xgetListValue();
 
                 // Add one value for each idref in the list
-                for (int i = 0; i < l.size(); i++) {
+                for (Object o : l) {
                     XmlObjectList xmlValue = new XmlObjectList(1);
-                    XmlIDREF idref = (XmlIDREF) l.get(i);
+                    XmlIDREF idref = (XmlIDREF) o;
                     xmlValue.set(idref, 0);
                     _values.add(xmlValue);
                 }
@@ -640,8 +637,7 @@ public class IdentityConstraint {
 
         void remove(Event e) {
             // Validate each ref has a corresponding ID
-            for (Iterator it = _values.iterator(); it.hasNext(); ) {
-                Object o = it.next();
+            for (XmlObjectList o : _values) {
                 if (!_ids._values.contains(o)) {
                     // KHK: cvc-id.1
                     emitError(e, "ID not found for IDRef value '" + o + "'");

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/JarHelper.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/JarHelper.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/JarHelper.java 
(original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/JarHelper.java 
Fri Dec 31 00:01:16 2021
@@ -24,8 +24,6 @@ import java.util.jar.JarOutputStream;
  * Provides utility services for jarring and unjarring files and directories.
  * Note that a given instance of JarHelper is not threadsafe with respect to
  * multiple jar operations.
- *
- * @author Patrick Calahan <p...@bea.com>
  */
 public class JarHelper {
     // ========================================================================

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/NameUtil.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/NameUtil.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/NameUtil.java 
(original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/NameUtil.java 
Fri Dec 31 00:01:16 2021
@@ -554,14 +554,7 @@ public class NameUtil {
             buf.append(words.get(sz));
         }
 
-        //upcase entire buffer
-        final int len = buf.length();
-        for (int j = 0; j < len; j++) {
-            char c = buf.charAt(j);
-            buf.setCharAt(j, Character.toUpperCase(c));
-        }
-
-        return buf.toString();
+        return buf.toString().toUpperCase(Locale.ROOT);
     }
 
     /**
@@ -633,7 +626,7 @@ public class NameUtil {
     }
 
     public static String upperCaseFirstLetter(String s) {
-        if (s.length() == 0 || Character.isUpperCase(s.charAt(0))) {
+        if (s.isEmpty() || Character.isUpperCase(s.charAt(0))) {
             return s;
         }
 

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/SystemCache.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/SystemCache.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/SystemCache.java 
(original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/SystemCache.java 
Fri Dec 31 00:01:16 2021
@@ -25,7 +25,7 @@ import java.lang.reflect.InvocationTarge
  * By subclassing this, a client of XmlBeans can implement caches that are
  * more suitable for different applications using information that XmlBeans
  * cannot know.
- * <p/>
+ * <p>
  * This class works as a singleton and as a default implementation for the 
cache.
  * You can set a particular implementation using the "xmlbean.systemcacheimpl"
  * system property or using the static {@link #set(SystemCache)} method.
@@ -33,43 +33,13 @@ import java.lang.reflect.InvocationTarge
  * at any time, so use of static variables is discouraged to ensure proper 
cleanup.
  */
 public class SystemCache {
-    private static SystemCache INSTANCE = new SystemCache();
-
-    static {
-        String cacheClass = 
SystemProperties.getProperty("xmlbean.systemcacheimpl");
-        Object impl = null;
-        if (cacheClass != null) {
-            try {
-                impl = 
Class.forName(cacheClass).getDeclaredConstructor().newInstance();
-                if (!(impl instanceof SystemCache)) {
-                    throw new ClassCastException("Value for system property " +
-                                                 "\"xmlbean.systemcacheimpl\" 
points to a class (" + cacheClass +
-                                                 ") which does not derive from 
SystemCache");
-                }
-            } catch (ClassNotFoundException cnfe) {
-                throw new RuntimeException("Cache class " + cacheClass +
-                                           " specified by 
\"xmlbean.systemcacheimpl\" was not found.",
-                    cnfe);
-            } catch (InstantiationException | NoSuchMethodException | 
InvocationTargetException ie) {
-                throw new RuntimeException("Could not instantiate class " +
-                                           cacheClass + " as specified by 
\"xmlbean.systemcacheimpl\"." +
-                                           " An empty constructor may be 
missing.", ie);
-            } catch (IllegalAccessException iae) {
-                throw new RuntimeException("Could not instantiate class " +
-                                           cacheClass + " as specified by 
\"xmlbean.systemcacheimpl\"." +
-                                           " A public empty constructor may be 
missing.", iae);
-            }
-        }
-        if (impl != null) {
-            INSTANCE = (SystemCache) impl;
-        }
-    }
+    private static SystemCache INSTANCE = initCache();
 
     public static synchronized void set(SystemCache instance) {
         INSTANCE = instance;
     }
 
-    public static SystemCache get() {
+    public static synchronized SystemCache get() {
         return INSTANCE;
     }
 
@@ -82,6 +52,7 @@ public class SystemCache {
 
     private ThreadLocal<SoftReference> tl_saxLoaders = new ThreadLocal<>();
 
+
     public void clearThreadLocals() {
         tl_saxLoaders.remove();
     }
@@ -94,4 +65,24 @@ public class SystemCache {
     public void setSaxLoader(Object saxLoader) {
         tl_saxLoaders.set(new SoftReference(saxLoader));
     }
+
+
+    private static SystemCache initCache() {
+        String cacheClass = 
SystemProperties.getProperty("xmlbean.systemcacheimpl");
+        if (cacheClass == null) {
+            return new SystemCache();
+        }
+        String errPrefix = "Could not instantiate class " + cacheClass + " as 
specified by \"xmlbean.systemcacheimpl\". ";
+        try {
+            return (SystemCache) 
Class.forName(cacheClass).getDeclaredConstructor().newInstance();
+        } catch (ClassCastException cce) {
+            throw new ClassCastException(errPrefix + "Class does not derive 
from SystemCache.");
+        } catch (ClassNotFoundException cnfe) {
+            throw new RuntimeException(errPrefix + "Class was not found.", 
cnfe);
+        } catch (InstantiationException | NoSuchMethodException | 
InvocationTargetException ie) {
+            throw new RuntimeException(errPrefix + "An empty constructor may 
be missing.", ie);
+        } catch (IllegalAccessException iae) {
+            throw new RuntimeException(errPrefix + "A public empty constructor 
may be missing.", iae);
+        }
+    }
 }

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/XMLChar.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/XMLChar.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/XMLChar.java 
(original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/XMLChar.java 
Fri Dec 31 00:01:16 2021
@@ -24,19 +24,11 @@ package org.apache.xmlbeans.impl.common;
  * A series of convenience methods are supplied to ease the burden
  * of the developer. Because inlining the checks can improve per
  * character performance, the tables of character properties are
- * public. Using the character as an index into the <code>CHARS</code>
+ * public. Using the character as an index into the {@code CHARS}
  * array and applying the appropriate mask flag (e.g.
- * <code>MASK_VALID</code>), yields the same results as calling the
+ * {@code MASK_VALID}), yields the same results as calling the
  * convenience methods. There is one exception: check the comments
- * for the <code>isValid</code> method for details.
- *
- * @author Glenn Marcy, IBM
- * @author Andy Clark, IBM
- * @author Eric Ye, IBM
- * @author Arnaud  Le Hors, IBM
- * @author Rahul Srivastava, Sun Microsystems Inc.
- *
- * @version $Id$
+ * for the {@code isValid} method for details.
  */
 public class XMLChar {
 
@@ -61,10 +53,10 @@ public class XMLChar {
 
     /** Pubid character mask. */
     public static final int MASK_PUBID = 0x10;
-    
-    /** 
+
+    /**
      * Content character mask. Special characters are those that can
-     * be considered the start of markup, such as '&lt;' and '&amp;'. 
+     * be considered the start of markup, such as '&lt;' and '&amp;'.
      * The various newline characters are considered special as well.
      * All other valid XML characters can be considered content.
      * <p>
@@ -83,13 +75,13 @@ public class XMLChar {
     //
 
     static {
-        
+
         //
         // [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] |
         //              [#xE000-#xFFFD] | [#x10000-#x10FFFF]
         //
 
-        int charRange[] = { 
+        int charRange[] = {
             0x0009, 0x000A, 0x000D, 0x000D, 0x0020, 0xD7FF, 0xE000, 0xFFFD,
         };
 
@@ -97,7 +89,7 @@ public class XMLChar {
         // [3] S ::= (#x20 | #x9 | #xD | #xA)+
         //
 
-        int spaceChar[] = { 
+        int spaceChar[] = {
             0x0020, 0x0009, 0x000D, 0x000A,
         };
 
@@ -106,7 +98,7 @@ public class XMLChar {
         //                  CombiningChar | Extender
         //
 
-        int nameChar[] = { 
+        int nameChar[] = {
             0x002D, 0x002E, // '-' and '.'
         };
 
@@ -114,7 +106,7 @@ public class XMLChar {
         // [5] Name ::= (Letter | '_' | ':') (NameChar)*
         //
 
-        int nameStartChar[] = { 
+        int nameStartChar[] = {
             0x003A, 0x005F, // ':' and '_'
         };
 
@@ -276,7 +268,7 @@ public class XMLChar {
 
         // set name start characters
         for (int i = 0; i < nameStartChar.length; i++) {
-            CHARS[nameStartChar[i]] |= MASK_NAME_START | MASK_NAME | 
+            CHARS[nameStartChar[i]] |= MASK_NAME_START | MASK_NAME |
                                        MASK_NCNAME_START | MASK_NCNAME;
         }
         for (int i = 0; i < letterRange.length; i += 2) {
@@ -397,7 +389,7 @@ public class XMLChar {
      * also checks the surrogate character range from 0x10000 to 0x10FFFF.
      * <p>
      * If the program chooses to apply the mask directly to the
-     * <code>CHARS</code> array, then they are responsible for checking
+     * {@code CHARS} array, then they are responsible for checking
      * the surrogate character range.
      *
      * @param c The character to check.
@@ -536,7 +528,7 @@ public class XMLChar {
         }
         return true;
     } // isValidName(String):boolean
-    
+
 
     /*
      * from the namespace rec
@@ -572,7 +564,7 @@ public class XMLChar {
      * in the XML 1.0 Recommendation
      *
      * @param nmtoken string to check
-     * @return true if nmtoken is a valid Nmtoken 
+     * @return true if nmtoken is a valid Nmtoken
      */
     public static boolean isValidNmtoken(String nmtoken) {
         if (nmtoken.length() == 0)

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/InterfaceExtensionImpl.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/InterfaceExtensionImpl.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/InterfaceExtensionImpl.java
 (original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/InterfaceExtensionImpl.java
 Fri Dec 31 00:01:16 2021
@@ -20,11 +20,17 @@ import com.github.javaparser.ast.body.Cl
 import com.github.javaparser.ast.body.MethodDeclaration;
 import com.github.javaparser.ast.body.Parameter;
 import com.github.javaparser.ast.type.ReferenceType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.type.TypeParameter;
+import com.github.javaparser.resolution.MethodUsage;
+import 
com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
 import org.apache.xmlbeans.InterfaceExtension;
 import org.apache.xmlbeans.XmlObject;
 import org.apache.xmlbeans.impl.xb.xmlconfig.Extensionconfig;
 
 import java.util.Arrays;
+import java.util.List;
 import java.util.Objects;
 import java.util.stream.Stream;
 
@@ -59,7 +65,7 @@ public class InterfaceExtensionImpl impl
             return result;
         }
 
-        if (!result.validateMethods(interfaceJClass, delegateJClass, intfXO))
+        if (!result.validateMethods(loader, interfaceJClass, delegateJClass, 
intfXO))
             return null;
 
         return result;
@@ -81,7 +87,7 @@ public class InterfaceExtensionImpl impl
         final String ent = isInterface ? "Interface" : "Class";
         ClassOrInterfaceDeclaration cls = loader.loadSource(clsStr);
 
-        if (cls==null) {
+        if (cls == null) {
             BindingConfigImpl.error(ent + " '" + clsStr + "' not found.", loc);
             return null;
         }
@@ -97,8 +103,9 @@ public class InterfaceExtensionImpl impl
         return cls;
     }
 
-    private boolean validateMethods(ClassOrInterfaceDeclaration 
interfaceJClass, ClassOrInterfaceDeclaration delegateJClass, XmlObject loc) {
-        _methods = interfaceJClass.getMethods().stream()
+    private boolean validateMethods(Parser loader, ClassOrInterfaceDeclaration 
interfaceJClass, ClassOrInterfaceDeclaration delegateJClass, XmlObject loc) {
+        _methods = interfaceJClass.resolve().getAllMethods().stream()
+            .filter(m -> 
!Object.class.getName().equals(m.declaringType().getQualifiedName()))
             .map(m -> validateMethod(interfaceJClass, delegateJClass, m, loc))
             .map(m -> m == null ? null : new 
MethodSignatureImpl(getStaticHandler(), m))
             .toArray(MethodSignatureImpl[]::new);
@@ -107,49 +114,91 @@ public class InterfaceExtensionImpl impl
     }
 
     private MethodDeclaration validateMethod(ClassOrInterfaceDeclaration 
interfaceJClass,
-         ClassOrInterfaceDeclaration delegateJClass, MethodDeclaration method, 
XmlObject loc) {
+        ClassOrInterfaceDeclaration delegateJClass, MethodUsage ifMethod, 
XmlObject loc) {
+        String methodName = ifMethod.getName();
 
-        String methodName = method.getName().asString();
-
-        String[] delegateParams = Stream.concat(
-            Stream.of("org.apache.xmlbeans.XmlObject"),
-            Stream.of(paramStrings(method.getParameters()))
-        ).toArray(String[]::new);
-
-        MethodDeclaration handlerMethod = getMethod(delegateJClass, 
methodName, delegateParams);
+        MethodDeclaration delMethod = 
delegateJClass.getMethodsByName(methodName).stream()
+            .filter(mDel -> matchParams(ifMethod, 
mDel)).findFirst().orElse(null);
 
         String delegateFQN = delegateJClass.getFullyQualifiedName().orElse("");
-        String methodFQN =  methodName + "(" + 
method.getParameters().toString() + ")";
+        String methodFQN =  methodName + "(" + 
ifMethod.getParamTypes().toString() + ")";
         String interfaceFQN = 
interfaceJClass.getFullyQualifiedName().orElse("");
 
-        if (handlerMethod == null) {
+        if (delMethod == null) {
             BindingConfigImpl.error("Handler class '" + delegateFQN + "' does 
not contain method " + methodFQN, loc);
             return null;
         }
 
         // check for throws exceptions
-        if (!Arrays.equals(exceptionStrings(method), 
exceptionStrings(handlerMethod))) {
+        String[] ifEx = 
ifMethod.getDeclaration().getSpecifiedExceptions().stream().map(ResolvedType::describe).sorted().toArray(String[]::new);
+        String[] delEx = 
delMethod.getThrownExceptions().stream().map(Type::resolve).map(ResolvedType::describe).sorted().toArray(String[]::new);
+
+        if (!Arrays.equals(ifEx, delEx)) {
             BindingConfigImpl.error("Handler method '" + delegateFQN + "." + 
methodName + "' must declare the same " +
-            "exceptions as the interface method '" + interfaceFQN + "." + 
methodFQN, loc);
+                                    "exceptions as the interface method '" + 
interfaceFQN + "." + methodFQN, loc);
             return null;
         }
 
-        if (!handlerMethod.isPublic() || !handlerMethod.isStatic()) {
-            BindingConfigImpl.error("Method '" + 
delegateJClass.getFullyQualifiedName() + "." +
-            methodFQN + "' must be declared public and static.", loc);
+        if (!delMethod.isPublic() || !delMethod.isStatic()) {
+            BindingConfigImpl.error("Method '" + delegateFQN + "." + methodFQN 
+ "' must be declared public and static.", loc);
             return null;
         }
 
-        String returnType = method.getTypeAsString();
-        if (!returnType.equals(handlerMethod.getTypeAsString())) {
+
+        if 
(!ifMethod.getDeclaration().getReturnType().equals(delMethod.resolve().getReturnType()))
 {
+            String returnType = 
ifMethod.getDeclaration().getReturnType().describe();
             BindingConfigImpl.error("Return type for method '" + returnType + 
" " + delegateFQN + "." + methodName +
-            "(...)' does not match the return type of the interface method :'" 
+ returnType + "'.", loc);
+                                    "(...)' does not match the return type of 
the interface method :'" + returnType + "'.", loc);
             return null;
         }
 
-        return method;
+        return delMethod;
     }
 
+//    private MethodDeclaration validateMethod(ClassOrInterfaceDeclaration 
interfaceJClass,
+//         ClassOrInterfaceDeclaration delegateJClass, MethodDeclaration 
method, XmlObject loc) {
+//
+//        String methodName = method.getName().asString();
+//
+//        String[] delegateParams = Stream.concat(
+//            Stream.of("org.apache.xmlbeans.XmlObject"),
+//            Stream.of(paramStrings(method.getParameters()))
+//        ).toArray(String[]::new);
+//
+//        MethodDeclaration handlerMethod = getMethod(delegateJClass, 
methodName, delegateParams);
+//
+//        String delegateFQN = 
delegateJClass.getFullyQualifiedName().orElse("");
+//        String methodFQN =  methodName + "(" + 
method.getParameters().toString() + ")";
+//        String interfaceFQN = 
interfaceJClass.getFullyQualifiedName().orElse("");
+//
+//        if (handlerMethod == null) {
+//            BindingConfigImpl.error("Handler class '" + delegateFQN + "' 
does not contain method " + methodFQN, loc);
+//            return null;
+//        }
+//
+//        // check for throws exceptions
+//        if (!Arrays.equals(exceptionStrings(method), 
exceptionStrings(handlerMethod))) {
+//            BindingConfigImpl.error("Handler method '" + delegateFQN + "." + 
methodName + "' must declare the same " +
+//            "exceptions as the interface method '" + interfaceFQN + "." + 
methodFQN, loc);
+//            return null;
+//        }
+//
+//        if (!handlerMethod.isPublic() || !handlerMethod.isStatic()) {
+//            BindingConfigImpl.error("Method '" + 
delegateJClass.getFullyQualifiedName() + "." +
+//            methodFQN + "' must be declared public and static.", loc);
+//            return null;
+//        }
+//
+//        String returnType = method.getTypeAsString();
+//        if (!returnType.equals(handlerMethod.getTypeAsString())) {
+//            BindingConfigImpl.error("Return type for method '" + returnType 
+ " " + delegateFQN + "." + methodName +
+//            "(...)' does not match the return type of the interface method 
:'" + returnType + "'.", loc);
+//            return null;
+//        }
+//
+//        return method;
+//    }
+
     static MethodDeclaration getMethod(ClassOrInterfaceDeclaration cls, String 
name, String[] paramTypes) {
         // cls.getMethodsBySignature only checks the type name as-is ... i.e. 
if the type name is imported
         // only the simple name is checked, otherwise the full qualified name
@@ -158,14 +207,49 @@ public class InterfaceExtensionImpl impl
             .findFirst().orElse(null);
     }
 
-    private static String[] paramStrings(NodeList<Parameter> params) {
-        return 
params.stream().map(Parameter::getTypeAsString).toArray(String[]::new);
+
+    private static String[] 
paramStrings(List<ResolvedTypeParameterDeclaration> params) {
+        return 
params.stream().map(ResolvedTypeParameterDeclaration::getClassName).toArray(String[]::new);
+    }
+
+    private static String[] paramStrings(NodeList<?> params) {
+        return params.stream().map(p -> {
+            if (p instanceof Parameter) {
+                return ((Parameter)p).getTypeAsString();
+            } else if (p instanceof TypeParameter) {
+                return ((TypeParameter)p).getNameAsString();
+            } else {
+                return "unknown";
+            }
+        }).toArray(String[]::new);
     }
 
     private static String[] exceptionStrings(MethodDeclaration method) {
         return 
method.getThrownExceptions().stream().map(ReferenceType::asString).toArray(String[]::new);
     }
 
+    private static boolean matchParams(MethodUsage mIf, MethodDeclaration 
mDel) {
+        // the delegate needs to have the XmlObject as first parameter
+        List<ResolvedType> pIf = mIf.getParamTypes();
+        NodeList<Parameter> pDel = mDel.getParameters();
+        if (pDel.size() != pIf.size()+1) {
+            return false;
+        }
+
+        if 
(!XmlObject.class.getName().equals(pDel.get(0).resolve().describeType())) {
+            return false;
+        }
+
+        // the other parameters need to match
+        int idx = 1;
+        for (ResolvedType rt : pIf) {
+            if 
(!rt.describe().equals(pDel.get(idx++).resolve().describeType())) {
+                return false;
+            }
+        }
+        return true;
+    }
+
     private static boolean parameterMatches(String[] params1, String[] 
params2) {
         // compare all parameters type strings
         // a type string can be a simple name (e.g. "XmlObject") or
@@ -228,6 +312,7 @@ public class InterfaceExtensionImpl impl
         private final String _name;
         private final String _return;
         private final String[] _params;
+        private final String[] _paramNames;
         private final String[] _exceptions;
 
         MethodSignatureImpl(String intfName, MethodDeclaration method) {
@@ -241,11 +326,13 @@ public class InterfaceExtensionImpl impl
             _name = method.getName().asString();
             _return = replaceInner(method.getTypeAsString());
 
-            _params = 
method.getParameters().stream().map(Parameter::getTypeAsString).
+            _params = method.getParameters().stream().map(p -> 
p.getType().resolve().describe()).
                 map(MethodSignatureImpl::replaceInner).toArray(String[]::new);
 
             _exceptions = 
method.getThrownExceptions().stream().map(ReferenceType::asString).
                 map(MethodSignatureImpl::replaceInner).toArray(String[]::new);
+
+            _paramNames = method.getParameters().stream().map(p -> 
p.getNameAsString()).toArray(String[]::new);
         }
 
         private static String replaceInner(String classname) {
@@ -268,6 +355,10 @@ public class InterfaceExtensionImpl impl
             return _params;
         }
 
+        public String[] getParameterNames() {
+            return _paramNames;
+        }
+
         public String[] getExceptionTypes() {
             return _exceptions;
         }

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/Parser.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/Parser.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/Parser.java 
(original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/config/Parser.java 
Fri Dec 31 00:01:16 2021
@@ -16,51 +16,97 @@
 package org.apache.xmlbeans.impl.config;
 
 import com.github.javaparser.ParseResult;
+import com.github.javaparser.ParserConfiguration;
 import com.github.javaparser.ast.CompilationUnit;
 import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
-import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.symbolsolver.JavaSymbolSolver;
+import 
com.github.javaparser.symbolsolver.resolution.typesolvers.ClassLoaderTypeSolver;
+import 
com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import 
com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.github.javaparser.utils.ProjectRoot;
 import com.github.javaparser.utils.SourceRoot;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.function.Predicate;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.stream.Stream;
 
-class Parser {
-    final File[] javaFiles;
-    final File[] classpath;
+import static 
com.github.javaparser.ParserConfiguration.LanguageLevel.BLEEDING_EDGE;
 
+class Parser {
+    private final File[] javaFiles;
+    private final File[] classpath;
+    private final ParserConfiguration pc;
+    private final ProjectRoot projectRoot;
+    private final CombinedTypeSolver combinedTypeSolver = new 
CombinedTypeSolver();
 
     public Parser(File[] javaFiles, File[] classpath) {
         this.javaFiles = (javaFiles != null) ? javaFiles.clone() : new File[0];
         this.classpath = (classpath != null) ? classpath.clone() : new File[0];
+
+        pc = new ParserConfiguration();
+        pc.setLanguageLevel(BLEEDING_EDGE);
+
+        URL[] urls = 
Stream.of(this.classpath).map(Parser::fileToURL).filter(Objects::nonNull).toArray(URL[]::new);
+        combinedTypeSolver.add(new ClassLoaderTypeSolver(new 
URLClassLoader(urls, getClass().getClassLoader())));
+        combinedTypeSolver.add(new ReflectionTypeSolver());
+
+        JavaSymbolSolver symbolSolver = new 
JavaSymbolSolver(combinedTypeSolver);
+        pc.setSymbolResolver(symbolSolver);
+
+        if (this.javaFiles.length > 0) {
+            ChildSolverCollectionStrategy solver = new 
ChildSolverCollectionStrategy(pc, combinedTypeSolver);
+
+            Stream.of(this.javaFiles)
+                .map(f -> f.isDirectory() ? f : f.getParentFile())
+                .map(File::toPath)
+                .distinct()
+                .forEach(solver::collect);
+
+            projectRoot = solver.collectAll();
+        } else {
+            projectRoot = null;
+        }
     }
 
     public ClassOrInterfaceDeclaration loadSource(String className) {
         final String fileName = className.replace('.','/') +".java";
-        for (File f : javaFiles) {
-            final String filePath = f.getPath();
-            if (filePath.replace('\\','/').endsWith(fileName)) {
-                // remove filename from path - don't use replace because of 
different path separator
-                final String rootPath = filePath.substring(0, 
filePath.length()-fileName.length());
-                final String startPackage = className.indexOf('.') == -1 ? "" 
: className.substring(0, className.lastIndexOf('.'));
-                final String simpleName = startPackage.isEmpty() ? className : 
className.substring(startPackage.length()+1);
-                SourceRoot sourceRoot = new SourceRoot(new 
File(rootPath).toPath());
-                try {
-                    ParseResult<CompilationUnit> pcu = 
sourceRoot.tryToParse(startPackage, simpleName+".java");
-                    ClassOrInterfaceDeclaration cls = 
pcu.getResult().flatMap(cu -> cu.getTypes().stream()
-                        .filter(matchType(className))
-                        .map(t -> (ClassOrInterfaceDeclaration) 
t).findFirst()).orElse(null);
-                    return cls;
-                } catch (IOException e) {
-                    return null;
-                }
-            }
+        if (projectRoot == null) {
+            // TODO: check if this is called, when no sources are specified
+//            ParseResult<CompilationUnit> blub = new 
JavaParser(pc).parse(fileName);
+//            boolean suc = blub.isSuccessful();
+            return null;
+        } else {
+            return projectRoot.getSourceRoots().stream().map(sr -> 
parseOrNull(sr, fileName))
+                .filter(Objects::nonNull)
+                .filter(ParseResult::isSuccessful)
+                .map(ParseResult::getResult)
+                .map(Optional::get)
+                .flatMap(cu -> cu.getTypes().stream())
+                .filter(ClassOrInterfaceDeclaration.class::isInstance)
+                .filter(t -> 
className.equals(t.getFullyQualifiedName().orElse(null)))
+                .map(ClassOrInterfaceDeclaration.class::cast)
+                .findFirst().orElse(null);
         }
-        return null;
     }
 
-    private static Predicate<TypeDeclaration<?>> matchType(String className) {
-        return (t) -> t instanceof  ClassOrInterfaceDeclaration &&
-                      t.getFullyQualifiedName().map(fqn -> 
fqn.equals(className)).orElse(false);
+    private static URL fileToURL(File file) {
+        try {
+            return file.toURI().toURL();
+        } catch (MalformedURLException ignored) {
+            return null;
+        }
+    }
+
+    private ParseResult<CompilationUnit> parseOrNull(SourceRoot sr, String 
fileName) {
+        try {
+            return sr.tryToParse("", fileName, pc);
+        } catch (IOException ignroed) {
+            return null;
+        }
     }
 }

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/Inst2Xsd.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/Inst2Xsd.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/Inst2Xsd.java 
(original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/Inst2Xsd.java 
Fri Dec 31 00:01:16 2021
@@ -14,28 +14,17 @@
  */
 package org.apache.xmlbeans.impl.inst2xsd;
 
-import org.apache.xmlbeans.SchemaTypeLoader;
-import org.apache.xmlbeans.XmlBeans;
-import org.apache.xmlbeans.XmlException;
-import org.apache.xmlbeans.XmlObject;
-import org.apache.xmlbeans.XmlOptions;
-import org.apache.xmlbeans.XmlError;
-import org.apache.xmlbeans.impl.xb.xsdschema.SchemaDocument;
+import org.apache.xmlbeans.*;
 import org.apache.xmlbeans.impl.inst2xsd.util.TypeSystemHolder;
 import org.apache.xmlbeans.impl.tool.CommandLine;
+import org.apache.xmlbeans.impl.xb.xsdschema.SchemaDocument;
 
 import java.io.File;
 import java.io.IOException;
 import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.HashSet;
+import java.util.*;
 
 /**
- * @author Cezar Andrei (cezar.andrei at bea.com) Date: Jul 16, 2004
- *
  * This class generates a set of XMLSchemas from an instance XML document.
  *
  * How it works:

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/Inst2XsdOptions.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/Inst2XsdOptions.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/Inst2XsdOptions.java
 (original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/Inst2XsdOptions.java
 Fri Dec 31 00:01:16 2021
@@ -15,8 +15,6 @@
 package org.apache.xmlbeans.impl.inst2xsd;
 
 /**
- * @author Cezar Andrei (cezar.andrei at bea.com) Date: Jul 19, 2004
-
      Options:
        * Design
           o Russian Doll Design - local elements and local types
@@ -27,7 +25,7 @@ package org.apache.xmlbeans.impl.inst2xs
           o always xsd:string
        * Use enumeration - when there are multiple valid values in a list
           o never
-          o only if not more than the value (default 10)- number option 
+          o only if not more than the value (default 10)- number option
  */
 public class Inst2XsdOptions
 {

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/RussianDollStrategy.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/RussianDollStrategy.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/RussianDollStrategy.java
 (original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/RussianDollStrategy.java
 Fri Dec 31 00:01:16 2021
@@ -30,10 +30,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-/**
- * @author Cezar Andrei ( cezar.andrei at bea.com )
- * Date: Jul 26, 2004
- */
 public class RussianDollStrategy
     implements XsdGenStrategy {
     static final String _xsi = "http://www.w3.org/2001/XMLSchema-instance";;

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/SalamiSliceStrategy.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/SalamiSliceStrategy.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/SalamiSliceStrategy.java
 (original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/SalamiSliceStrategy.java
 Fri Dec 31 00:01:16 2021
@@ -17,10 +17,6 @@ package org.apache.xmlbeans.impl.inst2xs
 import org.apache.xmlbeans.impl.inst2xsd.util.Element;
 import org.apache.xmlbeans.impl.inst2xsd.util.TypeSystemHolder;
 
-/**
- * @author Cezar Andrei ( cezar.andrei at bea.com )
- * Date: Jul 26, 2004
- */
 public class SalamiSliceStrategy
     extends RussianDollStrategy
     implements XsdGenStrategy

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/VenetianBlindStrategy.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/VenetianBlindStrategy.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/VenetianBlindStrategy.java
 (original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/VenetianBlindStrategy.java
 Fri Dec 31 00:01:16 2021
@@ -15,15 +15,11 @@
 package org.apache.xmlbeans.impl.inst2xsd;
 
 import org.apache.xmlbeans.impl.inst2xsd.util.Element;
-import org.apache.xmlbeans.impl.inst2xsd.util.TypeSystemHolder;
 import org.apache.xmlbeans.impl.inst2xsd.util.Type;
+import org.apache.xmlbeans.impl.inst2xsd.util.TypeSystemHolder;
 
 import javax.xml.namespace.QName;
 
-/**
- * @author Cezar Andrei ( cezar.andrei at bea.com )
- * Date: Jul 26, 2004
- */
 public class VenetianBlindStrategy
     extends RussianDollStrategy
     implements XsdGenStrategy

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Attribute.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Attribute.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Attribute.java
 (original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Attribute.java
 Fri Dec 31 00:01:16 2021
@@ -16,9 +16,6 @@ package org.apache.xmlbeans.impl.inst2xs
 
 import javax.xml.namespace.QName;
 
-/**
- * @author Cezar Andrei (cezar.andrei at bea.com) Date: Jul 18, 2004
- */
 public class Attribute
 {
     private QName _name;

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Element.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Element.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Element.java
 (original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Element.java
 Fri Dec 31 00:01:16 2021
@@ -16,9 +16,6 @@ package org.apache.xmlbeans.impl.inst2xs
 
 import javax.xml.namespace.QName;
 
-/**
- * @author Cezar Andrei (cezar.andrei at bea.com) Date: Jul 16, 2004
- */
 public class Element
 {
     private QName _name = null; // if isRef is true is the name of the 
referenced name

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Type.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Type.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Type.java 
(original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/Type.java 
Fri Dec 31 00:01:16 2021
@@ -22,9 +22,6 @@ import javax.xml.namespace.QName;
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * @author Cezar Andrei (cezar.andrei at bea.com) Date: Jul 16, 2004
- */
 public class Type {
     private QName _name;
 

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/TypeSystemHolder.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/TypeSystemHolder.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/TypeSystemHolder.java
 (original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/inst2xsd/util/TypeSystemHolder.java
 Fri Dec 31 00:01:16 2021
@@ -14,22 +14,18 @@
  */
 package org.apache.xmlbeans.impl.inst2xsd.util;
 
-import org.apache.xmlbeans.impl.xb.xsdschema.SchemaDocument;
-import org.apache.xmlbeans.XmlString;
-import org.apache.xmlbeans.XmlQName;
 import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlQName;
+import org.apache.xmlbeans.XmlString;
+import org.apache.xmlbeans.impl.xb.xsdschema.SchemaDocument;
 
 import javax.xml.namespace.QName;
 import java.math.BigInteger;
 import java.util.Collection;
 import java.util.Iterator;
-import java.util.Map;
 import java.util.LinkedHashMap;
-import java.util.HashMap;
+import java.util.Map;
 
-/**
- * @author Cezar Andrei (cezar.andrei at bea.com) Date: Jul 16, 2004
- */
 public class TypeSystemHolder
 {
     Map _globalElements;   // QName -> Element

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/BMPattern.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/BMPattern.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/BMPattern.java 
(original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/BMPattern.java 
Fri Dec 31 00:01:16 2021
@@ -109,7 +109,7 @@ public class BMPattern {
     }
     /**
      *
-     * @return -1 if <var>chars</char> does not contain this pattern.
+     * @return -1 if {@code chars} does not contain this pattern.
      */
     public int matches(char[] chars, int start, int limit) {
         if (this.ignoreCase)  return this.matchesIgnoreCase(chars, start, 
limit);
@@ -158,7 +158,7 @@ public class BMPattern {
         }
         return -1;
     }
-    
+
     int matchesIgnoreCase(String text, int start, int limit) {
         int plength = this.pattern.length;
         if (plength == 0)  return start;

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/IntStack.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/IntStack.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/IntStack.java 
(original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/IntStack.java 
Fri Dec 31 00:01:16 2021
@@ -20,10 +20,6 @@ package org.apache.xmlbeans.impl.regex;
  *
  * This is copied from 
https://raw.githubusercontent.com/apache/xerces2-j/trunk/src/org/apache/xerces/util/IntStack.java
  * and is used by RegularExpression.java
- *
- * @author  Andy Clark, IBM
- *
- * @version $Id$
  */
 final class IntStack {
 

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/Match.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/Match.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/Match.java 
(original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/Match.java Fri 
Dec 31 00:01:16 2021
@@ -18,7 +18,7 @@ package org.apache.xmlbeans.impl.regex;
 import java.text.CharacterIterator;
 
 /**
- * 
+ *
  * An instance of this class has ranges captured in matching.
  *
  * @see RegularExpression#matches(char[], int, int, Match)
@@ -26,7 +26,6 @@ import java.text.CharacterIterator;
  * @see RegularExpression#matches(java.text.CharacterIterator, Match)
  * @see RegularExpression#matches(java.lang.String, int, int, Match)
  * @see RegularExpression#matches(java.lang.String, Match)
- * @author TAMURA Kent &lt;k...@trl.ibm.co.jp&gt;
  */
 public class Match implements Cloneable {
     int[] beginpos = null;
@@ -129,7 +128,7 @@ public class Match implements Cloneable
     /**
      * Return a start position in the target text matched to specified regular 
expression group.
      *
-     * @param index Less than <code>getNumberOfGroups()</code>.
+     * @param index Less than {@code getNumberOfGroups()}.
      */
     public int getBeginning(int index) {
         if (this.beginpos == null)
@@ -143,7 +142,7 @@ public class Match implements Cloneable
     /**
      * Return an end position in the target text matched to specified regular 
expression group.
      *
-     * @param index Less than <code>getNumberOfGroups()</code>.
+     * @param index Less than {@code getNumberOfGroups()}.
      */
     public int getEnd(int index) {
         if (this.endpos == null)
@@ -157,7 +156,7 @@ public class Match implements Cloneable
     /**
      * Return an substring of the target text matched to specified regular 
expression group.
      *
-     * @param index Less than <code>getNumberOfGroups()</code>.
+     * @param index Less than {@code getNumberOfGroups()}.
      */
     public String getCapturedText(int index) {
         if (this.beginpos == null)

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/ParseException.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/ParseException.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/ParseException.java 
(original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/ParseException.java 
Fri Dec 31 00:01:16 2021
@@ -15,10 +15,6 @@
 
 package org.apache.xmlbeans.impl.regex;
 
-/**
- *
- * @author TAMURA Kent &lt;k...@trl.ibm.co.jp&gt;
- */
 public class ParseException extends RuntimeException {
     int location;
 

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/ParserForXMLSchema.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/ParserForXMLSchema.java?rev=1896561&r1=1896560&r2=1896561&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/ParserForXMLSchema.java
 (original)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/regex/ParserForXMLSchema.java
 Fri Dec 31 00:01:16 2021
@@ -20,8 +20,6 @@ import java.util.Locale;
 
 /**
  * A regular expression parser for the XML Schema.
- *
- * @author TAMURA Kent &lt;k...@trl.ibm.co.jp&gt;
  */
 class ParserForXMLSchema extends RegexParser {
 
@@ -203,7 +201,7 @@ class ParserForXMLSchema extends RegexPa
                     c = this.processCIinCharacterClass(tok, c);
                     if (c < 0)  end = true;
                     break;
-                    
+
                   case 'p':
                   case 'P':
                     int pstart = this.offset;
@@ -288,7 +286,7 @@ class ParserForXMLSchema extends RegexPa
     protected RangeToken parseSetOperations() throws ParseException {
         throw this.ex("parser.process.1", this.offset);
     }
- 
+
     Token getTokenForShorthand(int ch) {
         switch (ch) {
           case 'd':



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org

Reply via email to