Class RedundantDstDataFilter
java.lang.Object
net.fabricmc.mappingio.adapter.ForwardingMappingVisitor
net.fabricmc.mappingio.adapter.RedundantDstDataFilter
- All Implemented Interfaces:
MappingVisitor
A mapping visitor that nulls out destination names and descriptors that are equal to their source counterparts.
- API Note:
- Extending this class is allowed, but no guarantees are made regarding the stability of its protected members.
-
Field Summary
FieldsFields inherited from class ForwardingMappingVisitor
next -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidinit()voidreset()Reset the visitor, including any chained visitors, to allow for another independent visit (excluding visitEnd=false).booleanvisitClass(String srcName) Visit a class.voidvisitDstDesc(MappedElementKind targetKind, int namespace, String desc) voidvisitDstName(MappedElementKind targetKind, int namespace, String name) Destination name for the current element.booleanvisitEnd()Finish the visitation pass.booleanvisitField(String srcName, @Nullable String srcDesc) booleanvisitMethod(String srcName, @Nullable String srcDesc) booleanvisitMethodArg(int argPosition, int lvIndex, @Nullable String srcName) Visit a parameter.booleanvisitMethodVar(int lvtRowIndex, int lvIndex, int startOpIdx, int endOpIdx, @Nullable String srcName) Visit a variable.Methods inherited from class ForwardingMappingVisitor
getFlags, visitComment, visitContent, visitElementContent, visitHeader, visitMetadata, visitNamespaces
-
Field Details
-
srcName
-
srcDesc
-
-
Constructor Details
-
RedundantDstDataFilter
-
-
Method Details
-
init
protected void init() -
reset
public void reset()Description copied from interface:MappingVisitorReset the visitor, including any chained visitors, to allow for another independent visit (excluding visitEnd=false).- Specified by:
resetin interfaceMappingVisitor- Overrides:
resetin classForwardingMappingVisitor
-
visitClass
Description copied from interface:MappingVisitorVisit a class.- Specified by:
visitClassin interfaceMappingVisitor- Overrides:
visitClassin classForwardingMappingVisitor- Parameters:
srcName- The fully qualified source name of the class, in internal form (slashes instead of dots, dollar signs for delimiting inner classes).- Returns:
- Whether the class's content should be visited too.
- Throws:
IOException
-
visitField
- Specified by:
visitFieldin interfaceMappingVisitor- Overrides:
visitFieldin classForwardingMappingVisitor- Throws:
IOException
-
visitMethod
- Specified by:
visitMethodin interfaceMappingVisitor- Overrides:
visitMethodin classForwardingMappingVisitor- Throws:
IOException
-
visitMethodArg
public boolean visitMethodArg(int argPosition, int lvIndex, @Nullable @Nullable String srcName) throws IOException Description copied from interface:MappingVisitorVisit a parameter.- Specified by:
visitMethodArgin interfaceMappingVisitor- Overrides:
visitMethodArgin classForwardingMappingVisitor- Parameters:
argPosition- Always starts at 0 and gets incremented by 1 for each additional parameter.lvIndex- The parameter's local variable index in the current method, also known asslot. Starts at 0 for static methods, 1 otherwise. For each additional parameter, it gets incremented by 1, or by 2 if it's a double-wide primitive (longordouble).srcName- The optional source name of the parameter.- Returns:
- Whether the arg's content should be visited too.
- Throws:
IOException
-
visitMethodVar
public boolean visitMethodVar(int lvtRowIndex, int lvIndex, int startOpIdx, int endOpIdx, @Nullable @Nullable String srcName) throws IOException Description copied from interface:MappingVisitorVisit a variable.- Specified by:
visitMethodVarin interfaceMappingVisitor- Overrides:
visitMethodVarin classForwardingMappingVisitor- Parameters:
lvtRowIndex- The variable's index in the method's LVT (local variable table). It is optional, so -1 can be passed instead. This is the case since LVTs themselves are optional debug information, see JVMS 4.7.13.lvIndex- The var's local variable index in the current method, also known asslot. For each additional variable, it gets incremented by 1, or by 2 if it's a double-wide primitive (longordouble). The first variable starts at the last parameter's slot plus wideness.startOpIdx- Required for cases when the lvIndex alone doesn't uniquely identify a local variable. This is the case when variables get re-defined later on, in which case most decompilers opt to not re-define the existing var, but instead generate a new one (with both sharing the same lvIndex).endOpIdx- Counterpart to startOpIdx. Exclusive.srcName- The optional source name of the variable.- Returns:
- Whether the var's content should be visited too.
- Throws:
IOException
-
visitDstName
public void visitDstName(MappedElementKind targetKind, int namespace, String name) throws IOException Description copied from interface:MappingVisitorDestination name for the current element.- Specified by:
visitDstNamein interfaceMappingVisitor- Overrides:
visitDstNamein classForwardingMappingVisitor- Parameters:
namespace- Namespace index (index into the dstNamespaces list inMappingVisitor.visitNamespaces(String, List)).name- Destination name.- Throws:
IOException
-
visitDstDesc
public void visitDstDesc(MappedElementKind targetKind, int namespace, String desc) throws IOException - Specified by:
visitDstDescin interfaceMappingVisitor- Overrides:
visitDstDescin classForwardingMappingVisitor- Throws:
IOException
-
visitEnd
Description copied from interface:MappingVisitorFinish the visitation pass.Implementors may throw an exception if a second pass is requested without the
NEEDS_MULTIPLE_PASSESflag having been passed beforehand, but only if that behavior is documented.- Specified by:
visitEndin interfaceMappingVisitor- Overrides:
visitEndin classForwardingMappingVisitor- Returns:
trueif the visitation pass is final,falseif it should be started over.- Throws:
IOException
-