package org.uva.qls.ast.style; import java.util.Arrays; import org.uva.qls.ast.CodePosition; import org.uva.qls.ast.literal.Literal; import org.uva.qls.ast.literal.StrLiteral; import org.uva.qls.visitor.StyleVisitor; public class Font extends StyleProperty { // Supported Fonts, make sure to change it in the grammar too. private final String[] supportedFont = { "Arial" }; private final StrLiteral font; public Font(StrLiteral font, CodePosition pos) { super(pos); this.font = font; } public Font(String font, CodePosition pos) { super(pos); this.font = new StrLiteral(font, pos); } @Override public <T> T accept(StyleVisitor<T> visitor) { return visitor.visit(this); } @Override public Literal getLiteral() { return font; } @Override public String toString() { return "Font<" + font.toString() + ">"; } @SuppressWarnings("unchecked") public Boolean isValid() { if (Arrays.asList(supportedFont).contains(font.getStringValue())) { return true; } return false; } }