using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MesTools.ImsApi { public class ArrayPrinter { private TypePrinter typePrinter; public static int MAX_ARRAY_SIZE = 3; public ArrayPrinter(TypePrinter typePrinter) { this.typePrinter = typePrinter; } public void print(String varName, String[] data, StringBuilder stringBuffer) { printArrayHeader("String", varName, data.Length, stringBuffer); for (int i = 0; i < data.Length; i++) { if (i >= MAX_ARRAY_SIZE) { stringBuffer.Append("..."); break; } if (i > 0) { stringBuffer.Append(','); } stringBuffer.Append('"').Append(data[i]).Append('"'); } stringBuffer.Append('}'); } public void print(String varName, char[] data, StringBuilder stringBuffer) { printArrayHeader("char", varName, data.Length, stringBuffer); for (int i = 0; i < data.Length; i++) { if (i >= MAX_ARRAY_SIZE) { stringBuffer.Append("..."); break; } if (i > 0) { stringBuffer.Append(','); } stringBuffer.Append('\'').Append(data[i]).Append('\''); } stringBuffer.Append('}'); } public void print(String varName, float[] data, StringBuilder stringBuffer) { printArrayHeader("float", varName, data.Length, stringBuffer); for (int i = 0; i < data.Length; i++) { if (i >= MAX_ARRAY_SIZE) { stringBuffer.Append("..."); break; } if (i > 0) { stringBuffer.Append(','); } stringBuffer.Append(data[i]); } stringBuffer.Append('}'); } public void print(String varName, double[] data, StringBuilder stringBuffer) { printArrayHeader("double", varName, data.Length, stringBuffer); for (int i = 0; i < data.Length; i++) { if (i >= MAX_ARRAY_SIZE) { stringBuffer.Append("..."); break; } if (i > 0) { stringBuffer.Append(','); } stringBuffer.Append(data[i]); } stringBuffer.Append('}'); } private void printArrayHeader(String type, String varName, int Length, StringBuilder stringBuffer) { typePrinter.print(type, stringBuffer); if (varName != null && varName.Length != 0) { stringBuffer.Append(varName).Append(":"); } stringBuffer.Append('[').Append(Length).Append("]{"); } public void print(String varName, bool[] data, StringBuilder stringBuffer) { printArrayHeader("boolean", varName, data.Length, stringBuffer); for (int i = 0; i < data.Length; i++) { if (i >= MAX_ARRAY_SIZE) { stringBuffer.Append("..."); break; } if (i > 0) { stringBuffer.Append(','); } stringBuffer.Append(data[i]); } stringBuffer.Append('}'); } public void print(String varName, byte[] data, StringBuilder stringBuffer) { printArrayHeader("byte", varName, data.Length, stringBuffer); for (int i = 0; i < data.Length; i++) { if (i >= MAX_ARRAY_SIZE) { stringBuffer.Append("..."); break; } if (i > 0) { stringBuffer.Append(','); } stringBuffer.Append(data[i]); } stringBuffer.Append('}'); } public void print(String varName, short[] data, StringBuilder stringBuffer) { printArrayHeader("short", varName, data.Length, stringBuffer); for (int i = 0; i < data.Length; i++) { if (i >= MAX_ARRAY_SIZE) { stringBuffer.Append("..."); break; } if (i > 0) { stringBuffer.Append(','); } stringBuffer.Append(data[i]); } stringBuffer.Append('}'); } public void print(String varName, int[] data, StringBuilder stringBuffer) { printArrayHeader("int", varName, data.Length, stringBuffer); for (int i = 0; i < data.Length; i++) { if (i >= MAX_ARRAY_SIZE) { stringBuffer.Append("..."); break; } if (i > 0) { stringBuffer.Append(','); } stringBuffer.Append(data[i]); } stringBuffer.Append('}'); } private void printArrayValues(Object[] data, StringBuilder stringBuffer) { for (int i = 0; i < data.Length; i++) { if (i >= MAX_ARRAY_SIZE) { stringBuffer.Append("..."); break; } if (i > 0) { stringBuffer.Append(','); } stringBuffer.Append(data[i]); } stringBuffer.Append('}'); } public void print(String varName, long[] data, StringBuilder stringBuffer) { printArrayHeader("long", varName, data.Length, stringBuffer); for (int i = 0; i < data.Length; i++) { if (i >= MAX_ARRAY_SIZE) { stringBuffer.Append("..."); break; } if (i > 0) { stringBuffer.Append(','); } stringBuffer.Append(data[i]); } stringBuffer.Append('}'); } public void print(String varName, StringBuilder[] data, StringBuilder stringBuffer) { printArrayHeader("StringBuffer", varName, data.Length, stringBuffer); for (int i = 0; i < data.Length; i++) { if (i >= MAX_ARRAY_SIZE) { stringBuffer.Append("..."); break; } if (i > 0) { stringBuffer.Append(','); } stringBuffer.Append('"').Append(data[i].ToString()).Append('"'); } stringBuffer.Append('}'); } } }