Java Doc for CodeWriter.java in  » Scripting » beanshell » bsh » org » objectweb » asm » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Scripting » beanshell » bsh.org.objectweb.asm 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   bsh.org.objectweb.asm.CodeWriter

CodeWriter
public class CodeWriter implements CodeVisitor(Code)
A CodeVisitor CodeVisitor that generates Java bytecode instructions. Each visit method of this class appends the bytecode corresponding to the visited instruction to a byte vector, in the order these methods are called.


Field Summary
final static  booleanCHECK
     true if preconditions must be checked at runtime or not.
 CodeWriternext
     Next code writer (see ClassWriter.firstMethod firstMethod ).

Constructor Summary
protected  CodeWriter(ClassWriter cw, boolean computeMaxs)
     Constructs a CodeWriter.

Method Summary
protected  byte[]getCode()
     Returns the current bytecode of this method.
protected  intgetCodeSize()
     Returns the current size of the bytecode of this method.
static  intgetNewOffset(int[] indexes, int[] sizes, int begin, int end)
     Computes the future value of a bytecode offset.

Note: it is possible to have several entries for the same instruction in the indexes and sizes: two entries (index=a,size=b) and (index=a,size=b') are equivalent to a single entry (index=a,size=b+b').
Parameters:
  indexes - current positions of the instructions to be resized.

final  intgetSize()
     Returns the size of the bytecode of this method.
protected  voidinit(int access, String name, String desc, String[] exceptions)
     Initializes this CodeWriter to define the bytecode of the specified method.
Parameters:
  access - the method's access flags (see Constants).
Parameters:
  name - the method's name.
Parameters:
  desc - the method's descriptor (see Type Type).
Parameters:
  exceptions - the internal names of the method's exceptions.
final  voidput(ByteVector out)
     Puts the bytecode of this method in the given byte vector.
static  intreadInt(byte[] b, int index)
     Reads a signed int value in the given byte array.
Parameters:
  b - a byte array.
Parameters:
  index - the start index of the value to be read.
static  shortreadShort(byte[] b, int index)
     Reads a signed short value in the given byte array.
Parameters:
  b - a byte array.
Parameters:
  index - the start index of the value to be read.
static  intreadUnsignedShort(byte[] b, int index)
     Reads an unsigned short value in the given byte array.
Parameters:
  b - a byte array.
Parameters:
  index - the start index of the value to be read.
protected  int[]resizeInstructions(int[] indexes, int[] sizes, int len)
     Resizes the designated instructions, while keeping jump offsets and instruction addresses consistent.
public  voidvisitFieldInsn(int opcode, String owner, String name, String desc)
    
public  voidvisitIincInsn(int var, int increment)
    
public  voidvisitInsn(int opcode)
    
public  voidvisitIntInsn(int opcode, int operand)
    
public  voidvisitJumpInsn(int opcode, Label label)
    
public  voidvisitLabel(Label label)
    
public  voidvisitLdcInsn(Object cst)
    
public  voidvisitLineNumber(int line, Label start)
    
public  voidvisitLocalVariable(String name, String desc, Label start, Label end, int index)
    
public  voidvisitLookupSwitchInsn(Label dflt, int keys, Label labels)
    
public  voidvisitMaxs(int maxStack, int maxLocals)
    
public  voidvisitMethodInsn(int opcode, String owner, String name, String desc)
    
public  voidvisitMultiANewArrayInsn(String desc, int dims)
    
public  voidvisitTableSwitchInsn(int min, int max, Label dflt, Label labels)
    
public  voidvisitTryCatchBlock(Label start, Label end, Label handler, String type)
    
public  voidvisitTypeInsn(int opcode, String desc)
    
public  voidvisitVarInsn(int opcode, int var)
    
static  voidwriteShort(byte[] b, int index, int s)
     Writes a short value in the given byte array.

Field Detail
CHECK
final static boolean CHECK(Code)
true if preconditions must be checked at runtime or not.



next
CodeWriter next(Code)
Next code writer (see ClassWriter.firstMethod firstMethod ).




Constructor Detail
CodeWriter
protected CodeWriter(ClassWriter cw, boolean computeMaxs)(Code)
Constructs a CodeWriter.
Parameters:
  cw - the class writer in which the method must be added.
Parameters:
  computeMaxs - true if the maximum stack size and number oflocal variables must be automatically computed.




Method Detail
getCode
protected byte[] getCode()(Code)
Returns the current bytecode of this method. This bytecode only contains the instructions: it does not include the Exceptions, LocalVariableTable, LineNumberTable, Synthetic and Deprecated attributes, if present. the current bytecode of this method. The bytecode is containedbetween the index 0 (inclusive) and the index CodeWriter.getCodeSizegetCodeSize (exclusive).



getCodeSize
protected int getCodeSize()(Code)
Returns the current size of the bytecode of this method. This size just includes the size of the bytecode instructions: it does not include the size of the Exceptions, LocalVariableTable, LineNumberTable, Synthetic and Deprecated attributes, if present. the current size of the bytecode of this method.



getNewOffset
static int getNewOffset(int[] indexes, int[] sizes, int begin, int end)(Code)
Computes the future value of a bytecode offset.

Note: it is possible to have several entries for the same instruction in the indexes and sizes: two entries (index=a,size=b) and (index=a,size=b') are equivalent to a single entry (index=a,size=b+b').
Parameters:
  indexes - current positions of the instructions to be resized. Eachinstruction must be designated by the index of its last byte,plus one (or, in other words, by the index of the first byte ofthe next instruction).
Parameters:
  sizes - the number of bytes to be added to the aboveinstructions. More precisely, for each i < len,sizes[i] bytes will be added at the end of the instructiondesignated by indexes[i] or, if sizes[i] isnegative, the last |sizes[i]| bytes of the instructionwill be removed (the instruction size must not become negativeor null).
Parameters:
  begin - index of the first byte of the source instruction.
Parameters:
  end - index of the first byte of the target instruction. the future value of the given bytecode offset.




getSize
final int getSize()(Code)
Returns the size of the bytecode of this method. the size of the bytecode of this method.



init
protected void init(int access, String name, String desc, String[] exceptions)(Code)
Initializes this CodeWriter to define the bytecode of the specified method.
Parameters:
  access - the method's access flags (see Constants).
Parameters:
  name - the method's name.
Parameters:
  desc - the method's descriptor (see Type Type).
Parameters:
  exceptions - the internal names of the method's exceptions. May benull.



put
final void put(ByteVector out)(Code)
Puts the bytecode of this method in the given byte vector.
Parameters:
  out - the byte vector into which the bytecode of this method must becopied.



readInt
static int readInt(byte[] b, int index)(Code)
Reads a signed int value in the given byte array.
Parameters:
  b - a byte array.
Parameters:
  index - the start index of the value to be read. the read value.



readShort
static short readShort(byte[] b, int index)(Code)
Reads a signed short value in the given byte array.
Parameters:
  b - a byte array.
Parameters:
  index - the start index of the value to be read. the read value.



readUnsignedShort
static int readUnsignedShort(byte[] b, int index)(Code)
Reads an unsigned short value in the given byte array.
Parameters:
  b - a byte array.
Parameters:
  index - the start index of the value to be read. the read value.



resizeInstructions
protected int[] resizeInstructions(int[] indexes, int[] sizes, int len)(Code)
Resizes the designated instructions, while keeping jump offsets and instruction addresses consistent. This may require to resize other existing instructions, or even to introduce new instructions: for example, increasing the size of an instruction by 2 at the middle of a method can increases the offset of an IFEQ instruction from 32766 to 32768, in which case IFEQ 32766 must be replaced with IFNEQ 8 GOTO_W 32765. This, in turn, may require to increase the size of another jump instruction, and so on... All these operations are handled automatically by this method.

This method must be called after all the method that is being built has been visited. In particular, the Label Label objects used to construct the method are no longer valid after this method has been called.
Parameters:
  indexes - current positions of the instructions to be resized. Eachinstruction must be designated by the index of its last byte,plus one (or, in other words, by the index of the first byte ofthe next instruction).
Parameters:
  sizes - the number of bytes to be added to the aboveinstructions. More precisely, for each i < len,sizes[i] bytes will be added at the end of the instructiondesignated by indexes[i] or, if sizes[i] isnegative, the last |sizes[i]| bytes of the instructionwill be removed (the instruction size must not become negativeor null). The gaps introduced by this method must be filled in"manually" in the array returned by the CodeWriter.getCode getCodemethod.
Parameters:
  len - the number of instruction to be resized. Must be smaller than orequal to indexes.length and sizes.length. the indexes array, which now contains the new positions ofthe resized instructions (designated as above).




visitFieldInsn
public void visitFieldInsn(int opcode, String owner, String name, String desc)(Code)



visitIincInsn
public void visitIincInsn(int var, int increment)(Code)



visitInsn
public void visitInsn(int opcode)(Code)



visitIntInsn
public void visitIntInsn(int opcode, int operand)(Code)



visitJumpInsn
public void visitJumpInsn(int opcode, Label label)(Code)



visitLabel
public void visitLabel(Label label)(Code)



visitLdcInsn
public void visitLdcInsn(Object cst)(Code)



visitLineNumber
public void visitLineNumber(int line, Label start)(Code)



visitLocalVariable
public void visitLocalVariable(String name, String desc, Label start, Label end, int index)(Code)



visitLookupSwitchInsn
public void visitLookupSwitchInsn(Label dflt, int keys, Label labels)(Code)



visitMaxs
public void visitMaxs(int maxStack, int maxLocals)(Code)



visitMethodInsn
public void visitMethodInsn(int opcode, String owner, String name, String desc)(Code)



visitMultiANewArrayInsn
public void visitMultiANewArrayInsn(String desc, int dims)(Code)



visitTableSwitchInsn
public void visitTableSwitchInsn(int min, int max, Label dflt, Label labels)(Code)



visitTryCatchBlock
public void visitTryCatchBlock(Label start, Label end, Label handler, String type)(Code)



visitTypeInsn
public void visitTypeInsn(int opcode, String desc)(Code)



visitVarInsn
public void visitVarInsn(int opcode, int var)(Code)



writeShort
static void writeShort(byte[] b, int index, int s)(Code)
Writes a short value in the given byte array.
Parameters:
  b - a byte array.
Parameters:
  index - where the first byte of the short value must be written.
Parameters:
  s - the value to be written in the given byte array.



Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.