This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-bcel.git

commit 8083fb59b6cf7bf41c055aee332501bee59bf99f
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sun Apr 21 09:25:22 2024 -0400

    Sort members
---
 .../apache/bcel/classfile/DescendingVisitor.java   | 30 ++++----
 .../java/org/apache/bcel/classfile/JavaClass.java  | 48 ++++++-------
 .../java/org/apache/bcel/classfile/Record.java     | 20 +++---
 .../apache/bcel/classfile/RecordComponentInfo.java | 40 +++++------
 .../java/org/apache/bcel/classfile/Visitor.java    | 36 +++++-----
 .../verifier/statics/StringRepresentation.java     | 20 +++---
 .../org/apache/bcel/CounterVisitorTestCase.java    | 10 +--
 .../org/apache/bcel/classfile/RecordTestCase.java  | 84 +++++++++++-----------
 .../bcel/generic/InstructionFactoryTestCase.java   | 12 ++--
 .../org/apache/bcel/visitors/CountingVisitor.java  | 20 +++---
 10 files changed, 160 insertions(+), 160 deletions(-)

diff --git a/src/main/java/org/apache/bcel/classfile/DescendingVisitor.java 
b/src/main/java/org/apache/bcel/classfile/DescendingVisitor.java
index 880f1009..69fdab6c 100644
--- a/src/main/java/org/apache/bcel/classfile/DescendingVisitor.java
+++ b/src/main/java/org/apache/bcel/classfile/DescendingVisitor.java
@@ -504,6 +504,21 @@ public class DescendingVisitor implements Visitor {
         stack.pop();
     }
 
+    @Override
+    public void visitRecord(Record record) {
+        stack.push(record);
+        record.accept(visitor);
+        accept(record.getComponents());
+        stack.pop();
+    }
+
+    @Override
+    public void visitRecordComponent(RecordComponentInfo recordComponentInfo) {
+        stack.push(recordComponentInfo);
+        recordComponentInfo.accept(visitor);
+        stack.pop();
+    }
+
     @Override
     public void visitSignature(final Signature attribute) {
         stack.push(attribute);
@@ -561,19 +576,4 @@ public class DescendingVisitor implements Visitor {
         stack.pop();
     }
 
-    @Override
-    public void visitRecord(Record record) {
-        stack.push(record);
-        record.accept(visitor);
-        accept(record.getComponents());
-        stack.pop();
-    }
-
-    @Override
-    public void visitRecordComponent(RecordComponentInfo recordComponentInfo) {
-        stack.push(recordComponentInfo);
-        recordComponentInfo.accept(visitor);
-        stack.pop();
-    }
-
 }
diff --git a/src/main/java/org/apache/bcel/classfile/JavaClass.java 
b/src/main/java/org/apache/bcel/classfile/JavaClass.java
index fe967983..d52336d0 100644
--- a/src/main/java/org/apache/bcel/classfile/JavaClass.java
+++ b/src/main/java/org/apache/bcel/classfile/JavaClass.java
@@ -259,6 +259,19 @@ public class JavaClass extends AccessFlags implements 
Cloneable, Node, Comparabl
         return getClassName().compareTo(obj.getClassName());
     }
 
+    private void computeIsRecord() {
+        if (computedRecord) {
+            return;
+        }
+        for (final Attribute attribute : this.attributes) {
+            if (attribute instanceof Record) {
+                isRecord = true;
+                break;
+            }
+        }
+        this.computedRecord = true;
+    }
+
     private void computeNestedTypeStatus() {
         if (computedNestedTypeStatus) {
             return;
@@ -743,6 +756,17 @@ public class JavaClass extends AccessFlags implements 
Cloneable, Node, Comparabl
         return this.isNested;
     }
 
+    /**
+     * Tests whether this class was declared as a record
+     *
+     * @return true if a record attribute is present, false otherwise.
+     * @since 6.9.0
+     */
+    public boolean isRecord() {
+        computeIsRecord();
+        return this.isRecord;
+    }
+
     public final boolean isSuper() {
         return (super.getAccessFlags() & Const.ACC_SUPER) != 0;
     }
@@ -906,28 +930,4 @@ public class JavaClass extends AccessFlags implements 
Cloneable, Node, Comparabl
         }
         return buf.toString();
     }
-
-    /**
-     * Tests whether this class was declared as a record
-     *
-     * @return true if a record attribute is present, false otherwise.
-     * @since 6.9.0
-     */
-    public boolean isRecord() {
-        computeIsRecord();
-        return this.isRecord;
-    }
-
-    private void computeIsRecord() {
-        if (computedRecord) {
-            return;
-        }
-        for (final Attribute attribute : this.attributes) {
-            if (attribute instanceof Record) {
-                isRecord = true;
-                break;
-            }
-        }
-        this.computedRecord = true;
-    }
 }
diff --git a/src/main/java/org/apache/bcel/classfile/Record.java 
b/src/main/java/org/apache/bcel/classfile/Record.java
index e459a0fe..21f17634 100644
--- a/src/main/java/org/apache/bcel/classfile/Record.java
+++ b/src/main/java/org/apache/bcel/classfile/Record.java
@@ -37,6 +37,16 @@ public final class Record extends Attribute {
 
     private static final RecordComponentInfo[] EMPTY_RCI_ARRAY = new 
RecordComponentInfo[] {};
 
+    private static RecordComponentInfo[] readComponents(final DataInput input, 
final ConstantPool constantPool)
+            throws IOException {
+        final int classCount = input.readUnsignedShort();
+        final RecordComponentInfo[] components = new 
RecordComponentInfo[classCount];
+        for (int i = 0; i < classCount; i++) {
+            components[i] = new RecordComponentInfo(input, constantPool);
+        }
+        return components;
+    }
+
     private RecordComponentInfo[] components;
 
     /**
@@ -53,16 +63,6 @@ public final class Record extends Attribute {
         this(nameIndex, length, readComponents(input, constantPool), 
constantPool);
     }
 
-    private static RecordComponentInfo[] readComponents(final DataInput input, 
final ConstantPool constantPool)
-            throws IOException {
-        final int classCount = input.readUnsignedShort();
-        final RecordComponentInfo[] components = new 
RecordComponentInfo[classCount];
-        for (int i = 0; i < classCount; i++) {
-            components[i] = new RecordComponentInfo(input, constantPool);
-        }
-        return components;
-    }
-
     /**
      * Constructs a new instance using components.
      *
diff --git a/src/main/java/org/apache/bcel/classfile/RecordComponentInfo.java 
b/src/main/java/org/apache/bcel/classfile/RecordComponentInfo.java
index bf489d0f..cf3ac1f9 100644
--- a/src/main/java/org/apache/bcel/classfile/RecordComponentInfo.java
+++ b/src/main/java/org/apache/bcel/classfile/RecordComponentInfo.java
@@ -55,6 +55,11 @@ public class RecordComponentInfo implements Node {
         this.constantPool = constantPool;
     }
 
+    @Override
+    public void accept(Visitor v) {
+        v.visitRecordComponent(this);
+    }
+
     /**
      * Dumps contents into a file stream in binary format.
      *
@@ -70,18 +75,22 @@ public class RecordComponentInfo implements Node {
         }
     }
 
-    @Override
-    public void accept(Visitor v) {
-        v.visitRecordComponent(this);
+    /**
+     * Gets all attributes.
+     *
+     * @return all attributes.
+     */
+    public Attribute[] getAttributes() {
+        return attributes;
     }
 
     /**
-     * Gets the name index.
+     * Gets the constant pool.
      *
-     * @return index in constant pool of this record component name.
+     * @return Constant pool.
      */
-    public int getIndex() {
-        return index;
+    public ConstantPool getConstantPool() {
+        return constantPool;
     }
 
     /**
@@ -94,21 +103,12 @@ public class RecordComponentInfo implements Node {
     }
 
     /**
-     * Gets all attributes.
-     *
-     * @return all attributes.
-     */
-    public Attribute[] getAttributes() {
-        return attributes;
-    }
-
-    /**
-     * Gets the constant pool.
+     * Gets the name index.
      *
-     * @return Constant pool.
+     * @return index in constant pool of this record component name.
      */
-    public ConstantPool getConstantPool() {
-        return constantPool;
+    public int getIndex() {
+        return index;
     }
 
     /**
diff --git a/src/main/java/org/apache/bcel/classfile/Visitor.java 
b/src/main/java/org/apache/bcel/classfile/Visitor.java
index 6f739324..89a72c8c 100644
--- a/src/main/java/org/apache/bcel/classfile/Visitor.java
+++ b/src/main/java/org/apache/bcel/classfile/Visitor.java
@@ -207,6 +207,17 @@ public interface Visitor {
         // empty
     }
 
+    /**
+     * @since 6.0
+     */
+    void visitParameterAnnotation(ParameterAnnotations obj);
+
+
+    /**
+     * @since 6.0
+     */
+    void visitParameterAnnotationEntry(ParameterAnnotationEntry obj);
+
     /**
      * Visits a {@link Record} object.
      *
@@ -217,16 +228,15 @@ public interface Visitor {
         // empty
     }
 
-
     /**
-     * @since 6.0
-     */
-    void visitParameterAnnotation(ParameterAnnotations obj);
-
-    /**
-     * @since 6.0
+     * Visits a {@link RecordComponentInfo} object.
+     *
+     * @param record component to visit
+     * @since 6.9.0
      */
-    void visitParameterAnnotationEntry(ParameterAnnotationEntry obj);
+    default void visitRecordComponent(RecordComponentInfo record) {
+     // noop
+    }
 
     void visitSignature(Signature obj);
 
@@ -250,14 +260,4 @@ public interface Visitor {
 
     void visitUnknown(Unknown obj);
 
-    /**
-     * Visits a {@link RecordComponentInfo} object.
-     *
-     * @param record component to visit
-     * @since 6.9.0
-     */
-    default void visitRecordComponent(RecordComponentInfo record) {
-     // noop
-    }
-
 }
diff --git 
a/src/main/java/org/apache/bcel/verifier/statics/StringRepresentation.java 
b/src/main/java/org/apache/bcel/verifier/statics/StringRepresentation.java
index af12ed5a..c89d1d75 100644
--- a/src/main/java/org/apache/bcel/verifier/statics/StringRepresentation.java
+++ b/src/main/java/org/apache/bcel/verifier/statics/StringRepresentation.java
@@ -399,6 +399,16 @@ public class StringRepresentation extends 
org.apache.bcel.classfile.EmptyVisitor
         tostring = toString(obj);
     }
 
+    @Override
+    public void visitRecord(Record obj) {
+        tostring = toString(obj);
+    }
+
+    @Override
+    public void visitRecordComponent(RecordComponentInfo obj) {
+        tostring = toString(obj);
+    }
+
     @Override
     public void visitSignature(final Signature obj) {
         tostring = toString(obj);
@@ -432,14 +442,4 @@ public class StringRepresentation extends 
org.apache.bcel.classfile.EmptyVisitor
         tostring = toString(obj);
     }
 
-    @Override
-    public void visitRecord(Record obj) {
-        tostring = toString(obj);
-    }
-
-    @Override
-    public void visitRecordComponent(RecordComponentInfo obj) {
-        tostring = toString(obj);
-    }
-
 }
diff --git a/src/test/java/org/apache/bcel/CounterVisitorTestCase.java 
b/src/test/java/org/apache/bcel/CounterVisitorTestCase.java
index 224369ba..6ecf3da8 100644
--- a/src/test/java/org/apache/bcel/CounterVisitorTestCase.java
+++ b/src/test/java/org/apache/bcel/CounterVisitorTestCase.java
@@ -183,6 +183,11 @@ public class CounterVisitorTestCase extends 
AbstractCounterVisitorTestCase {
         assertEquals(0, getVisitor().parameterAnnotationCount, 
"parameterAnnotationCount");
     }
 
+    @Test
+    public void testRecordCount() {
+        assertEquals(0, getVisitor().recordCount, "recordCount");
+    }
+
     @Test
     public void testSignatureCount() {
         assertEquals(0, getVisitor().signatureAnnotationCount, 
"signatureAnnotationCount");
@@ -217,9 +222,4 @@ public class CounterVisitorTestCase extends 
AbstractCounterVisitorTestCase {
     public void testUnknownCount() {
         assertEquals(0, getVisitor().unknownCount, "unknownCount");
     }
-
-    @Test
-    public void testRecordCount() {
-        assertEquals(0, getVisitor().recordCount, "recordCount");
-    }
 }
diff --git a/src/test/java/org/apache/bcel/classfile/RecordTestCase.java 
b/src/test/java/org/apache/bcel/classfile/RecordTestCase.java
index 7a2e639d..8056250a 100644
--- a/src/test/java/org/apache/bcel/classfile/RecordTestCase.java
+++ b/src/test/java/org/apache/bcel/classfile/RecordTestCase.java
@@ -31,6 +31,48 @@ import org.junit.jupiter.api.Test;
 
 public class RecordTestCase extends AbstractTestCase {
 
+    /**
+     * Check that we can copy a attribute correctly.
+     */
+    @Test
+    public void recordsCanBeCopied() throws ClassNotFoundException, 
IOException {
+        final JavaClass clazz = new 
ClassParser("src/test/resources/record/SimpleRecord.class").parse();
+        final JavaClass copyClazz = clazz.copy();
+        assertEquals(clazz.toString(), copyClazz.toString(), "both records 
should have the same value");
+    }
+
+    /**
+     * Check that a record can be visited by our visitors
+     */
+    @Test
+    public void recordsCanBeVisited() throws ClassNotFoundException, 
IOException {
+        final JavaClass clazz = new 
ClassParser("src/test/resources/record/SimpleRecord.class").parse();
+        final CountingVisitor countVisitor = new CountingVisitor();
+        final DescendingVisitor desendingVisitor = new 
DescendingVisitor(clazz, countVisitor);
+        desendingVisitor.visit();
+        assertEquals(1,countVisitor.recordCount, "should count one record");
+        assertEquals(2,countVisitor.recordComponentCount, "should count two 
record components");
+    }
+
+
+    /**
+     * Check that we can save and load the attribute correctly.
+     */
+    @Test
+    public void testAttributeSerializtion() throws ClassNotFoundException, 
IOException {
+        final JavaClass clazz = new 
ClassParser("src/test/resources/record/SimpleRecord.class").parse();
+        final File tfile = createTestdataFile("SimpleRecord.class");
+        final Record recordAttribute = 
(Record)findAttribute("Record",clazz)[0];
+        clazz.dump(tfile);
+        // Read in the new version and check it is OK
+        final SyntheticRepository repos2 = createRepos(".");
+        final JavaClass clazzFromRepo = repos2.loadClass("SimpleRecord");
+        assertNotNull(clazzFromRepo); // Use the variable to avoid a warning
+        final Record recordAttributeFromRepo = 
(Record)findAttribute("Record",clazzFromRepo)[0];
+        assertEquals(recordAttribute.toString(), 
recordAttributeFromRepo.toString(), "Both attributes needs to be equal");
+        tfile.deleteOnExit();
+    }
+
     /**
      * A record type, once compiled, should result in a class file that is
      * marked such that we can determine from the access flags
@@ -76,46 +118,4 @@ public class RecordTestCase extends AbstractTestCase {
         assertEquals("RecordComponentInfo(aNumber,I,0):", 
firstComponent.toString());
     }
 
-
-    /**
-     * Check that we can save and load the attribute correctly.
-     */
-    @Test
-    public void testAttributeSerializtion() throws ClassNotFoundException, 
IOException {
-        final JavaClass clazz = new 
ClassParser("src/test/resources/record/SimpleRecord.class").parse();
-        final File tfile = createTestdataFile("SimpleRecord.class");
-        final Record recordAttribute = 
(Record)findAttribute("Record",clazz)[0];
-        clazz.dump(tfile);
-        // Read in the new version and check it is OK
-        final SyntheticRepository repos2 = createRepos(".");
-        final JavaClass clazzFromRepo = repos2.loadClass("SimpleRecord");
-        assertNotNull(clazzFromRepo); // Use the variable to avoid a warning
-        final Record recordAttributeFromRepo = 
(Record)findAttribute("Record",clazzFromRepo)[0];
-        assertEquals(recordAttribute.toString(), 
recordAttributeFromRepo.toString(), "Both attributes needs to be equal");
-        tfile.deleteOnExit();
-    }
-
-    /**
-     * Check that we can copy a attribute correctly.
-     */
-    @Test
-    public void recordsCanBeCopied() throws ClassNotFoundException, 
IOException {
-        final JavaClass clazz = new 
ClassParser("src/test/resources/record/SimpleRecord.class").parse();
-        final JavaClass copyClazz = clazz.copy();
-        assertEquals(clazz.toString(), copyClazz.toString(), "both records 
should have the same value");
-    }
-
-    /**
-     * Check that a record can be visited by our visitors
-     */
-    @Test
-    public void recordsCanBeVisited() throws ClassNotFoundException, 
IOException {
-        final JavaClass clazz = new 
ClassParser("src/test/resources/record/SimpleRecord.class").parse();
-        final CountingVisitor countVisitor = new CountingVisitor();
-        final DescendingVisitor desendingVisitor = new 
DescendingVisitor(clazz, countVisitor);
-        desendingVisitor.visit();
-        assertEquals(1,countVisitor.recordCount, "should count one record");
-        assertEquals(2,countVisitor.recordComponentCount, "should count two 
record components");
-    }
-
 }
diff --git 
a/src/test/java/org/apache/bcel/generic/InstructionFactoryTestCase.java 
b/src/test/java/org/apache/bcel/generic/InstructionFactoryTestCase.java
index 073238f2..6dda101c 100644
--- a/src/test/java/org/apache/bcel/generic/InstructionFactoryTestCase.java
+++ b/src/test/java/org/apache/bcel/generic/InstructionFactoryTestCase.java
@@ -62,6 +62,12 @@ public class InstructionFactoryTestCase extends 
AbstractTestCase {
         assertEquals(InstructionConst.AASTORE, 
createArrayStore(Type.getType("[I")));
     }
 
+    @Test
+    public void testCreateInvokeNullArgTypes() throws Exception {
+        InstructionFactory factory = new InstructionFactory(new 
ClassGen(Repository.lookupClass(Object.class)));
+        factory.createInvoke("", "", Type.VOID, null, Const.INVOKESPECIAL, 
false); // Mustn't throw an NPE
+    }
+
     @Test
     public void testExceptions() throws Exception {
         final InstructionFactory factory = new InstructionFactory(new 
ClassGen(Repository.lookupClass(Object.class)));
@@ -97,10 +103,4 @@ public class InstructionFactoryTestCase extends 
AbstractTestCase {
         assertEquals(InstructionConst.ACONST_NULL, createNull(Type.OBJECT));
         assertEquals(InstructionConst.ACONST_NULL, 
createNull(Type.getType("[I")));
     }
-
-    @Test
-    public void testCreateInvokeNullArgTypes() throws Exception {
-        InstructionFactory factory = new InstructionFactory(new 
ClassGen(Repository.lookupClass(Object.class)));
-        factory.createInvoke("", "", Type.VOID, null, Const.INVOKESPECIAL, 
false); // Mustn't throw an NPE
-    }
 }
diff --git a/src/test/java/org/apache/bcel/visitors/CountingVisitor.java 
b/src/test/java/org/apache/bcel/visitors/CountingVisitor.java
index 93695479..c0609843 100644
--- a/src/test/java/org/apache/bcel/visitors/CountingVisitor.java
+++ b/src/test/java/org/apache/bcel/visitors/CountingVisitor.java
@@ -489,6 +489,16 @@ public class CountingVisitor implements Visitor {
         // TODO Auto-generated method stub
     }
 
+    @Override
+    public void visitRecord(Record v) {
+        recordCount++;
+    }
+
+    @Override
+    public void visitRecordComponent(RecordComponentInfo v) {
+        recordComponentCount++;
+    }
+
     @Override
     public void visitSignature(final Signature obj) {
         signatureAnnotationCount++;
@@ -526,14 +536,4 @@ public class CountingVisitor implements Visitor {
     public void visitUnknown(final Unknown obj) {
         unknownCount++;
     }
-
-    @Override
-    public void visitRecord(Record v) {
-        recordCount++;
-    }
-
-    @Override
-    public void visitRecordComponent(RecordComponentInfo v) {
-        recordComponentCount++;
-    }
 }

Reply via email to