jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMValidator.java
changeset 27111 7a491d709b83
parent 25868 686eef1e7a79
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMValidator.java	Wed Jul 05 20:04:04 2017 +0200
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMValidator.java	Mon Oct 13 14:09:03 2014 -0700
@@ -1,13 +1,13 @@
 /*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved.
  */
 /*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
@@ -23,8 +23,6 @@
 import com.sun.org.apache.xerces.internal.xni.QName;
 import com.sun.org.apache.xerces.internal.impl.xs.SubstitutionGroupHandler;
 import com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaException;
-
-import java.util.Vector;
 import java.util.ArrayList;
 
 /**
@@ -87,24 +85,60 @@
      * have been seen.
      *
      * @param state  the current state
-     * @return       a Vector whose entries are instances of
+     * @return       a list whose entries are instances of
      *               either XSWildcardDecl or XSElementDecl.
      */
-    public Vector whatCanGoHere(int[] state);
+    public ArrayList whatCanGoHere(int[] state);
 
     /**
      * Used by constant space algorithm for a{n,m} for n > 1 and
      * m <= unbounded. Called by a validator if validation of
      * countent model succeeds after subsuming a{n,m} to a*
      * (or a+) to check the n and m bounds.
-     * Returns <code>null</code> if validation of bounds is
+     *
+     * @return <code>null</code> if validation of bounds is
      * successful. Returns a list of strings with error info
      * if not. Even entries in list returned are error codes
      * (used to look up properties) and odd entries are parameters
      * to be passed when formatting error message. Each parameter
-     * is associated with the error code that preceeds it in
+     * is associated with the error code that proceeds it in
      * the list.
      */
     public ArrayList checkMinMaxBounds();
 
+     /**
+     * <p>Returns an array containing information about the current repeating term
+     * or <code>null</code> if no occurrence counting was being performed at the
+     * current state.</p>
+     *
+     * <p>If an array is returned it will have a length == 4 and will contain:
+     *  <ul>
+     *   <li>a[0] :: min occurs</li>
+     *   <li>a[1] :: max occurs</li>
+     *   <li>a[2] :: current value of the counter</li>
+     *   <li>a[3] :: identifier for the repeating term</li>
+     *  </ul>
+     * </p>
+     *
+     * @param state the current state
+     * @return an array containing information about the current repeating term
+     */
+    public int [] occurenceInfo(int[] state);
+
+    /**
+     * Returns the name of the term (element or wildcard) for the given identifier.
+     *
+     * @param termId identifier for the element declaration or wildcard
+     * @return the name of the element declaration or wildcard
+     */
+    public String getTermName(int termId);
+
+    /**
+     * Checks if this content model has had its min/maxOccurs values reduced for
+     * purposes of speeding up UPA.  If so, this content model should not be used
+     * for any purpose other than checking unique particle attribution
+     *
+     * @return a boolean that says whether this content has been compacted for UPA
+     */
+    public boolean isCompactedForUPA();
 } // XSCMValidator