You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2017/07/10 06:53:08 UTC

[06/50] polygene-java git commit: POLYGENE-261 - Fixed the "duplicate should be allowed" for ManyAssociations.

POLYGENE-261 - Fixed the "duplicate should be allowed" for ManyAssociations.

Signed-off-by: niclas <ni...@hedhman.org>


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/f5cb14aa
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/f5cb14aa
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/f5cb14aa

Branch: refs/heads/es-jooq
Commit: f5cb14aa9aa48786354e28111f2eb327c297640d
Parents: df5fd8a
Author: niclas <ni...@hedhman.org>
Authored: Thu Jun 15 16:30:43 2017 +0800
Committer: niclas <ni...@hedhman.org>
Committed: Thu Jun 15 16:30:43 2017 +0800

----------------------------------------------------------------------
 .../api/association/ManyAssociation.java        | 36 +++++++++++++-------
 .../helpers/DefaultManyAssociationState.java    |  5 ---
 2 files changed, 24 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/f5cb14aa/core/api/src/main/java/org/apache/polygene/api/association/ManyAssociation.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/polygene/api/association/ManyAssociation.java b/core/api/src/main/java/org/apache/polygene/api/association/ManyAssociation.java
index b7b7f7f..2471b94 100644
--- a/core/api/src/main/java/org/apache/polygene/api/association/ManyAssociation.java
+++ b/core/api/src/main/java/org/apache/polygene/api/association/ManyAssociation.java
@@ -40,18 +40,23 @@ public interface ManyAssociation<T> extends Iterable<T>, AbstractAssociation
      */
     boolean contains( T entity );
 
-    /** Adds an entity reference representing the given entity to the {@code index} slot of this collection.
+    /**
+     * Adds an entity reference representing the given entity to the {@code index} slot of this collection.
      * <p>
-     *     {@code index=0} represents the beginning of the collection and if the {@code index} is equal or larger
-     *     than the length of the collection, the entity reference will be added to the end.
+     * {@code index=0} represents the beginning of the collection and if the {@code index} is equal or larger
+     * than the length of the collection, the entity reference will be added to the end.
      * </p>
+     *
      * @param entity The entity whose entity reference is to be added to this collection.
-     * @param index the position for the entity to be inserted at.
+     * @param index  the position for the entity to be inserted at, starting at 0. If index is larger than number
+     *               of references present, then it will be added to the end. If index is smaller than 0, then it
+     *               will be added at the beginning, position 0.
      * @return true if the entity reference has been added, false otherwise.
      */
     boolean add( int index, T entity );
 
-    /** Adds an entity reference representing the given entity to the end of this collection.
+    /**
+     * Adds an entity reference representing the given entity to the end of this collection.
      *
      * @param entity The entity whose entity reference is to be added to this collection.
      * @return true if the entity reference has been added, false otherwise.
@@ -61,8 +66,9 @@ public interface ManyAssociation<T> extends Iterable<T>, AbstractAssociation
     /**
      * Removes the given entity from this {@code ManyAssociation}.
      * <p>
-     *     The entity reference representing the given entity is removed from this collection.
+     * The entity reference representing the given entity is removed from this collection.
      * </p>
+     *
      * @param entity The entity reference to be removed.
      * @return true if an entity reference was removed, otherwise false
      */
@@ -71,13 +77,15 @@ public interface ManyAssociation<T> extends Iterable<T>, AbstractAssociation
     /**
      * Clear all entities from this {@code ManyAssociation}.
      * <p>
-     *     All entity references present is removed from this collection.
+     * All entity references present is removed from this collection.
      * </p>
+     *
      * @return true if any entity reference was removed, otherwise false
      */
     boolean clear();
 
-    /** Fetch the entity refrence at the given index and fetch the entity from the entity store.
+    /**
+     * Fetch the entity refrence at the given index and fetch the entity from the entity store.
      *
      * @param index The index location in the collection of the entity reference to be fetched.
      * @return The retrieved entity that the entity reference of this collection represents.
@@ -86,6 +94,7 @@ public interface ManyAssociation<T> extends Iterable<T>, AbstractAssociation
 
     /**
      * Returns the number of references in this association.
+     *
      * @return the number of references in this association.
      */
     int count();
@@ -94,9 +103,10 @@ public interface ManyAssociation<T> extends Iterable<T>, AbstractAssociation
      * Fetches all entities represented by entity references in this collection and returns a List of such
      * entities.
      * <p>
-     *     Multiple references to the same entity will be present multiple times in the List, unlike {@link #toSet()}.
-     *     The order in which the entities were added to this collection is preserved.
+     * Multiple references to the same entity will be present multiple times in the List, unlike {@link #toSet()}.
+     * The order in which the entities were added to this collection is preserved.
      * </p>
+     *
      * @return a List of entities represented by the entity references in this collection.
      */
     List<T> toList();
@@ -105,15 +115,17 @@ public interface ManyAssociation<T> extends Iterable<T>, AbstractAssociation
      * Fetches all entities represented by entity references in this collection and returns a Set of such
      * entities.
      * <p>
-     *     Multiple references to the same entity will NOT be present, unlike {@link #toList()}. Sets are defined
-     *     to only contain any particular object once. Order is not preserved.
+     * Multiple references to the same entity will NOT be present, unlike {@link #toList()}. Sets are defined
+     * to only contain any particular object once. Order is not preserved.
      * </p>
+     *
      * @return a Set of entities represented by the entity references in this collection.
      */
     Set<T> toSet();
 
     /**
      * Returns a stream of the references to the associated entities.
+     *
      * @return the references to the associated entities.
      */
     Stream<EntityReference> references();

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/f5cb14aa/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/DefaultManyAssociationState.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/DefaultManyAssociationState.java b/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/DefaultManyAssociationState.java
index 9e95188..83b883e 100644
--- a/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/DefaultManyAssociationState.java
+++ b/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/DefaultManyAssociationState.java
@@ -55,11 +55,6 @@ public final class DefaultManyAssociationState
     @Override
     public boolean add( int i, EntityReference entityReference )
     {
-        if( references.contains( entityReference ) )
-        {
-            return false;
-        }
-
         references.add( i, entityReference );
         entityState.markUpdated();
         return true;