From ebd92d4cca1d8345c485bd50bdb30a190b100a30 Mon Sep 17 00:00:00 2001
From: Fabio Pistolesi <fabio.pistolesi@forgerock.com>
Date: Wed, 09 Sep 2015 15:20:11 +0000
Subject: [PATCH] Use forgerock util's Options class instead of SDK's private copy.
---
opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java | 11 +-
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/DirectoryStringSyntax.java | 2
/dev/null | 91 ----------------------
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/AttributeTypeSyntax.java | 2
opendj-sdk/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/SchemaOptionsTestCase.java | 12 +-
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/JPEGSyntax.java | 2
opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaOptions.java | 83 --------------------
opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/Schema.java | 19 ++--
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/CountryStringSyntax.java | 2
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/CertificateSyntax.java | 2
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/TelephoneNumberSyntax.java | 2
11 files changed, 32 insertions(+), 196 deletions(-)
diff --git a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/Option.java b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/Option.java
deleted file mode 100644
index 9f5dec5..0000000
--- a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/Option.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
- * or http://forgerock.org/license/CDDLv1.0.html.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at legal-notices/CDDLv1_0.txt.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information:
- * Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- *
- *
- * Copyright 2014-2015 ForgeRock AS
- */
-package org.forgerock.opendj.ldap;
-
-/**
- * Public API for defining new options.
- *
- * @param <T> The option type.
- */
-public final class Option<T> {
- private final Class<T> type;
- private final T defaultValue;
-
- /**
- * Defines a new {@link Boolean} option with the provided default value.
- *
- * @param defaultValue
- * The {@link Boolean} default value of this option.
- * @return A new {@link Boolean} option with the provided default value.
- */
- public static Option<Boolean> withDefault(boolean defaultValue) {
- return of(Boolean.class, defaultValue);
- }
-
- /**
- * Defines a new option of the provided type with the provided default
- * value.
- *
- * @param <T>
- * The type of this option.
- * @param type
- * The type of the option.
- * @param defaultValue
- * The new option default value.
- * @return A new option of the provided type with the provided default
- * value.
- */
- public static <T> Option<T> of(Class<T> type, T defaultValue) {
- return new Option<>(type, defaultValue);
- }
-
- private Option(Class<T> type, T defaultValue) {
- this.type = type;
- this.defaultValue = defaultValue;
- }
-
- /**
- * Returns the type of this option.
- *
- * @return the type of this option.
- */
- public Class<T> getType() {
- return type;
- }
-
- /**
- * Returns the provided value if not {@code null}, otherwise returns the
- * default one.
- *
- * @param value
- * The option which overrides the default one if not null.
- * @return The provided value if not {@code null}, otherwise return the
- * default one.
- */
- public T getValue(Object value) {
- return value != null ? type.cast(value) : defaultValue;
- }
-}
diff --git a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/Schema.java b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/Schema.java
index 5e9d74c..0a928a3 100644
--- a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/Schema.java
+++ b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/Schema.java
@@ -47,10 +47,11 @@
import org.forgerock.opendj.ldap.LdapException;
import org.forgerock.opendj.ldap.LdapPromise;
import org.forgerock.opendj.ldap.LinkedAttribute;
-import org.forgerock.opendj.ldap.Option;
import org.forgerock.opendj.ldap.RDN;
-import org.forgerock.util.Reject;
import org.forgerock.util.Function;
+import org.forgerock.util.Option;
+import org.forgerock.util.Options;
+import org.forgerock.util.Reject;
import com.forgerock.opendj.util.StaticUtils;
@@ -77,7 +78,7 @@
Schema asStrictSchema();
- SchemaOptions getOptions();
+ Options getOptions();
MatchingRule getDefaultMatchingRule();
@@ -180,7 +181,7 @@
}
@Override
- public SchemaOptions getOptions() {
+ public Options getOptions() {
return strictImpl.getOptions();
}
@@ -419,14 +420,14 @@
private final Map<String, String> name2OIDs;
private final List<LocalizableMessage> warnings;
private final String schemaName;
- private final SchemaOptions options;
+ private final Options options;
private final Syntax defaultSyntax;
private final MatchingRule defaultMatchingRule;
private final Schema strictSchema;
private final Schema nonStrictSchema;
StrictImpl(final String schemaName,
- final SchemaOptions options,
+ final Options options,
final Syntax defaultSyntax,
final MatchingRule defaultMatchingRule,
final Map<String, Syntax> numericOID2Syntaxes,
@@ -449,7 +450,7 @@
final Map<String, String> name2OIDs,
final List<LocalizableMessage> warnings) {
this.schemaName = schemaName;
- this.options = SchemaOptions.unmodifiable(options);
+ this.options = options;
this.defaultSyntax = defaultSyntax;
this.defaultMatchingRule = defaultMatchingRule;
this.numericOID2Syntaxes = Collections.unmodifiableMap(numericOID2Syntaxes);
@@ -486,7 +487,7 @@
}
@Override
- public SchemaOptions getOptions() {
+ public Options getOptions() {
return options;
}
@@ -1460,7 +1461,7 @@
return getOptions().get(option);
}
- SchemaOptions getOptions() {
+ Options getOptions() {
return impl.getOptions();
}
diff --git a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java
index a4fc04d..e9593a2 100644
--- a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java
+++ b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java
@@ -65,16 +65,17 @@
import org.forgerock.opendj.ldap.Filter;
import org.forgerock.opendj.ldap.LdapException;
import org.forgerock.opendj.ldap.LdapPromise;
-import org.forgerock.opendj.ldap.Option;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.SearchScope;
import org.forgerock.opendj.ldap.requests.Requests;
import org.forgerock.opendj.ldap.requests.SearchRequest;
import org.forgerock.opendj.ldap.responses.SearchResultEntry;
import org.forgerock.opendj.ldap.schema.DITContentRule.Builder;
+import org.forgerock.util.Options;
import org.forgerock.util.Reject;
import org.forgerock.util.AsyncFunction;
import org.forgerock.util.Function;
+import org.forgerock.util.Option;
import org.forgerock.util.promise.Promise;
import com.forgerock.opendj.util.StaticUtils;
@@ -157,7 +158,7 @@
private Map<String, String> name2OIDs;
private String schemaName;
private List<LocalizableMessage> warnings;
- private SchemaOptions options;
+ private Options options;
/** A schema which should be copied into this builder on any mutation. */
@@ -1883,7 +1884,7 @@
return this;
}
- SchemaOptions getOptions() {
+ Options getOptions() {
lazyInitBuilder();
return options;
@@ -2439,7 +2440,7 @@
private void lazyInitBuilder() {
// Lazy initialization.
if (numericOID2Syntaxes == null) {
- options = defaultSchemaOptions();
+ options = Options.defaultOptions();
numericOID2Syntaxes = new LinkedHashMap<>();
numericOID2MatchingRules = new LinkedHashMap<>();
@@ -2467,7 +2468,7 @@
if (copyOnWriteSchema != null) {
// Copy the schema.
addSchema0(copyOnWriteSchema, true);
- options = SchemaOptions.copyOf(copyOnWriteSchema.getOptions());
+ options = Options.copyOf(copyOnWriteSchema.getOptions());
copyOnWriteSchema = null;
}
}
diff --git a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaOptions.java b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaOptions.java
index ba30b98..10f4df1 100644
--- a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaOptions.java
+++ b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaOptions.java
@@ -21,14 +21,11 @@
* CDDL HEADER END
*
*
- * Copyright 2014 ForgeRock AS
+ * Copyright 2014-2015 ForgeRock AS
*/
package org.forgerock.opendj.ldap.schema;
-import java.util.IdentityHashMap;
-import java.util.Map;
-
-import org.forgerock.opendj.ldap.Option;
+import org.forgerock.util.Option;
import static java.util.Collections.*;
@@ -136,79 +133,5 @@
*/
public static final Option<Boolean> STRIP_UPPER_BOUND_FOR_ATTRIBUTE_TYPE = Option.withDefault(false);
- private final Map<Option<?>, Object> options;
-
- /**
- * Creates a new set of schema options with default settings.
- *
- * @return A new {@link SchemaOptions} with default settings.
- */
- static SchemaOptions defaultSchemaOptions() {
- return new SchemaOptions(new IdentityHashMap<Option<?>, Object>());
- }
-
- /**
- * Creates a new schema options object by copying the provided schema
- * options. The options names and values will all be copied.
- *
- * @param schemaOptions
- * The schema options to be copied.
- * @return A new schema options object created by copying the provided schema
- * options.
- */
- static SchemaOptions copyOf(SchemaOptions schemaOptions) {
- return new SchemaOptions(new IdentityHashMap<Option<?>, Object>(schemaOptions.options));
- }
-
- /**
- * Returns an unmodifiable {@link SchemaOptions} copy of this set of options.
- *
- * @param schemaOptions
- * The schema options to be copied.
- * @return An unmodifiable {@link SchemaOptions} view of this set of options.
- */
- static SchemaOptions unmodifiable(SchemaOptions schemaOptions) {
- return new SchemaOptions(unmodifiableMap(new IdentityHashMap<Option<?>, Object>(schemaOptions.options)));
- }
-
- private SchemaOptions(Map<Option<?>, Object> optionsMap) {
- this.options = optionsMap;
- }
-
- /**
- * Returns the value to which the specified {@link Option} is mapped, or
- * {@code null} if this options set contains no mapping for the {@link Option}.
- *
- * @param <T>
- * The option type.
- * @param option
- * The option whose associated value is to be returned.
- * @return The value to which the specified option is mapped, or null if
- * this options set contains no mapping for the option.
- */
- <T> T get(Option<T> option) {
- return option.getValue(options.get(option));
- }
-
- /**
- * Associates the specified option value with the specified option in this
- * set of options. (optional operation). If this set of options previously
- * contained a mapping for the option, the old value is replaced by the
- * specified value.
- *
- * @param <T>
- * The option type.
- * @param option
- * Option with which the specified value is to be associated.
- * @param value
- * Value to be associated with the specified option.
- * @return A reference to this set of options.
- * @throws UnsupportedOperationException
- * If this set of options is read only.
- */
- <T> SchemaOptions set(Option<T> option, T value) {
- options.put(option, value);
- return this;
- }
-
+ private SchemaOptions() { }
}
diff --git a/opendj-sdk/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/SchemaOptionsTestCase.java b/opendj-sdk/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/SchemaOptionsTestCase.java
index 6f5b180..87b9e95 100644
--- a/opendj-sdk/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/SchemaOptionsTestCase.java
+++ b/opendj-sdk/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/SchemaOptionsTestCase.java
@@ -21,14 +21,15 @@
* CDDL HEADER END
*
*
- * Copyright 2013-2014 ForgeRock AS.
+ * Copyright 2013-2015 ForgeRock AS.
*/
package org.forgerock.opendj.ldap.schema;
import static org.fest.assertions.Assertions.*;
import static org.forgerock.opendj.ldap.schema.SchemaOptions.*;
-import org.forgerock.opendj.ldap.Option;
+import org.forgerock.util.Option;
+import org.forgerock.util.Options;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -53,7 +54,8 @@
@Test(dataProvider = "defaultSchemaOptions")
public void testDefaultSchemaOptions(Option<?> option) {
- assertThat(new SchemaBuilder().getOptions().get(option)).isEqualTo(option.getValue(null));
+ Options defaultOptions = Options.defaultOptions();
+ assertThat(new SchemaBuilder().getOptions().get(option)).isEqualTo(defaultOptions.get(option));
}
@Test
@@ -68,13 +70,13 @@
@Test
public void testSchemaOptionsCopy() {
- final SchemaOptions copiedOptions = SchemaOptions.copyOf(newSchemaBuilder().getOptions());
+ final Options copiedOptions = Options.copyOf(newSchemaBuilder().getOptions());
assertThat(copiedOptions.get(TEST_OPTION)).isEqualTo(TEST_OPTION_DEFAULT_VALUE);
}
@Test(expectedExceptions = UnsupportedOperationException.class)
public void testAsReadOnlyOptions() {
- SchemaOptions.unmodifiable(new SchemaBuilder().getOptions()).set(ALLOW_MALFORMED_CERTIFICATES, false);
+ Options.unmodifiableCopyOf(new SchemaBuilder().getOptions()).set(ALLOW_MALFORMED_CERTIFICATES, false);
}
private SchemaBuilder newSchemaBuilder() {
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/AttributeTypeSyntax.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/AttributeTypeSyntax.java
index 0bd93df..c50ed00 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/AttributeTypeSyntax.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/AttributeTypeSyntax.java
@@ -42,12 +42,12 @@
import org.forgerock.opendj.config.server.ConfigChangeResult;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteSequence;
-import org.forgerock.opendj.ldap.Option;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.schema.AttributeUsage;
import org.forgerock.opendj.ldap.schema.MatchingRule;
import org.forgerock.opendj.ldap.schema.SchemaOptions;
import org.forgerock.opendj.ldap.schema.Syntax;
+import org.forgerock.util.Option;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.AttributeTypeDescriptionAttributeSyntaxCfg;
import org.opends.server.api.AttributeSyntax;
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/CertificateSyntax.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/CertificateSyntax.java
index 11a17ae..b039f5a 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/CertificateSyntax.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/CertificateSyntax.java
@@ -34,10 +34,10 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigChangeResult;
import org.forgerock.opendj.config.server.ConfigException;
-import org.forgerock.opendj.ldap.Option;
import org.forgerock.opendj.ldap.schema.Schema;
import org.forgerock.opendj.ldap.schema.SchemaOptions;
import org.forgerock.opendj.ldap.schema.Syntax;
+import org.forgerock.util.Option;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.CertificateAttributeSyntaxCfg;
import org.opends.server.api.AttributeSyntax;
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/CountryStringSyntax.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/CountryStringSyntax.java
index f2d1ada..6d046a4 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/CountryStringSyntax.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/CountryStringSyntax.java
@@ -35,10 +35,10 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigChangeResult;
import org.forgerock.opendj.config.server.ConfigException;
-import org.forgerock.opendj.ldap.Option;
import org.forgerock.opendj.ldap.schema.Schema;
import org.forgerock.opendj.ldap.schema.SchemaOptions;
import org.forgerock.opendj.ldap.schema.Syntax;
+import org.forgerock.util.Option;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.CountryStringAttributeSyntaxCfg;
import org.opends.server.api.AttributeSyntax;
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/DirectoryStringSyntax.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/DirectoryStringSyntax.java
index 0df279c..751ebd9 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/DirectoryStringSyntax.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/DirectoryStringSyntax.java
@@ -32,10 +32,10 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigChangeResult;
import org.forgerock.opendj.config.server.ConfigException;
-import org.forgerock.opendj.ldap.Option;
import org.forgerock.opendj.ldap.schema.Schema;
import org.forgerock.opendj.ldap.schema.SchemaOptions;
import org.forgerock.opendj.ldap.schema.Syntax;
+import org.forgerock.util.Option;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.DirectoryStringAttributeSyntaxCfg;
import org.opends.server.api.AttributeSyntax;
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/JPEGSyntax.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/JPEGSyntax.java
index 1db6ee6..6c4ffed 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/JPEGSyntax.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/JPEGSyntax.java
@@ -34,10 +34,10 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigChangeResult;
import org.forgerock.opendj.config.server.ConfigException;
-import org.forgerock.opendj.ldap.Option;
import org.forgerock.opendj.ldap.schema.Schema;
import org.forgerock.opendj.ldap.schema.SchemaOptions;
import org.forgerock.opendj.ldap.schema.Syntax;
+import org.forgerock.util.Option;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.JPEGAttributeSyntaxCfg;
import org.opends.server.api.AttributeSyntax;
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/TelephoneNumberSyntax.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/TelephoneNumberSyntax.java
index b693c57..c05cc47 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/TelephoneNumberSyntax.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/schema/TelephoneNumberSyntax.java
@@ -33,10 +33,10 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigChangeResult;
import org.forgerock.opendj.config.server.ConfigException;
-import org.forgerock.opendj.ldap.Option;
import org.forgerock.opendj.ldap.schema.Schema;
import org.forgerock.opendj.ldap.schema.SchemaOptions;
import org.forgerock.opendj.ldap.schema.Syntax;
+import org.forgerock.util.Option;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.TelephoneNumberAttributeSyntaxCfg;
import org.opends.server.api.AttributeSyntax;
--
Gitblit v1.10.0