Files
2025-06-06 09:15:13 +02:00

250 lines
7.2 KiB
C#

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('}');
}
}
}