blob: 8df19c7a507d62782f94a21a259e2b11b786c261 [file] [log] [blame]
/*
* Copyright 2016-present Open Networking Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.yms.app.ytb;
import org.onosproject.yms.app.ydt.YdtExtendedBuilder;
import org.onosproject.yms.app.ydt.YdtExtendedContext;
import org.onosproject.yms.app.ysr.YangSchemaRegistry;
import org.onosproject.yms.ydt.YmsOperationType;
import java.util.List;
/**
* Abstraction of an entity which provides interfaces to build YANG data tree
* from the object received from YNH, YAB or YCH.
*/
public interface YangTreeBuilder {
/**
* Returns the YDT builder after building the tree corresponding to the
* response YANG object received from any of the protocol such as YAB or
* YCH.
*
* @param moduleObj application module object
* @param rootName logical root node name
* @param rootNameSpace logical root node namespace
* @param opType root node operation type
* @param registry application schema registry
* @return YDT builder from the tree
*/
YdtExtendedBuilder getYdtBuilderForYo(List<Object> moduleObj,
String rootName,
String rootNameSpace,
YmsOperationType opType,
YangSchemaRegistry registry);
/**
* Returns the YDT context after building the tree received from the
* protocol YNH.
*
* @param object application notification object
* @param rootName logical root node name
* @param registry application schema registry
* @return YDT context from the tree
*/
YdtExtendedContext getYdtForNotification(Object object, String rootName,
YangSchemaRegistry registry);
/**
* Returns the YDT context after building the RPC response tree. The input
* for building the tree is RPC request builder, RPC output java object.
* These are received from the YSB protocol.
*
* @param outputObj application output object
* @param reqBuilder RPC request builder from YDT
* @return YDT builder where RPC response tree is created
*/
YdtExtendedBuilder getYdtForRpcResponse(Object outputObj,
YdtExtendedBuilder reqBuilder);
}