ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ste...@apache.org
Subject cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional XMLValidateTask.java
Date Mon, 09 Sep 2002 02:50:17 GMT
stevel      2002/09/08 19:50:17

  Modified:    src/main/org/apache/tools/ant/taskdefs/optional
                        XMLValidateTask.java
  Log:
  Feature support from Nick Pellow, nick.pellow@mindmatics.de.
  
  Revision  Changes    Path
  1.24      +75 -12    jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java
  
  Index: XMLValidateTask.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- XMLValidateTask.java	25 Jul 2002 15:21:11 -0000	1.23
  +++ XMLValidateTask.java	9 Sep 2002 02:50:17 -0000	1.24
  @@ -58,9 +58,10 @@
   import java.io.IOException;
   import java.net.MalformedURLException;
   import java.net.URL;
  -import java.util.Enumeration;
  -import java.util.Hashtable;
   import java.util.Vector;
  +import java.util.List;
  +import java.util.LinkedList;
  +
   import org.apache.tools.ant.AntClassLoader;
   import org.apache.tools.ant.BuildException;
   import org.apache.tools.ant.DirectoryScanner;
  @@ -89,6 +90,8 @@
    * (probably the one that is used by Ant itself), but one can specify any
    * SAX1/2 parser if needed
    * @author Raphael Pierquin <a href="mailto:raphael.pierquin@agisphere.com">raphael.pierquin@agisphere.com</a>
  + * @author <a href="mailto:nick.pellow@mindmatics.de">Nick Pellow</a>
  + * Added support for setting features.
    */
   public class XMLValidateTask extends Task {
   
  @@ -106,8 +109,7 @@
       protected Vector filesets = new Vector(); // sets of file to be validated
       protected Path classpath;
   
  -
  -    /**
  +   /**
        * the parser is viewed as a SAX2 XMLReader. If a SAX1 parser is specified,
        * it's wrapped in an adapter that make it behave as a XMLReader.
        * a more 'standard' way of doing this would be to use the JAXP1.1 SAXParser
  @@ -116,7 +118,8 @@
       protected XMLReader xmlReader = null; // XMLReader used to validation process
       protected ValidatorErrorHandler errorHandler
           = new ValidatorErrorHandler(); // to report sax parsing errors
  -    protected Hashtable features = new Hashtable();
  +
  +    private List featureList = new LinkedList();
   
       private XMLCatalog xmlCatalog = new XMLCatalog();
   
  @@ -222,6 +225,17 @@
           filesets.addElement(set);
       }
   
  +
  +    /**
  +     * add a feature nested element
  +     * @since ant1.6
  +     */
  +    public Feature createFeature() {
  +        final Feature feature = new Feature();
  +        featureList.add(feature);
  +        return feature;
  +    }
  +
       public void init() throws BuildException {
           super.init();
           xmlCatalog.setProject(getProject());
  @@ -347,18 +361,18 @@
                                                + " doesn't provide validation");
                   }
               }
  -            // set other features
  -            Enumeration enum = features.keys();
  -            while (enum.hasMoreElements()) {
  -                String featureId = (String) enum.nextElement();
  -                setFeature(featureId, ((Boolean) features.get(featureId)).booleanValue(),
true);
  +            // set the feature from the feature list
  +            for (int i = 0; i < featureList.size(); i++) {
  +                Feature feature = (Feature) featureList.get(i);
  +                setFeature(feature.getFeatureName(),
  +                        feature.getFeatureValue(),
  +                        true);
               }
           }
       }
   
       /**
  -     * set a feature on the parser.
  -     * @todo find a way to set any feature from build.xml
  +     * Set a feature on the parser.
        */
       private boolean setFeature(String feature, boolean value, boolean warn) {
   
  @@ -480,6 +494,55 @@
                   }
               }
               return e.getMessage();
  +        }
  +    }
  +
  +    /**
  +     * The class to create to set a feature of the parser.
  +     * @since ant1.6
  +     * @author <a href="mailto:nick.pellow@mindmatics.de">Nick Pellow</a>
  +     */
  +    public class Feature {
  +        /** The name of the feature to set.
  +         *
  +         * Valid features <a href=http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description">include.</a>
  +         */
  +        private String featureName = null;
  +        
  +        /** 
  +         * The value of the feature. 
  +         **/
  +        private boolean featureValue;
  +        
  +        /**
  +         * Set the feature name.
  +         * @param name the name to set
  +         */
  +        public void setName(String name) {
  +            featureName = name;
  +        }
  +        /**
  +         * Set the feature value to true or false. 
  +         * @param value
  +         */
  +        public void setValue(boolean value) {
  +            featureValue = value;
  +        }
  +
  +        /**
  +         * Gets the feature name.
  +         * @return the feature name
  +         */
  +        public String getFeatureName() {
  +            return featureName;
  +        }
  +
  +        /**
  +         * Gets the feature value.
  +         * @return the featuree value
  +         */
  +        public boolean getFeatureValue() {
  +            return featureValue;
           }
       }
   }
  
  
  

--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message