pjs/msgsdk/java/protocol/Messaging/src/Common.java

119 строки
3.1 KiB
Java

/*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (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.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is the Netscape Messaging Access SDK Version 3.5 code,
* released on or about June 15, 1998. *
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s): ______________________________________.
*/
/*
* Copyright (c) 1997 and 1998 Netscape Communications Corporation
* (http://home.netscape.com/misc/trademarks.html)
*/
package netscape.messaging;
/**
*Helper class for doing C-runtime equivalent operations.
*@author derekt@netscape.com
*@version 1.0
*/
public class Common
{
/**
*Converts a byte array of specified length into an int.
*/
public final int atoi( byte[] in_string )
{
int i;
int n;
int sign;
///////////////////////////////////////////////////////////////////////
// Move past any leading spaces.
///////////////////////////////////////////////////////////////////////
for ( i = 0; Character.isSpaceChar((char)in_string[i]) &&
i < in_string.length; i++ )
{
}
sign = (in_string[i] == '-') ? -1 : 1;
///////////////////////////////////////////////////////////////////////
// Store the sign of the number.
///////////////////////////////////////////////////////////////////////
if ( in_string[i] == '+' || in_string[i] == '-' )
{
i++;
}
for ( n = 0; Character.isDigit((char)in_string[i]) &&
i < in_string.length; i++ )
{
n = 10 * n + ( in_string[i] - '0');
}
return sign * n;
}
/**
*Converts an integer into its ASCII representation.
*/
public final int itoa( int in_number, byte[] io_string )
{
int i;
int sign;
if ((sign = in_number) < 0)
{
in_number = -in_number;
}
i = 0;
do
{
io_string[i++] = (byte)(in_number % 10 + '0');
}
while ((in_number /= 10) > 0);
if ( sign < 0 )
{
io_string[i++] = '-';
}
reverse(io_string, i );
return i;
}
/**
*Helper used by itoa.
*/
protected final void reverse( byte[] io_string, int in_length )
{
int c, i, j;
for ( i = 0, j = in_length - 1; i < j; i++, j-- )
{
c = io_string[i];
io_string[i] = io_string[j];
io_string[j] = (byte)c;
}
}
}