Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refact: Class Element, get all defined components. #794

Merged
merged 2 commits into from
Aug 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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());
}
}