46 lines
1.3 KiB
Plaintext
46 lines
1.3 KiB
Plaintext
import java.io.ByteArrayOutputStream;
|
|
import java.io.DataOutputStream;
|
|
import java.io.InputStream;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.lang.IllegalStateException;
|
|
import java.io.IOException;
|
|
import java.io.DataInput;
|
|
import java.util.Arrays;
|
|
|
|
|
|
public class TdApi {
|
|
public abstract static class Object {
|
|
public native String toString();
|
|
|
|
public boolean equals(Object o) {
|
|
if (o == null) return false;
|
|
if (o == this) return true;
|
|
if (o instanceof Object) {
|
|
return Arrays.equals(this.serialize(), o.serialize());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public int hashCode() {
|
|
return Arrays.hashCode(this.serialize());
|
|
}
|
|
|
|
public abstract int getConstructor();
|
|
|
|
public byte[] serialize() throws IOException {
|
|
try(ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
|
|
try(DataOutputStream out = new DataOutputStream(baos)) {
|
|
serialize(out);
|
|
return baos.toByteArray();
|
|
}
|
|
}
|
|
}
|
|
|
|
public abstract void serialize(DataOutputStream out) throws IOException;
|
|
}
|
|
|
|
public abstract static class Function extends Object {
|
|
public native String toString();
|
|
}
|
|
|