Example usage for org.apache.commons.lang3.mutable MutableBoolean booleanValue

List of usage examples for org.apache.commons.lang3.mutable MutableBoolean booleanValue

Introduction

In this page you can find the example usage for org.apache.commons.lang3.mutable MutableBoolean booleanValue.

Prototype

public boolean booleanValue() 

Source Link

Document

Returns the value of this MutableBoolean as a boolean.

Usage

From source file:asterix.parser.classad.test.ClassAdUnitTester.java

/*********************************************************************
 * Function: test_classad/*  w  w w .  j  av a2s . c o  m*/
 * Purpose: Test the ClassAd class.
 * 
 * @throws IOException
 *********************************************************************/
public static void testClassad(Parameters parameters, Results results) throws IOException {
    ClassAdParser parser = new ClassAdParser();
    boolean haveAttribute;
    boolean success;

    System.out.println("Testing the ClassAd class...");

    String input_basic = "[ A = 3; B = 4.0; C = \"babyzilla\"; D = true; E = {1}; F = [ AA = 3; ]; G =\"deleteme\";]";
    ClassAd basic = new ClassAd();
    AMutableInt64 i = new AMutableInt64(0);
    MutableBoolean b = new MutableBoolean();
    AMutableDouble r = new AMutableDouble(0);
    AMutableCharArrayString s = new AMutableCharArrayString();
    ClassAd c = new ClassAd();
    //ExprList *l;

    basic = parser.parseClassAd(input_basic);

    /* ----- Test EvaluateAttr* ----- */
    haveAttribute = basic.evaluateAttrInt("A", i);
    test("Have attribute A", (haveAttribute == true), "test_classad 1", results);
    test("A is 3", (i.getLongValue() == 3), "test_classad 2", results);

    haveAttribute = basic.evaluateAttrReal("B", r);
    test("Have attribute B", (haveAttribute == true), "test_classad 3", results);
    test("B is 4.0", (r.getDoubleValue() == 4.0), "test_classad 4", results);

    haveAttribute = basic.evaluateAttrString("C", s);
    test("Have attribute C", (haveAttribute == true), "test_classad 5", results);
    test("C is 'babyzilla'", (s.compareTo("babyzilla") == 0), "test_classad 6", results);

    haveAttribute = basic.evaluateAttrBool("D", b);
    test("Have attribute D", (haveAttribute == true), "test_classad 7", results);
    test("D is true", (b.booleanValue() == true), "test_classad 8", results);

    /* ----- Test basic insert and delete ----- */
    success = basic.insertAttr("new", 4);
    test("InsertAttr claims to have worked", (success == true), "test_classad 9", results);
    haveAttribute = basic.evaluateAttrInt("new", i);
    test("Have new attribute", (haveAttribute == true), "test_classad 10", results);
    test("new attribute is 4", i.getLongValue() == 4, "test_classad 11", results);

    success = basic.delete("new");
    test("Delete claims to have worked", (success == true), "test_classad 12", results);
    haveAttribute = basic.evaluateAttrInt("new", i);
    test("New attribute was deleted", (haveAttribute == false), "test_classad 13", results);

    success = basic.delete("G");
    test("DELETE claims to have worked", (success == true), "test_classad 14", results);
    haveAttribute = basic.evaluateAttrString("G", s);
    test("Attribute G was deleted", (haveAttribute == false), "test_classad 15", results);

    basic = null;

    /* ----- Test GetExternalReferences ----- */
    String inputRef = "[ Rank=Member(\"LCG-2_1_0\",other.Environment) ? other.Time/seconds : other.Time/minutes; minutes=60; ]";
    TreeSet<String> refs = new TreeSet<String>();
    ExprTree rank;

    c = parser.parseClassAd(inputRef);
    test("Made classad_ref", (c != null), "Test GetExternalReferences 1", results);
    if (c != null) {
        rank = c.lookup("Rank");
        test("Rank exists", (rank != null), "Test GetExternalReferences 2", results);

        if (rank != null) {
            boolean haveReferences;
            if ((haveReferences = c.getExternalReferences(rank, refs, true))) {
                test("have_references", (haveReferences == true), "Test GetExternalReferences 3", results);

                if (haveReferences) {
                    boolean haveEnvironment;
                    boolean haveTime;
                    boolean haveSeconds;
                    boolean haveOther;
                    haveEnvironment = false;
                    haveTime = false;
                    haveSeconds = false;
                    haveOther = false;
                    for (String entry : refs) {
                        System.out.println(entry);
                        if (entry.compareTo("other.Environment") == 0) {
                            haveEnvironment = true;
                        } else if (entry.compareTo("other.Time") == 0) {
                            haveTime = true;
                        } else if (entry.compareTo("seconds") == 0) {
                            haveSeconds = true;
                        } else {
                            haveOther = true;
                        }
                    }
                    test("Have external reference to Environment", (haveEnvironment == true),
                            "Test GetExternalReferences 4", results);
                    test("Have external reference to Time", (haveTime == true), "Test GetExternalReferences 5",
                            results);
                    test("Have external reference to seconds", (haveSeconds == true),
                            "Test GetExternalReferences 6", results);
                    test("Have no other external references", (haveOther != true),
                            "Test GetExternalReferences 7", results);
                }
            }
        }
        c = null;
    }

    // This ClassAd may cause problems. Perhaps a memory leak. 
    // This test is only useful when run under valgrind.
    String memoryProblemClassad = "[ Updates = [status = \"request_completed\"; timestamp = absTime(\"2004-12-16T18:10:59-0600]\")] ]";
    c = parser.parseClassAd(memoryProblemClassad);

    /* ----- Test Parsing multiple ClassAds ----- */
    String twoClassads = "[ a = 3; ][ b = 4; ]";
    ClassAd classad1 = new ClassAd();
    ClassAd classad2 = new ClassAd();
    AMutableInt32 offset = new AMutableInt32(0);

    parser.parseClassAd(twoClassads, classad1, offset);
    test("Have good offset #1", offset.getIntegerValue().intValue() == 10, "Test Parsing multiple ClassAds 1",
            results);
    parser.parseClassAd(twoClassads, classad2, offset);
    test("Have good offset #2", offset.getIntegerValue().intValue() == 20, "Test Parsing multiple ClassAds 2",
            results);

    /* ----- Test chained ClassAds ----- */
    //classad1 and classad2 from above test are used.
    ClassAd classad3 = new ClassAd();

    classad1.chainToAd(classad2);
    test("classad1's parent is classad2", classad1.getChainedParentAd().equals(classad2),
            "Test chained ClassAds 1", results);
    haveAttribute = classad1.evaluateAttrInt("b", i);
    test("chain has attribute b from parent", (haveAttribute == true), "Test chained ClassAds 2", results);
    test("chain attribute b from parent is 4", (i.getLongValue() == 4), "Test chained ClassAds 3", results);

    haveAttribute = classad1.evaluateAttrInt("a", i);
    test("chain has attribute a from self", (haveAttribute == true), "Test chained ClassAds 4", results);
    test("chain attribute a is 3", (i.getLongValue() == 3), "Test chained ClassAds 5", results);

    // Now we modify classad2 (parent) to contain "a".
    success = classad2.insertAttr("a", 7);
    test("insert a into parent", (success == true), "Test chained ClassAds 6", results);
    haveAttribute = classad1.evaluateAttrInt("a", i);
    test("chain has attribute a from self (overriding parent)", (haveAttribute == true),
            "Test chained ClassAds 7", results);
    test("chain attribute a is 3 (overriding parent)", (i.getLongValue() == 3), "Test chained ClassAds 8",
            results);
    haveAttribute = classad2.evaluateAttrInt("a", i);
    test("chain parent has attribute a", (haveAttribute == true), "Test chained ClassAds 9", results);
    test("chain parent attribute a is 7", (i.getLongValue() == 7), "Test chained ClassAds 10", results);

    success = classad3.copyFromChain(classad1);
    test("copy from chain succeeded", (success == true), "Test chained ClassAds 11", results);
    haveAttribute = classad3.evaluateAttrInt("b", i);
    test("copy of chain has attribute b", (haveAttribute == true), "Test chained ClassAds 12", results);
    test("copy of chain has attribute b==4", (i.getLongValue() == 4), "Test chained ClassAds 13", results);

    success = classad3.insertAttr("c", 6);
    test("insert into copy of chain succeeded", (success == true), "Test chained ClassAds 14", results);
    classad3.copyFromChain(classad1);
    haveAttribute = classad3.evaluateAttrInt("c", i);
    test("copy of chain is clean", (haveAttribute == false), "Test chained ClassAds 15", results);
    classad3.insertAttr("c", 6);
    success = classad3.updateFromChain(classad1);
    test("update from chain succeeded", (success == true), "Test chained ClassAds 16", results);
    haveAttribute = classad3.evaluateAttrInt("c", i);
    test("update from chain is merged", (haveAttribute == true), "Test chained ClassAds 17", results);
    test("update from chain has attribute c==6", (i.getLongValue() == 6), "Test chained ClassAds 18", results);
}

From source file:info.magnolia.ui.api.location.LocationControllerTest.java

@Test
public void testGoToWithCancelledWarning() {

    // GIVEN/* w ww .  ja va 2s. c  o  m*/
    LocationChangeRequestedHandler requestHandler = new LocationChangeRequestedHandlerThatWarns();
    LocationChangedHandler changeHandler = new LocationChangedHandler();

    SimpleEventBus eventBus = new SimpleEventBus();
    eventBus.addHandler(LocationChangeRequestedEvent.class, requestHandler);
    eventBus.addHandler(LocationChangedEvent.class, changeHandler);

    final MutableBoolean shellCalledToConfirm = new MutableBoolean(false);

    Shell shell = mock(Shell.class);
    doAnswer(new Answer<Void>() {
        @Override
        public Void answer(InvocationOnMock invocation) throws Throwable {
            shellCalledToConfirm.setValue(true);
            ConfirmationHandler o = (ConfirmationHandler) invocation.getArguments()[1];
            o.onCancel();
            return null;
        }
    }).when(shell).askForConfirmation(anyString(), any(ConfirmationHandler.class));

    LocationController locationController = new LocationController(eventBus, shell);

    assertEquals(Location.NOWHERE, locationController.getWhere());

    Location newLocation = getNewEmptyLocation();

    // WHEN
    locationController.goTo(newLocation);

    // THEN
    assertTrue(shellCalledToConfirm.booleanValue());

    assertEquals(Location.NOWHERE, locationController.getWhere());

    assertNotNull(requestHandler.event);
    assertSame(newLocation, requestHandler.event.getNewLocation());

    assertNull(changeHandler.event);
}

From source file:info.magnolia.ui.api.location.LocationControllerTest.java

@Test
public void testGoToWithConfirmedWarning() {

    // GIVEN/*w  w  w  .ja v a2 s.com*/
    LocationChangeRequestedHandler requestHandler = new LocationChangeRequestedHandlerThatWarns();
    LocationChangedHandler changeHandler = new LocationChangedHandler();

    SimpleEventBus eventBus = new SimpleEventBus();
    eventBus.addHandler(LocationChangeRequestedEvent.class, requestHandler);
    eventBus.addHandler(LocationChangedEvent.class, changeHandler);

    final MutableBoolean shellCalledToConfirm = new MutableBoolean(false);

    Shell shell = mock(Shell.class);
    doAnswer(new Answer<Void>() {
        @Override
        public Void answer(InvocationOnMock invocation) throws Throwable {
            shellCalledToConfirm.setValue(true);
            ConfirmationHandler o = (ConfirmationHandler) invocation.getArguments()[1];
            o.onConfirm();
            return null;
        }
    }).when(shell).askForConfirmation(anyString(), any(ConfirmationHandler.class));

    LocationController locationController = new LocationController(eventBus, shell);

    assertEquals(Location.NOWHERE, locationController.getWhere());

    Location newLocation = getNewEmptyLocation();

    // WHEN
    locationController.goTo(newLocation);

    // THEN
    assertTrue(shellCalledToConfirm.booleanValue());

    assertSame(newLocation, locationController.getWhere());

    assertNotNull(requestHandler.event);
    assertSame(newLocation, requestHandler.event.getNewLocation());

    assertNotNull(changeHandler.event);
    assertSame(newLocation, changeHandler.event.getNewLocation());
}

From source file:asterix.parser.classad.Operation.java

public static int doLogical(int op, Value v1, Value v2, Value result) throws HyracksDataException {
    MutableBoolean b1 = new MutableBoolean();
    MutableBoolean b2 = new MutableBoolean();

    // first coerece inputs to boolean if they are considered equivalent
    if (!v1.isBooleanValue(b1) && v1.isBooleanValueEquiv(b1)) {
        v1.setBooleanValue(b1.booleanValue());
    }//from w w w .j av a2  s .c o m
    if (!v2.isBooleanValue(b2) && v2.isBooleanValueEquiv(b2)) {
        v2.setBooleanValue(b2);
    }

    ValueType vt1 = v1.getType();
    ValueType vt2 = v2.getType();

    if (vt1 != ValueType.UNDEFINED_VALUE && vt1 != ValueType.ERROR_VALUE && vt1 != ValueType.BOOLEAN_VALUE) {
        result.setErrorValue();
        return SigValues.SIG_CHLD1.ordinal();
    }
    if (vt2 != ValueType.UNDEFINED_VALUE && vt2 != ValueType.ERROR_VALUE && vt2 != ValueType.BOOLEAN_VALUE) {
        result.setErrorValue();
        return SigValues.SIG_CHLD2.ordinal();
    }

    // handle unary operator
    if (op == OpKind_LOGICAL_NOT_OP) {
        if (vt1 == ValueType.BOOLEAN_VALUE) {
            result.setBooleanValue(!b1.booleanValue());
        } else {
            result.copyFrom(v1);
        }
        return SigValues.SIG_CHLD1.ordinal();
    }

    if (op == OpKind_LOGICAL_OR_OP) {
        if (vt1 == ValueType.BOOLEAN_VALUE && b1.booleanValue()) {
            result.setBooleanValue(true);
            return SigValues.SIG_CHLD1.ordinal();
        } else if (vt1 == ValueType.ERROR_VALUE) {
            result.setErrorValue();
            return SigValues.SIG_CHLD1.ordinal();
        } else if (vt1 == ValueType.BOOLEAN_VALUE && !b1.booleanValue()) {
            result.copyFrom(v2);
        } else if (vt2 != ValueType.BOOLEAN_VALUE) {
            result.copyFrom(v2);
        } else if (b2.booleanValue()) {
            result.setBooleanValue(true);
        } else {
            result.setUndefinedValue();
        }
        return (SigValues.SIG_CHLD1.ordinal() | SigValues.SIG_CHLD2.ordinal());
    } else if (op == OpKind_LOGICAL_AND_OP) {
        if (vt1 == ValueType.BOOLEAN_VALUE && !b1.booleanValue()) {
            result.setBooleanValue(false);
            return SigValues.SIG_CHLD1.ordinal();
        } else if (vt1 == ValueType.ERROR_VALUE) {
            result.setErrorValue();
            return SigValues.SIG_CHLD1.ordinal();
        } else if (vt1 == ValueType.BOOLEAN_VALUE && b1.booleanValue()) {
            result.copyFrom(v2);
        } else if (vt2 != ValueType.BOOLEAN_VALUE) {
            result.copyFrom(v2);
        } else if (!b2.booleanValue()) {
            result.setBooleanValue(false);
        } else {
            result.setUndefinedValue();
        }
        return (SigValues.SIG_CHLD1.ordinal() | SigValues.SIG_CHLD2.ordinal());
    }

    throw new HyracksDataException("Shouldn't reach here");
}

From source file:asterix.parser.classad.Operation.java

public static void compareBools(int op, Value v1, Value v2, Value result) throws HyracksDataException {
    MutableBoolean b1 = new MutableBoolean();
    MutableBoolean b2 = new MutableBoolean();
    boolean compResult = false;
    v1.isBooleanValue(b1);//from   ww w  . j a  v  a 2s.c o  m
    v2.isBooleanValue(b2);

    switch (op) {
    case OpKind_LESS_THAN_OP:
        compResult = (b1.compareTo(b2) < 0);
        break;
    case OpKind_LESS_OR_EQUAL_OP:
        compResult = (b1.compareTo(b2) <= 0);
        break;
    case OpKind_EQUAL_OP:
        compResult = (b1.booleanValue() == b2.booleanValue());
        break;
    case OpKind_META_EQUAL_OP:
        compResult = (b1.booleanValue() == b2.booleanValue());
        break;
    case OpKind_NOT_EQUAL_OP:
        compResult = (b1.booleanValue() != b2.booleanValue());
        break;
    case OpKind_META_NOT_EQUAL_OP:
        compResult = (b1.booleanValue() != b2.booleanValue());
        break;
    case OpKind_GREATER_THAN_OP:
        compResult = (b1.compareTo(b2) > 0);
        break;
    case OpKind_GREATER_OR_EQUAL_OP:
        compResult = (b1.compareTo(b2) >= 0);
        break;
    default:
        // should not get here
        throw new HyracksDataException("Should not get here");
    }
    result.setBooleanValue(compResult);
}

From source file:asterix.parser.classad.AttributeReference.java

public boolean privateEvaluate(EvalState state, Value val, ExprTreeHolder sig) throws HyracksDataException {
    ExprTreeHolder tree = new ExprTreeHolder();
    ExprTreeHolder exprSig = new ExprTreeHolder();
    ClassAd curAd = new ClassAd(state.getCurAd());
    MutableBoolean rval = new MutableBoolean(true);
    switch (findExpr(state, tree, exprSig, true)) {
    case EVAL_FAIL:
        rval.setValue(false);/*from   w  ww. j  a  v a 2  s. c  o  m*/
        break;
    case EVAL_ERROR:
        val.setErrorValue();
        break;
    case EVAL_UNDEF:
        val.setUndefinedValue();
        break;
    case EVAL_OK: {
        if (state.getDepthRemaining() <= 0) {
            val.setErrorValue();
            state.getCurAd().setValue(curAd);
            return false;
        }
        state.decrementDepth();
        rval.setValue(tree.publicEvaluate(state, val));
        state.incrementDepth();
        break;
    }
    default:
        throw new HyracksDataException("ClassAd:  Should not reach here");
    }
    sig.setInnerTree((new AttributeReference(exprSig, attributeStr, absolute)));
    state.getCurAd().setValue(curAd);
    return rval.booleanValue();
}

From source file:asterix.parser.classad.Operation.java

public static int privateDoOperation(int op, Value val1, Value val2, Value val3, boolean valid1, boolean valid2,
        boolean valid3, Value result, EvalState es) throws HyracksDataException {
    ValueType vt1;//from w  w  w. j  a va  2s  .co  m
    ValueType vt2;
    ValueType vt3;

    // get the types of the values
    vt1 = val1.getType();
    vt2 = val2.getType();
    vt3 = val3.getType();

    // take care of the easy cases
    if (op == OpKind_NO_OP || op == OpKind_PARENTHESES_OP) {
        result.copyFrom(val1);
        return SigValues.SIG_CHLD1.ordinal();
    } else if (op == OpKind_UNARY_PLUS_OP) {
        if (vt1 == ValueType.BOOLEAN_VALUE || vt1 == ValueType.STRING_VALUE || val1.isListValue()
                || vt1 == ValueType.CLASSAD_VALUE || vt1 == ValueType.ABSOLUTE_TIME_VALUE) {
            result.setErrorValue();
        } else {
            // applies for ERROR, UNDEFINED and Numbers
            result.copyFrom(val1);
        }
        return SigValues.SIG_CHLD1.ordinal();
    }

    // test for cases when evaluation is strict
    if (isStrictOperator(op)) {
        // check for error values
        if (vt1 == ValueType.ERROR_VALUE) {
            result.setErrorValue();
            return SigValues.SIG_CHLD1.ordinal();
        }
        if (valid2 && vt2 == ValueType.ERROR_VALUE) {
            result.setErrorValue();
            return SigValues.SIG_CHLD2.ordinal();
        }
        if (valid3 && vt3 == ValueType.ERROR_VALUE) {
            result.setErrorValue();
            return SigValues.SIG_CHLD3.ordinal();
        }

        // check for undefined values.  we need to check if the corresponding
        // tree exists, because these values would be undefined" anyway then.
        if (valid1 && vt1 == ValueType.UNDEFINED_VALUE) {
            result.setUndefinedValue();
            return SigValues.SIG_CHLD1.ordinal();
        }
        if (valid2 && vt2 == ValueType.UNDEFINED_VALUE) {
            result.setUndefinedValue();
            return SigValues.SIG_CHLD2.ordinal();
        }
        if (valid3 && vt3 == ValueType.UNDEFINED_VALUE) {
            result.setUndefinedValue();
            return SigValues.SIG_CHLD3.ordinal();
        }
    }

    // comparison operations (binary, one unary)
    if (op >= OpKind_COMPARISON_START && op <= OpKind_COMPARISON_END) {
        return (doComparison(op, val1, val2, result));
    }

    // arithmetic operations (binary)
    if (op >= OpKind_ARITHMETIC_START && op <= OpKind_ARITHMETIC_END) {
        return (doArithmetic(op, val1, val2, result));
    }

    // logical operators (binary, one unary)
    if (op >= OpKind_LOGIC_START && op <= OpKind_LOGIC_END) {
        return (doLogical(op, val1, val2, result));
    }

    // bitwise operators (binary, one unary)
    if (op >= OpKind_BITWISE_START && op <= OpKind_BITWISE_END) {
        return (doBitwise(op, val1, val2, result));
    }

    // misc.
    if (op == OpKind_TERNARY_OP) {
        // ternary (if-operator)
        MutableBoolean b = new MutableBoolean(false);

        // if the selector is UNDEFINED, the result is undefined
        if (vt1 == ValueType.UNDEFINED_VALUE) {
            result.setUndefinedValue();
            return SigValues.SIG_CHLD1.ordinal();
        }

        if (!val1.isBooleanValueEquiv(b)) {
            result.setErrorValue();
            return SigValues.SIG_CHLD1.ordinal();
        } else if (b.booleanValue()) {
            result.copyFrom(val2);
            return (SigValues.SIG_CHLD2.ordinal());
        } else {
            result.copyFrom(val3);
            return (SigValues.SIG_CHLD3.ordinal());
        }
    } else if (op == OpKind_SUBSCRIPT_OP) {
        // subscripting from a list (strict)

        if (vt1 == ValueType.CLASSAD_VALUE && vt2 == ValueType.STRING_VALUE) {
            ClassAd classad = new ClassAd();
            AMutableCharArrayString index = new AMutableCharArrayString();

            val1.isClassAdValue(classad);
            val2.isStringValue(index);

            if (classad.lookup(index.toString()) == null) {
                result.setErrorValue();
                return SigValues.SIG_CHLD2.ordinal();
            }
            if (!classad.evaluateAttr(index.toString(), result)) {
                result.setErrorValue();
                return SigValues.SIG_CHLD2.ordinal();
            }

            return (SigValues.SIG_CHLD1.ordinal() | SigValues.SIG_CHLD2.ordinal());
        } else if (val1.isListValue() && vt2 == ValueType.INTEGER_VALUE) {
            AMutableInt64 index = new AMutableInt64(0);
            ExprList elist = new ExprList();

            val1.isListValue(elist);
            val2.isIntegerValue(index);

            // check bounds
            if (index.getLongValue() < 0 || index.getLongValue() >= elist.getExprList().size()) {
                result.setErrorValue();
                return SigValues.SIG_CHLD2.ordinal();
            }
            // get value
            elist.getValue(result, elist.get((int) index.getLongValue()), es);
            return (SigValues.SIG_CHLD1.ordinal() | SigValues.SIG_CHLD2.ordinal());
        }
        // should not reach here
        throw new HyracksDataException("Should not get here");
    }
    return -1;
}

From source file:de.uni_potsdam.hpi.asg.logictool.synthesis.CElementSynthesis.java

@Override
public boolean doComplementaryCheck(Reset reset) {
    for (Signal sig : stateGraph.getAllSignals()) {
        if (sig.isInternalOrOutput()) {
            Set<NetlistVariable> ands_set = syn2.getSetnetworkMap().get(sig);
            Set<NetlistVariable> ands_reset = syn2.getResetnetworkMap().get(sig);
            BDD setbdd = null;//from   w ww.j av a 2s  . c  om
            if (!ands_set.isEmpty()) {
                setbdd = netlist.getFac().zero();
                for (NetlistVariable var : ands_set) {
                    setbdd = setbdd.or(var.getDriver().getBdd());
                }
            }
            BDD resetbdd = null;
            if (!ands_reset.isEmpty()) {
                resetbdd = netlist.getFac().zero();
                for (NetlistVariable var : ands_reset) {
                    resetbdd = resetbdd.or(var.getDriver().getBdd());
                }
            }

            if (setbdd == null && resetbdd == null) {
                logger.error("Both networks are empty");
                return false;
            } else if (setbdd == null) {
                networksComplementaryMap.put(sig, ComplementaryDecision.RESETANDC);
            } else if (resetbdd == null) {
                networksComplementaryMap.put(sig, ComplementaryDecision.SETANDC);
            } else {
                MutableBoolean setresult = new MutableBoolean();
                MutableBoolean resetresult = new MutableBoolean();
                boolean complementary = true;
                boolean onsetfull = true;
                boolean offsetfull = true;
                for (State s : stateGraph.getStates()) {
                    if (!BDDHelper.evaluateBDD(setresult, setbdd, s, netlist)) {
                        logger.error("Coult not eval set network for " + sig.getName());
                    }
                    if (!BDDHelper.evaluateBDD(resetresult, resetbdd, s, netlist)) {
                        logger.error("Coult not eval reset network for " + sig.getName());
                    }

                    switch (s.getStateValues().get(sig)) {
                    case rising:
                    case high:
                        if (!setresult.booleanValue()) {
                            onsetfull = false;
                        }
                        break;
                    case low:
                    case falling:
                        if (!resetresult.booleanValue()) {
                            offsetfull = false;
                        }
                        break;
                    }
                    if (!setresult.booleanValue() && !resetresult.booleanValue()) {
                        //set=0, reset=0
                        // => no complementary mapping
                        complementary = false;
                    }

                    if (!complementary && !onsetfull && !offsetfull) {
                        break;
                    }
                }

                Map<Signal, ResetDecision> resetDecision = reset.getDecision();
                NetlistVariable var = netlist.getNetlistVariableBySignal(sig);
                NetlistTerm celemterm = var.getDriver();
                if (!(celemterm instanceof NetlistCelem)) {
                    logger.error("Signal " + sig.getName() + " is not driven by an Celem");
                    return false;
                }
                NetlistCelem celem = (NetlistCelem) celemterm;
                InternalArch arch = celem.getArch();

                if (complementary) {
                    networksComplementaryMap.put(sig, ComplementaryDecision.BOTH);
                } else if (onsetfull) {
                    networksComplementaryMap.put(sig, ComplementaryDecision.SETONLY);
                } else if (offsetfull) {
                    networksComplementaryMap.put(sig, ComplementaryDecision.RESETONLY);
                } else {
                    networksComplementaryMap.put(sig, ComplementaryDecision.NONE);
                    switch (resetDecision.get(sig)) {
                    case NORST:
                        break;
                    case RESETRST:
                        switch (arch) {
                        case standardC:
                        case generalisedCreset:
                            break;
                        case generalisedCset:
                            resetDecision.put(sig, ResetDecision.NORST);
                            break;
                        }
                        break;
                    case SETRST:
                        switch (arch) {
                        case standardC:
                        case generalisedCset:
                            break;
                        case generalisedCreset:
                            resetDecision.put(sig, ResetDecision.NORST);
                            break;
                        }
                        break;
                    case BOTHRST:
                        switch (arch) {
                        case generalisedCreset:
                            resetDecision.put(sig, ResetDecision.RESETRST);
                            break;
                        case generalisedCset:
                            resetDecision.put(sig, ResetDecision.SETRST);
                            break;
                        case standardC:
                            break;
                        }
                        break;
                    }
                }
            }
        }
    }
    return true;
}

From source file:asterix.parser.classad.ExprTree.java

public void debugFormatValue(Value value, double time) throws HyracksDataException {
    MutableBoolean boolValue = new MutableBoolean(false);
    AMutableInt64 intValue = new AMutableInt64(0);
    AMutableDouble doubleValue = new AMutableDouble(0.0);
    AMutableCharArrayString stringValue = new AMutableCharArrayString();

    if (NodeKind.CLASSAD_NODE == getKind())
        return;/*from  w ww . j a v  a 2 s.  c om*/

    PrettyPrint unp = new PrettyPrint();
    AMutableCharArrayString buffer = new AMutableCharArrayString();
    unp.unparse(buffer, this);

    String result = "Classad debug: ";
    if (time != 0) {
        String buf = String.format("%5.5fms", time * 1000);
        result += "[";
        result += buf;
        result += "] ";
    }
    result += buffer;
    result += " --> ";

    switch (value.getType()) {
    case NULL_VALUE:
        result += "NULL\n";
        break;
    case ERROR_VALUE:
        if ((NodeKind.FN_CALL_NODE == getKind()) && !((FunctionCall) (this)).functionIsDefined()) {
            result += "ERROR (function is not defined)\n";
        } else {
            result += "ERROR\n";
        }
        break;
    case UNDEFINED_VALUE:
        result += "UNDEFINED\n";
        break;
    case BOOLEAN_VALUE:
        if (value.isBooleanValue(boolValue))
            result += boolValue.booleanValue() ? "TRUE\n" : "FALSE\n";
        break;
    case INTEGER_VALUE:
        if (value.isIntegerValue(intValue)) {
            result += String.format("%lld", intValue.getLongValue());
            result += "\n";
        }
        break;

    case REAL_VALUE:
        if (value.isRealValue(doubleValue)) {
            result += String.format("%lld", doubleValue.getDoubleValue());
            result += "\n";
        }
        break;
    case RELATIVE_TIME_VALUE:
        result += "RELATIVE TIME\n";
        break;
    case ABSOLUTE_TIME_VALUE:
        result += "ABSOLUTE TIME\n";
        break;
    case STRING_VALUE:
        if (value.isStringValue(stringValue)) {
            result += stringValue.toString();
            result += "\n";
        }
        break;
    case CLASSAD_VALUE:
        result += "CLASSAD\n";
        break;
    case LIST_VALUE:
        result += "LIST\n";
        break;
    case SLIST_VALUE:
        result += "SLIST\n";
        break;
    }
    debugPrint(result);
}

From source file:asterix.parser.classad.Operation.java

public static ValueType coerceToNumber(Value v1, Value v2) {
    AMutableInt64 i = new AMutableInt64(0);
    AMutableDouble r = new AMutableDouble(0);
    MutableBoolean b = new MutableBoolean();

    // either of v1, v2 not numerical?
    if (v1.isClassAdValue() || v2.isClassAdValue())
        return ValueType.CLASSAD_VALUE;
    if (v1.isListValue() || v2.isListValue())
        return ValueType.LIST_VALUE;
    if (v1.isStringValue() || v2.isStringValue())
        return ValueType.STRING_VALUE;
    if (v1.isUndefinedValue() || v2.isUndefinedValue())
        return ValueType.UNDEFINED_VALUE;
    if (v1.isErrorValue() || v2.isErrorValue())
        return ValueType.ERROR_VALUE;
    if (v1.isAbsoluteTimeValue() || v2.isAbsoluteTimeValue())
        return ValueType.ABSOLUTE_TIME_VALUE;
    if (v1.isRelativeTimeValue() || v2.isRelativeTimeValue())
        return ValueType.RELATIVE_TIME_VALUE;

    // promote booleans to integers
    if (v1.isBooleanValue(b)) {
        if (b.booleanValue()) {
            v1.setIntegerValue(1);//from  w w w  . j  a v a2s .  c o  m
        } else {
            v1.setIntegerValue(0);
        }
    }

    if (v2.isBooleanValue(b)) {
        if (b.booleanValue()) {
            v2.setIntegerValue(1);
        } else {
            v2.setIntegerValue(0);
        }
    }

    // both v1 and v2 of same numerical type
    if (v1.isIntegerValue(i) && v2.isIntegerValue(i))
        return ValueType.INTEGER_VALUE;
    if (v1.isRealValue(r) && v2.isRealValue(r))
        return ValueType.REAL_VALUE;

    // type promotions required
    if (v1.isIntegerValue(i) && v2.isRealValue(r))
        v1.setRealValue((double) i.getLongValue());
    else if (v1.isRealValue(r) && v2.isIntegerValue(i))
        v2.setRealValue((double) i.getLongValue());

    return ValueType.REAL_VALUE;
}