package org.apache.oro.text.regex; /* ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2000 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation", "Jakarta-Oro" * must not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache" * or "Jakarta-Oro", nor may "Apache" or "Jakarta-Oro" appear in their * name, without prior written permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * . * * Portions of this software are based upon software originally written * by Daniel F. Savarese. We appreciate his contributions. */ /** * The Pattern interface allows multiple representations of a regular * expression to be defined. In general, different regular expression * compilers will produce different types of pattern representations. * Some will produce state transition tables derived from syntax trees, * others will produce byte code representations of an NFA, etc. The * Pattern interface does not impose any specific internal pattern * representation, and consequently, Pattern implementations are not meant * to be interchangeable among differing PatternCompiler and PatternMatcher * implementations. The documentation accompanying a specific implementation * will define what other classes a Pattern can interact with. @author Daniel F. Savarese @version $Id: Pattern.java,v 1.1 2004/01/10 00:58:23 mikedemmer Exp $ * @see PatternCompiler * @see PatternMatcher */ public interface Pattern { /** * This method returns the string representation of the pattern. Its * purpose is to allow a pattern to be reconstructed after compilation. * In other words, when you compile a pattern, the resulting data * structures bear no relation to the string defining the pattern. * It is often useful to be able to access the string defining a pattern * after it has been compiled. *

* @return The original string representation of the regular expression * pattern. */ public String getPattern(); /** * This method returns an integer containing the compilation options used * to compile this pattern. *

* @return The compilation options used to compile the pattern. */ public int getOptions(); }