binary-data-format/src/bdf/util/DataHelpers.java

85 lines
2.0 KiB
Java

package bdf.util;
import java.nio.ByteBuffer;
import bdf.data.BdfDatabase;
import bdf.data.IBdfDatabase;
public class DataHelpers
{
public static ByteBuffer getByteBuffer(IBdfDatabase db) {
return ByteBuffer.wrap(db.getBytes());
}
public static BdfDatabase getDatabase(ByteBuffer buffer) {
return new BdfDatabase(buffer.array());
}
public static byte[] serializeInt(int value)
{
ByteBuffer buffer = ByteBuffer.allocate(Integer.SIZE/8);
buffer.putInt(value);
return buffer.array();
}
public static boolean bytesAreEqual(byte[] b1, byte[] b2)
{
// Send back false if the lengths are different
if(b1.length != b2.length) return false;
// Loop over the bytes
for(int i=0;i<b1.length;i++)
{
// Send back false if the bytes are different
if(b1[i] != b2[i]) return false;
}
// Send back true if everything has been checked
return true;
}
public static String replaceInString(String string, char find, String replace)
{
// Convert the string to bytes
String string_modified = new String();
// Loop over the string
for(int i=0;i<string.length();i++)
{
// Is the byte to find the byte at this part of the string
if(find == string.charAt(i))
{
// Add the data to replace to the string
string_modified += replace;
}
else
{
// Add the part of the old string to the new string
string_modified += string.substring(i, i+1);
}
}
// Send back the modified string
return string_modified;
}
public static String serializeString(String string)
{
// Serialize the string
String serialized = string;
// Replace some parts of the string
serialized = replaceInString(serialized, '\\', "\\\\");
serialized = replaceInString(serialized, '"', "\\\"");
serialized = replaceInString(serialized, '\n', "\\n");
serialized = replaceInString(serialized, '\t', "\\t");
// Add quotes to the string
serialized = "\"" + serialized + "\"";
// Return the serialized string
return serialized;
}
}