KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > oro > text > regex > Perl5Pattern


1 package org.apache.oro.text.regex;
2
3 /* ====================================================================
4  * The Apache Software License, Version 1.1
5  *
6  * Copyright (c) 2000 The Apache Software Foundation. All rights
7  * reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  *
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  *
16  * 2. Redistributions in binary form must reproduce the above copyright
17  * notice, this list of conditions and the following disclaimer in
18  * the documentation and/or other materials provided with the
19  * distribution.
20  *
21  * 3. The end-user documentation included with the redistribution,
22  * if any, must include the following acknowledgment:
23  * "This product includes software developed by the
24  * Apache Software Foundation (http://www.apache.org/)."
25  * Alternately, this acknowledgment may appear in the software itself,
26  * if and wherever such third-party acknowledgments normally appear.
27  *
28  * 4. The names "Apache" and "Apache Software Foundation", "Jakarta-Oro"
29  * must not be used to endorse or promote products derived from this
30  * software without prior written permission. For written
31  * permission, please contact apache@apache.org.
32  *
33  * 5. Products derived from this software may not be called "Apache"
34  * or "Jakarta-Oro", nor may "Apache" or "Jakarta-Oro" appear in their
35  * name, without prior written permission of the Apache Software Foundation.
36  *
37  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
41  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48  * SUCH DAMAGE.
49  * ====================================================================
50  *
51  * This software consists of voluntary contributions made by many
52  * individuals on behalf of the Apache Software Foundation. For more
53  * information on the Apache Software Foundation, please see
54  * <http://www.apache.org/>.
55  *
56  * Portions of this software are based upon software originally written
57  * by Daniel F. Savarese. We appreciate his contributions.
58  */

59
60 import java.io.*;
61
62 /**
63  * An implementation of the Pattern interface for Perl5 regular expressions.
64  * This class is compatible with the Perl5Compiler and Perl5Matcher
65  * classes. When a Perl5Compiler instance compiles a regular expression
66  * pattern, it produces a Perl5Pattern instance containing internal
67  * data structures used by Perl5Matcher to perform pattern matches.
68  * This class cannot be subclassed and
69  * cannot be directly instantiated by the programmer as it would not
70  * make sense. Perl5Pattern instances should only be created through calls
71  * to a Perl5Compiler instance's compile() methods. The class implements
72  * the Serializable interface so that instances may be pre-compiled and
73  * saved to disk if desired.
74
75  @author <a HREF="dfs@savarese.org">Daniel F. Savarese</a>
76  @version $Id: Perl5Pattern.java,v 1.1.1.1 2000/07/23 23:08:54 jon Exp $
77
78  * @see Perl5Compiler
79  * @see Perl5Matcher
80  */

81 public final class Perl5Pattern implements Pattern, Serializable, Cloneable JavaDoc {
82   static final int _OPT_ANCH = 1, _OPT_SKIP = 2, _OPT_IMPLICIT = 4;
83
84   String JavaDoc _expression;
85   char[] _program;
86   int _mustUtility;
87   int _back;
88   int _minLength;
89   int _numParentheses;
90   boolean _isCaseInsensitive, _isExpensive;
91   int _startClassOffset;
92   int _anchor;
93   int _options;
94   char[] _mustString, _startString;
95
96   /**
97    * A dummy constructor with default visibility to override the default
98    * public constructor that would be created otherwise by the compiler.
99    */

100   Perl5Pattern(){ }
101
102   /*
103   private void readObject(ObjectInputStream stream)
104        throws IOException, ClassNotFoundException
105   {
106     stream.defaultReadObject();
107     _beginMatchOffsets = new int[_numParentheses + 1];
108     _endMatchOffsets = new int[_numParentheses + 1];
109   }
110   */

111
112   /**
113    * This method returns the string representation of the pattern.
114    * <p>
115    * @return The original string representation of the regular expression
116    * pattern.
117    */

118   public String JavaDoc getPattern() { return _expression; }
119
120
121   /**
122    * This method returns an integer containing the compilation options used
123    * to compile this pattern.
124    * <p>
125    * @return The compilation options used to compile the pattern.
126    */

127   public int getOptions() { return _options; }
128
129   /*
130   // For testing
131   public String toString() {
132     return "Parens: " + _numParentheses + " " + _beginMatchOffsets.length + " "
133       + _endMatchOffsets.length;
134   }
135   */

136 }
137
Popular Tags