From ebf96a30d0122d35e271bad15f1f31a0a9100842 Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Sun, 24 Oct 2010 20:47:53 +0000
Subject: [PATCH] Sync commits from OpenDS by matthew_swift
---
sdk/src/org/opends/sdk/requests/UnmodifiableModifyRequestImpl.java | 32 ++++++++++++++++++++++++++------
1 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/sdk/src/org/opends/sdk/requests/UnmodifiableModifyRequestImpl.java b/sdk/src/org/opends/sdk/requests/UnmodifiableModifyRequestImpl.java
index 5b143d6..f871a40 100644
--- a/sdk/src/org/opends/sdk/requests/UnmodifiableModifyRequestImpl.java
+++ b/sdk/src/org/opends/sdk/requests/UnmodifiableModifyRequestImpl.java
@@ -27,12 +27,13 @@
package org.opends.sdk.requests;
-import org.opends.sdk.DN;
-import org.opends.sdk.LocalizedIllegalArgumentException;
-import org.opends.sdk.Modification;
-import org.opends.sdk.ModificationType;
+import org.opends.sdk.*;
import org.opends.sdk.ldif.ChangeRecordVisitor;
+import com.sun.opends.sdk.util.Collections2;
+import com.sun.opends.sdk.util.Function;
+import com.sun.opends.sdk.util.Functions;
+
import java.util.Collections;
import java.util.List;
@@ -64,8 +65,27 @@
throw new UnsupportedOperationException();
}
- public List<Modification> getModifications() {
- return Collections.unmodifiableList(impl.getModifications());
+ public List<Modification> getModifications()
+ {
+ // We need to make all attributes unmodifiable as well.
+ Function<Modification, Modification, Void> function =
+ new Function<Modification, Modification, Void>()
+ {
+
+ public Modification apply(Modification value, Void p)
+ {
+ ModificationType type = value.getModificationType();
+ Attribute attribute = Attributes.unmodifiableAttribute(value
+ .getAttribute());
+ return new Modification(type, attribute);
+ }
+
+ };
+
+ List<Modification> unmodifiableModifications = Collections2.transformedList(
+ impl.getModifications(), function,
+ Functions.<Modification> identityFunction());
+ return Collections.unmodifiableList(unmodifiableModifications);
}
public DN getName() {
--
Gitblit v1.10.0