Skip to content

Commit c646586

Browse files
authored
Add Javadocs to mapping formats (#50)
* Link format specs and add feature comparison table * Remove `MCP_DIR` format
1 parent c149a52 commit c646586

File tree

2 files changed

+109
-3
lines changed

2 files changed

+109
-3
lines changed

src/main/java/net/fabricmc/mappingio/MappingReader.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,6 @@ public static void read(Path file, MappingFormat format, MappingVisitor visitor)
157157
case ENIGMA_DIR:
158158
EnigmaDirReader.read(file, visitor);
159159
break;
160-
case MCP_DIR:
161-
throw new UnsupportedOperationException(); // TODO: implement
162160
default:
163161
throw new IllegalStateException();
164162
}

src/main/java/net/fabricmc/mappingio/format/MappingFormat.java

Lines changed: 109 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,123 @@
1616

1717
package net.fabricmc.mappingio.format;
1818

19+
/**
20+
* Represents a supported mapping format. Feature comparison table:
21+
* <table>
22+
* <tr>
23+
* <th>Format</th>
24+
* <th>Namespaces</th>
25+
* <th>Field descriptors</th>
26+
* <th>Comments</th>
27+
* <th>Parameters</th>
28+
* <th>Local variables</th>
29+
* <th>Metadata</th>
30+
* </tr>
31+
* <tr>
32+
* <td>Tiny v1</td>
33+
* <td>✔</td>
34+
* <td>✔</td>
35+
* <td>✖</td>
36+
* <td>✖</td>
37+
* <td>✖</td>
38+
* <td>✔ (Currently limited support)</td>
39+
* </tr>
40+
* <tr>
41+
* <td>Tiny v2</td>
42+
* <td>✔</td>
43+
* <td>✔</td>
44+
* <td>✔</td>
45+
* <td>✔</td>
46+
* <td>✔</td>
47+
* <td>✔</td>
48+
* </tr>
49+
* <tr>
50+
* <td>Enigma</td>
51+
* <td>✖</td>
52+
* <td>✔</td>
53+
* <td>✔</td>
54+
* <td>✔</td>
55+
* <td>✖</td>
56+
* <td>✖</td>
57+
* </tr>
58+
* <tr>
59+
* <td>SRG</td>
60+
* <td>✖</td>
61+
* <td>✖</td>
62+
* <td>✖</td>
63+
* <td>✖</td>
64+
* <td>✖</td>
65+
* <td>✖</td>
66+
* </tr>
67+
* <tr>
68+
* <td>TSRG</td>
69+
* <td>✖</td>
70+
* <td>✖</td>
71+
* <td>✖</td>
72+
* <td>✖</td>
73+
* <td>✖</td>
74+
* <td>✖</td>
75+
* </tr>
76+
* <tr>
77+
* <td>TSRG2</td>
78+
* <td>✔</td>
79+
* <td>✖</td>
80+
* <td>✖</td>
81+
* <td>✔</td>
82+
* <td>✖</td>
83+
* <td>✖</td>
84+
* </tr>
85+
* <tr>
86+
* <td>ProGuard</td>
87+
* <td>✖</td>
88+
* <td>✔</td>
89+
* <td>✖</td>
90+
* <td>✖</td>
91+
* <td>✖</td>
92+
* <td>✖</td>
93+
* </tr>
94+
* </table>
95+
*/
96+
// Format order is determined by importance to Fabric tooling, format family and release order therein.
1997
public enum MappingFormat {
98+
/**
99+
* The {@code Tiny} mapping format, as specified <a href="https://fabricmc.net/wiki/documentation:tiny">here</a>.
100+
*/
20101
TINY_FILE("Tiny file", "tiny", true, true, false, false, false),
102+
103+
/**
104+
* The {@code Tiny v2} mapping format, as specified <a href="https://fabricmc.net/wiki/documentation:tiny2">here</a>.
105+
*/
21106
TINY_2_FILE("Tiny v2 file", "tiny", true, true, true, true, true),
107+
108+
/**
109+
* Enigma's mapping format, as specified <a href="https://fabricmc.net/wiki/documentation:enigma_mappings">here</a>.
110+
*/
22111
ENIGMA_FILE("Enigma file", "mapping", false, true, true, true, false),
112+
113+
/**
114+
* Enigma's mapping format (in directory form), as specified <a href="https://fabricmc.net/wiki/documentation:enigma_mappings">here</a>.
115+
*/
23116
ENIGMA_DIR("Enigma directory", null, false, true, true, true, false),
24-
MCP_DIR("MCP directory", null, false, false, true, true, false),
117+
118+
/**
119+
* The {@code SRG} ({@code Searge RetroGuard}) mapping format, as specified <a href="https://github.com/MinecraftForge/SrgUtils/blob/67f30647ece29f18256ca89a23cda6216d6bd21e/src/main/java/net/minecraftforge/srgutils/InternalUtils.java#L69-L81">here</a>.
120+
*/
25121
SRG_FILE("SRG file", "srg", false, false, false, false, false),
122+
123+
/**
124+
* The {@code TSRG} ({@code Tiny SRG}, since it saves disk space over SRG) mapping format, as specified <a href="https://github.com/MinecraftForge/SrgUtils/blob/67f30647ece29f18256ca89a23cda6216d6bd21e/src/main/java/net/minecraftforge/srgutils/InternalUtils.java#L196-L213">here</a>.
125+
*/
26126
TSRG_FILE("TSRG file", "tsrg", false, false, false, false, false),
127+
128+
/**
129+
* The {@code TSRG v2} mapping format, as specified <a href="https://github.com/MinecraftForge/SrgUtils/blob/67f30647ece29f18256ca89a23cda6216d6bd21e/src/main/java/net/minecraftforge/srgutils/InternalUtils.java#L262-L285">here</a>.
130+
*/
27131
TSRG_2_FILE("TSRG2 file", "tsrg", true, false, false, true, false),
132+
133+
/**
134+
* ProGuard's mapping format, as specified <a href="https://www.guardsquare.com/manual/tools/retrace">here</a>.
135+
*/
28136
PROGUARD_FILE("ProGuard file", "txt", false, true, false, false, false);
29137

30138
MappingFormat(String name, String fileExt,

0 commit comments

Comments
 (0)