xTend: How to stop a variable from printing in output?
xtend
Solution
In your example there is no use for `counter`. So it is hard to guess what your real usecase is. In most cases some calculation based on `i` is enought, eliminating `counter` completely. Orionll's answer is pointing in that direction.
If however `counter` is something which cannot be computed from `i` but is some accumulated state, then the simplest thing is to extract that state into a custom class and to modify this state using `void` methods. In this example the generated `void setCounter(int)` method is used.
class Example {
def static void main(String[] args) {
println(generate)
}
def static generate() '''
«var state = new State(0)»
«FOR i : 0 ..< 10»
Line Numnber: «i»
«state.setCounter(state.counter + 1)»
«ENDFOR»
'''
}
class State {
@Property
var int counter
new(int counter){
this.counter = counter
}
}
Problem
Lets say you have the following code in xTend: ``` class StackOverflowGenerator { def generate()''' «var counter = 0» «FOR i : 0 ..<10» Line Numnber: «i» «counter = counter + 1» «ENDFOR» ''' } ``` This will generate output in the format: ``` Line Numnber: 0 1 Line Numnber: 1 2 Line Numnber: 2 3 Line Numnber: 3 ... ``` How do I get xTend to not print the line with just the counter and only print the Line Number line such that the output looks like: ``` Line Numnber: 0 Line Numnber: 1 Line Numnber: 2 Line Numnber: 3 ... ```