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 2022/10/11 07:08:02 UTC
[cayenne] branch master updated: CAY-2760 add new methods for removing user properties
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 <de...@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() {