aQute.lib.osgi
public class Clazz extends Object
Nested Class Summary | |
---|---|
protected static class | Clazz.Assoc |
static class | Clazz.QUERY |
Field Summary | |
---|---|
static EnumSet<Clazz.QUERY> | HAS_ARGUMENT |
Constructor Summary | |
---|---|
Clazz(String path, Resource resource) |
Method Summary | |
---|---|
protected void | constantClass(DataInputStream in, int poolIndex) |
protected void | constantDouble(DataInputStream in, int poolIndex) |
protected void | constantLong(DataInputStream in, int poolIndex) |
protected void | constantUtf8(DataInputStream in, int poolIndex) |
protected void | crawl(byte[] code)
We must find Class.forName references ...
|
String | getFQN() |
static String | getPackage(String clazz) |
String | getPath() |
Map<String,Map<String,String>> | getReferred() |
String | getSourceFile() |
boolean | is(Clazz.QUERY query, Instruction instr, Map<String,Clazz> classspace) |
protected void | nameAndType(DataInputStream in, int poolIndex, byte tag) |
Set<String> | parseClassFile() |
Set<String> | parseClassFile(InputStream in) |
Set<String> | parseClassFile(InputStream in, ClassDataCollector cd) |
Set<String> | parseClassFileWithCollector(ClassDataCollector cd) |
void | parseDescriptor(String descriptor)
This method parses a descriptor and adds the package of the descriptor to
the referenced packages.
|
protected void | pool(Object[] pool, int[] intPool) |
void | reset()
.class construct for different compilers
sun 1.1 Detect static variable class$com$acme$MyClass 1.2 " 1.3 " 1.4 "
1.5 ldc_w (class) 1.6 "
eclipse 1.1 class$0, ldc (string), invokestatic Class.forName 1.2 " 1.3 "
1.5 ldc (class) 1.6 "
1.5 and later is not an issue, sun pre 1.5 is easy to detect the static
variable that decodes the class name. |
String | toString() |
Parameters: in poolIndex
Throws: IOException
Parameters: in
Throws: IOException
Parameters: in
Throws: IOException
Parameters: in poolIndex
Throws: IOException
Parameters: code
Parameters: in poolIndex tag
Throws: IOException
descriptor ::= ( '(' references ')' )? references references ::= reference * reference ::= 'L' classname ( '<' references '>' )? ';' | 'B' | 'Z' | ... | '+' | '-' | '['This methods uses heavy recursion to parse the descriptor and a roving pointer to limit the creation of string objects.
Parameters: descriptor The to be parsed descriptor rover The pointer to start at