All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nakedobjects.metamodel.commons.encoding.DataOutputStreamExtended Maven / Gradle / Ivy

The newest version!
package org.nakedobjects.metamodel.commons.encoding;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.Serializable;


public class DataOutputStreamExtended implements DataOutputExtended {

	private final DataOutputStream dataOutputStream;
	
    public DataOutputStreamExtended(final OutputStream output) {
    	dataOutputStream = new DataOutputStream(output);
    }
    
	public DataOutputStream getDataOutputStream() {
		return dataOutputStream;
	}

    
	//////////////////////////////////////////
	// Boolean, Char
	//////////////////////////////////////////

	public void writeBoolean(boolean value) throws IOException {
		FieldType.BOOLEAN.write(this, value);
	}

	public void writeBooleans(boolean[] value) throws IOException {
		FieldType.BOOLEAN_ARRAY.write(this, value);
	}
	
	public void writeChar(int value) throws IOException {
		FieldType.CHAR.write(this, (char)value);
	}
	
	public void writeChars(char[] value) throws IOException {
		FieldType.CHAR_ARRAY.write(this, value);
	}
	
	//////////////////////////////////////////
	// Integral Numbers
	//////////////////////////////////////////

	public void write(int value) throws IOException {
		writeByte((byte)value);
	}
	
	public void writeByte(int value) throws IOException {
		FieldType.BYTE.write(this, (byte) value);
	}

	public void write(byte[] value) throws IOException {
		writeBytes(value);
	}

	public void writeBytes(byte[] value) throws IOException {
		FieldType.BYTE_ARRAY.write(this, value);
	}

	public void writeShort(int value) throws IOException {
		FieldType.SHORT.write(this, (short) value);
	}

	public void writeShorts(short[] value) throws IOException {
		FieldType.SHORT_ARRAY.write(this, value);
	}

	public void writeInt(int value) throws IOException {
		FieldType.INTEGER.write(this, value);
	}
	
	public void writeInts(int[] value) throws IOException {
		FieldType.INTEGER_ARRAY.write(this, value);
	}
	
	public void writeLong(long value) throws IOException {
		FieldType.LONG.write(this, value);
	}
	
	public void writeLongs(long[] value) throws IOException {
		FieldType.LONG_ARRAY.write(this, value);
	}
	
	//////////////////////////////////////////
	// Floating Point Numbers
	//////////////////////////////////////////

	public void writeFloat(float value) throws IOException {
		FieldType.FLOAT.write(this, value);
	}
	
	public void writeFloats(float[] value) throws IOException {
		FieldType.FLOAT_ARRAY.write(this, value);
	}
	
	public void writeDouble(double value) throws IOException {
		FieldType.DOUBLE.write(this, value);
	}
	
	public void writeDoubles(double[] value) throws IOException {
		FieldType.DOUBLE_ARRAY.write(this, value);
	}
	
	//////////////////////////////////////////
	// Strings
	//////////////////////////////////////////

	public void writeUTF(String value) throws IOException {
		FieldType.STRING.write(this, value);
	}
	
	public void writeUTFs(String[] value) throws IOException {
		FieldType.STRING_ARRAY.write(this, value);
	}

	//////////////////////////////////////////
	// Encodable and Serializable
	//////////////////////////////////////////

	public void writeEncodable(Object encodable) throws IOException {
		FieldType.ENCODABLE.write(this, (Encodable) encodable);
	}
	
	public void writeEncodables(Object[] objects) throws IOException {
		Encodable[] encodables;
		if (objects == null) {
			encodables = null;
		} else {
			encodables = new Encodable[objects.length];
			for (int i = 0; i < encodables.length; i++) {
				encodables[i] = (Encodable) objects[i];
			}
		}
		FieldType.ENCODABLE_ARRAY.write(this, encodables);
	}
	
	public void writeSerializable(Object serializable) throws IOException {
		FieldType.SERIALIZABLE.write(this, (Serializable) serializable);
	}
	
	public void writeSerializables(Object[] objects) throws IOException {
		Serializable[] serializeables;
		if (objects == null) {
			serializeables = null;
		} else {
			serializeables = new Serializable[objects.length];
			for (int i = 0; i < serializeables.length; i++) {
				serializeables[i] = (Serializable) objects[i];
			}
		}
		FieldType.SERIALIZABLE_ARRAY.write(this, serializeables);
	}
	
	//////////////////////////////////////////
	// Other
	//////////////////////////////////////////

	public void write(byte[] b, int off, int len) throws IOException {
		dataOutputStream.write(b, off, len);
	}

	public void writeBytes(String str) throws IOException {
		dataOutputStream.writeBytes(str);
	}

	public void writeChars(String str) throws IOException {
		dataOutputStream.writeChars(str);
	}


	
	//////////////////////////////////////////
	// Flushable
	//////////////////////////////////////////

	public void flush() throws IOException {
		dataOutputStream.flush();
	}


}

// Copyright (c) Naked Objects Group Ltd.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy