private static void renderErlangString(OtpErlangString str, XValueTextRenderer renderer) { if (isPrintable(str)) { renderer.renderSpecialSymbol("'"); renderer.renderValue( str .stringValue() .replace("'", "\\'") ); renderer.renderSpecialSymbol("'"); } else { renderObject(new OtpErlangList(str.stringValue()), renderer); } }
public static boolean isPrintable(OtpErlangString s) { java.lang.String str = s.toString(); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (!isPrintable(c)) return false; } return true; }
protected OtpErlangObject convertBasicTypeToErlang(Object obj) { if (obj instanceof byte[]) { return new OtpErlangBinary((byte[]) obj); } else if (obj instanceof Boolean) { return new OtpErlangBoolean((Boolean) obj); } else if (obj instanceof Byte) { return new OtpErlangByte((Byte) obj); } else if (obj instanceof Character) { return new OtpErlangChar((Character) obj); } else if (obj instanceof Double) { return new OtpErlangDouble((Double) obj); } else if (obj instanceof Float) { return new OtpErlangFloat((Float) obj); } else if (obj instanceof Integer) { return new OtpErlangInt((Integer) obj); } else if (obj instanceof Long) { return new OtpErlangLong((Long) obj); } else if (obj instanceof Short) { return new OtpErlangShort((Short) obj); } else if (obj instanceof String) { return new OtpErlangString((String) obj); } else { throw new ErlangConversionException( "Could not convert Java object of type [" + obj.getClass() + "] to an Erlang data type."); } }
protected void recvStatus() throws IOException { try { final byte[] buf = read2BytePackage(); @SuppressWarnings("resource") final OtpInputStream ibuf = new OtpInputStream(buf, 0); final int tag = ibuf.read1(); if (tag != ChallengeStatus) { throw new IOException("Handshake protocol error"); } final byte[] tmpbuf = new byte[buf.length - 1]; ibuf.readN(tmpbuf); final String status = OtpErlangString.newString(tmpbuf); if (status.compareTo("ok") != 0) { throw new IOException("Peer replied with status '" + status + "' instead of 'ok'"); } } catch (final OtpErlangDecodeException e) { throw new IOException("Handshake failed - not enough data"); } if (traceLevel >= handshakeThreshold) { System.out.println("<- " + "HANDSHAKE recvStatus (ok)" + " local=" + localNode); } }
/** * Create a list of Erlang integers representing Unicode codePoints. This * method does not check if the string contains valid code points. * * @param str * the characters from which to create the list. */ public OtpErlangList(final String str) { if (str == null || str.length() == 0) { elems = NO_ELEMENTS; } else { final int[] codePoints = OtpErlangString.stringToCodePoints(str); elems = new OtpErlangObject[codePoints.length]; for (int i = 0; i < elems.length; i++) { elems[i] = new OtpErlangInt(codePoints[i]); } } }
strbuf = new byte[len]; this.readN(strbuf); return OtpErlangString.newString(strbuf); case OtpExternal.nilTag: return ""; for (int i = 0; i < len; i++) { intbuf[i] = read_int(); if (!OtpErlangString.isValidCodePoint(intbuf[i])) { throw new OtpErlangDecodeException("Invalid CodePoint: " + intbuf[i]);
/** * Create an Erlang string from a list of integers. * * @throws OtpErlangException * for non-proper and non-integer lists. * @throws OtpErlangRangeException * if an integer in the list is not a valid Unicode code point * according to Erlang. */ public OtpErlangString(final OtpErlangList list) throws OtpErlangException { final String s = list.stringValue(); final int n = s.length(); for (int i = 0; i < n; i = s.offsetByCodePoints(i, 1)) { final int cp = s.codePointAt(i); if (!isValidCodePoint(cp)) { throw new OtpErlangRangeException("Invalid CodePoint: " + cp); } } str = s; }
return new OtpErlangString(this); final int savePos = getPos(); try { return new OtpErlangString(this); } catch (final OtpErlangDecodeException e) {
str = OtpErlangString.newString(strbuf);
enc_atom = new String(OtpErlangString.stringToCodePoints(atom), 0, OtpExternal.maxAtomLength);
OtpErlangObject erlangObject = mailbox.receive(); if (erlangObject instanceof OtpErlangString) { OtpErlangString string = (OtpErlangString) erlangObject; for(char c: string.stringValue().toCharArray()) { int num = (int) c; System.out.println(num); } }
msgbody[1] = new OtpErlangString("~n** Bad cookie sent to " + local + " **~n");
tmpname = new byte[len - 7]; ibuf.readN(tmpname); hisname = OtpErlangString.newString(tmpname);
final int[] cps = OtpErlangString.stringToCodePoints(atom); atom = new String(cps, 0, OtpExternal.maxAtomLength);
return ((OtpErlangShort) erlangObject).shortValue(); } else if (erlangObject instanceof OtpErlangString) { return ((OtpErlangString) erlangObject).stringValue(); } else if (erlangObject instanceof OtpErlangPid) { return ((OtpErlangPid) erlangObject).toString();
final byte[] tmpname = new byte[buf.length - 11]; ibuf.readN(tmpname); final String hisname = OtpErlangString.newString(tmpname); if (!hisname.equals(peer.node)) { throw new IOException(
final int[] codePoints = OtpErlangString.stringToCodePoints(s); write_list_head(codePoints.length); for (final int codePoint : codePoints) {
final byte[] buf = new byte[n - 4]; System.arraycopy(tmpbuf, 4, buf, 0, n - 4); final String all = OtpErlangString.newString(buf); return all.split("\n"); } finally {