diff options
author | Technus <daniel112092@gmail.com> | 2017-05-12 22:26:05 +0200 |
---|---|---|
committer | Technus <daniel112092@gmail.com> | 2017-05-12 22:26:05 +0200 |
commit | 11992faf1ea711a8eb56370b498259c48bfe4237 (patch) | |
tree | 3de44b9c4e4e4b7c364417be3d57a75592be7c11 | |
parent | 6925013d14fd0b0edcb9eb76868b42aefae71c6f (diff) | |
download | GT5-Unofficial-11992faf1ea711a8eb56370b498259c48bfe4237.tar.gz GT5-Unofficial-11992faf1ea711a8eb56370b498259c48bfe4237.tar.bz2 GT5-Unofficial-11992faf1ea711a8eb56370b498259c48bfe4237.zip |
More work on immutability.
8 files changed, 27 insertions, 68 deletions
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java index d793054b4c..436f37eccc 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStackMap.java @@ -35,7 +35,7 @@ public final class cElementalDefinitionStackMap/*IMMUTABLE*/ extends cElementalS //IMMUTABLE DON'T NEED IT @Override - public cElementalDefinitionStackMap Clone() { + public cElementalDefinitionStackMap clone() { return this; } @@ -49,40 +49,13 @@ public final class cElementalDefinitionStackMap/*IMMUTABLE*/ extends cElementalS return toMutable().getRawMap(); } - - //NBT - public NBTTagCompound getInfoNBT() { - final NBTTagCompound nbt = new NBTTagCompound(); - final String[] info = getElementalInfo(); - nbt.setInteger("i", info.length); - for (int i = 0; i < info.length; i++) - nbt.setString(Integer.toString(i), info[i]); - return nbt; - } - - public static String[] infoFromNBT(NBTTagCompound nbt) { - final String[] strings = new String[nbt.getInteger("i")]; - for (int i = 0; i < strings.length; i++) - strings[i] = nbt.getString(Integer.toString(i)); - return strings; - } - - public NBTTagCompound toNBT() { - final NBTTagCompound nbt = new NBTTagCompound(); - nbt.setInteger("i", map.size()); - int i = 0; - for (cElementalDefinitionStack defStack : map.values()) - nbt.setTag(Integer.toString(i++), defStack.toNBT()); - return nbt; - } - - public static cElementalMutableDefinitionStackMap fromNBT(NBTTagCompound nbt) throws tElementalException { + public static cElementalDefinitionStackMap fromNBT(NBTTagCompound nbt) throws tElementalException { final cElementalDefinitionStack[] defStacks = new cElementalDefinitionStack[nbt.getInteger("i")]; for (int i = 0; i < defStacks.length; i++) { defStacks[i] = cElementalDefinitionStack.fromNBT(nbt.getCompoundTag(Integer.toString(i))); if (defStacks[i].definition.equals(nbtE__)) throw new tElementalException("Something went Wrong"); } - return new cElementalMutableDefinitionStackMap(defStacks); + return new cElementalDefinitionStackMap(defStacks); } } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java index bb5fcf744c..2a2c6d12e1 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStack.java @@ -10,7 +10,7 @@ import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveD /** * Created by danie_000 on 22.10.2016. */ -public class cElementalInstanceStack implements iHasElementalDefinition {//TODO unify checks for amount? +public final class cElementalInstanceStack implements iHasElementalDefinition {//TODO unify checks for amount? public final iElementalDefinition definition; //energy - if positive then particle should try to decay public int energy; @@ -60,11 +60,7 @@ public class cElementalInstanceStack implements iHasElementalDefinition {//TODO } @Override - protected final Object clone() { - return Clone(); - } - - public final cElementalInstanceStack Clone() { + public final cElementalInstanceStack clone() { return new cElementalInstanceStack(this); } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java index 52185929de..ebbd80c07b 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java @@ -13,7 +13,7 @@ import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveD /** * Created by danie_000 on 22.01.2017. */ -public class cElementalInstanceStackMap implements Comparable<cElementalInstanceStackMap> { +public final class cElementalInstanceStackMap implements Comparable<cElementalInstanceStackMap> { private Map<iElementalDefinition, cElementalInstanceStack> map = new TreeMap<>(); //Constructors @@ -27,7 +27,7 @@ public class cElementalInstanceStackMap implements Comparable<cElementalInstance public cElementalInstanceStackMap(boolean clone, cElementalInstanceStack... in) { if (clone) { for (cElementalInstanceStack instance : in) { - map.put(instance.definition, instance.Clone()); + map.put(instance.definition, instance.clone()); } } else { for (cElementalInstanceStack instance : in) { @@ -43,7 +43,7 @@ public class cElementalInstanceStackMap implements Comparable<cElementalInstance private cElementalInstanceStackMap(boolean clone, Map<iElementalDefinition, cElementalInstanceStack> in) { if (clone) { for (cElementalInstanceStack instance : in.values()) { - map.put(instance.definition, instance.Clone()); + map.put(instance.definition, instance.clone()); } } else { map = in; @@ -59,11 +59,7 @@ public class cElementalInstanceStackMap implements Comparable<cElementalInstance } @Override - protected final Object clone() { - return Clone(); - } - - public final cElementalInstanceStackMap Clone(){ + public final cElementalInstanceStackMap clone(){ return new cElementalInstanceStackMap(map); } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java index 242f9bc936..8e62b47647 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java @@ -47,7 +47,7 @@ public final class cElementalMutableDefinitionStackMap extends cElementalStackMa } @Override - public cElementalMutableDefinitionStackMap Clone(){ + public cElementalMutableDefinitionStackMap clone(){ return new cElementalMutableDefinitionStackMap(map); } @@ -211,4 +211,14 @@ public final class cElementalMutableDefinitionStackMap extends cElementalStackMa for (cElementalDefinitionStack in : containerUnsafe.map.values()) putUnify(in); } + + public static cElementalMutableDefinitionStackMap fromNBT(NBTTagCompound nbt) throws tElementalException { + final cElementalDefinitionStack[] defStacks = new cElementalDefinitionStack[nbt.getInteger("i")]; + for (int i = 0; i < defStacks.length; i++) { + defStacks[i] = cElementalDefinitionStack.fromNBT(nbt.getCompoundTag(Integer.toString(i))); + if (defStacks[i].definition.equals(nbtE__)) + throw new tElementalException("Something went Wrong"); + } + return new cElementalMutableDefinitionStackMap(defStacks); + } } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalStackMap.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalStackMap.java index 44af95991e..192a3b24d0 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalStackMap.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalStackMap.java @@ -25,13 +25,7 @@ abstract class cElementalStackMap implements Comparable<cElementalStackMap> { } @Override - protected final Object clone() {//Equal to making new obj... - return Clone(); - } - - public cElementalStackMap Clone(){ - return this; - } + public abstract cElementalStackMap clone(); @Deprecated public abstract Map<iElementalDefinition,cElementalDefinitionStack> getRawMap(); @@ -95,7 +89,7 @@ abstract class cElementalStackMap implements Comparable<cElementalStackMap> { } //NBT - public NBTTagCompound getInfoNBT() { + public final NBTTagCompound getInfoNBT() { final NBTTagCompound nbt = new NBTTagCompound(); final String[] info = getElementalInfo(); nbt.setInteger("i", info.length); @@ -111,7 +105,7 @@ abstract class cElementalStackMap implements Comparable<cElementalStackMap> { return strings; } - public NBTTagCompound toNBT() { + public final NBTTagCompound toNBT() { final NBTTagCompound nbt = new NBTTagCompound(); nbt.setInteger("i", map.size()); int i = 0; @@ -119,14 +113,4 @@ abstract class cElementalStackMap implements Comparable<cElementalStackMap> { nbt.setTag(Integer.toString(i++), defStack.toNBT()); return nbt; } - - public static cElementalMutableDefinitionStackMap fromNBT(NBTTagCompound nbt) throws tElementalException { - final cElementalDefinitionStack[] defStacks = new cElementalDefinitionStack[nbt.getInteger("i")]; - for (int i = 0; i < defStacks.length; i++) { - defStacks[i] = cElementalDefinitionStack.fromNBT(nbt.getCompoundTag(Integer.toString(i))); - if (defStacks[i].definition.equals(nbtE__)) - throw new tElementalException("Something went Wrong"); - } - return new cElementalMutableDefinitionStackMap(defStacks); - } } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java index d369115568..9086ea80eb 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java @@ -79,7 +79,7 @@ public final class dAtomDefinition extends cElementalDefinition { private dAtomDefinition(boolean clone, boolean check, cElementalMutableDefinitionStackMap things) throws tElementalException { if (check && !canTheyBeTogether(things)) throw new tElementalException("Atom Definition error"); - this.elementalStacks = clone?things.Clone():things; + this.elementalStacks = clone?things.clone():things; float mass = 0; int cLeptons = 0; @@ -275,7 +275,7 @@ public final class dAtomDefinition extends cElementalDefinition { @Override public cElementalMutableDefinitionStackMap getSubParticles() { - return elementalStacks.Clone(); + return elementalStacks.clone(); } @Override diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dComplexAspectDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dComplexAspectDefinition.java index b3c6c910d8..033f611a07 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dComplexAspectDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dComplexAspectDefinition.java @@ -12,7 +12,7 @@ import static com.github.technus.tectech.elementalMatter.classes.cElementalDecay /** * Created by Tec on 06.05.2017. */ -public class dComplexAspectDefinition extends cElementalDefinition { +public final class dComplexAspectDefinition extends cElementalDefinition { //TODO aspect binding private static final byte nbtType = (byte) 'c'; diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/ePrimalAspectDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/ePrimalAspectDefinition.java index 72ceccf412..38b23b7b37 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/ePrimalAspectDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/ePrimalAspectDefinition.java @@ -6,7 +6,7 @@ import com.github.technus.tectech.elementalMatter.classes.cElementalPrimitive; /** * Created by Tec on 06.05.2017. */ -public class ePrimalAspectDefinition extends cElementalPrimitive { +public final class ePrimalAspectDefinition extends cElementalPrimitive { public static final ePrimalAspectDefinition magic_order = new ePrimalAspectDefinition("Order", "o`", 0, 0F, 0, -1, 30), magic_entropy_ = new ePrimalAspectDefinition("Entropy", "e`", 0, 0F, 0, -1, 31), |