All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prerna.query.querystruct.selectors.QueryOpaqueSelector Maven / Gradle / Ivy

The newest version!
package prerna.query.querystruct.selectors;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import prerna.om.HeadersException;

public class QueryOpaqueSelector extends AbstractQuerySelector {

	private static final IQuerySelector.SELECTOR_TYPE SELECTOR_TYPE = IQuerySelector.SELECTOR_TYPE.OPAQUE;
	
	private String querySelectorSyntax;
	private String table;
	
	public QueryOpaqueSelector() {
		
	}
	
	public QueryOpaqueSelector(String querySelectorSyntax) {
		this.querySelectorSyntax = querySelectorSyntax;
	}
	
	public QueryOpaqueSelector(String querySelectorSyntax, String alias) {
		this.querySelectorSyntax = querySelectorSyntax;
		this.alias = alias;
	}
	
	@Override
	public SELECTOR_TYPE getSelectorType() {
		return SELECTOR_TYPE;
	}

	@Override
	public String getAlias() {
		if(this.alias == null || this.alias.equals("")) {
			String cleanSelectorSyntax = HeadersException.getInstance().recursivelyFixHeaders(this.querySelectorSyntax, new ArrayList());
			return cleanSelectorSyntax;
		}
		return this.alias;
	}
	
	public String getQuerySelectorSyntax() {
		return this.querySelectorSyntax;
	}
	
	public void setQuerySelectorSyntax(String querySelectorSyntax) {
		this.querySelectorSyntax = querySelectorSyntax;
	}
	
	public void setTable(String table) {
		this.table = table;
	}
	
	public String getTable() {
		return this.table;
	}
	
	@Override
	public boolean isDerived() {
		return true;
	}

	@Override
	public String getQueryStructName() {
		return getAlias();
	}

	@Override
	public String getDataType() {
		return null;
	}
	
	@Override
	public boolean equals(Object obj) {
		if(obj instanceof QueryOpaqueSelector) {
			QueryOpaqueSelector selector = (QueryOpaqueSelector)obj;
			if(this.querySelectorSyntax.equals(selector.querySelectorSyntax) &&
					this.alias.equals(selector.alias)) {
					return true;
			}
		}
		return false;
	}
	
	@Override
	public int hashCode() {
		String allString = querySelectorSyntax+":::"+alias;
		return allString.hashCode();
	}

	@Override
	public List getAllQueryColumns() {
		// return empty list
		List usedCols = new Vector();
		return usedCols;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy