You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by al...@apache.org on 2007/03/07 21:03:32 UTC

svn commit: r515730 - in /incubator/uima/uimaj/trunk/uimaj-core/src: main/java/org/apache/uima/util/XMLParser.java main/java/org/apache/uima/util/impl/XMLParser_impl.java test/java/org/apache/uima/util/impl/XMLParser_implTest.java

Author: alally
Date: Wed Mar  7 12:03:31 2007
New Revision: 515730

URL: http://svn.apache.org/viewvc?view=rev&rev=515730
Log:
Added XMLParser.parseFlowControllerDescription
UIMA-338: https://issues.apache.org/jira/browse/UIMA-338

Modified:
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLParser.java
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java
    incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/XMLParser_implTest.java

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLParser.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLParser.java?view=diff&rev=515730&r1=515729&r2=515730
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLParser.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLParser.java Wed Mar  7 12:03:31 2007
@@ -28,6 +28,7 @@
 import org.apache.uima.collection.CasInitializerDescription;
 import org.apache.uima.collection.CollectionReaderDescription;
 import org.apache.uima.collection.metadata.CpeDescription;
+import org.apache.uima.flow.FlowControllerDescription;
 import org.apache.uima.resource.ResourceSpecifier;
 import org.apache.uima.resource.URISpecifier;
 import org.apache.uima.resource.metadata.FsIndexCollection;
@@ -75,8 +76,7 @@
   public void enableSchemaValidation(boolean aEnable);
 
   /**
-   * Parses an XML input stream and produces an object.
-   * elements.
+   * Parses an XML input stream and produces an object. elements.
    * 
    * @param aInput
    *          the input source from which to read the XML document
@@ -563,6 +563,36 @@
           ParsingOptions aOptions) throws InvalidXMLException;
 
   /**
+   * Parses a FlowControllerDescription from an XML input stream.
+   * 
+   * @param aInput
+   *          the input source from which to read the XML document
+   * 
+   * @return a <code>FlowControllerDescription</code> object constructed from the XML document
+   * 
+   * @throws InvalidXMLException
+   *           if the input XML is not valid or does not specify a valid FlowControllerDescription
+   */
+  public FlowControllerDescription parseFlowControllerDescription(XMLInputSource aInput)
+          throws InvalidXMLException;
+
+  /**
+   * Parses a FlowControllerDescription from an XML input stream.
+   * 
+   * @param aInput
+   *          the input source from which to read the XML document
+   * @param aOptions
+   *          option settings
+   * 
+   * @return a <code>FlowControllerDescription</code> object constructed from the XML document
+   * 
+   * @throws InvalidXMLException
+   *           if the input XML is not valid or does not specify a valid FlowControllerDescription
+   */
+  public FlowControllerDescription parseFlowControllerDescription(XMLInputSource aInput,
+          ParsingOptions aOptions) throws InvalidXMLException;
+
+  /**
    * Parses an IndexBuildSpecification from an XML input stream.
    * 
    * @param aInput
@@ -679,10 +709,9 @@
    * @throws InvalidXMLException
    *           if the XML element does not specify a valid object
    * @see #newSaxDeserializer()
-
+   * 
    */
   public SaxDeserializer newSaxDeserializer(ParsingOptions aOptions);
-  
 
   /**
    * Configures this XMLParser by registering a mapping between the name of an XML element and the
@@ -718,6 +747,7 @@
   public static class ParsingOptions {
     /**
      * Whether to expand &lt;xi:include&gt; elements according to the XInclude spec.
+     * 
      * @deprecated XInclude is no longer supported
      */
     public boolean expandXIncludes;
@@ -752,6 +782,6 @@
      */
     public ParsingOptions(boolean aExpandEnvVarRefs) {
       expandEnvVarRefs = aExpandEnvVarRefs;
-    }  
+    }
   }
 }

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java?view=diff&rev=515730&r1=515729&r2=515730
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java Wed Mar  7 12:03:31 2007
@@ -39,6 +39,7 @@
 import org.apache.uima.collection.CasInitializerDescription;
 import org.apache.uima.collection.CollectionReaderDescription;
 import org.apache.uima.collection.metadata.CpeDescription;
+import org.apache.uima.flow.FlowControllerDescription;
 import org.apache.uima.internal.util.XMLUtils;
 import org.apache.uima.resource.ResourceSpecifier;
 import org.apache.uima.resource.URISpecifier;
@@ -55,6 +56,7 @@
 import org.apache.uima.util.XMLInputSource;
 import org.apache.uima.util.XMLParser;
 import org.apache.uima.util.XMLizable;
+import org.apache.uima.util.XMLParser.ParsingOptions;
 import org.w3c.dom.Element;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXNotRecognizedException;
@@ -760,6 +762,29 @@
     } else {
       throw new InvalidXMLException(InvalidXMLException.INVALID_CLASS, new Object[] {
           ResourceManagerConfiguration.class.getName(), object.getClass().getName() });
+    }
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.uima.util.XMLParser#parseFlowControllerDescription(org.apache.uima.util.XMLInputSource)
+   */
+  public FlowControllerDescription parseFlowControllerDescription(XMLInputSource aInput) throws InvalidXMLException {
+    return parseFlowControllerDescription(aInput, DEFAULT_PARSING_OPTIONS);
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.uima.util.XMLParser#parseFlowControllerDescription(org.apache.uima.util.XMLInputSource, org.apache.uima.util.XMLParser.ParsingOptions)
+   */
+  public FlowControllerDescription parseFlowControllerDescription(XMLInputSource aInput, ParsingOptions aOptions) throws InvalidXMLException {
+    // attempt to locate resource specifier schema
+    URL schemaURL = getResourceSpecifierSchemaUrl();
+    XMLizable object = parse(aInput, RESOURCE_SPECIFIER_NAMESPACE, schemaURL, aOptions);
+
+    if (object instanceof FlowControllerDescription) {
+      return (FlowControllerDescription) object;
+    } else {
+      throw new InvalidXMLException(InvalidXMLException.INVALID_CLASS, new Object[] {
+              FlowControllerDescription.class.getName(), object.getClass().getName() });
     }
   }
 

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/XMLParser_implTest.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/XMLParser_implTest.java?view=diff&rev=515730&r1=515729&r2=515730
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/XMLParser_implTest.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/XMLParser_implTest.java Wed Mar  7 12:03:31 2007
@@ -30,6 +30,7 @@
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.analysis_engine.AnalysisEngineDescription;
 import org.apache.uima.analysis_engine.TaeDescription;
+import org.apache.uima.flow.FlowControllerDescription;
 import org.apache.uima.test.junit_extension.JUnitExtension;
 import org.apache.uima.util.InvalidXMLException;
 import org.apache.uima.util.XMLInputSource;
@@ -38,6 +39,8 @@
 
 public class XMLParser_implTest extends TestCase {
 
+  private XMLParser mXmlParser;
+
   /**
    * Constructor for XMLParser_implTest.
    * 
@@ -137,5 +140,11 @@
       JUnitExtension.handleException(e);
     }
   }
-  private XMLParser mXmlParser;
+  
+  public void testParseFlowControllerDescription() throws Exception {
+    XMLInputSource in = new XMLInputSource(
+            JUnitExtension.getFile("TextAnalysisEngineImplTest/FlowControllerForErrorTest.xml"));
+    FlowControllerDescription desc = mXmlParser.parseFlowControllerDescription(in);
+    assertEquals("Flow Controller for Error Test", desc.getMetaData().getName());
+  }
 }