You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gh...@apache.org on 2006/07/04 12:45:41 UTC
svn commit: r418971 - in
/incubator/harmony/enhanced/classlib/trunk/modules/regex/src:
main/java/java/util/regex/AbstractCharClass.java
test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java
Author: gharley
Date: Tue Jul 4 03:45:40 2006
New Revision: 418971
URL: http://svn.apache.org/viewvc?rev=418971&view=rev
Log:
HARMONY 696 : Harmony regex does not support Character.isXXX character classes
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/AbstractCharClass.java
incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java
Modified: incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/AbstractCharClass.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/AbstractCharClass.java?rev=418971&r1=418970&r2=418971&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/AbstractCharClass.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/AbstractCharClass.java Tue Jul 4 03:45:40 2006
@@ -323,6 +323,126 @@
};
}
}
+
+ static class LazyJavaDefined extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isDefined((char) ch);
+ }
+ };
+ }
+ }
+
+ static class LazyJavaDigit extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isDigit((char) ch);
+ }
+ };
+ }
+ }
+
+ static class LazyJavaIdentifierIgnorable extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isIdentifierIgnorable((char) ch);
+ }
+ };
+ }
+ }
+
+ static class LazyJavaISOControl extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isISOControl((char) ch);
+ }
+ };
+ }
+ }
+
+ static class LazyJavaJavaIdentifierPart extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isJavaIdentifierPart((char) ch);
+ }
+ };
+ }
+ }
+
+ static class LazyJavaJavaIdentifierStart extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isJavaIdentifierStart((char) ch);
+ }
+ };
+ }
+ }
+
+ static class LazyJavaLetter extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isLetter((char) ch);
+ }
+ };
+ }
+ }
+
+ static class LazyJavaLetterOrDigit extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isLetterOrDigit((char) ch);
+ }
+ };
+ }
+ }
+
+ static class LazyJavaSpaceChar extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isSpaceChar((char) ch);
+ }
+ };
+ }
+ }
+
+ static class LazyJavaTitleCase extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isTitleCase((char) ch);
+ }
+ };
+ }
+ }
+
+ static class LazyJavaUnicodeIdentifierPart extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isUnicodeIdentifierPart((char) ch);
+ }
+ };
+ }
+ }
+
+ static class LazyJavaUnicodeIdentifierStart extends LazyCharClass {
+ protected AbstractCharClass computeValue() {
+ return new AbstractCharClass() {
+ public boolean contains(int ch) {
+ return Character.isUnicodeIdentifierStart((char) ch);
+ }
+ };
+ }
+ }
/**
* character classes generated from
@@ -350,7 +470,19 @@
{ "javaLowerCase", new LazyJavaLowerCase() },
{ "javaUpperCase", new LazyJavaUpperCase() },
{ "javaWhitespace", new LazyJavaWhitespace() },
- { "javaMirrored", new LazyJavaMirrored() },
+ { "javaMirrored", new LazyJavaMirrored() },
+ { "javaDefined", new LazyJavaDefined() },
+ { "javaDigit", new LazyJavaDigit() },
+ { "javaIdentifierIgnorable", new LazyJavaIdentifierIgnorable() },
+ { "javaISOControl", new LazyJavaISOControl() },
+ { "javaJavaIdentifierPart", new LazyJavaJavaIdentifierPart() },
+ { "javaJavaIdentifierStart", new LazyJavaJavaIdentifierStart() },
+ { "javaLetter", new LazyJavaLetter() },
+ { "javaLetterOrDigit", new LazyJavaLetterOrDigit() },
+ { "javaSpaceChar", new LazyJavaSpaceChar() },
+ { "javaTitleCase", new LazyJavaTitleCase() },
+ { "javaUnicodeIdentifierPart", new LazyJavaUnicodeIdentifierPart() },
+ { "javaUnicodeIdentifierStart", new LazyJavaUnicodeIdentifierStart() },
{ "Space", space },
{ "w", new LazyWord() },
{ "W", new LazyNonWord() },
Modified: incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java?rev=418971&r1=418970&r2=418971&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java Tue Jul 4 03:45:40 2006
@@ -985,7 +985,7 @@
* \p{javaLowerCase} \p{javaUpperCase} \p{javaWhitespace} \p{javaMirrored}
*/
public void testCompileCharacterClass() {
- // Regression for HARMONY-606
+ // Regression for HARMONY-606, 696
Pattern pattern = Pattern.compile("\\p{javaLowerCase}");
assertNotNull(pattern);
@@ -997,6 +997,42 @@
pattern = Pattern.compile("\\p{javaMirrored}");
assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaDefined}");
+ assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaDigit}");
+ assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaIdentifierIgnorable}");
+ assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaISOControl}");
+ assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaJavaIdentifierPart}");
+ assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaJavaIdentifierStart}");
+ assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaLetter}");
+ assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaLetterOrDigit}");
+ assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaSpaceChar}");
+ assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaTitleCase}");
+ assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaUnicodeIdentifierPart}");
+ assertNotNull(pattern);
+
+ pattern = Pattern.compile("\\p{javaUnicodeIdentifierStart}");
+ assertNotNull(pattern);
}
public static void main(String[] args) {