Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titleGenerated 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
titleGenerated 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
titleGenerated 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
titleInput YANG file
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
titleGenerated Java files
File : System.java
public interface System extends AugmentationHolder  {
    String hostName();
    interface SystemBuilder {
        String hostName();
           SystemBuilder hostName(String hostName);
 }
     }
    System build();.
    .
    }.
}

 

Code Block
titleGenerated 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.

...