From 11992faf1ea711a8eb56370b498259c48bfe4237 Mon Sep 17 00:00:00 2001 From: Technus Date: Fri, 12 May 2017 22:26:05 +0200 Subject: More work on immutability. --- .../classes/cElementalDefinitionStackMap.java | 33 ++-------------------- .../classes/cElementalInstanceStack.java | 8 ++---- .../classes/cElementalInstanceStackMap.java | 12 +++----- .../cElementalMutableDefinitionStackMap.java | 12 +++++++- .../classes/cElementalStackMap.java | 22 ++------------- .../definitions/dAtomDefinition.java | 4 +-- .../definitions/dComplexAspectDefinition.java | 2 +- .../definitions/ePrimalAspectDefinition.java | 2 +- 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 { +public final class cElementalInstanceStackMap implements Comparable { private Map map = new TreeMap<>(); //Constructors @@ -27,7 +27,7 @@ public class cElementalInstanceStackMap implements Comparable 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 { } @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 getRawMap(); @@ -95,7 +89,7 @@ abstract class cElementalStackMap implements Comparable { } //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 { 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 { 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), -- cgit