...
Code Block |
---|
title | Generated Java files |
---|
|
File : AcmeSystemManager.java
package org.onosproject.yang.gen.v1.http.yang.central.org.ns.example.acme.rev20160526rev20160720;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Service;
import org.slf4j.Logger;
import static org.slf4j.LoggerFactory.getLogger;
@Component (immediate = true)
@Service
public class AcmeSystemManager implements AcmeSystemService {
private final Logger log = getLogger(getClass());
@Activate
public void activate() {
//TODO: YANG utils generated code
log.info("Started");
}
@Deactivate
public void deactivate() {
//TODO: YANG utils generated code
log.info("Stopped");
}
@Override
public StringAcmeSystem getIdgetAcmeSystem() {
//TODO: YANG utils generated code
return null;
}
@Override
public void setIdsetAcmeSystem(StringAcmeSystem idacmeSystem) {
//TODO: YANG utils generated code
}
}
File : AcmeSystemService.java
package org.onosproject.yang.gen.v1.http.yang.central.org.ns.example.acme.rev20160720;
public interface AcmeTypesServiceAcmeSystemService {
AcmeTypesAcmeSystem getAcmeTypesgetAcmeSystem();
void setAcmeTypessetAcmeSystem(AcmeTypesAcmeSystem acmeTypesacmeSystem);
}
File : AcmeTypesManager.java
package org.onosproject.yang.gen.v1.http.yang.central.org.ns.example.acme.rev20160720;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Service;
import org.slf4j.Logger;
import static org.slf4j.LoggerFactory.getLogger;
@Component(immediate = true)
@Service
public class AcmeTypesManager implements AcmeTypesService {
private final Logger log = getLogger(getClass());
@Activate
public void activate() {
//TODO: YANG utils generated code
log.info("Started");
}
@Deactivate
public void deactivate() {
//TODO: YANG utils generated code
log.info("Stopped");
}
@Override
public AcmeTypes getAcmeTypes() {
//TODO: YANG utils generated code
return null;
}
@Override
public void setAcmeTypes(AcmeTypes acmeTypes) {
//TODO: YANG utils generated code
}
}
File : AcmeTypesService.java
package org.onosproject.yang.gen.v1.http.yang.central.org.ns.example.acme.rev20160720;
public interface AcmeTypesService {
AcmeTypes getAcmeTypes();
void setAcmeTypes(AcmeTypes acmeTypes);
} |
...
Code Block |
---|
title | Generated Java files |
---|
|
File : FlowClassifierManager.java
there will be no manager file generation because flowclassifier yang only contains one leaf.
File : FlowClassifierService
package org.onosproject.yang.gen.v1.sfc.flowclassifier.rev20160524;
public interface FlowClassifierService {
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Service;
import FlowClassifier getFlowClassifier();
void setFlowClassifier(FlowClassifier flowClassifier);
}
File : IetfYangTypesManager.java
there will be no manager file generation because yang files contains only typedef.
File : IetfYangTypesService.java
package org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev20100924.ietfyangtypes.Uuid;
import org.slf4j.Logger;
import static org.slf4j.LoggerFactory.getLogger;
@Component (immediate = true)
@Service
public class FlowClassifierManager implements FlowClassifierService {
private final Logger log = getLogger(getClass());
@Activate
public void activate() {
//TODO: YANG utils generated code
log.info("Started");
}
@Deactivate
public void deactivate() {
//TODO: YANG utils generated code
log.info("Stopped");
}
@Override
public Uuid getId() {
//TODO: YANG utils generated code
return null;
}
@Override
public void setId(Uuid id) {
//TODO: YANG utils generated code
}
}
File : FlowClassifierService
package org.onosproject.yang.gen.v1.sfc.flowclassifier.rev20160524;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev20100924.ietfyangtypes.Uuid;
public interface FlowClassifierService {
Uuid getId();
void setId(Uuid id);
}
File : IetfYangTypesManager.java
package org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev20100924;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Service;
import org.slf4j.Logger;
import static org.slf4j.LoggerFactory.getLogger;
@Component (immediate = true)
@Service
public class IetfYangTypesManager implements IetfYangTypesService {
private final Logger log = getLogger(getClass());
@Activate
public void activate() {
//TODO: YANG utils generated code
log.info("Started");
}
@Deactivate
public void deactivate() {
//TODO: YANG utils generated code
log.info("Stopped");
}
}
File : IetfYangTypesService.java
package org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev20100924rev20130715;
public interface IetfYangTypesService {
IetfYangTypes getIetfYangTypes();
void setIetfYangTypes(IetfYangTypes ietfYangTypes);
}
File : Uuid.java
package org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev20100924.ietfyangtypes;
import java.util.Objects;
import com.google.common.base.MoreObjects;
public final class Uuid {
private String string;
private Uuid() {
}
public Uuid(String value) {
this.string = value;
}
public static Uuid of(String value) {
return new Uuid(value);
}
public String string() {
return string;
}
@Override
public int hashCode() {
return Objects.hash(string);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof Uuid) {
Uuid other = (Uuid) obj;
return
Objects.equals(string, other.string);
}
return false;
}
@Override
public String toString() {
return MoreObjects.toStringHelper(getClass())
.add("string", string)
.toString();
}
public static Uuid fromString(String valInString) {
try {
String tmpVal = (valInString);
return of(tmpVal);
} catch (Exception e) {
}
return null;
}
} |
...
Code Block |
---|
title | Generated Java files |
---|
|
File: System.java
public interface System extends AugmentationHolder {
String hostName();
interface SystemBuilder {
String hostName();
SystemBuilder hostName(String hostName);
System build();
}
}
File : SystemBuilderDefaultSystem.java
public class SystemBuilder implements System.SystemBuilder {
private String hostName;
@Override
public String hostName() {
return hostName;
}
@Override
public SystemBuilder hostName(String hostName) {
this.hostName = hostName;
return this;
}
.
.
.
public final class SystemImplpackage org.onosproject.yang.gen.v1.http.acme.example.com.system.rev20070609.acmesystem;
import com.google.common.base.MoreObjects;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import org.onosproject.yangutils.datamodel.YangAugmentedInfo;
public class DefaultSystem implements System {
private Map<Class<?>, YangAugmentedInfo> yangAugmentedInfoMap private= Stringnew hostNameHashMap<>();
protected String @OverridehostName;
@Override
public String hostName() {
return hostName;
}
.
.
.
}
} |
Leaf-list
Overview
A leaf-list is also used for defining scalar variable, like leaf, but in an array of a particular type. The type of the variable can be either built-in type or a derived type.
...
Code Block |
---|
|
File : acme-system.yang
module acme-system {
namespace "http://acme.example.com/system";
prefix "acme";
organization "ACME Inc.";
contact "joe@acme.example.com";
description
"The module for entities implementing the ACME system.";
revision 2007-06-09 {
description "Initial revision.";
}
container system {
leaf-list domain-search {
type string;
description "List of domain names to search";
}
}
.
.
.
} |
Code Block |
---|
title | Generated Java files |
---|
|
File : System.java
public interface System extends AugmentationHolder {
String hostName();
interface SystemBuilder {
String hostName();
SystemBuilder hostName(String hostName);
}
}
System build();.
.
}.
} |
Code Block |
---|
title | Generated Java files |
---|
|
File : SystemBuilderSystem.java
public class SystemBuilder implementsinterface System.SystemBuilder {
private List<String> domainSearchString hostName();
@Override
interface public List<String> domainSearch() SystemBuilder {
returnString domainSearch;
}
hostName();
@Override
public SystemBuilder domainSearchhostName(List<String>String domainSearch) {
this.domainSearch = domainSearchhostName);
returnSystem thisbuild();
}
.
.
.
public final class SystemImpl}
File : DefaultSystemBuilder.java
public class DefaultSystem implements System {
private Map<Class<?>, YangAugmentedInfo> yangAugmentedInfoMap private= List<String>new domainSearchHashMap<>();
protected String @OverridehostName;
@Override
public List<String>String domainSearchhostName() {
return domainSearchhostName;
}
.
.
.
}
} |
Container
Overview
Container is a holder that can hold many nodes within it. It is used for logically grouping certain set of nodes.
...