package org.raidenjpa.query.parser; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.raidenjpa.util.BadSmell; public class SelectElement { private List<String> path; private boolean count; private boolean max; @BadSmell("path, primite obsession") public SelectElement(String element) { if (element.toUpperCase().startsWith("COUNT(")) { count = true; } else if (element.toUpperCase().startsWith("MAX(")) { max = true; element = element.substring(4, element.length() - 1); path = new ArrayList<String>(Arrays.asList(element.split("\\."))); } else { path = new ArrayList<String>(Arrays.asList(element.split("\\."))); } } public List<String> getPath() { return path; } public String toString() { return "SelectElement [path=" + path + "]"; } public boolean isCount() { return count; } public boolean isMax() { return max; } public boolean isAggregationFunction() { return max || count; } }