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