[Clirr-devel] CVS: clirr/core/src/java/net/sf/clirr/core/internal/asm Repository.java, 1.4, 1.5 As
Status: Alpha
Brought to you by:
lkuehne
Update of /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core/internal/asm In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv15781/src/java/net/sf/clirr/core/internal/asm Modified Files: Repository.java AsmJavaType.java ArrayType.java PrimitiveType.java Log Message: RFE 1719563: made class format version accessible via JavaType interface Index: Repository.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core/internal/asm/Repository.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Repository.java 22 Apr 2006 19:52:25 -0000 1.4 +++ Repository.java 19 May 2007 12:12:06 -0000 1.5 @@ -24,11 +24,13 @@ private static final Pattern ARRAY_PATTERN = Pattern.compile("(\\[\\])+$"); private final ClassLoader classLoader; - private Map nameTypeMap = new HashMap(); + private final Map nameTypeMap = new HashMap(); + private final int primitiveClassFormatVersion; public Repository(ClassLoader classLoader) { this.classLoader = classLoader; + primitiveClassFormatVersion = findTypeByName("java.lang.Integer").getClassFormatVersion(); } /** @@ -42,6 +44,7 @@ ClassInfoCollector infoCollector = new ClassInfoCollector(this); + // TODO: Code for ASM 3.0: parser.accept(infoCollector, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG); parser.accept(infoCollector, true); final AsmJavaType javaType = infoCollector.getJavaType(); @@ -79,7 +82,8 @@ final Matcher primitiveMatcher = PRIMITIVE_PATTERN.matcher(typeName); if (primitiveMatcher.matches()) { - JavaType primitive = new PrimitiveType(typeName); + + JavaType primitive = new PrimitiveType(primitiveClassFormatVersion, typeName); nameTypeMap.put(typeName, primitive); return wrapInArrayTypeIfRequired(dimension, primitive); } Index: AsmJavaType.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core/internal/asm/AsmJavaType.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- AsmJavaType.java 15 May 2007 19:43:54 -0000 1.4 +++ AsmJavaType.java 19 May 2007 12:12:06 -0000 1.5 @@ -166,6 +166,10 @@ return containerScope.isLessVisibleThan(declaredScope) ? containerScope : declaredScope; } + public int getClassFormatVersion() + { + return classFormatVersion; + } public String toString() { Index: ArrayType.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core/internal/asm/ArrayType.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ArrayType.java 22 Apr 2006 22:03:51 -0000 1.2 +++ ArrayType.java 19 May 2007 12:12:06 -0000 1.3 @@ -98,6 +98,11 @@ return basicType.getEffectiveScope(); } + public int getClassFormatVersion() + { + return basicType.getClassFormatVersion(); + } + public String toString() { Index: PrimitiveType.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core/internal/asm/PrimitiveType.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- PrimitiveType.java 22 Apr 2006 22:03:51 -0000 1.2 +++ PrimitiveType.java 19 May 2007 12:12:06 -0000 1.3 @@ -8,12 +8,19 @@ class PrimitiveType implements JavaType { private final String basicName; + private final int classFormatVersion; - PrimitiveType(String name) + PrimitiveType(int classFormatVersion, String name) { + this.classFormatVersion = classFormatVersion; this.basicName = name; } + public int getClassFormatVersion() + { + return classFormatVersion; + } + public String getBasicName() { return basicName; |