--- /dev/null
+@*
+ * Copyright (c) 2017 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *@
+
+@**********************************************************
+* Twirl YangTemplate for generating yang snippets. *
+* Twirl is transformed to Scala and compiled. Then, *
+* it can be called from Java with particular input *
+* parameters to render desired output code. *
+***********************************************************@
+
+@import org.opendaylight.yangtools.yang.model.api.TypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.BinaryTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.BitsTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.BooleanTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.DecimalTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.EmptyTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.EnumTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.IdentityrefTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.IdentityTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.InstanceIdentifierTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.Int8TypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.Int16TypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.Int32TypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.Int64TypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.LeafrefTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.StringTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.Uint8TypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.Uint16TypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.Uint32TypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.Uint64TypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.UnionTypeDefinition
+@import org.opendaylight.yangtools.yang.model.api.`type`.UnknownTypeDefinition
+
+@(typeDefinition: TypeDefinition[_])
+ @if(typeDefinition.getBaseType() != null) {
+ @if(typeDefinition.isInstanceOf[BinaryTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[BinaryTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[BitsTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[BitsTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[BooleanTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[BooleanTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[DecimalTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[DecimalTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[EmptyTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[EmptyTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[EnumTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[EnumTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[IdentityrefTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[IdentityrefTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[IdentityTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[IdentityTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[InstanceIdentifierTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[InstanceIdentifierTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[Int8TypeDefinition]){
+ type @(typeDefinition.asInstanceOf[Int8TypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[Int16TypeDefinition]){
+ type @(typeDefinition.asInstanceOf[Int16TypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[Int32TypeDefinition]){
+ type @(typeDefinition.asInstanceOf[Int32TypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[Int64TypeDefinition]){
+ type @(typeDefinition.asInstanceOf[Int64TypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[LeafrefTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[LeafrefTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[StringTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[StringTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[UnionTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[UnionTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[UnknownTypeDefinition]){
+ type @(typeDefinition.asInstanceOf[UnknownTypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[Uint8TypeDefinition]){
+ type @(typeDefinition.asInstanceOf[Uint8TypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[Uint16TypeDefinition]){
+ type @(typeDefinition.asInstanceOf[Uint16TypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[Uint32TypeDefinition]){
+ type @(typeDefinition.asInstanceOf[Uint32TypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ @if(typeDefinition.isInstanceOf[Uint64TypeDefinition]){
+ type @(typeDefinition.asInstanceOf[Uint64TypeDefinition].getBaseType().getQName().getLocalName());
+ }
+ } else {
+ type @(typeDefinition.getQName().getLocalName());
+ }
+