/* A wrapper for a string containing a regular expression.
@Copyright (c) 2007-2009 The Regents of the University of California.
All rights reserved.
Permission is hereby granted, without written agreement and without
license or royalty fees, to use, copy, modify, and distribute this
software and its documentation for any purpose, provided that the
above copyright notice and the following two paragraphs appear in all
copies of this software.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
ENHANCEMENTS, OR MODIFICATIONS.
PT_COPYRIGHT_VERSION_2
COPYRIGHTENDKEY
*/
package ptolemy.actor.gt.util;
import java.util.regex.Pattern;
//////////////////////////////////////////////////////////////////////////
//// RegularExpressionString
/**
A wrapper for a string containing a regular expression.
@author Thomas Huining Feng
@version $Id$
@since Ptolemy II 8.0
@Pt.ProposedRating Yellow (tfeng)
@Pt.AcceptedRating Red (tfeng)
*/
public class RegularExpressionString {
/** Construct a Ptolemy expression string.
*/
public RegularExpressionString() {
this("");
}
/** Construct a Ptolemy expression string with the given value as its
* initial value.
*
* @param value The initial value.
*/
public RegularExpressionString(String value) {
set(value);
}
/** Get the current value.
*
* @return The value.
* @see #set(String)
*/
public String get() {
return _value;
}
/** Get the pattern for the regular expression.
*
* @return The pattern.
*/
public Pattern getPattern() {
if (_needReparse) {
_pattern = Pattern.compile(_value);
_needReparse = false;
}
return _pattern;
}
/** Set the value.
*
* @param value The value.
* @see #get()
*/
public void set(String value) {
_value = value;
_needReparse = true;
}
/** Return the regular expression in a string.
*
* @return The regular expression.
*/
public String toString() {
return get();
}
/** Whether the regular expression needs to be reparsed.
*/
private boolean _needReparse;
/** The pattern for the regular expression.
*/
private Pattern _pattern;
/** The regular expression.
*/
private String _value;
}