package com.tns.tests;
import java.io.File;
import android.util.Log;
public class DummyClass {
private static class DummyClassImpl extends DummyClass {
}
public static class DummyDerivedClass extends DummyClass {
@Override
public String dummyMethod(DummyClass dummy) {
return super.dummyMethod(dummy);
}
}
public static interface MyInterface {
int echoInt(int i);
void doSomething();
}
public String nameField;
public String arbitraryString;
public DummyClass() {
nameField = "dummy";
arrIntField = new int[] { 11, 22, 33, 44, 55 };
arrIntField2 = null;
arrStringField = new String[] { "aa", "bb", "cc", "dd", "ee" };
arrLongField = new long[] { (long)1 << 0, (long)1 << 10, (long)1 << 20, (long)1 << 30, (long)1 << 40, (long)1 << 50, (long)1 << 60 };
}
public DummyClass(boolean throwException) throws Exception {
if (throwException) {
try {
someMethodThatThrowsException();
} catch (Exception e) {
throw new Exception("This is wrapped exception from constructor", e);
}
}
}
public DummyClass(String name) {
this.nameField = name;
this.arbitraryString = String.class.getName();
}
public DummyClass(Object obj) {
this.arbitraryString = Object.class.getName();
}
public DummyClass(DummyClass obj) {
this.arbitraryString = DummyClass.class.getName();
}
public DummyClass(MyInterface obj) {
this.arbitraryString = MyInterface.class.getName();
}
public DummyClass(Object obj, DummyClass obj2) {
this.arbitraryString = new StringBuilder(Object.class.getName()).append(separator).append(DummyClass.class.getName()).toString();
}
public DummyClass(DummyClass obj, Object obj2) {
this.arbitraryString = new StringBuilder(DummyClass.class.getName()).append(separator).append(Object.class.getName()).toString();
}
public int dummyMethod(int value) {
return value;
}
public String executeCallback() {
return dummyMethod(new DummyClassImpl());
}
public String dummyMethod(DummyClass dummy) {
return dummy.nameField;
}
public String getName() {
return nameField;
}
public Object getNameAsObject() {
return nameField;
}
public CharSequence getNameAsCharSequence() {
return nameField;
}
public boolean isNameFieldNull() {
return this.nameField == null;
}
public void setName(String value) {
nameField = value;
}
public String getname2() {
return nameField;
}
public void setname2(String value) {
nameField = value;
}
public Object getDummyClassAsObject() {
return new DummyClassImpl();
}
public Object getDummyClassArrayAsObject() {
DummyClassImpl[] arr = new DummyClassImpl[1];
arr[0] = new DummyClassImpl();
return arr;
}
public void setDummyField() {
dummyField = new DummyClassImpl();
}
public Object dummyField;
public void methodThatThrowsException() throws Exception {
try {
someMethodThatThrowsException();
} catch (Exception e) {
throw new Exception("This is wrapped exception throwns on purpose", e);
}
}
private void someMethodThatThrowsException() throws Exception {
throw new Exception("This exception is thrown on purpose");
}
public Object nullField = null;
public Object getNull() {
return null;
}
public String getNullString() {
return null;
}
public Object[] getArrayWithNullElement() {
Object[] arr = new Object[1];
arr[0] = null;
return arr;
}
public String concatIntArrayAsString(int... params) {
String s = "";
if (params != null) {
for (int i=0; i<params.length; i++) {
s += params[i];
}
}
return s;
}
public String concatCharArrayAsString(char... params) {
String s = "";
if (params != null) {
for (int i=0; i<params.length; i++) {
s += params[i];
}
}
return s;
}
public String concatObjectArrayAsString(Object... params) {
String s = "";
if (params != null) {
for (int i=0; i<params.length; i++) {
if (i > 0) {
s += ", ";
}
Object obj = params[i];
if (obj != null) {
s += obj.toString();
}
}
}
return s;
}
public double getMaxDouble() {
double d = Double.MAX_VALUE;
Log.d(logTag, "Double.MAX_VALUE=" + d);
return d;
}
public double getMinDouble() {
double d = Double.MIN_VALUE;
Log.d(logTag, "Double.MIN_VALUE=" + d);
return d;
}
public long getMaxLong() {
long l = Long.MAX_VALUE;
Log.d(logTag, "Long.MAX_VALUE=" + l);
return l;
}
public long getMinLong() {
long l = Long.MIN_VALUE;
Log.d(logTag, "Long.MIN_VALUE=" + l);
return l;
}
public int[] arrIntField;
public int[] arrIntField2;
public String[] arrStringField;
public long[] arrLongField;
public long longField;
public String getLongAsString(long value) {
return "" + value;
}
public String method1(int value) {
return "int=" + value;
}
public String method1(byte value) {
return "byte=" + value;
}
public String method1(long value) {
return "long=" + value;
}
public String method1(short value) {
return "short=" + value;
}
public String method1(boolean value) {
return "boolean=" + value;
}
public String method2(Object obj) {
String ret = "obj=" + ((obj != null) ? obj.toString() : "<null>");
Log.d("NativeScript.Java", "inside DummyClass.method2 with ret=" + ret);
return ret;
}
public String methodWithoutOverloads(float value) {
return "float=" + value;
}
public int triggerEchoInt(MyInterface impl, int i) {
int ret = impl.echoInt(i);
return ret;
}
public void triggerDoSomething(MyInterface impl) {
impl.doSomething();
}
public String methodWithOverloadsWithOneArgument(Object arg) {
return Object.class.getName();
}
public String methodWithOverloadsWithOneArgument(DummyClass arg) {
return DummyClass.class.getName();
}
public String methodWithOverloadsWithOneArgument(String arg) {
return String.class.getName();
}
public String methodWithOverloadsWithOneArgument(File arg) {
return File.class.getName();
}
public String methodWithOverloadsWithOneArgument(MyInterface arg) {
return MyInterface.class.getName();
}
public String methodWithOverloadsWithOneArgument(MyPublicInterface arg) {
return MyPublicInterface.class.getName();
}
public String methodWithOverloadsWithThreeArguments(Object arg1, String arg2, Object arg3) {
return new StringBuilder(Object.class.getName()).append(separator).append(String.class.getName()).append(separator).append(Object.class.getName()).toString();
}
public String methodWithOverloadsWithThreeArguments(Object arg1, String arg2, MyInterface arg3) {
return new StringBuilder(Object.class.getName()).append(separator).append(String.class.getName()).append(separator).append(MyInterface.class.getName()).toString();
}
public String methodWithOverloadsWithThreeArguments(Object arg1, String arg2, MyPublicInterface arg3) {
return new StringBuilder(Object.class.getName()).append(separator).append(String.class.getName()).append(separator).append(MyPublicInterface.class.getName()).toString();
}
public String methodWithOverloadsWithThreeArguments(Object arg1, Object arg2, Object arg3) {
return new StringBuilder(Object.class.getName()).append(separator).append(Object.class.getName()).append(separator).append(Object.class.getName()).toString();
}
public String methodWithOverloadsWithThreeArguments(MyInterface arg1, MyInterface arg2, MyPublicInterface arg3) {
return new StringBuilder(MyInterface.class.getName()).append(separator).append(MyInterface.class.getName()).append(separator).append(MyPublicInterface.class.getName()).toString();
}
public String methodWithOverloadsWithThreeArguments(String arg1, Object arg2, Object arg3) {
return new StringBuilder(String.class.getName()).append(separator).append(Object.class.getName()).append(separator).append(Object.class.getName()).toString();
}
private final String logTag = "TNS.Java";
private final String separator = " and ";
}