/**
 * Copyright 2012-2014 Julien Eluard and contributors
 * This project includes software developed by Julien Eluard: https://github.com/jeluard/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.osjava.jardiff;
import java.util.HashMap;
import java.util.Map;

import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.FieldVisitor;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;

/**
 * A reusable class which uses the ASM to build up ClassInfo about a
 * java class file.
 *
 * @author <a href="mailto:antony@cyberiantiger.org">Antony Riley</a>
 */
public class ClassInfoVisitor extends ClassVisitor
{
    /**
     * The class file version.
     */
    private int version;

    /**
     * The access flags for the class.
     */

    private int access;

    /**
     * The internal name of the class.
     */
    private String name;

    /**
     * The signature of the class
     */
    private String signature;

    /**
     * The internal name of the superclass.
     */
    private String supername;

    /**
     * An array of internal names of interfaces implemented by this class.
     */
    private String[] interfaces;

    /**
     * A map of method signature to a MethodInfo describing the method.
     */
    private Map<String, MethodInfo> methodMap;

    /**
     * A map of field signature to a FieldInfo describing the field.
     */
    private Map<String, FieldInfo> fieldMap;

    public ClassInfoVisitor() {
        super(Opcodes.ASM5);
    }

    /**
     * Reset this ClassInfoVisitor so that it can be used to visit another
     * class.
     */
    public void reset() {
        this.methodMap = new HashMap<String, MethodInfo>();
        this.fieldMap = new HashMap<String, FieldInfo>();
    }

    /**
     * The the classInfo this ClassInfoVisitor has built up about a class
     */
    public ClassInfo getClassInfo() {
        return new ClassInfo(this.version, this.access, this.name, this.signature, this.supername,
                             this.interfaces, this.methodMap, this.fieldMap);
    }

    /**
     * Receive notification of information about a class from ASM.
     *
     * @param version the class file version number.
     * @param access the access flags for the class.
     * @param name the internal name of the class.
     * @param signature the signature of the class.
     * @param supername the internal name of the super class.
     * @param interfaces the internal names of interfaces implemented.
     */
    @Override
    public void visit(int version, int access, String name, String signature,
                      String supername, String[] interfaces) {
        this.version = version;
        this.access = access;
        this.name = name;
        this.signature = signature;
        this.supername = supername;
        this.interfaces = interfaces;
    }

    @Override
    public MethodVisitor visitMethod(int access, String name, String desc,
                                     String signature, String[] exceptions) {
        this.methodMap.put(name + desc, new MethodInfo(access, name, desc,
                                                  signature, exceptions));
        return null;
    }

    @Override
    public FieldVisitor visitField(int access, String name, String desc,
                                   String signature, Object value) {
        this.fieldMap.put(name,
                     new FieldInfo(access, name, desc, signature, value));
        return null;
    }
}

@@ -1005,17 +1005,18 @@
  about a
+ 
 %0A
-
  * java 
@@ -1472,17 +1472,21 @@
 nature;%0A
+    
 %0A
-
     /**%0A
@@ -1955,25 +1955,29 @@
 %3E fieldMap;%0A
+    
 %0A
-
     public C
@@ -2023,33 +2023,37 @@
 es.ASM5);%0A    %7D%0A
+    
 %0A
-
     /**%0A     * R
@@ -2167,37 +2167,32 @@
 set() %7B%0A        
-this.
 methodMap = new 
@@ -2222,37 +2222,32 @@
 nfo%3E();%0A        
-this.
 fieldMap = new H
@@ -2273,33 +2273,37 @@
 dInfo%3E();%0A    %7D%0A
+    
 %0A
-
     /**%0A     * T
@@ -2443,21 +2443,16 @@
 assInfo(
-this.
 version,
@@ -2456,21 +2456,16 @@
 on, 
-this.
 access, 
 this
@@ -2464,24 +2464,14 @@
 ss, 
-this.
 name, 
-this.
 sign
@@ -2477,21 +2477,16 @@
 nature, 
-this.
 supernam
@@ -2509,37 +2509,32 @@
                 
-this.
 interfaces, this
@@ -2529,21 +2529,16 @@
 rfaces, 
-this.
 methodMa
@@ -2540,21 +2540,16 @@
 hodMap, 
-this.
 fieldMap
@@ -2553,25 +2553,29 @@
 Map);%0A    %7D%0A
+    
 %0A
-
     /**%0A    
@@ -2994,30 +2994,16 @@
      */%0A
-    @Override%0A
     publ
@@ -3515,21 +3515,16 @@
         
-this.
 methodMa
@@ -3671,33 +3671,37 @@
 urn null;%0A    %7D%0A
+    
 %0A
-
     @Override%0A  
@@ -3836,32 +3836,32 @@
 ct value) %7B%0A
+
         
 this.fieldMa
@@ -3848,21 +3848,16 @@
         
-this.
 fieldMap

Revert to original formatting/code style