Search in sources :

Example 6 with BooleanValue

use of jkind.lustre.values.BooleanValue in project AGREE by loonwerks.

the class AGREESimulationState method convertLustreValue.

/**
 * Converts a JKind API Lustre value to types that are independent of the JKind API. In cases where there isn't an equivalent type in the standard
 * Java API, the original type will be preserved. Throws an
 * @param value non-null value object.
 * @throws RuntimeException if the value is not of a supported type.
 * @return
 */
private Object convertLustreValue(final Value value) {
    assert value != null;
    if (value instanceof ArrayValue) {
        final ArrayValue arrayValue = (ArrayValue) value;
        final ArrayList<Object> newList = new ArrayList<Object>(arrayValue.elements.size());
        for (final Value childValue : arrayValue.elements) {
            newList.add(convertLustreValue(childValue));
        }
        return newList;
    } else if (value instanceof BooleanValue) {
        return ((BooleanValue) value).value;
    } else if (value instanceof EnumValue) {
        return ((EnumValue) value).value;
    } else if (value instanceof IntegerValue) {
        return ((IntegerValue) value).value;
    } else if (value instanceof RealValue) {
        final BigFraction fraction = ((RealValue) value).value;
        return new Rational(fraction.getNumerator(), fraction.getDenominator());
    } else if (value instanceof RecordValue) {
        final RecordValue recordValue = (RecordValue) value;
        final Map<String, Object> newMap = new HashMap<String, Object>();
        for (final Entry<String, Value> entry : recordValue.fields.entrySet()) {
            newMap.put(entry.getKey(), convertLustreValue(entry.getValue()));
        }
        return newMap;
    } else if (value instanceof TupleValue) {
        final TupleValue tupleValue = (TupleValue) value;
        final ArrayList<Object> newList = new ArrayList<Object>(tupleValue.elements.size());
        for (final Value childValue : tupleValue.elements) {
            newList.add(convertLustreValue(childValue));
        }
        return newList;
    } else {
        throw new RuntimeException("Unhandled case. Value is of type: " + value.getClass());
    }
}
Also used : RealValue(jkind.lustre.values.RealValue) BigFraction(jkind.util.BigFraction) Rational(edu.uah.rsesc.aadlsimulator.Rational) EnumValue(jkind.lustre.values.EnumValue) IntegerValue(jkind.lustre.values.IntegerValue) ArrayList(java.util.ArrayList) RecordValue(jkind.lustre.values.RecordValue) TupleValue(jkind.lustre.values.TupleValue) Entry(java.util.Map.Entry) BooleanValue(jkind.lustre.values.BooleanValue) TupleValue(jkind.lustre.values.TupleValue) IntegerValue(jkind.lustre.values.IntegerValue) BooleanValue(jkind.lustre.values.BooleanValue) RealValue(jkind.lustre.values.RealValue) RecordValue(jkind.lustre.values.RecordValue) Value(jkind.lustre.values.Value) EnumValue(jkind.lustre.values.EnumValue) ArrayValue(jkind.lustre.values.ArrayValue) EObject(org.eclipse.emf.ecore.EObject) InstanceObject(org.osate.aadl2.instance.InstanceObject) ArrayValue(jkind.lustre.values.ArrayValue) Map(java.util.Map) HashMap(java.util.HashMap)

Aggregations

BooleanValue (jkind.lustre.values.BooleanValue)6 IntegerValue (jkind.lustre.values.IntegerValue)5 RealValue (jkind.lustre.values.RealValue)5 Value (jkind.lustre.values.Value)5 ArrayValue (jkind.lustre.values.ArrayValue)3 EnumValue (jkind.lustre.values.EnumValue)3 TupleValue (jkind.lustre.values.TupleValue)3 BigFraction (jkind.util.BigFraction)3 ArrayList (java.util.ArrayList)2 Map (java.util.Map)2 RecordValue (jkind.lustre.values.RecordValue)2 TcgException (com.rockwellcollins.atc.tcg.TcgException)1 Rational (edu.uah.rsesc.aadlsimulator.Rational)1 SimulationFrameResults (edu.uah.rsesc.aadlsimulator.agree.sim.SimulationFrameResults)1 BinaryExpression (edu.uah.rsesc.aadlsimulator.xtext.inputConstraint.BinaryExpression)1 BooleanLiteral (edu.uah.rsesc.aadlsimulator.xtext.inputConstraint.BooleanLiteral)1 IntegerLiteral (edu.uah.rsesc.aadlsimulator.xtext.inputConstraint.IntegerLiteral)1 BigDecimal (java.math.BigDecimal)1 HashMap (java.util.HashMap)1 Entry (java.util.Map.Entry)1