A recent CL added Java constructors to generated classes that extends or implements other Java classes and interfaces. Constructors for a struct S are Go functions on the form func NewS...(...) *S If no such constructors exists, a default empty constructor is generated. Expand that to cover every exported Go struct. Fixes golang/go#17086 Change-Id: I910aba13d5884c3f67c946c62a8ac4a3db8e2ea7 Reviewed-on: https://go-review.googlesource.com/29710 Reviewed-by: David Crawshaw <crawshaw@golang.org>
110 lines
2.9 KiB
Plaintext
110 lines
2.9 KiB
Plaintext
// Java class go.issue10788.TestStruct is a proxy for talking to a Go program.
|
|
// gobind -lang=java issue10788
|
|
//
|
|
// File is generated by gobind. Do not edit.
|
|
package go.issue10788;
|
|
|
|
import go.Seq;
|
|
|
|
public final class TestStruct implements Seq.Proxy {
|
|
static { Issue10788.touch(); }
|
|
|
|
private final Seq.Ref ref;
|
|
|
|
@Override public final int incRefnum() {
|
|
int refnum = ref.refnum;
|
|
Seq.incGoRef(refnum);
|
|
return refnum;
|
|
}
|
|
|
|
TestStruct(Seq.Ref ref) { this.ref = ref; }
|
|
|
|
public TestStruct() { this.ref = __New(); }
|
|
|
|
private static native Seq.Ref __New();
|
|
|
|
public final native String getValue();
|
|
public final native void setValue(String v);
|
|
|
|
@Override public boolean equals(Object o) {
|
|
if (o == null || !(o instanceof TestStruct)) {
|
|
return false;
|
|
}
|
|
TestStruct that = (TestStruct)o;
|
|
String thisValue = getValue();
|
|
String thatValue = that.getValue();
|
|
if (thisValue == null) {
|
|
if (thatValue != null) {
|
|
return false;
|
|
}
|
|
} else if (!thisValue.equals(thatValue)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override public int hashCode() {
|
|
return java.util.Arrays.hashCode(new Object[] {getValue()});
|
|
}
|
|
|
|
@Override public String toString() {
|
|
StringBuilder b = new StringBuilder();
|
|
b.append("TestStruct").append("{");
|
|
b.append("Value:").append(getValue()).append(",");
|
|
return b.append("}").toString();
|
|
}
|
|
}
|
|
|
|
// Java class go.issue10788.TestInterface is a proxy for talking to a Go program.
|
|
// gobind -lang=java issue10788
|
|
//
|
|
// File is generated by gobind. Do not edit.
|
|
package go.issue10788;
|
|
|
|
import go.Seq;
|
|
|
|
public interface TestInterface {
|
|
public void doSomeWork(TestStruct s);
|
|
public void multipleUnnamedParams(long p0, String p1, long p2);
|
|
|
|
}
|
|
|
|
// Java class go.issue10788.Issue10788 is a proxy for talking to a Go program.
|
|
// gobind -lang=java issue10788
|
|
//
|
|
// File is generated by gobind. Do not edit.
|
|
package go.issue10788;
|
|
|
|
import go.Seq;
|
|
|
|
public abstract class Issue10788 {
|
|
static {
|
|
Seq.touch(); // for loading the native library
|
|
_init();
|
|
}
|
|
|
|
private Issue10788() {} // uninstantiable
|
|
|
|
// touch is called from other bound packages to initialize this package
|
|
public static void touch() {}
|
|
|
|
private static native void _init();
|
|
|
|
private static final class proxyTestInterface implements Seq.Proxy, TestInterface {
|
|
private final Seq.Ref ref;
|
|
|
|
@Override public final int incRefnum() {
|
|
int refnum = ref.refnum;
|
|
Seq.incGoRef(refnum);
|
|
return refnum;
|
|
}
|
|
|
|
proxyTestInterface(Seq.Ref ref) { this.ref = ref; }
|
|
|
|
public native void doSomeWork(TestStruct s);
|
|
public native void multipleUnnamedParams(long p0, String p1, long p2);
|
|
}
|
|
|
|
|
|
}
|