/**
* Copyright 2011 meltmedia
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.xchain.framework.util;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Utility class for performing parsing operations.
*
* @author Christian Trimble
* @author Josh Kennedy
*/
public class RegExUtil
{
private static Logger log = LoggerFactory.getLogger(RegExUtil.class);
/**
* Compiles a regular expression and logs any problems to this class' log.
*/
public static Pattern compilePattern( String regex, String errorMessage )
{
return compilePattern( regex, log, errorMessage );
}
/**
* Compiles a regular expression and logs an problems to the provided log. If
* a compile error occures, then null is returned. This class will not rethrow the
* error, so that it's use in a static context will not cause a ClassNotFoundException.
*/
public static Pattern compilePattern( String regex, Logger log, String errorMessage )
{
Pattern pattern = null;
try{
// Compile the pattern.
pattern = Pattern.compile(regex);
}
catch( PatternSyntaxException pse ) {
if( log.isErrorEnabled() ) {
log.error(errorMessage, pse);
}
pse.printStackTrace();
}
return pattern;
}
/**
* Exists to allow an upgrade path from Commons Logging to SLF4J
*
* @param regex
* @param log
* @param errorMessage
* @return
*/
@Deprecated
public static Pattern compilePattern( String regex, org.apache.commons.logging.Log log, String errorMessage )
{
Pattern pattern = null;
try{
// Compile the pattern.
pattern = Pattern.compile(regex);
}
catch( PatternSyntaxException pse ) {
if( log.isErrorEnabled() ) {
log.error(errorMessage, pse);
}
pse.printStackTrace();
}
return pattern;
}
}