1   package org.daisy.pipeline.css;
2   
3   import javax.xml.namespace.QName;
4   import javax.xml.transform.URIResolver;
5   
6   import org.daisy.common.transform.XMLTransformer;
7   
8   /**
9    * Used by the <a
10   * href="http://daisy.github.io/pipeline/modules/css-utils/src/main/resources/xml/css-cascade.xpl"
11   * class="apidoc"><code>px:css-cascade</code></a> step to inline CSS style sheets in XML.
12   *
13   * <p>The known implementations are:</p>
14   * <ul>
15   *   <li><a href="http://daisy.github.io/pipeline/modules/braille/braille-css-utils/src/main/README.html"
16   *          class="apidoc">Medium <b>embossed</b></a></li>
17   * </ul>
18   */
19  public interface CssCascader {
20  
21  	public boolean supportsMedium(Medium medium);
22  
23  	/**
24  	 * @param multipleAttrs When {@code true}, cascade the styles into multiple attributes per
25  	 *                      element. In this case the namespace and prefix of {@code attributeName}
26  	 *                      are used for the attributes, the local part is ignored.
27  	 */
28  	public XMLTransformer newInstance(Medium medium,
29  	                                  String userAndUserAgentStylesheets,
30  	                                  URIResolver uriResolver,
31  	                                  CssPreProcessor preProcessor,
32  	                                  XsltProcessor xsltProcessor,
33  	                                  QName attributeName,
34  	                                  boolean multipleAttrs);
35  
36  }