private Type getNakedPropertyType(FromElement fromElement) { if (fromElement == null) { return null; } String property = getOriginalText(); Type propertyType = null; try { propertyType = fromElement.getPropertyType(property, property); } catch (Throwable ignore) { } return propertyType; }
@Override public String getDisplayText() { StringBuilder buf = new StringBuilder(); if (getType() == SqlTokenTypes.ALIAS_REF) { buf.append("{alias=").append(getOriginalText()); if (getFromElement() == null) { buf.append(", no from element"); } else { buf.append(", className=").append(getFromElement().getClassName()); buf.append(", tableAlias=").append(getFromElement().getTableAlias()); } buf.append("}"); } else { buf.append( "{originalText=" ).append( getOriginalText() ).append( "}" ); } return buf.toString(); }
private EntityPersister resolveEntityJoinReferencedPersister(AST path) { if ( path.getType() == IDENT ) { final IdentNode pathIdentNode = (IdentNode) path; String name = path.getText(); if ( name == null ) { name = pathIdentNode.getOriginalText(); } return sessionFactoryHelper.findEntityPersisterByName( name ); } else if ( path.getType() == DOT ) { final String pathText = ASTUtil.getPathText( path ); return sessionFactoryHelper.findEntityPersisterByName( pathText ); } return null; }
private boolean resolveAsNakedComponentPropertyRefLHS(DotNode parent) { FromElement fromElement = locateSingleFromElement(); if (fromElement == null) { return false; } Type componentType = getNakedPropertyType(fromElement); if ( componentType == null ) { throw new QueryException( "Unable to resolve path [" + parent.getPath() + "], unexpected token [" + getOriginalText() + "]" ); } if (!componentType.isComponentType()) { throw new QueryException("Property '" + getOriginalText() + "' is not a component. Use an alias to reference associations or collections."); } Type propertyType; String propertyPath = getText() + "." + getNextSibling().getText(); try { // check to see if our "propPath" actually // represents a property on the persister propertyType = fromElement.getPropertyType(getText(), propertyPath); } catch (Throwable t) { // assume we do *not* refer to a property on the given persister return false; } setFromElement(fromElement); parent.setPropertyPath(propertyPath); parent.setDataType(propertyType); return true; }
String propertyName = getOriginalText(); if (!getDataType().isCollectionType()) { throw new SemanticException("Collection expected; [" + propertyName + "] does not refer to a collection property");
getColumns() != null && ( getWalker().getAST() instanceof AbstractMapComponentNode || getWalker().getAST() instanceof IndexNode ) && getWalker().getCurrentFromClause().isFromElementAlias( getOriginalText() ) ) { setText( getOriginalText() ); if ( resolveAsAlias() ) { setResolved();
private Type getNakedPropertyType(FromElement fromElement) { if (fromElement == null) { return null; } String property = getOriginalText(); Type propertyType = null; try { propertyType = fromElement.getPropertyType(property, property); } catch (Throwable t) { } return propertyType; }
private Type getNakedPropertyType(FromElement fromElement) { if (fromElement == null) { return null; } String property = getOriginalText(); Type propertyType = null; try { propertyType = fromElement.getPropertyType(property, property); } catch (Throwable t) { } return propertyType; }
@Override public String getDisplayText() { StringBuffer buf = new StringBuffer(); if (getType() == SqlTokenTypes.ALIAS_REF) { buf.append("{alias=").append(getOriginalText()); if (getFromElement() == null) { buf.append(", no from element"); } else { buf.append(", className=").append(getFromElement().getClassName()); buf.append(", tableAlias=").append(getFromElement().getTableAlias()); } buf.append("}"); } else { buf.append("{originalText=" + getOriginalText()).append("}"); } return buf.toString(); }
@Override public String getDisplayText() { StringBuffer buf = new StringBuffer(); if (getType() == SqlTokenTypes.ALIAS_REF) { buf.append("{alias=").append(getOriginalText()); if (getFromElement() == null) { buf.append(", no from element"); } else { buf.append(", className=").append(getFromElement().getClassName()); buf.append(", tableAlias=").append(getFromElement().getTableAlias()); } buf.append("}"); } else { buf.append("{originalText=" + getOriginalText()).append("}"); } return buf.toString(); }
private boolean resolveAsNakedComponentPropertyRefLHS(DotNode parent) { FromElement fromElement = locateSingleFromElement(); if (fromElement == null) { return false; } Type componentType = getNakedPropertyType(fromElement); if ( componentType == null ) { throw new QueryException( "Unable to resolve path [" + parent.getPath() + "], unexpected token [" + getOriginalText() + "]" ); } if (!componentType.isComponentType()) { throw new QueryException("Property '" + getOriginalText() + "' is not a component. Use an alias to reference associations or collections."); } Type propertyType = null; // used to set the type of the parent dot node String propertyPath = getText() + "." + getNextSibling().getText(); try { // check to see if our "propPath" actually // represents a property on the persister propertyType = fromElement.getPropertyType(getText(), propertyPath); } catch (Throwable t) { // assume we do *not* refer to a property on the given persister return false; } setFromElement(fromElement); parent.setPropertyPath(propertyPath); parent.setDataType(propertyType); return true; }
private boolean resolveAsNakedComponentPropertyRefLHS(DotNode parent) { FromElement fromElement = locateSingleFromElement(); if (fromElement == null) { return false; } Type componentType = getNakedPropertyType(fromElement); if ( componentType == null ) { throw new QueryException( "Unable to resolve path [" + parent.getPath() + "], unexpected token [" + getOriginalText() + "]" ); } if (!componentType.isComponentType()) { throw new QueryException("Property '" + getOriginalText() + "' is not a component. Use an alias to reference associations or collections."); } Type propertyType = null; // used to set the type of the parent dot node String propertyPath = getText() + "." + getNextSibling().getText(); try { // check to see if our "propPath" actually // represents a property on the persister propertyType = fromElement.getPropertyType(getText(), propertyPath); } catch (Throwable t) { // assume we do *not* refer to a property on the given persister return false; } setFromElement(fromElement); parent.setPropertyPath(propertyPath); parent.setDataType(propertyType); return true; }
String propertyName = getOriginalText(); if (!getDataType().isCollectionType()) { throw new SemanticException("Collection expected; [" + propertyName + "] does not refer to a collection property");
String propertyName = getOriginalText(); if (!getDataType().isCollectionType()) { throw new SemanticException("Collection expected; [" + propertyName + "] does not refer to a collection property");
if ("trim".equals(methodNameNode.getOriginalText())) { String trimType = "BOTH"; Statement trimChar = Stmt.loadLiteral(' '); args[i] = generateExpression(traverser, dotNodeResolver, containingMethod); if ("lower".equals(methodNameNode.getOriginalText())) { return Stmt.castTo(String.class, Stmt.load(args[0])).invoke("toLowerCase"); else if ("upper".equals(methodNameNode.getOriginalText())) { return Stmt.castTo(String.class, Stmt.load(args[0])).invoke("toUpperCase"); else if ("concat".equals(methodNameNode.getOriginalText())) { StringBuilderBuilder sb = Implementations.newStringBuilder(); for (Statement s : args) { else if ("substring".equals(methodNameNode.getOriginalText())) { int uniq = uniqueNumber.incrementAndGet(); containingMethod.append(Stmt.declareFinalVariable("substrOrig" + uniq, String.class, else if ("length".equals(methodNameNode.getOriginalText())) { else if ("locate".equals(methodNameNode.getOriginalText())) { return Stmt.castTo(double.class, Stmt.nestedCall(Arith.expr(indexOf, ArithmeticOperator.Addition, 1))); throw new UnsupportedOperationException("The JPQL function " + methodNameNode.getOriginalText() + " is not supported");