blob: 995828eb32e35c49fc99b4b994815c54dafdc328 [file] [log] [blame]
package freemarker.test.templatesuite.models;
import java.io.File;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import freemarker.ext.beans.RationalNumber;
import freemarker.ext.util.WrapperTemplateModel;
import freemarker.template.AdapterTemplateModel;
import freemarker.template.TemplateBooleanModel;
import freemarker.template.TemplateModelException;
import freemarker.template.TemplateNumberModel;
import freemarker.template.utility.StringUtil;
public class OverloadedMethods2 {
public String mVarargs(String... a1) {
StringBuilder sb = new StringBuilder();
for (String s : a1) {
sb.append(s);
}
return "mVarargs(String... a1 = " + sb + ")";
}
public BigInteger bigInteger(BigDecimal n) {
return n.toBigInteger();
}
public RationalNumber rational(int a, int b) {
return new RationalNumber(a, b);
}
public String mVarargs(File a1, String... a2) {
return "mVarargs(File a1, String... a2)";
}
public NumberAndStringModel getNnS(String s) {
return new NumberAndStringModel(s);
}
public String mNull1(String a1) {
return "mNull1(String a1 = " + a1 + ")";
}
public String mNull1(int a1) {
return "mNull1(int a1 = " + a1 + ")";
}
public String mNull2(String a1) {
return "mNull2(String a1 = " + a1 + ")";
}
public String mNull2(Object a1) {
return "mNull2(Object a1 = " + a1 + ")";
}
public String mSpecificity(Object a1, String a2) {
return "mSpecificity(Object a1, String a2)";
}
public String mSpecificity(String a1, Object a2) {
return "mSpecificity(String a1, Object a2)";
}
public String mChar(char a1) {
return "mChar(char a1 = " + a1 + ")";
}
public String mChar(Character a1) {
return "mChar(Character a1 = " + a1 + ")";
}
public String mBoolean(boolean a1) {
return "mBoolean(boolean a1 = " + a1 + ")";
}
public String mBoolean(Boolean a1) {
return "mBoolean(Boolean a1 = " + a1 + ")";
}
public int mIntNonOverloaded(int a1) {
return a1;
}
public String mIntPrimVSBoxed(int a1) {
return "mIntPrimVSBoxed(int a1 = " + a1 + ")";
}
public String mIntPrimVSBoxed(Integer a1) {
return "mIntPrimVSBoxed(Integer a1 = " + a1 + ")";
}
public String mNumPrimVSPrim(short a1) {
return "mNumPrimVSPrim(short a1 = " + a1 + ")";
}
public String mNumPrimVSPrim(long a1) {
return "mNumPrimVSPrim(long a1 = " + a1 + ")";
}
public String mNumBoxedVSBoxed(Short a1) {
return "mNumBoxedVSBoxed(Short a1 = " + a1 + ")";
}
public String mNumBoxedVSBoxed(Long a1) {
return "mNumBoxedVSBoxed(Long a1 = " + a1 + ")";
}
public String mNumUnambigous(Short a1, boolean otherOverload) {
return "mmNumUnambigous won't be called";
}
public String mNumUnambigous(Integer a1) {
return "mNumUnambigous(Integer a1 = " + a1 + ")";
}
public String mNumBoxedAll(Byte a1) {
return "mNumBoxedAll(Byte a1 = " + a1 + ")";
}
public String mNumBoxedAll(Short a1) {
return "mNumBoxedAll(Short a1 = " + a1 + ")";
}
public String mNumBoxedAll(Integer a1) {
return "mNumBoxedAll(Integer a1 = " + a1 + ")";
}
public String mNumBoxedAll(Long a1) {
return "mNumBoxedAll(Long a1 = " + a1 + ")";
}
public String mNumBoxedAll(Float a1) {
return "mNumBoxedAll(Float a1 = " + a1 + ")";
}
public String mNumBoxedAll(Double a1) {
return "mNumBoxedAll(Double a1 = " + a1 + ")";
}
public String mNumBoxedAll(BigInteger a1) {
return "mNumBoxedAll(BigInteger a1 = " + a1 + ")";
}
public String mNumBoxedAll(BigDecimal a1) {
return "mNumBoxedAll(BigDecimal a1 = " + a1 + ")";
}
public String mNumPrimAll(byte a1) {
return "mNumPrimAll(byte a1 = " + a1 + ")";
}
public String mNumPrimAll(short a1) {
return "mNumPrimAll(short a1 = " + a1 + ")";
}
public String mNumPrimAll(int a1) {
return "mNumPrimAll(int a1 = " + a1 + ")";
}
public String mNumPrimAll(long a1) {
return "mNumPrimAll(long a1 = " + a1 + ")";
}
public String mNumPrimAll(float a1) {
return "mNumPrimAll(float a1 = " + a1 + ")";
}
public String mNumPrimAll(double a1) {
return "mNumPrimAll(double a1 = " + a1 + ")";
}
public String mNumPrimAll(BigInteger a1) {
return "mNumPrimAll(BigInteger a1 = " + a1 + ")";
}
public String mNumPrimAll(BigDecimal a1) {
return "mNumPrimAll(BigDecimal a1 = " + a1 + ")";
}
public String mNumBoxedAll2nd(Short a1) {
return "mNumBoxedAll2nd(Short a1 = " + a1 + ")";
}
public String mNumBoxedAll2nd(Long a1) {
return "mNumBoxedAll2nd(Long a1 = " + a1 + ")";
}
public String mNumBoxedAll2nd(Double a1) {
return "mNumBoxedAll2nd(Double a1 = " + a1 + ")";
}
public String mNumPrimAll2nd(short a1) {
return "mNumPrimAll2nd(short a1 = " + a1 + ")";
}
public String mNumPrimAll2nd(long a1) {
return "mNumPrimAll2nd(long a1 = " + a1 + ")";
}
public String mNumPrimAll2nd(double a1) {
return "mNumPrimAll2nd(double a1 = " + a1 + ")";
}
public String mNumPrimFallbackToNumber(long a1) {
return "mNumPrimFallbackToNumber(long a1 = " + a1 + ")";
}
public String mNumPrimFallbackToNumber(Number a1) {
return "mNumPrimFallbackToNumber(Number a1 = " + a1 + ")";
}
public String mNumPrimFallbackToNumber(Object a1) {
return "mNumPrimFallbackToNumber(Object a1 = " + a1 + ")";
}
public String mNumBoxedFallbackToNumber(Long a1) {
return "mNumBoxedFallbackToNumber(Long a1 = " + a1 + ")";
}
public String mNumBoxedFallbackToNumber(Number a1) {
return "mNumBoxedFallbackToNumber(Number a1 = " + a1 + ")";
}
public String mNumBoxedFallbackToNumber(Object a1) {
return "mNumBoxedFallbackToNumber(Object a1 = " + a1 + ")";
}
public String mDecimalLoss(int a1) {
return "mDecimalLoss(int a1 = " + a1 + ")";
}
public String mDecimalLoss(double a1) {
return "mDecimalLoss(double a1 = " + a1 + ")";
}
public String mNumConversionLoses1(byte i, Object o1, Object o2) {
return "byte " + i;
}
public String mNumConversionLoses1(double i, Object o1, Object o2) {
return "double " + i;
}
public String mNumConversionLoses1(Number i, String o1, String o2) {
return "Number " + i + " " + i.getClass().getName();
}
public String mNumConversionLoses2(int i, Object o1, Object o2) {
return "int " + i;
}
public String mNumConversionLoses2(long i, Object o1, Object o2) {
return "long " + i;
}
public String mNumConversionLoses2(Number i, String o1, String o2) {
return "Number " + i + " " + i.getClass().getName();
}
public String mNumConversionLoses3(int i, Object o1, Object o2) {
return "int " + i;
}
public String mNumConversionLoses3(Serializable i, String o1, String o2) {
return "Serializable " + i + " " + i.getClass().getName();
}
public String nIntAndLong(int i) {
return "nIntAndLong(int " + i + ")";
}
public String nIntAndLong(long i) {
return "nIntAndLong(long " + i + ")";
}
public String nIntAndShort(int i) {
return "nIntAndShort(int " + i + ")";
}
public String nIntAndShort(short i) {
return "nIntAndShort(short " + i + ")";
}
public String nLongAndShort(long i) {
return "nLongAndShort(long " + i + ")";
}
public String nLongAndShort(short i) {
return "nLongAndShort(short " + i + ")";
}
public String varargs1(String s, int... xs) {
return "varargs1(String s = " + StringUtil.jQuote(s) + ", int... xs = [" + arrayToString(xs) + "])";
}
public String varargs1(String s, double... xs) {
return "varargs1(String s = " + StringUtil.jQuote(s) + ", double... xs = [" + arrayToString(xs) + "])";
}
public String varargs1(String s, Object... xs) {
return "varargs1(String s = " + StringUtil.jQuote(s) + ", Object... xs = [" + arrayToString(xs) + "])";
}
public String varargs1(Object s, Object... xs) {
return "varargs1(Object s = " + s + ", Object... xs = [" + arrayToString(xs) + "])";
}
public String varargs2(int... xs) {
return "varargs2(int... xs = [" + arrayToString(xs) + "])";
}
public String varargs2(double... xs) {
return "varargs2(double... xs = [" + arrayToString(xs) + "])";
}
public String varargs3(String... xs) {
return "varargs3(String... xs = [" + arrayToString(xs) + "])";
}
public String varargs3(Comparable... xs) {
return "varargs3(Comparable... xs = [" + arrayToString(xs) + "])";
}
public String varargs3(Object... xs) {
return "varargs3(Object... xs = [" + arrayToString(xs) + "])";
}
public String varargs4(Integer... xs) {
return "varargs4(Integer... xs = [" + arrayToString(xs) + "])";
}
public String varargs4(int... xs) {
return "varargs4(int... xs = [" + arrayToString(xs) + "])";
}
public String varargs5(int... xs) {
return "varargs5(int... xs = [" + arrayToString(xs) + "])";
}
public String varargs5(int a1, int... xs) {
return "varargs5(int a1 = " + a1 + ", int... xs = [" + arrayToString(xs) + "])";
}
public String varargs5(int a1, int a2, int... xs) {
return "varargs5(int a1 = " + a1 + ", int a2 = " + a2 + ", int... xs = [" + arrayToString(xs) + "])";
}
public String varargs5(int a1, int a2, int a3, int... xs) {
return "varargs5(int a1 = " + a1 + ", int a2 = " + a2 + ", int a3 = " + a3
+ ", int... xs = [" + arrayToString(xs) + "])";
}
public String varargs6(String a1, int... xs) {
return "varargs6(String a1 = " + a1 + ", int... xs = [" + arrayToString(xs) + "])";
}
public String varargs6(Object a1, int a2, int... xs) {
return "varargs6(Object a1 = " + a1 + ", int a2 = " + a2 + ", int... xs = [" + arrayToString(xs) + "])";
}
public String varargs7(int... xs) {
return "varargs7(int... xs = [" + arrayToString(xs) + "])";
}
public String varargs7(short a1, int... xs) {
return "varargs7(short a1 = " + a1 + ", int... xs = [" + arrayToString(xs) + "])";
}
private String arrayToString(int[] xs) {
StringBuilder sb = new StringBuilder();
for (int x : xs) {
if (sb.length() != 0) sb.append(", ");
sb.append(x);
}
return sb.toString();
}
private String arrayToString(double[] xs) {
StringBuilder sb = new StringBuilder();
for (double x : xs) {
if (sb.length() != 0) sb.append(", ");
sb.append(x);
}
return sb.toString();
}
private String arrayToString(Object[] xs) {
StringBuilder sb = new StringBuilder();
for (Object x : xs) {
if (sb.length() != 0) sb.append(", ");
sb.append(x);
}
return sb.toString();
}
public String mNullAmbiguous(String s) {
return "mNullAmbiguous(String s = " + s + ")";
}
public String mNullAmbiguous(int i) {
return "mNullAmbiguous(int i = " + i + ")";
}
public String mNullAmbiguous(File f) {
return "mNullAmbiguous(File f = " + f + ")";
}
public String mNullAmbiguous2(String s) {
return "mNullNonAmbiguous(String s = " + s + ")";
}
public String mNullAmbiguous2(File f) {
return "mNullAmbiguous(File f = " + f + ")";
}
public String mNullAmbiguous2(Object o) {
return "mNullAmbiguous(Object o = " + o + ")";
}
public String mNullNonAmbiguous(String s) {
return "mNullNonAmbiguous(String s = " + s + ")";
}
public String mNullNonAmbiguous(int i) {
return "mNullNonAmbiguous(int i = " + i + ")";
}
public String mVarargsIgnoredTail(int i, double... ds) {
return "mVarargsIgnoredTail(int i = " + i + ", double... ds = [" + arrayToString(ds) + "])";
}
public String mVarargsIgnoredTail(int... is) {
return "mVarargsIgnoredTail(int... is = [" + arrayToString(is) + "])";
}
public String mLowRankWins(int x, int y, Object o) {
return "mLowRankWins(int x = " + x + ", int y = " + y + ", Object o = " + o + ")";
}
public String mLowRankWins(Integer x, Integer y, String s) {
return "mLowRankWins(Integer x = " + x + ", Integer y = " + y + ", String s = " + s + ")";
}
public String mRareWrappings(File f, double d1, Double d2, double d3, boolean b) {
return "mRareWrappings(File f = " + f + ", double d1 = " + d1 + ", Double d2 = " + d2
+ ", double d3 = " + d3 + ", b = " + b + ")";
}
public String mRareWrappings(Object o, double d1, Double d2, Double d3, boolean b) {
return "mRareWrappings(Object o = " + o + ", double d1 = " + d1 + ", Double d2 = " + d2
+ ", double d3 = " + d3 + ", b = " + b + ")";
}
public String mRareWrappings(String s, double d1, Double d2, Double d3, boolean b) {
return "mRareWrappings(String s = " + s + ", double d1 = " + d1 + ", Double d2 = " + d2
+ ", double d3 = " + d3 + ", b = " + b + ")";
}
public String mRareWrappings2(String s) {
return "mRareWrappings2(String s = " + s + ")";
}
public String mRareWrappings2(byte b) {
return "mRareWrappings2(byte b = " + b + ")";
}
public File getFile() {
return new File("file");
}
public TemplateNumberModel getAdaptedNumber() {
return new MyAdapterNumberModel();
}
public TemplateNumberModel getWrapperNumber() {
return new MyWrapperNumberModel();
}
public TemplateBooleanModel getStringAdaptedToBoolean() {
return new MyStringAdaptedToBooleanModel();
}
public TemplateBooleanModel getStringAdaptedToBoolean2() {
return new MyStringAdaptedToBooleanModel2();
}
public TemplateBooleanModel getStringWrappedAsBoolean() {
return new MyStringWrapperAsBooleanModel();
}
public TemplateBooleanModel getBooleanWrappedAsAnotherBoolean() {
return new MyBooleanWrapperAsAnotherBooleanModel();
}
private static class MyAdapterNumberModel implements TemplateNumberModel, AdapterTemplateModel {
public Object getAdaptedObject(Class hint) {
if (hint == double.class) {
return Double.valueOf(123.0001);
} else if (hint == Double.class) {
return Double.valueOf(123.0002);
} else {
return Long.valueOf(124L);
}
}
public Number getAsNumber() throws TemplateModelException {
return Integer.valueOf(122);
}
}
private static class MyWrapperNumberModel implements TemplateNumberModel, WrapperTemplateModel {
public Number getAsNumber() throws TemplateModelException {
return Integer.valueOf(122);
}
public Object getWrappedObject() {
return Double.valueOf(123.0001);
}
}
private static class MyStringWrapperAsBooleanModel implements TemplateBooleanModel, WrapperTemplateModel {
public Object getWrappedObject() {
return "yes";
}
public boolean getAsBoolean() throws TemplateModelException {
return true;
}
}
private static class MyBooleanWrapperAsAnotherBooleanModel implements TemplateBooleanModel, WrapperTemplateModel {
public Object getWrappedObject() {
return Boolean.TRUE;
}
public boolean getAsBoolean() throws TemplateModelException {
return false;
}
}
private static class MyStringAdaptedToBooleanModel implements TemplateBooleanModel, AdapterTemplateModel {
public Object getAdaptedObject(Class hint) {
if (hint != Boolean.class && hint != boolean.class) {
return "yes";
} else {
return Boolean.TRUE;
}
}
public boolean getAsBoolean() throws TemplateModelException {
return false;
}
}
private static class MyStringAdaptedToBooleanModel2 implements TemplateBooleanModel, AdapterTemplateModel {
public Object getAdaptedObject(Class hint) {
return "yes";
}
public boolean getAsBoolean() throws TemplateModelException {
return true;
}
}
}