Pulled up some methods for broader reuse

This commit is contained in:
Lukas Eder 2013-05-03 15:54:33 +02:00
parent 392c2e158c
commit 92d26fd221
2 changed files with 42 additions and 16 deletions

View File

@ -356,4 +356,46 @@ abstract class Generators {
def degreeOr(int degree, String or) {
return if (degree == 0) or else degree
}
/**
* The generic type of a class, e.g. <code>""</code> or <code>&lt;T1, T2, T3></code>
*/
def type(int degree) {
type(degree, "")
}
/**
* The generic type of a class, e.g. <code>""</code> or <code>&lt;T1, T2, T3></code>
*/
def type(int degree, String spacer) {
'''«IF degree > 0»<«TN(degree)»>«spacer»«ENDIF»'''
}
/**
* The generic type suffix of a class, e.g. <code>N</code> or <code>3&lt;T1, T2, T3></code>
*/
def typeSuffix(int degree) {
'''«typeSuffixRaw(degree)»«type(degree)»'''
}
/**
* The "raw" generic type suffix of a class, e.g. <code>N</code> or <code>3</code>
*/
def typeSuffixRaw(int degree) {
'''«degreeOrN(degree)»'''
}
/**
* The generic type suffix of a record, e.g. <code>""</code> or <code>3&lt;T1, T2, T3></code>
*/
def recTypeSuffix(int degree) {
'''«recTypeSuffixRaw(degree)»«type(degree)»'''
}
/**
* The "raw" generic type suffix of a record, e.g. <code>""</code> or <code>3</code>
*/
def recTypeSuffixRaw(int degree) {
'''«degreeOr(degree)»'''
}
}

View File

@ -48,22 +48,6 @@ class Rows extends Generators {
rows.generateRowImpl();
}
def typeSuffix(int degree) {
'''«degreeOrN(degree)»«IF degree > 0»<«TN(degree)»>«ENDIF»'''
}
def typeSuffixRaw(int degree) {
'''«degreeOrN(degree)»'''
}
def recTypeSuffix(int degree) {
'''«degreeOr(degree)»«IF degree > 0»<«TN(degree)»>«ENDIF»'''
}
def recTypeSuffixRaw(int degree) {
'''«degreeOr(degree)»'''
}
def generateRowClasses() {
for (degree : (0..Constants::MAX_ROW_DEGREE)) {
val out = new StringBuilder();