import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.CompositeNode;
+import com.google.common.base.Optional;
+
public interface BindingIndependentMappingService {
+ /**
+ * Get codec registry.
+ *
+ * @return codec registry
+ */
CodecRegistry getCodecRegistry();
+ /**
+ * Convert given DataObject data to DOM-like node.
+ *
+ * @param data
+ * DataObject instance
+ * @return CompositeNode created from DataObject instance
+ */
CompositeNode toDataDom(DataObject data);
- Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, CompositeNode> toDataDom(
+ /**
+ * Create map entry representing node data (key = data schema node
+ * identifier, value = value is node data representation as Composite node)
+ * from entry representing node class (key = class object identifier, value
+ * = class object).
+ *
+ * @param entry
+ * map entry, where key is class object identifier and value
+ * class object
+ * @return data schema node identifier
+ */
+ Entry<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier, CompositeNode> toDataDom(
Entry<InstanceIdentifier<? extends DataObject>, DataObject> entry);
- org.opendaylight.yangtools.yang.data.api.InstanceIdentifier toDataDom(InstanceIdentifier<? extends DataObject> path);
+ /**
+ * Create data schema node identifier from class object identifier.
+ *
+ * @param path
+ * class object identifier
+ * @return data schema node identifier
+ */
+ org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier toDataDom(InstanceIdentifier<? extends DataObject> path);
- DataObject dataObjectFromDataDom(InstanceIdentifier<? extends DataObject> path, CompositeNode result) throws DeserializationException;
+ /**
+ * Create DataObject instance from CompositeNode data based on given path.
+ *
+ * @param path
+ * node identifier
+ * @param result
+ * node data
+ * @return inputClass instance created from composite node input
+ */
+ DataObject dataObjectFromDataDom(InstanceIdentifier<? extends DataObject> path, CompositeNode result)
+ throws DeserializationException;
- InstanceIdentifier<?> fromDataDom(org.opendaylight.yangtools.yang.data.api.InstanceIdentifier entry) throws DeserializationException;
+ /**
+ * Create class object identifier from data schema node identifier.
+ *
+ * @param entry
+ * data schema node identifier
+ * @return class object identifier
+ */
+ InstanceIdentifier<?> fromDataDom(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier entry)
+ throws DeserializationException;
+ /**
+ * Returns the list of currently-known QNames for instances of a service.
+ *
+ * @param service
+ * RPC service
+ * @return List of QNames. The user may not modify this list.
+ */
Set<QName> getRpcQNamesFor(Class<? extends RpcService> service);
+ /**
+ * Get RpcService by namespace and revision.
+ *
+ * @param namespace
+ * rpc service namespace
+ * @param revision
+ * rpc service revision
+ * @return Optional reference on RpcServices based on given namespace and
+ * revision
+ */
+ Optional<Class<? extends RpcService>> getRpcServiceClassFor(String namespace, String revision);
+
+ /**
+ * Create inputClass instance from CompositeNode data.
+ *
+ * @param inputClass
+ * expected type of resulting object
+ * @param domInput
+ * node data
+ * @return inputClass instance created from composite node input
+ */
DataContainer dataObjectFromDataDom(Class<? extends DataContainer> inputClass, CompositeNode domInput);
}