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() {