You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2017/08/21 09:29:16 UTC
[3/9] cayenne git commit: CAY-2351 Remove commons-collections usage
completely enable java 8 by default replace commons-collections with plain
java
CAY-2351 Remove commons-collections usage completely
enable java 8 by default
replace commons-collections with plain java
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/fddb229d
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/fddb229d
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/fddb229d
Branch: refs/heads/master
Commit: fddb229d616d9cc29ea46da2a4b1994c73528755
Parents: 50801e6
Author: Nikita Timofeev <st...@gmail.com>
Authored: Thu Aug 3 18:33:53 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Thu Aug 17 12:41:56 2017 +0300
----------------------------------------------------------------------
.../org/apache/cayenne/gen/DataMapUtils.java | 5 +-
cayenne-client/pom.xml | 5 --
cayenne-lifecycle/pom.xml | 7 +++
.../ObjectIdPropagatedValueFactory.java | 8 ++-
cayenne-server/pom.xml | 8 ++-
.../cayenne/access/DataDomainSyncBucket.java | 6 +-
.../access/DataNodeSyncQualifierDescriptor.java | 49 +++++----------
.../access/jdbc/RowDescriptorBuilder.java | 24 +++----
.../cayenne/access/jdbc/SQLTemplateAction.java | 18 +++---
.../access/translator/select/JoinStack.java | 7 +--
.../translator/select/QualifierTranslator.java | 10 +--
.../cayenne/ashwood/AshwoodEntitySorter.java | 5 +-
.../ashwood/WeightedAshwoodEntitySorter.java | 5 +-
.../org/apache/cayenne/cache/MapQueryCache.java | 5 +-
.../dba/oracle/OracleQualifierTranslator.java | 6 +-
.../java/org/apache/cayenne/exp/Expression.java | 16 ++---
.../org/apache/cayenne/exp/parser/ASTIn.java | 5 +-
.../org/apache/cayenne/exp/parser/ASTNotIn.java | 5 +-
.../exp/parser/AggregateConditionNode.java | 5 +-
.../java/org/apache/cayenne/map/DbEntity.java | 6 +-
.../org/apache/cayenne/map/DbRelationship.java | 24 +------
.../org/apache/cayenne/map/ObjAttribute.java | 12 ++--
.../java/org/apache/cayenne/map/ObjEntity.java | 6 +-
.../org/apache/cayenne/query/BatchQueryRow.java | 6 +-
.../apache/cayenne/query/InsertBatchQuery.java | 2 +-
.../java/org/apache/cayenne/query/Ordering.java | 10 ++-
.../org/apache/cayenne/query/SQLTemplate.java | 17 +++--
.../java/org/apache/cayenne/ObjectIdTest.java | 10 +--
docs/doc/pom.xml | 5 --
modeler/cayenne-modeler/pom.xml | 12 ++++
.../org/apache/cayenne/modeler/Application.java | 17 +----
.../modeler/action/ImportEOModelAction.java | 66 +++++++++-----------
.../InferRelationshipsControllerBase.java | 11 ++--
.../InferRelationshipsTabController.java | 11 +---
.../dialog/codegen/ClassesTabController.java | 8 +--
.../dialog/codegen/ClientModeController.java | 21 +------
.../dialog/codegen/CodeGeneratorController.java | 7 +--
.../codegen/CodeGeneratorControllerBase.java | 28 ++++-----
.../dialog/codegen/GeneratorController.java | 48 +++++---------
.../dialog/pref/DataSourcePreferences.java | 17 +----
.../cayenne/modeler/editor/ObjEntityTab.java | 27 +++-----
.../cayenne/pref/UpgradeCayennePreference.java | 46 ++++++--------
.../org/apache/cayenne/swing/TableBinding.java | 4 +-
modeler/cayenne-wocompat/pom.xml | 12 ++++
.../apache/cayenne/wocompat/EOObjEntity.java | 6 +-
45 files changed, 265 insertions(+), 373 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java
index f0f8f69..490c040 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java
@@ -34,12 +34,12 @@ import org.apache.cayenne.map.SelectQueryDescriptor;
import org.apache.cayenne.query.Ordering;
import org.apache.cayenne.util.CayenneMapEntry;
import org.apache.cayenne.util.Util;
-import org.apache.commons.collections.set.ListOrderedSet;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -131,8 +131,7 @@ public class DataMapUtils {
* @return List of parameter names.
*/
private Set parseQualifier(String qualifierString) {
- @SuppressWarnings("unchecked")
- Set<String> result = (Set<String>)new ListOrderedSet();
+ Set<String> result = new LinkedHashSet<>();
Pattern pattern = Pattern.compile("\\$[\\w]+");
Matcher matcher = pattern.matcher(qualifierString);
while (matcher.find()) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-client/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-client/pom.xml b/cayenne-client/pom.xml
index b591bd9..2821d94 100644
--- a/cayenne-client/pom.xml
+++ b/cayenne-client/pom.xml
@@ -40,11 +40,6 @@
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
<scope>compile</scope>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-lifecycle/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/pom.xml b/cayenne-lifecycle/pom.xml
index a9c6283..f112584 100644
--- a/cayenne-lifecycle/pom.xml
+++ b/cayenne-lifecycle/pom.xml
@@ -79,6 +79,13 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
</plugins>
</build>
<profiles>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdPropagatedValueFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdPropagatedValueFactory.java b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdPropagatedValueFactory.java
index 23fa7a8..0e0f219 100644
--- a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdPropagatedValueFactory.java
+++ b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdPropagatedValueFactory.java
@@ -18,14 +18,15 @@
****************************************************************/
package org.apache.cayenne.lifecycle.relationship;
+import java.util.function.Supplier;
+
import org.apache.cayenne.Persistent;
import org.apache.cayenne.lifecycle.id.IdCoder;
-import org.apache.commons.collections.Factory;
/**
* @since 3.1
*/
-class ObjectIdPropagatedValueFactory implements Factory {
+class ObjectIdPropagatedValueFactory implements Supplier {
private IdCoder referenceableHandler;
private Persistent to;
@@ -35,7 +36,8 @@ class ObjectIdPropagatedValueFactory implements Factory {
this.to = to;
}
- public Object create() {
+ @Override
+ public String get() {
return referenceableHandler.getStringId(to);
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/pom.xml b/cayenne-server/pom.xml
index 4414f43..3644697 100644
--- a/cayenne-server/pom.xml
+++ b/cayenne-server/pom.xml
@@ -49,7 +49,6 @@
<artifactId>commons-collections</artifactId>
<scope>compile</scope>
</dependency>
-
<!-- Optional dependencies... things that might have been placed in submodules... -->
<dependency>
<groupId>com.caucho</groupId>
@@ -151,6 +150,13 @@
</executions>
</plugin>
<plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+ <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>javacc-maven-plugin</artifactId>
<version>2.6</version>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
index 3bb8141..7c25ab5 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
@@ -35,7 +35,6 @@ import org.apache.cayenne.reflect.AttributeProperty;
import org.apache.cayenne.reflect.ClassDescriptor;
import org.apache.cayenne.reflect.PropertyException;
import org.apache.cayenne.reflect.ToManyMapProperty;
-import org.apache.commons.collections.Factory;
import java.util.ArrayList;
import java.util.Collection;
@@ -43,6 +42,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.function.Supplier;
/**
* A superclass of batch query wrappers.
@@ -274,7 +274,7 @@ abstract class DataDomainSyncBucket {
}
// a factory for extracting PKs generated on commit.
- final static class PropagatedValueFactory implements Factory {
+ final static class PropagatedValueFactory implements Supplier {
ObjectId masterID;
String masterKey;
@@ -284,7 +284,7 @@ abstract class DataDomainSyncBucket {
this.masterKey = masterKey;
}
- public Object create() {
+ public Object get() {
Object value = masterID.getIdSnapshot().get(masterKey);
if (value == null) {
throw new CayenneRuntimeException("Can't extract a master key. "
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java
index 6e48a59..e5cd484 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.function.Function;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.ObjectId;
@@ -32,7 +33,6 @@ import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
-import org.apache.commons.collections.Transformer;
/**
* Builds update qualifier snapshots, including optimistic locking.
@@ -42,7 +42,7 @@ import org.apache.commons.collections.Transformer;
class DataNodeSyncQualifierDescriptor {
private List<DbAttribute> attributes;
- private List<Transformer> valueTransformers;
+ private List<Function<ObjectDiff, Object>> valueTransformers;
private boolean usingOptimisticLocking;
public boolean isUsingOptimisticLocking() {
@@ -60,8 +60,7 @@ class DataNodeSyncQualifierDescriptor {
for (int i = 0; i < len; i++) {
DbAttribute attribute = attributes.get(i);
if (!map.containsKey(attribute.getName())) {
-
- Object value = valueTransformers.get(i).transform(diff);
+ Object value = valueTransformers.get(i).apply(diff);
map.put(attribute.getName(), value);
}
}
@@ -79,13 +78,10 @@ class DataNodeSyncQualifierDescriptor {
if (descriptor.isMaster()) {
for (final DbAttribute attribute : descriptor.getDbEntity().getPrimaryKeys()) {
attributes.add(attribute);
- valueTransformers.add(new Transformer() {
-
- public Object transform(Object input) {
- ObjectId id = (ObjectId) ((ObjectDiff) input).getNodeId();
- return id.getIdSnapshot().get(attribute.getName());
- }
- });
+ valueTransformers.add(input -> {
+ ObjectId id = (ObjectId) input.getNodeId();
+ return id.getIdSnapshot().get(attribute.getName());
+ });
}
} else {
@@ -104,13 +100,10 @@ class DataNodeSyncQualifierDescriptor {
if (!attributes.contains(dbAttribute)) {
attributes.add(dbAttribute);
- valueTransformers.add(new Transformer() {
-
- public Object transform(Object input) {
- ObjectId id = (ObjectId) ((ObjectDiff) input).getNodeId();
- return id.getIdSnapshot().get(dbAttrPair.getSourceName());
- }
- });
+ valueTransformers.add(input -> {
+ ObjectId id = (ObjectId) input.getNodeId();
+ return id.getIdSnapshot().get(dbAttrPair.getSourceName());
+ });
}
}
}
@@ -127,13 +120,7 @@ class DataNodeSyncQualifierDescriptor {
// only use qualifier if dbEntities match
if (dbAttribute.getEntity().equals(descriptor.getDbEntity()) && !attributes.contains(dbAttribute)) {
attributes.add(dbAttribute);
-
- valueTransformers.add(new Transformer() {
-
- public Object transform(Object input) {
- return ((ObjectDiff) input).getSnapshotValue(attribute.getName());
- }
- });
+ valueTransformers.add(input -> input.getSnapshotValue(attribute.getName()));
}
}
}
@@ -154,14 +141,10 @@ class DataNodeSyncQualifierDescriptor {
continue;
}
- Transformer transformer = new Transformer() {
-
- public Object transform(Object input) {
- ObjectId targetId = ((ObjectDiff) input).getArcSnapshotValue(relationship.getName());
- return targetId != null ? targetId.getIdSnapshot().get(dbAttrPair.getTargetName())
- : null;
- }
- };
+ Function<ObjectDiff, Object> transformer = input -> {
+ ObjectId targetId = input.getArcSnapshotValue(relationship.getName());
+ return targetId != null ? targetId.getIdSnapshot().get(dbAttrPair.getTargetName()) : null;
+ };
if (index < 0) {
attributes.add(dbAttribute);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/RowDescriptorBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/RowDescriptorBuilder.java b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/RowDescriptorBuilder.java
index ab100af..39d39cf 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/RowDescriptorBuilder.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/RowDescriptorBuilder.java
@@ -27,12 +27,12 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.function.Function;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.types.ExtendedType;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.util.Util;
-import org.apache.commons.collections.Transformer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -46,24 +46,16 @@ public class RowDescriptorBuilder {
private static final Logger logger = LoggerFactory.getLogger(RowDescriptorBuilder.class);
- private static final Transformer UPPERCASE_TRANSFORMER = new Transformer() {
+ private static final Function<String, String> UPPERCASE_TRANSFORMER = input ->
+ input != null ? input.toUpperCase() : null;
- public Object transform(Object input) {
- return input != null ? input.toString().toUpperCase() : null;
- }
- };
-
- private static final Transformer LOWERCASE_TRANSFORMER = new Transformer() {
-
- public Object transform(Object input) {
- return input != null ? input.toString().toLowerCase() : null;
- }
- };
+ private static final Function<String, String> LOWERCASE_TRANSFORMER = input ->
+ input != null ? input.toLowerCase() : null;
protected ColumnDescriptor[] columns;
protected ResultSetMetaData resultSetMetadata;
- protected Transformer caseTransformer;
+ protected Function<String, String> caseTransformer;
protected Map<String, String> typeOverrides;
protected boolean validateDuplicateColumnNames;
@@ -204,8 +196,8 @@ public class RowDescriptorBuilder {
if (caseTransformer != null) {
for (ColumnDescriptor aColumnArray : columnArray) {
- aColumnArray.setDataRowKey((String) caseTransformer.transform(aColumnArray.getDataRowKey()));
- aColumnArray.setName((String) caseTransformer.transform(aColumnArray.getName()));
+ aColumnArray.setDataRowKey(caseTransformer.apply(aColumnArray.getDataRowKey()));
+ aColumnArray.setName(caseTransformer.apply(aColumnArray.getName()));
}
}
if (typeOverrides != null) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
index 8d9cf65..f5d8900 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
@@ -25,7 +25,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
@@ -51,7 +50,6 @@ import org.apache.cayenne.query.QueryMetadata;
import org.apache.cayenne.query.SQLAction;
import org.apache.cayenne.query.SQLTemplate;
import org.apache.cayenne.util.Util;
-import org.apache.commons.collections.IteratorUtils;
/**
* Implements a strategy for execution of SQLTemplates.
@@ -138,8 +136,9 @@ public class SQLTemplateAction implements SQLAction {
execute(connection, callback, compiled, counts);
}
+ @SuppressWarnings("unchecked")
private void runWithNamedParametersBatch(Connection connection, OperationObserver callback, String template,
- Collection<Number> counts, boolean loggable) throws Exception {
+ Collection<Number> counts, boolean loggable) throws Exception {
int size = query.parametersSize();
@@ -148,14 +147,17 @@ public class SQLTemplateAction implements SQLAction {
int batchSize = (size > 0) ? size : 1;
// for now supporting deprecated batch parameters...
- @SuppressWarnings("unchecked")
- Iterator<Map<String, ?>> it = (size > 0) ? query.parametersIterator()
- : IteratorUtils.singletonIterator(Collections.emptyMap());
+ Iterator<Map<String, ?>> it;
+ if(size == 0) {
+ Iterator empty = Collections.singleton(Collections.emptyMap()).iterator();
+ it = empty;
+ } else {
+ it = query.parametersIterator();
+ }
+
for (int i = 0; i < batchSize; i++) {
Map<String, ?> nextParameters = it.next();
-
SQLStatement compiled = dataNode.getSqlTemplateProcessor().processTemplate(template, nextParameters);
-
if (loggable) {
dataNode.getJdbcEventLogger().logQuery(compiled.getSql(), compiled.getBindings());
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/JoinStack.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/JoinStack.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/JoinStack.java
index 5b11a3c..937b818 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/JoinStack.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/JoinStack.java
@@ -19,6 +19,7 @@
package org.apache.cayenne.access.translator.select;
import java.util.List;
+import java.util.function.Function;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
@@ -26,14 +27,12 @@ import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.parser.ASTDbPath;
import org.apache.cayenne.exp.parser.ASTObjPath;
import org.apache.cayenne.exp.parser.SimpleNode;
-import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbJoin;
import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.JoinType;
import org.apache.cayenne.map.ObjEntity;
-import org.apache.commons.collections.Transformer;
/**
* Encapsulates join reuse/split logic used in SelectQuery processing. All
@@ -187,7 +186,7 @@ public class JoinStack {
* to concatenated Db-paths to root entity and rejecting all original
* Db-paths
*/
- class JoinedDbEntityQualifierTransformer implements Transformer {
+ class JoinedDbEntityQualifierTransformer implements Function<Object, Object> {
StringBuilder pathToRoot;
@@ -211,7 +210,7 @@ public class JoinStack {
}
}
- public Object transform(Object input) {
+ public Object apply(Object input) {
if (input instanceof ASTObjPath) {
return new ASTDbPath(pathToRoot.toString() + ((SimpleNode) input).getOperand(0));
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
----------------------------------------------------------------------
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 51ebf52..81ec0ee 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
@@ -20,8 +20,10 @@
package org.apache.cayenne.access.translator.select;
import java.io.IOException;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import java.util.function.Function;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.ObjectId;
@@ -42,8 +44,6 @@ import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.query.Query;
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.reflect.ClassDescriptor;
-import org.apache.commons.collections.IteratorUtils;
-import org.apache.commons.collections.Transformer;
/**
* Translates query qualifier to SQL. Used as a helper class by query
@@ -572,7 +572,7 @@ public class QualifierTranslator extends QueryAssemblerHelper implements Travers
if (list instanceof List) {
it = ((List<?>) list).iterator();
} else if (list instanceof Object[]) {
- it = IteratorUtils.arrayIterator((Object[]) list);
+ it = Arrays.asList((Object[]) list).iterator();
} else {
String className = (list != null) ? list.getClass().getName() : "<null>";
throw new IllegalArgumentException("Unsupported type for the list expressions: " + className);
@@ -676,9 +676,9 @@ public class QualifierTranslator extends QueryAssemblerHelper implements Travers
* qualifiers annotation This is done by changing all Obj-paths to Db-paths
* and rejecting all original Db-paths
*/
- class DbEntityQualifierTransformer implements Transformer {
+ class DbEntityQualifierTransformer implements Function<Object, Object> {
- public Object transform(Object input) {
+ public Object apply(Object input) {
if (input instanceof ASTObjPath) {
return new ASTDbPath(((SimpleNode) input).getOperand(0));
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
index d299f28..13214a9 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
@@ -39,7 +39,6 @@ import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
import org.apache.cayenne.query.ObjectIdQuery;
import org.apache.cayenne.reflect.ClassDescriptor;
-import org.apache.commons.collections.comparators.ReverseComparator;
import java.util.ArrayList;
import java.util.Collection;
@@ -320,7 +319,7 @@ public class AshwoodEntitySorter implements EntitySorter {
protected Comparator<DbEntity> getDbEntityComparator(boolean dependantFirst) {
Comparator<DbEntity> c = dbEntityComparator;
if (dependantFirst) {
- c = new ReverseComparator(c);
+ c = c.reversed();
}
return c;
}
@@ -328,7 +327,7 @@ public class AshwoodEntitySorter implements EntitySorter {
protected Comparator<ObjEntity> getObjEntityComparator(boolean dependantFirst) {
Comparator<ObjEntity> c = objEntityComparator;
if (dependantFirst) {
- c = new ReverseComparator(c);
+ c = c.reversed();
}
return c;
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/ashwood/WeightedAshwoodEntitySorter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/WeightedAshwoodEntitySorter.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/WeightedAshwoodEntitySorter.java
index 99df6a6..97e6e87 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/WeightedAshwoodEntitySorter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/WeightedAshwoodEntitySorter.java
@@ -25,7 +25,6 @@ import java.util.Map;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.ObjEntity;
-import org.apache.commons.collections.comparators.ReverseComparator;
/**
* EntitySorter that takes into account entity "weights", and otherwise delegating to
@@ -72,7 +71,7 @@ public class WeightedAshwoodEntitySorter extends AshwoodEntitySorter {
protected Comparator<DbEntity> getDbEntityComparator(boolean dependantFirst) {
Comparator<DbEntity> c = weightedDbEntityComparator;
if (dependantFirst) {
- c = new ReverseComparator(c);
+ c = c.reversed();
}
return c;
}
@@ -82,7 +81,7 @@ public class WeightedAshwoodEntitySorter extends AshwoodEntitySorter {
protected Comparator<ObjEntity> getObjEntityComparator(boolean dependantFirst) {
Comparator<ObjEntity> c = weightedObjEntityComparator;
if (dependantFirst) {
- c = new ReverseComparator(c);
+ c = c.reversed();
}
return c;
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/cache/MapQueryCache.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/cache/MapQueryCache.java b/cayenne-server/src/main/java/org/apache/cayenne/cache/MapQueryCache.java
index ea48311..e2fb64d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/cache/MapQueryCache.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/cache/MapQueryCache.java
@@ -25,7 +25,7 @@ import java.util.concurrent.ConcurrentHashMap;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.query.QueryMetadata;
-import org.apache.commons.collections.map.LRUMap;
+import org.apache.cayenne.util.concurrentlinkedhashmap.ConcurrentLinkedHashMap;
/**
* A default implementation of the {@link QueryCache} interface that stores data in a
@@ -152,7 +152,8 @@ public class MapQueryCache implements QueryCache, Serializable {
if(map != null) {
return map;
}
- map = new LRUMap(maxSize);
+
+ map = new ConcurrentLinkedHashMap.Builder<String, List<?>>().maximumWeightedCapacity(maxSize).build();
cacheGroups.put(cacheName, map);
return map;
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleQualifierTranslator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleQualifierTranslator.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleQualifierTranslator.java
index fadd468..078230f 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleQualifierTranslator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleQualifierTranslator.java
@@ -29,10 +29,10 @@ import org.apache.cayenne.exp.parser.ASTNegate;
import org.apache.cayenne.exp.parser.ASTNotIn;
import org.apache.cayenne.exp.parser.ASTPath;
import org.apache.cayenne.exp.parser.Node;
-import org.apache.commons.collections.Transformer;
import java.util.ArrayList;
import java.util.List;
+import java.util.function.Function;
/**
* Oracle qualifier translator. In particular, trims INs with more than 1000
@@ -53,7 +53,7 @@ public class OracleQualifierTranslator extends TrimmingQualifierTranslator {
rootNode.traverse(this);
}
- public static class INTrimmer implements Transformer {
+ public static class INTrimmer implements Function<Object, Object> {
public Expression trimmedInExpression(Expression exp, int maxInSize) {
Expression list = (Expression) exp.getOperand(1);
@@ -89,7 +89,7 @@ public class OracleQualifierTranslator extends TrimmingQualifierTranslator {
return res;
}
- public Object transform(Object input) {
+ public Object apply(Object input) {
if (input instanceof ASTIn || input instanceof ASTNotIn) {
return trimmedInExpression((Expression) input, 1000);
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
index 77a8cdf..6bfad77 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
@@ -29,6 +29,7 @@ import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.function.Function;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
@@ -38,7 +39,6 @@ import org.apache.cayenne.util.HashCodeBuilder;
import org.apache.cayenne.util.Util;
import org.apache.cayenne.util.XMLEncoder;
import org.apache.cayenne.util.XMLSerializable;
-import org.apache.commons.collections.Transformer;
/**
* Superclass of Cayenne expressions that defines basic API for expressions use.
@@ -622,7 +622,7 @@ public abstract class Expression implements Serializable, XMLSerializable {
*
* @since 1.1
*/
- public Expression transform(Transformer transformer) {
+ public Expression transform(Function<Object, Object> transformer) {
Object transformed = transformExpression(transformer);
if (transformed == PRUNED_NODE || transformed == null) {
@@ -641,7 +641,7 @@ public abstract class Expression implements Serializable, XMLSerializable {
* @return null, Expression.PRUNED_NODE or transformed expression.
* @since 1.2
*/
- protected Object transformExpression(Transformer transformer) {
+ protected Object transformExpression(Function<Object, Object> transformer) {
Expression copy = shallowCopy();
int count = getOperandCount();
for (int i = 0, j = 0; i < count; i++) {
@@ -651,7 +651,7 @@ public abstract class Expression implements Serializable, XMLSerializable {
if (operand instanceof Expression) {
transformedChild = ((Expression) operand).transformExpression(transformer);
} else if (transformer != null) {
- transformedChild = transformer.transform(operand);
+ transformedChild = transformer.apply(operand);
} else {
transformedChild = operand;
}
@@ -672,7 +672,7 @@ public abstract class Expression implements Serializable, XMLSerializable {
}
// all the children are processed, only now transform this copy
- return (transformer != null) ? (Expression) transformer.transform(copy) : copy;
+ return (transformer != null) ? (Expression) transformer.apply(copy) : copy;
}
/**
@@ -793,7 +793,7 @@ public abstract class Expression implements Serializable, XMLSerializable {
return toEJBQL(null, rootId);
}
- final class NamedParamTransformer implements Transformer {
+ final class NamedParamTransformer implements Function<Object, Object> {
private Map<String, ?> parameters;
private boolean pruneMissing;
@@ -804,7 +804,7 @@ public abstract class Expression implements Serializable, XMLSerializable {
}
@Override
- public Object transform(Object object) {
+ public Object apply(Object object) {
if (!(object instanceof ExpressionParameter)) {
// normally Object[] is an ASTList child
@@ -815,7 +815,7 @@ public abstract class Expression implements Serializable, XMLSerializable {
Object[] target = new Object[len];
for (int i = 0; i < len; i++) {
- target[i] = transform(source[i]);
+ target[i] = apply(source[i]);
}
return target;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTIn.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTIn.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTIn.java
index e91c5a3..d1801ce 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTIn.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTIn.java
@@ -19,8 +19,9 @@
package org.apache.cayenne.exp.parser;
+import java.util.function.Function;
+
import org.apache.cayenne.exp.Expression;
-import org.apache.commons.collections.Transformer;
/**
* "In" expression.
@@ -91,7 +92,7 @@ public class ASTIn extends ConditionNode {
}
@Override
- protected Object transformExpression(Transformer transformer) {
+ protected Object transformExpression(Function<Object, Object> transformer) {
Object transformed = super.transformExpression(transformer);
// transform empty ASTIn to ASTFalse
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTNotIn.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTNotIn.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTNotIn.java
index 09afa6d..4ce7d46 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTNotIn.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTNotIn.java
@@ -20,8 +20,9 @@
package org.apache.cayenne.exp.parser;
+import java.util.function.Function;
+
import org.apache.cayenne.exp.Expression;
-import org.apache.commons.collections.Transformer;
/**
* "Not In" expression.
@@ -83,7 +84,7 @@ public class ASTNotIn extends ConditionNode {
}
@Override
- protected Object transformExpression(Transformer transformer) {
+ protected Object transformExpression(Function<Object, Object> transformer) {
Object transformed = super.transformExpression(transformer);
// transform empty ASTNotIn to ASTTrue
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/AggregateConditionNode.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/AggregateConditionNode.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/AggregateConditionNode.java
index 7574dfd..33d8c15 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/AggregateConditionNode.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/AggregateConditionNode.java
@@ -19,8 +19,9 @@
package org.apache.cayenne.exp.parser;
+import java.util.function.Function;
+
import org.apache.cayenne.exp.ExpressionException;
-import org.apache.commons.collections.Transformer;
/**
* Superclass of aggregated conditional nodes such as NOT, AND, OR. Performs
@@ -43,7 +44,7 @@ public abstract class AggregateConditionNode extends SimpleNode {
}
@Override
- protected Object transformExpression(Transformer transformer) {
+ protected Object transformExpression(Function<Object, Object> transformer) {
Object transformed = super.transformExpression(transformer);
if (!(transformed instanceof AggregateConditionNode)) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
index d3dda7e..f8071da 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
@@ -35,7 +35,6 @@ import org.apache.cayenne.map.event.MapEvent;
import org.apache.cayenne.map.event.RelationshipEvent;
import org.apache.cayenne.util.CayenneMapEntry;
import org.apache.cayenne.util.XMLEncoder;
-import org.apache.commons.collections.Transformer;
import java.util.ArrayList;
import java.util.Collection;
@@ -47,6 +46,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
+import java.util.function.Function;
/**
* A DbEntity is a mapping descriptor that defines a structure of a database
@@ -636,7 +636,7 @@ public class DbEntity extends Entity implements ConfigurationNode, DbEntityListe
return expression.transform(new RelationshipPathConverter(relationshipPath));
}
- final class RelationshipPathConverter implements Transformer {
+ final class RelationshipPathConverter implements Function<Object, Object> {
String relationshipPath;
boolean toMany;
@@ -656,7 +656,7 @@ public class DbEntity extends Entity implements ConfigurationNode, DbEntityListe
}
}
- public Object transform(Object input) {
+ public Object apply(Object input) {
if (!(input instanceof Expression)) {
return input;
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java
index 53d4c73..e3678d5 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java
@@ -24,8 +24,6 @@ import org.apache.cayenne.configuration.ConfigurationNode;
import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
import org.apache.cayenne.util.Util;
import org.apache.cayenne.util.XMLEncoder;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Transformer;
import java.util.ArrayList;
import java.util.Collection;
@@ -33,6 +31,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* A DbRelationship is a descriptor of a database inter-table relationship based
@@ -118,7 +117,7 @@ public class DbRelationship extends Relationship implements ConfigurationNode {
return Collections.emptyList();
}
- return CollectionUtils.collect(joins, JoinTransformers.targetExtractor);
+ return joins.stream().map(DbJoin::getTarget).collect(Collectors.toList());
}
/**
@@ -132,7 +131,7 @@ public class DbRelationship extends Relationship implements ConfigurationNode {
return Collections.emptyList();
}
- return CollectionUtils.collect(joins, JoinTransformers.sourceExtractor);
+ return joins.stream().map(DbJoin::getSource).collect(Collectors.toList());
}
/**
@@ -486,23 +485,6 @@ public class DbRelationship extends Relationship implements ConfigurationNode {
return false;
}
- static final class JoinTransformers {
-
- static final Transformer targetExtractor = new Transformer() {
-
- public Object transform(Object input) {
- return (input instanceof DbJoin) ? ((DbJoin) input).getTarget() : input;
- }
- };
-
- static final Transformer sourceExtractor = new Transformer() {
-
- public Object transform(Object input) {
- return (input instanceof DbJoin) ? ((DbJoin) input).getSource() : input;
- }
- };
- }
-
// a join used for comparison
static final class TestJoin extends DbJoin {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/map/ObjAttribute.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjAttribute.java b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjAttribute.java
index ae03d13..ebafe84 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjAttribute.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjAttribute.java
@@ -19,6 +19,7 @@
package org.apache.cayenne.map;
+import java.util.Collections;
import java.util.Iterator;
import org.apache.cayenne.CayenneRuntimeException;
@@ -27,7 +28,6 @@ import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
import org.apache.cayenne.util.CayenneMapEntry;
import org.apache.cayenne.util.Util;
import org.apache.cayenne.util.XMLEncoder;
-import org.apache.commons.collections.IteratorUtils;
/**
* An ObjAttribute is a mapping descriptor of a Java class property.
@@ -217,25 +217,25 @@ public class ObjAttribute extends Attribute implements ConfigurationNode {
@SuppressWarnings("unchecked")
public Iterator<CayenneMapEntry> getDbPathIterator(ObjEntity entity) {
if (dbAttributePath == null) {
- return IteratorUtils.EMPTY_ITERATOR;
+ return Collections.emptyIterator();
}
if (entity == null) {
- return IteratorUtils.EMPTY_ITERATOR;
+ return Collections.emptyIterator();
}
DbEntity dbEnt = entity.getDbEntity();
if (dbEnt == null) {
- return IteratorUtils.EMPTY_ITERATOR;
+ return Collections.emptyIterator();
}
int lastPartStart = dbAttributePath.lastIndexOf('.');
if (lastPartStart < 0) {
DbAttribute attribute = dbEnt.getAttribute(dbAttributePath);
if (attribute == null) {
- return IteratorUtils.EMPTY_ITERATOR;
+ return Collections.emptyIterator();
}
- return IteratorUtils.singletonIterator(attribute);
+ return Collections.<CayenneMapEntry>singleton(attribute).iterator();
}
return dbEnt.resolvePathComponents(dbAttributePath);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
index 311f5ed..536d2cf 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
@@ -32,7 +32,6 @@ import org.apache.cayenne.map.event.ObjEntityListener;
import org.apache.cayenne.util.CayenneMapEntry;
import org.apache.cayenne.util.Util;
import org.apache.cayenne.util.XMLEncoder;
-import org.apache.commons.collections.Transformer;
import java.util.ArrayList;
import java.util.Collection;
@@ -45,6 +44,7 @@ import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
+import java.util.function.Function;
/**
* ObjEntity is a mapping descriptor for a DataObject Java class. It contains
@@ -1104,7 +1104,7 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
return res;
}
- final class DBPathConverter implements Transformer {
+ final class DBPathConverter implements Function<Object, Object> {
// TODO: make it a public method - resolveDBPathComponents or
// something...
@@ -1143,7 +1143,7 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
return buf.toString();
}
- public Object transform(Object input) {
+ public Object apply(Object input) {
if (!(input instanceof Expression)) {
return input;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/query/BatchQueryRow.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/BatchQueryRow.java b/cayenne-server/src/main/java/org/apache/cayenne/query/BatchQueryRow.java
index 6fb2ddc..c19d0c2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/BatchQueryRow.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/BatchQueryRow.java
@@ -19,11 +19,11 @@
package org.apache.cayenne.query;
import java.util.Map;
+import java.util.function.Supplier;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.map.DbAttribute;
-import org.apache.commons.collections.Factory;
/**
* Represents a single row of values in a BatchQuery.
@@ -60,8 +60,8 @@ public abstract class BatchQueryRow {
// if a value is a Factory, resolve it here...
// slight chance that a normal value will implement Factory interface???
- if (value instanceof Factory) {
- value = ((Factory) value).create();
+ if (value instanceof Supplier) {
+ value = ((Supplier) value).get();
valueMap.put(attribute.getName(), value);
// update replacement id
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/query/InsertBatchQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/InsertBatchQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/InsertBatchQuery.java
index 84b76ca..1aebb5f 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/InsertBatchQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/InsertBatchQuery.java
@@ -50,7 +50,7 @@ public class InsertBatchQuery extends BatchQuery {
/**
* Adds a snapshot to batch. Optionally stores the object id for the
* snapshot. Note that snapshot can hold either the real values or the
- * instances of org.apache.commons.collections.Factory that will be resolved
+ * instances of java.util.Supplier that will be resolved
* to the actual value on the spot, thus allowing deferred propagated keys
* resolution.
*
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java b/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
index 5bd24bc..08417c4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
@@ -38,7 +38,6 @@ import org.apache.cayenne.util.ConversionUtil;
import org.apache.cayenne.util.Util;
import org.apache.cayenne.util.XMLEncoder;
import org.apache.cayenne.util.XMLSerializable;
-import org.apache.commons.collections.ComparatorUtils;
/**
* Defines object sorting criteria, used either for in-memory sorting of object
@@ -67,7 +66,14 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab
*/
@SuppressWarnings("unchecked")
public static void orderList(List<?> objects, List<? extends Ordering> orderings) {
- Collections.sort(objects, ComparatorUtils.chainedComparator(orderings));
+ if(objects == null || orderings == null || orderings.isEmpty()) {
+ return;
+ }
+ Comparator<Object> comparator = orderings.get(0);
+ for(int i=1; i<orderings.size(); i++) {
+ comparator = comparator.thenComparing(orderings.get(i));
+ }
+ objects.sort(comparator);
}
/**
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/main/java/org/apache/cayenne/query/SQLTemplate.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/SQLTemplate.java b/cayenne-server/src/main/java/org/apache/cayenne/query/SQLTemplate.java
index 554bb8b..eed51c1 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/SQLTemplate.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/SQLTemplate.java
@@ -30,8 +30,6 @@ import org.apache.cayenne.map.QueryDescriptor;
import org.apache.cayenne.map.SQLResult;
import org.apache.cayenne.util.XMLEncoder;
import org.apache.cayenne.util.XMLSerializable;
-import org.apache.commons.collections.IteratorUtils;
-import org.apache.commons.collections.Transformer;
import java.util.ArrayList;
import java.util.Arrays;
@@ -42,6 +40,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
+import java.util.function.Function;
+import java.util.stream.Stream;
/**
* A query that executes unchanged (except for template preprocessing) "raw" SQL
@@ -76,12 +76,8 @@ public class SQLTemplate extends AbstractQuery implements ParameterizedQuery {
public static final String COLUMN_NAME_CAPITALIZATION_PROPERTY = "cayenne.SQLTemplate.columnNameCapitalization";
- private static final Transformer nullMapTransformer = new Transformer() {
-
- public Object transform(Object input) {
- return (input != null) ? input : Collections.EMPTY_MAP;
- }
- };
+ private static final Function<Map<String, ?>, Map<String, ?>> nullMapTransformer = input ->
+ (input != null) ? input : Collections.emptyMap();
protected String defaultTemplate;
protected Map<String, String> templates;
@@ -222,8 +218,9 @@ public class SQLTemplate extends AbstractQuery implements ParameterizedQuery {
*/
@SuppressWarnings("unchecked")
public Iterator<Map<String, ?>> parametersIterator() {
- return (parameters == null || parameters.length == 0) ? IteratorUtils.emptyIterator() : IteratorUtils
- .transformedIterator(IteratorUtils.arrayIterator(parameters), nullMapTransformer);
+ return (parameters == null || parameters.length == 0)
+ ? Collections.emptyIterator()
+ : Stream.of(parameters).map(nullMapTransformer).iterator();
}
/**
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/cayenne-server/src/test/java/org/apache/cayenne/ObjectIdTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/ObjectIdTest.java b/cayenne-server/src/test/java/org/apache/cayenne/ObjectIdTest.java
index 0dc4907..2ed72ad 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/ObjectIdTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/ObjectIdTest.java
@@ -20,11 +20,11 @@
package org.apache.cayenne;
import org.apache.cayenne.util.Util;
-import org.apache.commons.collections.map.LinkedMap;
import org.junit.Test;
import java.math.BigDecimal;
import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Map;
import static org.junit.Assert.assertEquals;
@@ -168,12 +168,12 @@ public class ObjectIdTest {
// create maps with guaranteed iteration order
@SuppressWarnings("unchecked")
- Map<String, Object> hm1 = new LinkedMap();
+ Map<String, Object> hm1 = new LinkedHashMap<>();
hm1.put("KEY1", 1);
hm1.put("KEY2", 2);
@SuppressWarnings("unchecked")
- Map<String, Object> hm2 = new LinkedMap();
+ Map<String, Object> hm2 = new LinkedHashMap();
// put same keys but in different order
hm2.put("KEY2", 2);
hm2.put("KEY1", 1);
@@ -256,12 +256,12 @@ public class ObjectIdTest {
// create maps with guaranteed iteration order
@SuppressWarnings("unchecked")
- Map<String, Object> hm1 = new LinkedMap();
+ Map<String, Object> hm1 = new LinkedHashMap();
hm1.put("KEY1", 1);
hm1.put("KEY2", 2);
@SuppressWarnings("unchecked")
- Map<String, Object> hm2 = new LinkedMap();
+ Map<String, Object> hm2 = new LinkedHashMap();
// put same keys but in different order
hm2.put("KEY2", new BigDecimal(2.00));
hm2.put("KEY1", 1L);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/docs/doc/pom.xml
----------------------------------------------------------------------
diff --git a/docs/doc/pom.xml b/docs/doc/pom.xml
index d3daa0a..8daefb9 100644
--- a/docs/doc/pom.xml
+++ b/docs/doc/pom.xml
@@ -48,11 +48,6 @@
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </dependency>
-
- <dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/pom.xml
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/pom.xml b/modeler/cayenne-modeler/pom.xml
index bbc4645..d505bdb 100644
--- a/modeler/cayenne-modeler/pom.xml
+++ b/modeler/cayenne-modeler/pom.xml
@@ -103,6 +103,18 @@
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
<profiles>
<profile>
<id>code-quality</id>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
index 3625df2..8bd18b4 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
@@ -34,8 +34,6 @@ import org.apache.cayenne.pref.CayenneProjectPreferences;
import org.apache.cayenne.project.Project;
import org.apache.cayenne.swing.BindingFactory;
import org.apache.cayenne.util.IDUtil;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Transformer;
import javax.swing.*;
import java.io.File;
@@ -43,6 +41,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;
+import java.util.stream.Collectors;
/**
* A main modeler application class that provides a number of services to the Modeler
@@ -241,7 +240,7 @@ public class Application {
ClasspathPreferences.class,
"");
- Collection details = new ArrayList<>();
+ Collection<String> details = new ArrayList<>();
String[] keys;
ArrayList<String> values = new ArrayList<>();
@@ -256,17 +255,7 @@ public class Application {
details.addAll(values);
if (details.size() > 0) {
-
- // transform preference to file...
- Transformer transformer = new Transformer() {
-
- public Object transform(Object object) {
- String pref = (String) object;
- return new File(pref);
- }
- };
-
- classLoader.setPathFiles(CollectionUtils.collect(details, transformer));
+ classLoader.setPathFiles(details.stream().map(File::new).collect(Collectors.toList()));
}
this.modelerClassLoader = classLoader;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java
index 369a8ed..9733f83 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java
@@ -30,7 +30,8 @@ import org.apache.cayenne.conn.DataSourceInfo;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dbsync.naming.NameBuilder;
import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.map.Entity;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.QueryDescriptor;
import org.apache.cayenne.map.event.EntityEvent;
import org.apache.cayenne.map.event.MapEvent;
@@ -44,7 +45,6 @@ import org.apache.cayenne.modeler.util.AdapterMapping;
import org.apache.cayenne.modeler.util.CayenneAction;
import org.apache.cayenne.modeler.util.FileFilters;
import org.apache.cayenne.wocompat.EOModelProcessor;
-import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -213,75 +213,67 @@ public class ImportEOModelAction extends CayenneAction {
// merge with existing map... have to memorize map state before and after
// to do the right events
- Collection originalOE = new ArrayList(currentMap.getObjEntities());
- Collection originalDE = new ArrayList(currentMap.getDbEntities());
- Collection originalQueries = new ArrayList(currentMap.getQueryDescriptors());
+ Collection<ObjEntity> originalOE = new ArrayList<>(currentMap.getObjEntities());
+ Collection<DbEntity> originalDE = new ArrayList<>(currentMap.getDbEntities());
+ Collection<QueryDescriptor> originalQueries = new ArrayList<>(currentMap.getQueryDescriptors());
currentMap.mergeWithDataMap(map);
map = currentMap;
// postprocess changes
- Collection newOE = new ArrayList(currentMap.getObjEntities());
- Collection newDE = new ArrayList(currentMap.getDbEntities());
- Collection newQueries = new ArrayList(currentMap.getQueryDescriptors());
+ Collection<ObjEntity> newOE = new ArrayList<>(currentMap.getObjEntities());
+ Collection<DbEntity> newDE = new ArrayList<>(currentMap.getDbEntities());
+ Collection<QueryDescriptor> newQueries = new ArrayList<>(currentMap.getQueryDescriptors());
EntityEvent entityEvent = new EntityEvent(Application.getFrame(), null);
QueryEvent queryEvent = new QueryEvent(Application.getFrame(), null);
- Collection addedOE = CollectionUtils.subtract(newOE, originalOE);
- Iterator it = addedOE.iterator();
- while (it.hasNext()) {
- Entity e = (Entity) it.next();
+ // 1. ObjEntities
+ Collection<ObjEntity> addedOE = new ArrayList<>(newOE);
+ addedOE.removeAll(originalOE);
+ for (ObjEntity e : addedOE) {
entityEvent.setEntity(e);
entityEvent.setId(MapEvent.ADD);
mediator.fireObjEntityEvent(entityEvent);
}
- Collection removedOE = CollectionUtils.subtract(originalOE, newOE);
- it = removedOE.iterator();
- while (it.hasNext()) {
- Entity e = (Entity) it.next();
+ Collection<ObjEntity> removedOE = new ArrayList<>(originalOE);
+ removedOE.removeAll(newOE);
+ for (ObjEntity e : removedOE) {
entityEvent.setEntity(e);
entityEvent.setId(MapEvent.REMOVE);
mediator.fireObjEntityEvent(entityEvent);
}
- Collection addedDE = CollectionUtils.subtract(newDE, originalDE);
- it = addedDE.iterator();
- while (it.hasNext()) {
- Entity e = (Entity) it.next();
+ // 2. DbEntities
+ Collection<DbEntity> addedDE = new ArrayList<>(newDE);
+ addedDE.removeAll(originalDE);
+ for(DbEntity e: addedDE) {
entityEvent.setEntity(e);
entityEvent.setId(MapEvent.ADD);
mediator.fireDbEntityEvent(entityEvent);
}
- Collection removedDE = CollectionUtils.subtract(originalDE, newDE);
- it = removedDE.iterator();
- while (it.hasNext()) {
- Entity e = (Entity) it.next();
+ Collection<DbEntity> removedDE = new ArrayList<>(originalDE);
+ removedDE.removeAll(newDE);
+ for(DbEntity e: removedDE) {
entityEvent.setEntity(e);
entityEvent.setId(MapEvent.REMOVE);
mediator.fireDbEntityEvent(entityEvent);
}
- // queries
- Collection addedQueries = CollectionUtils.subtract(
- newQueries,
- originalQueries);
- it = addedQueries.iterator();
- while (it.hasNext()) {
- QueryDescriptor q = (QueryDescriptor) it.next();
+ // 3. queries
+ Collection<QueryDescriptor> addedQueries = new ArrayList<>(newQueries);
+ addedQueries.removeAll(originalQueries);
+ for(QueryDescriptor q: addedQueries) {
queryEvent.setQuery(q);
queryEvent.setId(MapEvent.ADD);
mediator.fireQueryEvent(queryEvent);
}
- Collection removedQueries = CollectionUtils.subtract(
- originalQueries,
- newQueries);
- it = removedQueries.iterator();
- while (it.hasNext()) {
- QueryDescriptor q = (QueryDescriptor) it.next();
+ Collection<QueryDescriptor> removedQueries = new ArrayList<>(originalQueries);
+ removedQueries.removeAll(newQueries);
+ for(QueryDescriptor q: removedQueries) {
queryEvent.setQuery(q);
queryEvent.setId(MapEvent.REMOVE);
mediator.fireQueryEvent(queryEvent);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsControllerBase.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsControllerBase.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsControllerBase.java
index fd7f59b..4a41b32 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsControllerBase.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsControllerBase.java
@@ -25,7 +25,6 @@ import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbJoin;
import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.modeler.util.CayenneController;
-import org.apache.commons.collections.Predicate;
import java.awt.*;
import java.util.ArrayList;
@@ -33,6 +32,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import java.util.function.Predicate;
public class InferRelationshipsControllerBase extends CayenneController {
@@ -233,18 +233,17 @@ public class InferRelationshipsControllerBase extends CayenneController {
return selected;
}
- public boolean updateSelection(Predicate predicate) {
+ public boolean updateSelection(Predicate<InferredRelationship> predicate) {
boolean modified = false;
for (InferredRelationship entity : inferredRelationships) {
- boolean select = predicate.evaluate(entity);
+ boolean select = predicate.test(entity);
if (select) {
if (selectedEntities.add(entity)) {
modified = true;
}
- }
- else {
+ } else {
if (selectedEntities.remove(entity)) {
modified = true;
}
@@ -259,7 +258,7 @@ public class InferRelationshipsControllerBase extends CayenneController {
}
public boolean isSelected() {
- return currentEntity != null ? selectedEntities.contains(currentEntity) : false;
+ return currentEntity != null && selectedEntities.contains(currentEntity);
}
public void setSelected(boolean selectedFlag) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsTabController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsTabController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsTabController.java
index 5637b0c..a01bd9c 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsTabController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsTabController.java
@@ -24,8 +24,6 @@ import org.apache.cayenne.modeler.util.CayenneController;
import org.apache.cayenne.swing.BindingBuilder;
import org.apache.cayenne.swing.ObjectBinding;
import org.apache.cayenne.swing.TableBindingBuilder;
-import org.apache.commons.collections.Predicate;
-import org.apache.commons.collections.PredicateUtils;
public class InferRelationshipsTabController extends CayenneController {
@@ -115,8 +113,7 @@ public class InferRelationshipsTabController extends CayenneController {
if (selectedCount == 0) {
view.getCheckAll().setSelected(false);
- }
- else if (selectedCount == getParentController().getEntities().size()) {
+ } else if (selectedCount == getParentController().getEntities().size()) {
view.getCheckAll().setSelected(true);
}
}
@@ -126,11 +123,7 @@ public class InferRelationshipsTabController extends CayenneController {
* change.
*/
public void checkAllAction() {
-
- Predicate predicate = view.getCheckAll().isSelected() ? PredicateUtils
- .truePredicate() : PredicateUtils.falsePredicate();
-
- if (getParentController().updateSelection(predicate)) {
+ if (getParentController().updateSelection(view.getCheckAll().isSelected() ? o -> true : o -> false)) {
tableBinding.updateView();
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
index a4611a2..a5b2e6a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
@@ -28,8 +28,6 @@ import org.apache.cayenne.swing.BindingBuilder;
import org.apache.cayenne.swing.ImageRendererColumn;
import org.apache.cayenne.swing.ObjectBinding;
import org.apache.cayenne.swing.TableBindingBuilder;
-import org.apache.commons.collections.Predicate;
-import org.apache.commons.collections.PredicateUtils;
public class ClassesTabController extends CayenneController {
@@ -115,11 +113,7 @@ public class ClassesTabController extends CayenneController {
* change.
*/
public void checkAllAction() {
-
- Predicate predicate = view.getCheckAll().isSelected() ? PredicateUtils
- .truePredicate() : PredicateUtils.falsePredicate();
-
- if (getParentController().updateSelection(predicate)) {
+ if (getParentController().updateSelection(view.getCheckAll().isSelected() ? o -> true : o -> false)) {
tableBinding.updateView();
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
index 248b4b2..079d70c 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
@@ -27,32 +27,17 @@ import org.apache.cayenne.modeler.pref.DataMapDefaults;
import org.apache.cayenne.swing.BindingBuilder;
import org.apache.cayenne.validation.BeanValidationFailure;
import org.apache.cayenne.validation.ValidationResult;
-import org.apache.commons.collections.Predicate;
import java.util.ArrayList;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
+import java.util.function.Predicate;
public class ClientModeController extends StandardModeController {
- protected Predicate checkPredicate;
-
public ClientModeController(CodeGeneratorControllerBase parent) {
super(parent);
-
- this.checkPredicate = new Predicate() {
-
- public boolean evaluate(Object object) {
- if (object instanceof ObjEntity) {
- ObjEntity entity = (ObjEntity) object;
- return entity.isClientAllowed()
- && getParentController().getProblem(entity.getName()) == null;
- }
-
- return false;
- }
- };
}
public void validateEntity(ValidationResult validationBuffer, ObjEntity entity) {
@@ -117,8 +102,4 @@ public class ClientModeController extends StandardModeController {
protected ClassGenerationAction newGenerator() {
return new ClientClassGenerationAction();
}
-
- public Predicate getDefaultEntityFilter() {
- return checkPredicate;
- }
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
index 731cc61..d471682 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
@@ -24,14 +24,13 @@ import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.modeler.dialog.ErrorDebugDialog;
import org.apache.cayenne.modeler.util.CayenneController;
import org.apache.cayenne.swing.BindingBuilder;
-import org.apache.commons.collections.Predicate;
-import org.apache.commons.collections.PredicateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.swing.JOptionPane;
import java.awt.Component;
import java.util.Collection;
+import java.util.function.Predicate;
/**
* A controller for the class generator dialog.
@@ -91,9 +90,9 @@ public class CodeGeneratorController extends CodeGeneratorControllerBase {
GeneratorController controller = generatorSelector.getGeneratorController();
validate(controller);
- Predicate predicate = controller != null
+ Predicate<Object> predicate = controller != null
? controller.getDefaultClassFilter()
- : PredicateUtils.falsePredicate();
+ : o -> false;
updateSelection(predicate);
classesSelector.classSelectedAction();
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
index ad8c306..563de6a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
@@ -26,7 +26,6 @@ import org.apache.cayenne.modeler.util.CayenneController;
import org.apache.cayenne.modeler.util.CellRenderers;
import org.apache.cayenne.validation.ValidationFailure;
import org.apache.cayenne.validation.ValidationResult;
-import org.apache.commons.collections.Predicate;
import javax.swing.Icon;
import javax.swing.JLabel;
@@ -36,6 +35,7 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.function.Predicate;
/**
* A base superclass of a top controller for the code generator. Defines all common model
@@ -52,8 +52,8 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
protected List<Object> classes;
- protected Set selectedEntities;
- protected Set selectedEmbeddables;
+ protected Set<String> selectedEntities;
+ protected Set<String> selectedEmbeddables;
protected transient Object currentClass;
@@ -61,14 +61,14 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
super(parent);
this.dataMaps = dataMaps;
- this.classes = new ArrayList();
+ this.classes = new ArrayList<>();
for(DataMap dataMap:dataMaps){
- this.classes.addAll(new ArrayList(dataMap.getObjEntities()));
- this.classes.addAll(new ArrayList(dataMap.getEmbeddables()));
+ this.classes.addAll(new ArrayList<>(dataMap.getObjEntities()));
+ this.classes.addAll(new ArrayList<>(dataMap.getEmbeddables()));
}
- this.selectedEntities = new HashSet();
- this.selectedEmbeddables = new HashSet();
+ this.selectedEntities = new HashSet<>();
+ this.selectedEmbeddables = new HashSet<>();
}
public List<Object> getClasses() {
@@ -99,12 +99,12 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
this.validation = validationBuffer;
}
- public boolean updateSelection(Predicate predicate) {
+ public boolean updateSelection(Predicate<Object> predicate) {
boolean modified = false;
for (Object classObj : classes) {
- boolean select = predicate.evaluate(classObj);
+ boolean select = predicate.test(classObj);
if (classObj instanceof ObjEntity) {
if (select) {
@@ -205,12 +205,12 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
public boolean isSelected() {
if (currentClass instanceof ObjEntity) {
- return currentClass != null ? selectedEntities
- .contains(((ObjEntity) currentClass).getName()) : false;
+ return selectedEntities
+ .contains(((ObjEntity) currentClass).getName());
}
if (currentClass instanceof Embeddable) {
- return currentClass != null ? selectedEmbeddables
- .contains(((Embeddable) currentClass).getClassName()) : false;
+ return selectedEmbeddables
+ .contains(((Embeddable) currentClass).getClassName());
}
return false;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
index 962601d..e105445 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
@@ -41,7 +41,6 @@ import org.apache.cayenne.validation.BeanValidationFailure;
import org.apache.cayenne.validation.SimpleValidationFailure;
import org.apache.cayenne.validation.ValidationFailure;
import org.apache.cayenne.validation.ValidationResult;
-import org.apache.commons.collections.Predicate;
import javax.swing.JButton;
import javax.swing.JFileChooser;
@@ -54,6 +53,7 @@ import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
import java.util.Set;
+import java.util.function.Predicate;
import java.util.prefs.Preferences;
/**
@@ -479,44 +479,26 @@ public abstract class GeneratorController extends CayenneController {
final Embeddable selectedEmbeddable = Application.getInstance().getFrameController().getProjectController()
.getCurrentEmbeddable();
- // select a single entity
if (selectedEntity != null) {
+ // select a single entity
final boolean hasProblem = getParentController().getProblem(selectedEntity.getName()) != null;
-
- return new Predicate() {
-
- public boolean evaluate(Object object) {
- return !hasProblem && object == selectedEntity;
- }
- };
- }
- // select a single embeddable
- else if (selectedEmbeddable != null) {
+ return object -> !hasProblem && object == selectedEntity;
+ } else if (selectedEmbeddable != null) {
+ // select a single embeddable
final boolean hasProblem = getParentController().getProblem(selectedEmbeddable.getClassName()) != null;
-
- return new Predicate() {
-
- public boolean evaluate(Object object) {
- return !hasProblem && object == selectedEmbeddable;
+ return object -> !hasProblem && object == selectedEmbeddable;
+ } else {
+ // select all entities
+ return object -> {
+ if (object instanceof ObjEntity) {
+ return getParentController().getProblem(((ObjEntity) object).getName()) == null;
}
- };
- }
- // select all entities
- else {
-
- return new Predicate() {
-
- public boolean evaluate(Object object) {
- if (object instanceof ObjEntity) {
- return getParentController().getProblem(((ObjEntity) object).getName()) == null;
- }
-
- if (object instanceof Embeddable) {
- return getParentController().getProblem(((Embeddable) object).getClassName()) == null;
- }
- return false;
+ if (object instanceof Embeddable) {
+ return getParentController().getProblem(((Embeddable) object).getClassName()) == null;
}
+
+ return false;
};
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java
index 151d56c..149fb8d 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java
@@ -27,11 +27,11 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.prefs.Preferences;
+import java.util.stream.Collectors;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
@@ -39,7 +39,6 @@ import javax.swing.JOptionPane;
import org.apache.cayenne.datasource.DriverDataSource;
import org.apache.cayenne.map.event.MapEvent;
import org.apache.cayenne.modeler.FileClassLoadingService;
-import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.modeler.event.DataSourceModificationEvent;
import org.apache.cayenne.modeler.pref.DBConnectionInfo;
import org.apache.cayenne.modeler.util.CayenneController;
@@ -48,8 +47,6 @@ import org.apache.cayenne.pref.ChildrenMapPreference;
import org.apache.cayenne.pref.PreferenceEditor;
import org.apache.cayenne.swing.BindingBuilder;
import org.apache.cayenne.util.Util;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Transformer;
/**
* Editor for the local DataSources configured in preferences.
@@ -260,17 +257,7 @@ public class DataSourcePreferences extends CayenneController {
}
if (details.size() > 0) {
-
- // transform preference to file...
- Transformer transformer = new Transformer() {
-
- public Object transform(Object object) {
- String pref = (String) object;
- return new File(pref);
- }
- };
-
- classLoader.setPathFiles(CollectionUtils.collect(details, transformer));
+ classLoader.setPathFiles(details.stream().map(File::new).collect(Collectors.toList()));
}
Class<Driver> driverClass = classLoader.loadClass(Driver.class, currentDataSource.getJdbcDriver());
http://git-wip-us.apache.org/repos/asf/cayenne/blob/fddb229d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java
index 1b2b18c..8c6272f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java
@@ -31,6 +31,8 @@ import java.util.Collection;
import java.util.EventObject;
import java.util.LinkedList;
import java.util.List;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
@@ -74,8 +76,6 @@ import org.apache.cayenne.project.extension.info.ObjectInfo;
import org.apache.cayenne.util.CayenneMapEntry;
import org.apache.cayenne.util.Util;
import org.apache.cayenne.validation.ValidationException;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Predicate;
import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.layout.FormLayout;
@@ -424,23 +424,14 @@ public class ObjEntityTab extends JPanel implements ObjEntityDisplayListener, Ex
toggleClientFieldsVisible(map.isClientSupported());
toggleEnabled(entity.getSuperEntityName() == null, !entity.isServerOnly());
- // init ObjEntities for inheritance
- Predicate inheritanceFilter = new Predicate() {
- public boolean evaluate(Object object) {
- // do not show this entity or any of the subentities
- return entity != object && !((ObjEntity) object).isSubentityOf(entity);
- }
- };
-
- @SuppressWarnings("unchecked")
- ObjEntity[] objEntities = ((Collection<ObjEntity>)CollectionUtils.select(map.getObjEntities(), inheritanceFilter))
- .toArray(new ObjEntity[0]);
- Arrays.sort(objEntities, Comparators.getDataMapChildrenComparator());
- ObjEntity[] finalObjEntities = new ObjEntity[objEntities.length + 1];
- finalObjEntities[0] = NO_INHERITANCE;
- System.arraycopy(objEntities, 0, finalObjEntities, 1, objEntities.length);
+ // do not show this entity or any of the subentities
+ List<ObjEntity> objEntities = map.getObjEntities().stream()
+ .filter(object -> entity != object && !object.isSubentityOf(entity))
+ .sorted(Comparators.getDataMapChildrenComparator())
+ .collect(Collectors.toList());
+ objEntities.add(0, NO_INHERITANCE);
- DefaultComboBoxModel<ObjEntity> superEntityModel = new DefaultComboBoxModel<>(finalObjEntities);
+ DefaultComboBoxModel<ObjEntity> superEntityModel = new DefaultComboBoxModel<>(objEntities.toArray(new ObjEntity[0]));
superEntityModel.setSelectedItem(entity.getSuperEntity());
superEntityCombo.setRenderer(CellRenderers.entityListRendererWithIcons(map));
superEntityCombo.setModel(superEntityModel);