import org.opendaylight.mdsal.binding.model.api.Type
import org.opendaylight.mdsal.binding.model.api.TypeMemberComment
import org.opendaylight.mdsal.binding.model.ri.TypeConstants
-import org.opendaylight.mdsal.binding.spec.naming.BindingMapping
import org.opendaylight.yangtools.yang.binding.BaseIdentity
+import org.opendaylight.yangtools.yang.binding.contract.Naming
+import org.opendaylight.yangtools.yang.common.YangDataName
-abstract class BaseTemplate extends JavaFileTemplate {
+abstract class BaseTemplate extends AbstractBaseTemplate {
static final char NEW_LINE = '\n'
static final char SPACE = ' '
static val WS_MATCHER = CharMatcher.anyOf("\n\t")
super(javaType, type)
}
- final def generate() {
- val _body = body()
- '''
- package «type.packageName»;
- «generateImportBlock»
-
- «_body»
- '''.toString
- }
-
- protected abstract def CharSequence body();
-
// Helper patterns
- final protected def fieldName(GeneratedProperty property) {
- "_" + property.name
- }
-
/**
* Template method which generates the getter method for <code>field</code>
*
}
'''
- final protected def getterMethodName(GeneratedProperty field) {
- return field.name.getterMethodName
- }
-
- final protected def getterMethodName(String propName) {
- return '''«BindingMapping.GETTER_PREFIX»«propName.toFirstUpper»'''
- }
-
/**
* Template method which generates the setter method for <code>field</code>
*
»'''
def protected emitConstant(Constant c) '''
- «IF BindingMapping.QNAME_STATIC_FIELD_NAME.equals(c.name)»
+ «IF Naming.QNAME_STATIC_FIELD_NAME.equals(c.name)»
«val entry = c.value as Entry<JavaTypeName, String>»
/**
* YANG identifier of the statement represented by this class.
*/
- public static final «c.type.importedNonNull» «c.name» = «entry.key.importedName».«BindingMapping.MODULE_INFO_QNAMEOF_METHOD_NAME»("«entry.value»");
- «ELSEIF BindingMapping.VALUE_STATIC_FIELD_NAME.equals(c.name) && BaseIdentity.equals(c.value)»
+ public static final «c.type.importedNonNull» «c.name» = «entry.key.importedName».«Naming.MODULE_INFO_QNAMEOF_METHOD_NAME»("«entry.value»");
+ «ELSEIF Naming.NAME_STATIC_FIELD_NAME.equals(c.name)»
+ «val entry = c.value as Entry<JavaTypeName, YangDataName>»
+ /**
+ * Yang Data template name of the statement represented by this class.
+ */
+ public static final «c.type.importedNonNull» «c.name» = «entry.key.importedName».«Naming.MODULE_INFO_YANGDATANAMEOF_METHOD_NAME»("«entry.value.name»");
+ «ELSEIF Naming.VALUE_STATIC_FIELD_NAME.equals(c.name) && BaseIdentity.equals(c.value)»
«val typeName = c.type.importedName»
«val override = OVERRIDE.importedName»
/**
*/
public static final «c.type.importedNonNull» «c.name» = new «typeName»() {
@«override»
- public «CLASS.importedName»<«typeName»> «BindingMapping.BINDING_CONTRACT_IMPLEMENTED_INTERFACE_NAME»() {
+ public «CLASS.importedName»<«typeName»> «Naming.BINDING_CONTRACT_IMPLEMENTED_INTERFACE_NAME»() {
return «typeName».class;
}
@«override»
public boolean equals(final «objectType.importedName» obj) {
return obj == this || obj instanceof «typeName» other
- && «typeName».class.equals(other.«BindingMapping.BINDING_CONTRACT_IMPLEMENTED_INTERFACE_NAME»());
+ && «typeName».class.equals(other.«Naming.BINDING_CONTRACT_IMPLEMENTED_INTERFACE_NAME»());
}
@«override»
def protected generateCheckers(GeneratedProperty field, Restrictions restrictions, Type actualType) '''
«IF restrictions.rangeConstraint.present»
«AbstractRangeGenerator.forType(actualType).generateRangeChecker(field.name.toFirstUpper,
- restrictions.rangeConstraint.get, this)»
+ restrictions.rangeConstraint.orElseThrow, this)»
«ENDIF»
«IF restrictions.lengthConstraint.present»
- «LengthGenerator.generateLengthChecker(field.fieldName, actualType, restrictions.lengthConstraint.get, this)»
+ «LengthGenerator.generateLengthChecker(field.fieldName, actualType, restrictions.lengthConstraint.orElseThrow, this)»
«ENDIF»
'''
«ENDIF»
«ENDIF»
- «val fieldUpperCase = fieldName.toUpperCase(Locale.ENGLISH)»
+ «val fieldUpperCase = fieldName.toUpperCase(Locale.ROOT)»
«FOR currentConstant : type.getConstantDefinitions»
«IF currentConstant.getName.startsWith(TypeConstants.PATTERN_CONSTANT_NAME)
&& fieldUpperCase.equals(currentConstant.getName.substring(TypeConstants.PATTERN_CONSTANT_NAME.length))»