Simplify the energy value test suite and remove more deprecated classes
This commit is contained in:
parent
747f67f16f
commit
85f8d4bfa8
|
@ -14,7 +14,7 @@ import com.pahimar.ee3.recipe.RecipeRegistry;
|
|||
import com.pahimar.ee3.reference.Files;
|
||||
import com.pahimar.ee3.reference.Messages;
|
||||
import com.pahimar.ee3.reference.Reference;
|
||||
import com.pahimar.ee3.test.EnergyValueMappingsTestSuite;
|
||||
import com.pahimar.ee3.test.EnergyValueTestSuite;
|
||||
import com.pahimar.ee3.util.FluidHelper;
|
||||
import com.pahimar.ee3.util.LogHelper;
|
||||
import com.pahimar.ee3.util.SerializationHelper;
|
||||
|
@ -167,13 +167,12 @@ public class EquivalentExchange3
|
|||
return TileEntityDataHelper.getInstance();
|
||||
}
|
||||
|
||||
public void runEnergyValueMappingTest(File file)
|
||||
public void runEnergyValueTestSuite(File file)
|
||||
{
|
||||
runEnergyValueMappingTest(file, false);
|
||||
runEnergyValueTestSuite(file, false);
|
||||
}
|
||||
|
||||
public void runEnergyValueMappingTest(File file, boolean strict)
|
||||
{
|
||||
new EnergyValueMappingsTestSuite(file).runTestSuite(strict);
|
||||
public void runEnergyValueTestSuite(File file, boolean strict) {
|
||||
new EnergyValueTestSuite(file).run(strict);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ public class EnergyValueMappingsTester
|
|||
|
||||
if (ee3Mod != null)
|
||||
{
|
||||
EE3Wrapper.ee3mod.runEnergyValueMappingTest(file, strict);
|
||||
EE3Wrapper.ee3mod.runEnergyValueTestSuite(file, strict);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -161,6 +161,11 @@ public class BlacklistRegistry {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO Finish JavaDoc
|
||||
*
|
||||
* @param shouldSave
|
||||
*/
|
||||
public void setShouldSave(boolean shouldSave) {
|
||||
this.shouldSave = shouldSave;
|
||||
}
|
||||
|
@ -185,6 +190,12 @@ public class BlacklistRegistry {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO Finish JavaDoc
|
||||
*
|
||||
* @param blacklistSet
|
||||
* @param blacklist
|
||||
*/
|
||||
public void load(Set<WrappedStack> blacklistSet, Blacklist blacklist) {
|
||||
|
||||
if (blacklist != null && blacklistSet != null) {
|
||||
|
|
|
@ -3,7 +3,7 @@ package com.pahimar.ee3.command;
|
|||
import com.pahimar.ee3.reference.Messages;
|
||||
import com.pahimar.ee3.reference.Names;
|
||||
import com.pahimar.ee3.reference.Reference;
|
||||
import com.pahimar.ee3.test.EnergyValueMappingsTestSuite;
|
||||
import com.pahimar.ee3.test.EnergyValueTestSuite;
|
||||
import com.pahimar.ee3.util.LogHelper;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import net.minecraft.command.ICommandSender;
|
||||
|
@ -37,30 +37,26 @@ public class CommandRunTest extends CommandEE
|
|||
@Override
|
||||
public void processCommand(ICommandSender commandSender, String[] args)
|
||||
{
|
||||
if (args.length == 2)
|
||||
{
|
||||
if (args.length == 2) {
|
||||
|
||||
File testCaseDirectory = new File(FMLCommonHandler.instance().getMinecraftServerInstance().getEntityWorld().getSaveHandler().getWorldDirectory(), "data" + File.separator + Reference.LOWERCASE_MOD_ID + File.separator + "energyvalues" + File.separator + "testcases");
|
||||
testCaseDirectory.mkdirs();
|
||||
boolean testFound = false;
|
||||
|
||||
for (File testCaseFile : testCaseDirectory.listFiles())
|
||||
{
|
||||
if (testCaseFile.isFile() && testCaseFile.getName().equalsIgnoreCase(args[1]))
|
||||
{
|
||||
for (File testCaseFile : testCaseDirectory.listFiles()) {
|
||||
if (testCaseFile.isFile() && testCaseFile.getName().equalsIgnoreCase(args[1])) {
|
||||
testFound = true;
|
||||
EnergyValueMappingsTestSuite energyValueMappingsTestSuite = new EnergyValueMappingsTestSuite(testCaseFile);
|
||||
LogHelper.info(EnergyValueMappingsTestSuite.TEST_MARKER, "BEGIN TEST ({})", testCaseFile.getName());
|
||||
energyValueMappingsTestSuite.runTestSuite();
|
||||
LogHelper.info(EnergyValueMappingsTestSuite.TEST_MARKER, "END TEST ({})", testCaseFile.getName());
|
||||
EnergyValueTestSuite energyValueTestSuite = new EnergyValueTestSuite(testCaseFile);
|
||||
LogHelper.info(EnergyValueTestSuite.TEST_MARKER, "BEGIN TEST ({})", testCaseFile.getName());
|
||||
energyValueTestSuite.run();
|
||||
LogHelper.info(EnergyValueTestSuite.TEST_MARKER, "END TEST ({})", testCaseFile.getName());
|
||||
}
|
||||
}
|
||||
|
||||
if (testFound)
|
||||
{
|
||||
if (testFound) {
|
||||
commandSender.addChatMessage(new ChatComponentTranslation(Messages.Commands.RUN_TESTS_SUCCESS, args[1]));
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
commandSender.addChatMessage(new ChatComponentTranslation(Messages.Commands.RUN_TESTS_NOT_FOUND, args[1]));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -526,6 +526,11 @@ public class EnergyValueRegistry {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO Finish JavaDoc
|
||||
*
|
||||
* @param shouldSave
|
||||
*/
|
||||
public void setShouldSave(boolean shouldSave) {
|
||||
this.shouldSave = shouldSave;
|
||||
}
|
||||
|
|
|
@ -1,138 +0,0 @@
|
|||
package com.pahimar.ee3.exchange;
|
||||
|
||||
import com.google.gson.*;
|
||||
import com.pahimar.ee3.api.exchange.EnergyValue;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
@Deprecated
|
||||
public class EnergyValueStackMapping implements JsonSerializer<EnergyValueStackMapping>, JsonDeserializer<EnergyValueStackMapping>
|
||||
{
|
||||
public static final Gson jsonSerializer = (new GsonBuilder()).setPrettyPrinting().registerTypeAdapter(EnergyValueStackMapping.class, new EnergyValueStackMapping()).registerTypeAdapter(EnergyValue.class, new EnergyValue()).registerTypeAdapter(WrappedStack.class, new WrappedStack()).create();
|
||||
|
||||
public final WrappedStack wrappedStack;
|
||||
public final EnergyValue energyValue;
|
||||
|
||||
public EnergyValueStackMapping()
|
||||
{
|
||||
wrappedStack = null;
|
||||
energyValue = null;
|
||||
}
|
||||
|
||||
public EnergyValueStackMapping(WrappedStack wrappedStack, EnergyValue energyValue)
|
||||
{
|
||||
this.wrappedStack = wrappedStack;
|
||||
this.energyValue = energyValue;
|
||||
}
|
||||
|
||||
public static EnergyValueStackMapping createFromJson(String jsonStackValueMapping)
|
||||
{
|
||||
try
|
||||
{
|
||||
return jsonSerializer.fromJson(jsonStackValueMapping, EnergyValueStackMapping.class);
|
||||
}
|
||||
catch (JsonSyntaxException exception)
|
||||
{
|
||||
exception.printStackTrace();
|
||||
}
|
||||
catch (JsonParseException exception)
|
||||
{
|
||||
exception.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public String toJson()
|
||||
{
|
||||
return jsonSerializer.toJson(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gson invokes this call-back method during deserialization when it encounters a field of the
|
||||
* specified type.
|
||||
* <p>In the implementation of this call-back method, you should consider invoking
|
||||
* {@link com.google.gson.JsonDeserializationContext#deserialize(com.google.gson.JsonElement, java.lang.reflect.Type)} method to create objects
|
||||
* for any non-trivial field of the returned object. However, you should never invoke it on the
|
||||
* the same type passing {@code jsonElement} since that will cause an infinite loop (Gson will call your
|
||||
* call-back method again).
|
||||
*
|
||||
* @param jsonElement The Json data being deserialized
|
||||
* @param typeOfT The type of the Object to deserialize to
|
||||
* @param context
|
||||
* @return a deserialized object of the specified type typeOfT which is a subclass of {@code T}
|
||||
* @throws com.google.gson.JsonParseException if jsonElement is not in the expected format of {@code typeofT}
|
||||
*/
|
||||
@Override
|
||||
public EnergyValueStackMapping deserialize(JsonElement jsonElement, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
|
||||
{
|
||||
if (!jsonElement.isJsonPrimitive())
|
||||
{
|
||||
JsonObject jsonStackValueMapping = (JsonObject) jsonElement;
|
||||
|
||||
WrappedStack wrappedStack = null;
|
||||
EnergyValue energyValue = null;
|
||||
|
||||
if (jsonStackValueMapping.get("wrappedStack") != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
wrappedStack = new WrappedStack().deserialize(jsonStackValueMapping.get("wrappedStack").getAsJsonObject(), typeOfT, context);
|
||||
}
|
||||
catch (JsonParseException e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (jsonStackValueMapping.get("energyValue") != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
energyValue = new EnergyValue().deserialize(jsonStackValueMapping.get("energyValue").getAsJsonObject(), typeOfT, context);
|
||||
}
|
||||
catch (JsonParseException e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (wrappedStack != null && energyValue != null)
|
||||
{
|
||||
return new EnergyValueStackMapping(wrappedStack, energyValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gson invokes this call-back method during serialization when it encounters a field of the
|
||||
* specified type.
|
||||
* <p/>
|
||||
* <p>In the implementation of this call-back method, you should consider invoking
|
||||
* {@link com.google.gson.JsonSerializationContext#serialize(Object, java.lang.reflect.Type)} method to create JsonElements for any
|
||||
* non-trivial field of the {@code src} object. However, you should never invoke it on the
|
||||
* {@code src} object itself since that will cause an infinite loop (Gson will call your
|
||||
* call-back method again).</p>
|
||||
*
|
||||
* @param energyValueStackMapping the object that needs to be converted to Json.
|
||||
* @param typeOfSrc the actual type (fully genericized version) of the source object.
|
||||
* @param context
|
||||
* @return a JsonElement corresponding to the specified object.
|
||||
*/
|
||||
@Override
|
||||
public JsonElement serialize(EnergyValueStackMapping energyValueStackMapping, Type typeOfSrc, JsonSerializationContext context)
|
||||
{
|
||||
JsonObject jsonStackValueMapping = new JsonObject();
|
||||
|
||||
jsonStackValueMapping.add("wrappedStack", jsonSerializer.toJsonTree(energyValueStackMapping.wrappedStack));
|
||||
jsonStackValueMapping.add("energyValue", jsonSerializer.toJsonTree(energyValueStackMapping.energyValue));
|
||||
|
||||
return jsonStackValueMapping;
|
||||
}
|
||||
}
|
|
@ -1,107 +0,0 @@
|
|||
package com.pahimar.ee3.exchange;
|
||||
|
||||
import com.google.gson.*;
|
||||
import net.minecraft.nbt.JsonToNBT;
|
||||
import net.minecraft.nbt.NBTBase;
|
||||
import net.minecraft.nbt.NBTException;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
@Deprecated
|
||||
public class JsonFluidStack implements JsonSerializer<JsonFluidStack>, JsonDeserializer<JsonFluidStack>
|
||||
{
|
||||
public static final Gson jsonSerializer = (new GsonBuilder()).registerTypeAdapter(JsonFluidStack.class, new JsonFluidStack()).create();
|
||||
|
||||
public Fluid fluid;
|
||||
public int amount;
|
||||
public NBTTagCompound tag;
|
||||
|
||||
public JsonFluidStack()
|
||||
{
|
||||
this.fluid = null;
|
||||
this.amount = 0;
|
||||
this.tag = null;
|
||||
}
|
||||
|
||||
public JsonFluidStack(FluidStack fluidStack)
|
||||
{
|
||||
this.fluid = fluidStack.getFluid();
|
||||
this.amount = fluidStack.amount;
|
||||
this.tag = fluidStack.tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonFluidStack deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
|
||||
{
|
||||
if (json.isJsonObject())
|
||||
{
|
||||
JsonObject jsonObject = (JsonObject) json;
|
||||
JsonFluidStack jsonFluidStack = new JsonFluidStack();
|
||||
|
||||
if (jsonObject.has("fluidName"))
|
||||
{
|
||||
jsonFluidStack.fluid = FluidRegistry.getFluid(jsonObject.get("fluidName").getAsString());
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new JsonParseException(""); // TODO Exception message
|
||||
}
|
||||
|
||||
if (jsonObject.has("amount"))
|
||||
{
|
||||
jsonFluidStack.amount = jsonObject.get("amount").getAsInt();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new JsonParseException(""); // TODO Exception message
|
||||
}
|
||||
|
||||
if (jsonObject.has("tag"))
|
||||
{
|
||||
try
|
||||
{
|
||||
NBTBase nbtBase = JsonToNBT.func_150315_a(jsonObject.get("tag").getAsString());
|
||||
|
||||
if (nbtBase instanceof NBTTagCompound)
|
||||
{
|
||||
jsonFluidStack.tag = (NBTTagCompound) nbtBase;
|
||||
}
|
||||
}
|
||||
catch (NBTException e)
|
||||
{
|
||||
throw new JsonParseException(e.getMessage(), e.getCause());
|
||||
}
|
||||
}
|
||||
|
||||
return jsonFluidStack;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonElement serialize(JsonFluidStack src, Type typeOfSrc, JsonSerializationContext context)
|
||||
{
|
||||
JsonObject jsonObject = new JsonObject();
|
||||
|
||||
jsonObject.addProperty("fluidName", src.fluid.getName());
|
||||
jsonObject.addProperty("amount", src.amount);
|
||||
|
||||
if (src.tag != null)
|
||||
{
|
||||
jsonObject.addProperty("tag", src.tag.toString());
|
||||
}
|
||||
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return String.format("fluid: %s, amount: %s, tag: %s", fluid, amount, tag);
|
||||
}
|
||||
}
|
|
@ -1,109 +0,0 @@
|
|||
package com.pahimar.ee3.exchange;
|
||||
|
||||
import com.google.gson.*;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.JsonToNBT;
|
||||
import net.minecraft.nbt.NBTBase;
|
||||
import net.minecraft.nbt.NBTException;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
@Deprecated
|
||||
public class JsonItemStack implements JsonSerializer<JsonItemStack>, JsonDeserializer<JsonItemStack>
|
||||
{
|
||||
public static final Gson jsonSerializer = (new GsonBuilder()).registerTypeAdapter(JsonItemStack.class, new JsonItemStack()).create();
|
||||
|
||||
public String itemName;
|
||||
public int itemDamage;
|
||||
public NBTTagCompound itemNBTTagCompound;
|
||||
|
||||
public JsonItemStack()
|
||||
{
|
||||
this.itemName = null;
|
||||
this.itemDamage = 0;
|
||||
this.itemNBTTagCompound = null;
|
||||
}
|
||||
|
||||
public JsonItemStack(ItemStack itemStack)
|
||||
{
|
||||
this.itemName = Item.itemRegistry.getNameForObject(itemStack.getItem());
|
||||
this.itemDamage = itemStack.getItemDamage();
|
||||
if (itemStack.stackTagCompound != null)
|
||||
{
|
||||
this.itemNBTTagCompound = itemStack.getTagCompound();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonItemStack deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
|
||||
{
|
||||
if (json.isJsonObject())
|
||||
{
|
||||
JsonObject jsonObject = (JsonObject) json;
|
||||
JsonItemStack jsonItemStack = new JsonItemStack();
|
||||
|
||||
if (jsonObject.has("itemName"))
|
||||
{
|
||||
jsonItemStack.itemName = jsonObject.get("itemName").getAsString();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new JsonParseException(""); // TODO Exception message
|
||||
}
|
||||
|
||||
if (jsonObject.has("itemDamage"))
|
||||
{
|
||||
jsonItemStack.itemDamage = jsonObject.get("itemDamage").getAsInt();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new JsonParseException(""); // TODO Exception message
|
||||
}
|
||||
|
||||
if (jsonObject.has("itemNBTTagCompound"))
|
||||
{
|
||||
try
|
||||
{
|
||||
NBTBase nbtBase = JsonToNBT.func_150315_a(jsonObject.get("itemNBTTagCompound").getAsString());
|
||||
|
||||
if (nbtBase instanceof NBTTagCompound)
|
||||
{
|
||||
jsonItemStack.itemNBTTagCompound = (NBTTagCompound) nbtBase;
|
||||
}
|
||||
}
|
||||
catch (NBTException e)
|
||||
{
|
||||
throw new JsonParseException(e.getMessage(), e.getCause());
|
||||
}
|
||||
}
|
||||
|
||||
return jsonItemStack;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonElement serialize(JsonItemStack src, Type typeOfSrc, JsonSerializationContext context)
|
||||
{
|
||||
JsonObject jsonObject = new JsonObject();
|
||||
|
||||
jsonObject.addProperty("itemName", src.itemName);
|
||||
jsonObject.addProperty("itemDamage", src.itemDamage);
|
||||
|
||||
if (src.itemNBTTagCompound != null)
|
||||
{
|
||||
jsonObject.addProperty("itemNBTTagCompound", src.itemNBTTagCompound.toString());
|
||||
}
|
||||
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return String.format("itemName: %s, itemDamage: %s, itemNBTTagCompound: %s", itemName, itemDamage, itemNBTTagCompound);
|
||||
}
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
package com.pahimar.ee3.exchange;
|
||||
|
||||
import com.google.gson.*;
|
||||
import com.pahimar.ee3.util.FluidHelper;
|
||||
import com.pahimar.ee3.util.ItemHelper;
|
||||
import net.minecraft.block.Block;
|
||||
|
@ -9,14 +8,11 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
public class WrappedStack implements Comparable<WrappedStack>, JsonDeserializer<WrappedStack>, JsonSerializer<WrappedStack>
|
||||
{
|
||||
public static final Gson jsonSerializer = (new GsonBuilder()).setPrettyPrinting().registerTypeAdapter(WrappedStack.class, new WrappedStack()).create();
|
||||
public class WrappedStack implements Comparable<WrappedStack> {
|
||||
|
||||
private final String objectType;
|
||||
private final Object wrappedStack;
|
||||
|
@ -274,173 +270,6 @@ public class WrappedStack implements Comparable<WrappedStack>, JsonDeserializer<
|
|||
return null;
|
||||
}
|
||||
|
||||
public static WrappedStack createFromJson(String jsonWrappedObject) throws JsonParseException
|
||||
{
|
||||
try
|
||||
{
|
||||
return jsonSerializer.fromJson(jsonWrappedObject, WrappedStack.class);
|
||||
}
|
||||
catch (JsonSyntaxException exception)
|
||||
{
|
||||
exception.printStackTrace();
|
||||
}
|
||||
catch (JsonParseException exception)
|
||||
{
|
||||
exception.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public String toJson()
|
||||
{
|
||||
return jsonSerializer.toJson(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gson invokes this call-back method during deserialization when it encounters a field of the
|
||||
* specified type.
|
||||
* <p>In the implementation of this call-back method, you should consider invoking
|
||||
* {@link com.google.gson.JsonDeserializationContext#deserialize(com.google.gson.JsonElement, java.lang.reflect.Type)} method to create objects
|
||||
* for any non-trivial field of the returned object. However, you should never invoke it on the
|
||||
* the same type passing {@code jsonElement} since that will cause an infinite loop (Gson will call your
|
||||
* call-back method again).
|
||||
*
|
||||
* @param jsonElement The Json data being deserialized
|
||||
* @param typeOfT The type of the Object to deserialize to
|
||||
* @param context
|
||||
* @return a deserialized object of the specified type typeOfT which is a subclass of {@code T}
|
||||
* @throws com.google.gson.JsonParseException if jsonElement is not in the expected format of {@code typeofT}
|
||||
*/
|
||||
@Override
|
||||
public WrappedStack deserialize(JsonElement jsonElement, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
|
||||
{
|
||||
if (!jsonElement.isJsonPrimitive())
|
||||
{
|
||||
JsonObject jsonWrappedStack = (JsonObject) jsonElement;
|
||||
|
||||
int stackSize = 1;
|
||||
String objectType = null;
|
||||
Object stackObject = null;
|
||||
|
||||
if (jsonWrappedStack.get("type") != null)
|
||||
{
|
||||
objectType = jsonWrappedStack.get("type").getAsString();
|
||||
}
|
||||
|
||||
if (jsonWrappedStack.get("stackSize") != null)
|
||||
{
|
||||
stackSize = jsonWrappedStack.get("stackSize").getAsInt();
|
||||
}
|
||||
|
||||
if (jsonWrappedStack.get("objectData") != null && !jsonWrappedStack.get("objectData").isJsonPrimitive())
|
||||
{
|
||||
if (objectType != null)
|
||||
{
|
||||
if (objectType.equalsIgnoreCase("ItemStack"))
|
||||
{
|
||||
JsonItemStack jsonItemStack = JsonItemStack.jsonSerializer.fromJson(jsonWrappedStack.get("objectData"), JsonItemStack.class);
|
||||
ItemStack itemStack = null;
|
||||
Item item = (Item) Item.itemRegistry.getObject(jsonItemStack.itemName);
|
||||
if (stackSize > 0 && item != null)
|
||||
{
|
||||
itemStack = new ItemStack(item, stackSize, jsonItemStack.itemDamage);
|
||||
if (jsonItemStack.itemNBTTagCompound != null)
|
||||
{
|
||||
itemStack.stackTagCompound = jsonItemStack.itemNBTTagCompound;
|
||||
}
|
||||
}
|
||||
stackObject = itemStack;
|
||||
}
|
||||
else if (objectType.equalsIgnoreCase("OreStack"))
|
||||
{
|
||||
OreStack oreStack = jsonSerializer.fromJson(jsonWrappedStack.get("objectData"), OreStack.class);
|
||||
|
||||
if (stackSize > 0)
|
||||
{
|
||||
oreStack.stackSize = stackSize;
|
||||
}
|
||||
stackObject = oreStack;
|
||||
}
|
||||
else if (objectType.equalsIgnoreCase("FluidStack"))
|
||||
{
|
||||
JsonFluidStack jsonFluidStack = JsonFluidStack.jsonSerializer.fromJson(jsonWrappedStack.get("objectData"), JsonFluidStack.class);
|
||||
FluidStack fluidStack = new FluidStack(jsonFluidStack.fluid, jsonFluidStack.amount, jsonFluidStack.tag);
|
||||
|
||||
if (stackSize > 0)
|
||||
{
|
||||
fluidStack.amount = stackSize;
|
||||
}
|
||||
stackObject = fluidStack;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (stackObject != null)
|
||||
{
|
||||
return new WrappedStack(stackObject);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new JsonParseException(String.format("Unable to parse a wrappable stack object from the provided json: %s", jsonElement.toString()));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new JsonParseException(String.format("Unable to parse a wrappable stack object from the provided json: %s", jsonElement.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gson invokes this call-back method during serialization when it encounters a field of the
|
||||
* specified type.
|
||||
* <p/>
|
||||
* <p>In the implementation of this call-back method, you should consider invoking
|
||||
* {@link com.google.gson.JsonSerializationContext#serialize(Object, java.lang.reflect.Type)} method to create JsonElements for any
|
||||
* non-trivial field of the {@code wrappedStack} object. However, you should never invoke it on the
|
||||
* {@code wrappedStack} object itself since that will cause an infinite loop (Gson will call your
|
||||
* call-back method again).</p>
|
||||
*
|
||||
* @param wrappedStack the object that needs to be converted to Json.
|
||||
* @param typeOfSrc the actual type (fully genericized version) of the source object.
|
||||
* @param context
|
||||
* @return a JsonElement corresponding to the specified object.
|
||||
*/
|
||||
@Override
|
||||
public JsonElement serialize(WrappedStack wrappedStack, Type typeOfSrc, JsonSerializationContext context)
|
||||
{
|
||||
JsonObject jsonWrappedStack = new JsonObject();
|
||||
|
||||
Gson gson = new Gson();
|
||||
|
||||
jsonWrappedStack.addProperty("type", wrappedStack.objectType);
|
||||
jsonWrappedStack.addProperty("stackSize", wrappedStack.stackSize);
|
||||
|
||||
if (wrappedStack.wrappedStack instanceof ItemStack)
|
||||
{
|
||||
JsonItemStack jsonItemStack = new JsonItemStack();
|
||||
jsonItemStack.itemName = Item.itemRegistry.getNameForObject(((ItemStack) wrappedStack.wrappedStack).getItem());
|
||||
jsonItemStack.itemDamage = ((ItemStack) wrappedStack.wrappedStack).getItemDamage();
|
||||
if (((ItemStack) wrappedStack.wrappedStack).stackTagCompound != null)
|
||||
{
|
||||
jsonItemStack.itemNBTTagCompound = ((ItemStack) wrappedStack.wrappedStack).stackTagCompound;
|
||||
}
|
||||
jsonWrappedStack.add("objectData", JsonItemStack.jsonSerializer.toJsonTree(jsonItemStack, JsonItemStack.class));
|
||||
}
|
||||
else if (wrappedStack.wrappedStack instanceof OreStack)
|
||||
{
|
||||
jsonWrappedStack.add("objectData", gson.toJsonTree(wrappedStack.wrappedStack, OreStack.class));
|
||||
}
|
||||
else if (wrappedStack.wrappedStack instanceof FluidStack)
|
||||
{
|
||||
JsonFluidStack jsonFluidStack = new JsonFluidStack((FluidStack) wrappedStack.wrappedStack);
|
||||
jsonWrappedStack.add("objectData", JsonFluidStack.jsonSerializer.toJsonTree(jsonFluidStack, JsonFluidStack.class));
|
||||
}
|
||||
|
||||
return jsonWrappedStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object object)
|
||||
{
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
package com.pahimar.ee3.reference;
|
||||
|
||||
import com.pahimar.ee3.test.EnergyValueMappingsTestSuite;
|
||||
import com.pahimar.ee3.test.VanillaEnergyValueTest;
|
||||
import com.pahimar.ee3.test.EnergyValueTestSuite;
|
||||
import com.pahimar.ee3.test.VanillaTestSuite;
|
||||
|
||||
public class Tests
|
||||
{
|
||||
public static final EnergyValueMappingsTestSuite vanillaEnergyValueTest = new VanillaEnergyValueTest();
|
||||
public class Tests {
|
||||
public static final EnergyValueTestSuite vanillaTestSuite = new VanillaTestSuite();
|
||||
}
|
||||
|
|
|
@ -1,130 +0,0 @@
|
|||
package com.pahimar.ee3.test;
|
||||
|
||||
import com.pahimar.ee3.api.exchange.EnergyValue;
|
||||
import com.pahimar.ee3.api.exchange.EnergyValueRegistryProxy;
|
||||
import com.pahimar.ee3.exchange.WrappedStack;
|
||||
import com.pahimar.ee3.util.LogHelper;
|
||||
import com.pahimar.ee3.util.SerializationHelper;
|
||||
import org.apache.logging.log4j.Marker;
|
||||
import org.apache.logging.log4j.MarkerManager;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
public class EnergyValueMappingsTestSuite {
|
||||
|
||||
public static final Marker TEST_MARKER = MarkerManager.getMarker("EE3_TEST", LogHelper.MOD_MARKER);
|
||||
private static final Marker SUCCESS_MARKER = MarkerManager.getMarker("EE3_TEST_SUCCESS", TEST_MARKER);
|
||||
private static final Marker FAILURE_MARKER = MarkerManager.getMarker("EE3_TEST_FAILURE", TEST_MARKER);
|
||||
|
||||
Map<WrappedStack, EnergyValue> testSuiteValueMap;
|
||||
|
||||
public EnergyValueMappingsTestSuite()
|
||||
{
|
||||
testSuiteValueMap = new TreeMap<>();
|
||||
}
|
||||
|
||||
public EnergyValueMappingsTestSuite(File jsonFile) {
|
||||
|
||||
if (jsonFile != null && jsonFile.exists() && jsonFile.isFile()) {
|
||||
testSuiteValueMap = SerializationHelper.readEnergyValueStackMapFromJsonFile(jsonFile);
|
||||
}
|
||||
}
|
||||
|
||||
public void add(Object object, Object value) {
|
||||
|
||||
if (WrappedStack.canBeWrapped(object)) {
|
||||
|
||||
if (value instanceof Number) {
|
||||
Number number = (Number) value;
|
||||
WrappedStack wrappedStack = WrappedStack.wrap(object);
|
||||
wrappedStack.setStackSize(1);
|
||||
testSuiteValueMap.put(wrappedStack, new EnergyValue(number.floatValue()));
|
||||
}
|
||||
else if (value == null) {
|
||||
|
||||
WrappedStack wrappedStack = WrappedStack.wrap(object);
|
||||
wrappedStack.setStackSize(1);
|
||||
testSuiteValueMap.put(wrappedStack, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void remove(Object object) {
|
||||
|
||||
if (WrappedStack.canBeWrapped(object)) {
|
||||
WrappedStack wrappedStack = WrappedStack.wrap(object);
|
||||
wrappedStack.setStackSize(1);
|
||||
testSuiteValueMap.remove(wrappedStack);
|
||||
}
|
||||
}
|
||||
|
||||
public void loadTestSuite(File jsonFile) {
|
||||
|
||||
if (jsonFile != null && jsonFile.exists() && jsonFile.isFile()) {
|
||||
testSuiteValueMap = SerializationHelper.readEnergyValueStackMapFromJsonFile(jsonFile);
|
||||
}
|
||||
}
|
||||
|
||||
public void saveTestSuite(File jsonFile) {
|
||||
|
||||
if (jsonFile != null) {
|
||||
SerializationHelper.writeEnergyValueStackMapToJsonFile(jsonFile, testSuiteValueMap);
|
||||
}
|
||||
}
|
||||
|
||||
public void runTestSuite() {
|
||||
runTestSuite(false);
|
||||
}
|
||||
|
||||
public void runTestSuite(boolean strict) {
|
||||
|
||||
List<String> successMessages = new ArrayList<>();
|
||||
List<String> failureMessages = new ArrayList<>();
|
||||
|
||||
for (WrappedStack wrappedStack : testSuiteValueMap.keySet()) {
|
||||
|
||||
EnergyValue registryEnergyValue = EnergyValueRegistryProxy.getEnergyValue(wrappedStack, strict);
|
||||
EnergyValue testSuiteEnergyValue = testSuiteValueMap.get(wrappedStack);
|
||||
|
||||
if (registryEnergyValue == null && testSuiteEnergyValue == null) {
|
||||
/**
|
||||
* Success - anticipated that no value was found and no value was found
|
||||
*/
|
||||
successMessages.add(String.format("SUCCESS: Object '%s' had the expected energy value [Expected (%s), Found (%s)]", wrappedStack, testSuiteEnergyValue, registryEnergyValue));
|
||||
}
|
||||
else if (registryEnergyValue == null) {
|
||||
/**
|
||||
* Failure - anticipated that a value would be found but no value was found
|
||||
*/
|
||||
failureMessages.add(String.format("FAILURE: Object '%s' did not have the expected energy value [Expected (%s), Found (%s)]", wrappedStack, testSuiteEnergyValue, registryEnergyValue));
|
||||
}
|
||||
else if (registryEnergyValue != null && testSuiteEnergyValue != null) {
|
||||
|
||||
if (registryEnergyValue.equals(testSuiteEnergyValue)) {
|
||||
/**
|
||||
* Success - anticipated that a specific value would be found and the anticipated value was found
|
||||
*/
|
||||
successMessages.add(String.format("SUCCESS: Object '%s' had the expected energy value [Expected (%s), Found (%s)]", wrappedStack, testSuiteEnergyValue, registryEnergyValue));
|
||||
}
|
||||
else {
|
||||
/**
|
||||
* Failure - anticipated that a specific value would be found and while a value was found it was not the anticipated one
|
||||
*/
|
||||
failureMessages.add(String.format("FAILURE: Object '%s' did not have the expected energy value [Expected (%s), Found (%s)]", wrappedStack, testSuiteEnergyValue, registryEnergyValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (String successMessage : successMessages) {
|
||||
LogHelper.info(SUCCESS_MARKER, successMessage);
|
||||
}
|
||||
|
||||
for (String failureMessage : failureMessages) {
|
||||
LogHelper.warn(FAILURE_MARKER, failureMessage);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
package com.pahimar.ee3.test;
|
||||
|
||||
import com.pahimar.ee3.api.exchange.EnergyValue;
|
||||
import com.pahimar.ee3.api.exchange.EnergyValueRegistryProxy;
|
||||
import com.pahimar.ee3.exchange.WrappedStack;
|
||||
import com.pahimar.ee3.util.LogHelper;
|
||||
import com.pahimar.ee3.util.SerializationHelper;
|
||||
import org.apache.logging.log4j.Marker;
|
||||
import org.apache.logging.log4j.MarkerManager;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.*;
|
||||
|
||||
public class EnergyValueTestSuite {
|
||||
|
||||
public static final Marker TEST_MARKER = MarkerManager.getMarker("EE3_ENERGY_VALUE_TEST", LogHelper.MOD_MARKER);
|
||||
private static final Marker SUCCESS_MARKER = MarkerManager.getMarker("EE3_ENERGY_VALUE_TEST_SUCCESS", TEST_MARKER);
|
||||
private static final Marker FAILURE_MARKER = MarkerManager.getMarker("EE3_ENERGY_VALUE_TEST_FAILURE", TEST_MARKER);
|
||||
|
||||
private Map<WrappedStack, EnergyValue> testSuiteValueMap;
|
||||
private transient Set<WrappedStack> stacksWithCorrectValue;
|
||||
private transient Set<WrappedStack> failureStacksWithWrongValue;
|
||||
private transient Set<WrappedStack> failureStacksWithNoValue;
|
||||
|
||||
public EnergyValueTestSuite() {
|
||||
testSuiteValueMap = new TreeMap<>();
|
||||
stacksWithCorrectValue = new TreeSet<>();
|
||||
failureStacksWithWrongValue = new TreeSet<>();
|
||||
failureStacksWithNoValue = new TreeSet<>();
|
||||
}
|
||||
|
||||
public EnergyValueTestSuite(File file) {
|
||||
load(file);
|
||||
}
|
||||
|
||||
public EnergyValueTestSuite add(Object object, Object value) {
|
||||
|
||||
if (WrappedStack.canBeWrapped(object)) {
|
||||
|
||||
WrappedStack wrappedStack = WrappedStack.wrap(object, 1);
|
||||
if (value instanceof Number) {
|
||||
testSuiteValueMap.put(wrappedStack, new EnergyValue((Number) value));
|
||||
}
|
||||
else if (value instanceof EnergyValue) {
|
||||
testSuiteValueMap.put(wrappedStack, (EnergyValue) value);
|
||||
}
|
||||
else if (value == null) {
|
||||
testSuiteValueMap.put(wrappedStack, null);
|
||||
}
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public EnergyValueTestSuite remove(Object object) {
|
||||
|
||||
if (WrappedStack.canBeWrapped(object)) {
|
||||
testSuiteValueMap.remove(WrappedStack.wrap(object, 1));
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public void run() {
|
||||
run(false);
|
||||
}
|
||||
|
||||
public void run(boolean strict) {
|
||||
|
||||
stacksWithCorrectValue.clear();
|
||||
failureStacksWithWrongValue.clear();
|
||||
failureStacksWithNoValue.clear();
|
||||
|
||||
List<String> successMessages = new ArrayList<>();
|
||||
List<String> failureMessagesWrongValue = new ArrayList<>();
|
||||
List<String> failureMessagesNoValue = new ArrayList<>();
|
||||
|
||||
for (WrappedStack wrappedStack : testSuiteValueMap.keySet()) {
|
||||
|
||||
EnergyValue expectedValue = testSuiteValueMap.get(wrappedStack);
|
||||
EnergyValue actualValue = EnergyValueRegistryProxy.getEnergyValue(wrappedStack, strict);
|
||||
|
||||
if (actualValue == null && expectedValue == null) {
|
||||
// Success - anticipated that no value was found and no value was found
|
||||
successMessages.add(String.format("SUCCESS: Object '%s' had the expected energy value [Expected (%s), Found (%s)]", wrappedStack, expectedValue, actualValue));
|
||||
stacksWithCorrectValue.add(wrappedStack);
|
||||
}
|
||||
else if (actualValue == null) {
|
||||
// Failure - anticipated that a value would be found but no value was found
|
||||
failureMessagesNoValue.add(String.format("FAILURE: Object '%s' did not have the expected energy value [Expected (%s), Found (%s)]", wrappedStack, expectedValue, actualValue));
|
||||
failureStacksWithNoValue.add(wrappedStack);
|
||||
}
|
||||
else if (actualValue != null && expectedValue != null) {
|
||||
|
||||
if (actualValue.equals(expectedValue)) {
|
||||
// Success - anticipated that a specific value would be found and the anticipated value was found
|
||||
successMessages.add(String.format("SUCCESS: Object '%s' had the expected energy value [Expected (%s), Found (%s)]", wrappedStack, expectedValue, actualValue));
|
||||
stacksWithCorrectValue.add(wrappedStack);
|
||||
}
|
||||
else {
|
||||
// Failure - anticipated that a specific value would be found and while a value was found it was not the anticipated one
|
||||
failureMessagesWrongValue.add(String.format("FAILURE: Object '%s' did not have the expected energy value [Expected (%s), Found (%s)]", wrappedStack, expectedValue, actualValue));
|
||||
failureStacksWithWrongValue.add(wrappedStack);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (String successMessage : successMessages) {
|
||||
LogHelper.info(SUCCESS_MARKER, successMessage);
|
||||
}
|
||||
|
||||
for (String failureMessage : failureMessagesWrongValue) {
|
||||
LogHelper.warn(FAILURE_MARKER, failureMessage);
|
||||
}
|
||||
|
||||
for (String failureMessage : failureMessagesNoValue) {
|
||||
LogHelper.warn(FAILURE_MARKER, failureMessage);
|
||||
}
|
||||
}
|
||||
|
||||
public EnergyValueTestSuite load(File file) {
|
||||
|
||||
try {
|
||||
testSuiteValueMap = SerializationHelper.readMapFromFile(file);
|
||||
}
|
||||
catch (FileNotFoundException e) {
|
||||
LogHelper.warn(TEST_MARKER, "Could not load test file from disk: " + e.getMessage());
|
||||
testSuiteValueMap = new TreeMap<>();
|
||||
}
|
||||
|
||||
stacksWithCorrectValue = new TreeSet<>();
|
||||
failureStacksWithWrongValue = new TreeSet<>();
|
||||
failureStacksWithNoValue = new TreeSet<>();
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public EnergyValueTestSuite save(File file) {
|
||||
SerializationHelper.writeMapToFile(testSuiteValueMap, file);
|
||||
return this;
|
||||
}
|
||||
}
|
|
@ -9,9 +9,9 @@ import net.minecraftforge.oredict.OreDictionary;
|
|||
|
||||
import java.io.File;
|
||||
|
||||
public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
||||
public class VanillaTestSuite extends EnergyValueTestSuite
|
||||
{
|
||||
public VanillaEnergyValueTest()
|
||||
public VanillaTestSuite()
|
||||
{
|
||||
buildTestSuite();
|
||||
}
|
||||
|
@ -30,8 +30,8 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
|||
addMaterialsTabTestCases();
|
||||
}
|
||||
|
||||
private void addBuildingBlocksTabTestCases()
|
||||
{
|
||||
private void addBuildingBlocksTabTestCases() {
|
||||
|
||||
add(Blocks.stone, 1);
|
||||
add(Blocks.grass, 1);
|
||||
add(Blocks.dirt, 1);
|
||||
|
@ -174,8 +174,8 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
|||
add(Blocks.packed_ice, null);
|
||||
}
|
||||
|
||||
private void addDecorationBlocksTabTestCases()
|
||||
{
|
||||
private void addDecorationBlocksTabTestCases() {
|
||||
|
||||
add(new ItemStack(Blocks.sapling, 1, 0), 32);
|
||||
add(new ItemStack(Blocks.sapling, 1, 1), 32);
|
||||
add(new ItemStack(Blocks.sapling, 1, 2), 32);
|
||||
|
@ -280,8 +280,8 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
|||
add(new ItemStack(Blocks.skull, 1, 4), null);
|
||||
}
|
||||
|
||||
private void addRedstoneTabTestCases()
|
||||
{
|
||||
private void addRedstoneTabTestCases() {
|
||||
|
||||
add(Blocks.dispenser, 87);
|
||||
add(Blocks.noteblock, 96);
|
||||
add(Blocks.sticky_piston, 340);
|
||||
|
@ -310,8 +310,8 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
|||
add(Items.comparator, 367);
|
||||
}
|
||||
|
||||
private void addTransportationTabTestCases()
|
||||
{
|
||||
private void addTransportationTabTestCases() {
|
||||
|
||||
add(Blocks.golden_rail, 2054);
|
||||
add(Blocks.detector_rail, 261.667);
|
||||
add(Blocks.rail, 96.25);
|
||||
|
@ -326,8 +326,8 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
|||
add(Items.hopper_minecart, 2624);
|
||||
}
|
||||
|
||||
private void addMiscellaneousTabTestCases()
|
||||
{
|
||||
private void addMiscellaneousTabTestCases() {
|
||||
|
||||
add(Blocks.beacon, 24773);
|
||||
add(Items.bucket, 768);
|
||||
add(Items.water_bucket, 769);
|
||||
|
@ -387,8 +387,8 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
|||
add(Items.record_wait, 2048);
|
||||
}
|
||||
|
||||
private void addFoodstuffsTabTestCases()
|
||||
{
|
||||
private void addFoodstuffsTabTestCases() {
|
||||
|
||||
add(Items.apple, 24);
|
||||
add(Items.mushroom_stew, 70);
|
||||
add(Items.bread, 72);
|
||||
|
@ -419,8 +419,8 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
|||
add(Items.pumpkin_pie, 208);
|
||||
}
|
||||
|
||||
private void addToolsTabTestCases()
|
||||
{
|
||||
private void addToolsTabTestCases() {
|
||||
|
||||
add(Items.iron_shovel, 264);
|
||||
add(Items.iron_pickaxe, 776);
|
||||
add(Items.iron_axe, 776);
|
||||
|
@ -451,8 +451,8 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
|||
add(new ItemStack(Items.enchanted_book, 1, OreDictionary.WILDCARD_VALUE), null);
|
||||
}
|
||||
|
||||
private void addCombatTabTestCases()
|
||||
{
|
||||
private void addCombatTabTestCases() {
|
||||
|
||||
add(Items.bow, 48);
|
||||
add(Items.arrow, 14);
|
||||
add(Items.iron_sword, 516);
|
||||
|
@ -482,8 +482,8 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
|||
add(Items.golden_boots, 8192);
|
||||
}
|
||||
|
||||
private void addBrewingTabTestCases()
|
||||
{
|
||||
private void addBrewingTabTestCases() {
|
||||
|
||||
add(Items.ghast_tear, 4096);
|
||||
add(new ItemStack(Items.potionitem, 1, 0), 2);
|
||||
add(new ItemStack(Items.potionitem, 1, 16), 8.667);
|
||||
|
@ -551,8 +551,8 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
|||
add(Items.speckled_melon, 1836.448);
|
||||
}
|
||||
|
||||
private void addMaterialsTabTestCases()
|
||||
{
|
||||
private void addMaterialsTabTestCases() {
|
||||
|
||||
add(new ItemStack(Items.coal, 1, 0), 32);
|
||||
add(new ItemStack(Items.coal, 1, 1), 32);
|
||||
add(Items.diamond, 8192);
|
||||
|
@ -600,10 +600,9 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
|
|||
add(Items.quartz, 256);
|
||||
}
|
||||
|
||||
public void save()
|
||||
{
|
||||
public void save() {
|
||||
File energyValuesDataDirectory = new File(FMLCommonHandler.instance().getMinecraftServerInstance().getEntityWorld().getSaveHandler().getWorldDirectory(), "data" + File.separator + Reference.LOWERCASE_MOD_ID + File.separator + "energyvalues" + File.separator + "testcases");
|
||||
energyValuesDataDirectory.mkdirs();
|
||||
this.saveTestSuite(new File(energyValuesDataDirectory, "minecraft-v1710-vanilla-test-suite.json"));
|
||||
this.save(new File(energyValuesDataDirectory, "minecraft-v1710-vanilla-test-suite.json"));
|
||||
}
|
||||
}
|
|
@ -4,10 +4,7 @@ import com.google.common.reflect.TypeToken;
|
|||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import com.pahimar.ee3.api.exchange.EnergyValue;
|
||||
import com.pahimar.ee3.exchange.EnergyValueStackMapping;
|
||||
import com.pahimar.ee3.exchange.OreStack;
|
||||
import com.pahimar.ee3.exchange.WrappedStack;
|
||||
import com.pahimar.ee3.knowledge.PlayerKnowledge;
|
||||
|
@ -68,63 +65,6 @@ public class SerializationHelper {
|
|||
instancePlayerDataDirectory.mkdirs();
|
||||
}
|
||||
|
||||
public static Map<WrappedStack, EnergyValue> readEnergyValueStackMapFromJsonFile(File jsonFile)
|
||||
{
|
||||
Map<WrappedStack, EnergyValue> energyValueStackMap = new TreeMap<WrappedStack, EnergyValue>();
|
||||
JsonReader jsonReader;
|
||||
|
||||
try
|
||||
{
|
||||
jsonReader = new JsonReader(new FileReader(jsonFile));
|
||||
jsonReader.beginArray();
|
||||
while (jsonReader.hasNext())
|
||||
{
|
||||
EnergyValueStackMapping energyValueStackMapping = EnergyValueStackMapping.jsonSerializer.fromJson(jsonReader, EnergyValueStackMapping.class);
|
||||
if (energyValueStackMapping != null)
|
||||
{
|
||||
energyValueStackMap.put(energyValueStackMapping.wrappedStack, energyValueStackMapping.energyValue);
|
||||
}
|
||||
}
|
||||
jsonReader.endArray();
|
||||
jsonReader.close();
|
||||
}
|
||||
catch (FileNotFoundException ignored)
|
||||
{
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return energyValueStackMap;
|
||||
}
|
||||
|
||||
public static void writeEnergyValueStackMapToJsonFile(File jsonFile, Map<WrappedStack, EnergyValue> energyValueMap)
|
||||
{
|
||||
JsonWriter jsonWriter;
|
||||
|
||||
try
|
||||
{
|
||||
jsonWriter = new JsonWriter(new FileWriter(jsonFile));
|
||||
jsonWriter.setIndent(" ");
|
||||
jsonWriter.beginArray();
|
||||
for (WrappedStack wrappedStack : energyValueMap.keySet())
|
||||
{
|
||||
if (wrappedStack != null && wrappedStack.getWrappedObject() != null)
|
||||
{
|
||||
EnergyValueStackMapping.jsonSerializer.toJson(new EnergyValueStackMapping(wrappedStack, energyValueMap.get(wrappedStack)), EnergyValueStackMapping.class, jsonWriter);
|
||||
}
|
||||
}
|
||||
|
||||
jsonWriter.endArray();
|
||||
jsonWriter.close();
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static Set<WrappedStack> readSetFromFile(File file) {
|
||||
|
||||
Set<WrappedStack> wrappedStackSet = new TreeSet<>();
|
||||
|
@ -167,53 +107,55 @@ public class SerializationHelper {
|
|||
public static String readJsonFile(File file) throws FileNotFoundException {
|
||||
|
||||
StringBuilder jsonStringBuilder = new StringBuilder();
|
||||
try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) {
|
||||
if (file != null) {
|
||||
try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) {
|
||||
|
||||
jsonStringBuilder = new StringBuilder();
|
||||
String line;
|
||||
while ((line = bufferedReader.readLine()) != null) {
|
||||
jsonStringBuilder.append(line);
|
||||
jsonStringBuilder = new StringBuilder();
|
||||
String line;
|
||||
while ((line = bufferedReader.readLine()) != null) {
|
||||
jsonStringBuilder.append(line);
|
||||
}
|
||||
}
|
||||
catch (IOException exception) {
|
||||
if (exception instanceof FileNotFoundException) {
|
||||
throw (FileNotFoundException) exception;
|
||||
}
|
||||
else {
|
||||
exception.printStackTrace(); // TODO Better logging of the exception
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IOException exception) {
|
||||
if (exception instanceof FileNotFoundException) {
|
||||
throw (FileNotFoundException) exception;
|
||||
}
|
||||
else {
|
||||
exception.printStackTrace(); // TODO Better logging of the exception
|
||||
}
|
||||
}
|
||||
|
||||
return jsonStringBuilder.toString();
|
||||
}
|
||||
|
||||
public static void writeJsonFile(File file, String fileContents) {
|
||||
|
||||
file.getParentFile().mkdirs();
|
||||
File tempFile = new File(file.getAbsolutePath() + "_tmp");
|
||||
if (file != null) {
|
||||
|
||||
if (tempFile.exists()) {
|
||||
tempFile.delete();
|
||||
}
|
||||
file.getParentFile().mkdirs();
|
||||
File tempFile = new File(file.getAbsolutePath() + "_tmp");
|
||||
|
||||
try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(tempFile))) {
|
||||
if (tempFile.exists()) {
|
||||
tempFile.delete();
|
||||
}
|
||||
|
||||
bufferedWriter.write(fileContents);
|
||||
bufferedWriter.close();
|
||||
}
|
||||
catch (IOException exception) {
|
||||
exception.printStackTrace(); // TODO Better logging of the exception
|
||||
}
|
||||
try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(tempFile))) {
|
||||
|
||||
if (file.exists()) {
|
||||
file.delete();
|
||||
}
|
||||
bufferedWriter.write(fileContents);
|
||||
bufferedWriter.close();
|
||||
} catch (IOException exception) {
|
||||
exception.printStackTrace(); // TODO Better logging of the exception
|
||||
}
|
||||
|
||||
if (file.exists()) {
|
||||
LogHelper.warn("Failed to delete " + file);
|
||||
}
|
||||
else {
|
||||
tempFile.renameTo(file);
|
||||
if (file.exists()) {
|
||||
file.delete();
|
||||
}
|
||||
|
||||
if (file.exists()) {
|
||||
LogHelper.warn("Failed to delete " + file);
|
||||
} else {
|
||||
tempFile.renameTo(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue