private boolean doEquivalent(Base left, Base right) throws PathEngineException { if (left.hasType("integer") && right.hasType("integer")) return doEquals(left, right); if (left.hasType("boolean") && right.hasType("boolean")) return doEquals(left, right); if (left.hasType("integer", "decimal") && right.hasType("integer", "decimal")) return Utilities.equivalentNumber(left.primitiveValue(), right.primitiveValue()); if (left.hasType("date", "dateTime", "time", "instant") && right.hasType("date", "dateTime", "time", "instant")) return Utilities.equivalentNumber(left.primitiveValue(), right.primitiveValue()); if (left.hasType("string", "id", "code", "uri") && right.hasType("string", "id", "code", "uri")) return Utilities.equivalent(convertToString(left), convertToString(right)); throw new PathEngineException(String.format("Unable to determine equivalence between %s and %s", left.fhirType(), right.fhirType())); }
private boolean doEquivalent(Base left, Base right) throws PathEngineException { if (left.hasType("integer") && right.hasType("integer")) return doEquals(left, right); if (left.hasType("boolean") && right.hasType("boolean")) return doEquals(left, right); if (left.hasType("integer", "decimal") && right.hasType("integer", "decimal")) return Utilities.equivalentNumber(left.primitiveValue(), right.primitiveValue()); if (left.hasType("date", "dateTime", "time", "instant") && right.hasType("date", "dateTime", "time", "instant")) return Utilities.equivalentNumber(left.primitiveValue(), right.primitiveValue()); if (left.hasType("string", "id", "code", "uri") && right.hasType("string", "id", "code", "uri")) return Utilities.equivalent(convertToString(left), convertToString(right)); throw new PathEngineException(String.format("Unable to determine equivalence between %s and %s", left.fhirType(), right.fhirType())); }
private boolean doEquivalent(Base left, Base right) throws PathEngineException { if (left instanceof Quantity && right instanceof Quantity) return qtyEquivalent((Quantity) left, (Quantity) right); if (left.hasType("integer") && right.hasType("integer")) return doEquals(left, right); if (left.hasType("boolean") && right.hasType("boolean")) return doEquals(left, right); if (left.hasType("integer", "decimal", "unsignedInt", "positiveInt") && right.hasType("integer", "decimal", "unsignedInt", "positiveInt")) return Utilities.equivalentNumber(left.primitiveValue(), right.primitiveValue()); if (left.hasType("date", "dateTime", "time", "instant") && right.hasType("date", "dateTime", "time", "instant")) return compareDateTimeElements(left, right, true) == 0; if (left.hasType("string", "id", "code", "uri") && right.hasType("string", "id", "code", "uri")) return Utilities.equivalent(convertToString(left), convertToString(right)); throw new PathEngineException(String.format("Unable to determine equivalence between %s and %s", left.fhirType(), right.fhirType())); }
private boolean doEquivalent(Base left, Base right) throws PathEngineException { if (left.hasType("integer") && right.hasType("integer")) return doEquals(left, right); if (left.hasType("boolean") && right.hasType("boolean")) return doEquals(left, right); if (left.hasType("integer", "decimal") && right.hasType("integer", "decimal")) return Utilities.equivalentNumber(left.primitiveValue(), right.primitiveValue()); if (left.hasType("date", "dateTime", "time", "instant") && right.hasType("date", "dateTime", "time", "instant")) return Utilities.equivalentNumber(left.primitiveValue(), right.primitiveValue()); if (left.hasType("string", "id", "code", "uri") && right.hasType("string", "id", "code", "uri")) return Utilities.equivalent(convertToString(left), convertToString(right)); throw new PathEngineException(String.format("Unable to determine equivalence between %s and %s", left.fhirType(), right.fhirType())); }
private boolean doEquivalent(Base left, Base right) throws PathEngineException { if (left.hasType("integer") && right.hasType("integer")) return doEquals(left, right); if (left.hasType("boolean") && right.hasType("boolean")) return doEquals(left, right); if (left.hasType("integer", "decimal") && right.hasType("integer", "decimal")) return Utilities.equivalentNumber(left.primitiveValue(), right.primitiveValue()); if (left.hasType("date", "dateTime", "time", "instant") && right.hasType("date", "dateTime", "time", "instant")) return Utilities.equivalentNumber(left.primitiveValue(), right.primitiveValue()); if (left.hasType("string", "id", "code", "uri") && right.hasType("string", "id", "code", "uri")) return Utilities.equivalent(convertToString(left), convertToString(right)); throw new PathEngineException(String.format("Unable to determine equivalence between %s and %s", left.fhirType(), right.fhirType())); }
private boolean doEquivalent(Base left, Base right) throws PathEngineException { if (left.hasType("integer") && right.hasType("integer")) return doEquals(left, right); if (left.hasType("boolean") && right.hasType("boolean")) return doEquals(left, right); if (left.hasType("integer", "decimal", "unsignedInt", "positiveInt") && right.hasType("integer", "decimal", "unsignedInt", "positiveInt")) return Utilities.equivalentNumber(left.primitiveValue(), right.primitiveValue()); if (left.hasType("date", "dateTime", "time", "instant") && right.hasType("date", "dateTime", "time", "instant")) return compareDateTimeElements(left, right) == 0; if (left.hasType("string", "id", "code", "uri") && right.hasType("string", "id", "code", "uri")) return Utilities.equivalent(convertToString(left), convertToString(right)); throw new PathEngineException(String.format("Unable to determine equivalence between %s and %s", left.fhirType(), right.fhirType())); }
private boolean doEquivalent(Base left, Base right) throws PathEngineException { if (left instanceof Quantity && right instanceof Quantity) return qtyEquivalent((Quantity) left, (Quantity) right); if (left.hasType("integer") && right.hasType("integer")) return doEquals(left, right); if (left.hasType("boolean") && right.hasType("boolean")) return doEquals(left, right); if (left.hasType("integer", "decimal", "unsignedInt", "positiveInt") && right.hasType("integer", "decimal", "unsignedInt", "positiveInt")) return Utilities.equivalentNumber(left.primitiveValue(), right.primitiveValue()); if (left.hasType("date", "dateTime", "time", "instant") && right.hasType("date", "dateTime", "time", "instant")) return compareDateTimeElements(left, right, true) == 0; if (left.hasType("string", "id", "code", "uri") && right.hasType("string", "id", "code", "uri")) return Utilities.equivalent(convertToString(left), convertToString(right)); throw new PathEngineException(String.format("Unable to determine equivalence between %s and %s", left.fhirType(), right.fhirType())); }