Skip to content

Commit

Permalink
Promote no-op, visit order verifying and subset asserting visitors to…
Browse files Browse the repository at this point in the history
… experimental API
  • Loading branch information
NebelNidas committed Jan 29, 2025
1 parent 1067889 commit 1096cba
Show file tree
Hide file tree
Showing 14 changed files with 49 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,21 @@
* limitations under the License.
*/

package net.fabricmc.mappingio.test.visitors;
package net.fabricmc.mappingio.adapter;

import java.io.IOException;
import java.util.List;

import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;

import net.fabricmc.mappingio.MappedElementKind;
import net.fabricmc.mappingio.MappingVisitor;

/**
* <b>Experimental feature</b>, may be removed or changed without further notice.
*/
@ApiStatus.Experimental
public class NopMappingVisitor implements MappingVisitor {
public NopMappingVisitor(boolean visitSubVisitors) {
this.visitSubVisitors = visitSubVisitors;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,7 @@
* limitations under the License.
*/

package net.fabricmc.mappingio.test.visitors;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
package net.fabricmc.mappingio.adapter;

import java.io.IOException;
import java.util.ArrayList;
Expand All @@ -33,7 +30,7 @@
import net.fabricmc.mappingio.format.FeatureSet;
import net.fabricmc.mappingio.format.FeatureSet.ElementCommentSupport;
import net.fabricmc.mappingio.format.FeatureSet.FeaturePresence;
import net.fabricmc.mappingio.format.FeatureSetInstantiator;
import net.fabricmc.mappingio.format.FeatureSetBuilder;
import net.fabricmc.mappingio.format.MappingFormat;
import net.fabricmc.mappingio.tree.MappingTreeView;
import net.fabricmc.mappingio.tree.MappingTreeView.ClassMappingView;
Expand All @@ -44,6 +41,8 @@

/**
* A visitor which asserts that the visited mappings are a subset of a superset tree.
*
* <p><b>Experimental feature</b>, may be removed or changed without further notice.
*/
public class SubsetAssertingVisitor implements FlatMappingVisitor {
/**
Expand All @@ -55,8 +54,8 @@ public SubsetAssertingVisitor(MappingTreeView supTree, @Nullable MappingFormat s
this.supTree = supTree;
this.subFormat = subFormat;
this.supDstNsCount = supTree.getMaxNamespaceId();
this.supFeatures = supFormat == null ? FeatureSetInstantiator.withFullSupport() : supFormat.features();
this.subFeatures = subFormat == null ? FeatureSetInstantiator.withFullSupport() : subFormat.features();
this.supFeatures = supFormat == null ? new FeatureSetBuilder(true).build() : supFormat.features();
this.subFeatures = subFormat == null ? new FeatureSetBuilder(true).build() : subFormat.features();
}

@Override
Expand Down Expand Up @@ -275,7 +274,7 @@ public void visitFieldComment(String srcClsName, String srcName, @Nullable Strin
ClassMappingView supCls = Objects.requireNonNull(supTree.getClass(srcClsName), "Incoming field comment's parent class not contained in supTree: " + subFldId);
FieldMappingView supFld = Objects.requireNonNull(supCls.getField(srcName, srcDesc), "Incoming field comment's parent field not contained in supTree: " + subFldId);

assertEquals(supFld.getComment(), comment);
assertEquals(supFld.getComment(), comment, "Incoming comment differs from supTree");
}

@Override
Expand Down Expand Up @@ -360,7 +359,7 @@ public void visitMethodComment(String srcClsName, String srcName, @Nullable Stri
ClassMappingView supCls = Objects.requireNonNull(supTree.getClass(srcClsName), "Incoming method comment's parent class not contained in supTree: " + subMthId);
MethodMappingView supMth = Objects.requireNonNull(supCls.getMethod(srcName, srcDesc), "Incoming method comment's parent method not contained in supTree: " + subMthId);

assertEquals(supMth.getComment(), comment);
assertEquals(supMth.getComment(), comment, "Incoming comment differs from supTree");
}

@Override
Expand Down Expand Up @@ -436,7 +435,7 @@ public void visitMethodArgComment(String srcClsName, String srcMethodName, @Null
MethodMappingView supMth = Objects.requireNonNull(supCls.getMethod(srcMethodName, srcMethodDesc), "Incoming arg comment's parent method not contained in supTree: " + subArgId);
MethodArgMappingView supArg = Objects.requireNonNull(supMth.getArg(argPosition, lvIndex, srcArgName), "Incoming arg comment's parent arg not contained in supTree: " + subArgId);

assertEquals(supArg.getComment(), comment);
assertEquals(supArg.getComment(), comment, "Incoming comment differs from supTree");
}

@Override
Expand Down Expand Up @@ -524,7 +523,19 @@ public void visitMethodVarComment(String srcClsName, String srcMethodName, @Null
MethodMappingView supMth = Objects.requireNonNull(supCls.getMethod(srcMethodName, srcMethodDesc), "Incoming var comment's parent method not contained in supTree: " + subVarId);
MethodVarMappingView supVar = Objects.requireNonNull(supMth.getVar(lvtRowIndex, lvIndex, startOpIdx, endOpIdx, srcVarName), "Incoming var comment's parent var not contained in supTree: " + subVarId);

assertEquals(supVar.getComment(), comment);
assertEquals(supVar.getComment(), comment, "Incoming comment differs from supTree");
}

private void assertTrue(boolean condition, String message) {
if (!condition) {
throw new AssertionError(message);
}
}

private void assertEquals(Object expected, Object actual, String message) {
if (!Objects.equals(expected, actual)) {
throw new AssertionError(message + ": Expected: " + expected + ", Actual: " + actual);
}
}

private boolean isEmpty(String[] arr) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,27 @@
* limitations under the License.
*/

package net.fabricmc.mappingio.test.visitors;
package net.fabricmc.mappingio.adapter;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;

import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;

import net.fabricmc.mappingio.MappedElementKind;
import net.fabricmc.mappingio.MappingVisitor;
import net.fabricmc.mappingio.adapter.ForwardingMappingVisitor;

/**
* Visitor which verifies on each visit call that the invoked visits were in accordance
* with the expected order of visitation, as defined in {@link MappingVisitor}'s Javadocs.
*
* <p><b>Experimental feature</b>, may be removed or changed without further notice.
*/
@ApiStatus.Experimental
public class VisitOrderVerifyingVisitor extends ForwardingMappingVisitor {
public VisitOrderVerifyingVisitor(MappingVisitor next) {
this(next, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ public static FeatureSetBuilder createFrom(FeatureSet featureSet) {
featureSet.hasFileComments());
}

FeatureSetBuilder(boolean initWithFullSupport) {
@ApiStatus.Internal
public FeatureSetBuilder(boolean initWithFullSupport) {
this(initWithFullSupport,
initWithFullSupport ? MetadataSupport.ARBITRARY : MetadataSupport.NONE,
initWithFullSupport ? MetadataSupport.ARBITRARY : MetadataSupport.NONE,
Expand Down

This file was deleted.

4 changes: 2 additions & 2 deletions src/test/java/net/fabricmc/mappingio/test/TestMappings.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@
import net.fabricmc.mappingio.MappingUtil;
import net.fabricmc.mappingio.MappingVisitor;
import net.fabricmc.mappingio.adapter.ForwardingMappingVisitor;
import net.fabricmc.mappingio.adapter.NopMappingVisitor;
import net.fabricmc.mappingio.adapter.OuterClassNamePropagator;
import net.fabricmc.mappingio.adapter.VisitOrderVerifyingVisitor;
import net.fabricmc.mappingio.format.MappingFormat;
import net.fabricmc.mappingio.format.intellij.MigrationMapConstants;
import net.fabricmc.mappingio.test.lib.jool.Unchecked;
import net.fabricmc.mappingio.test.visitors.NopMappingVisitor;
import net.fabricmc.mappingio.test.visitors.VisitOrderVerifyingVisitor;

/*
* After any changes to the "generate" methods, run the "generateTestMappings" Gradle task
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@
import net.fabricmc.mappingio.MappingFlag;
import net.fabricmc.mappingio.MappingVisitor;
import net.fabricmc.mappingio.adapter.FlatAsRegularMappingVisitor;
import net.fabricmc.mappingio.adapter.NopMappingVisitor;
import net.fabricmc.mappingio.adapter.OuterClassNamePropagator;
import net.fabricmc.mappingio.adapter.SubsetAssertingVisitor;
import net.fabricmc.mappingio.format.MappingFormat;
import net.fabricmc.mappingio.test.TestMappings;
import net.fabricmc.mappingio.test.TestMappings.MappingDir;
import net.fabricmc.mappingio.test.visitors.NopMappingVisitor;
import net.fabricmc.mappingio.test.visitors.SubsetAssertingVisitor;
import net.fabricmc.mappingio.tree.MappingTreeView;
import net.fabricmc.mappingio.tree.MemoryMappingTree;
import net.fabricmc.mappingio.tree.VisitableMappingTree;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@
import org.opentest4j.AssertionFailedError;

import net.fabricmc.mappingio.MappingReader;
import net.fabricmc.mappingio.adapter.NopMappingVisitor;
import net.fabricmc.mappingio.format.MappingFormat;
import net.fabricmc.mappingio.test.TestMappings;
import net.fabricmc.mappingio.test.TestMappings.MappingDir;
import net.fabricmc.mappingio.test.visitors.NopMappingVisitor;

public class DetectionTest {
@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.junit.jupiter.api.Test;

import net.fabricmc.mappingio.MappingVisitor;
import net.fabricmc.mappingio.adapter.VisitOrderVerifyingVisitor;
import net.fabricmc.mappingio.format.enigma.EnigmaFileReader;
import net.fabricmc.mappingio.format.intellij.MigrationMapFileReader;
import net.fabricmc.mappingio.format.jobf.JobfFileReader;
Expand All @@ -35,7 +36,6 @@
import net.fabricmc.mappingio.format.srg.TsrgFileReader;
import net.fabricmc.mappingio.format.tiny.Tiny1FileReader;
import net.fabricmc.mappingio.format.tiny.Tiny2FileReader;
import net.fabricmc.mappingio.test.visitors.VisitOrderVerifyingVisitor;
import net.fabricmc.mappingio.tree.MemoryMappingTree;

public class EmptyContentReadTest {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@
import net.fabricmc.mappingio.MappingVisitor;
import net.fabricmc.mappingio.adapter.FlatAsRegularMappingVisitor;
import net.fabricmc.mappingio.adapter.MappingSourceNsSwitch;
import net.fabricmc.mappingio.adapter.SubsetAssertingVisitor;
import net.fabricmc.mappingio.adapter.VisitOrderVerifyingVisitor;
import net.fabricmc.mappingio.format.MappingFormat;
import net.fabricmc.mappingio.test.TestMappings;
import net.fabricmc.mappingio.test.TestMappings.MappingDir;
import net.fabricmc.mappingio.test.visitors.SubsetAssertingVisitor;
import net.fabricmc.mappingio.test.visitors.VisitOrderVerifyingVisitor;
import net.fabricmc.mappingio.tree.MappingTreeView;
import net.fabricmc.mappingio.tree.MemoryMappingTree;
import net.fabricmc.mappingio.tree.VisitableMappingTree;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@
import net.fabricmc.mappingio.MappingReader;
import net.fabricmc.mappingio.MappingVisitor;
import net.fabricmc.mappingio.adapter.FlatAsRegularMappingVisitor;
import net.fabricmc.mappingio.adapter.SubsetAssertingVisitor;
import net.fabricmc.mappingio.adapter.VisitOrderVerifyingVisitor;
import net.fabricmc.mappingio.test.TestMappings;
import net.fabricmc.mappingio.test.visitors.SubsetAssertingVisitor;
import net.fabricmc.mappingio.test.visitors.VisitOrderVerifyingVisitor;
import net.fabricmc.mappingio.tree.MappingTree.ClassMapping;
import net.fabricmc.mappingio.tree.MappingTree.FieldMapping;
import net.fabricmc.mappingio.tree.MemoryMappingTree;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
import org.junit.jupiter.api.Test;

import net.fabricmc.mappingio.MappingFlag;
import net.fabricmc.mappingio.adapter.NopMappingVisitor;
import net.fabricmc.mappingio.test.TestMappings;
import net.fabricmc.mappingio.test.visitors.NopMappingVisitor;
import net.fabricmc.mappingio.tree.MemoryMappingTree;
import net.fabricmc.mappingio.tree.VisitableMappingTree;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@
import net.fabricmc.mappingio.MappingFlag;
import net.fabricmc.mappingio.MappingVisitor;
import net.fabricmc.mappingio.adapter.FlatAsRegularMappingVisitor;
import net.fabricmc.mappingio.adapter.SubsetAssertingVisitor;
import net.fabricmc.mappingio.adapter.VisitOrderVerifyingVisitor;
import net.fabricmc.mappingio.format.MappingFormat;
import net.fabricmc.mappingio.test.TestMappings;
import net.fabricmc.mappingio.test.TestMappings.MappingDir;
import net.fabricmc.mappingio.test.visitors.SubsetAssertingVisitor;
import net.fabricmc.mappingio.test.visitors.VisitOrderVerifyingVisitor;
import net.fabricmc.mappingio.tree.MappingTree;
import net.fabricmc.mappingio.tree.MappingTreeView;
import net.fabricmc.mappingio.tree.MemoryMappingTree;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@
import net.fabricmc.mappingio.adapter.FlatAsRegularMappingVisitor;
import net.fabricmc.mappingio.adapter.ForwardingMappingVisitor;
import net.fabricmc.mappingio.adapter.MappingNsCompleter;
import net.fabricmc.mappingio.adapter.SubsetAssertingVisitor;
import net.fabricmc.mappingio.format.MappingFormat;
import net.fabricmc.mappingio.test.TestMappings;
import net.fabricmc.mappingio.test.TestMappings.MappingDir;
import net.fabricmc.mappingio.test.TestUtil;
import net.fabricmc.mappingio.test.visitors.SubsetAssertingVisitor;
import net.fabricmc.mappingio.tree.MappingTreeView;
import net.fabricmc.mappingio.tree.MemoryMappingTree;
import net.fabricmc.mappingio.tree.VisitableMappingTree;
Expand Down

0 comments on commit 1096cba

Please sign in to comment.