RegExFilter.java :  » XML » activexml » org » xdev » base » core » vm » filter » Java Open Source

Java Open Source » XML » activexml 
activexml » org » xdev » base » core » vm » filter » RegExFilter.java
/*
 * Created on May 3, 2004
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
package org.xdev.base.core.vm.filter;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.log4j.Level;
import org.jdom.Element;
import org.xdev.base.core.compiler.AXCompiler;
import org.xdev.base.log.LoggerWriter;


/**
 * @author AYegorov
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class RegExFilter extends AbstractCompilerFilter {

    /**
     * 
     */
    public RegExFilter() {
        super();
        // XXX Auto-generated constructor stub
    }

    /* (non-Javadoc)
     * @see org.xdev.base.core.vm.filter.AbstractCompilerFilter#doFilter(org.jdom.Element)
     */
    protected boolean doFilter(Element filter) throws Exception {
      boolean flag = false;
      
      String regexProp = filter.getAttributeValue("property");
      
        String value = null;
        
        if (regexProp == null) {
            value = AXCompiler.getInvokerClass().getName();
        }
        else {
        
          if (regexProp.startsWith("${")) {
              value = AXCompiler.getArgument(Integer.parseInt(regexProp.substring(2,regexProp.length()-1)));
          }
          else {
              value = System.getProperty(regexProp);
          }
        }
        
        String regex = filter.getAttributeValue("expression");

        boolean strict = false;
        
        if (regex == null) {
            regex = filter.getAttributeValue("match");
            
            strict = true;
        }
                
        LoggerWriter.log("Applying regular expression filter "+regex+" against value: "+value, Level.INFO_INT, this.getClass());
        
        value = value == null ? "" : value;
        
    Pattern pattern = Pattern.compile(regex);
    
    Matcher matcher = pattern.matcher(value);
    
    flag = strict ? matcher.matches() : matcher.find();

    return flag;
    }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.