package org.uva.qls.ast.sheet;
import java.util.ArrayList;
import java.util.List;
import org.uva.qls.ast.BaseNode;
import org.uva.qls.ast.CodePosition;
import org.uva.qls.ast.style.StyleProperty;
import org.uva.qls.ast.type.Type;
import org.uva.qls.visitor.SheetVisitable;
import org.uva.qls.visitor.SheetVisitor;
public class Style extends BaseNode implements SheetVisitable {
private final Type type;
private final List<StyleProperty> styleProperties;
public Style(Type type, List<StyleProperty> styleProperties, CodePosition pos) {
super(pos);
this.type = type;
this.styleProperties = styleProperties;
}
public Style(Type type, CodePosition pos) {
super(pos);
this.type = type;
this.styleProperties = new ArrayList<StyleProperty>();
}
public Type getType() {
return type;
}
public List<StyleProperty> getStyleProperties() {
return styleProperties;
}
public void addProperty(StyleProperty property) {
styleProperties.add(property);
}
@Override
public <T> T accept(SheetVisitor<T> visitor) {
return visitor.visit(this);
}
}