com.avaje.ebeaninternal.server.query.SqlTreeProperties Maven / Gradle / Ivy
/**
*
*/
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 - 2025 Weber Informatics LLC | Privacy Policy