// Java class go.interfaces.Interfaces is a proxy for talking to a Go program. // gobind -lang=java interfaces // // File is generated by gobind. Do not edit. package go.interfaces; import go.Seq; public abstract class Interfaces { private Interfaces() {} // uninstantiable public static int Add3(I r) { go.Seq _in = new go.Seq(); go.Seq _out = new go.Seq(); int _result; _in.writeRef(r.ref()); Seq.send(DESCRIPTOR, CALL_Add3, _in, _out); _result = _out.readInt32(); return _result; } public static void CallErr(Error e) throws Exception { go.Seq _in = new go.Seq(); go.Seq _out = new go.Seq(); _in.writeRef(e.ref()); Seq.send(DESCRIPTOR, CALL_CallErr, _in, _out); String _err = _out.readString(); if (_err != null) { throw new Exception(_err); } } public interface Error extends go.Seq.Object { public void Err() throws Exception; public static abstract class Stub implements Error { static final String DESCRIPTOR = "go.interfaces.Error"; private final go.Seq.Ref ref; public Stub() { ref = go.Seq.createRef(this); } public go.Seq.Ref ref() { return ref; } public void call(int code, go.Seq in, go.Seq out) { switch (code) { case Proxy.CALL_Err: { try { this.Err(); out.writeString(null); } catch (Exception e) { out.writeString(e.getMessage()); } return; } default: throw new RuntimeException("unknown code: "+ code); } } } static final class Proxy implements Error { static final String DESCRIPTOR = Stub.DESCRIPTOR; private go.Seq.Ref ref; Proxy(go.Seq.Ref ref) { this.ref = ref; } public go.Seq.Ref ref() { return ref; } public void call(int code, go.Seq in, go.Seq out) { throw new RuntimeException("cycle: cannot call proxy"); } public void Err() throws Exception { go.Seq _in = new go.Seq(); go.Seq _out = new go.Seq(); _in.writeRef(ref); Seq.send(DESCRIPTOR, CALL_Err, _in, _out); String _err = _out.readString(); if (_err != null) { throw new Exception(_err); } } static final int CALL_Err = 0x10a; } } public interface I extends go.Seq.Object { public int Rand(); public static abstract class Stub implements I { static final String DESCRIPTOR = "go.interfaces.I"; private final go.Seq.Ref ref; public Stub() { ref = go.Seq.createRef(this); } public go.Seq.Ref ref() { return ref; } public void call(int code, go.Seq in, go.Seq out) { switch (code) { case Proxy.CALL_Rand: { int result = this.Rand(); out.writeInt32(result); return; } default: throw new RuntimeException("unknown code: "+ code); } } } static final class Proxy implements I { static final String DESCRIPTOR = Stub.DESCRIPTOR; private go.Seq.Ref ref; Proxy(go.Seq.Ref ref) { this.ref = ref; } public go.Seq.Ref ref() { return ref; } public void call(int code, go.Seq in, go.Seq out) { throw new RuntimeException("cycle: cannot call proxy"); } public int Rand() { go.Seq _in = new go.Seq(); go.Seq _out = new go.Seq(); int _result; _in.writeRef(ref); Seq.send(DESCRIPTOR, CALL_Rand, _in, _out); _result = _out.readInt32(); return _result; } static final int CALL_Rand = 0x10a; } } public interface I1 extends go.Seq.Object { public void J(); static final class Proxy implements I1 { static final String DESCRIPTOR = Stub.DESCRIPTOR; private go.Seq.Ref ref; Proxy(go.Seq.Ref ref) { this.ref = ref; } public go.Seq.Ref ref() { return ref; } public void call(int code, go.Seq in, go.Seq out) { throw new RuntimeException("cycle: cannot call proxy"); } public void J() { go.Seq _in = new go.Seq(); go.Seq _out = new go.Seq(); _in.writeRef(ref); Seq.send(DESCRIPTOR, CALL_J, _in, _out); } static final int CALL_J = 0x10a; } } public interface I2 extends go.Seq.Object { public void G(); static final class Proxy implements I2 { static final String DESCRIPTOR = Stub.DESCRIPTOR; private go.Seq.Ref ref; Proxy(go.Seq.Ref ref) { this.ref = ref; } public go.Seq.Ref ref() { return ref; } public void call(int code, go.Seq in, go.Seq out) { throw new RuntimeException("cycle: cannot call proxy"); } public void G() { go.Seq _in = new go.Seq(); go.Seq _out = new go.Seq(); _in.writeRef(ref); Seq.send(DESCRIPTOR, CALL_G, _in, _out); } static final int CALL_G = 0x10a; } } public interface I3 extends go.Seq.Object { public I1 F(); public static abstract class Stub implements I3 { static final String DESCRIPTOR = "go.interfaces.I3"; private final go.Seq.Ref ref; public Stub() { ref = go.Seq.createRef(this); } public go.Seq.Ref ref() { return ref; } public void call(int code, go.Seq in, go.Seq out) { switch (code) { case Proxy.CALL_F: { I1 result = this.F(); out.writeRef(result.ref()); return; } default: throw new RuntimeException("unknown code: "+ code); } } } static final class Proxy implements I3 { static final String DESCRIPTOR = Stub.DESCRIPTOR; private go.Seq.Ref ref; Proxy(go.Seq.Ref ref) { this.ref = ref; } public go.Seq.Ref ref() { return ref; } public void call(int code, go.Seq in, go.Seq out) { throw new RuntimeException("cycle: cannot call proxy"); } public I1 F() { go.Seq _in = new go.Seq(); go.Seq _out = new go.Seq(); I1 _result; _in.writeRef(ref); Seq.send(DESCRIPTOR, CALL_F, _in, _out); _result = new I1.Proxy(_out.readRef()); return _result; } static final int CALL_F = 0x10a; } } public static I Seven() { go.Seq _in = new go.Seq(); go.Seq _out = new go.Seq(); I _result; Seq.send(DESCRIPTOR, CALL_Seven, _in, _out); _result = new I.Proxy(_out.readRef()); return _result; } public interface WithParam extends go.Seq.Object { public void HasParam(boolean p0); public static abstract class Stub implements WithParam { static final String DESCRIPTOR = "go.interfaces.WithParam"; private final go.Seq.Ref ref; public Stub() { ref = go.Seq.createRef(this); } public go.Seq.Ref ref() { return ref; } public void call(int code, go.Seq in, go.Seq out) { switch (code) { case Proxy.CALL_HasParam: { boolean param_p0; param_p0 = in.readBool(); this.HasParam(param_p0); return; } default: throw new RuntimeException("unknown code: "+ code); } } } static final class Proxy implements WithParam { static final String DESCRIPTOR = Stub.DESCRIPTOR; private go.Seq.Ref ref; Proxy(go.Seq.Ref ref) { this.ref = ref; } public go.Seq.Ref ref() { return ref; } public void call(int code, go.Seq in, go.Seq out) { throw new RuntimeException("cycle: cannot call proxy"); } public void HasParam(boolean p0) { go.Seq _in = new go.Seq(); go.Seq _out = new go.Seq(); _in.writeRef(ref); _in.writeBool(p0); Seq.send(DESCRIPTOR, CALL_HasParam, _in, _out); } static final int CALL_HasParam = 0x10a; } } private static final int CALL_Add3 = 1; private static final int CALL_CallErr = 2; private static final int CALL_Seven = 3; private static final String DESCRIPTOR = "interfaces"; }