| 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; |
| } |
| |
| } |
| |
| } |