Home » commons-validator-1.3.1-src » org.apache.commons » validator » [javadoc | source]
    1   /*
    2    * $Header: /home/cvs/jakarta-commons/validator/src/share/org/apache/commons/validator/Attic/ValidatorResourcesInitializer.java,v 1.22 2004/02/21 17:10:29 rleland Exp $
    3    * $Revision: 1.22 $
    4    * $Date: 2004/02/21 17:10:29 $
    5    *
    6    * ====================================================================
    7    * Copyright 2001-2004 The Apache Software Foundation
    8    *
    9    * Licensed under the Apache License, Version 2.0 (the "License");
   10    * you may not use this file except in compliance with the License.
   11    * You may obtain a copy of the License at
   12    *
   13    *     http://www.apache.org/licenses/LICENSE-2.0
   14    *
   15    * Unless required by applicable law or agreed to in writing, software
   16    * distributed under the License is distributed on an "AS IS" BASIS,
   17    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   18    * See the License for the specific language governing permissions and
   19    * limitations under the License.
   20    */
   21   
   22   package org.apache.commons.validator;
   23   
   24   import java.io.BufferedInputStream;
   25   import java.io.FileInputStream;
   26   import java.io.IOException;
   27   import java.io.InputStream;
   28   import java.net.URL;
   29   
   30   import org.apache.commons.digester.Digester;
   31   import org.apache.commons.digester.xmlrules.DigesterLoader;
   32   import org.apache.commons.logging.Log;
   33   import org.apache.commons.logging.LogFactory;
   34   
   35   import org.xml.sax.SAXException;
   36   
   37   /**
   38    * <p>Maps an xml file to <code>ValidatorResources</code>.</p>
   39    *
   40    * @deprecated ValidatorResources knows how to initialize itself now.
   41    */
   42   public class ValidatorResourcesInitializer {
   43   
   44       /**
   45        * Logger.
   46        * @deprecated Subclasses should use their own logging instance.
   47        */
   48       protected static Log log = LogFactory.getLog(ValidatorResourcesInitializer.class);
   49   
   50   
   51       /**
   52        * The set of public identifiers, and corresponding resource names, for
   53        * the versions of the configuration file DTDs that we know about.  There
   54        * <strong>MUST</strong> be an even number of Strings in this list!
   55        */
   56       protected static String registrations[] = {
   57           "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN",
   58           "/org/apache/commons/validator/resources/validator_1_0.dtd",
   59           "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0.1//EN",
   60           "/org/apache/commons/validator/resources/validator_1_0_1.dtd",
   61           "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1//EN",
   62           "/org/apache/commons/validator/resources/validator_1_1.dtd"
   63       };
   64   
   65   
   66       /**
   67        * Initializes a <code>ValidatorResources</code> based on a
   68        * file path and automatically process the resources.
   69        *
   70        * @param    fileName    The file path for the xml resource.
   71        */
   72       public static ValidatorResources initialize(String fileName)
   73               throws IOException {
   74   
   75           return initialize(new BufferedInputStream(new FileInputStream(fileName)));
   76       }
   77   
   78       /**
   79        * Initializes a <code>ValidatorResources</code> based on the
   80        * <code>InputStream</code> and automatically process the resources.
   81        *
   82        * @param    in <code>InputStream</code> for the xml resource.
   83        */
   84       public static ValidatorResources initialize(InputStream in) throws IOException {
   85   
   86           ValidatorResources resources = new ValidatorResources();
   87           initialize(resources, in);
   88   
   89           return resources;
   90       }
   91   
   92   
   93       /**
   94        * Initializes the <code>ValidatorResources</code> based on the <code>InputStream</code>
   95        * and automatically process the resources.
   96        *
   97        * @param    resources Resources to initialize.
   98        * @param    in <code>InputStream</code> for the xml resource.
   99        */
  100       public static void initialize(ValidatorResources resources, InputStream in)
  101               throws IOException {
  102   
  103           initialize(resources, in, true);
  104       }
  105   
  106       /**
  107        * Initializes a <code>ValidatorResources</code> based on the <code>InputStream</code>
  108        * and processes the resources based on the <code>boolean</code> passed in.
  109        *
  110        * @param    resources Resources to initialize.
  111        * @param    in <code>InputStream</code> for the xml resource.
  112        * @param    process Whether or not to call process on
  113        * <code>ValidatorResources</code>.
  114        */
  115       public static void initialize(
  116               ValidatorResources resources,
  117               InputStream in,
  118               boolean process)
  119               throws IOException {
  120   
  121           URL rulesUrl = ValidatorResourcesInitializer.class.getResource("digester-rules.xml");
  122           Digester digester = DigesterLoader.createDigester(rulesUrl);
  123           digester.setNamespaceAware(true);
  124           digester.setValidating(false);
  125           digester.setUseContextClassLoader(true);
  126   
  127           // register DTDs
  128           for (int i = 0; i < registrations.length; i += 2) {
  129               URL url =
  130                       ValidatorResourcesInitializer.class.getResource(
  131                               registrations[i + 1]);
  132               if (url != null) {
  133                   digester.register(registrations[i], url.toString());
  134               }
  135           }
  136   
  137           digester.push(resources);
  138   
  139           try {
  140               digester.parse(in);
  141   
  142           } catch(SAXException e) {
  143               log.error(e.getMessage(), e);
  144   
  145           } finally {
  146               if (in != null) {
  147                   in.close();
  148               }
  149           }
  150   
  151           if (process) {
  152               resources.process();
  153           }
  154   
  155       }
  156   
  157   }

Save This Page
Home » commons-validator-1.3.1-src » org.apache.commons » validator » [javadoc | source]