cache: use id to uniquely name fields

This commit is contained in:
Adam
2017-07-08 22:41:11 -04:00
parent 57ce1a1c46
commit cba8c83ca6
5 changed files with 12 additions and 16 deletions

View File

@@ -90,6 +90,7 @@ public class InterfaceManager
public void java(File java) throws IOException
{
System.setProperty("line.separator", "\n");
java.mkdirs();
File targ = new File(java, "InterfaceID.java");
try (PrintWriter fw = new PrintWriter(targ))
@@ -105,7 +106,7 @@ public class InterfaceManager
continue;
}
String name = namer.name(def.name);
String name = namer.name(def.name, def.id);
if (name == null)
{
continue;

View File

@@ -82,6 +82,7 @@ public class ItemManager
public void java(File java) throws IOException
{
System.setProperty("line.separator", "\n");
java.mkdirs();
File targ = new File(java, "ItemID.java");
try (PrintWriter fw = new PrintWriter(targ))
@@ -98,7 +99,7 @@ public class ItemManager
continue;
}
String name = namer.name(def.name);
String name = namer.name(def.name, def.id);
if (name == null)
{
continue;

View File

@@ -77,6 +77,7 @@ public class NpcManager
public void java(File java) throws IOException
{
System.setProperty("line.separator", "\n");
java.mkdirs();
File targ = new File(java, "NpcID.java");
try (PrintWriter fw = new PrintWriter(targ))
@@ -93,7 +94,7 @@ public class NpcManager
continue;
}
String name = namer.name(def.name);
String name = namer.name(def.name, def.id);
if (name == null)
{
continue;

View File

@@ -82,6 +82,7 @@ public class ObjectManager
public void java(File java) throws IOException
{
System.setProperty("line.separator", "\n");
java.mkdirs();
File targ = new File(java, "ObjectID.java");
try (PrintWriter fw = new PrintWriter(targ))
@@ -98,7 +99,7 @@ public class ObjectManager
continue;
}
String name = namer.name(def.getName());
String name = namer.name(def.getName(), def.getId());
if (name == null)
{
continue;

View File

@@ -31,7 +31,7 @@ public class Namer
{
private final Set<String> used = new HashSet<>();
public String name(String name)
public String name(String name, int id)
{
name = sanitize(name);
@@ -40,20 +40,12 @@ public class Namer
return null;
}
String suffix = "";
while (used.contains(name + suffix))
if (used.contains(name))
{
if (suffix.isEmpty())
{
suffix = "_2";
}
else
{
suffix = "_" + (Integer.parseInt(suffix.substring(1)) + 1);
}
name = name + "_" + id;
assert !used.contains(name);
}
name += suffix;
used.add(name);
return name;