donaldp 02/03/22 23:30:48
Modified: proposal/myrmidon/src/java/org/apache/aut/converter/lib
StringToShortConverter.java
StringToLongConverter.java
StringToIntegerConverter.java
StringToByteConverter.java
Log:
Made it possible to parse out hex, octal and binary numbers via the converters
Revision Changes Path
1.2 +22 -1
jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/converter/lib/StringToShortConverter.java
Index: StringToShortConverter.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/converter/lib/StringToShortConverter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- StringToShortConverter.java 23 Mar 2002 05:34:17 -0000 1.1
+++ StringToShortConverter.java 23 Mar 2002 07:30:48 -0000 1.2
@@ -15,6 +15,9 @@
/**
* String to short converter
*
+ * <p>Hexadecimal numbers begin with 0x, Octal numbers begin with 0o and
binary
+ * numbers begin with 0b, all other values are assumed to be decimal.</p>
+ *
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
* @ant.converter source="java.lang.String" destination="java.lang.Short"
*/
@@ -34,7 +37,25 @@
{
try
{
- return new Short( (String)object );
+ final String value = (String)object;
+ short result = 0;
+ if( value.startsWith( "0x" ) )
+ {
+ result = Short.parseShort( value.substring( 2 ), 16 );
+ }
+ else if( value.startsWith( "0o" ) )
+ {
+ result = Short.parseShort( value.substring( 2 ), 8 );
+ }
+ else if( value.startsWith( "0b" ) )
+ {
+ result = Short.parseShort( value.substring( 2 ), 2 );
+ }
+ else
+ {
+ result = Short.parseShort( value );
+ }
+ return new Short( result );
}
catch( final NumberFormatException nfe )
{
1.2 +22 -1
jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/converter/lib/StringToLongConverter.java
Index: StringToLongConverter.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/converter/lib/StringToLongConverter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- StringToLongConverter.java 23 Mar 2002 05:34:17 -0000 1.1
+++ StringToLongConverter.java 23 Mar 2002 07:30:48 -0000 1.2
@@ -15,6 +15,9 @@
/**
* String to long converter
*
+ * <p>Hexadecimal numbers begin with 0x, Octal numbers begin with 0o and
binary
+ * numbers begin with 0b, all other values are assumed to be decimal.</p>
+ *
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
* @ant.converter source="java.lang.String" destination="java.lang.Long"
*/
@@ -34,7 +37,25 @@
{
try
{
- return new Long( (String)object );
+ final String value = (String)object;
+ long result = 0;
+ if( value.startsWith( "0x" ) )
+ {
+ result = Long.parseLong( value.substring( 2 ), 16 );
+ }
+ else if( value.startsWith( "0o" ) )
+ {
+ result = Long.parseLong( value.substring( 2 ), 8 );
+ }
+ else if( value.startsWith( "0b" ) )
+ {
+ result = Long.parseLong( value.substring( 2 ), 2 );
+ }
+ else
+ {
+ result = Long.parseLong( value );
+ }
+ return new Long( result );
}
catch( final NumberFormatException nfe )
{
1.2 +22 -1
jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/converter/lib/StringToIntegerConverter.java
Index: StringToIntegerConverter.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/converter/lib/StringToIntegerConverter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- StringToIntegerConverter.java 23 Mar 2002 05:34:17 -0000 1.1
+++ StringToIntegerConverter.java 23 Mar 2002 07:30:48 -0000 1.2
@@ -16,6 +16,9 @@
/**
* String to integer converter.
*
+ * <p>Hexadecimal numbers begin with 0x, Octal numbers begin with 0o and
binary
+ * numbers begin with 0b, all other values are assumed to be decimal.</p>
+ *
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
* @ant.converter source="java.lang.String" destination="java.lang.Integer"
*/
@@ -35,7 +38,25 @@
{
try
{
- return new Integer( (String)object );
+ final String value = (String)object;
+ int result = 0;
+ if( value.startsWith( "0x" ) )
+ {
+ result = Integer.parseInt( value.substring( 2 ), 16 );
+ }
+ else if( value.startsWith( "0o" ) )
+ {
+ result = Integer.parseInt( value.substring( 2 ), 8 );
+ }
+ else if( value.startsWith( "0b" ) )
+ {
+ result = Integer.parseInt( value.substring( 2 ), 2 );
+ }
+ else
+ {
+ result = Integer.parseInt( value );
+ }
+ return new Integer( result );
}
catch( final NumberFormatException nfe )
{
1.2 +22 -1
jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/converter/lib/StringToByteConverter.java
Index: StringToByteConverter.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/converter/lib/StringToByteConverter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- StringToByteConverter.java 23 Mar 2002 05:34:17 -0000 1.1
+++ StringToByteConverter.java 23 Mar 2002 07:30:48 -0000 1.2
@@ -15,6 +15,9 @@
/**
* String to byte converter
*
+ * <p>Hexadecimal numbers begin with 0x, Octal numbers begin with 0o and
binary
+ * numbers begin with 0b, all other values are assumed to be decimal.</p>
+ *
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
* @ant.converter source="java.lang.String" destination="java.lang.Byte"
*/
@@ -34,7 +37,25 @@
{
try
{
- return new Byte( (String)object );
+ final String value = (String)object;
+ byte result = 0;
+ if( value.startsWith( "0x" ) )
+ {
+ result = Byte.parseByte( value.substring( 2 ), 16 );
+ }
+ else if( value.startsWith( "0o" ) )
+ {
+ result = Byte.parseByte( value.substring( 2 ), 8 );
+ }
+ else if( value.startsWith( "0b" ) )
+ {
+ result = Byte.parseByte( value.substring( 2 ), 2 );
+ }
+ else
+ {
+ result = Byte.parseByte( value );
+ }
+ return new Byte( result );
}
catch( final NumberFormatException nfe )
{
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>