package org.opendaylight.mdsal.binding.javav2.runtime.context;
import com.google.common.annotations.Beta;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Optional;
import java.util.Set;
import javax.annotation.Nullable;
import org.opendaylight.mdsal.binding.javav2.generator.api.ClassLoadingStrategy;
import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.GeneratedTypeBuilder;
import org.opendaylight.mdsal.binding.javav2.runtime.context.util.BindingSchemaContextUtils;
import org.opendaylight.mdsal.binding.javav2.runtime.reflection.BindingReflections;
+import org.opendaylight.mdsal.binding.javav2.spec.base.Action;
+import org.opendaylight.mdsal.binding.javav2.spec.base.Rpc;
import org.opendaylight.mdsal.binding.javav2.spec.structural.Augmentation;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
+import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AugmentationTarget;
import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.OperationDefinition;
+import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
private final Multimap<Type, AugmentationSchemaNode> augmentationToSchemas = HashMultimap.create();
private final BiMap<SchemaPath,Type> targetToAugmentation = HashBiMap.create();
- private final BiMap<Type, Object> typeToDefiningSchema = HashBiMap.create();
+ private final BiMap<Type, WithStatus> typeToDefiningSchema = HashBiMap.create();
private final Multimap<Type, Type> choiceToCases = HashMultimap.create();
private final Map<QName, Type> identities = new HashMap<>();
return (DataSchemaNode) this.typeToDefiningSchema.get(referencedType(cls));
}
+ public RpcDefinition getRpcDefinition(final Class<? extends Rpc<?, ?>> cls) {
+ return (RpcDefinition) typeToDefiningSchema.get(referencedType(cls));
+ }
+
+ public ActionDefinition getActionDefinition(final Class<? extends Action<?, ?, ?, ?>> cls) {
+ return (ActionDefinition) typeToDefiningSchema.get(referencedType(cls));
+ }
+
/**
* Returns defining {@link AugmentationSchemaNode} of target for supplied class.
*
* - resolved parent choice schema
* @param childClass
* - class representing case.
- * @return Optionally a resolved case schema, absent if the choice is not
+ * @return Optionally a resolved case schema,.empty if the choice is not
* legal in the given context.
* @throws IllegalArgumentException
* - if supplied class does not represent case