Commit c87e7b20 authored by Matthew Dawson's avatar Matthew Dawson
Browse files

Make the enumeration variable type take a name parameter to name the custom type.

Enumerations need to have a name so the enumerated type can be defined.  Add
the name as a property of type, so generators can get it easily.  Also update
the various users of the type to pass the name in the constructor.
parent 4e23c3af
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
 */
package ca.mcmaster.cas.tabularexpressiontoolbox.expression;

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;

/**
@@ -24,17 +24,25 @@ import java.util.Set;
 * @author matthew
 */
final public class EnumerationVariableType extends VariableType {
    public EnumerationVariableType(String name) {
        m_name = name;
    }

    public Set<String> enumerationValues() {
        return m_values;
    }

    public String name() {
        return m_name;
    }

    @Override
    public boolean canCastToType(VariableType type) {
        return false;
    }

    final Set<String> m_values = new HashSet<String>();
    private final Set<String> m_values = new LinkedHashSet<String>();
    private final String m_name;

    public static class Marker implements VariableTypeMarker {
        @Override
+1 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ public class EnumerationVariableTypeGenerationTest {

    @Before
    public void setUp() throws Exception {
        EnumerationVariableType enumType = new EnumerationVariableType();
        EnumerationVariableType enumType = new EnumerationVariableType("enum");
        enumType.enumerationValues().add("e1");

        variableParser.addCustomType("enum", enumType);
+2 −2
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ public class VariableCollectionTest {

    @Test
    public void EnumeratedValuesAreInOneList() {
        EnumerationVariableType type = new EnumerationVariableType();
        EnumerationVariableType type = new EnumerationVariableType("myenum");
        type.enumerationValues().add("e1");
        type.enumerationValues().add("e2");
        type.enumerationValues().add("e3");
@@ -87,7 +87,7 @@ public class VariableCollectionTest {

    @Test
    public void EnumeratedValuesAndVariablesAreSeparate() {
        EnumerationVariableType type = new EnumerationVariableType();
        EnumerationVariableType type = new EnumerationVariableType("enumtype");
        type.enumerationValues().add("e1");
        type.enumerationValues().add("e2");
        type.enumerationValues().add("e3");
+1 −1
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ public class VariableParserTest {

    @Test
    public void testEnumerationsAreAvailable() {
        EnumerationVariableType enumType = new EnumerationVariableType();
        EnumerationVariableType enumType = new EnumerationVariableType("enumtype");
        enumType.enumerationValues().add("enum1");
        enumType.enumerationValues().add("enum2");