org.onosproject.yang.runtime.RuntimeContext Maven / Gradle / Ivy
/*
* Copyright 2017-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.yang.runtime;
import java.util.List;
/*
* Example usage of getProtocolAnnotations.
* Reference 6241:
*
*
*
*
*
*
*
*
* Ethernet0/0
* 1500
*
* 192.0.2.4
* 24
*
*
*
*
*
*
* In above example annotation inside is associated with protocol.
* YANG related data has dependency on the same.
*/
/**
* Abstraction of an entity that is representation of YANG runtime service
* context information.
*/
public interface RuntimeContext {
/**
* Returns data format.
*
* @return data format
*/
String getDataFormat();
/**
* Returns dependent annotations which are present as a part of protocol
* specific information and YANG related data could have dependency on
* the same.
*
* @return list of annotations
*/
List getProtocolAnnotations();
/**
* Abstraction of runtime context builder.
*/
interface Builder {
/**
* Sets data format.
*
* @param dataFormat data format
* @return builder
*/
Builder setDataFormat(String dataFormat);
/**
* Adds an annotation.
*
* @param annotation annotation
* @return builder
*/
Builder addAnnotation(Annotation annotation);
/**
* Builds an instance of runtime context.
*
* @return runtime context
*/
RuntimeContext build();
}
}