package xapi.dev.ui; import com.github.javaparser.ast.expr.CssContainerExpr; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; /** * A place to put all of the extractable style information found per ui component * * Created by James X. Nelson (james @wetheinter.net) on 8/21/16. */ public class StyleMetadata { private List<CssContainerExpr> rules; private List<CssContainerExpr> applied; private Set<String> classNames; private boolean hasDynamicRules; public StyleMetadata() { classNames = new LinkedHashSet<>(); rules = new ArrayList<>(); } public boolean hasDynamicRules() { return hasDynamicRules; } public void setDynamicRules(boolean hasDynamicRules) { this.hasDynamicRules = hasDynamicRules; } public void addClassName(String cls) { classNames.add(cls); } public void addClassNames(String ... classes) { classNames.addAll(Arrays.asList(classes)); } public void addClassNames(Iterable<String> classes) { classes.forEach(classNames::add); } public void addRules(Iterable<CssContainerExpr> cssRules) { if (cssRules instanceof Collection) { rules.addAll((Collection<CssContainerExpr>)cssRules); } else { cssRules.forEach(rules::add); } } public void addApplied(Iterable<CssContainerExpr> cssRules) { if (cssRules instanceof Collection) { applied.addAll((Collection<CssContainerExpr>)cssRules); } else { cssRules.forEach(applied::add); } } public Set<String> getClassNames() { return classNames; } public List<CssContainerExpr> getRules() { return rules; } }