/* * Copyright (c) 2007 Justin Ryan * Copyright (c) 2013 Chris Verges <[email protected]> * * 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 expect4j.matches; import expect4j.*; import org.apache.oro.text.GlobCompiler; import org.apache.oro.text.regex.*; /** * Simulates "expect { -gl {..*} { code } } * * @author Chris Verges * @author Justin Ryan */ public class GlobMatch extends RegExpMatch { /** Creates a new instance of RegExpMatch */ public GlobMatch(String pattern, Closure closure) throws MalformedPatternException { super(pattern, closure); } public Pattern compilePattern(String patternStr) throws MalformedPatternException { int globOptions = GlobCompiler.DEFAULT_MASK | GlobCompiler.QUESTION_MATCHES_ZERO_OR_ONE_MASK; char [] patternCh = patternStr.toCharArray(); String perl5PatternStr = GlobCompiler.globToPerl5(patternCh, globOptions); return super.compilePattern(perl5PatternStr); } }