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

com.avaje.ebeaninternal.server.query.SqlTreeProperties Maven / Gradle / Ivy

The newest version!
/**
 * 
 */
package com.avaje.ebeaninternal.server.query;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

import com.avaje.ebeaninternal.server.deploy.BeanProperty;
import com.avaje.ebeaninternal.server.deploy.TableJoin;

/**
 * The select properties for a node in the SqlTree.
 */
public class SqlTreeProperties {

	/**
	 * The included Properties that will be used by EntityBeanIntercept
	 * to determine lazy loading on partial objects.
	 */
	Set includedProps;

	/**
	 * True if this node of the tree should have read only entity beans.
	 */
	boolean readOnly;

	/**
	 * set to false if the id field is not included.
	 */
	boolean includeId = true;

	TableJoin[] tableJoins = new TableJoin[0];

	/**
	 * The bean properties in order.
	 */
	List propsList = new ArrayList();

	/**
	 * Maintain a list of property names to detect embedded bean additions.
	 */
	LinkedHashSet propNames = new LinkedHashSet();
	
	public SqlTreeProperties() {

	}
	
	public boolean containsProperty(String propName){
		return propNames.contains(propName);
	}

	public void add(BeanProperty[] props) {
		for (BeanProperty beanProperty : props) {
			propsList.add(beanProperty);
		}
	}

	public void add(BeanProperty prop) {
		propsList.add(prop);
		propNames.add(prop.getName());

	}
	
	public BeanProperty[] getProps() {
		return propsList.toArray(new BeanProperty[propsList.size()]);
	}

	public boolean isIncludeId() {
		return includeId;
	}

	public void setIncludeId(boolean includeId) {
		this.includeId = includeId;
	}

	public boolean isPartialObject() {
		return includedProps != null;
	}
	
	public Set getIncludedProperties() {
		return includedProps;
	}

	public void setIncludedProperties(Set includedProps) {
		this.includedProps = includedProps;
	}

	public boolean isReadOnly() {
		return readOnly;
	}

	public void setReadOnly(boolean readOnly) {
		this.readOnly = readOnly;
	}

	public TableJoin[] getTableJoins() {
		return tableJoins;
	}

	public void setTableJoins(TableJoin[] tableJoins) {
		this.tableJoins = tableJoins;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy