Sha256: 4af7f093d609432a509e6effb3dc16908e8f160f6032f3e9e074518173030fcb
Contents?: true
Size: 1.48 KB
Versions: 3
Compression:
Stored size: 1.48 KB
Contents
package <%= @namespace %>; import java.io.IOException; import java.io.InvalidClassException; import java.nio.charset.Charset; import java.util.Arrays; public class XdrString implements XdrElement { private byte[] bytes; public XdrString(byte[] bytes) { this.bytes = bytes; } public XdrString(String text) { this.bytes = text.getBytes(Charset.forName("UTF-8")); } @Override public void encode(XdrDataOutputStream stream) throws IOException { stream.writeInt(this.bytes.length); stream.write(this.bytes, 0, this.bytes.length); } public static XdrString decode(XdrDataInputStream stream, int maxSize) throws IOException { int size = stream.readInt(); if (size > maxSize) { throw new InvalidClassException("String length "+size+" exceeds max size "+maxSize); } byte[] bytes = new byte[size]; stream.read(bytes); return new XdrString(bytes); } public byte[] getBytes() { return this.bytes; } @Override public int hashCode() { return Arrays.hashCode(this.bytes); } @Override public boolean equals(Object object) { if (object == null || !(object instanceof XdrString)) { return false; } XdrString other = (XdrString) object; return Arrays.equals(this.bytes, other.bytes); } @Override public String toString() { return new String(bytes, Charset.forName("UTF-8")); } }
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
xdrgen-0.1.1 | lib/xdrgen/generators/java/XdrString.erb |
xdrgen-0.1.0 | lib/xdrgen/generators/java/XdrString.erb |
xdrgen-0.0.1 | lib/xdrgen/generators/java/XdrString.erb |