This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new dcd58c500 CAY-2760 add new methods for removing user properties
     new c528601fe Merge pull request #524 from 
aperaverzeu/4.3-FEATURE-CAY-2760-add-new-methods-for-userProperties
dcd58c500 is described below

commit dcd58c500d6674a1e28d14895a48892465725c2c
Author: Aliaskei Peraverzeu <dev.mroja...@gmail.com>
AuthorDate: Mon Oct 10 17:56:43 2022 +0300

    CAY-2760 add new methods for removing user properties
---
 .../main/java/org/apache/cayenne/BaseContext.java    | 20 ++++++++++++++++++++
 .../main/java/org/apache/cayenne/ObjectContext.java  | 14 ++++++++++++++
 .../apache/cayenne/access/DataContextExtrasIT.java   | 20 ++++++++++++++++++++
 3 files changed, 54 insertions(+)

diff --git a/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java 
b/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
index 981db73c7..d31f69917 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
@@ -615,6 +615,26 @@ public abstract class BaseContext implements ObjectContext 
{
                getUserProperties().put(key, value);
        }
 
+       /**
+        * {@inheritDoc}
+        *
+        * @since 4.3
+        */
+       @Override
+       public void removeUserProperty(String key) {
+               getUserProperties().remove(key);
+       }
+
+       /**
+        * {@inheritDoc}
+        *
+        * @since 4.3
+        */
+       @Override
+       public void clearUserProperties() {
+               getUserProperties().clear();
+       }
+
        /**
         * If ObjEntity qualifier is set, asks it to inject initial value to an
         * object. Also performs all Persistent initialization operations
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContext.java 
b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContext.java
index 2b6810378..d8e1776ed 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContext.java
@@ -304,4 +304,18 @@ public interface ObjectContext extends DataChannel, 
Serializable {
      * @since 3.0
      */
     void setUserProperty(String key, Object value);
+
+    /**
+     * Removes a user-defined property.
+     *
+     * @since 4.3
+     */
+    void removeUserProperty(String key);
+
+    /**
+     * Removes all user-defined properties.
+     *
+     * @since 4.3
+     */
+    void clearUserProperties();
 }
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
 
b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
index 644d750f5..59c09ceea 100644
--- 
a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
+++ 
b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
@@ -181,6 +181,26 @@ public class DataContextExtrasIT extends ServerCase {
         assertSame(object, context.getUserProperty("ABC"));
     }
 
+    @Test
+    public void testUserPropertiesRemove() {
+        Object object = new Object();
+
+        context.setUserProperty("ABC", object);
+        assertSame(object, context.getUserProperty("ABC"));
+
+        context.removeUserProperty("ABC");
+        assertNull(context.getUserProperty("ABC"));
+
+        context.setUserProperty("CBA", object);
+        context.setUserProperty("BCA", object);
+        assertSame(object, context.getUserProperty("CBA"));
+        assertSame(object, context.getUserProperty("BCA"));
+
+        context.clearUserProperties();
+        assertNull(context.getUserProperty("CBA"));
+        assertNull(context.getUserProperty("BCA"));
+    }
+
     @Test
     public void testHasChangesNew() {
 

Reply via email to