/* * @(#)Parser.java 2013-4-3 下午23:33:33 * * Copyright (c) 2011-2013 Makersoft.org all rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * */ package org.makersoft.orm.hql; import java.util.Collection; import java.util.Set; /** * HQL解析器 */ public abstract class Parser { // 将where子句进行切分 public static final String HQL_SEPARATORS = " \n\r\f\t,()=<>&|+-=/*'^![]#~\\"; private final Set<String> columns; private final String alias; public Parser(Set<String> columns, String alias){ this.columns = columns; this.alias = alias; } public abstract void parse(String hql); public abstract String toHQL(); public Set<String> getColumns() { return columns; } public String getAlias() { return alias; } public static String root(String qualifiedName) { int loc = qualifiedName.indexOf("."); return (loc < 0) ? qualifiedName : qualifiedName.substring(0, loc); } public static String join(Collection<String> collection) { if(collection != null && collection.size() != 0){ StringBuffer sb = new StringBuffer(); for(String item : collection){ sb.append(item); } return sb.toString(); } return null; } }