*/
package org.opendaylight.controller.cluster.datastore;
+import static java.util.Objects.requireNonNull;
+
import com.google.common.annotations.VisibleForTesting;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.api.ClassLoadingStrategy;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
/**
* Factory for creating DatastoreContextIntrospector instances.
* @author Thomas Pantelis
*/
public class DatastoreContextIntrospectorFactory {
- private final DOMSchemaService schemaService;
- private final ClassLoadingStrategy classLoadingStrategy;
+ private final BindingNormalizedNodeSerializer serializer;
- public DatastoreContextIntrospectorFactory(DOMSchemaService schemaService,
- ClassLoadingStrategy classLoadingStrategy) {
- this.schemaService = schemaService;
- this.classLoadingStrategy = classLoadingStrategy;
+ public DatastoreContextIntrospectorFactory(final BindingNormalizedNodeSerializer serializer) {
+ this.serializer = requireNonNull(serializer);
}
- public DatastoreContextIntrospector newInstance(LogicalDatastoreType datastoreType) {
- return new DatastoreContextIntrospector(DatastoreContext.newBuilder()
- .logicalStoreType(datastoreType).tempFileDirectory("./data").build(), newBindingSerializer());
+ public DatastoreContextIntrospector newInstance(final LogicalDatastoreType datastoreType) {
+ return newInstance(DatastoreContext.newBuilder()
+ .logicalStoreType(datastoreType)
+ .tempFileDirectory("./data")
+ .build());
}
@VisibleForTesting
- DatastoreContextIntrospector newInstance(DatastoreContext context) {
- return new DatastoreContextIntrospector(context, newBindingSerializer());
- }
-
- private BindingNormalizedNodeSerializer newBindingSerializer() {
- BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(
- BindingRuntimeContext.create(classLoadingStrategy, schemaService.getGlobalContext()));
- return codecRegistry;
+ DatastoreContextIntrospector newInstance(final DatastoreContext context) {
+ return new DatastoreContextIntrospector(context, serializer);
}
}