Information

0
Story Points

Technologies

Decompiled Java File
package org.exolab.castor.util;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.exolab.castor.util.RegExpEvaluator;

public class XercesRegExpEvaluator implements RegExpEvaluator {
   private static final Log LOG = LogFactory.getLog(XercesRegExpEvaluator.class);
   private static final String BOL = "^";
   private static final String EOL = "$";
   private static final String CLASS_NAME = "org.apache.xerces.utils.regex.RegularExpression";
   Object _regexp = null;
   private Constructor _constructor;

   public XercesRegExpEvaluator() {
      try {
         Class regexpClass = Class.forName("org.apache.xerces.utils.regex.RegularExpression");
         this._constructor = regexpClass.getConstructor(new Class[]{String.class});
      } catch (ClassNotFoundException var3) {
         LOG.error("Problem loading class org.apache.xerces.utils.regex.RegularExpression", var3);
         throw new IllegalAccessError("Problem loading class org.apache.xerces.utils.regex.RegularExpression: " + var3.getMessage());
      } catch (SecurityException var4) {
         LOG.error("Problem accessing constructor of class org.apache.xerces.utils.regex.RegularExpression", var4);
         throw new IllegalAccessError("Problem accessnig constructor of class org.apache.xerces.utils.regex.RegularExpression: " + var4.getMessage());
      } catch (NoSuchMethodException var5) {
         LOG.error("Problem locating constructor of class org.apache.xerces.utils.regex.RegularExpression", var5);
         throw new IllegalAccessError("class org.apache.xerces.utils.regex.RegularExpression: " + var5.getMessage());
      }
   }

   public void setExpression(String rexpr) {
      if(rexpr != null) {
         try {
            this._regexp = this._constructor.newInstance(new Object[]{"^" + rexpr + "$"});
         } catch (Exception var4) {
            LOG.error("Problem invoking constructor on org.apache.xerces.utils.regex.RegularExpression", var4);
            String err = "XercesRegExp Syntax error: " + var4.getMessage() + " ; error occured with the following " + "regular expression: " + rexpr;
            throw new IllegalArgumentException(err);
         }
      } else {
         this._regexp = null;
      }

   }

   public boolean matches(String value) {
      if(this._regexp != null) {
         try {
            Method method = this._regexp.getClass().getMethod("matches", new Class[]{String.class});
            return ((Boolean)method.invoke(this._regexp, new Object[]{value})).booleanValue();
         } catch (SecurityException var4) {
            LOG.error("Security problem accessing matches(String) method of class org.apache.xerces.utils.regex.RegularExpression", var4);
         } catch (NoSuchMethodException var5) {
            LOG.error("Method matches(String) of class org.apache.xerces.utils.regex.RegularExpression could not be found.", var5);
         } catch (IllegalArgumentException var6) {
            LOG.error("Invalid argument provided to method matches(String) of class org.apache.xerces.utils.regex.RegularExpression", var6);
         } catch (IllegalAccessException var7) {
            LOG.error("Illegal acces to method matches(String) of class org.apache.xerces.utils.regex.RegularExpression", var7);
         } catch (InvocationTargetException var8) {
            LOG.error("Invalid invocation of method matches(String) of class org.apache.xerces.utils.regex.RegularExpression", var8);
         }
      }

      return true;
   }
}
Page generated: Oct 19, 2017 2:34:58 PM