Fix yang module naming
[mdsal.git] / binding2 / mdsal-binding2-java-api-generator / src / main / twirl / org / opendaylight / mdsal / binding / javav2 / java / api / yang / yangTemplateForNode.scala.txt
1 @*
2  * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  *@
8
9 @**********************************************************
10 * Twirl YangTemplate for generating yang snippets.        *
11 * Twirl is transformed to Scala and compiled. Then,       *
12 * it can be called from Java with particular input        *
13 * parameters to render desired output code.               *
14 ***********************************************************@
15
16 @import org.opendaylight.yangtools.yang.model.api.DataSchemaNode
17 @import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition
18 @import org.opendaylight.yangtools.yang.model.api.FeatureDefinition
19 @import org.opendaylight.yangtools.yang.model.api.GroupingDefinition
20 @import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode
21 @import org.opendaylight.yangtools.yang.model.api.Module
22 @import org.opendaylight.yangtools.yang.model.api.NotificationDefinition
23 @import org.opendaylight.yangtools.yang.model.api.RpcDefinition
24 @import org.opendaylight.yangtools.yang.model.api.SchemaNode
25 @import org.opendaylight.yangtools.yang.model.api.TypeDefinition
26 @import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode
27 @import org.opendaylight.yangtools.yang.model.api.Status
28 @import org.opendaylight.yangtools.yang.model.api.`type`.EnumTypeDefinition
29 @import org.opendaylight.yangtools.yang.model.api.`type`.EnumTypeDefinition.EnumPair
30
31 @(node: SchemaNode, module: Module)
32 @if(node != null) {
33     @generateYangSnippet(node, module)
34 }
35
36 @generateYangSnippet(node: SchemaNode, module: Module) = {
37     @if(node.isInstanceOf[DataSchemaNode]) {
38         @yangTemplateWriteDataSchemaNode(node.asInstanceOf[DataSchemaNode], module)
39     }
40     @if(node.isInstanceOf[EnumTypeDefinition.EnumPair]) {
41         enum @{node.asInstanceOf[EnumTypeDefinition.EnumPair].getName()} {
42             @if(node.asInstanceOf[EnumTypeDefinition.EnumPair].getValue() != null) {
43                 value @{node.asInstanceOf[EnumTypeDefinition.EnumPair].getValue()};
44             } else {
45             ;
46             }
47         }
48     }
49     @if(node.isInstanceOf[ExtensionDefinition]) {
50         @yangTemplateWriteExtension(node.asInstanceOf[ExtensionDefinition])
51     }
52     @if(node.isInstanceOf[FeatureDefinition]) {
53         @yangTemplateWriteFeature(node.asInstanceOf[FeatureDefinition])
54     }
55     @if(node.isInstanceOf[GroupingDefinition]) {
56         @yangTemplateWriteGroupingDef(node.asInstanceOf[GroupingDefinition], module)
57     }
58     @if(node.isInstanceOf[IdentitySchemaNode]) {
59         @yangTemplateWriteIdentity(node.asInstanceOf[IdentitySchemaNode])
60     }
61     @if(node.isInstanceOf[NotificationDefinition]) {
62         @yangTemplateWriteNotification(node.asInstanceOf[NotificationDefinition], module)
63     }
64     @if(node.isInstanceOf[RpcDefinition]) {
65         @yangTemplateWriteRPC(node.asInstanceOf[RpcDefinition], module)
66     }
67     @if(node.isInstanceOf[TypeDefinition[_]]) {
68     type @{node.asInstanceOf[TypeDefinition[_]].getQName().getLocalName()}
69         @if(node.asInstanceOf[TypeDefinition[_]].getStatus() != Status.CURRENT) {
70             status @{node.asInstanceOf[TypeDefinition[_]].getStatus()};
71         } else {
72         ;
73         }
74     }
75     @if(node.isInstanceOf[UnknownSchemaNode]) {
76         @yangTemplateWriteUnknownSchemaNode(node.asInstanceOf[UnknownSchemaNode], module)
77     }
78 }