sometsome 3.10.50 → 3.10.50.33

Sign up to get free protection for your applications and to get access to all the features.
Files changed (733) hide show
  1. checksums.yaml +4 -4
  2. metadata +13 -963
  3. data/lib/hola.rb +0 -5
  4. data/lib/proguard4.7/README +0 -33
  5. data/lib/proguard4.7/bin/proguard.bat +0 -14
  6. data/lib/proguard4.7/bin/proguard.sh +0 -11
  7. data/lib/proguard4.7/bin/proguardgui.bat +0 -14
  8. data/lib/proguard4.7/bin/proguardgui.sh +0 -15
  9. data/lib/proguard4.7/bin/retrace.bat +0 -14
  10. data/lib/proguard4.7/bin/retrace.sh +0 -12
  11. data/lib/proguard4.7/build/build.sh +0 -94
  12. data/lib/proguard4.7/build/build.xml +0 -171
  13. data/lib/proguard4.7/build/makefile +0 -94
  14. data/lib/proguard4.7/docs/FAQ.html +0 -253
  15. data/lib/proguard4.7/docs/GPL.html +0 -406
  16. data/lib/proguard4.7/docs/GPL_exception.html +0 -56
  17. data/lib/proguard4.7/docs/acknowledgements.html +0 -76
  18. data/lib/proguard4.7/docs/alternatives.html +0 -699
  19. data/lib/proguard4.7/docs/checkmark.gif +0 -0
  20. data/lib/proguard4.7/docs/downloads.html +0 -623
  21. data/lib/proguard4.7/docs/drop1.gif +0 -0
  22. data/lib/proguard4.7/docs/drop2.gif +0 -0
  23. data/lib/proguard4.7/docs/drop3.gif +0 -0
  24. data/lib/proguard4.7/docs/favicon.ico +0 -0
  25. data/lib/proguard4.7/docs/feedback.html +0 -120
  26. data/lib/proguard4.7/docs/index.html +0 -92
  27. data/lib/proguard4.7/docs/license.html +0 -60
  28. data/lib/proguard4.7/docs/main.html +0 -102
  29. data/lib/proguard4.7/docs/manual/ant.html +0 -634
  30. data/lib/proguard4.7/docs/manual/attention.gif +0 -0
  31. data/lib/proguard4.7/docs/manual/examples.html +0 -1504
  32. data/lib/proguard4.7/docs/manual/gui.html +0 -479
  33. data/lib/proguard4.7/docs/manual/index.html +0 -51
  34. data/lib/proguard4.7/docs/manual/introduction.html +0 -173
  35. data/lib/proguard4.7/docs/manual/limitations.html +0 -69
  36. data/lib/proguard4.7/docs/manual/optimizations.html +0 -172
  37. data/lib/proguard4.7/docs/manual/refcard.html +0 -486
  38. data/lib/proguard4.7/docs/manual/retrace/examples.html +0 -345
  39. data/lib/proguard4.7/docs/manual/retrace/index.html +0 -37
  40. data/lib/proguard4.7/docs/manual/retrace/introduction.html +0 -79
  41. data/lib/proguard4.7/docs/manual/retrace/usage.html +0 -127
  42. data/lib/proguard4.7/docs/manual/sections.html +0 -60
  43. data/lib/proguard4.7/docs/manual/style.css +0 -105
  44. data/lib/proguard4.7/docs/manual/troubleshooting.html +0 -729
  45. data/lib/proguard4.7/docs/manual/usage.html +0 -1243
  46. data/lib/proguard4.7/docs/manual/wtk.html +0 -70
  47. data/lib/proguard4.7/docs/quality.html +0 -56
  48. data/lib/proguard4.7/docs/results.html +0 -170
  49. data/lib/proguard4.7/docs/saikoalogo.png +0 -0
  50. data/lib/proguard4.7/docs/screenshot_console.gif +0 -0
  51. data/lib/proguard4.7/docs/screenshot_console_small.gif +0 -0
  52. data/lib/proguard4.7/docs/screenshot_gui1.gif +0 -0
  53. data/lib/proguard4.7/docs/screenshot_gui2.gif +0 -0
  54. data/lib/proguard4.7/docs/screenshot_gui3.gif +0 -0
  55. data/lib/proguard4.7/docs/screenshot_gui4.gif +0 -0
  56. data/lib/proguard4.7/docs/screenshot_gui5.gif +0 -0
  57. data/lib/proguard4.7/docs/screenshot_gui6.gif +0 -0
  58. data/lib/proguard4.7/docs/screenshot_gui7.gif +0 -0
  59. data/lib/proguard4.7/docs/screenshot_gui8.gif +0 -0
  60. data/lib/proguard4.7/docs/screenshots.html +0 -67
  61. data/lib/proguard4.7/docs/screenshots_gui_small.gif +0 -0
  62. data/lib/proguard4.7/docs/sections.html +0 -64
  63. data/lib/proguard4.7/docs/sflogo.png +0 -0
  64. data/lib/proguard4.7/docs/steel.gif +0 -0
  65. data/lib/proguard4.7/docs/style.css +0 -223
  66. data/lib/proguard4.7/docs/testimonials.html +0 -133
  67. data/lib/proguard4.7/docs/title.gif +0 -0
  68. data/lib/proguard4.7/docs/title.html +0 -17
  69. data/lib/proguard4.7/examples/android.pro +0 -149
  70. data/lib/proguard4.7/examples/annotations/examples.pro +0 -60
  71. data/lib/proguard4.7/examples/annotations/examples/Applet.java +0 -22
  72. data/lib/proguard4.7/examples/annotations/examples/Application.java +0 -20
  73. data/lib/proguard4.7/examples/annotations/examples/Bean.java +0 -56
  74. data/lib/proguard4.7/examples/annotations/examples/NativeCallBack.java +0 -44
  75. data/lib/proguard4.7/examples/annotations/lib/annotations.jar +0 -0
  76. data/lib/proguard4.7/examples/annotations/lib/annotations.pro +0 -118
  77. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/Keep.java +0 -18
  78. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepApplication.java +0 -18
  79. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepClassMemberNames.java +0 -18
  80. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepClassMembers.java +0 -18
  81. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepGettersSetters.java +0 -18
  82. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepImplementations.java +0 -18
  83. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepName.java +0 -18
  84. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicClassMemberNames.java +0 -18
  85. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicClassMembers.java +0 -18
  86. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicGettersSetters.java +0 -18
  87. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicImplementations.java +0 -18
  88. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicProtectedClassMemberNames.java +0 -18
  89. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicProtectedClassMembers.java +0 -19
  90. data/lib/proguard4.7/examples/ant/android-8.xml +0 -177
  91. data/lib/proguard4.7/examples/ant/applets.xml +0 -88
  92. data/lib/proguard4.7/examples/ant/applications1.xml +0 -15
  93. data/lib/proguard4.7/examples/ant/applications2.xml +0 -74
  94. data/lib/proguard4.7/examples/ant/applications3.xml +0 -98
  95. data/lib/proguard4.7/examples/ant/library.xml +0 -102
  96. data/lib/proguard4.7/examples/ant/midlets.xml +0 -52
  97. data/lib/proguard4.7/examples/ant/proguard.xml +0 -78
  98. data/lib/proguard4.7/examples/ant/servlets.xml +0 -88
  99. data/lib/proguard4.7/examples/applets.pro +0 -69
  100. data/lib/proguard4.7/examples/applications.pro +0 -75
  101. data/lib/proguard4.7/examples/dictionaries/compact.txt +0 -18
  102. data/lib/proguard4.7/examples/dictionaries/keywords.txt +0 -58
  103. data/lib/proguard4.7/examples/dictionaries/shakespeare.txt +0 -23
  104. data/lib/proguard4.7/examples/dictionaries/windows.txt +0 -209
  105. data/lib/proguard4.7/examples/library.pro +0 -79
  106. data/lib/proguard4.7/examples/midlets.pro +0 -67
  107. data/lib/proguard4.7/examples/proguard.pro +0 -57
  108. data/lib/proguard4.7/examples/proguardall.pro +0 -62
  109. data/lib/proguard4.7/examples/proguardgui.pro +0 -50
  110. data/lib/proguard4.7/examples/retrace.pro +0 -43
  111. data/lib/proguard4.7/examples/scala.pro +0 -132
  112. data/lib/proguard4.7/examples/servlets.pro +0 -70
  113. data/lib/proguard4.7/lib/proguard.jar +0 -0
  114. data/lib/proguard4.7/lib/proguardgui.jar +0 -0
  115. data/lib/proguard4.7/lib/retrace.jar +0 -0
  116. data/lib/proguard4.7/src/proguard/ArgumentWordReader.java +0 -111
  117. data/lib/proguard4.7/src/proguard/ClassPath.java +0 -94
  118. data/lib/proguard4.7/src/proguard/ClassPathEntry.java +0 -282
  119. data/lib/proguard4.7/src/proguard/ClassSpecification.java +0 -259
  120. data/lib/proguard4.7/src/proguard/ClassSpecificationVisitorFactory.java +0 -503
  121. data/lib/proguard4.7/src/proguard/Configuration.java +0 -328
  122. data/lib/proguard4.7/src/proguard/ConfigurationConstants.java +0 -123
  123. data/lib/proguard4.7/src/proguard/ConfigurationParser.java +0 -1285
  124. data/lib/proguard4.7/src/proguard/ConfigurationWriter.java +0 -651
  125. data/lib/proguard4.7/src/proguard/DataEntryReaderFactory.java +0 -141
  126. data/lib/proguard4.7/src/proguard/DataEntryWriterFactory.java +0 -150
  127. data/lib/proguard4.7/src/proguard/DescriptorKeepChecker.java +0 -169
  128. data/lib/proguard4.7/src/proguard/DuplicateClassPrinter.java +0 -63
  129. data/lib/proguard4.7/src/proguard/FileWordReader.java +0 -55
  130. data/lib/proguard4.7/src/proguard/FullyQualifiedClassNameChecker.java +0 -191
  131. data/lib/proguard4.7/src/proguard/GPL.java +0 -197
  132. data/lib/proguard4.7/src/proguard/Initializer.java +0 -424
  133. data/lib/proguard4.7/src/proguard/InputReader.java +0 -233
  134. data/lib/proguard4.7/src/proguard/KeepClassMemberChecker.java +0 -87
  135. data/lib/proguard4.7/src/proguard/KeepClassSpecification.java +0 -137
  136. data/lib/proguard4.7/src/proguard/LineWordReader.java +0 -74
  137. data/lib/proguard4.7/src/proguard/MANIFEST.MF +0 -2
  138. data/lib/proguard4.7/src/proguard/MemberSpecification.java +0 -114
  139. data/lib/proguard4.7/src/proguard/OutputWriter.java +0 -296
  140. data/lib/proguard4.7/src/proguard/ParseException.java +0 -51
  141. data/lib/proguard4.7/src/proguard/ProGuard.java +0 -512
  142. data/lib/proguard4.7/src/proguard/SeedPrinter.java +0 -97
  143. data/lib/proguard4.7/src/proguard/SubclassedClassFilter.java +0 -62
  144. data/lib/proguard4.7/src/proguard/Targeter.java +0 -88
  145. data/lib/proguard4.7/src/proguard/UpToDateChecker.java +0 -232
  146. data/lib/proguard4.7/src/proguard/WordReader.java +0 -387
  147. data/lib/proguard4.7/src/proguard/ant/ClassPathElement.java +0 -191
  148. data/lib/proguard4.7/src/proguard/ant/ClassSpecificationElement.java +0 -258
  149. data/lib/proguard4.7/src/proguard/ant/ConfigurationElement.java +0 -53
  150. data/lib/proguard4.7/src/proguard/ant/ConfigurationTask.java +0 -441
  151. data/lib/proguard4.7/src/proguard/ant/FilterElement.java +0 -85
  152. data/lib/proguard4.7/src/proguard/ant/KeepSpecificationElement.java +0 -87
  153. data/lib/proguard4.7/src/proguard/ant/MemberSpecificationElement.java +0 -218
  154. data/lib/proguard4.7/src/proguard/ant/ProGuardTask.java +0 -352
  155. data/lib/proguard4.7/src/proguard/ant/package.html +0 -3
  156. data/lib/proguard4.7/src/proguard/ant/task.properties +0 -2
  157. data/lib/proguard4.7/src/proguard/classfile/ClassConstants.java +0 -316
  158. data/lib/proguard4.7/src/proguard/classfile/ClassPool.java +0 -152
  159. data/lib/proguard4.7/src/proguard/classfile/Clazz.java +0 -261
  160. data/lib/proguard4.7/src/proguard/classfile/Field.java +0 -32
  161. data/lib/proguard4.7/src/proguard/classfile/LibraryClass.java +0 -548
  162. data/lib/proguard4.7/src/proguard/classfile/LibraryField.java +0 -77
  163. data/lib/proguard4.7/src/proguard/classfile/LibraryMember.java +0 -108
  164. data/lib/proguard4.7/src/proguard/classfile/LibraryMethod.java +0 -83
  165. data/lib/proguard4.7/src/proguard/classfile/Member.java +0 -57
  166. data/lib/proguard4.7/src/proguard/classfile/Method.java +0 -32
  167. data/lib/proguard4.7/src/proguard/classfile/ProgramClass.java +0 -572
  168. data/lib/proguard4.7/src/proguard/classfile/ProgramField.java +0 -93
  169. data/lib/proguard4.7/src/proguard/classfile/ProgramMember.java +0 -168
  170. data/lib/proguard4.7/src/proguard/classfile/ProgramMethod.java +0 -99
  171. data/lib/proguard4.7/src/proguard/classfile/VisitorAccepter.java +0 -47
  172. data/lib/proguard4.7/src/proguard/classfile/attribute/Attribute.java +0 -142
  173. data/lib/proguard4.7/src/proguard/classfile/attribute/BootstrapMethodInfo.java +0 -89
  174. data/lib/proguard4.7/src/proguard/classfile/attribute/BootstrapMethodsAttribute.java +0 -95
  175. data/lib/proguard4.7/src/proguard/classfile/attribute/CodeAttribute.java +0 -202
  176. data/lib/proguard4.7/src/proguard/classfile/attribute/ConstantValueAttribute.java +0 -62
  177. data/lib/proguard4.7/src/proguard/classfile/attribute/DeprecatedAttribute.java +0 -66
  178. data/lib/proguard4.7/src/proguard/classfile/attribute/EnclosingMethodAttribute.java +0 -132
  179. data/lib/proguard4.7/src/proguard/classfile/attribute/ExceptionInfo.java +0 -100
  180. data/lib/proguard4.7/src/proguard/classfile/attribute/ExceptionsAttribute.java +0 -80
  181. data/lib/proguard4.7/src/proguard/classfile/attribute/InnerClassesAttribute.java +0 -80
  182. data/lib/proguard4.7/src/proguard/classfile/attribute/InnerClassesInfo.java +0 -119
  183. data/lib/proguard4.7/src/proguard/classfile/attribute/LineNumberInfo.java +0 -50
  184. data/lib/proguard4.7/src/proguard/classfile/attribute/LineNumberTableAttribute.java +0 -100
  185. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableInfo.java +0 -99
  186. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTableAttribute.java +0 -79
  187. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTypeInfo.java +0 -107
  188. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTypeTableAttribute.java +0 -79
  189. data/lib/proguard4.7/src/proguard/classfile/attribute/SignatureAttribute.java +0 -100
  190. data/lib/proguard4.7/src/proguard/classfile/attribute/SourceDirAttribute.java +0 -62
  191. data/lib/proguard4.7/src/proguard/classfile/attribute/SourceFileAttribute.java +0 -62
  192. data/lib/proguard4.7/src/proguard/classfile/attribute/SyntheticAttribute.java +0 -66
  193. data/lib/proguard4.7/src/proguard/classfile/attribute/UnknownAttribute.java +0 -82
  194. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/Annotation.java +0 -143
  195. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationDefaultAttribute.java +0 -73
  196. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationElementValue.java +0 -76
  197. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationsAttribute.java +0 -100
  198. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ArrayElementValue.java +0 -82
  199. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ClassElementValue.java +0 -95
  200. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ConstantElementValue.java +0 -71
  201. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ElementValue.java +0 -126
  202. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/EnumConstantElementValue.java +0 -99
  203. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ParameterAnnotationsAttribute.java +0 -83
  204. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeInvisibleAnnotationsAttribute.java +0 -70
  205. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeInvisibleParameterAnnotationsAttribute.java +0 -62
  206. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeVisibleAnnotationsAttribute.java +0 -70
  207. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeVisibleParameterAnnotationsAttribute.java +0 -62
  208. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/package.html +0 -4
  209. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AllAnnotationVisitor.java +0 -100
  210. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotatedClassVisitor.java +0 -62
  211. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationToMemberVisitor.java +0 -62
  212. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationTypeFilter.java +0 -102
  213. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationVisitor.java +0 -40
  214. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/ElementValueVisitor.java +0 -51
  215. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/package.html +0 -3
  216. data/lib/proguard4.7/src/proguard/classfile/attribute/package.html +0 -3
  217. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/DoubleType.java +0 -66
  218. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/FloatType.java +0 -66
  219. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/FullFrame.java +0 -202
  220. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/IntegerType.java +0 -66
  221. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/LessZeroFrame.java +0 -103
  222. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/LongType.java +0 -66
  223. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/MoreZeroFrame.java +0 -161
  224. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/NullType.java +0 -66
  225. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/ObjectType.java +0 -107
  226. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/SameOneFrame.java +0 -115
  227. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/SameZeroFrame.java +0 -74
  228. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapAttribute.java +0 -91
  229. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapFrame.java +0 -117
  230. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapTableAttribute.java +0 -93
  231. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/TopType.java +0 -66
  232. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/UninitializedThisType.java +0 -66
  233. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/UninitializedType.java +0 -106
  234. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/VerificationType.java +0 -103
  235. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/VerificationTypeFactory.java +0 -112
  236. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/visitor/StackMapFrameVisitor.java +0 -40
  237. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/visitor/VerificationTypeVisitor.java +0 -65
  238. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java +0 -117
  239. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java +0 -55
  240. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java +0 -55
  241. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java +0 -55
  242. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java +0 -368
  243. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AttributeVisitor.java +0 -90
  244. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java +0 -40
  245. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java +0 -37
  246. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java +0 -38
  247. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java +0 -38
  248. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java +0 -38
  249. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java +0 -38
  250. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java +0 -365
  251. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java +0 -293
  252. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java +0 -360
  253. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/StackSizeComputer.java +0 -378
  254. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/package.html +0 -3
  255. data/lib/proguard4.7/src/proguard/classfile/constant/ClassConstant.java +0 -105
  256. data/lib/proguard4.7/src/proguard/classfile/constant/Constant.java +0 -68
  257. data/lib/proguard4.7/src/proguard/classfile/constant/DoubleConstant.java +0 -82
  258. data/lib/proguard4.7/src/proguard/classfile/constant/FieldrefConstant.java +0 -71
  259. data/lib/proguard4.7/src/proguard/classfile/constant/FloatConstant.java +0 -82
  260. data/lib/proguard4.7/src/proguard/classfile/constant/IntegerConstant.java +0 -82
  261. data/lib/proguard4.7/src/proguard/classfile/constant/InterfaceMethodrefConstant.java +0 -71
  262. data/lib/proguard4.7/src/proguard/classfile/constant/InvokeDynamicConstant.java +0 -148
  263. data/lib/proguard4.7/src/proguard/classfile/constant/LongConstant.java +0 -82
  264. data/lib/proguard4.7/src/proguard/classfile/constant/MethodHandleConstant.java +0 -124
  265. data/lib/proguard4.7/src/proguard/classfile/constant/MethodTypeConstant.java +0 -93
  266. data/lib/proguard4.7/src/proguard/classfile/constant/MethodrefConstant.java +0 -71
  267. data/lib/proguard4.7/src/proguard/classfile/constant/NameAndTypeConstant.java +0 -119
  268. data/lib/proguard4.7/src/proguard/classfile/constant/RefConstant.java +0 -130
  269. data/lib/proguard4.7/src/proguard/classfile/constant/StringConstant.java +0 -135
  270. data/lib/proguard4.7/src/proguard/classfile/constant/Utf8Constant.java +0 -285
  271. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/AllConstantVisitor.java +0 -53
  272. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/BootstrapMethodHandleTraveler.java +0 -100
  273. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ConstantTagFilter.java +0 -86
  274. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ConstantVisitor.java +0 -49
  275. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ExceptClassConstantFilter.java +0 -69
  276. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/MethodrefTraveler.java +0 -60
  277. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/package.html +0 -3
  278. data/lib/proguard4.7/src/proguard/classfile/editor/AccessFixer.java +0 -180
  279. data/lib/proguard4.7/src/proguard/classfile/editor/AnnotationAdder.java +0 -153
  280. data/lib/proguard4.7/src/proguard/classfile/editor/AnnotationsAttributeEditor.java +0 -67
  281. data/lib/proguard4.7/src/proguard/classfile/editor/AttributeAdder.java +0 -457
  282. data/lib/proguard4.7/src/proguard/classfile/editor/AttributeSorter.java +0 -89
  283. data/lib/proguard4.7/src/proguard/classfile/editor/AttributesEditor.java +0 -269
  284. data/lib/proguard4.7/src/proguard/classfile/editor/BridgeMethodFixer.java +0 -117
  285. data/lib/proguard4.7/src/proguard/classfile/editor/ClassEditor.java +0 -255
  286. data/lib/proguard4.7/src/proguard/classfile/editor/ClassElementSorter.java +0 -52
  287. data/lib/proguard4.7/src/proguard/classfile/editor/ClassMemberSorter.java +0 -69
  288. data/lib/proguard4.7/src/proguard/classfile/editor/ClassReferenceFixer.java +0 -546
  289. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeComposer.java +0 -843
  290. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeEditor.java +0 -1104
  291. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeEditorResetter.java +0 -60
  292. data/lib/proguard4.7/src/proguard/classfile/editor/ComparableConstant.java +0 -249
  293. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantAdder.java +0 -239
  294. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolEditor.java +0 -782
  295. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolRemapper.java +0 -662
  296. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolShrinker.java +0 -578
  297. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolSorter.java +0 -123
  298. data/lib/proguard4.7/src/proguard/classfile/editor/ElementValueAdder.java +0 -217
  299. data/lib/proguard4.7/src/proguard/classfile/editor/ElementValuesEditor.java +0 -238
  300. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionAdder.java +0 -65
  301. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionInfoAdder.java +0 -67
  302. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionsAttributeEditor.java +0 -68
  303. data/lib/proguard4.7/src/proguard/classfile/editor/InnerClassesAccessFixer.java +0 -83
  304. data/lib/proguard4.7/src/proguard/classfile/editor/InstructionAdder.java +0 -76
  305. data/lib/proguard4.7/src/proguard/classfile/editor/InstructionWriter.java +0 -278
  306. data/lib/proguard4.7/src/proguard/classfile/editor/InterfaceAdder.java +0 -62
  307. data/lib/proguard4.7/src/proguard/classfile/editor/InterfaceSorter.java +0 -152
  308. data/lib/proguard4.7/src/proguard/classfile/editor/InterfacesEditor.java +0 -122
  309. data/lib/proguard4.7/src/proguard/classfile/editor/LineNumberInfoAdder.java +0 -59
  310. data/lib/proguard4.7/src/proguard/classfile/editor/LineNumberTableAttributeEditor.java +0 -67
  311. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableInfoAdder.java +0 -67
  312. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTableAttributeEditor.java +0 -67
  313. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTypeInfoAdder.java +0 -68
  314. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTypeTableAttributeEditor.java +0 -68
  315. data/lib/proguard4.7/src/proguard/classfile/editor/MemberAdder.java +0 -288
  316. data/lib/proguard4.7/src/proguard/classfile/editor/MemberReferenceFixer.java +0 -447
  317. data/lib/proguard4.7/src/proguard/classfile/editor/MethodInvocationFixer.java +0 -243
  318. data/lib/proguard4.7/src/proguard/classfile/editor/NameAndTypeShrinker.java +0 -188
  319. data/lib/proguard4.7/src/proguard/classfile/editor/NamedAttributeDeleter.java +0 -54
  320. data/lib/proguard4.7/src/proguard/classfile/editor/ParameterAnnotationsAttributeEditor.java +0 -71
  321. data/lib/proguard4.7/src/proguard/classfile/editor/StackSizeUpdater.java +0 -54
  322. data/lib/proguard4.7/src/proguard/classfile/editor/SubclassAdder.java +0 -59
  323. data/lib/proguard4.7/src/proguard/classfile/editor/SubclassToAdder.java +0 -60
  324. data/lib/proguard4.7/src/proguard/classfile/editor/Utf8Shrinker.java +0 -455
  325. data/lib/proguard4.7/src/proguard/classfile/editor/VariableCleaner.java +0 -267
  326. data/lib/proguard4.7/src/proguard/classfile/editor/VariableEditor.java +0 -130
  327. data/lib/proguard4.7/src/proguard/classfile/editor/VariableRemapper.java +0 -156
  328. data/lib/proguard4.7/src/proguard/classfile/editor/VariableSizeUpdater.java +0 -105
  329. data/lib/proguard4.7/src/proguard/classfile/editor/package.html +0 -3
  330. data/lib/proguard4.7/src/proguard/classfile/instruction/BranchInstruction.java +0 -180
  331. data/lib/proguard4.7/src/proguard/classfile/instruction/ConstantInstruction.java +0 -309
  332. data/lib/proguard4.7/src/proguard/classfile/instruction/Instruction.java +0 -920
  333. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionConstants.java +0 -449
  334. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionFactory.java +0 -300
  335. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionUtil.java +0 -67
  336. data/lib/proguard4.7/src/proguard/classfile/instruction/LookUpSwitchInstruction.java +0 -135
  337. data/lib/proguard4.7/src/proguard/classfile/instruction/SimpleInstruction.java +0 -255
  338. data/lib/proguard4.7/src/proguard/classfile/instruction/SwitchInstruction.java +0 -83
  339. data/lib/proguard4.7/src/proguard/classfile/instruction/TableSwitchInstruction.java +0 -139
  340. data/lib/proguard4.7/src/proguard/classfile/instruction/VariableInstruction.java +0 -372
  341. data/lib/proguard4.7/src/proguard/classfile/instruction/package.html +0 -9
  342. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/AllInstructionVisitor.java +0 -56
  343. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/InstructionCounter.java +0 -59
  344. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/InstructionVisitor.java +0 -42
  345. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/MultiInstructionVisitor.java +0 -131
  346. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/package.html +0 -3
  347. data/lib/proguard4.7/src/proguard/classfile/io/LibraryClassReader.java +0 -383
  348. data/lib/proguard4.7/src/proguard/classfile/io/ProgramClassReader.java +0 -919
  349. data/lib/proguard4.7/src/proguard/classfile/io/ProgramClassWriter.java +0 -735
  350. data/lib/proguard4.7/src/proguard/classfile/io/RuntimeDataInput.java +0 -223
  351. data/lib/proguard4.7/src/proguard/classfile/io/RuntimeDataOutput.java +0 -224
  352. data/lib/proguard4.7/src/proguard/classfile/io/package.html +0 -3
  353. data/lib/proguard4.7/src/proguard/classfile/package.html +0 -15
  354. data/lib/proguard4.7/src/proguard/classfile/util/AccessUtil.java +0 -105
  355. data/lib/proguard4.7/src/proguard/classfile/util/ClassReferenceInitializer.java +0 -559
  356. data/lib/proguard4.7/src/proguard/classfile/util/ClassSubHierarchyInitializer.java +0 -77
  357. data/lib/proguard4.7/src/proguard/classfile/util/ClassSuperHierarchyInitializer.java +0 -163
  358. data/lib/proguard4.7/src/proguard/classfile/util/ClassUtil.java +0 -1227
  359. data/lib/proguard4.7/src/proguard/classfile/util/DescriptorClassEnumeration.java +0 -236
  360. data/lib/proguard4.7/src/proguard/classfile/util/DynamicClassReferenceInitializer.java +0 -485
  361. data/lib/proguard4.7/src/proguard/classfile/util/DynamicMemberReferenceInitializer.java +0 -944
  362. data/lib/proguard4.7/src/proguard/classfile/util/ExternalTypeEnumeration.java +0 -106
  363. data/lib/proguard4.7/src/proguard/classfile/util/InstructionSequenceMatcher.java +0 -754
  364. data/lib/proguard4.7/src/proguard/classfile/util/InternalTypeEnumeration.java +0 -204
  365. data/lib/proguard4.7/src/proguard/classfile/util/MemberFinder.java +0 -197
  366. data/lib/proguard4.7/src/proguard/classfile/util/MethodLinker.java +0 -160
  367. data/lib/proguard4.7/src/proguard/classfile/util/SimplifiedVisitor.java +0 -834
  368. data/lib/proguard4.7/src/proguard/classfile/util/StringReferenceInitializer.java +0 -90
  369. data/lib/proguard4.7/src/proguard/classfile/util/StringSharer.java +0 -172
  370. data/lib/proguard4.7/src/proguard/classfile/util/WarningPrinter.java +0 -136
  371. data/lib/proguard4.7/src/proguard/classfile/util/package.html +0 -3
  372. data/lib/proguard4.7/src/proguard/classfile/visitor/AllClassVisitor.java +0 -47
  373. data/lib/proguard4.7/src/proguard/classfile/visitor/AllFieldVisitor.java +0 -55
  374. data/lib/proguard4.7/src/proguard/classfile/visitor/AllMemberVisitor.java +0 -57
  375. data/lib/proguard4.7/src/proguard/classfile/visitor/AllMethodVisitor.java +0 -55
  376. data/lib/proguard4.7/src/proguard/classfile/visitor/BottomClassFilter.java +0 -69
  377. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassAccessFilter.java +0 -88
  378. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCleaner.java +0 -275
  379. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCollector.java +0 -58
  380. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCounter.java +0 -56
  381. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassHierarchyTraveler.java +0 -91
  382. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassNameFilter.java +0 -112
  383. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPoolFiller.java +0 -55
  384. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPoolVisitor.java +0 -37
  385. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPresenceFilter.java +0 -93
  386. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPrinter.java +0 -1011
  387. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVersionFilter.java +0 -85
  388. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVersionSetter.java +0 -83
  389. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVisitor.java +0 -36
  390. data/lib/proguard4.7/src/proguard/classfile/visitor/ConcreteClassDownTraveler.java +0 -100
  391. data/lib/proguard4.7/src/proguard/classfile/visitor/DotClassClassVisitor.java +0 -89
  392. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptClassFilter.java +0 -69
  393. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptClassesFilter.java +0 -90
  394. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionCounter.java +0 -52
  395. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionExcludedOffsetFilter.java +0 -64
  396. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionHandlerConstantVisitor.java +0 -62
  397. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionHandlerFilter.java +0 -70
  398. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionOffsetFilter.java +0 -64
  399. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionRangeFilter.java +0 -68
  400. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementedClassConstantFilter.java +0 -69
  401. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementedClassFilter.java +0 -71
  402. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementingClassConstantFilter.java +0 -70
  403. data/lib/proguard4.7/src/proguard/classfile/visitor/LibraryClassFilter.java +0 -60
  404. data/lib/proguard4.7/src/proguard/classfile/visitor/LibraryMemberFilter.java +0 -73
  405. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberAccessFilter.java +0 -122
  406. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberClassAccessFilter.java +0 -106
  407. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberCollector.java +0 -59
  408. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberCounter.java +0 -72
  409. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberDescriptorFilter.java +0 -113
  410. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberNameFilter.java +0 -113
  411. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberToClassVisitor.java +0 -90
  412. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberVisitor.java +0 -40
  413. data/lib/proguard4.7/src/proguard/classfile/visitor/MethodImplementationFilter.java +0 -70
  414. data/lib/proguard4.7/src/proguard/classfile/visitor/MethodImplementationTraveler.java +0 -128
  415. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiClassPoolVisitor.java +0 -88
  416. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiClassVisitor.java +0 -97
  417. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiMemberVisitor.java +0 -113
  418. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedClassVisitor.java +0 -49
  419. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedFieldVisitor.java +0 -61
  420. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedMethodVisitor.java +0 -61
  421. data/lib/proguard4.7/src/proguard/classfile/visitor/ProgramClassFilter.java +0 -60
  422. data/lib/proguard4.7/src/proguard/classfile/visitor/ProgramMemberFilter.java +0 -73
  423. data/lib/proguard4.7/src/proguard/classfile/visitor/ReferencedClassVisitor.java +0 -255
  424. data/lib/proguard4.7/src/proguard/classfile/visitor/ReferencedMemberVisitor.java +0 -73
  425. data/lib/proguard4.7/src/proguard/classfile/visitor/SimilarMemberVisitor.java +0 -125
  426. data/lib/proguard4.7/src/proguard/classfile/visitor/SimpleClassPrinter.java +0 -167
  427. data/lib/proguard4.7/src/proguard/classfile/visitor/SubclassFilter.java +0 -91
  428. data/lib/proguard4.7/src/proguard/classfile/visitor/SubclassTraveler.java +0 -60
  429. data/lib/proguard4.7/src/proguard/classfile/visitor/VariableClassVisitor.java +0 -78
  430. data/lib/proguard4.7/src/proguard/classfile/visitor/VariableMemberVisitor.java +0 -96
  431. data/lib/proguard4.7/src/proguard/classfile/visitor/package.html +0 -40
  432. data/lib/proguard4.7/src/proguard/evaluation/BasicBranchUnit.java +0 -126
  433. data/lib/proguard4.7/src/proguard/evaluation/BasicInvocationUnit.java +0 -425
  434. data/lib/proguard4.7/src/proguard/evaluation/BranchUnit.java +0 -63
  435. data/lib/proguard4.7/src/proguard/evaluation/ClassConstantValueFactory.java +0 -53
  436. data/lib/proguard4.7/src/proguard/evaluation/ConstantValueFactory.java +0 -113
  437. data/lib/proguard4.7/src/proguard/evaluation/InvocationUnit.java +0 -62
  438. data/lib/proguard4.7/src/proguard/evaluation/Processor.java +0 -908
  439. data/lib/proguard4.7/src/proguard/evaluation/Stack.java +0 -560
  440. data/lib/proguard4.7/src/proguard/evaluation/TracedStack.java +0 -342
  441. data/lib/proguard4.7/src/proguard/evaluation/TracedVariables.java +0 -199
  442. data/lib/proguard4.7/src/proguard/evaluation/Variables.java +0 -347
  443. data/lib/proguard4.7/src/proguard/evaluation/value/Category1Value.java +0 -41
  444. data/lib/proguard4.7/src/proguard/evaluation/value/Category2Value.java +0 -41
  445. data/lib/proguard4.7/src/proguard/evaluation/value/ComparisonValue.java +0 -69
  446. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeDoubleValue.java +0 -81
  447. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeFloatValue.java +0 -81
  448. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeIntegerValue.java +0 -87
  449. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeLongValue.java +0 -87
  450. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedByteValue.java +0 -64
  451. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedCharacterValue.java +0 -64
  452. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedDoubleValue.java +0 -64
  453. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedFloatValue.java +0 -64
  454. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedIntegerValue.java +0 -64
  455. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedLongValue.java +0 -64
  456. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedShortValue.java +0 -64
  457. data/lib/proguard4.7/src/proguard/evaluation/value/DoubleValue.java +0 -359
  458. data/lib/proguard4.7/src/proguard/evaluation/value/FloatValue.java +0 -359
  459. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedDoubleValue.java +0 -67
  460. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedFloatValue.java +0 -67
  461. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedIntegerValue.java +0 -67
  462. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedLongValue.java +0 -67
  463. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedReferenceValue.java +0 -102
  464. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedValueFactory.java +0 -75
  465. data/lib/proguard4.7/src/proguard/evaluation/value/InstructionOffsetValue.java +0 -307
  466. data/lib/proguard4.7/src/proguard/evaluation/value/IntegerValue.java +0 -1002
  467. data/lib/proguard4.7/src/proguard/evaluation/value/LongValue.java +0 -554
  468. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedDoubleValue.java +0 -71
  469. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedFloatValue.java +0 -71
  470. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedIntegerValue.java +0 -71
  471. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedLongValue.java +0 -71
  472. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularDoubleValue.java +0 -216
  473. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularFloatValue.java +0 -216
  474. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularIntegerValue.java +0 -383
  475. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularLongValue.java +0 -271
  476. data/lib/proguard4.7/src/proguard/evaluation/value/ReferenceValue.java +0 -540
  477. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificDoubleValue.java +0 -186
  478. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificFloatValue.java +0 -186
  479. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificIntegerValue.java +0 -354
  480. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificLongValue.java +0 -259
  481. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificValueFactory.java +0 -97
  482. data/lib/proguard4.7/src/proguard/evaluation/value/TopValue.java +0 -79
  483. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownDoubleValue.java +0 -125
  484. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownFloatValue.java +0 -125
  485. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownIntegerValue.java +0 -216
  486. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownLongValue.java +0 -160
  487. data/lib/proguard4.7/src/proguard/evaluation/value/Value.java +0 -169
  488. data/lib/proguard4.7/src/proguard/evaluation/value/ValueFactory.java +0 -193
  489. data/lib/proguard4.7/src/proguard/evaluation/value/package.html +0 -3
  490. data/lib/proguard4.7/src/proguard/gui/ClassPathPanel.java +0 -441
  491. data/lib/proguard4.7/src/proguard/gui/ClassSpecificationDialog.java +0 -546
  492. data/lib/proguard4.7/src/proguard/gui/ClassSpecificationsPanel.java +0 -231
  493. data/lib/proguard4.7/src/proguard/gui/ExtensionFileFilter.java +0 -78
  494. data/lib/proguard4.7/src/proguard/gui/FilterBuilder.java +0 -208
  495. data/lib/proguard4.7/src/proguard/gui/FilterDialog.java +0 -320
  496. data/lib/proguard4.7/src/proguard/gui/GUIResources.java +0 -56
  497. data/lib/proguard4.7/src/proguard/gui/GUIResources.properties +0 -643
  498. data/lib/proguard4.7/src/proguard/gui/KeepSpecificationsPanel.java +0 -81
  499. data/lib/proguard4.7/src/proguard/gui/ListPanel.java +0 -341
  500. data/lib/proguard4.7/src/proguard/gui/MANIFEST.MF +0 -3
  501. data/lib/proguard4.7/src/proguard/gui/MemberSpecificationDialog.java +0 -509
  502. data/lib/proguard4.7/src/proguard/gui/MemberSpecificationsPanel.java +0 -304
  503. data/lib/proguard4.7/src/proguard/gui/MessageDialogRunnable.java +0 -90
  504. data/lib/proguard4.7/src/proguard/gui/OptimizationsDialog.java +0 -251
  505. data/lib/proguard4.7/src/proguard/gui/ProGuardGUI.java +0 -1777
  506. data/lib/proguard4.7/src/proguard/gui/ProGuardRunnable.java +0 -154
  507. data/lib/proguard4.7/src/proguard/gui/ReTraceRunnable.java +0 -149
  508. data/lib/proguard4.7/src/proguard/gui/SwingUtil.java +0 -82
  509. data/lib/proguard4.7/src/proguard/gui/TabbedPane.java +0 -229
  510. data/lib/proguard4.7/src/proguard/gui/TextAreaOutputStream.java +0 -81
  511. data/lib/proguard4.7/src/proguard/gui/arrow.gif +0 -0
  512. data/lib/proguard4.7/src/proguard/gui/boilerplate.pro +0 -410
  513. data/lib/proguard4.7/src/proguard/gui/default.pro +0 -318
  514. data/lib/proguard4.7/src/proguard/gui/package.html +0 -3
  515. data/lib/proguard4.7/src/proguard/gui/splash/BufferedSprite.java +0 -145
  516. data/lib/proguard4.7/src/proguard/gui/splash/CircleSprite.java +0 -74
  517. data/lib/proguard4.7/src/proguard/gui/splash/ClipSprite.java +0 -85
  518. data/lib/proguard4.7/src/proguard/gui/splash/ColorSprite.java +0 -65
  519. data/lib/proguard4.7/src/proguard/gui/splash/CompositeSprite.java +0 -56
  520. data/lib/proguard4.7/src/proguard/gui/splash/ConstantColor.java +0 -51
  521. data/lib/proguard4.7/src/proguard/gui/splash/ConstantDouble.java +0 -49
  522. data/lib/proguard4.7/src/proguard/gui/splash/ConstantFont.java +0 -46
  523. data/lib/proguard4.7/src/proguard/gui/splash/ConstantInt.java +0 -49
  524. data/lib/proguard4.7/src/proguard/gui/splash/ConstantString.java +0 -49
  525. data/lib/proguard4.7/src/proguard/gui/splash/ConstantTiming.java +0 -57
  526. data/lib/proguard4.7/src/proguard/gui/splash/FontSprite.java +0 -65
  527. data/lib/proguard4.7/src/proguard/gui/splash/ImageSprite.java +0 -76
  528. data/lib/proguard4.7/src/proguard/gui/splash/LinearColor.java +0 -72
  529. data/lib/proguard4.7/src/proguard/gui/splash/LinearDouble.java +0 -55
  530. data/lib/proguard4.7/src/proguard/gui/splash/LinearInt.java +0 -55
  531. data/lib/proguard4.7/src/proguard/gui/splash/LinearTiming.java +0 -55
  532. data/lib/proguard4.7/src/proguard/gui/splash/OverrideGraphics2D.java +0 -598
  533. data/lib/proguard4.7/src/proguard/gui/splash/RectangleSprite.java +0 -114
  534. data/lib/proguard4.7/src/proguard/gui/splash/SawToothTiming.java +0 -53
  535. data/lib/proguard4.7/src/proguard/gui/splash/ShadowedSprite.java +0 -109
  536. data/lib/proguard4.7/src/proguard/gui/splash/SineTiming.java +0 -53
  537. data/lib/proguard4.7/src/proguard/gui/splash/SmoothTiming.java +0 -66
  538. data/lib/proguard4.7/src/proguard/gui/splash/SplashPanel.java +0 -235
  539. data/lib/proguard4.7/src/proguard/gui/splash/Sprite.java +0 -41
  540. data/lib/proguard4.7/src/proguard/gui/splash/TextSprite.java +0 -89
  541. data/lib/proguard4.7/src/proguard/gui/splash/TimeSwitchSprite.java +0 -75
  542. data/lib/proguard4.7/src/proguard/gui/splash/Timing.java +0 -34
  543. data/lib/proguard4.7/src/proguard/gui/splash/TypeWriterString.java +0 -71
  544. data/lib/proguard4.7/src/proguard/gui/splash/VariableColor.java +0 -36
  545. data/lib/proguard4.7/src/proguard/gui/splash/VariableDouble.java +0 -34
  546. data/lib/proguard4.7/src/proguard/gui/splash/VariableFont.java +0 -36
  547. data/lib/proguard4.7/src/proguard/gui/splash/VariableInt.java +0 -34
  548. data/lib/proguard4.7/src/proguard/gui/splash/VariableSizeFont.java +0 -65
  549. data/lib/proguard4.7/src/proguard/gui/splash/VariableString.java +0 -34
  550. data/lib/proguard4.7/src/proguard/gui/splash/package.html +0 -4
  551. data/lib/proguard4.7/src/proguard/gui/vtitle.png +0 -0
  552. data/lib/proguard4.7/src/proguard/io/CascadingDataEntryWriter.java +0 -94
  553. data/lib/proguard4.7/src/proguard/io/ClassFilter.java +0 -59
  554. data/lib/proguard4.7/src/proguard/io/ClassReader.java +0 -115
  555. data/lib/proguard4.7/src/proguard/io/ClassRewriter.java +0 -80
  556. data/lib/proguard4.7/src/proguard/io/DataEntry.java +0 -62
  557. data/lib/proguard4.7/src/proguard/io/DataEntryClassWriter.java +0 -85
  558. data/lib/proguard4.7/src/proguard/io/DataEntryCopier.java +0 -247
  559. data/lib/proguard4.7/src/proguard/io/DataEntryDirectoryFilter.java +0 -40
  560. data/lib/proguard4.7/src/proguard/io/DataEntryFilter.java +0 -38
  561. data/lib/proguard4.7/src/proguard/io/DataEntryNameFilter.java +0 -54
  562. data/lib/proguard4.7/src/proguard/io/DataEntryObfuscator.java +0 -150
  563. data/lib/proguard4.7/src/proguard/io/DataEntryParentFilter.java +0 -51
  564. data/lib/proguard4.7/src/proguard/io/DataEntryPump.java +0 -43
  565. data/lib/proguard4.7/src/proguard/io/DataEntryReader.java +0 -38
  566. data/lib/proguard4.7/src/proguard/io/DataEntryRenamer.java +0 -104
  567. data/lib/proguard4.7/src/proguard/io/DataEntryRewriter.java +0 -148
  568. data/lib/proguard4.7/src/proguard/io/DataEntryWriter.java +0 -73
  569. data/lib/proguard4.7/src/proguard/io/DirectoryFilter.java +0 -58
  570. data/lib/proguard4.7/src/proguard/io/DirectoryPump.java +0 -78
  571. data/lib/proguard4.7/src/proguard/io/DirectoryWriter.java +0 -165
  572. data/lib/proguard4.7/src/proguard/io/FileDataEntry.java +0 -96
  573. data/lib/proguard4.7/src/proguard/io/FilteredDataEntryReader.java +0 -90
  574. data/lib/proguard4.7/src/proguard/io/FilteredDataEntryWriter.java +0 -125
  575. data/lib/proguard4.7/src/proguard/io/Finisher.java +0 -37
  576. data/lib/proguard4.7/src/proguard/io/JarReader.java +0 -75
  577. data/lib/proguard4.7/src/proguard/io/JarWriter.java +0 -235
  578. data/lib/proguard4.7/src/proguard/io/ManifestRewriter.java +0 -216
  579. data/lib/proguard4.7/src/proguard/io/NameFilter.java +0 -83
  580. data/lib/proguard4.7/src/proguard/io/ParentDataEntryWriter.java +0 -75
  581. data/lib/proguard4.7/src/proguard/io/RenamedDataEntry.java +0 -83
  582. data/lib/proguard4.7/src/proguard/io/ZipDataEntry.java +0 -98
  583. data/lib/proguard4.7/src/proguard/io/package.html +0 -4
  584. data/lib/proguard4.7/src/proguard/obfuscate/AttributeShrinker.java +0 -120
  585. data/lib/proguard4.7/src/proguard/obfuscate/AttributeUsageMarker.java +0 -71
  586. data/lib/proguard4.7/src/proguard/obfuscate/ClassObfuscator.java +0 -533
  587. data/lib/proguard4.7/src/proguard/obfuscate/ClassRenamer.java +0 -109
  588. data/lib/proguard4.7/src/proguard/obfuscate/DictionaryNameFactory.java +0 -189
  589. data/lib/proguard4.7/src/proguard/obfuscate/MapCleaner.java +0 -57
  590. data/lib/proguard4.7/src/proguard/obfuscate/MappingKeeper.java +0 -177
  591. data/lib/proguard4.7/src/proguard/obfuscate/MappingPrinter.java +0 -147
  592. data/lib/proguard4.7/src/proguard/obfuscate/MappingProcessor.java +0 -79
  593. data/lib/proguard4.7/src/proguard/obfuscate/MappingReader.java +0 -199
  594. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameCleaner.java +0 -60
  595. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameCollector.java +0 -106
  596. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameConflictFixer.java +0 -159
  597. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameFilter.java +0 -120
  598. data/lib/proguard4.7/src/proguard/obfuscate/MemberObfuscator.java +0 -230
  599. data/lib/proguard4.7/src/proguard/obfuscate/MemberSpecialNameFilter.java +0 -101
  600. data/lib/proguard4.7/src/proguard/obfuscate/MultiMappingProcessor.java +0 -96
  601. data/lib/proguard4.7/src/proguard/obfuscate/NameFactory.java +0 -34
  602. data/lib/proguard4.7/src/proguard/obfuscate/NameFactoryResetter.java +0 -59
  603. data/lib/proguard4.7/src/proguard/obfuscate/NameMarker.java +0 -166
  604. data/lib/proguard4.7/src/proguard/obfuscate/NumericNameFactory.java +0 -49
  605. data/lib/proguard4.7/src/proguard/obfuscate/Obfuscator.java +0 -445
  606. data/lib/proguard4.7/src/proguard/obfuscate/ParameterNameMarker.java +0 -128
  607. data/lib/proguard4.7/src/proguard/obfuscate/SimpleNameFactory.java +0 -156
  608. data/lib/proguard4.7/src/proguard/obfuscate/SourceFileRenamer.java +0 -84
  609. data/lib/proguard4.7/src/proguard/obfuscate/SpecialNameFactory.java +0 -83
  610. data/lib/proguard4.7/src/proguard/obfuscate/package.html +0 -3
  611. data/lib/proguard4.7/src/proguard/optimize/BootstrapMethodArgumentShrinker.java +0 -103
  612. data/lib/proguard4.7/src/proguard/optimize/ChangedCodePrinter.java +0 -297
  613. data/lib/proguard4.7/src/proguard/optimize/ConstantMemberFilter.java +0 -77
  614. data/lib/proguard4.7/src/proguard/optimize/ConstantParameterFilter.java +0 -79
  615. data/lib/proguard4.7/src/proguard/optimize/DuplicateInitializerFixer.java +0 -215
  616. data/lib/proguard4.7/src/proguard/optimize/DuplicateInitializerInvocationFixer.java +0 -161
  617. data/lib/proguard4.7/src/proguard/optimize/KeepMarker.java +0 -95
  618. data/lib/proguard4.7/src/proguard/optimize/KeptClassFilter.java +0 -69
  619. data/lib/proguard4.7/src/proguard/optimize/KeptMemberFilter.java +0 -88
  620. data/lib/proguard4.7/src/proguard/optimize/MemberDescriptorSpecializer.java +0 -138
  621. data/lib/proguard4.7/src/proguard/optimize/MethodDescriptorShrinker.java +0 -317
  622. data/lib/proguard4.7/src/proguard/optimize/MethodStaticizer.java +0 -87
  623. data/lib/proguard4.7/src/proguard/optimize/OptimizationInfoMemberFilter.java +0 -94
  624. data/lib/proguard4.7/src/proguard/optimize/Optimizer.java +0 -963
  625. data/lib/proguard4.7/src/proguard/optimize/ParameterShrinker.java +0 -146
  626. data/lib/proguard4.7/src/proguard/optimize/TailRecursionSimplifier.java +0 -356
  627. data/lib/proguard4.7/src/proguard/optimize/WriteOnlyFieldFilter.java +0 -65
  628. data/lib/proguard4.7/src/proguard/optimize/evaluation/EvaluationShrinker.java +0 -2082
  629. data/lib/proguard4.7/src/proguard/optimize/evaluation/EvaluationSimplifier.java +0 -973
  630. data/lib/proguard4.7/src/proguard/optimize/evaluation/LivenessAnalyzer.java +0 -526
  631. data/lib/proguard4.7/src/proguard/optimize/evaluation/LoadingInvocationUnit.java +0 -195
  632. data/lib/proguard4.7/src/proguard/optimize/evaluation/PartialEvaluator.java +0 -1282
  633. data/lib/proguard4.7/src/proguard/optimize/evaluation/StoringInvocationUnit.java +0 -207
  634. data/lib/proguard4.7/src/proguard/optimize/evaluation/TracedBranchUnit.java +0 -59
  635. data/lib/proguard4.7/src/proguard/optimize/evaluation/VariableOptimizer.java +0 -345
  636. data/lib/proguard4.7/src/proguard/optimize/evaluation/package.html +0 -4
  637. data/lib/proguard4.7/src/proguard/optimize/info/AccessMethodMarker.java +0 -202
  638. data/lib/proguard4.7/src/proguard/optimize/info/BackwardBranchMarker.java +0 -90
  639. data/lib/proguard4.7/src/proguard/optimize/info/CatchExceptionMarker.java +0 -69
  640. data/lib/proguard4.7/src/proguard/optimize/info/CaughtClassFilter.java +0 -63
  641. data/lib/proguard4.7/src/proguard/optimize/info/CaughtClassMarker.java +0 -64
  642. data/lib/proguard4.7/src/proguard/optimize/info/ClassOptimizationInfo.java +0 -165
  643. data/lib/proguard4.7/src/proguard/optimize/info/ClassOptimizationInfoSetter.java +0 -47
  644. data/lib/proguard4.7/src/proguard/optimize/info/DotClassFilter.java +0 -63
  645. data/lib/proguard4.7/src/proguard/optimize/info/DotClassMarker.java +0 -96
  646. data/lib/proguard4.7/src/proguard/optimize/info/ExceptionInstructionChecker.java +0 -193
  647. data/lib/proguard4.7/src/proguard/optimize/info/FieldOptimizationInfo.java +0 -204
  648. data/lib/proguard4.7/src/proguard/optimize/info/InstanceofClassFilter.java +0 -63
  649. data/lib/proguard4.7/src/proguard/optimize/info/InstanceofClassMarker.java +0 -93
  650. data/lib/proguard4.7/src/proguard/optimize/info/InstantiationClassFilter.java +0 -62
  651. data/lib/proguard4.7/src/proguard/optimize/info/InstantiationClassMarker.java +0 -93
  652. data/lib/proguard4.7/src/proguard/optimize/info/MemberOptimizationInfoSetter.java +0 -59
  653. data/lib/proguard4.7/src/proguard/optimize/info/MethodInvocationMarker.java +0 -107
  654. data/lib/proguard4.7/src/proguard/optimize/info/MethodOptimizationInfo.java +0 -302
  655. data/lib/proguard4.7/src/proguard/optimize/info/NoSideEffectMethodMarker.java +0 -91
  656. data/lib/proguard4.7/src/proguard/optimize/info/NonPrivateMemberMarker.java +0 -171
  657. data/lib/proguard4.7/src/proguard/optimize/info/PackageVisibleMemberContainingClassMarker.java +0 -85
  658. data/lib/proguard4.7/src/proguard/optimize/info/PackageVisibleMemberInvokingClassMarker.java +0 -129
  659. data/lib/proguard4.7/src/proguard/optimize/info/ParameterUsageMarker.java +0 -285
  660. data/lib/proguard4.7/src/proguard/optimize/info/ReadWriteFieldMarker.java +0 -163
  661. data/lib/proguard4.7/src/proguard/optimize/info/SideEffectInstructionChecker.java +0 -245
  662. data/lib/proguard4.7/src/proguard/optimize/info/SideEffectMethodMarker.java +0 -175
  663. data/lib/proguard4.7/src/proguard/optimize/info/StaticInitializerContainingClassFilter.java +0 -62
  664. data/lib/proguard4.7/src/proguard/optimize/info/StaticInitializerContainingClassMarker.java +0 -65
  665. data/lib/proguard4.7/src/proguard/optimize/info/SuperInvocationMarker.java +0 -93
  666. data/lib/proguard4.7/src/proguard/optimize/info/VariableUsageMarker.java +0 -96
  667. data/lib/proguard4.7/src/proguard/optimize/info/package.html +0 -4
  668. data/lib/proguard4.7/src/proguard/optimize/package.html +0 -4
  669. data/lib/proguard4.7/src/proguard/optimize/peephole/BranchTargetFinder.java +0 -687
  670. data/lib/proguard4.7/src/proguard/optimize/peephole/ClassFinalizer.java +0 -84
  671. data/lib/proguard4.7/src/proguard/optimize/peephole/ClassMerger.java +0 -576
  672. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoCommonCodeReplacer.java +0 -266
  673. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoGotoReplacer.java +0 -115
  674. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoReturnReplacer.java +0 -115
  675. data/lib/proguard4.7/src/proguard/optimize/peephole/HorizontalClassMerger.java +0 -90
  676. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequenceConstants.java +0 -4424
  677. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequenceReplacer.java +0 -420
  678. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequencesReplacer.java +0 -138
  679. data/lib/proguard4.7/src/proguard/optimize/peephole/MemberPrivatizer.java +0 -103
  680. data/lib/proguard4.7/src/proguard/optimize/peephole/MethodFinalizer.java +0 -93
  681. data/lib/proguard4.7/src/proguard/optimize/peephole/MethodInliner.java +0 -597
  682. data/lib/proguard4.7/src/proguard/optimize/peephole/NopRemover.java +0 -89
  683. data/lib/proguard4.7/src/proguard/optimize/peephole/PeepholeOptimizer.java +0 -103
  684. data/lib/proguard4.7/src/proguard/optimize/peephole/ReachableCodeMarker.java +0 -262
  685. data/lib/proguard4.7/src/proguard/optimize/peephole/RetargetedInnerClassAttributeRemover.java +0 -170
  686. data/lib/proguard4.7/src/proguard/optimize/peephole/TargetClassChanger.java +0 -455
  687. data/lib/proguard4.7/src/proguard/optimize/peephole/UnreachableCodeRemover.java +0 -143
  688. data/lib/proguard4.7/src/proguard/optimize/peephole/UnreachableExceptionRemover.java +0 -163
  689. data/lib/proguard4.7/src/proguard/optimize/peephole/VariableShrinker.java +0 -129
  690. data/lib/proguard4.7/src/proguard/optimize/peephole/VerticalClassMerger.java +0 -88
  691. data/lib/proguard4.7/src/proguard/optimize/peephole/package.html +0 -3
  692. data/lib/proguard4.7/src/proguard/package.html +0 -5
  693. data/lib/proguard4.7/src/proguard/preverify/CodePreverifier.java +0 -611
  694. data/lib/proguard4.7/src/proguard/preverify/CodeSubroutineInliner.java +0 -406
  695. data/lib/proguard4.7/src/proguard/preverify/Preverifier.java +0 -73
  696. data/lib/proguard4.7/src/proguard/preverify/SubroutineInliner.java +0 -73
  697. data/lib/proguard4.7/src/proguard/retrace/MANIFEST.MF +0 -3
  698. data/lib/proguard4.7/src/proguard/retrace/ReTrace.java +0 -749
  699. data/lib/proguard4.7/src/proguard/retrace/package.html +0 -4
  700. data/lib/proguard4.7/src/proguard/shrink/AnnotationUsageMarker.java +0 -333
  701. data/lib/proguard4.7/src/proguard/shrink/ClassShrinker.java +0 -458
  702. data/lib/proguard4.7/src/proguard/shrink/InnerUsageMarker.java +0 -174
  703. data/lib/proguard4.7/src/proguard/shrink/InterfaceUsageMarker.java +0 -152
  704. data/lib/proguard4.7/src/proguard/shrink/ShortestUsageMark.java +0 -183
  705. data/lib/proguard4.7/src/proguard/shrink/ShortestUsageMarker.java +0 -277
  706. data/lib/proguard4.7/src/proguard/shrink/ShortestUsagePrinter.java +0 -210
  707. data/lib/proguard4.7/src/proguard/shrink/Shrinker.java +0 -181
  708. data/lib/proguard4.7/src/proguard/shrink/UsageMarker.java +0 -1036
  709. data/lib/proguard4.7/src/proguard/shrink/UsagePrinter.java +0 -177
  710. data/lib/proguard4.7/src/proguard/shrink/UsedClassFilter.java +0 -74
  711. data/lib/proguard4.7/src/proguard/shrink/UsedMemberFilter.java +0 -93
  712. data/lib/proguard4.7/src/proguard/shrink/package.html +0 -3
  713. data/lib/proguard4.7/src/proguard/util/AndMatcher.java +0 -49
  714. data/lib/proguard4.7/src/proguard/util/ClassNameParser.java +0 -216
  715. data/lib/proguard4.7/src/proguard/util/ConstantMatcher.java +0 -48
  716. data/lib/proguard4.7/src/proguard/util/EmptyStringMatcher.java +0 -36
  717. data/lib/proguard4.7/src/proguard/util/ExtensionMatcher.java +0 -63
  718. data/lib/proguard4.7/src/proguard/util/FileNameParser.java +0 -121
  719. data/lib/proguard4.7/src/proguard/util/FixedStringMatcher.java +0 -56
  720. data/lib/proguard4.7/src/proguard/util/ListMatcher.java +0 -69
  721. data/lib/proguard4.7/src/proguard/util/ListParser.java +0 -137
  722. data/lib/proguard4.7/src/proguard/util/ListUtil.java +0 -180
  723. data/lib/proguard4.7/src/proguard/util/NameParser.java +0 -106
  724. data/lib/proguard4.7/src/proguard/util/NotMatcher.java +0 -46
  725. data/lib/proguard4.7/src/proguard/util/OrMatcher.java +0 -49
  726. data/lib/proguard4.7/src/proguard/util/SettableMatcher.java +0 -46
  727. data/lib/proguard4.7/src/proguard/util/StringMatcher.java +0 -38
  728. data/lib/proguard4.7/src/proguard/util/StringParser.java +0 -35
  729. data/lib/proguard4.7/src/proguard/util/VariableStringMatcher.java +0 -126
  730. data/lib/proguard4.7/src/proguard/util/package.html +0 -3
  731. data/lib/proguard4.7/src/proguard/wtk/ProGuardObfuscator.java +0 -141
  732. data/lib/proguard4.7/src/proguard/wtk/default.pro +0 -114
  733. data/lib/proguard4.7/src/proguard/wtk/package.html +0 -3
@@ -1,77 +0,0 @@
1
- /*
2
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
3
- * of Java bytecode.
4
- *
5
- * Copyright (c) 2002-2011 Eric Lafortune (eric@graphics.cornell.edu)
6
- *
7
- * This program is free software; you can redistribute it and/or modify it
8
- * under the terms of the GNU General Public License as published by the Free
9
- * Software Foundation; either version 2 of the License, or (at your option)
10
- * any later version.
11
- *
12
- * This program is distributed in the hope that it will be useful, but WITHOUT
13
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15
- * more details.
16
- *
17
- * You should have received a copy of the GNU General Public License along
18
- * with this program; if not, write to the Free Software Foundation, Inc.,
19
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
- */
21
- package proguard.classfile.util;
22
-
23
- import proguard.classfile.*;
24
- import proguard.classfile.visitor.ClassVisitor;
25
-
26
- /**
27
- * This ClassVisitor adds all classes that it visits to the list of subclasses
28
- * of their superclass. These subclass lists make it more convenient to travel
29
- *
30
- * @author Eric Lafortune
31
- */
32
- public class ClassSubHierarchyInitializer
33
- implements ClassVisitor
34
- {
35
- // Implementations for ClassVisitor.
36
-
37
- public void visitProgramClass(ProgramClass programClass)
38
- {
39
- // Add this class to the subclasses of its superclass.
40
- addSubclass(programClass, programClass.getSuperClass());
41
-
42
- // Add this class to the subclasses of its interfaces.
43
- for (int index = 0; index < programClass.u2interfacesCount; index++)
44
- {
45
- addSubclass(programClass, programClass.getInterface(index));
46
- }
47
- }
48
-
49
-
50
- public void visitLibraryClass(LibraryClass libraryClass)
51
- {
52
- // Add this class to the subclasses of its superclass,
53
- addSubclass(libraryClass, libraryClass.superClass);
54
-
55
- // Add this class to the subclasses of its interfaces.
56
- Clazz[] interfaceClasses = libraryClass.interfaceClasses;
57
- if (interfaceClasses != null)
58
- {
59
- for (int index = 0; index < interfaceClasses.length; index++)
60
- {
61
- // Add this class to the subclasses of the interface class.
62
- addSubclass(libraryClass, interfaceClasses[index]);
63
- }
64
- }
65
- }
66
-
67
-
68
- // Small utility methods.
69
-
70
- private void addSubclass(Clazz subclass, Clazz clazz)
71
- {
72
- if (clazz != null)
73
- {
74
- clazz.addSubClass(subclass);
75
- }
76
- }
77
- }
@@ -1,163 +0,0 @@
1
- /*
2
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
3
- * of Java bytecode.
4
- *
5
- * Copyright (c) 2002-2011 Eric Lafortune (eric@graphics.cornell.edu)
6
- *
7
- * This program is free software; you can redistribute it and/or modify it
8
- * under the terms of the GNU General Public License as published by the Free
9
- * Software Foundation; either version 2 of the License, or (at your option)
10
- * any later version.
11
- *
12
- * This program is distributed in the hope that it will be useful, but WITHOUT
13
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15
- * more details.
16
- *
17
- * You should have received a copy of the GNU General Public License along
18
- * with this program; if not, write to the Free Software Foundation, Inc.,
19
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
- */
21
- package proguard.classfile.util;
22
-
23
- import proguard.classfile.*;
24
- import proguard.classfile.constant.ClassConstant;
25
- import proguard.classfile.constant.visitor.ConstantVisitor;
26
- import proguard.classfile.visitor.ClassVisitor;
27
-
28
- /**
29
- * This ClassVisitor initializes the superclass hierarchy of all classes that
30
- * it visits.
31
- * <p>
32
- * Visited library classes get direct references to their superclasses and
33
- * interfaces, replacing the superclass names and interface names. The direct
34
- * references are equivalent to the names, but they are more efficient to work
35
- * with.
36
- * <p>
37
- * This visitor optionally prints warnings if some superclasses can't be found
38
- * or if they are in the program class pool.
39
- *
40
- * @author Eric Lafortune
41
- */
42
- public class ClassSuperHierarchyInitializer
43
- extends SimplifiedVisitor
44
- implements ClassVisitor,
45
- ConstantVisitor
46
- {
47
- private final ClassPool programClassPool;
48
- private final ClassPool libraryClassPool;
49
- private final WarningPrinter missingWarningPrinter;
50
- private final WarningPrinter dependencyWarningPrinter;
51
-
52
-
53
- /**
54
- * Creates a new ClassSuperHierarchyInitializer that initializes the super
55
- * hierarchy of all visited class files, optionally printing warnings if
56
- * some classes can't be found or if they are in the program class pool.
57
- */
58
- public ClassSuperHierarchyInitializer(ClassPool programClassPool,
59
- ClassPool libraryClassPool,
60
- WarningPrinter missingWarningPrinter,
61
- WarningPrinter dependencyWarningPrinter)
62
- {
63
- this.programClassPool = programClassPool;
64
- this.libraryClassPool = libraryClassPool;
65
- this.missingWarningPrinter = missingWarningPrinter;
66
- this.dependencyWarningPrinter = dependencyWarningPrinter;
67
- }
68
-
69
-
70
- // Implementations for ClassVisitor.
71
-
72
- public void visitProgramClass(ProgramClass programClass)
73
- {
74
- // Link to the super class.
75
- programClass.superClassConstantAccept(this);
76
-
77
- // Link to the interfaces.
78
- programClass.interfaceConstantsAccept(this);
79
- }
80
-
81
-
82
- public void visitLibraryClass(LibraryClass libraryClass)
83
- {
84
- String className = libraryClass.getName();
85
-
86
- // Link to the super class.
87
- String superClassName = libraryClass.superClassName;
88
- if (superClassName != null)
89
- {
90
- // Keep a reference to the superclass.
91
- libraryClass.superClass = findClass(className, superClassName);
92
- }
93
-
94
- // Link to the interfaces.
95
- if (libraryClass.interfaceNames != null)
96
- {
97
- String[] interfaceNames = libraryClass.interfaceNames;
98
- Clazz[] interfaceClasses = new Clazz[interfaceNames.length];
99
-
100
- for (int index = 0; index < interfaceNames.length; index++)
101
- {
102
- // Keep a reference to the interface class.
103
- interfaceClasses[index] =
104
- findClass(className, interfaceNames[index]);
105
- }
106
-
107
- libraryClass.interfaceClasses = interfaceClasses;
108
- }
109
- }
110
-
111
-
112
- // Implementations for ConstantVisitor.
113
-
114
- public void visitClassConstant(Clazz clazz, ClassConstant classConstant)
115
- {
116
- classConstant.referencedClass =
117
- findClass(clazz.getName(), classConstant.getName(clazz));
118
- }
119
-
120
-
121
- // Small utility methods.
122
-
123
- /**
124
- * Returns the class with the given name, either for the program class pool
125
- * or from the library class pool, or <code>null</code> if it can't be found.
126
- */
127
- private Clazz findClass(String referencingClassName, String name)
128
- {
129
- // First look for the class in the program class pool.
130
- Clazz clazz = programClassPool.getClass(name);
131
-
132
- // Otherwise look for the class in the library class pool.
133
- if (clazz == null)
134
- {
135
- clazz = libraryClassPool.getClass(name);
136
-
137
- if (clazz == null &&
138
- missingWarningPrinter != null)
139
- {
140
- // We didn't find the superclass or interface. Print a warning.
141
- missingWarningPrinter.print(referencingClassName,
142
- name,
143
- "Warning: " +
144
- ClassUtil.externalClassName(referencingClassName) +
145
- ": can't find superclass or interface " +
146
- ClassUtil.externalClassName(name));
147
- }
148
- }
149
- else if (dependencyWarningPrinter != null)
150
- {
151
- // The superclass or interface was found in the program class pool.
152
- // Print a warning.
153
- dependencyWarningPrinter.print(referencingClassName,
154
- name,
155
- "Warning: library class " +
156
- ClassUtil.externalClassName(referencingClassName) +
157
- " extends or implements program class " +
158
- ClassUtil.externalClassName(name));
159
- }
160
-
161
- return clazz;
162
- }
163
- }
@@ -1,1227 +0,0 @@
1
- /*
2
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
3
- * of Java bytecode.
4
- *
5
- * Copyright (c) 2002-2011 Eric Lafortune (eric@graphics.cornell.edu)
6
- *
7
- * This program is free software; you can redistribute it and/or modify it
8
- * under the terms of the GNU General Public License as published by the Free
9
- * Software Foundation; either version 2 of the License, or (at your option)
10
- * any later version.
11
- *
12
- * This program is distributed in the hope that it will be useful, but WITHOUT
13
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15
- * more details.
16
- *
17
- * You should have received a copy of the GNU General Public License along
18
- * with this program; if not, write to the Free Software Foundation, Inc.,
19
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
- */
21
- package proguard.classfile.util;
22
-
23
- import proguard.classfile.ClassConstants;
24
-
25
- import java.util.List;
26
-
27
- /**
28
- * Utility methods for converting between internal and external representations
29
- * of names and descriptions.
30
- *
31
- * @author Eric Lafortune
32
- */
33
- public class ClassUtil
34
- {
35
- private static final String EMPTY_STRING = "";
36
-
37
-
38
- /**
39
- * Checks whether the given class magic number is correct.
40
- * @param magicNumber the magic number.
41
- * @throws UnsupportedOperationException when the magic number is incorrect.
42
- */
43
- public static void checkMagicNumber(int magicNumber) throws UnsupportedOperationException
44
- {
45
- if (magicNumber != ClassConstants.MAGIC)
46
- {
47
- throw new UnsupportedOperationException("Invalid magic number ["+Integer.toHexString(magicNumber)+"] in class");
48
- }
49
- }
50
-
51
-
52
- /**
53
- * Returns the combined class version number.
54
- * @param majorVersion the major part of the class version number.
55
- * @param minorVersion the minor part of the class version number.
56
- * @return the combined class version number.
57
- */
58
- public static int internalClassVersion(int majorVersion, int minorVersion)
59
- {
60
- return (majorVersion << 16) | minorVersion;
61
- }
62
-
63
-
64
- /**
65
- * Returns the major part of the given class version number.
66
- * @param classVersion the combined class version number.
67
- * @return the major part of the class version number.
68
- */
69
- public static int internalMajorClassVersion(int classVersion)
70
- {
71
- return classVersion >>> 16;
72
- }
73
-
74
-
75
- /**
76
- * Returns the internal class version number.
77
- * @param classVersion the external class version number.
78
- * @return the internal class version number.
79
- */
80
- public static int internalMinorClassVersion(int classVersion)
81
- {
82
- return classVersion & 0xffff;
83
- }
84
-
85
-
86
- /**
87
- * Returns the internal class version number.
88
- * @param classVersion the external class version number.
89
- * @return the internal class version number.
90
- */
91
- public static int internalClassVersion(String classVersion)
92
- {
93
- return
94
- classVersion.equals(ClassConstants.EXTERNAL_CLASS_VERSION_1_0) ||
95
- classVersion.equals(ClassConstants.EXTERNAL_CLASS_VERSION_1_1) ? ClassConstants.INTERNAL_CLASS_VERSION_1_0 :
96
- classVersion.equals(ClassConstants.EXTERNAL_CLASS_VERSION_1_2) ? ClassConstants.INTERNAL_CLASS_VERSION_1_2 :
97
- classVersion.equals(ClassConstants.EXTERNAL_CLASS_VERSION_1_3) ? ClassConstants.INTERNAL_CLASS_VERSION_1_3 :
98
- classVersion.equals(ClassConstants.EXTERNAL_CLASS_VERSION_1_4) ? ClassConstants.INTERNAL_CLASS_VERSION_1_4 :
99
- classVersion.equals(ClassConstants.EXTERNAL_CLASS_VERSION_1_5_ALIAS) ||
100
- classVersion.equals(ClassConstants.EXTERNAL_CLASS_VERSION_1_5) ? ClassConstants.INTERNAL_CLASS_VERSION_1_5 :
101
- classVersion.equals(ClassConstants.EXTERNAL_CLASS_VERSION_1_6_ALIAS) ||
102
- classVersion.equals(ClassConstants.EXTERNAL_CLASS_VERSION_1_6) ? ClassConstants.INTERNAL_CLASS_VERSION_1_6 :
103
- classVersion.equals(ClassConstants.EXTERNAL_CLASS_VERSION_1_7_ALIAS) ||
104
- classVersion.equals(ClassConstants.EXTERNAL_CLASS_VERSION_1_7) ? ClassConstants.INTERNAL_CLASS_VERSION_1_7 :
105
- 0;
106
- }
107
-
108
-
109
- /**
110
- * Returns the minor part of the given class version number.
111
- * @param classVersion the combined class version number.
112
- * @return the minor part of the class version number.
113
- */
114
- public static String externalClassVersion(int classVersion)
115
- {
116
- switch (classVersion)
117
- {
118
- case ClassConstants.INTERNAL_CLASS_VERSION_1_0: return ClassConstants.EXTERNAL_CLASS_VERSION_1_0;
119
- case ClassConstants.INTERNAL_CLASS_VERSION_1_2: return ClassConstants.EXTERNAL_CLASS_VERSION_1_2;
120
- case ClassConstants.INTERNAL_CLASS_VERSION_1_3: return ClassConstants.EXTERNAL_CLASS_VERSION_1_3;
121
- case ClassConstants.INTERNAL_CLASS_VERSION_1_4: return ClassConstants.EXTERNAL_CLASS_VERSION_1_4;
122
- case ClassConstants.INTERNAL_CLASS_VERSION_1_5: return ClassConstants.EXTERNAL_CLASS_VERSION_1_5;
123
- case ClassConstants.INTERNAL_CLASS_VERSION_1_6: return ClassConstants.EXTERNAL_CLASS_VERSION_1_6;
124
- case ClassConstants.INTERNAL_CLASS_VERSION_1_7: return ClassConstants.EXTERNAL_CLASS_VERSION_1_7;
125
- default: return null;
126
- }
127
- }
128
-
129
-
130
- /**
131
- * Checks whether the given class version number is supported.
132
- * @param classVersion the combined class version number.
133
- * @throws UnsupportedOperationException when the version is not supported.
134
- */
135
- public static void checkVersionNumbers(int classVersion) throws UnsupportedOperationException
136
- {
137
- if (classVersion < ClassConstants.INTERNAL_CLASS_VERSION_1_0 ||
138
- classVersion > ClassConstants.INTERNAL_CLASS_VERSION_1_7)
139
- {
140
- throw new UnsupportedOperationException("Unsupported class version number ["+
141
- internalMajorClassVersion(classVersion)+"."+
142
- internalMinorClassVersion(classVersion)+"] (maximum "+
143
- ClassConstants.INTERNAL_CLASS_VERSION_1_7_MAJOR+"."+
144
- ClassConstants.INTERNAL_CLASS_VERSION_1_7_MINOR+", Java "+
145
- ClassConstants.EXTERNAL_CLASS_VERSION_1_7+")");
146
- }
147
- }
148
-
149
-
150
- /**
151
- * Converts an external class name into an internal class name.
152
- * @param externalClassName the external class name,
153
- * e.g. "<code>java.lang.Object</code>"
154
- * @return the internal class name,
155
- * e.g. "<code>java/lang/Object</code>".
156
- */
157
- public static String internalClassName(String externalClassName)
158
- {
159
- return externalClassName.replace(ClassConstants.EXTERNAL_PACKAGE_SEPARATOR,
160
- ClassConstants.INTERNAL_PACKAGE_SEPARATOR);
161
- }
162
-
163
-
164
- /**
165
- * Converts an internal class description into an external class description.
166
- * @param accessFlags the access flags of the class.
167
- * @param internalClassName the internal class name,
168
- * e.g. "<code>java/lang/Object</code>".
169
- * @return the external class description,
170
- * e.g. "<code>public java.lang.Object</code>".
171
- */
172
- public static String externalFullClassDescription(int accessFlags,
173
- String internalClassName)
174
- {
175
- return externalClassAccessFlags(accessFlags) +
176
- externalClassName(internalClassName);
177
- }
178
-
179
-
180
- /**
181
- * Converts an internal class name into an external class name.
182
- * @param internalClassName the internal class name,
183
- * e.g. "<code>java/lang/Object</code>".
184
- * @return the external class name,
185
- * e.g. "<code>java.lang.Object</code>".
186
- */
187
- public static String externalClassName(String internalClassName)
188
- {
189
- return //internalClassName.startsWith(ClassConstants.INTERNAL_PACKAGE_JAVA_LANG) &&
190
- //internalClassName.indexOf(ClassConstants.INTERNAL_PACKAGE_SEPARATOR, ClassConstants.INTERNAL_PACKAGE_JAVA_LANG.length() + 1) < 0 ?
191
- //internalClassName.substring(ClassConstants.INTERNAL_PACKAGE_JAVA_LANG.length()) :
192
- internalClassName.replace(ClassConstants.INTERNAL_PACKAGE_SEPARATOR,
193
- ClassConstants.EXTERNAL_PACKAGE_SEPARATOR);
194
- }
195
-
196
-
197
- /**
198
- * Returns the external base type of an external array type, dropping any
199
- * array brackets.
200
- * @param externalArrayType the external array type,
201
- * e.g. "<code>java.lang.Object[][]</code>"
202
- * @return the external base type,
203
- * e.g. "<code>java.lang.Object</code>".
204
- */
205
- public static String externalBaseType(String externalArrayType)
206
- {
207
- int index = externalArrayType.indexOf(ClassConstants.EXTERNAL_TYPE_ARRAY);
208
- return index >= 0 ?
209
- externalArrayType.substring(0, index) :
210
- externalArrayType;
211
- }
212
-
213
-
214
- /**
215
- * Returns the external short class name of an external class name, dropping
216
- * the package specification.
217
- * @param externalClassName the external class name,
218
- * e.g. "<code>java.lang.Object</code>"
219
- * @return the external short class name,
220
- * e.g. "<code>Object</code>".
221
- */
222
- public static String externalShortClassName(String externalClassName)
223
- {
224
- int index = externalClassName.lastIndexOf(ClassConstants.EXTERNAL_PACKAGE_SEPARATOR);
225
- return externalClassName.substring(index+1);
226
- }
227
-
228
-
229
- /**
230
- * Returns whether the given internal type is an array type.
231
- * @param internalType the internal type,
232
- * e.g. "<code>[[Ljava/lang/Object;</code>".
233
- * @return <code>true</code> if the given type is an array type,
234
- * <code>false</code> otherwise.
235
- */
236
- public static boolean isInternalArrayType(String internalType)
237
- {
238
- return internalType.length() > 1 &&
239
- internalType.charAt(0) == ClassConstants.INTERNAL_TYPE_ARRAY;
240
- }
241
-
242
-
243
- /**
244
- * Returns the number of dimensions of the given internal type.
245
- * @param internalType the internal type,
246
- * e.g. "<code>[[Ljava/lang/Object;</code>".
247
- * @return the number of dimensions, e.g. 2.
248
- */
249
- public static int internalArrayTypeDimensionCount(String internalType)
250
- {
251
- int dimensions = 0;
252
- while (internalType.charAt(dimensions) == ClassConstants.INTERNAL_TYPE_ARRAY)
253
- {
254
- dimensions++;
255
- }
256
-
257
- return dimensions;
258
- }
259
-
260
-
261
- /**
262
- * Returns whether the given internal class name is one of the interfaces
263
- * that is implemented by all array types. These class names are
264
- * "<code>java/lang/Object</code>", "<code>java/lang/Cloneable</code>", and
265
- * "<code>java/io/Serializable</code>"
266
- * @param internalClassName the internal class name,
267
- * e.g. "<code>java/lang/Object</code>".
268
- * @return <code>true</code> if the given type is an array interface name,
269
- * <code>false</code> otherwise.
270
- */
271
- public static boolean isInternalArrayInterfaceName(String internalClassName)
272
- {
273
- return ClassConstants.INTERNAL_NAME_JAVA_LANG_OBJECT.equals(internalClassName) ||
274
- ClassConstants.INTERNAL_NAME_JAVA_LANG_CLONEABLE.equals(internalClassName) ||
275
- ClassConstants.INTERNAL_NAME_JAVA_IO_SERIALIZABLE.equals(internalClassName);
276
- }
277
-
278
-
279
- /**
280
- * Returns whether the given internal type is a plain primitive type
281
- * (not void).
282
- * @param internalType the internal type,
283
- * e.g. "<code>I</code>".
284
- * @return <code>true</code> if the given type is a class type,
285
- * <code>false</code> otherwise.
286
- */
287
- public static boolean isInternalPrimitiveType(char internalType)
288
- {
289
- return internalType == ClassConstants.INTERNAL_TYPE_BOOLEAN ||
290
- internalType == ClassConstants.INTERNAL_TYPE_BYTE ||
291
- internalType == ClassConstants.INTERNAL_TYPE_CHAR ||
292
- internalType == ClassConstants.INTERNAL_TYPE_SHORT ||
293
- internalType == ClassConstants.INTERNAL_TYPE_INT ||
294
- internalType == ClassConstants.INTERNAL_TYPE_FLOAT ||
295
- internalType == ClassConstants.INTERNAL_TYPE_LONG ||
296
- internalType == ClassConstants.INTERNAL_TYPE_DOUBLE;
297
- }
298
-
299
-
300
- /**
301
- * Returns whether the given internal type is a primitive Category 2 type.
302
- * @param internalType the internal type,
303
- * e.g. "<code>L</code>".
304
- * @return <code>true</code> if the given type is a Category 2 type,
305
- * <code>false</code> otherwise.
306
- */
307
- public static boolean isInternalCategory2Type(String internalType)
308
- {
309
- return internalType.length() == 1 &&
310
- (internalType.charAt(0) == ClassConstants.INTERNAL_TYPE_LONG ||
311
- internalType.charAt(0) == ClassConstants.INTERNAL_TYPE_DOUBLE);
312
- }
313
-
314
-
315
- /**
316
- * Returns whether the given internal type is a plain class type
317
- * (including an array type of a plain class type).
318
- * @param internalType the internal type,
319
- * e.g. "<code>Ljava/lang/Object;</code>".
320
- * @return <code>true</code> if the given type is a class type,
321
- * <code>false</code> otherwise.
322
- */
323
- public static boolean isInternalClassType(String internalType)
324
- {
325
- int length = internalType.length();
326
- return length > 1 &&
327
- // internalType.charAt(0) == ClassConstants.INTERNAL_TYPE_CLASS_START &&
328
- internalType.charAt(length-1) == ClassConstants.INTERNAL_TYPE_CLASS_END;
329
- }
330
-
331
-
332
- /**
333
- * Returns the internal type of a given class name.
334
- * @param internalClassName the internal class name,
335
- * e.g. "<code>java/lang/Object</code>".
336
- * @return the internal type,
337
- * e.g. "<code>Ljava/lang/Object;</code>".
338
- */
339
- public static String internalTypeFromClassName(String internalClassName)
340
- {
341
- return internalArrayTypeFromClassName(internalClassName, 0);
342
- }
343
-
344
-
345
- /**
346
- * Returns the internal array type of a given class name with a given number
347
- * of dimensions. If the number of dimensions is 0, the class name itself is
348
- * returned.
349
- * @param internalClassName the internal class name,
350
- * e.g. "<code>java/lang/Object</code>".
351
- * @param dimensionCount the number of array dimensions.
352
- * @return the internal array type of the array elements,
353
- * e.g. "<code>Ljava/lang/Object;</code>".
354
- */
355
- public static String internalArrayTypeFromClassName(String internalClassName,
356
- int dimensionCount)
357
- {
358
- StringBuffer buffer = new StringBuffer(internalClassName.length() + dimensionCount + 2);
359
-
360
- for (int dimension = 0; dimension < dimensionCount; dimension++)
361
- {
362
- buffer.append(ClassConstants.INTERNAL_TYPE_ARRAY);
363
- }
364
-
365
- return buffer.append(ClassConstants.INTERNAL_TYPE_CLASS_START)
366
- .append(internalClassName)
367
- .append(ClassConstants.INTERNAL_TYPE_CLASS_END)
368
- .toString();
369
- }
370
-
371
-
372
- /**
373
- * Returns the internal element type of a given internal array type.
374
- * @param internalArrayType the internal array type,
375
- * e.g. "<code>[[Ljava/lang/Object;</code>" or
376
- * "<code>[I</code>".
377
- * @return the internal type of the array elements,
378
- * e.g. "<code>Ljava/lang/Object;</code>" or
379
- * "<code>I</code>".
380
- */
381
- public static String internalTypeFromArrayType(String internalArrayType)
382
- {
383
- int index = internalArrayType.lastIndexOf(ClassConstants.INTERNAL_TYPE_ARRAY);
384
- return internalArrayType.substring(index+1);
385
- }
386
-
387
-
388
- /**
389
- * Returns the internal class name of a given internal class type
390
- * (including an array type). Types involving primitive types are returned
391
- * unchanged.
392
- * @param internalClassType the internal class type,
393
- * e.g. "<code>[Ljava/lang/Object;</code>",
394
- * "<code>Ljava/lang/Object;</code>", or
395
- * "<code>java/lang/Object</code>".
396
- * @return the internal class name,
397
- * e.g. "<code>java/lang/Object</code>".
398
- */
399
- public static String internalClassNameFromClassType(String internalClassType)
400
- {
401
- return isInternalClassType(internalClassType) ?
402
- internalClassType.substring(internalClassType.indexOf(ClassConstants.INTERNAL_TYPE_CLASS_START)+1,
403
- internalClassType.length()-1) :
404
- internalClassType;
405
- }
406
-
407
-
408
- /**
409
- * Returns the internal class name of any given internal descriptor type,
410
- * disregarding array prefixes.
411
- * @param internalClassType the internal class type,
412
- * e.g. "<code>Ljava/lang/Object;</code>" or
413
- * "<code>[[I</code>".
414
- * @return the internal class name,
415
- * e.g. "<code>java/lang/Object</code>" or
416
- * <code>null</code>.
417
- */
418
- public static String internalClassNameFromType(String internalClassType)
419
- {
420
- if (!isInternalClassType(internalClassType))
421
- {
422
- return null;
423
- }
424
-
425
- // Is it an array type?
426
- if (isInternalArrayType(internalClassType))
427
- {
428
- internalClassType = internalTypeFromArrayType(internalClassType);
429
- }
430
-
431
- return internalClassNameFromClassType(internalClassType);
432
- }
433
-
434
-
435
- /**
436
- * Returns whether the given method name refers to a class initializer or
437
- * an instance initializer.
438
- * @param internalMethodName the internal method name,
439
- * e.g. "<code><clinit></code>".
440
- * @return whether the method name refers to an initializer,
441
- * e.g. <code>true</code>.
442
- */
443
- public static boolean isInitializer(String internalMethodName)
444
- {
445
- return internalMethodName.equals(ClassConstants.INTERNAL_METHOD_NAME_CLINIT) ||
446
- internalMethodName.equals(ClassConstants.INTERNAL_METHOD_NAME_INIT);
447
- }
448
-
449
-
450
- /**
451
- * Returns the internal type of the given internal method descriptor.
452
- * @param internalMethodDescriptor the internal method descriptor,
453
- * e.g. "<code>(II)Z</code>".
454
- * @return the internal return type,
455
- * e.g. "<code>Z</code>".
456
- */
457
- public static String internalMethodReturnType(String internalMethodDescriptor)
458
- {
459
- int index = internalMethodDescriptor.indexOf(ClassConstants.INTERNAL_METHOD_ARGUMENTS_CLOSE);
460
- return internalMethodDescriptor.substring(index + 1);
461
- }
462
-
463
-
464
- /**
465
- * Returns the number of parameters of the given internal method descriptor.
466
- * @param internalMethodDescriptor the internal method descriptor,
467
- * e.g. "<code>(ID)Z</code>".
468
- * @return the number of parameters,
469
- * e.g. 2.
470
- */
471
- public static int internalMethodParameterCount(String internalMethodDescriptor)
472
- {
473
- InternalTypeEnumeration internalTypeEnumeration =
474
- new InternalTypeEnumeration(internalMethodDescriptor);
475
-
476
- int counter = 0;
477
- while (internalTypeEnumeration.hasMoreTypes())
478
- {
479
- internalTypeEnumeration.nextType();
480
-
481
- counter++;
482
- }
483
-
484
- return counter;
485
- }
486
-
487
-
488
- /**
489
- * Returns the size taken up on the stack by the parameters of the given
490
- * internal method descriptor. This accounts for long and double parameters
491
- * taking up two entries.
492
- * @param internalMethodDescriptor the internal method descriptor,
493
- * e.g. "<code>(ID)Z</code>".
494
- * @return the size taken up on the stack,
495
- * e.g. 3.
496
- */
497
- public static int internalMethodParameterSize(String internalMethodDescriptor)
498
- {
499
- return internalMethodParameterSize(internalMethodDescriptor, true);
500
- }
501
-
502
-
503
- /**
504
- * Returns the size taken up on the stack by the parameters of the given
505
- * internal method descriptor. This accounts for long and double parameters
506
- * taking up two entries, and a non-static method taking up an additional
507
- * entry.
508
- * @param internalMethodDescriptor the internal method descriptor,
509
- * e.g. "<code>(ID)Z</code>".
510
- * @param accessFlags the access flags of the method,
511
- * e.g. 0.
512
- * @return the size taken up on the stack,
513
- * e.g. 4.
514
- */
515
- public static int internalMethodParameterSize(String internalMethodDescriptor,
516
- int accessFlags)
517
- {
518
- return internalMethodParameterSize(internalMethodDescriptor,
519
- (accessFlags & ClassConstants.INTERNAL_ACC_STATIC) != 0);
520
- }
521
-
522
-
523
- /**
524
- * Returns the size taken up on the stack by the parameters of the given
525
- * internal method descriptor. This accounts for long and double parameters
526
- * taking up two spaces, and a non-static method taking up an additional
527
- * entry.
528
- * @param internalMethodDescriptor the internal method descriptor,
529
- * e.g. "<code>(ID)Z</code>".
530
- * @param isStatic specifies whether the method is static,
531
- * e.g. false.
532
- * @return the size taken up on the stack,
533
- * e.g. 4.
534
- */
535
- public static int internalMethodParameterSize(String internalMethodDescriptor,
536
- boolean isStatic)
537
- {
538
- InternalTypeEnumeration internalTypeEnumeration =
539
- new InternalTypeEnumeration(internalMethodDescriptor);
540
-
541
- int size = isStatic ? 0 : 1;
542
- while (internalTypeEnumeration.hasMoreTypes())
543
- {
544
- String internalType = internalTypeEnumeration.nextType();
545
-
546
- size += internalTypeSize(internalType);
547
- }
548
-
549
- return size;
550
- }
551
-
552
-
553
- /**
554
- * Returns the size taken up on the stack by the given internal type.
555
- * The size is 1, except for long and double types, for which it is 2,
556
- * and for the void type, for which 0 is returned.
557
- * @param internalType the internal type,
558
- * e.g. "<code>I</code>".
559
- * @return the size taken up on the stack,
560
- * e.g. 1.
561
- */
562
- public static int internalTypeSize(String internalType)
563
- {
564
- if (internalType.length() == 1)
565
- {
566
- char internalPrimitiveType = internalType.charAt(0);
567
- if (internalPrimitiveType == ClassConstants.INTERNAL_TYPE_LONG ||
568
- internalPrimitiveType == ClassConstants.INTERNAL_TYPE_DOUBLE)
569
- {
570
- return 2;
571
- }
572
- else if (internalPrimitiveType == ClassConstants.INTERNAL_TYPE_VOID)
573
- {
574
- return 0;
575
- }
576
- }
577
-
578
- return 1;
579
- }
580
-
581
-
582
- /**
583
- * Converts an external type into an internal type.
584
- * @param externalType the external type,
585
- * e.g. "<code>java.lang.Object[][]</code>" or
586
- * "<code>int[]</code>".
587
- * @return the internal type,
588
- * e.g. "<code>[[Ljava/lang/Object;</code>" or
589
- * "<code>[I</code>".
590
- */
591
- public static String internalType(String externalType)
592
- {
593
- // Strip the array part, if any.
594
- int dimensionCount = externalArrayTypeDimensionCount(externalType);
595
- if (dimensionCount > 0)
596
- {
597
- externalType = externalType.substring(0, externalType.length() - dimensionCount * ClassConstants.EXTERNAL_TYPE_ARRAY.length());
598
- }
599
-
600
- // Analyze the actual type part.
601
- char internalTypeChar =
602
- externalType.equals(ClassConstants.EXTERNAL_TYPE_VOID ) ?
603
- ClassConstants.INTERNAL_TYPE_VOID :
604
- externalType.equals(ClassConstants.EXTERNAL_TYPE_BOOLEAN) ?
605
- ClassConstants.INTERNAL_TYPE_BOOLEAN :
606
- externalType.equals(ClassConstants.EXTERNAL_TYPE_BYTE ) ?
607
- ClassConstants.INTERNAL_TYPE_BYTE :
608
- externalType.equals(ClassConstants.EXTERNAL_TYPE_CHAR ) ?
609
- ClassConstants.INTERNAL_TYPE_CHAR :
610
- externalType.equals(ClassConstants.EXTERNAL_TYPE_SHORT ) ?
611
- ClassConstants.INTERNAL_TYPE_SHORT :
612
- externalType.equals(ClassConstants.EXTERNAL_TYPE_INT ) ?
613
- ClassConstants.INTERNAL_TYPE_INT :
614
- externalType.equals(ClassConstants.EXTERNAL_TYPE_FLOAT ) ?
615
- ClassConstants.INTERNAL_TYPE_FLOAT :
616
- externalType.equals(ClassConstants.EXTERNAL_TYPE_LONG ) ?
617
- ClassConstants.INTERNAL_TYPE_LONG :
618
- externalType.equals(ClassConstants.EXTERNAL_TYPE_DOUBLE ) ?
619
- ClassConstants.INTERNAL_TYPE_DOUBLE :
620
- externalType.equals("%" ) ?
621
- '%' :
622
- (char)0;
623
-
624
- String internalType =
625
- internalTypeChar != 0 ? String.valueOf(internalTypeChar) :
626
- ClassConstants.INTERNAL_TYPE_CLASS_START +
627
- internalClassName(externalType) +
628
- ClassConstants.INTERNAL_TYPE_CLASS_END;
629
-
630
- // Prepend the array part, if any.
631
- for (int count = 0; count < dimensionCount; count++)
632
- {
633
- internalType = ClassConstants.INTERNAL_TYPE_ARRAY + internalType;
634
- }
635
-
636
- return internalType;
637
- }
638
-
639
-
640
- /**
641
- * Returns the number of dimensions of the given external type.
642
- * @param externalType the external type,
643
- * e.g. "<code>[[Ljava/lang/Object;</code>".
644
- * @return the number of dimensions, e.g. 2.
645
- */
646
- public static int externalArrayTypeDimensionCount(String externalType)
647
- {
648
- int dimensions = 0;
649
- int length = ClassConstants.EXTERNAL_TYPE_ARRAY.length();
650
- int offset = externalType.length() - length;
651
- while (externalType.regionMatches(offset,
652
- ClassConstants.EXTERNAL_TYPE_ARRAY,
653
- 0,
654
- length))
655
- {
656
- dimensions++;
657
- offset -= length;
658
- }
659
-
660
- return dimensions;
661
- }
662
-
663
-
664
- /**
665
- * Converts an internal type into an external type.
666
- * @param internalType the internal type,
667
- * e.g. "<code>[[Ljava/lang/Object;</code>" or
668
- * "<code>[I</code>".
669
- * @return the external type,
670
- * e.g. "<code>java.lang.Object[][]</code>" or
671
- * "<code>int[]</code>".
672
- */
673
- public static String externalType(String internalType)
674
- {
675
- // Strip the array part, if any.
676
- int dimensionCount = internalArrayTypeDimensionCount(internalType);
677
- if (dimensionCount > 0)
678
- {
679
- internalType = internalType.substring(dimensionCount);
680
- }
681
-
682
- // Analyze the actual type part.
683
- char internalTypeChar = internalType.charAt(0);
684
-
685
- String externalType =
686
- internalTypeChar == ClassConstants.INTERNAL_TYPE_VOID ?
687
- ClassConstants.EXTERNAL_TYPE_VOID :
688
- internalTypeChar == ClassConstants.INTERNAL_TYPE_BOOLEAN ?
689
- ClassConstants.EXTERNAL_TYPE_BOOLEAN :
690
- internalTypeChar == ClassConstants.INTERNAL_TYPE_BYTE ?
691
- ClassConstants.EXTERNAL_TYPE_BYTE :
692
- internalTypeChar == ClassConstants.INTERNAL_TYPE_CHAR ?
693
- ClassConstants.EXTERNAL_TYPE_CHAR :
694
- internalTypeChar == ClassConstants.INTERNAL_TYPE_SHORT ?
695
- ClassConstants.EXTERNAL_TYPE_SHORT :
696
- internalTypeChar == ClassConstants.INTERNAL_TYPE_INT ?
697
- ClassConstants.EXTERNAL_TYPE_INT :
698
- internalTypeChar == ClassConstants.INTERNAL_TYPE_FLOAT ?
699
- ClassConstants.EXTERNAL_TYPE_FLOAT :
700
- internalTypeChar == ClassConstants.INTERNAL_TYPE_LONG ?
701
- ClassConstants.EXTERNAL_TYPE_LONG :
702
- internalTypeChar == ClassConstants.INTERNAL_TYPE_DOUBLE ?
703
- ClassConstants.EXTERNAL_TYPE_DOUBLE :
704
- internalTypeChar == '%' ?
705
- "%" :
706
- internalTypeChar == ClassConstants.INTERNAL_TYPE_CLASS_START ?
707
- externalClassName(internalType.substring(1, internalType.indexOf(ClassConstants.INTERNAL_TYPE_CLASS_END))) :
708
- null;
709
-
710
- if (externalType == null)
711
- {
712
- throw new IllegalArgumentException("Unknown type ["+internalType+"]");
713
- }
714
-
715
- // Append the array part, if any.
716
- for (int count = 0; count < dimensionCount; count++)
717
- {
718
- externalType += ClassConstants.EXTERNAL_TYPE_ARRAY;
719
- }
720
-
721
- return externalType;
722
- }
723
-
724
-
725
- /**
726
- * Returns whether the given internal descriptor String represents a method
727
- * descriptor.
728
- * @param internalDescriptor the internal descriptor String,
729
- * e.g. "<code>(II)Z</code>".
730
- * @return <code>true</code> if the given String is a method descriptor,
731
- * <code>false</code> otherwise.
732
- */
733
- public static boolean isInternalMethodDescriptor(String internalDescriptor)
734
- {
735
- return internalDescriptor.charAt(0) == ClassConstants.INTERNAL_METHOD_ARGUMENTS_OPEN;
736
- }
737
-
738
-
739
- /**
740
- * Returns whether the given member String represents an external method
741
- * name with arguments.
742
- * @param externalMemberNameAndArguments the external member String,
743
- * e.g. "<code>myField</code>" or
744
- * e.g. "<code>myMethod(int,int)</code>".
745
- * @return <code>true</code> if the given String refers to a method,
746
- * <code>false</code> otherwise.
747
- */
748
- public static boolean isExternalMethodNameAndArguments(String externalMemberNameAndArguments)
749
- {
750
- return externalMemberNameAndArguments.indexOf(ClassConstants.EXTERNAL_METHOD_ARGUMENTS_OPEN) > 0;
751
- }
752
-
753
-
754
- /**
755
- * Returns the name part of the given external method name and arguments.
756
- * @param externalMethodNameAndArguments the external method name and arguments,
757
- * e.g. "<code>myMethod(int,int)</code>".
758
- * @return the name part of the String, e.g. "<code>myMethod</code>".
759
- */
760
- public static String externalMethodName(String externalMethodNameAndArguments)
761
- {
762
- ExternalTypeEnumeration externalTypeEnumeration =
763
- new ExternalTypeEnumeration(externalMethodNameAndArguments);
764
-
765
- return externalTypeEnumeration.methodName();
766
- }
767
-
768
-
769
- /**
770
- * Converts the given external method return type and name and arguments to
771
- * an internal method descriptor.
772
- * @param externalReturnType the external method return type,
773
- * e.g. "<code>boolean</code>".
774
- * @param externalMethodNameAndArguments the external method name and arguments,
775
- * e.g. "<code>myMethod(int,int)</code>".
776
- * @return the internal method descriptor,
777
- * e.g. "<code>(II)Z</code>".
778
- */
779
- public static String internalMethodDescriptor(String externalReturnType,
780
- String externalMethodNameAndArguments)
781
- {
782
- StringBuffer internalMethodDescriptor = new StringBuffer();
783
- internalMethodDescriptor.append(ClassConstants.INTERNAL_METHOD_ARGUMENTS_OPEN);
784
-
785
- ExternalTypeEnumeration externalTypeEnumeration =
786
- new ExternalTypeEnumeration(externalMethodNameAndArguments);
787
-
788
- while (externalTypeEnumeration.hasMoreTypes())
789
- {
790
- internalMethodDescriptor.append(internalType(externalTypeEnumeration.nextType()));
791
- }
792
-
793
- internalMethodDescriptor.append(ClassConstants.INTERNAL_METHOD_ARGUMENTS_CLOSE);
794
- internalMethodDescriptor.append(internalType(externalReturnType));
795
-
796
- return internalMethodDescriptor.toString();
797
- }
798
-
799
-
800
- /**
801
- * Converts the given external method return type and List of arguments to
802
- * an internal method descriptor.
803
- * @param externalReturnType the external method return type,
804
- * e.g. "<code>boolean</code>".
805
- * @param externalArguments the external method arguments,
806
- * e.g. <code>{ "int", "int" }</code>.
807
- * @return the internal method descriptor,
808
- * e.g. "<code>(II)Z</code>".
809
- */
810
- public static String internalMethodDescriptor(String externalReturnType,
811
- List externalArguments)
812
- {
813
- StringBuffer internalMethodDescriptor = new StringBuffer();
814
- internalMethodDescriptor.append(ClassConstants.INTERNAL_METHOD_ARGUMENTS_OPEN);
815
-
816
- for (int index = 0; index < externalArguments.size(); index++)
817
- {
818
- internalMethodDescriptor.append(internalType((String)externalArguments.get(index)));
819
- }
820
-
821
- internalMethodDescriptor.append(ClassConstants.INTERNAL_METHOD_ARGUMENTS_CLOSE);
822
- internalMethodDescriptor.append(internalType(externalReturnType));
823
-
824
- return internalMethodDescriptor.toString();
825
- }
826
-
827
-
828
- /**
829
- * Converts an internal field description into an external full field description.
830
- * @param accessFlags the access flags of the field.
831
- * @param fieldName the field name,
832
- * e.g. "<code>myField</code>".
833
- * @param internalFieldDescriptor the internal field descriptor,
834
- * e.g. "<code>Z</code>".
835
- * @return the external full field description,
836
- * e.g. "<code>public boolean myField</code>".
837
- */
838
- public static String externalFullFieldDescription(int accessFlags,
839
- String fieldName,
840
- String internalFieldDescriptor)
841
- {
842
- return externalFieldAccessFlags(accessFlags) +
843
- externalType(internalFieldDescriptor) +
844
- ' ' +
845
- fieldName;
846
- }
847
-
848
-
849
- /**
850
- * Converts an internal method description into an external full method description.
851
- * @param internalClassName the internal name of the class of the method,
852
- * e.g. "<code>mypackage/MyClass</code>".
853
- * @param accessFlags the access flags of the method.
854
- * @param internalMethodName the internal method name,
855
- * e.g. "<code>myMethod</code>" or
856
- * "<code>&lt;init&gt;</code>".
857
- * @param internalMethodDescriptor the internal method descriptor,
858
- * e.g. "<code>(II)Z</code>".
859
- * @return the external full method description,
860
- * e.g. "<code>public boolean myMethod(int,int)</code>" or
861
- * "<code>public MyClass(int,int)</code>".
862
- */
863
- public static String externalFullMethodDescription(String internalClassName,
864
- int accessFlags,
865
- String internalMethodName,
866
- String internalMethodDescriptor)
867
- {
868
- return externalMethodAccessFlags(accessFlags) +
869
- externalMethodReturnTypeAndName(internalClassName,
870
- internalMethodName,
871
- internalMethodDescriptor) +
872
- ClassConstants.EXTERNAL_METHOD_ARGUMENTS_OPEN +
873
- externalMethodArguments(internalMethodDescriptor) +
874
- ClassConstants.EXTERNAL_METHOD_ARGUMENTS_CLOSE;
875
- }
876
-
877
-
878
- /**
879
- * Converts internal class access flags into an external access description.
880
- * @param accessFlags the class access flags.
881
- * @return the external class access description,
882
- * e.g. "<code>public final </code>".
883
- */
884
- public static String externalClassAccessFlags(int accessFlags)
885
- {
886
- return externalClassAccessFlags(accessFlags, "");
887
- }
888
-
889
-
890
- /**
891
- * Converts internal class access flags into an external access description.
892
- * @param accessFlags the class access flags.
893
- * @param prefix a prefix that is added to each access modifier.
894
- * @return the external class access description,
895
- * e.g. "<code>public final </code>".
896
- */
897
- public static String externalClassAccessFlags(int accessFlags, String prefix)
898
- {
899
- if (accessFlags == 0)
900
- {
901
- return EMPTY_STRING;
902
- }
903
-
904
- StringBuffer string = new StringBuffer(50);
905
-
906
- if ((accessFlags & ClassConstants.INTERNAL_ACC_PUBLIC) != 0)
907
- {
908
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_PUBLIC).append(' ');
909
- }
910
- if ((accessFlags & ClassConstants.INTERNAL_ACC_PRIVATE) != 0)
911
- {
912
- // Only in InnerClasses attributes.
913
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_PRIVATE).append(' ');
914
- }
915
- if ((accessFlags & ClassConstants.INTERNAL_ACC_PROTECTED) != 0)
916
- {
917
- // Only in InnerClasses attributes.
918
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_PROTECTED).append(' ');
919
- }
920
- if ((accessFlags & ClassConstants.INTERNAL_ACC_STATIC) != 0)
921
- {
922
- // Only in InnerClasses attributes.
923
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_STATIC).append(' ');
924
- }
925
- if ((accessFlags & ClassConstants.INTERNAL_ACC_FINAL) != 0)
926
- {
927
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_FINAL).append(' ');
928
- }
929
- if ((accessFlags & ClassConstants.INTERNAL_ACC_ANNOTATTION) != 0)
930
- {
931
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_ANNOTATION);
932
- }
933
- if ((accessFlags & ClassConstants.INTERNAL_ACC_INTERFACE) != 0)
934
- {
935
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_INTERFACE).append(' ');
936
- }
937
- else if ((accessFlags & ClassConstants.INTERNAL_ACC_ENUM) != 0)
938
- {
939
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_ENUM).append(' ');
940
- }
941
- else if ((accessFlags & ClassConstants.INTERNAL_ACC_ABSTRACT) != 0)
942
- {
943
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_ABSTRACT).append(' ');
944
- }
945
- else if ((accessFlags & ClassConstants.INTERNAL_ACC_SYNTHETIC) != 0)
946
- {
947
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_SYNTHETIC).append(' ');
948
- }
949
-
950
- return string.toString();
951
- }
952
-
953
-
954
- /**
955
- * Converts internal field access flags into an external access description.
956
- * @param accessFlags the field access flags.
957
- * @return the external field access description,
958
- * e.g. "<code>public volatile </code>".
959
- */
960
- public static String externalFieldAccessFlags(int accessFlags)
961
- {
962
- return externalFieldAccessFlags(accessFlags, "");
963
- }
964
-
965
-
966
- /**
967
- * Converts internal field access flags into an external access description.
968
- * @param accessFlags the field access flags.
969
- * @param prefix a prefix that is added to each access modifier.
970
- * @return the external field access description,
971
- * e.g. "<code>public volatile </code>".
972
- */
973
- public static String externalFieldAccessFlags(int accessFlags, String prefix)
974
- {
975
- if (accessFlags == 0)
976
- {
977
- return EMPTY_STRING;
978
- }
979
-
980
- StringBuffer string = new StringBuffer(50);
981
-
982
- if ((accessFlags & ClassConstants.INTERNAL_ACC_PUBLIC) != 0)
983
- {
984
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_PUBLIC).append(' ');
985
- }
986
- if ((accessFlags & ClassConstants.INTERNAL_ACC_PRIVATE) != 0)
987
- {
988
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_PRIVATE).append(' ');
989
- }
990
- if ((accessFlags & ClassConstants.INTERNAL_ACC_PROTECTED) != 0)
991
- {
992
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_PROTECTED).append(' ');
993
- }
994
- if ((accessFlags & ClassConstants.INTERNAL_ACC_STATIC) != 0)
995
- {
996
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_STATIC).append(' ');
997
- }
998
- if ((accessFlags & ClassConstants.INTERNAL_ACC_FINAL) != 0)
999
- {
1000
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_FINAL).append(' ');
1001
- }
1002
- if ((accessFlags & ClassConstants.INTERNAL_ACC_VOLATILE) != 0)
1003
- {
1004
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_VOLATILE).append(' ');
1005
- }
1006
- if ((accessFlags & ClassConstants.INTERNAL_ACC_TRANSIENT) != 0)
1007
- {
1008
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_TRANSIENT).append(' ');
1009
- }
1010
- if ((accessFlags & ClassConstants.INTERNAL_ACC_SYNTHETIC) != 0)
1011
- {
1012
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_SYNTHETIC).append(' ');
1013
- }
1014
-
1015
- return string.toString();
1016
- }
1017
-
1018
-
1019
- /**
1020
- * Converts internal method access flags into an external access description.
1021
- * @param accessFlags the method access flags.
1022
- * @return the external method access description,
1023
- * e.g. "<code>public synchronized </code>".
1024
- */
1025
- public static String externalMethodAccessFlags(int accessFlags)
1026
- {
1027
- return externalMethodAccessFlags(accessFlags, "");
1028
- }
1029
-
1030
-
1031
- /**
1032
- * Converts internal method access flags into an external access description.
1033
- * @param accessFlags the method access flags.
1034
- * @param prefix a prefix that is added to each access modifier.
1035
- * @return the external method access description,
1036
- * e.g. "public synchronized ".
1037
- */
1038
- public static String externalMethodAccessFlags(int accessFlags, String prefix)
1039
- {
1040
- if (accessFlags == 0)
1041
- {
1042
- return EMPTY_STRING;
1043
- }
1044
-
1045
- StringBuffer string = new StringBuffer(50);
1046
-
1047
- if ((accessFlags & ClassConstants.INTERNAL_ACC_PUBLIC) != 0)
1048
- {
1049
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_PUBLIC).append(' ');
1050
- }
1051
- if ((accessFlags & ClassConstants.INTERNAL_ACC_PRIVATE) != 0)
1052
- {
1053
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_PRIVATE).append(' ');
1054
- }
1055
- if ((accessFlags & ClassConstants.INTERNAL_ACC_PROTECTED) != 0)
1056
- {
1057
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_PROTECTED).append(' ');
1058
- }
1059
- if ((accessFlags & ClassConstants.INTERNAL_ACC_STATIC) != 0)
1060
- {
1061
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_STATIC).append(' ');
1062
- }
1063
- if ((accessFlags & ClassConstants.INTERNAL_ACC_FINAL) != 0)
1064
- {
1065
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_FINAL).append(' ');
1066
- }
1067
- if ((accessFlags & ClassConstants.INTERNAL_ACC_SYNCHRONIZED) != 0)
1068
- {
1069
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_SYNCHRONIZED).append(' ');
1070
- }
1071
- if ((accessFlags & ClassConstants.INTERNAL_ACC_BRIDGE) != 0)
1072
- {
1073
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_BRIDGE).append(' ');
1074
- }
1075
- if ((accessFlags & ClassConstants.INTERNAL_ACC_VARARGS) != 0)
1076
- {
1077
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_VARARGS).append(' ');
1078
- }
1079
- if ((accessFlags & ClassConstants.INTERNAL_ACC_NATIVE) != 0)
1080
- {
1081
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_NATIVE).append(' ');
1082
- }
1083
- if ((accessFlags & ClassConstants.INTERNAL_ACC_ABSTRACT) != 0)
1084
- {
1085
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_ABSTRACT).append(' ');
1086
- }
1087
- if ((accessFlags & ClassConstants.INTERNAL_ACC_STRICT) != 0)
1088
- {
1089
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_STRICT).append(' ');
1090
- }
1091
- if ((accessFlags & ClassConstants.INTERNAL_ACC_SYNTHETIC) != 0)
1092
- {
1093
- string.append(prefix).append(ClassConstants.EXTERNAL_ACC_SYNTHETIC).append(' ');
1094
- }
1095
-
1096
- return string.toString();
1097
- }
1098
-
1099
-
1100
- /**
1101
- * Converts an internal method descriptor into an external method return type.
1102
- * @param internalMethodDescriptor the internal method descriptor,
1103
- * e.g. "<code>(II)Z</code>".
1104
- * @return the external method return type,
1105
- * e.g. "<code>boolean</code>".
1106
- */
1107
- public static String externalMethodReturnType(String internalMethodDescriptor)
1108
- {
1109
- return externalType(internalMethodReturnType(internalMethodDescriptor));
1110
- }
1111
-
1112
-
1113
- /**
1114
- * Converts an internal class name, method name, and method descriptor to
1115
- * an external method return type and name.
1116
- * @param internalClassName the internal name of the class of the method,
1117
- * e.g. "<code>mypackage/MyClass</code>".
1118
- * @param internalMethodName the internal method name,
1119
- * e.g. "<code>myMethod</code>" or
1120
- * "<code>&lt;init&gt;</code>".
1121
- * @param internalMethodDescriptor the internal method descriptor,
1122
- * e.g. "<code>(II)Z</code>".
1123
- * @return the external method return type and name,
1124
- * e.g. "<code>boolean myMethod</code>" or
1125
- * "<code>MyClass</code>".
1126
- */
1127
- private static String externalMethodReturnTypeAndName(String internalClassName,
1128
- String internalMethodName,
1129
- String internalMethodDescriptor)
1130
- {
1131
- return internalMethodName.equals(ClassConstants.INTERNAL_METHOD_NAME_INIT) ?
1132
- externalShortClassName(externalClassName(internalClassName)) :
1133
- (externalMethodReturnType(internalMethodDescriptor) +
1134
- ' ' +
1135
- internalMethodName);
1136
- }
1137
-
1138
-
1139
- /**
1140
- * Converts an internal method descriptor into an external method argument
1141
- * description.
1142
- * @param internalMethodDescriptor the internal method descriptor,
1143
- * e.g. "<code>(II)Z</code>".
1144
- * @return the external method argument description,
1145
- * e.g. "<code>int,int</code>".
1146
- */
1147
- public static String externalMethodArguments(String internalMethodDescriptor)
1148
- {
1149
- StringBuffer externalMethodNameAndArguments = new StringBuffer();
1150
-
1151
- InternalTypeEnumeration internalTypeEnumeration =
1152
- new InternalTypeEnumeration(internalMethodDescriptor);
1153
-
1154
- while (internalTypeEnumeration.hasMoreTypes())
1155
- {
1156
- externalMethodNameAndArguments.append(externalType(internalTypeEnumeration.nextType()));
1157
- if (internalTypeEnumeration.hasMoreTypes())
1158
- {
1159
- externalMethodNameAndArguments.append(ClassConstants.EXTERNAL_METHOD_ARGUMENTS_SEPARATOR);
1160
- }
1161
- }
1162
-
1163
- return externalMethodNameAndArguments.toString();
1164
- }
1165
-
1166
-
1167
- /**
1168
- * Returns the internal package name of the given internal class name.
1169
- * @param internalClassName the internal class name,
1170
- * e.g. "<code>java/lang/Object</code>".
1171
- * @return the internal package name,
1172
- * e.g. "<code>java/lang</code>".
1173
- */
1174
- public static String internalPackageName(String internalClassName)
1175
- {
1176
- String internalPackagePrefix = internalPackagePrefix(internalClassName);
1177
- int length = internalPackagePrefix.length();
1178
- return length > 0 ?
1179
- internalPackagePrefix.substring(0, length - 1) :
1180
- "";
1181
- }
1182
-
1183
-
1184
- /**
1185
- * Returns the internal package prefix of the given internal class name.
1186
- * @param internalClassName the internal class name,
1187
- * e.g. "<code>java/lang/Object</code>".
1188
- * @return the internal package prefix,
1189
- * e.g. "<code>java/lang/</code>".
1190
- */
1191
- public static String internalPackagePrefix(String internalClassName)
1192
- {
1193
- return internalClassName.substring(0, internalClassName.lastIndexOf(ClassConstants.INTERNAL_PACKAGE_SEPARATOR,
1194
- internalClassName.length() - 2) + 1);
1195
- }
1196
-
1197
-
1198
- /**
1199
- * Returns the external package name of the given external class name.
1200
- * @param externalClassName the external class name,
1201
- * e.g. "<code>java.lang.Object</code>".
1202
- * @return the external package name,
1203
- * e.g. "<code>java.lang</code>".
1204
- */
1205
- public static String externalPackageName(String externalClassName)
1206
- {
1207
- String externalPackagePrefix = externalPackagePrefix(externalClassName);
1208
- int length = externalPackagePrefix.length();
1209
- return length > 0 ?
1210
- externalPackagePrefix.substring(0, length - 1) :
1211
- "";
1212
- }
1213
-
1214
-
1215
- /**
1216
- * Returns the external package prefix of the given external class name.
1217
- * @param externalClassName the external class name,
1218
- * e.g. "<code>java.lang.Object</code>".
1219
- * @return the external package prefix,
1220
- * e.g. "<code>java.lang.</code>".
1221
- */
1222
- public static String externalPackagePrefix(String externalClassName)
1223
- {
1224
- return externalClassName.substring(0, externalClassName.lastIndexOf(ClassConstants.EXTERNAL_PACKAGE_SEPARATOR,
1225
- externalClassName.length() - 2) + 1);
1226
- }
1227
- }