X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-dom-codec%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fcodec%2Fimpl%2FCodecItemFactory.java;fp=binding%2Fmdsal-binding-dom-codec%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fcodec%2Fimpl%2FCodecItemFactory.java;h=0000000000000000000000000000000000000000;hb=3d676380c8de62b31c20b23d73553763a82aa596;hp=bc0eb020c9dc68ea6c89dcdfefa46fbeecaff8f2;hpb=2ebd1ffea30f1bcb7bce58fe05c6ede52e28dbcd;p=mdsal.git diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CodecItemFactory.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CodecItemFactory.java deleted file mode 100644 index bc0eb020c9..0000000000 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CodecItemFactory.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2023 PANTHEON.tech, s.r.o. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.mdsal.binding.dom.codec.impl; - -import static java.util.Objects.requireNonNull; - -import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.binding.DataObjectStep; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.model.api.AddedByUsesAware; -import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; - -sealed class CodecItemFactory { - private static final class Case extends CodecItemFactory { - private final Class bindingClass; - - Case(final Class bindingClass) { - this.bindingClass = requireNonNull(bindingClass); - } - - @Override - @SuppressWarnings({ "rawtypes", "unchecked" }) - DataObjectStep createItem(final Class childClass, final EffectiveStatement childSchema) { - // FIXME: MDSAL-697: see overridden method for further guidance - return childSchema instanceof AddedByUsesAware aware && aware.isAddedByUses() - ? InstanceIdentifier.createStep((Class) bindingClass, (Class) childClass) - : super.createItem(childClass, childSchema); - } - } - - private static final @NonNull CodecItemFactory DEFAULT = new CodecItemFactory(); - - private CodecItemFactory() { - // Hidden on purpose - } - - // FIXME: MDSAL-697: move this method into BindingRuntimeContext - // This method is only called from loadChildPrototype() and exists only to be overridden by - // CaseNodeCodecContext. Since we are providing childClass and our schema to BindingRuntimeContext and - // receiving childSchema from it via findChildSchemaDefinition, we should be able to receive the equivalent - // of Map.Entry, along with the override we create here. One more input we may need to - // provide is our bindingClass(). - DataObjectStep createItem(final Class childClass, final EffectiveStatement childSchema) { - return InstanceIdentifier.createStep((Class) childClass); - } - - static @NonNull CodecItemFactory of() { - return DEFAULT; - } - - static @NonNull CodecItemFactory of(final Class bindingClass) { - return new Case(bindingClass); - } -}