Bug 1411: Binding specification v2 77/38277/7
authorMartin Ciglan <mciglan@cisco.com>
Mon, 2 May 2016 15:01:27 +0000 (17:01 +0200)
committerRobert Varga <nite@hq.sk>
Thu, 12 May 2016 19:45:21 +0000 (19:45 +0000)
  - added examples

Change-Id: I3ab803f2cf7a53e20edcda601ed6bcc9c0a69ed2
Signed-off-by: Martin Ciglan <mciglan@cisco.com>
Signed-off-by: Filip Gregor <fgregor@cisco.com>
binding2/mdsal-binding2-spec/src/site/asciidoc/binding-2.adoc

index ca0635b24ed9ad39af8a69567b607de9c7180a73..1e344251cf2dc47ad264d01635e980058d341a49 100644 (file)
@@ -308,10 +308,75 @@ Interior node::
 
 === `container` Statement
 
 
 === `container` Statement
 
+Builders will be located in package "dto"
+
+
+[source,yang]
+----
+container foo {
+}
+
+container foo-builder {
+}
+----
+
+[uml, file="container-builder.png"]
+--
+set namespaceSeparator none
+
+interface data.Foo {
+}
+
+interface data.FooBuilder {
+}
+--
+
+In situations where we have a containing element which has as its child a single container, we should make it easy to autobox it. This should not be implemented in the interfaces themselves, but rather should be a method in the associated builder.
+
+[source,yang]
+----
+container example-outter {
+    container example-inner {
+        leaf example {
+            type string;
+        }
+    }
+}
+----
+
 === `list` Statement
 
 ==== Keyed List
 
 === `list` Statement
 
 ==== Keyed List
 
+[source,yang]
+----
+list foo {
+    key identifier;
+    leaf identifier {
+        type union {
+            type string;
+        }
+    }
+}
+----
+
+[uml, file="list-Keyed.png"]
+--
+set namespaceSeparator none
+
+interface data.Foo {
+}
+
+interface key.foo.FooIdentifier {
+}
+
+interface type.foo.identifier.IdentifierUnion {
+}
+
+data.Foo o- key.foo.FooIdentifier
+key.foo.FooIdentifier o- type.foo.identifier.IdentifierUnion
+--
+
 ==== List without Key
 
 === `choice` Statement
 ==== List without Key
 
 === `choice` Statement
@@ -332,8 +397,8 @@ container top {
 }
 ----
 
 }
 ----
 
-[plantuml]
-....
+[uml, file="case.png"]
+--
 set namespaceSeparator none
 
 package spec {
 set namespaceSeparator none
 
 package spec {
@@ -362,7 +427,7 @@ data.top.base.Bar -u-|> data.top.base.Foo
 
 data.Top o- data.top.Base
 data.top.base.Foo o- data.top.base.foo.Foo
 
 data.Top o- data.top.Base
 data.top.base.Foo o- data.top.base.foo.Foo
-....
+--
 
 == Specific rules
 
 
 == Specific rules
 
@@ -470,15 +535,15 @@ grouping simple  { <1>
     with signature `public grp.simple.FooData getFoo();`
 <3> Is represented by getter in `grp.SimpleGrouping` with signature `public String getBar()`
 
     with signature `public grp.simple.FooData getFoo();`
 <3> Is represented by getter in `grp.SimpleGrouping` with signature `public String getBar()`
 
-[plantuml]
-....
+[uml, file="grouping1.png"]
+--
 interface grp.SimpleGrouping {
   + getBar() : String
   + getFoo() : grp.simple.FooData
 }
 interface grp.simple.FooData
 grp.SimpleGrouping o- grp.simple.FooData
 interface grp.SimpleGrouping {
   + getBar() : String
   + getFoo() : grp.simple.FooData
 }
 interface grp.simple.FooData
 grp.SimpleGrouping o- grp.simple.FooData
-....
+--
 ====
 
 ==== Data Node substatements
 ====
 
 ==== Data Node substatements
@@ -540,8 +605,8 @@ container top {
 }
 ----
 
 }
 ----
 
-[plantuml]
-....
+[uml, file="grouping2.png"]
+--
 set namespaceSeparator none
 
 interface grp.SimpleGrouping {
 set namespaceSeparator none
 
 interface grp.SimpleGrouping {
@@ -559,9 +624,9 @@ grp.SimpleGrouping o-- grp.simple.FooData
 data.Top o-- data.top.Foo
 data.Top -|> grp.SimpleGrouping
 data.top.Foo -|> grp.simple.FooData
 data.Top o-- data.top.Foo
 data.Top -|> grp.SimpleGrouping
 data.top.Foo -|> grp.simple.FooData
-....
+--
 
 
-NOTE: Diagram does not show all details for `data.Top`  and `data.top.Foo`, which
+NOTE: Diagram does not show all details for `data.Top` and `data.top.Foo`, which
 are based on <<instantiated-data-tree-rules>>
 
 ====
 are based on <<instantiated-data-tree-rules>>
 
 ====
@@ -586,8 +651,8 @@ container top {
 }
 ----
 
 }
 ----
 
-[plantuml]
-....
+[uml, file="grouping3.png"]
+--
 set namespaceSeparator none
 
 interface grp.withinner.inner.ContData
 set namespaceSeparator none
 
 interface grp.withinner.inner.ContData
@@ -621,7 +686,7 @@ grp.withinner.InnerGrouping o-- grp.withinner.inner.ContData : contains
 
 grp.withinner.ContData -|> grp.withinner.inner.ContData : is concretization of (implements)
 
 
 grp.withinner.ContData -|> grp.withinner.inner.ContData : is concretization of (implements)
 
-....
+--
 
 NOTE: Diagram does not show all details for `data.Top`  and `data.top.Cont`, which
 are based on <<instantiated-data-tree-rules>>
 
 NOTE: Diagram does not show all details for `data.Top`  and `data.top.Cont`, which
 are based on <<instantiated-data-tree-rules>>
@@ -654,8 +719,8 @@ container top {
 
 ----
 
 
 ----
 
-[plantuml]
-....
+[uml, file="grouping4.png"]
+--
 set namespaceSeparator none
 
 interface data.Top
 set namespaceSeparator none
 
 interface data.Top
@@ -673,7 +738,7 @@ grp.ExampleGrouping o-- grp.example.NestedData
 
 data.Top -|> grp.ExampleGrouping
 data.top.Nested -|> grp.example.NestedData
 
 data.Top -|> grp.ExampleGrouping
 data.top.Nested -|> grp.example.NestedData
-....
+--
 
 NOTE: Diagram does not show all details for `data.Top`, `data.top.Nested` and
 `data.top.nested.Bar`, which are based on <<instantiated-data-tree-rules>>
 
 NOTE: Diagram does not show all details for `data.Top`, `data.top.Nested` and
 `data.top.nested.Bar`, which are based on <<instantiated-data-tree-rules>>
@@ -705,8 +770,8 @@ grouping top {
 
 ----
 
 
 ----
 
-[plantuml]
-....
+[uml, file="grouping5.png"]
+--
 set namespaceSeparator none
 
 interface grp.TopGrouping
 set namespaceSeparator none
 
 interface grp.TopGrouping
@@ -723,7 +788,7 @@ grp.ExampleGrouping o-- grp.example.NestedData
 
 grp.TopGrouping -|> grp.ExampleGrouping
 grp.top.NestedData -|> grp.example.NestedData
 
 grp.TopGrouping -|> grp.ExampleGrouping
 grp.top.NestedData -|> grp.example.NestedData
-....
+--
 
 ====
 
 
 ====
 
@@ -790,17 +855,29 @@ container top {
   }
 }
 
   }
 }
 
-.Java representation for both variants
 ----
 ----
-[plantuml]
-....
+.Same module written with grouping
+----
+grouping a {
+    container foo {
+    }
+}
+
+container top {
+    uses a;
+}
+
+----
+Java representation for all variants
+[uml, file="augment1.png"]
+--
 set namespaceSeparator none
 
 interface data.Top
 interface data.top.Foo
 
 data.Top o- data.top.Foo
 set namespaceSeparator none
 
 interface data.Top
 interface data.top.Foo
 
 data.Top o- data.top.Foo
-....
+--
 
 ====
 
 
 ====
 
@@ -832,8 +909,8 @@ module foo {
 
 ----
 
 
 ----
 
-[plantuml]
-....
+[uml,file="augment2.png"]
+--
 set namespaceSeparator none
 
 interface Augmentable<T>
 set namespaceSeparator none
 
 interface Augmentable<T>
@@ -850,7 +927,7 @@ top.data.Top -u-|> Augmentable : T = top.data.Top
 foo.data.FooTop -u-|> Augmentation : T = top.data.Top
 top.data.Top o-- foo.data.FooTop
 foo.data.FooTop o-- foo.data.top.Bar
 foo.data.FooTop -u-|> Augmentation : T = top.data.Top
 top.data.Top o-- foo.data.FooTop
 foo.data.FooTop o-- foo.data.top.Bar
-....
+--
 
 ====
 
 
 ====
 
@@ -885,8 +962,8 @@ module foo {
 
 ----
 
 
 ----
 
-[plantuml]
-....
+[uml,file="augment3.png"]
+--
 set namespaceSeparator none
 
 interface Augmentable<T>
 set namespaceSeparator none
 
 interface Augmentable<T>
@@ -906,8 +983,7 @@ foo.data.FooTop -u-|> Augmentation : T = top.data.Top
 top.data.Top o-- foo.data.FooTop
 foo.data.FooTop o-- foo.data.top.Bar
 foo.data.FooTop o-- foo.data.top.Baz
 top.data.Top o-- foo.data.FooTop
 foo.data.FooTop o-- foo.data.top.Bar
 foo.data.FooTop o-- foo.data.top.Baz
-
-....
+--
 
 ====
 
 
 ====
 
@@ -946,8 +1022,8 @@ module foo {
 
 ----
 
 
 ----
 
-[plantuml]
-....
+[uml, file="augment4.png"]
+--
 set namespaceSeparator none
 
 interface Augmentable<T>
 set namespaceSeparator none
 
 interface Augmentable<T>
@@ -978,6 +1054,23 @@ target.data.Second o-- foo.data.FooSecond
 
 foo.data.FooFirst o-- foo.data.first.Bar
 foo.data.FooSecond o-- foo.data.second.Baz
 
 foo.data.FooFirst o-- foo.data.first.Bar
 foo.data.FooSecond o-- foo.data.second.Baz
+--
+====
 
 
-....
+.Key in grouping
 ====
 ====
+[source,yang]
+----
+grouping nodes {
+    list node {
+        key id;
+        leaf id {
+            type string;
+        }
+    }
+}
+
+----
+grouping key.grp.nodes.node.nodeidentifier
+
+instantiated key.data.nodes.node.nodeidentifier
\ No newline at end of file