soot.JastAddJ.MethodDescriptor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of soot Show documentation
Show all versions of soot Show documentation
A Java Optimization Framework
package soot.JastAddJ;
import java.util.HashSet;
import java.io.File;
import java.util.*;
import beaver.*;
import java.util.ArrayList;
import java.util.zip.*;
import java.io.*;
import java.io.FileNotFoundException;
import java.util.Collection;
import soot.*;
import soot.util.*;
import soot.jimple.*;
import soot.coffi.ClassFile;
import soot.coffi.method_info;
import soot.coffi.CONSTANT_Utf8_info;
import soot.tagkit.SourceFileTag;
import soot.coffi.CoffiMethodSource;
/**
* @ast class
*
*/
public class MethodDescriptor extends java.lang.Object {
private BytecodeParser p;
private String parameterDescriptors;
private String typeDescriptor;
public MethodDescriptor(BytecodeParser parser, String name) {
p = parser;
int descriptor_index = p.u2();
String descriptor = ((CONSTANT_Utf8_Info) p.constantPool[descriptor_index]).string();
if(BytecodeParser.VERBOSE)
p.println(" Method: " + name + ", " + descriptor);
//String[] strings = descriptor.substring(1).split("\\)");
//parameterDescriptors = strings[0];
//typeDescriptor = strings[1];
int pos = descriptor.indexOf(')');
parameterDescriptors = descriptor.substring(1, pos);
typeDescriptor = descriptor.substring(pos+1, descriptor.length());
}
public List parameterList() {
TypeDescriptor d = new TypeDescriptor(p, parameterDescriptors);
return d.parameterList();
}
public List parameterListSkipFirst() {
TypeDescriptor d = new TypeDescriptor(p, parameterDescriptors);
return d.parameterListSkipFirst();
}
public Access type() {
TypeDescriptor d = new TypeDescriptor(p, typeDescriptor);
return d.type();
}
}