Class JobfFileWriter
java.lang.Object
net.fabricmc.mappingio.format.jobf.JobfFileWriter
- All Implemented Interfaces:
Closeable, AutoCloseable, MappingVisitor, MappingWriter
JOBF file writer.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()getFlags()booleanvisitClass(String srcName) Visit a class.voidvisitComment(MappedElementKind targetKind, String comment) Comment for the specified element (last content-visited or any parent).voidvisitDstName(MappedElementKind targetKind, int namespace, String name) Destination name for the current element.booleanvisitElementContent(MappedElementKind targetKind) Determine whether the element content (comment, sub-elements) should be visited.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.voidvisitNamespaces(String srcNamespace, List<String> dstNamespaces) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface MappingVisitor
reset, visitContent, visitDstDesc, visitHeader, visitMetadataMethods inherited from interface MappingWriter
visitEnd
-
Constructor Details
-
JobfFileWriter
-
-
Method Details
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
getFlags
- Specified by:
getFlagsin interfaceMappingVisitor
-
visitNamespaces
- Specified by:
visitNamespacesin interfaceMappingVisitor- Throws:
IOException
-
visitClass
Description copied from interface:MappingVisitorVisit a class.- Specified by:
visitClassin interfaceMappingVisitor- 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- Throws:
IOException
-
visitMethod
- Specified by:
visitMethodin interfaceMappingVisitor- 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- 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- 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
Description copied from interface:MappingVisitorDestination name for the current element.- Specified by:
visitDstNamein interfaceMappingVisitor- Parameters:
namespace- Namespace index (index into the dstNamespaces list inMappingVisitor.visitNamespaces(String, List)).name- Destination name.
-
visitElementContent
Description copied from interface:MappingVisitorDetermine whether the element content (comment, sub-elements) should be visited.Called after visiting the target itself (e.g. visitClass for targetKind=class), its dst names and descs, but before any child elements or the comment.
This is also a notification about all available dst names having been passed on.
- Specified by:
visitElementContentin interfaceMappingVisitor- Returns:
trueif the contents are to be visited,falseotherwise- Throws:
IOException
-
visitComment
Description copied from interface:MappingVisitorComment for the specified element (last content-visited or any parent).- Specified by:
visitCommentin interfaceMappingVisitor- Parameters:
comment- Comment as a potentially multi-line string.- Throws:
IOException
-