1 package org.daisy.pipeline.css;
2
3 import java.io.IOException;
4 import java.util.Collection;
5 import java.util.Collections;
6
7 import javax.xml.transform.Source;
8 import javax.xml.transform.URIResolver;
9
10 import org.daisy.pipeline.css.Medium;
11 import org.daisy.pipeline.css.sass.impl.SassAnalyzer;
12 import org.daisy.pipeline.datatypes.DatatypeRegistry;
13 import org.daisy.pipeline.datatypes.DatatypeService;
14
15
16
17
18 public class CssAnalyzer {
19
20 private final org.daisy.pipeline.css.sass.impl.SassAnalyzer analyzer;
21
22 public CssAnalyzer(Medium medium, URIResolver uriResolver, DatatypeRegistry datatypes) {
23 this(Collections.singleton(medium), uriResolver, datatypes);
24 }
25
26 public CssAnalyzer(Collection<Medium> media, URIResolver uriResolver, DatatypeRegistry datatypes) {
27 analyzer = new SassAnalyzer(media, uriResolver, datatypes);
28 }
29
30
31
32
33
34
35
36
37
38 public Result analyze(Iterable<Source> userAndUserAgentStylesheets, Source sourceDocument) throws IOException {
39 return new Result(analyzer.getVariableDeclarations(userAndUserAgentStylesheets, sourceDocument));
40 }
41
42 public interface SassVariable {
43 public String getName();
44 public String getNiceName();
45 public String getDescription();
46 public String getValue();
47 public boolean isDefault();
48 public DatatypeService getType();
49 }
50
51 public static class Result {
52
53 private final Collection<SassVariable> variables;
54
55 private Result(Collection<? extends SassVariable> variables) {
56 this.variables = Collections.unmodifiableCollection(variables);
57 }
58
59 public Collection<SassVariable> getVariables() {
60 return variables;
61 }
62 }
63 }