diff --git a/src/main/java/neqsim/processSimulation/processEquipment/stream/EquilibriumStream.java b/src/main/java/neqsim/processSimulation/processEquipment/stream/EquilibriumStream.java index 414a03f0a..83bc66736 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/stream/EquilibriumStream.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/stream/EquilibriumStream.java @@ -5,6 +5,7 @@ import org.apache.logging.log4j.Logger; import neqsim.thermo.system.SystemInterface; import neqsim.thermodynamicOperations.ThermodynamicOperations; +import neqsim.util.exception.InvalidInputException; /** *

@@ -54,6 +55,23 @@ public EquilibriumStream clone() { return clonedStream; } + /** + * Clone Equilibriumstream object and give it a new name. + * + * @param name Name to set for the cloned object + * @return Cloned EquilibriumStream object + */ + @Override + public EquilibriumStream clone(String name) { + if (this.getName() == name) { + throw new RuntimeException( + new InvalidInputException(this, "clone", "name", "- Same name as in original object")); + } + EquilibriumStream s = this.clone(); + s.setName(name); + return s; + } + /** {@inheritDoc} */ @Override public void run(UUID id) { diff --git a/src/main/java/neqsim/processSimulation/processEquipment/stream/IronIonSaturationStream.java b/src/main/java/neqsim/processSimulation/processEquipment/stream/IronIonSaturationStream.java index 8e2256729..8f989a5c6 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/stream/IronIonSaturationStream.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/stream/IronIonSaturationStream.java @@ -11,6 +11,7 @@ import org.apache.logging.log4j.Logger; import neqsim.thermo.system.SystemInterface; import neqsim.thermodynamicOperations.ThermodynamicOperations; +import neqsim.util.exception.InvalidInputException; /** *

@@ -69,6 +70,23 @@ public IronIonSaturationStream clone() { return clonedSystem; } + /** + * Clone IronIonSaturationStream object and give it a new name. + * + * @param name Name to set for the cloned object + * @return Cloned IronIonSaturationStream object + */ + @Override + public IronIonSaturationStream clone(String name) { + if (this.getName() == name) { + throw new RuntimeException( + new InvalidInputException(this, "clone", "name", "- Same name as in original object")); + } + IronIonSaturationStream s = this.clone(); + s.setName(name); + return s; + } + /** {@inheritDoc} */ @Override public void run(UUID id) { diff --git a/src/main/java/neqsim/processSimulation/processEquipment/stream/NeqStream.java b/src/main/java/neqsim/processSimulation/processEquipment/stream/NeqStream.java index 52f22cc3f..74a13eddc 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/stream/NeqStream.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/stream/NeqStream.java @@ -4,6 +4,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import neqsim.thermo.system.SystemInterface; +import neqsim.util.exception.InvalidInputException; /** *

@@ -64,6 +65,23 @@ public NeqStream clone() { return clonedStream; } + /** + * Clone NeqStream object and give it a new name. + * + * @param name Name to set for the cloned object + * @return Cloned NeqStream object + */ + @Override + public NeqStream clone(String name) { + if (this.getName() == name) { + throw new RuntimeException( + new InvalidInputException(this, "clone", "name", "- Same name as in original object")); + } + NeqStream s = this.clone(); + s.setName(name); + return s; + } + /** {@inheritDoc} */ @Override public void run(UUID id) { diff --git a/src/main/java/neqsim/processSimulation/processEquipment/stream/ScalePotentialCheckStream.java b/src/main/java/neqsim/processSimulation/processEquipment/stream/ScalePotentialCheckStream.java index 417f8e258..1770b6545 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/stream/ScalePotentialCheckStream.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/stream/ScalePotentialCheckStream.java @@ -5,6 +5,7 @@ import org.apache.logging.log4j.Logger; import neqsim.thermo.system.SystemInterface; import neqsim.thermodynamicOperations.ThermodynamicOperations; +import neqsim.util.exception.InvalidInputException; /** *

@@ -63,6 +64,23 @@ public ScalePotentialCheckStream clone() { return clonedSystem; } + /** + * Clone ScalePotentialCheckStream object and give it a new name. + * + * @param name Name to set for the cloned object + * @return Cloned ScalePotentialCheckStream object + */ + @Override + public ScalePotentialCheckStream clone(String name) { + if (this.getName() == name) { + throw new RuntimeException( + new InvalidInputException(this, "clone", "name", "- Same name as in original object")); + } + ScalePotentialCheckStream s = this.clone(); + s.setName(name); + return s; + } + /** {@inheritDoc} */ @Override public void run(UUID id) { diff --git a/src/main/java/neqsim/processSimulation/processEquipment/stream/Stream.java b/src/main/java/neqsim/processSimulation/processEquipment/stream/Stream.java index 61ae7c7ac..29c043086 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/stream/Stream.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/stream/Stream.java @@ -18,6 +18,7 @@ import neqsim.standards.oilQuality.Standard_ASTM_D6377; import neqsim.thermo.system.SystemInterface; import neqsim.thermodynamicOperations.ThermodynamicOperations; +import neqsim.util.exception.InvalidInputException; /** *

@@ -170,6 +171,23 @@ public Stream clone() { return clonedSystem; } + /** + * Clone Stream object and give it a new name. + * + * @param name Name to set for the cloned object + * @return Cloned Stream object + */ + @Override + public Stream clone(String name) { + if (this.getName() == name) { + throw new RuntimeException( + new InvalidInputException(this, "clone", "name", "- Same name as in original object")); + } + Stream s = this.clone(); + s.setName(name); + return s; + } + /** {@inheritDoc} */ @Override public double getTemperature() { diff --git a/src/main/java/neqsim/processSimulation/processEquipment/stream/StreamInterface.java b/src/main/java/neqsim/processSimulation/processEquipment/stream/StreamInterface.java index a63e5e269..5ea1586d2 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/stream/StreamInterface.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/stream/StreamInterface.java @@ -174,13 +174,24 @@ public default double getFlowRate(String unit) { /** *

- * clone. + * Clone object. *

* * @return a {@link neqsim.processSimulation.processEquipment.stream.StreamInterface} object */ public StreamInterface clone(); + /** + *

+ * Clone object and set a new name. + *

+ * + * @param name Name of cloned object + * @return a {@link neqsim.processSimulation.processEquipment.stream.StreamInterface} object + */ + public StreamInterface clone(String name); + + /** *

* flashStream. diff --git a/src/main/java/neqsim/processSimulation/processEquipment/stream/VirtualStream.java b/src/main/java/neqsim/processSimulation/processEquipment/stream/VirtualStream.java index ae73adffa..af38a63b7 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/stream/VirtualStream.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/stream/VirtualStream.java @@ -1,10 +1,8 @@ package neqsim.processSimulation.processEquipment.stream; import java.util.UUID; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; - import neqsim.processSimulation.processEquipment.ProcessEquipmentBaseClass; /**