/** * Create XML for the join style in a PathQuery. */ private static void marshalPathQueryJoinStyle(PathQuery query, XMLStreamWriter writer) throws XMLStreamException { for (Map.Entry<String, OuterJoinStatus> entry : query.getOuterJoinStatus().entrySet()) { writer.writeEmptyElement("join"); writer.writeAttribute("path", entry.getKey()); writer.writeAttribute("style", entry.getValue().toString()); //writer.writeEndElement(); } }
/** * Create XML for the join style in a PathQuery. */ private static void marshalPathQueryJoinStyle(PathQuery query, XMLStreamWriter writer) throws XMLStreamException { for (Map.Entry<String, OuterJoinStatus> entry : query.getOuterJoinStatus().entrySet()) { writer.writeEmptyElement("join"); writer.writeAttribute("path", entry.getKey()); writer.writeAttribute("style", entry.getValue().toString()); //writer.writeEndElement(); } }
private void updateOuterJoins(Map<String, String> renamedClasses, Map<String, String> renamedFields) throws PathException { Map<String, OuterJoinStatus> outerJoinStatus = pathQuery.getOuterJoinStatus(); String newJoinPath; for (String joinPath : outerJoinStatus.keySet()) { newJoinPath = getPathUpdated(joinPath, renamedClasses, renamedFields); newPathQuery.setOuterJoinStatus(newJoinPath, outerJoinStatus.get(joinPath)); } }
private void updateOuterJoins(Map<String, String> renamedClasses, Map<String, String> renamedFields) throws PathException { Map<String, OuterJoinStatus> outerJoinStatus = pathQuery.getOuterJoinStatus(); String newJoinPath; for (String joinPath : outerJoinStatus.keySet()) { newJoinPath = getPathUpdated(joinPath, renamedClasses, renamedFields); newPathQuery.setOuterJoinStatus(newJoinPath, outerJoinStatus.get(joinPath)); } }
false); for (String constraintPath : nullRefColConstraints.keySet()) { OuterJoinStatus ojs = pathQuery.getOuterJoinStatus(constraintPath); if (ojs == OuterJoinStatus.OUTER) {
false); for (String constraintPath : nullRefColConstraints.keySet()) { OuterJoinStatus ojs = pathQuery.getOuterJoinStatus(constraintPath); if (ojs == OuterJoinStatus.OUTER) {
Map<String, OuterJoinStatus> ojs = getOuterJoinStatus(); if (!ojs.isEmpty()) { StringBuilder sb2 = new StringBuilder();
Map<String, OuterJoinStatus> ojs = getOuterJoinStatus(); if (!ojs.isEmpty()) { StringBuilder sb2 = new StringBuilder();
if (query.getOuterJoinStatus() != null && !query.getOuterJoinStatus().isEmpty()) { for (Entry<String, OuterJoinStatus> entry : query.getOuterJoinStatus().entrySet()) { sb.append(INDENT + "join(\"" + entry.getKey() + "\", \"" + entry.getValue() + "\")." + endl);
if (query.getOuterJoinStatus() != null && !query.getOuterJoinStatus().isEmpty()) { for (Entry<String, OuterJoinStatus> entry : query.getOuterJoinStatus().entrySet()) { sb.append(INDENT + "join(\"" + entry.getKey() + "\", \"" + entry.getValue() + "\")." + endl);
/** * Returns true if the given Path object represents a path that is inner-joined onto the parent * path in this query. This will return false for the root class. Do not call this method with * a Path that is an attribute. * * @param path a Path object * @return true if the join is inner, not outer and not the root * @throws IllegalArgumentException if the path is an attribute */ private boolean isInner(Path path) { if (path.isRootPath()) { return false; } if (path.endIsAttribute()) { throw new IllegalArgumentException("Cannot call isInner() with a path that is an " + "attribute"); } OuterJoinStatus status = getOuterJoinStatus(path.getNoConstraintsString()); if (OuterJoinStatus.INNER.equals(status)) { return true; } else if (OuterJoinStatus.OUTER.equals(status)) { return false; } // Fall back on defaults return true; }
/** * Returns true if the given Path object represents a path that is inner-joined onto the parent * path in this query. This will return false for the root class. Do not call this method with * a Path that is an attribute. * * @param path a Path object * @return true if the join is inner, not outer and not the root * @throws IllegalArgumentException if the path is an attribute */ private boolean isInner(Path path) { if (path.isRootPath()) { return false; } if (path.endIsAttribute()) { throw new IllegalArgumentException("Cannot call isInner() with a path that is an " + "attribute"); } OuterJoinStatus status = getOuterJoinStatus(path.getNoConstraintsString()); if (OuterJoinStatus.INNER.equals(status)) { return true; } else if (OuterJoinStatus.OUTER.equals(status)) { return false; } // Fall back on defaults return true; }
public void testExplicitJoins() throws PathException { PathQuery query = createQuery("ExplicitJoins.xml"); assertEquals(Collections.EMPTY_LIST, query.verifyQuery()); assertEquals(query.getOuterJoinStatus("Employee.department.company"), OuterJoinStatus.OUTER); assertEquals(query.getOuterJoinStatus("Employee.department"), OuterJoinStatus.INNER); }
for (String join : getOuterJoinStatus().keySet()) { Path path = new Path(model, join, subclasses); if (path.endIsAttribute()) {
public void testOldStyleJoins() throws PathException { PathQuery query = createQuery("OldStyleJoins.xml"); assertEquals(Collections.EMPTY_LIST, query.verifyQuery()); assertEquals(query.getOuterJoinStatus("Employee.department.employees"), OuterJoinStatus.OUTER); }
for (String join : getOuterJoinStatus().keySet()) { Path path = new Path(model, join, subclasses); if (path.endIsAttribute()) {
for (String join : getOuterJoinStatus().keySet()) { if (isPathUnder(path, join)) { setOuterJoinStatus(join, null);
for (String join : getOuterJoinStatus().keySet()) { if (isPathUnder(path, join)) { setOuterJoinStatus(join, null);
q.addView("Employee.department.name"); q.setOuterJoinStatus("Employee.department", OuterJoinStatus.INNER); assertEquals(OuterJoinStatus.INNER, q.getOuterJoinStatus("Employee.department")); assertNull(q.getOuterJoinStatus("lkjhasdflkjhasdfaskj")); try { q.setOuterJoinStatus(null, OuterJoinStatus.INNER); q.getOuterJoinStatus(null); fail("Expected NullPointerException"); } catch (NullPointerException e) { q.getOuterJoinStatus("Empsda adsfasdf"); fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException e) { assertEquals(Collections.singletonMap("Employee.department", OuterJoinStatus.INNER), q.getOuterJoinStatus()); assertEquals(2, OuterJoinStatus.values().length); assertEquals(OuterJoinStatus.INNER, OuterJoinStatus.valueOf("INNER")); assertEquals("<query name=\"test\" model=\"testmodel\" view=\"Employee.department.name\" longDescription=\"\"><join path=\"Employee.department\" style=\"INNER\"/></query>", PathQueryBinding.marshal(q, "test", "testmodel", 1)); q.setOuterJoinStatus("Employee.department", null); assertEquals(Collections.emptyMap(), q.getOuterJoinStatus()); assertEquals("Employee", q.getOuterJoinGroup("Employee")); assertEquals("Employee", q.getOuterJoinGroup("Employee.department"));
assertEquals("DepartmentA1", constraint3.getExtraValue()); assertEquals(OuterJoinStatus.OUTER, queryUpdated.getOuterJoinStatus("CEO.company"));