// // In order to convert some functionality to Visual C#, the Java Language Conversion Assistant // creates "support classes" that duplicate the original functionality. // // Support classes replicate the functionality of the original code, but in some cases they are // substantially different architecturally. Although every effort is made to preserve the // original architecture of the application in the converted project, the user should be aware that // the primary goal of these support classes is to replicate functionality, and that at times // the architecture of the resulting solution may differ somewhat. // using System; /// <summary> /// Contains conversion support elements such as classes, interfaces and static methods. /// </summary> public class SupportClass { /// <summary> /// Converts an array of sbytes to an array of bytes /// </summary> /// <param name="sbyteArray">The array of sbytes to be converted</param> /// <returns>The new array of bytes</returns> public static byte[] ToByteArray(sbyte[] sbyteArray) { byte[] byteArray = null; if (sbyteArray != null) { byteArray = new byte[sbyteArray.Length]; for(int index=0; index < sbyteArray.Length; index++) byteArray[index] = (byte) sbyteArray[index]; } return byteArray; } /// <summary> /// Converts a string to an array of bytes /// </summary> /// <param name="sourceString">The string to be converted</param> /// <returns>The new array of bytes</returns> public static byte[] ToByteArray(System.String sourceString) { return System.Text.UTF8Encoding.UTF8.GetBytes(sourceString); } /// <summary> /// Converts a array of object-type instances to a byte-type array. /// </summary> /// <param name="tempObjectArray">Array to convert.</param> /// <returns>An array of byte type elements.</returns> public static byte[] ToByteArray(System.Object[] tempObjectArray) { byte[] byteArray = null; if (tempObjectArray != null) { byteArray = new byte[tempObjectArray.Length]; for (int index = 0; index < tempObjectArray.Length; index++) byteArray[index] = (byte)tempObjectArray[index]; } return byteArray; } /*******************************/ /// <summary> /// Performs an unsigned bitwise right shift with the specified number /// </summary> /// <param name="number">Number to operate on</param> /// <param name="bits">Ammount of bits to shift</param> /// <returns>The resulting number from the shift operation</returns> public static int URShift(int number, int bits) { if ( number >= 0) return number >> bits; else return (number >> bits) + (2 << ~bits); } /// <summary> /// Performs an unsigned bitwise right shift with the specified number /// </summary> /// <param name="number">Number to operate on</param> /// <param name="bits">Ammount of bits to shift</param> /// <returns>The resulting number from the shift operation</returns> public static int URShift(int number, long bits) { return URShift(number, (int)bits); } /// <summary> /// Performs an unsigned bitwise right shift with the specified number /// </summary> /// <param name="number">Number to operate on</param> /// <param name="bits">Ammount of bits to shift</param> /// <returns>The resulting number from the shift operation</returns> public static long URShift(long number, int bits) { if ( number >= 0) return number >> bits; else return (number >> bits) + (2L << ~bits); } /// <summary> /// Performs an unsigned bitwise right shift with the specified number /// </summary> /// <param name="number">Number to operate on</param> /// <param name="bits">Ammount of bits to shift</param> /// <returns>The resulting number from the shift operation</returns> public static long URShift(long number, long bits) { return URShift(number, (int)bits); } /*******************************/ /// <summary> /// This method returns the literal value received /// </summary> /// <param name="literal">The literal to return</param> /// <returns>The received value</returns> public static long Identity(long literal) { return literal; } /// <summary> /// This method returns the literal value received /// </summary> /// <param name="literal">The literal to return</param> /// <returns>The received value</returns> public static ulong Identity(ulong literal) { return literal; } /// <summary> /// This method returns the literal value received /// </summary> /// <param name="literal">The literal to return</param> /// <returns>The received value</returns> public static float Identity(float literal) { return literal; } /// <summary> /// This method returns the literal value received /// </summary> /// <param name="literal">The literal to return</param> /// <returns>The received value</returns> public static double Identity(double literal) { return literal; } /*******************************/ /// <summary> /// Copies an array of chars obtained from a String into a specified array of chars /// </summary> /// <param name="sourceString">The String to get the chars from</param> /// <param name="sourceStart">Position of the String to start getting the chars</param> /// <param name="sourceEnd">Position of the String to end getting the chars</param> /// <param name="destinationArray">Array to return the chars</param> /// <param name="destinationStart">Position of the destination array of chars to start storing the chars</param> /// <returns>An array of chars</returns> public static void GetCharsFromString(System.String sourceString, int sourceStart, int sourceEnd, char[] destinationArray, int destinationStart) { int sourceCounter; int destinationCounter; sourceCounter = sourceStart; destinationCounter = destinationStart; while (sourceCounter < sourceEnd) { destinationArray[destinationCounter] = (char) sourceString[sourceCounter]; sourceCounter++; destinationCounter++; } } /*******************************/ /// <summary> /// Sets the capacity for the specified ArrayList /// </summary> /// <param name="vector">The ArrayList which capacity will be set</param> /// <param name="newCapacity">The new capacity value</param> public static void SetCapacity(System.Collections.ArrayList vector, int newCapacity) { if (newCapacity > vector.Count) vector.AddRange(new Array[newCapacity-vector.Count]); else if (newCapacity < vector.Count) vector.RemoveRange(newCapacity, vector.Count - newCapacity); vector.Capacity = newCapacity; } /*******************************/ /// <summary> /// Receives a byte array and returns it transformed in an sbyte array /// </summary> /// <param name="byteArray">Byte array to process</param> /// <returns>The transformed array</returns> public static sbyte[] ToSByteArray(byte[] byteArray) { sbyte[] sbyteArray = null; if (byteArray != null) { sbyteArray = new sbyte[byteArray.Length]; for(int index=0; index < byteArray.Length; index++) sbyteArray[index] = (sbyte) byteArray[index]; } return sbyteArray; } }