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:49:14 UTC
[5/7] cayenne git commit: CAY-2352 Clean up build scripts and code to
support Java 8 remove unnecessary stream usage
CAY-2352 Clean up build scripts and code to support Java 8
remove unnecessary stream usage
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/93fb3317
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/93fb3317
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/93fb3317
Branch: refs/heads/master
Commit: 93fb331746da20f8b8892b16cb21fc78872e2ba7
Parents: b425e50
Author: Nikita Timofeev <st...@gmail.com>
Authored: Mon Aug 21 10:28:51 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Mon Aug 21 10:28:51 2017 +0300
----------------------------------------------------------------------
.../org/apache/cayenne/map/DbRelationship.java | 25 +++++++++++++-------
1 file changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/93fb3317/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 e3678d5..2eb89c0 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
@@ -31,7 +31,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.function.Function;
/**
* A DbRelationship is a descriptor of a database inter-table relationship based
@@ -113,11 +113,7 @@ public class DbRelationship extends Relationship implements ConfigurationNode {
*/
@SuppressWarnings("unchecked")
public Collection<DbAttribute> getTargetAttributes() {
- if (joins.size() == 0) {
- return Collections.emptyList();
- }
-
- return joins.stream().map(DbJoin::getTarget).collect(Collectors.toList());
+ return mapJoinsToAttributes(DbJoin::getTarget);
}
/**
@@ -127,11 +123,22 @@ public class DbRelationship extends Relationship implements ConfigurationNode {
*/
@SuppressWarnings("unchecked")
public Collection<DbAttribute> getSourceAttributes() {
+ return mapJoinsToAttributes(DbJoin::getSource);
+ }
+
+ private Collection<DbAttribute> mapJoinsToAttributes(Function<DbJoin, DbAttribute> mapper) {
if (joins.size() == 0) {
return Collections.emptyList();
}
-
- return joins.stream().map(DbJoin::getSource).collect(Collectors.toList());
+ // fast path for common case
+ if(joins.size() == 1) {
+ return Collections.singletonList(mapper.apply(joins.get(0)));
+ }
+ Collection<DbAttribute> result = new ArrayList<>(joins.size());
+ for(DbJoin join : joins) {
+ result.add(mapper.apply(join));
+ }
+ return result;
}
/**
@@ -141,7 +148,7 @@ public class DbRelationship extends Relationship implements ConfigurationNode {
* @since 1.0.5
*/
public DbRelationship createReverseRelationship() {
- DbEntity targetEntity = (DbEntity) getTargetEntity();
+ DbEntity targetEntity = getTargetEntity();
DbRelationship reverse = new DbRelationship();
reverse.setSourceEntity(targetEntity);