public static Java_Class map_Methods(this Java_Class javaClass, object classFile) { var mappedConstantsPools = javaClass.ConstantsPool.getDictionaryWithValues(); var methods = (IEnumerable)classFile.prop("Methods"); foreach (var method in methods) { var javaMethod = new Java_Method { Name = method.prop("Name").str(), ParametersAndReturnType = method.prop("Signature").str(), ClassName = javaClass.Signature, IsAbstract = method.prop("IsAbstract").str().toBool(), IsClassInitializer = method.prop("IsClassInitializer").str().toBool(), IsNative = method.prop("IsNative").str().toBool(), IsPublic = method.prop("IsPublic").str().toBool(), IsStatic = method.prop("IsStatic").str().toBool() }; javaMethod.SimpleSignature = "{0}{1}".format(javaMethod.Name, javaMethod.ParametersAndReturnType); javaMethod.ReturnType = javaMethod.ParametersAndReturnType.subString_After(")"); javaMethod.Signature = "{0}.{1}".format(javaMethod.ClassName, javaMethod.SimpleSignature); if (method.prop("GenericSignature").notNull()) { javaMethod.GenericSignature = method.prop("GenericSignature").str(); } javaMethod.map_Annotations(method) .map_Variables(method); var instructions = (IEnumerable)method.prop("Instructions"); if (instructions.notNull()) { foreach (var instruction in instructions) { var javaInstruction = new Java_Instruction(); javaInstruction.Pc = instruction.prop("PC").str().toInt(); javaInstruction.OpCode = instruction.prop("NormalizedOpCode").str(); javaInstruction.Target_Index = instruction.prop("TargetIndex").str().toInt(); javaMethod.Instructions.Add(javaInstruction); } } javaClass.Methods.Add(javaMethod); } return(javaClass); }
public static Java_Class map_Methods(this Java_Class javaClass, object classFile) { var mappedConstantsPools = javaClass.ConstantsPool.getDictionaryWithValues(); var methods = (IEnumerable)classFile.prop("Methods"); foreach(var method in methods) { var javaMethod = new Java_Method { Name = method.prop("Name").str(), ParametersAndReturnType = method.prop("Signature").str(), ClassName = javaClass.Signature, IsAbstract = method.prop("IsAbstract").str().toBool(), IsClassInitializer = method.prop("IsClassInitializer").str().toBool(), IsNative = method.prop("IsNative").str().toBool(), IsPublic = method.prop("IsPublic").str().toBool(), IsStatic = method.prop("IsStatic").str().toBool() }; javaMethod.SimpleSignature = "{0}{1}".format(javaMethod.Name,javaMethod.ParametersAndReturnType); javaMethod.ReturnType = javaMethod.ParametersAndReturnType.subString_After(")"); javaMethod.Signature = "{0}.{1}".format(javaMethod.ClassName, javaMethod.SimpleSignature); if (method.prop("GenericSignature").notNull()) javaMethod.GenericSignature = method.prop("GenericSignature").str(); javaMethod.map_Annotations(method) .map_Variables(method); var instructions = (IEnumerable) method.prop("Instructions"); if (instructions.notNull()) { foreach(var instruction in instructions) { var javaInstruction = new Java_Instruction(); javaInstruction.Pc = instruction.prop("PC").str().toInt(); javaInstruction.OpCode = instruction.prop("NormalizedOpCode").str(); javaInstruction.Target_Index = instruction.prop("TargetIndex").str().toInt(); javaMethod.Instructions.Add(javaInstruction); } } javaClass.Methods.Add(javaMethod); } return javaClass; }