blob: 3073d88f1b8d0dad19979123caacc41dbef8919f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
package hu.bme.mit.inf.dslreasoner.logic.model.builder
import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory
import java.util.List
import java.util.LinkedList
import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable
import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDescriptor
class VariableContext {
val extension LogiclanguageFactory language;
val extension LogicProblemBuilder logicProblemBuilder;
new(LogicProblemBuilder logicProblemBuilder, LogiclanguageFactory language) {
this.logicProblemBuilder = logicProblemBuilder
this.language = language
}
private List<Variable> variables = new LinkedList;
def public getVariables(){variables}
//def public -(TypeDescriptor type) { Variable(type) }
def public Variable addVar(TypeDescriptor type) {
return addVar(null, type);
}
def public Variable addVar(CharSequence variableName, TypeDescriptor type) {
if(variables.exists[name.equals(variableName)]) throw new IllegalArgumentException("Variable with name " + variableName +" is already defined.")
val variable = createVariable => [name = variableName.canonize range = type.toTypeReference]
variables += variable
return variable
}
}
|