package me.tomassetti.turin.parser.ast.expressions.relations;
import me.tomassetti.turin.parser.ast.Node;
import me.tomassetti.turin.parser.ast.expressions.Expression;
import me.tomassetti.turin.parser.ast.relations.RelationDefinition;
import me.tomassetti.turin.parser.ast.relations.RelationFieldDefinition;
import me.tomassetti.turin.symbols.Symbol;
import me.tomassetti.turin.typesystem.TypeUsage;
// This is a Symbol, not a Node
public class AccessEndpoint extends Expression {
private Symbol instance;
private RelationFieldDefinition relationField;
public Symbol getInstance() {
return instance;
}
public RelationFieldDefinition getRelationField() {
return relationField;
}
public AccessEndpoint(Symbol instance, RelationFieldDefinition relationField) {
this.instance = instance;
this.relationField = relationField;
}
@Override
public Iterable<Node> getChildren() {
throw new UnsupportedOperationException();
}
@Override
public TypeUsage calcType() {
return relationField.calcType();
}
public RelationDefinition getRelationDefinition() {
return relationField.getRelationDefinition();
}
}