Versions Compared

Key

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

...

During YANG to java conversion, wherever the contents of grouping is present a class as similar as to that of a container is created.Wherever uses is present object of this class is used as an attributecopied wherever uses statement is used and code will be generated for nodes inside grouping wherever it is used.

Example
Code Block
titleInput YANG file
module Test {
    namespace "http://test.example.com/";
    prefix "test";
    organization "ACME Inc.";
    grouping endpoint { 
        leaf address {
            type int32; 
        } 
        leaf port {
            type int8; 
        }
    }
    container connection { 
        container source {
            uses endpoint;
        }
        container destination {
            uses endpoint;
        }
    }
    .
    .
    .
}
Code Block
titleGenerated Java files
File : Endpoint.java
Connection.java
package org.onosproject.yang.gen.v1.http.test.example.com.rev20160718.test;

import org.onosproject.yang.gen.v1.http.test.example.com.rev20160718.test.connection.Source;

public interface EndpointConnection {

    .
    .
    .Source source();

    interface EndpointBuilderConnectionBuilder {

    .
    Source .source();

    .
    }
}

File : EndpointBuilder.java
public class EndpointBuilder implements Endpoint.EndpointBuilder {
    .ConnectionBuilder source(Source source);

        Connection build();
    .}
}

File :   Source.java
    public final class EndpointImpl implements Endpoint {
    .
    .
    .
    }
}

File : Source.java

package org.onosproject.yang.gen.v1.http.test.example.com.rev20160718.test.connection;

public interface Source extends AugmentationHolder  {

    .
    .
    .int address();

    Endpointbyte endpointport();

    interface SourceBuilder {

     .
   int .
    .address();

        Endpointbyte endpointport();

        SourceBuilder endpointaddress(Endpointint endpointaddress);

    }
}

File : SourceBuilder.java
public class SourceBuilder implements Source.SourceBuilder {
    private Endpoint endpointport(byte port);

    @Override
    publicSource Endpoint endpointbuild() {
        return endpoint;
    }

    @Override
    public SourceBuilder endpoint(Endpoint endpoint) {
        this.endpoint = endpoint;
        return this;
    }
    .
    .
    .
    public final class SourceImpl implements Source {
        private Endpoint endpoint;

        @Override
        public Endpoint endpoint() {
            return endpoint;
        }
    .
    .
    .
    }
}

File : Destination.java
public interface Destination extends AugmentationHolder  {
    .
    .
    .
    Endpoint endpoint();
    interface DestinationBuilder {
    .
    .
    .
       Endpoint endpoint();
       DestinationBuilder endpoint(Endpoint endpoint);

    }
}

File : DestinationBuilder.java
public class DestinationBuilder implements Destination.DestinationBuilder {
    private Endpoint endpoint;

    @Override
    public Endpoint endpoint() {
        return endpoint;
    }

    @Override
    public DestinationBuilder endpoint(Endpoint endpoint) {
        this.endpoint = endpoint;
        return this;
    }
    .
    .
    .
    public final class DestinationImpl implements Destination {
        private Endpoint endpoint;

        @Override
        public Endpoint endpoint() {
            return endpoint;
        }
    .
    .
    .
    }
}

 

Choice and case

Overview

...