Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/acmsl/regexpplugin/jakartaoro/HelperOROAdapter.java


1   /*
2                   Java Regular Expressions Plugin API
3   
4       Copyright (C) 2002  Jose San Leandro Armendáriz
5                           jsanleandro@yahoo.es
6                           chousz@yahoo.com
7   
8       This library is free software; you can redistribute it and/or
9       modify it under the terms of the GNU Lesser General Public
10      License as published by the Free Software Foundation; either
11      version 2.1 of the License, or (at your option) any later version.
12  
13      This library is distributed in the hope that it will be useful,
14      but WITHOUT ANY WARRANTY; without even the implied warranty of
15      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16      Lesser General Public License for more details.
17  
18      You should have received a copy of the GNU Lesser General Public
19      License along with this library; if not, write to the Free Software
20      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21  
22      Thanks to ACM S.L. for distributing this library under the LGPL license.
23      Contact info: jsr000@terra.es
24      Postal Address: c/Playa de Lagoa, 1
25                      Urb. Valdecabañas
26                      Boadilla del monte
27                      28660 Madrid
28                      Spain
29  
30      This library uses some external APIs. So far I haven't released such
31      APIs as projects themselves, but you should be able
32      to download them from the web page where you got this source code.
33  
34   ******************************************************************************
35   *
36   * Filename: $RCSfile: HelperOROAdapter.java,v $
37   *
38   * Author: Jose San Leandro Armendáriz
39   *
40   * Description: Jakarta ORO-specific regexp helper adapter.
41   *
42   * Last modified by: $Author: chous $ at $Date: 2003/06/21 11:56:06 $
43   *
44   * File version: $Revision: 1.1 $
45   *
46   * Project version: $Name:  $
47   *                  ("Name" means no concrete version has been checked out)
48   *
49   * $Id: HelperOROAdapter.java,v 1.1 2003/06/21 11:56:06 chous Exp $
50   *
51   */
52  package org.acmsl.regexpplugin.jakartaoro;
53  
54  /*
55   * Importing project-specific classes.
56   */
57  import org.acmsl.regexpplugin.Helper;
58  
59  /*
60   * Importing some ACMSL classes.
61   */
62  import org.acmsl.version.Version;
63  import org.acmsl.version.VersionFactory;
64  
65  /*
66   * Importing ORO classes.
67   */
68  import org.apache.oro.text.perl.Perl5Util;
69  import org.apache.oro.text.regex.MalformedPatternException;
70  import org.apache.oro.text.regex.Perl5Compiler;
71  
72  /**
73   * Jakarta ORO-specific regexp helper adapter.
74   * @author <a href="mailto:jsanleandro@yahoo.es"
75             >Jose San Leandro Armendáriz</a>
76   * @version $Revision: 1.1 $
77   */
78  public class HelperOROAdapter
79      implements  Helper
80  {
81      /**
82       * Finds all occurrences of a specified pattern in given input contents,
83       * and replaces them with passed String.
84       * @param input the input text to process.
85       * @param pattern the pattern to replace.
86       * @param replacement the replacement text.
87       * @return the updated input.
88       * @throws MalformedPatternException if given regexp is malformed.
89       */
90      public String replaceAll(String input, String pattern, String replacement)
91          throws  org.acmsl.regexpplugin.MalformedPatternException
92      {
93          StringBuffer result = new StringBuffer();
94  
95          if  (   (input       != null)
96               && (pattern     != null)
97               && (replacement != null))
98          {
99              Perl5Util t_Perl5Util = new Perl5Util();
100 
101             StringBuffer t_sbSafePattern = new StringBuffer();
102 
103             t_Perl5Util.substitute(
104                 t_sbSafePattern,
105                 "s/\\//\\\\\\//g",
106                 pattern);
107 
108             t_Perl5Util.substitute(
109                 result,
110                 "s/" + t_sbSafePattern + "/"
111                 + Perl5Compiler.quotemeta(replacement) + "/g",
112                 input);
113         }
114 
115         if  (result == null) 
116         {
117             result = new StringBuffer();
118         }
119 
120         if  (result.length() == 0) 
121         {
122             result.append(input);
123         }
124         
125         return result.toString();
126     }
127 
128     /**
129      * Concrete version object updated everytime it's checked-in in a CVS
130      * repository.
131      */
132     public static final Version VERSION =
133         VersionFactory.createVersion("$Revision: 1.1 $");
134 
135     /**
136      * Retrieves the current version of this object.
137      * @return the version object with such information.
138      */
139     public Version getVersion()
140     {
141         return VERSION;
142     }
143 
144     /**
145      * Retrieves the current version of this class.
146      * @return the object with class version information.
147      */
148     public static Version getClassVersion()
149     {
150         return VERSION;
151     }
152 }