All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bitmechanic.barrister.Enum Maven / Gradle / Ivy

package com.bitmechanic.barrister;

import java.util.LinkedHashSet;
import java.util.Set;
import java.util.Map;
import java.util.List;

/**
 * Represents an 'enum' in the IDL
 */
public class Enum extends BaseEntity {

    private Set values;

    /**
     * Creates an enum with the given name and values
     *
     * @param name Name of enum from IDL
     * @param vals Valid values for enum from IDL
     */
    public Enum(String name, String... vals) {
        this.name = name;
        this.values = new LinkedHashSet();
        for (String v : vals) {
            values.add(v);
        }
    }

    /**
     * Creates an enum from IDL Map representation, parsing the 'name', 'comment', and 'values'
     */
    @SuppressWarnings("unchecked")
    public Enum(Map data) {
        super(data);
        values = new LinkedHashSet();
        
        List> dvals = (List>)data.get("values");
        for (Map val : dvals) {
            values.add((String)val.get("value"));
        }
    }

    /**
     * Returns the list of values for this enum
     */
    public Set getValues() {
        return values;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("Enum name=");
        sb.append(name);
        sb.append(" values=");
        boolean first = true;
        for (String v : values) {
            if (first) { first = false; }
            else { sb.append(", "); }
            sb.append(v);
        }
        return sb.toString();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy