diff src/luan/LuaJavaFunction.java @ 46:a443637829c1

remove LuaNumber git-svn-id: https://luan-java.googlecode.com/svn/trunk@47 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Thu, 27 Dec 2012 01:48:36 +0000
parents 57054fa43189
children 659c7139e903
line wrap: on
line diff
--- a/src/luan/LuaJavaFunction.java	Thu Dec 27 00:44:58 2012 +0000
+++ b/src/luan/LuaJavaFunction.java	Thu Dec 27 01:48:36 2012 +0000
@@ -125,56 +125,16 @@
 
 	private static final Object[] NULL_RTN = new Object[1];
 
-	private static final RtnConverter RTN_NUMBER = new RtnConverter() {
-		public Object[] convert(Object obj) {
-			if( obj == null )
-				return NULL_RTN;
-			Number n = (Number)obj;
-			LuaNumber ln = LuaNumber.of(n);
-			return new Object[]{ln};
-		}
-	};
-
-	private static final RtnConverter RTN_NUMBER_ARRAY = new RtnConverter() {
-		public Object[] convert(Object obj) {
-			if( obj == null )
-				return NULL_RTN;
-			Object[] rtn = new Object[Array.getLength(obj)];
-			for( int i=0; i<rtn.length; i++ ) {
-				Number n = (Number)Array.get(obj,i);
-				if( n != null )
-					rtn[i] = LuaNumber.of(n.doubleValue());
-			}
-			return rtn;
-		}
-	};
-
 	private static RtnConverter getRtnConverter(JavaMethod m) {
 		Class<?> rtnType = m.getReturnType();
 		if( rtnType == Void.TYPE )
 			return RTN_EMPTY;
-		if( isNumber(rtnType) )
-			return RTN_NUMBER;
 		if( rtnType.isArray() ) {
-			rtnType = rtnType.getComponentType();
-			if( isNumber(rtnType) )
-				return RTN_NUMBER_ARRAY;
 			return RTN_ARRAY;
 		}
 		return RTN_ONE;
 	}
 
-	private static boolean isNumber(Class<?> rtnType) {
-		return Number.class.isAssignableFrom(rtnType)
-			|| rtnType == Byte.TYPE
-			|| rtnType == Short.TYPE
-			|| rtnType == Integer.TYPE
-			|| rtnType == Long.TYPE
-			|| rtnType == Float.TYPE
-			|| rtnType == Double.TYPE
-		;
-	}
-
 
 	private interface ArgConverter {
 		public Object convert(Object obj);
@@ -186,110 +146,6 @@
 		}
 	};
 
-	private static final ArgConverter ARG_DOUBLE = new ArgConverter() {
-		public Object convert(Object obj) {
-			if( obj instanceof LuaNumber ) {
-				LuaNumber ln = (LuaNumber)obj;
-				return Double.valueOf(ln.n);
-			}
-			if( obj instanceof String ) {
-				String s = (String)obj;
-				try {
-					return Double.valueOf(s);
-				} catch(NumberFormatException e) {}
-			}
-			return obj;
-		}
-	};
-
-	private static final ArgConverter ARG_FLOAT = new ArgConverter() {
-		public Object convert(Object obj) {
-			if( obj instanceof LuaNumber ) {
-				LuaNumber ln = (LuaNumber)obj;
-				return Float.valueOf((float)ln.n);
-			}
-			if( obj instanceof String ) {
-				String s = (String)obj;
-				try {
-					return Float.valueOf(s);
-				} catch(NumberFormatException e) {}
-			}
-			return obj;
-		}
-	};
-
-	private static final ArgConverter ARG_LONG = new ArgConverter() {
-		public Object convert(Object obj) {
-			if( obj instanceof LuaNumber ) {
-				LuaNumber ln = (LuaNumber)obj;
-				long i = (long)ln.n;
-				if( i == ln.n )
-					return Long.valueOf(i);
-			}
-			else if( obj instanceof String ) {
-				String s = (String)obj;
-				try {
-					return Long.valueOf(s);
-				} catch(NumberFormatException e) {}
-			}
-			return obj;
-		}
-	};
-
-	private static final ArgConverter ARG_INTEGER = new ArgConverter() {
-		public Object convert(Object obj) {
-			if( obj instanceof LuaNumber ) {
-				LuaNumber ln = (LuaNumber)obj;
-				int i = (int)ln.n;
-				if( i == ln.n )
-					return Integer.valueOf(i);
-			}
-			else if( obj instanceof String ) {
-				String s = (String)obj;
-				try {
-					return Integer.valueOf(s);
-				} catch(NumberFormatException e) {}
-			}
-			return obj;
-		}
-	};
-
-	private static final ArgConverter ARG_SHORT = new ArgConverter() {
-		public Object convert(Object obj) {
-			if( obj instanceof LuaNumber ) {
-				LuaNumber ln = (LuaNumber)obj;
-				short i = (short)ln.n;
-				if( i == ln.n )
-					return Short.valueOf(i);
-			}
-			else if( obj instanceof String ) {
-				String s = (String)obj;
-				try {
-					return Short.valueOf(s);
-				} catch(NumberFormatException e) {}
-			}
-			return obj;
-		}
-	};
-
-	private static final ArgConverter ARG_BYTE = new ArgConverter() {
-		public Object convert(Object obj) {
-			if( obj instanceof LuaNumber ) {
-				LuaNumber ln = (LuaNumber)obj;
-				byte i = (byte)ln.n;
-				if( i == ln.n )
-					return Byte.valueOf(i);
-			}
-			else if( obj instanceof String ) {
-				String s = (String)obj;
-				try {
-					return Byte.valueOf(s);
-				} catch(NumberFormatException e) {}
-			}
-			return obj;
-		}
-	};
-
 	private static boolean takesLuaState(JavaMethod m) {
 		Class<?>[] paramTypes = m.getParameterTypes();
 		return paramTypes.length > 0 && paramTypes[0].equals(LuaState.class);
@@ -314,18 +170,6 @@
 	}
 
 	private static ArgConverter getArgConverter(Class<?> cls) {
-		if( cls == Double.TYPE || cls.equals(Double.class) )
-			return ARG_DOUBLE;
-		if( cls == Float.TYPE || cls.equals(Float.class) )
-			return ARG_FLOAT;
-		if( cls == Long.TYPE || cls.equals(Long.class) )
-			return ARG_LONG;
-		if( cls == Integer.TYPE || cls.equals(Integer.class) )
-			return ARG_INTEGER;
-		if( cls == Short.TYPE || cls.equals(Short.class) )
-			return ARG_SHORT;
-		if( cls == Byte.TYPE || cls.equals(Byte.class) )
-			return ARG_BYTE;
 		return ARG_SAME;
 	}