aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/regexp/RegexpUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/regexp/RegexpUtil.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/regexp/RegexpUtil.java109
1 files changed, 109 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/regexp/RegexpUtil.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/regexp/RegexpUtil.java
new file mode 100644
index 00000000..ebd85fab
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/regexp/RegexpUtil.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.tools.ant.util.regexp;
+
+// CheckStyle:HideUtilityClassConstructorCheck OFF - bc
+
+/***
+ * Regular expression utilities class which handles flag operations.
+ *
+ */
+public class RegexpUtil {
+
+ /**
+ * Check the options has a particular flag set.
+ *
+ * @param options an <code>int</code> value
+ * @param flag an <code>int</code> value
+ * @return true if the flag is set
+ */
+ public static boolean hasFlag(int options, int flag) {
+ return ((options & flag) > 0);
+ }
+
+ /**
+ * Remove a particular flag from an int value contains the option flags.
+ *
+ * @param options an <code>int</code> value
+ * @param flag an <code>int</code> value
+ * @return the options with the flag unset
+ */
+ public static int removeFlag(int options, int flag) {
+ return (options & (0xFFFFFFFF - flag));
+ }
+
+ /**
+ * convert regex option flag characters to regex options
+ * <dl>
+ * <li>g - Regexp.REPLACE_ALL</li>
+ * <li>i - RegexpMatcher.MATCH_CASE_INSENSITIVE</li>
+ * <li>m - RegexpMatcher.MATCH_MULTILINE</li>
+ * <li>s - RegexpMatcher.MATCH_SINGLELINE</li>
+ * </dl>
+ * @param flags the string containing the flags
+ * @return the Regexp option bits
+ * @since Ant 1.8.2
+ */
+ public static int asOptions(String flags) {
+ int options = RegexpMatcher.MATCH_DEFAULT;
+ if (flags != null) {
+ options = asOptions(flags.indexOf('i') == -1,
+ flags.indexOf('m') != -1,
+ flags.indexOf('s') != -1);
+ if (flags.indexOf('g') != -1) {
+ options |= Regexp.REPLACE_ALL;
+ }
+ }
+ return options;
+ }
+
+ /**
+ * Convert flag to regex options.
+ *
+ * @param caseSensitive opposite of RegexpMatcher.MATCH_CASE_INSENSITIVE
+ * @return the Regexp option bits
+ * @since Ant 1.8.2
+ */
+ public static int asOptions(boolean caseSensitive) {
+ return asOptions(caseSensitive, false, false);
+ }
+
+ /**
+ * Convert flags to regex options.
+ *
+ * @param caseSensitive opposite of RegexpMatcher.MATCH_CASE_INSENSITIVE
+ * @param multiLine RegexpMatcher.MATCH_MULTILINE
+ * @param singleLine RegexpMatcher.MATCH_SINGLELINE
+ * @return the Regexp option bits
+ * @since Ant 1.8.2
+ */
+ public static int asOptions(boolean caseSensitive, boolean multiLine,
+ boolean singleLine) {
+ int options = RegexpMatcher.MATCH_DEFAULT;
+ if (!caseSensitive) {
+ options = options | RegexpMatcher.MATCH_CASE_INSENSITIVE;
+ }
+ if (multiLine) {
+ options = options | RegexpMatcher.MATCH_MULTILINE;
+ }
+ if (singleLine) {
+ options = options | RegexpMatcher.MATCH_SINGLELINE;
+ }
+ return options;
+ }
+}