aboutsummaryrefslogtreecommitdiffstats
path: root/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangBinary.java
diff options
context:
space:
mode:
Diffstat (limited to 'lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangBinary.java')
-rw-r--r--lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangBinary.java88
1 files changed, 88 insertions, 0 deletions
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;
+ }
+}