List of usage examples for org.apache.commons.lang3.mutable MutableBoolean booleanValue
public boolean booleanValue()
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; }