Skip to content

Commit

Permalink
refact: Class Element, get all defined components. (#794)
Browse files Browse the repository at this point in the history
* feat: new function get all defined components
docfix
* test: added test
  • Loading branch information
asmfstatoil authored Aug 1, 2023
1 parent e8543d5 commit 0d91cda
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 20 deletions.
59 changes: 39 additions & 20 deletions src/main/java/neqsim/thermo/atomElement/Element.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,35 +23,29 @@ public class Element implements ThermodynamicConstantsInterface {
private static final long serialVersionUID = 1000;
static Logger logger = LogManager.getLogger(Element.class);

String[] nameArray;
double[] coefArray;

/**
* <p>
* Constructor for Element.
* </p>
*/
public Element() {}
private String name;
private String[] nameArray;
private double[] coefArray;

/**
* <p>
* Constructor for Element.
* </p>
*
* @param name a {@link java.lang.String} object
* @param name Name of component.
*/
public Element(String name) {
this.name = name;

ArrayList<String> names = new ArrayList<String>();
ArrayList<String> stocCoef = new ArrayList<String>();

try (neqsim.util.database.NeqSimDataBase database = new neqsim.util.database.NeqSimDataBase();
java.sql.ResultSet dataSet =
database.getResultSet(("SELECT * FROM element WHERE componentname='" + name + "'"))) {
dataSet.next();
// System.out.println("comp name " + dataSet.getString("componentname"));
do {
names.add(dataSet.getString("atomelement").trim());
// System.out.println("name " + dataSet.getString("atomelement"));
stocCoef.add(dataSet.getString("number"));
} while (dataSet.next());

Expand All @@ -67,24 +61,49 @@ public Element(String name) {
}

/**
* <p>
* getElementNames.
* </p>
* Getter for property name.
*
* @return an array of {@link java.lang.String} objects
* @return Component name.
*/
public String getName() {
return this.name;
}

/**
* Getter for property nameArray.
*
* @return an array of {@link java.lang.String} objects. Names of Elements of component.
*/
public String[] getElementNames() {
return nameArray;
}

/**
* <p>
* getElementCoefs.
* </p>
* Getter for property coefArray.
*
* @return an array of {@link double} objects
* @return an array of {@link double} objects. Coefficient corresponding to nameArray.
*/
public double[] getElementCoefs() {
return coefArray;
}

/**
* Get all defined components.
*
* @return All element names in database.
*/
public static ArrayList<String> getAllElementComponentNames() {
ArrayList<String> names = new ArrayList<String>();
try (neqsim.util.database.NeqSimDataBase database = new neqsim.util.database.NeqSimDataBase();
java.sql.ResultSet dataSet = database.getResultSet(("SELECT * FROM element"))) {
dataSet.next();
do {
names.add(dataSet.getString("componentname").trim());
} while (dataSet.next());
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
}

return names;
}
}
31 changes: 31 additions & 0 deletions src/test/java/neqsim/thermo/atomElement/ElementTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package neqsim.thermo.atomElement;

import java.util.ArrayList;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

public class ElementTest {

@Test
public void testExistingElement() {
ArrayList<String> names = Element.getAllElementComponentNames();

Assertions.assertTrue(names.size() > 0);

Element a = new Element(names.get(0));
Assertions.assertEquals(a.getName(), names.get(0));
}

@Test
public void testNonExistingElement() {
ArrayList<String> names = Element.getAllElementComponentNames();

String nonExistingElement = "DUMMY_ELEMENT";

Assertions.assertFalse(names.contains(nonExistingElement));

Element e = new Element(nonExistingElement);
Assertions.assertNull(e.getElementNames());
Assertions.assertNull(e.getElementCoefs());
}
}

0 comments on commit 0d91cda

Please sign in to comment.