Merge pull request #409 from stariy95/4.2-IMPROVEMENT-property-interface
CAY-2644 Use Property interface instead of BaseProperty
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/CustomColumnSetExtractor.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/CustomColumnSetExtractor.java
index 1519b60..8224c1b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/CustomColumnSetExtractor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/CustomColumnSetExtractor.java
@@ -29,7 +29,7 @@
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.exp.parser.ASTDbPath;
-import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.EmbeddedAttribute;
import org.apache.cayenne.map.EmbeddedResult;
import org.apache.cayenne.map.JoinType;
@@ -43,16 +43,16 @@
class CustomColumnSetExtractor implements ColumnExtractor {
private final TranslatorContext context;
- private final Collection<BaseProperty<?>> columns;
+ private final Collection<Property<?>> columns;
- CustomColumnSetExtractor(TranslatorContext context, Collection<BaseProperty<?>> columns) {
+ CustomColumnSetExtractor(TranslatorContext context, Collection<Property<?>> columns) {
this.context = context;
this.columns = columns;
}
@Override
public void extract(String prefix) {
- for (BaseProperty<?> property : columns) {
+ for (Property<?> property : columns) {
if (isFullObjectProp(property)) {
extractFullObject(prefix, property);
} else if(isEmbeddedProp(property)) {
@@ -63,14 +63,14 @@
}
}
- private void extractSimpleProperty(BaseProperty<?> property) {
+ private void extractSimpleProperty(Property<?> property) {
Node sqlNode = context.getQualifierTranslator().translate(property);
context.addResultNode(sqlNode, true, property, property.getAlias());
String name = property.getName() == null ? property.getExpression().expName() : property.getName();
context.getSqlResult().addColumnResult(name);
}
- private boolean isFullObjectProp(BaseProperty<?> property) {
+ private boolean isFullObjectProp(Property<?> property) {
int expressionType = property.getExpression().getType();
// forbid direct selection of toMany relationships columns
@@ -88,11 +88,11 @@
&& Persistent.class.isAssignableFrom(property.getType()));
}
- private boolean isEmbeddedProp(BaseProperty<?> property) {
+ private boolean isEmbeddedProp(Property<?> property) {
return EmbeddableObject.class.isAssignableFrom(property.getType());
}
- private void extractEmbeddedObject(String prefix, BaseProperty<?> property) {
+ private void extractEmbeddedObject(String prefix, Property<?> property) {
Object o = property.getExpression().evaluate(context.getMetadata().getObjEntity());
if(!(o instanceof EmbeddedAttribute)) {
throw new CayenneRuntimeException("EmbeddedAttribute expected, %s found", o);
@@ -107,7 +107,7 @@
context.getSqlResult().addEmbeddedResult(result);
}
- private void extractFullObject(String prefix, BaseProperty<?> property) {
+ private void extractFullObject(String prefix, Property<?> property) {
prefix = calculatePrefix(prefix, property);
ensureJoin(prefix);
@@ -137,7 +137,7 @@
* Extracts prefix for this extractor from property.
* This will be just a db path for this property, if any exists.
*/
- private String calculatePrefix(String prefix, BaseProperty<?> property) {
+ private String calculatePrefix(String prefix, Property<?> property) {
Expression exp = property.getExpression();
int expressionType = exp.getType();
if(expressionType == Expression.FULL_OBJECT && exp.getOperandCount() > 0) {
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/FluentSelectWrapper.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/FluentSelectWrapper.java
index 45c8e8b..3c4bed7 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/FluentSelectWrapper.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/FluentSelectWrapper.java
@@ -23,7 +23,7 @@
import java.util.Objects;
import org.apache.cayenne.exp.Expression;
-import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.query.FluentSelect;
import org.apache.cayenne.query.Ordering;
@@ -61,7 +61,7 @@
}
@Override
- public Collection<BaseProperty<?>> getColumns() {
+ public Collection<Property<?>> getColumns() {
return select.getColumns();
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
index 1308091..64ae657 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
@@ -56,6 +56,7 @@
import org.apache.cayenne.exp.parser.PatternMatchNode;
import org.apache.cayenne.exp.parser.SimpleNode;
import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbRelationship;
@@ -86,7 +87,7 @@
this.nodeStack = new ArrayDeque<>();
}
- Node translate(BaseProperty<?> property) {
+ Node translate(Property<?> property) {
if(property == null) {
return null;
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/ResultNodeDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/ResultNodeDescriptor.java
index acb0ca5..4eb03d7 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/ResultNodeDescriptor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/ResultNodeDescriptor.java
@@ -25,7 +25,7 @@
import org.apache.cayenne.access.sqlbuilder.sqltree.SimpleNodeTreeVisitor;
import org.apache.cayenne.dba.TypesMapping;
import org.apache.cayenne.exp.parser.ASTAggregateFunctionCall;
-import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.DbAttribute;
/**
@@ -35,13 +35,13 @@
private final Node node;
private final boolean inDataRow;
private final boolean isAggregate;
- private final BaseProperty<?> property;
+ private final Property<?> property;
private String dataRowKey;
private DbAttribute dbAttribute;
private String javaType;
- ResultNodeDescriptor(Node node, boolean inDataRow, BaseProperty<?> property, String dataRowKey) {
+ ResultNodeDescriptor(Node node, boolean inDataRow, Property<?> property, String dataRowKey) {
this.node = node;
this.inDataRow = inDataRow;
this.property = property;
@@ -58,7 +58,7 @@
return inDataRow;
}
- public BaseProperty<?> getProperty() {
+ public Property<?> getProperty() {
return property;
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/SelectQueryWrapper.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/SelectQueryWrapper.java
index dfc8183..5c95718 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/SelectQueryWrapper.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/SelectQueryWrapper.java
@@ -24,6 +24,7 @@
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.query.Ordering;
import org.apache.cayenne.query.QueryMetadata;
@@ -61,7 +62,7 @@
}
@Override
- public Collection<BaseProperty<?>> getColumns() {
+ public Collection<Property<?>> getColumns() {
return selectQuery.getColumns();
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/TranslatableQueryWrapper.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/TranslatableQueryWrapper.java
index fae21d7..2c96978 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/TranslatableQueryWrapper.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/TranslatableQueryWrapper.java
@@ -22,7 +22,7 @@
import java.util.Collection;
import org.apache.cayenne.exp.Expression;
-import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.query.Ordering;
import org.apache.cayenne.query.QueryMetadata;
@@ -44,7 +44,7 @@
Collection<Ordering> getOrderings();
- Collection<BaseProperty<?>> getColumns();
+ Collection<Property<?>> getColumns();
Expression getHavingQualifier();
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/TranslatorContext.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/TranslatorContext.java
index 388f1ee..2928257 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/TranslatorContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/TranslatorContext.java
@@ -32,7 +32,7 @@
import org.apache.cayenne.access.translator.DbAttributeBinding;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
-import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.map.EntityResult;
@@ -128,7 +128,7 @@
/**
* Mark start of a new class descriptor, to be able to process result columns properly.
* @param type of a descriptor
- * @see #addResultNode(Node, boolean, BaseProperty, String)
+ * @see #addResultNode(Node, boolean, Property, String)
*/
void markDescriptorStart(DescriptorType type) {
if(type == DescriptorType.PREFETCH) {
@@ -224,7 +224,7 @@
return addResultNode(node, true, null, dataRowKey);
}
- ResultNodeDescriptor addResultNode(Node node, boolean inDataRow, BaseProperty<?> property, String dataRowKey) {
+ ResultNodeDescriptor addResultNode(Node node, boolean inDataRow, Property<?> property, String dataRowKey) {
ResultNodeDescriptor resultNode = new ResultNodeDescriptor(node, inDataRow, property, dataRowKey);
if(appendResultToRoot) {
resultNodeList.add(rootSegmentEnd + 1, resultNode);
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
index 47ced76..f214a07 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
@@ -266,8 +266,8 @@
int i = 0;
exp[i++] = path();
for(Object arg : args) {
- if(arg instanceof BaseProperty) {
- exp[i++] = ((BaseProperty) arg).getExpression();
+ if(arg instanceof org.apache.cayenne.exp.property.Property) {
+ exp[i++] = ((org.apache.cayenne.exp.property.Property<?>) arg).getExpression();
} else if(arg instanceof Expression) {
exp[i++] = (Expression) arg;
} else if(arg != null) {
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/property/Property.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/property/Property.java
index c7ba636..f92dacb 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/property/Property.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/property/Property.java
@@ -33,6 +33,11 @@
String getName();
/**
+ * @return alias of this property, can be null
+ */
+ String getAlias();
+
+ /**
* @return expression that defines this property, not null
*/
Expression getExpression();
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java b/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
index 5521700..4a0e040 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
@@ -32,7 +32,7 @@
import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.exp.property.ComparableProperty;
import org.apache.cayenne.exp.property.NumericProperty;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.EntityResolver;
@@ -61,13 +61,13 @@
* </pre>
* </p>
* <p><b>Note: this class can't be instantiated directly. Use {@link ObjectSelect}.</b></p>
- * @see ObjectSelect#columnQuery(Class, BaseProperty)
+ * @see ObjectSelect#columnQuery(Class, Property)
*
* @since 4.0
*/
public class ColumnSelect<T> extends FluentSelect<T> {
- private Collection<BaseProperty<?>> columns;
+ private Collection<Property<?>> columns;
// package private for tests
boolean singleColumn = true;
boolean distinct;
@@ -386,11 +386,11 @@
* </pre>
*
* @param properties array of properties to select
- * @see ColumnSelect#column(BaseProperty)
+ * @see ColumnSelect#column(Property)
* @see ColumnSelect#columns(Collection)
*/
@SuppressWarnings("unchecked")
- public ColumnSelect<Object[]> columns(BaseProperty<?>... properties) {
+ public ColumnSelect<Object[]> columns(Property<?>... properties) {
if (properties.length == 0) {
throw new IllegalArgumentException("properties must contain at least one element");
}
@@ -408,10 +408,10 @@
* (root entity properties, function call expressions, properties of relationships, etc).</p>
* <p>
* @param properties collection of properties, <b>must</b> contain at least one element
- * @see ColumnSelect#columns(BaseProperty[])
+ * @see ColumnSelect#columns(Property[])
*/
@SuppressWarnings("unchecked")
- public ColumnSelect<Object[]> columns(Collection<BaseProperty<?>> properties) {
+ public ColumnSelect<Object[]> columns(Collection<Property<?>> properties) {
if (properties == null){
throw new NullPointerException("properties is null");
}
@@ -429,7 +429,7 @@
}
@SuppressWarnings("unchecked")
- protected <E> ColumnSelect<E> column(BaseProperty<E> property) {
+ protected <E> ColumnSelect<E> column(Property<E> property) {
if (this.columns == null) {
this.columns = new ArrayList<>(1);
} else {
@@ -440,7 +440,7 @@
}
/**
- * <p>Shortcut for {@link #columns(BaseProperty[])} columns}(Property.COUNT)</p>
+ * <p>Shortcut for {@link #columns(Property[])} columns}(Property.COUNT)</p>
*/
public ColumnSelect<Object[]> count() {
return columns(PropertyFactory.COUNT);
@@ -457,7 +457,7 @@
/**
* <p>Select minimum value of property</p>
- * @see ColumnSelect#columns(BaseProperty[])
+ * @see ColumnSelect#columns(Property[])
*/
public ColumnSelect<Object[]> min(ComparableProperty<?> property) {
return columns(property.min());
@@ -465,7 +465,7 @@
/**
* <p>Select maximum value of property</p>
- * @see ColumnSelect#columns(BaseProperty[])
+ * @see ColumnSelect#columns(Property[])
*/
public ColumnSelect<Object[]> max(ComparableProperty<?> property) {
return columns(property.max());
@@ -473,17 +473,17 @@
/**
* <p>Select average value of property</p>
- * @see ColumnSelect#columns(BaseProperty[])
+ * @see ColumnSelect#columns(Property[])
* @deprecated since 4.2 use {@link #avg(NumericProperty)}
*/
@Deprecated
- public ColumnSelect<Object[]> avg(Property<?> property) {
+ public ColumnSelect<Object[]> avg(org.apache.cayenne.exp.Property<?> property) {
return columns(property.avg());
}
/**
* <p>Select average value of property</p>
- * @see ColumnSelect#columns(BaseProperty[])
+ * @see ColumnSelect#columns(Property[])
*/
public ColumnSelect<Object[]> avg(NumericProperty<?> property) {
return columns(property.avg());
@@ -491,17 +491,17 @@
/**
* <p>Select sum of values</p>
- * @see ColumnSelect#columns(BaseProperty[])
+ * @see ColumnSelect#columns(Property[])
* @deprecated since 4.2 use {@link #sum(NumericProperty)}
*/
@Deprecated
- public <E extends Number> ColumnSelect<Object[]> sum(Property<E> property) {
+ public <E extends Number> ColumnSelect<Object[]> sum(org.apache.cayenne.exp.Property<E> property) {
return columns(property.sum());
}
/**
* <p>Select sum of values</p>
- * @see ColumnSelect#columns(BaseProperty[])
+ * @see ColumnSelect#columns(Property[])
*/
public <E extends Number> ColumnSelect<Object[]> sum(NumericProperty<E> property) {
return columns(property.sum());
@@ -600,7 +600,7 @@
}
@Override
- public Collection<BaseProperty<?>> getColumns() {
+ public Collection<Property<?>> getColumns() {
return columns;
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelectMetadata.java b/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelectMetadata.java
index 1222346..365853d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelectMetadata.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelectMetadata.java
@@ -25,7 +25,7 @@
import java.util.function.Function;
import org.apache.cayenne.exp.Expression;
-import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.DefaultEntityResultSegment;
import org.apache.cayenne.map.DefaultScalarResultSegment;
import org.apache.cayenne.map.EntityResolver;
@@ -71,9 +71,9 @@
}
protected void resolveColumnsAliases(FluentSelect<?> query) {
- Collection<BaseProperty<?>> columns = query.getColumns();
+ Collection<Property<?>> columns = query.getColumns();
if(columns != null) {
- for(BaseProperty<?> property : columns) {
+ for(Property<?> property : columns) {
Expression propertyExpression = property.getExpression();
if(propertyExpression != null) {
resolveAutoAliases(propertyExpression);
@@ -101,7 +101,7 @@
}
resultSetMapping = new ArrayList<>(query.getColumns().size());
- for(BaseProperty<?> column : query.getColumns()) {
+ for(Property<?> column : query.getColumns()) {
// for each column we need only to know if it's entity or scalar
Expression exp = column.getExpression();
boolean fullObject = false;
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/FluentSelect.java b/cayenne-server/src/main/java/org/apache/cayenne/query/FluentSelect.java
index 42a055b..d11c491 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/FluentSelect.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/FluentSelect.java
@@ -28,7 +28,7 @@
import org.apache.cayenne.ResultIterator;
import org.apache.cayenne.ResultIteratorCallback;
import org.apache.cayenne.exp.Expression;
-import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.map.ObjEntity;
@@ -204,7 +204,7 @@
/**
* @since 4.2
*/
- public Collection<BaseProperty<?>> getColumns() {
+ public Collection<Property<?>> getColumns() {
return null;
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelect.java b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelect.java
index 6638d9a..d20b5d8 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelect.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelect.java
@@ -29,10 +29,10 @@
import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.Property;
import org.apache.cayenne.exp.property.BaseProperty;
import org.apache.cayenne.exp.property.ComparableProperty;
import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.EntityResolver;
@@ -135,7 +135,7 @@
* @param entityType base persistent class that will be used as a root for this query
* @param column single column to select
*/
- public static <E> ColumnSelect<E> columnQuery(Class<?> entityType, BaseProperty<E> column) {
+ public static <E> ColumnSelect<E> columnQuery(Class<?> entityType, Property<E> column) {
return new ColumnSelect<>().entityType(entityType).column(column);
}
@@ -145,7 +145,7 @@
* @param entityType base persistent class that will be used as a root for this query
* @param columns columns to select
*/
- public static ColumnSelect<Object[]> columnQuery(Class<?> entityType, BaseProperty<?>... columns) {
+ public static ColumnSelect<Object[]> columnQuery(Class<?> entityType, Property<?>... columns) {
return new ColumnSelect<Object[]>().entityType(entityType).columns(columns);
}
@@ -540,9 +540,9 @@
* </pre>
*
* @param properties array of properties to select
- * @see ObjectSelect#column(BaseProperty)
+ * @see ObjectSelect#column(Property)
*/
- public ColumnSelect<Object[]> columns(BaseProperty<?>... properties) {
+ public ColumnSelect<Object[]> columns(Property<?>... properties) {
return new ColumnSelect<>(this).columns(properties);
}
@@ -550,7 +550,7 @@
* <p>Select one specific property.</p>
* <p>Can be any property that can be resolved against root entity type
* (root entity's property, function call expression, property of relationships, etc)</p>
- * <p>If you need several columns use {@link ObjectSelect#columns(BaseProperty[])} method.</p>
+ * <p>If you need several columns use {@link ObjectSelect#columns(Property[])} method.</p>
* <p>
* <pre>
* {@code
@@ -561,15 +561,15 @@
* </pre>
* </p>
* @param property single property to select
- * @see ObjectSelect#columns(BaseProperty[])
+ * @see ObjectSelect#columns(Property[])
*/
- public <E> ColumnSelect<E> column(BaseProperty<E> property) {
+ public <E> ColumnSelect<E> column(Property<E> property) {
return new ColumnSelect<>(this).column(property);
}
/**
* Select COUNT(*)
- * @see ObjectSelect#column(BaseProperty)
+ * @see ObjectSelect#column(Property)
*/
public ColumnSelect<Long> count() {
return column(PropertyFactory.COUNT);
@@ -579,7 +579,7 @@
* <p>Select COUNT(property)</p>
* <p>Can return different result than COUNT(*) as it will count only non null values</p>
* @see ObjectSelect#count()
- * @see ObjectSelect#column(BaseProperty)
+ * @see ObjectSelect#column(Property)
*/
public ColumnSelect<Long> count(BaseProperty<?> property) {
return column(property.count());
@@ -587,7 +587,7 @@
/**
* <p>Select minimum value of property</p>
- * @see ObjectSelect#column(BaseProperty)
+ * @see ObjectSelect#column(Property)
*/
public <E> ColumnSelect<E> min(ComparableProperty<E> property) {
return column(property.min());
@@ -595,7 +595,7 @@
/**
* <p>Select minimum value of property</p>
- * @see ObjectSelect#column(BaseProperty)
+ * @see ObjectSelect#column(Property)
*/
public <E extends Number> ColumnSelect<E> min(NumericProperty<E> property) {
return column(property.min());
@@ -603,7 +603,7 @@
/**
* <p>Select maximum value of property</p>
- * @see ObjectSelect#column(BaseProperty)
+ * @see ObjectSelect#column(Property)
*/
public <E> ColumnSelect<E> max(ComparableProperty<E> property) {
return column(property.max());
@@ -611,7 +611,7 @@
/**
* <p>Select maximum value of property</p>
- * @see ObjectSelect#column(BaseProperty)
+ * @see ObjectSelect#column(Property)
*/
public <E extends Number> ColumnSelect<E> max(NumericProperty<E> property) {
return column(property.max());
@@ -619,17 +619,17 @@
/**
* <p>Select average value of property</p>
- * @see ObjectSelect#column(BaseProperty)
+ * @see ObjectSelect#column(Property)
* @deprecated since 4.2 use {@link #avg(NumericProperty)}
*/
@Deprecated
- public <E> ColumnSelect<E> avg(Property<E> property) {
+ public <E> ColumnSelect<E> avg(org.apache.cayenne.exp.Property<E> property) {
return column(property.avg());
}
/**
* <p>Select average value of property</p>
- * @see ObjectSelect#column(BaseProperty)
+ * @see ObjectSelect#column(Property)
*/
public <E extends Number> ColumnSelect<E> avg(NumericProperty<E> property) {
return column(property.avg());
@@ -637,17 +637,17 @@
/**
* <p>Select sum of values</p>
- * @see ObjectSelect#column(BaseProperty)
+ * @see ObjectSelect#column(Property)
* @deprecated since 4.2 use {@link #sum(NumericProperty)}
*/
@Deprecated
- public <E extends Number> ColumnSelect<E> sum(Property<E> property) {
+ public <E extends Number> ColumnSelect<E> sum(org.apache.cayenne.exp.Property<E> property) {
return column(property.sum());
}
/**
* <p>Select sum of values</p>
- * @see ObjectSelect#column(BaseProperty)
+ * @see ObjectSelect#column(Property)
*/
public <E extends Number> ColumnSelect<E> sum(NumericProperty<E> property) {
return column(property.sum());
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelectMetadata.java b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelectMetadata.java
index fd1fc67..164a7af 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelectMetadata.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelectMetadata.java
@@ -21,7 +21,7 @@
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.TraversalHandler;
-import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.map.ObjEntity;
@@ -77,7 +77,7 @@
if (query.getColumns() != null && !query.getColumns().isEmpty()) {
traversalHandler = new ToCacheKeyTraversalHandler(resolver.getValueObjectTypeRegistry(), key);
- for (BaseProperty<?> property : query.getColumns()) {
+ for (Property<?> property : query.getColumns()) {
key.append("/c:");
property.getExpression().traverse(traversalHandler);
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQuery.java
index ea2eeea..189cb30 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQuery.java
@@ -33,7 +33,7 @@
import org.apache.cayenne.ResultIteratorCallback;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.map.ObjEntity;
@@ -43,8 +43,8 @@
* DataRows). Supports expression qualifier, multiple orderings and a number of
* other parameters that serve as runtime hints to Cayenne on how to optimize
* the fetch and result processing.
- * @deprecated since 4.2
- * use {@link org.apache.cayenne.query.ObjectSelect}
+ *
+ * @deprecated since 4.2, use {@link org.apache.cayenne.query.ObjectSelect}
*/
@Deprecated
public class SelectQuery<T> extends AbstractQuery implements ParameterizedQuery, Select<T> {
@@ -61,7 +61,7 @@
/**
* @since 4.0
*/
- protected Collection<BaseProperty<?>> columns;
+ protected Collection<Property<?>> columns;
/**
* @since 4.0
@@ -758,14 +758,14 @@
* @since 4.0
* @see SelectQuery#setCanReturnScalarValue(boolean)
*/
- public void setColumns(Collection<BaseProperty<?>> columns) {
+ public void setColumns(Collection<Property<?>> columns) {
this.columns = columns;
}
/**
* @since 4.0
*/
- public void setColumns(BaseProperty<?>... columns) {
+ public void setColumns(Property<?>... columns) {
if(columns == null || columns.length == 0) {
return;
}
@@ -795,7 +795,7 @@
/**
* @since 4.0
*/
- public Collection<BaseProperty<?>> getColumns() {
+ public Collection<Property<?>> getColumns() {
return columns;
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
index d78e681..30b135e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
@@ -21,7 +21,7 @@
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.TraversalHandler;
-import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.DefaultEntityResultSegment;
import org.apache.cayenne.map.DefaultScalarResultSegment;
import org.apache.cayenne.map.EntityResolver;
@@ -94,7 +94,7 @@
if(query.getColumns() != null && !query.getColumns().isEmpty()) {
traversalHandler = new ToCacheKeyTraversalHandler(resolver.getValueObjectTypeRegistry(), key);
- for(BaseProperty<?> property : query.getColumns()) {
+ for(Property<?> property : query.getColumns()) {
key.append("/c:");
property.getExpression().traverse(traversalHandler);
}
@@ -163,9 +163,9 @@
}
private void resolveColumnsAliases(SelectQuery<?> query) {
- Collection<BaseProperty<?>> columns = query.getColumns();
+ Collection<Property<?>> columns = query.getColumns();
if(columns != null) {
- for(BaseProperty<?> property : columns) {
+ for(Property<?> property : columns) {
Expression propertyExpression = property.getExpression();
if(propertyExpression != null) {
resolveAutoAliases(propertyExpression);
@@ -259,7 +259,7 @@
}
resultSetMapping = new ArrayList<>(query.getColumns().size());
- for(BaseProperty<?> column : query.getColumns()) {
+ for(Property<?> column : query.getColumns()) {
// for each column we need only to know if it's entity or scalar
Expression exp = column.getExpression();
boolean fullObject = false;
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/CustomColumnSetExtractorTest.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/CustomColumnSetExtractorTest.java
index e5697bd..13c5f8e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/CustomColumnSetExtractorTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/CustomColumnSetExtractorTest.java
@@ -26,6 +26,7 @@
import org.apache.cayenne.access.sqlbuilder.sqltree.ColumnNode;
import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbEntity;
@@ -73,7 +74,7 @@
resolver.addDataMap(dataMap);
BaseProperty<?> property0 = PropertyFactory.createBase(ExpressionFactory.dbPathExp("name"), String.class);
- Collection<BaseProperty<?>> properties = Collections.singleton(property0);
+ Collection<Property<?>> properties = Collections.singleton(property0);
CustomColumnSetExtractor extractor = new CustomColumnSetExtractor(context, properties);
extractor.extract();
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/MockQueryWrapperBuilder.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/MockQueryWrapperBuilder.java
index 62c8603..2752265 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/MockQueryWrapperBuilder.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/MockQueryWrapperBuilder.java
@@ -23,6 +23,7 @@
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.query.MockQueryMetadata;
import org.apache.cayenne.query.Ordering;
@@ -45,7 +46,7 @@
private Collection<Ordering> orderings;
- private Collection<BaseProperty<?>> columns;
+ private Collection<Property<?>> columns;
private Expression havingQualifier;
@@ -77,7 +78,7 @@
return this;
}
- MockQueryWrapperBuilder withColumns(Collection<BaseProperty<?>> columns) {
+ MockQueryWrapperBuilder withColumns(Collection<Property<?>> columns) {
this.columns = columns;
return this;
}
@@ -120,7 +121,7 @@
}
@Override
- public Collection<BaseProperty<?>> getColumns() {
+ public Collection<Property<?>> getColumns() {
return columns;
}
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectTest.java b/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectTest.java
index bd2061a..21872a3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectTest.java
@@ -24,9 +24,9 @@
import java.util.Collection;
import java.util.Collections;
-import org.apache.cayenne.exp.property.BaseProperty;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.Property;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.testdo.testmap.Artist;
import org.apache.cayenne.testdo.testmap.Painting;
@@ -205,7 +205,7 @@
q.columns(Artist.DATE_OF_BIRTH);
q.columns(Artist.PAINTING_ARRAY);
- Collection<BaseProperty<?>> properties = Arrays.asList(Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH, Artist.PAINTING_ARRAY);
+ Collection<Property<?>> properties = Arrays.asList(Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH, Artist.PAINTING_ARRAY);
assertEquals(properties, q.getColumns());
}
@@ -218,7 +218,7 @@
q.columns(Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH, Artist.PAINTING_ARRAY);
q.columns(Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH, Artist.PAINTING_ARRAY);
- Collection<BaseProperty<?>> properties = Arrays.asList(
+ Collection<Property<?>> properties = Arrays.asList(
Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH, Artist.PAINTING_ARRAY,
Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH, Artist.PAINTING_ARRAY); // should it be Set instead of List?
assertEquals(properties, q.getColumns());
@@ -234,7 +234,7 @@
q.column(Artist.DATE_OF_BIRTH);
q.column(Artist.PAINTING_ARRAY);
- Collection<BaseProperty<?>> properties = Collections.singletonList(Artist.PAINTING_ARRAY);
+ Collection<Property<?>> properties = Collections.singletonList(Artist.PAINTING_ARRAY);
assertEquals(properties, q.getColumns());
}