You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by id...@apache.org on 2009/02/04 16:16:11 UTC
svn commit: r740764 - in /myfaces/tobago/branches/tobago-1.0.x/core/src:
main/java/org/apache/myfaces/tobago/util/LayoutUtil.java
test/java/org/apache/myfaces/tobago/util/LayoutUtilTest.java
Author: idus
Date: Wed Feb 4 15:16:10 2009
New Revision: 740764
URL: http://svn.apache.org/viewvc?rev=740764&view=rev
Log:
TOBAGO-639: removed regular expression used in replaceAll
Modified:
myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/LayoutUtil.java
myfaces/tobago/branches/tobago-1.0.x/core/src/test/java/org/apache/myfaces/tobago/util/LayoutUtilTest.java
Modified: myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/LayoutUtil.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/LayoutUtil.java?rev=740764&r1=740763&r2=740764&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/LayoutUtil.java (original)
+++ myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/LayoutUtil.java Wed Feb 4 15:16:10 2009
@@ -128,7 +128,7 @@
String labelWidth = (String) label.getAttributes().get(ATTR_WIDTH);
if (labelWidth != null) {
try {
- return Integer.parseInt(labelWidth.replaceAll("\\D", ""));
+ return Integer.parseInt(stripNonNumericChars(labelWidth));
} catch (NumberFormatException e) {
LOG.warn("Can't parse label width, using default value", e);
}
@@ -153,7 +153,7 @@
Object value = ComponentUtil.getAttribute(component, sizeAttribute);
if (value != null) {
if (value instanceof String) {
- return new Integer(((String) value).replaceAll("\\D", ""));
+ return new Integer(stripNonNumericChars(((String) value)));
} else {
return (Integer) value;
}
@@ -281,4 +281,18 @@
return LayoutTokens.parseToken(columnToken) != null;
}
+ static String stripNonNumericChars(String token) {
+ if (token == null || token.isEmpty()) {
+ return token;
+ }
+ StringBuilder builder = new StringBuilder(token.length());
+ for (int i = 0; i < token.length(); ++i) {
+ char c = token.charAt(i);
+ if (Character.isDigit(c)) {
+ builder.append(c);
+ }
+ }
+ return builder.toString();
+ }
+
}
Modified: myfaces/tobago/branches/tobago-1.0.x/core/src/test/java/org/apache/myfaces/tobago/util/LayoutUtilTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/core/src/test/java/org/apache/myfaces/tobago/util/LayoutUtilTest.java?rev=740764&r1=740763&r2=740764&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/core/src/test/java/org/apache/myfaces/tobago/util/LayoutUtilTest.java (original)
+++ myfaces/tobago/branches/tobago-1.0.x/core/src/test/java/org/apache/myfaces/tobago/util/LayoutUtilTest.java Wed Feb 4 15:16:10 2009
@@ -7,19 +7,27 @@
*/
public class LayoutUtilTest extends TestCase {
- public void testCheckTokens() {
- assertTrue(LayoutUtil.checkTokens("1px;*;25%;fixed"));
- assertFalse(LayoutUtil.checkTokens("1px; *; fixed")); // XXX whitespace shouldn't matter
- assertTrue(LayoutUtil.checkTokens("0px"));
- assertTrue(LayoutUtil.checkTokens("1px"));
- assertTrue(LayoutUtil.checkTokens("99999px"));
- assertTrue(LayoutUtil.checkTokens("*"));
- assertTrue(LayoutUtil.checkTokens("1*"));
- assertTrue(LayoutUtil.checkTokens("99*"));
- assertTrue(LayoutUtil.checkTokens("0%"));
- assertTrue(LayoutUtil.checkTokens("1%"));
- assertTrue(LayoutUtil.checkTokens("200%")); // XXX percentile value over 100 doesn't make much sense, does it?
- assertTrue(LayoutUtil.checkTokens("fixed"));
- }
+ public void testCheckTokens() {
+ assertTrue(LayoutUtil.checkTokens("1px;*;25%;fixed"));
+ assertFalse(LayoutUtil.checkTokens("1px; *; fixed")); // XXX whitespace shouldn't matter
+ assertTrue(LayoutUtil.checkTokens("0px"));
+ assertTrue(LayoutUtil.checkTokens("1px"));
+ assertTrue(LayoutUtil.checkTokens("99999px"));
+ assertTrue(LayoutUtil.checkTokens("*"));
+ assertTrue(LayoutUtil.checkTokens("1*"));
+ assertTrue(LayoutUtil.checkTokens("99*"));
+ assertTrue(LayoutUtil.checkTokens("0%"));
+ assertTrue(LayoutUtil.checkTokens("1%"));
+ assertTrue(LayoutUtil.checkTokens("200%")); // XXX percentile value over 100 doesn't make much sense, does it?
+ assertTrue(LayoutUtil.checkTokens("fixed"));
+ }
+
+ public void testStripNonNumericChars() {
+ assertEquals("1", LayoutUtil.stripNonNumericChars("1px"));
+ assertEquals("99", LayoutUtil.stripNonNumericChars("99px"));
+ assertEquals("50", LayoutUtil.stripNonNumericChars("50%"));
+ assertEquals("3", LayoutUtil.stripNonNumericChars("3*"));
+ assertEquals("", LayoutUtil.stripNonNumericChars("*"));
+ }
}