/* * @(#)SelectParser.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.ArrayList; import java.util.List; import java.util.Set; import java.util.StringTokenizer; /** * */ public class SelectParser extends Parser { private List<String> selectConditions = new ArrayList<String>(); public SelectParser(Set<String> columns, String alias) { super(columns, alias); } private String token(String token) { String prefixName = root(token); if (super.getColumns().contains(prefixName)) { if (prefixName.equals(super.getAlias())) { return token; } else { return super.getAlias() + "." + token; } } return token; } @Override public void parse(String selects) { StringTokenizer tokens = new StringTokenizer(selects, HQL_SEPARATORS, true); while (tokens.hasMoreElements()) { String token = tokens.nextToken(); selectConditions.add(this.token(token)); } } @Override public String toHQL() { return join(selectConditions); } }