You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Eung-ju Park <co...@apache.org> on 2002/01/04 15:02:41 UTC
Re: cvs commit: jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/source SourceUtil.java
Hi.
How about seperate BASE64InputStream and BASE64OutputStream from SourceUtil.
I think org.apache.avalon.excalibur.io is good place for BASE64 encoder and
decoder.
----- Original Message -----
From: <cz...@apache.org>
To: <ja...@apache.org>
Sent: Friday, January 04, 2002 10:25 PM
Subject: cvs commit:
jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/source
SourceUtil.java
> cziegeler 02/01/04 05:25:36
>
> Modified: src/scratchpad/org/apache/avalon/excalibur/source
> SourceUtil.java
> Log:
> Reformatting code
>
> Revision Changes Path
> 1.4 +46 -29
jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/source/S
ourceUtil.java
>
> Index: SourceUtil.java
> ===================================================================
> RCS file:
/home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibu
r/source/SourceUtil.java,v
> retrieving revision 1.3
> retrieving revision 1.4
> diff -u -r1.3 -r1.4
> --- SourceUtil.java 4 Jan 2002 13:21:31 -0000 1.3
> +++ SourceUtil.java 4 Jan 2002 13:25:36 -0000 1.4
> @@ -20,9 +20,10 @@
> * Utility class for source resolving.
> *
> * @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
> - * @version CVS $Revision: 1.3 $ $Date: 2002/01/04 13:21:31 $
> + * @version CVS $Revision: 1.4 $ $Date: 2002/01/04 13:25:36 $
> */
> -public final class SourceUtil {
> +public final class SourceUtil
> +{
>
> private static final char [ ] alphabet = {
> 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', // 0 to 7
> @@ -38,7 +39,8 @@
> * BASE 64 encoding.
> * See also RFC 1421
> */
> - public static String encodeBASE64 ( String s ) {
> + public static String encodeBASE64 ( String s )
> + {
> return encodeBASE64 ( s.getBytes ( ) );
> }
>
> @@ -46,7 +48,8 @@
> * BASE 64 encoding.
> * See also RFC 1421
> */
> - public static String encodeBASE64 ( byte [ ] octetString ) {
> + public static String encodeBASE64 ( byte [ ] octetString )
> + {
> int bits24;
> int bits6;
>
> @@ -55,7 +58,8 @@
> int outIndex = 0;
> int i = 0;
>
> - while ( ( i + 3 ) <= octetString.length ) {
> + while ( ( i + 3 ) <= octetString.length )
> + {
> // store the octets
> bits24 = ( octetString [ i++ ] & 0xFF ) << 16;
> bits24 |= ( octetString [ i++ ] & 0xFF ) << 8;
> @@ -71,7 +75,8 @@
> out [ outIndex++ ] = alphabet [ bits6 ];
> }
>
> - if ( octetString.length - i == 2 ) {
> + if ( octetString.length - i == 2 )
> + {
> // store the octets
> bits24 = ( octetString [ i ] & 0xFF ) << 16;
> bits24 |= ( octetString [ i + 1 ] & 0xFF ) << 8;
> @@ -85,7 +90,9 @@
>
> // padding
> out [ outIndex++ ] = '=';
> - } else if ( octetString.length - i == 1 ) {
> + }
> + else if ( octetString.length - i == 1 )
> + {
> // store the octets
> bits24 = ( octetString [ i ] & 0xFF ) << 16;
>
> @@ -107,19 +114,22 @@
> static final int characterCaseDiff = ('a' - 'A');
>
> /** Initialize the BitSet */
> - static {
> + static
> + {
> charactersDontNeedingEncoding = new BitSet(256);
> int i;
> - for (i = 'a'; i <= 'z'; i++) {
> + for (i = 'a'; i <= 'z'; i++)
> + {
> charactersDontNeedingEncoding.set(i);
> }
> - for (i = 'A'; i <= 'Z'; i++) {
> + for (i = 'A'; i <= 'Z'; i++)
> + {
> charactersDontNeedingEncoding.set(i);
> }
> - for (i = '0'; i <= '9'; i++) {
> + for (i = '0'; i <= '9'; i++)
> + {
> charactersDontNeedingEncoding.set(i);
> }
> - charactersDontNeedingEncoding.set(' ');
> charactersDontNeedingEncoding.set('-');
> charactersDontNeedingEncoding.set('_');
> charactersDontNeedingEncoding.set('.');
> @@ -133,38 +143,45 @@
> * @param s <code>String</code> to be translated.
> * @return the translated <code>String</code>.
> */
> - public static String encode(String s) {
> - StringBuffer out = new StringBuffer(s.length());
> - ByteArrayOutputStream buf = new ByteArrayOutputStream(32);
> - OutputStreamWriter writer = new OutputStreamWriter(buf);
> - for (int i = 0; i < s.length(); i++) {
> + public static String encode(String s)
> + {
> + final StringBuffer out = new StringBuffer( s.length() );
> + final ByteArrayOutputStream buf = new
ByteArrayOutputStream( 32 );
> + final OutputStreamWriter writer = new
OutputStreamWriter( buf );
> + for (int i = 0; i < s.length(); i++)
> + {
> int c = (int)s.charAt(i);
> - if (charactersDontNeedingEncoding.get(c)) {
> - if (c == ' ') {
> - out.append("%20");
> - } else {
> - out.append((char)c);
> - }
> - } else {
> - try {
> + if (charactersDontNeedingEncoding.get(c))
> + {
> + out.append((char)c);
> + }
> + else
> + {
> + try
> + {
> writer.write(c);
> writer.flush();
> - } catch(IOException e) {
> + }
> + catch(IOException e)
> + {
> buf.reset();
> continue;
> }
> byte[] ba = buf.toByteArray();
> - for (int j = 0; j < ba.length; j++) {
> + for (int j = 0; j < ba.length; j++)
> + {
> out.append('%');
> char ch = Character.forDigit((ba[j] >> 4) & 0xF,
16);
> // converting to use uppercase letter as part of
> // the hex value if ch is a letter.
> - if (Character.isLetter(ch)) {
> + if (Character.isLetter(ch))
> + {
> ch -= characterCaseDiff;
> }
> out.append(ch);
> ch = Character.forDigit(ba[j] & 0xF, 16);
> - if (Character.isLetter(ch)) {
> + if (Character.isLetter(ch))
> + {
> ch -= characterCaseDiff;
> }
> out.append(ch);
>
>
>
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
RE: cvs commit: jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/source SourceUtil.java
Posted by Carsten Ziegeler <cz...@s-und-n.de>.
> -----Original Message-----
> From: Eung-ju Park [mailto:colus@apache.org]
> Sent: Friday, January 04, 2002 3:03 PM
> To: Avalon Developers List
> Subject: Re: cvs commit:
> jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibu
> r/source SourceUtil.java
>
>
> Hi.
> How about seperate BASE64InputStream and BASE64OutputStream from
> SourceUtil.
> I think org.apache.avalon.excalibur.io is good place for BASE64
> encoder and
> decoder.
If this is an appropriate place, yes why not move - also the encoding and
decoding is more net-centric than io.
Carsten
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>