Skip to content

Commit

Permalink
[java] get rid of @:functionCode in Type (part 1)
Browse files Browse the repository at this point in the history
  • Loading branch information
Simn committed Mar 1, 2015
1 parent 9d336c1 commit 0a21425
Showing 1 changed file with 39 additions and 43 deletions.
82 changes: 39 additions & 43 deletions std/java/_std/Type.hx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/

import java.internal.HxObject;

using StringTools;

@:keep enum ValueType {
TNull;
TInt;
Expand All @@ -33,40 +38,33 @@

@:keep @:coreApi class Type {

@:functionCode('
if (o == null || o instanceof haxe.lang.DynamicObject || o instanceof java.lang.Class)
return null;

return (java.lang.Class<T>) o.getClass();
')
public static function getClass<T>( o : T ) : Class<T> untyped
public static function getClass<T>( o : T ) : Class<T>
{
return null;
if (o == null || Std.is(o, DynamicObject) || Std.is(o, java.lang.Class)) {
return null;
}
return cast java.Lib.nativeType(o);
}

@:functionCode('
if (o instanceof java.lang.Enum || o instanceof haxe.lang.Enum)
return o.getClass();
return null;
')
public static function getEnum( o : EnumValue ) : Enum<Dynamic> untyped
public static function getEnum( o : EnumValue ) : Enum<Dynamic>
{
if (Std.is(o, java.lang.Enum) || Std.is(o, HxEnum)) {
return untyped o.getClass();
}
return null;
}

@:functionCode('
java.lang.Class cl = (c == null) ? null : c.getSuperclass();
if (cl != null && !cl.getName().equals("haxe.lang.HxObject") && !cl.getName().equals("java.lang.Object") )
return cl;
return null;
')
public static function getSuperClass( c : Class<Dynamic> ) : Class<Dynamic> untyped
public static function getSuperClass( c : Class<Dynamic> ) : Class<Dynamic>
{
var cl:java.lang.Class<Dynamic> = c == null ? null : untyped c.getSuperclass();
if (cl != null && cl.getName() != "haxe.lang.HxObject" && cl.getName() != "java.lang.Object") {
return cast cl;
}
return null;
}

public static function getClassName( c : Class<Dynamic> ) : String untyped {
var c : java.lang.Class<Dynamic> = c;
public static function getClassName( c : Class<Dynamic> ) : String {
var c : java.lang.Class<Dynamic> = cast c;
var name:String = c.getName();
if (name.startsWith("haxe.root."))
return name.substr(10);
Expand All @@ -82,8 +80,8 @@
}
}

public static function getEnumName( e : Enum<Dynamic> ) : String untyped {
var c : java.lang.Class<Dynamic> = e;
public static function getEnumName( e : Enum<Dynamic> ) : String {
var c : java.lang.Class<Dynamic> = cast e;
var ret:String = c.getName();
if (ret.startsWith("haxe.root."))
return ret.substr(10);
Expand All @@ -93,26 +91,24 @@
return ret;
}

@:functionCode('
public static function resolveClass( name : String ) : Class<Dynamic>
{
try {
if (name.indexOf(".") == -1)
name = "haxe.root." + name;
return java.lang.Class.forName(name);
}
catch (java.lang.ClassNotFoundException e)
{
if (name.equals("haxe.root.Int")) return int.class;
else if (name.equals("haxe.root.Float")) return double.class;
else if (name.equals("haxe.root.String")) return java.lang.String.class;
else if (name.equals("haxe.root.Math")) return java.lang.Math.class;
else if (name.equals("haxe.root.Class")) return java.lang.Class.class;
else if (name.equals("haxe.root.Dynamic")) return java.lang.Object.class;
return null;
if (name.indexOf(".") == -1) {
name = "haxe.root." +name;
}
return cast java.lang.Class.forName(name);
} catch (e:java.lang.ClassNotFoundException) {
return untyped switch (name) {
case "haxe.root.Int": Int;
case "haxe.root.Float": Float;
case "haxe.root.String": String;
case "haxe.root.Math": java.lang.Math;
case "haxe.root.Class": java.lang.Class;
case "haxe.root.Dynamic": java.lang.Object;
case _: null;
}
}
')
public static function resolveClass( name : String ) : Class<Dynamic> untyped
{
return null;
}


Expand Down

0 comments on commit 0a21425

Please sign in to comment.