Added code to allow XML generated classes to write themselves
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353121 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f1413cadfa
commit
d1c287c01d
@ -55,6 +55,7 @@
|
|||||||
package org.apache.poi.hdf.generator;
|
package org.apache.poi.hdf.generator;
|
||||||
|
|
||||||
import org.apache.poi.generator.FieldIterator;
|
import org.apache.poi.generator.FieldIterator;
|
||||||
|
import org.apache.poi.generator.RecordUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class overrides FieldIterator to handle HDF specific types
|
* This class overrides FieldIterator to handle HDF specific types
|
||||||
@ -65,16 +66,17 @@ public class HDFFieldIterator extends FieldIterator
|
|||||||
public HDFFieldIterator()
|
public HDFFieldIterator()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public String fillDecoder(String size, String type)
|
public String fillDecoder(String size, String type)
|
||||||
{
|
{
|
||||||
|
|
||||||
String result = "";
|
String result = "";
|
||||||
|
|
||||||
if (type.equals("short[]"))
|
if (type.equals("short[]"))
|
||||||
result = "LittleEndian.getSimpleShortArray(data, 0x" + Integer.toHexString(offset) + " + offset, size)";
|
result = "LittleEndian.getSimpleShortArray(data, 0x" + Integer.toHexString(offset) + " + offset," + size + ")";
|
||||||
else if (type.equals("byte[]"))
|
else if (type.equals("byte[]"))
|
||||||
result = "LittleEndian.getByteArray(data, 0x" + Integer.toHexString(offset) + " + offset, size)";
|
result = "LittleEndian.getByteArray(data, 0x" + Integer.toHexString(offset) + " + offset," + size + ")";
|
||||||
if (size.equals("2"))
|
else if (size.equals("2"))
|
||||||
result = "LittleEndian.getShort(data, 0x" + Integer.toHexString(offset) + " + offset)";
|
result = "LittleEndian.getShort(data, 0x" + Integer.toHexString(offset) + " + offset)";
|
||||||
else if (size.equals("4"))
|
else if (size.equals("4"))
|
||||||
result = "LittleEndian.getInt(data, 0x" + Integer.toHexString(offset) + " + offset)";
|
result = "LittleEndian.getInt(data, 0x" + Integer.toHexString(offset) + " + offset)";
|
||||||
@ -92,4 +94,37 @@ public class HDFFieldIterator extends FieldIterator
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public String serialiseEncoder( int fieldNumber, String fieldName, String size, String type)
|
||||||
|
{
|
||||||
|
String javaType = RecordUtil.getType(size, type, 0);
|
||||||
|
String javaFieldName = RecordUtil.getFieldName(fieldNumber,fieldName,0);
|
||||||
|
|
||||||
|
String result = "";
|
||||||
|
|
||||||
|
|
||||||
|
if (javaType.equals("short[]"))
|
||||||
|
result = "LittleEndian.putShortArray(data, 0x" + Integer.toHexString(offset) + " + offset, " + javaFieldName + ");";
|
||||||
|
else if (javaType.equals("byte[]"))
|
||||||
|
result = "LittleEndian.putByteArray(data, 0x" + Integer.toHexString(offset) + " + offset, " + javaFieldName + ");";
|
||||||
|
else if (size.equals("2"))
|
||||||
|
result = "LittleEndian.putShort(data, 0x" + Integer.toHexString(offset) + " + offset, (short)" + javaFieldName + ");";
|
||||||
|
else if (size.equals("4"))
|
||||||
|
result = "LittleEndian.putInt(data, 0x" + Integer.toHexString(offset) + " + offset, " + javaFieldName + ");";
|
||||||
|
else if (size.equals("1"))
|
||||||
|
result = "data[ 0x" + Integer.toHexString(offset) + " + offset] = " + javaFieldName + ";";
|
||||||
|
else if (javaType.equals("double"))
|
||||||
|
result = "LittleEndian.putDouble(data, 0x" + Integer.toHexString(offset) + " + offset, " + javaFieldName + ");";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
offset += Integer.parseInt(size);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException ignore)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user