package nl.uva.softwcons.qls.ast.segment;
import java.util.List;
import java.util.Map;
import nl.uva.softwcons.ql.ast.LineInfo;
import nl.uva.softwcons.ql.ast.expression.identifier.Identifier;
import nl.uva.softwcons.ql.ast.type.Type;
import nl.uva.softwcons.qls.ast.ASTNode;
import nl.uva.softwcons.qls.ast.widgetstyle.StyledWidget;
public class Page implements ASTNode {
private final Identifier id;
private final List<PageSegment> segments;
private final Map<Type, StyledWidget> styles;
public Page(final Identifier id, final List<PageSegment> regions, final Map<Type, StyledWidget> styles) {
this.id = id;
this.segments = regions;
this.styles = styles;
}
public Identifier getId() {
return id;
}
public List<PageSegment> getSegments() {
return segments;
}
public Map<Type, StyledWidget> getStyles() {
return styles;
}
public <T> T accept(final SegmentVisitor<T> visitor) {
return visitor.visit(this);
}
public <T, V> T accept(final SegmentValueVisitor<T, V> visitor, final V value) {
return visitor.visit(this, value);
}
public LineInfo getLineInfo() {
return id.getLineInfo();
}
}