From 84adefa331c4159d432d22840663c38f155cd4c1 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 20 Nov 2009 14:54:40 +0000 Subject: The R13B03 release. --- .../com/ericsson/otp/erlang/OtpErlangBinary.java | 88 ++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangBinary.java (limited to 'lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangBinary.java') diff --git a/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangBinary.java b/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangBinary.java new file mode 100644 index 0000000000..a9eaad540e --- /dev/null +++ b/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangBinary.java @@ -0,0 +1,88 @@ +/* + * %CopyrightBegin% + * + * Copyright Ericsson AB 2000-2009. All Rights Reserved. + * + * The contents of this file are subject to the Erlang Public License, + * Version 1.1, (the "License"); you may not use this file except in + * compliance with the License. You should have received a copy of the + * Erlang Public License along with this software. If not, it can be + * retrieved online at http://www.erlang.org/. + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * %CopyrightEnd% + */ +package com.ericsson.otp.erlang; + +import java.io.Serializable; + +/** + * Provides a Java representation of Erlang binaries. Anything that can be + * represented as a sequence of bytes can be made into an Erlang binary. + */ +public class OtpErlangBinary extends OtpErlangBitstr implements Serializable, + Cloneable { + // don't change this! + static final long serialVersionUID = -3781009633593609217L; + + /** + * Create a binary from a byte array + * + * @param bin + * the array of bytes from which to create the binary. + */ + public OtpErlangBinary(final byte[] bin) { + super(bin); + } + + /** + * Create a binary from a stream containing a binary encoded in Erlang + * external format. + * + * @param buf + * the stream containing the encoded binary. + * + * @exception OtpErlangDecodeException + * if the buffer does not contain a valid external + * representation of an Erlang binary. + */ + public OtpErlangBinary(final OtpInputStream buf) + throws OtpErlangDecodeException { + super(new byte[0]); + bin = buf.read_binary(); + pad_bits = 0; + } + + /** + * Create a binary from an arbitrary Java Object. The object must implement + * java.io.Serializable or java.io.Externalizable. + * + * @param o + * the object to serialize and create this binary from. + */ + public OtpErlangBinary(final Object o) { + super(o); + } + + /** + * Convert this binary to the equivalent Erlang external representation. + * + * @param buf + * an output stream to which the encoded binary should be + * written. + */ + @Override + public void encode(final OtpOutputStream buf) { + buf.write_binary(bin); + } + + @Override + public Object clone() { + final OtpErlangBinary that = (OtpErlangBinary) super.clone(); + return that; + } +} -- cgit v1.2.3