@Override public PathNode dupNode() { PathNode result = new PathNode(token, entityVariableName); dupChildren(result); return result; }
@Override public void renameVariableIn(PathNode node) { node.renameVariableTo(pathNode.getEntityVariableName()); List newChildren = new ArrayList(pathNode.dupNode().getChildren()); while (node.getChildCount() > 0) { newChildren.add(node.deleteChild(0)); } node.addChildren(newChildren); }
@Override public PathEntityReference addFieldPath(String fieldPath) { PathNode newPathNode = pathNode.dupNode(); newPathNode.addDefaultChildren(fieldPath); return new PathEntityReference(newPathNode, pathStartingEntityName); }
public void replaceSelectedEntityVariable(String newVariableName, PathNode pathNode) { if (pathNode != null) { pathNode.renameVariableTo(newVariableName); //remove path elements while (pathNode.getChildCount() > 0) { pathNode.deleteChild(0); } } }
DomainModel model = queryTree.getModel(); JpqlEntityModel entity = model.getEntityByName(entityName); String currentVariableName = pathNode.getEntityVariableName(); PathNode currentPathNode = new PathNode(pathNode.getToken(), currentVariableName); for (int i = 0; i < pathNode.getChildCount(); i++) { String fieldName = pathNode.getChild(i).toString(); Attribute entityAttribute = entity.getAttributeByName(fieldName); if (entityAttribute.isEntityReferenceAttribute() && !entityAttribute.isEmbedded()) { currentPathNode.addDefaultChild(fieldName); pathNodes.add(currentPathNode); currentVariableName = currentPathNode.asPathString('_'); currentPathNode = new PathNode(pathNode.getToken(), currentVariableName); } else { currentPathNode.addDefaultChild(fieldName);
JpqlEntityModel entity = variableContext.getEntityByVariableName(pathNode.getEntityVariableName()); if (entity != null && entity.getName() != null && identificationVariable != null) { if (!StringUtils.equalsIgnoreCase(pathNode.getEntityVariableName(), identificationVariable.getVariableName())) { return new EntityNameAndPath(entity.getName(), pathNode.getEntityVariableName()); boolean collectionSelect = false; try { entity = variableContext.getEntityByVariableName(pathNode.getEntityVariableName()); if (entity != null) { entityPath = pathNode.asPathString(); for (int i = 0; i < pathNode.getChildCount(); i++) { String fieldName = pathNode.getChild(i).toString(); Attribute entityAttribute = entity.getAttributeByName(fieldName); if (entityAttribute != null && entityAttribute.isEntityReferenceAttribute()) {
@Override public PathEntityReference addFieldPath(String fieldPath) { PathNode pathNode = new PathNode(JPA2Lexer.T_SELECTED_FIELD, entityVariableName); pathNode.addDefaultChildren(fieldPath); return new PathEntityReference(pathNode, entityName); }
@Override public List<QueryPath> getQueryPaths() { List<QueryPath> queryPaths = new ArrayList<>(); QueryVariableContext variableContext = getTree().getQueryVariableContext(); PathNodeFinder finder = getTree().visit(new PathNodeFinder()); for (PathNode node : finder.getSelectedPathNodes()) { JpqlEntityModel model = variableContext.getEntityByVariableNameHierarchically(node.getEntityVariableName()); QueryPath queryPath = new QueryPath(model.getName(), node.getEntityVariableName(), node.asPathString(), true); queryPaths.add(queryPath); } for (PathNode node : finder.getOtherPathNodes()) { JpqlEntityModel model = variableContext.getEntityByVariableNameHierarchically(node.getEntityVariableName()); QueryPath queryPath = new QueryPath(model.getName(), node.getEntityVariableName(), node.asPathString(), false); queryPaths.add(queryPath); } return queryPaths; }
public String asPathString() { return asPathString('.'); }
if (pathNode.getChildCount() > 1) { List<PathNode> pathNodes = getPathNodesForOrderBy(orderingFieldRef); if (pathNodes.size() > 1) { orderByField.addChild(pathNodes.remove(pathNodes.size() - 1)); for (PathNode joinPathNode : pathNodes) { String joinPathNodeVariableName = joinPathNode.asPathString('_'); if (!addedJoinVariables.contains(joinPathNodeVariableName)) { JoinVariableNode joinNode = new JoinVariableNode(JPA2Lexer.T_JOIN_VAR, "left join", joinPathNodeVariableName);
public void addEntityInGroupBy(String entityAlias) { Tree groupBy = queryTree.getAstGroupByNode(); if (groupBy != null) { groupBy.addChild(new PathNode(JPA2Lexer.T_SELECTED_ENTITY, entityAlias)); groupBy.freshenParentAndChildIndexes(); } }
public void addDefaultChildren(String fieldPath) { String[] strings = fieldPath.split("\\."); for (String string : strings) { addChild(new CommonTree(new CommonToken(JPA2Lexer.WORD, string))); } }
public PathEntityReference(PathNode pathNode, String pathStartingEntityName) { this.pathStartingEntityName = pathStartingEntityName; this.pathNode = pathNode.dupNode(); }
public List<Pointer> resolveTransitionalPointers(DomainModel model, QueryVariableContext queryVC) { return createEntityPath().resolveTransitionalPointers(model, queryVC); }
@Override public String replaceEntries(String queryPart, String replaceablePart) { return queryPart.replaceAll("\\{E\\}", pathNode.asPathString()); }
root_1 = (Object)adaptor.becomeRoot(new PathNode(T_SELECTED_FIELD, (identification_variable72!=null?input.toString(identification_variable72.start,identification_variable72.stop):null)), root_1);
public void replaceWithSelectId(String idProperty, PathNode pathNode) { if (pathNode != null) { pathNode.addChild(new CommonTree(new CommonToken(JPA2Lexer.WORD, idProperty))); } }
@Override public Tree createNode() { return pathNode.dupNode(); }
public Pointer resolvePointer(DomainModel model, QueryVariableContext queryVC) { return createEntityPath().resolvePointer(model, queryVC); }
@Override public CommonTree treeToQueryPre(QueryBuilder sb, List<ErrorRec> invalidNodes) { sb.appendString(asPathString()); return null; }