1
2
3
4
5 package org.daisy.pipeline.css.calabash.impl;
6
7 public class CssCascadeStep_Provider_SPI
8 implements org.daisy.common.spi.ServiceWithProperties
9 , org.daisy.common.xproc.calabash.XProcStepProvider
10 {
11
12 private static final org.slf4j.Logger spi_log = org.slf4j.LoggerFactory.getLogger(CssCascadeStep_Provider_SPI.class);
13
14 private final java.util.Map spi_props;
15 private boolean spi_deactivated = false;
16
17 private final org.daisy.pipeline.css.calabash.impl.CssCascadeStep.Provider delegate;
18
19 public CssCascadeStep_Provider_SPI() {
20 delegate = new org.daisy.pipeline.css.calabash.impl.CssCascadeStep.Provider();
21 spi_log.trace("Creating CssCascadeStep.Provider");
22 spi_props = new java.util.HashMap();
23 spi_props.put("component.name", "pxi:css-cascade");
24 spi_props.put("type", "{http://www.daisy.org/ns/pipeline/xproc/internal}css-cascade");
25 {
26 spi_log.trace("Binding javax.xml.transform.URIResolver services...");
27
28 int minRef = 1;
29 int maxRef = 1;
30 int refCount = 0;
31 try {
32 java.util.Iterator<javax.xml.transform.URIResolver> services
33 = org.daisy.common.spi.ServiceLoader.load(javax.xml.transform.URIResolver.class).iterator();
34 while (services.hasNext()) {
35 try {
36 javax.xml.transform.URIResolver service = services.next();
37 delegate.setUriResolver(service);
38 spi_log.trace("Bound javax.xml.transform.URIResolver service: "
39 + service.getClass().getName() + "@"
40 + Integer.toHexString(System.identityHashCode(service)));
41 refCount++;
42 if (maxRef > 0 && refCount == maxRef)
43 break;
44 } catch (Throwable e) {
45 spi_log.error("Error while binding javax.xml.transform.URIResolver service", e);
46 }
47 }
48 } catch (Throwable e) {
49 spi_log.error("Error while binding javax.xml.transform.URIResolver services", e);
50 }
51 if (refCount < minRef) {
52 spi_log.warn("No javax.xml.transform.URIResolver found");
53 throw new RuntimeException("No javax.xml.transform.URIResolver found");
54 } else {
55 spi_log.trace("Bound " + refCount + " javax.xml.transform.URIResolver services.");
56 }
57 }
58 {
59 spi_log.trace("Binding org.daisy.pipeline.css.CssCascader services...");
60
61 int minRef = 0;
62 int maxRef = -1;
63 int refCount = 0;
64 try {
65 java.util.Iterator<org.daisy.pipeline.css.CssCascader> services
66 = org.daisy.common.spi.ServiceLoader.load(org.daisy.pipeline.css.CssCascader.class).iterator();
67 while (services.hasNext()) {
68 try {
69 org.daisy.pipeline.css.CssCascader service = services.next();
70 delegate.bindCssCascader(service);
71 spi_log.trace("Bound org.daisy.pipeline.css.CssCascader service: "
72 + service.getClass().getName() + "@"
73 + Integer.toHexString(System.identityHashCode(service)));
74 refCount++;
75 if (maxRef > 0 && refCount == maxRef)
76 break;
77 } catch (Throwable e) {
78 spi_log.error("Error while binding org.daisy.pipeline.css.CssCascader service", e);
79 }
80 }
81 } catch (Throwable e) {
82 spi_log.error("Error while binding org.daisy.pipeline.css.CssCascader services", e);
83 }
84 if (refCount < minRef) {
85 spi_log.warn("No org.daisy.pipeline.css.CssCascader found");
86 throw new RuntimeException("No org.daisy.pipeline.css.CssCascader found");
87 } else {
88 spi_log.trace("Bound " + refCount + " org.daisy.pipeline.css.CssCascader services.");
89 }
90 }
91 {
92 spi_log.trace("Binding org.daisy.pipeline.css.UserAgentStylesheetRegistry services...");
93
94 int minRef = 1;
95 int maxRef = 1;
96 int refCount = 0;
97 try {
98 java.util.Iterator<org.daisy.pipeline.css.UserAgentStylesheetRegistry> services
99 = org.daisy.common.spi.ServiceLoader.load(org.daisy.pipeline.css.UserAgentStylesheetRegistry.class).iterator();
100 while (services.hasNext()) {
101 try {
102 org.daisy.pipeline.css.UserAgentStylesheetRegistry service = services.next();
103 delegate.setUserAgentStylesheetRegistry(service);
104 spi_log.trace("Bound org.daisy.pipeline.css.UserAgentStylesheetRegistry service: "
105 + service.getClass().getName() + "@"
106 + Integer.toHexString(System.identityHashCode(service)));
107 refCount++;
108 if (maxRef > 0 && refCount == maxRef)
109 break;
110 } catch (Throwable e) {
111 spi_log.error("Error while binding org.daisy.pipeline.css.UserAgentStylesheetRegistry service", e);
112 }
113 }
114 } catch (Throwable e) {
115 spi_log.error("Error while binding org.daisy.pipeline.css.UserAgentStylesheetRegistry services", e);
116 }
117 if (refCount < minRef) {
118 spi_log.warn("No org.daisy.pipeline.css.UserAgentStylesheetRegistry found");
119 throw new RuntimeException("No org.daisy.pipeline.css.UserAgentStylesheetRegistry found");
120 } else {
121 spi_log.trace("Bound " + refCount + " org.daisy.pipeline.css.UserAgentStylesheetRegistry services.");
122 }
123 }
124 }
125
126 public void spi_deactivate() {
127 }
128
129 public java.util.Map spi_getProperties() {
130 return spi_props;
131 }
132
133 @Override
134 public org.daisy.common.xproc.calabash.XProcStep newStep(
135 com.xmlcalabash.core.XProcRuntime arg1,
136 com.xmlcalabash.runtime.XAtomicStep arg2,
137 org.daisy.common.xproc.XProcMonitor arg3,
138 java.util.Map<java.lang.String,java.lang.String> arg4
139 ) {
140 return delegate.newStep(
141 arg1,
142 arg2,
143 arg3,
144 arg4
145 );
146 }
147
148 @Override
149 public String toString() {
150 return delegate.toString();
151 }
152
153 @Override
154 public int hashCode() {
155 return delegate.hashCode();
156 }
157
158 @Override
159 public boolean equals(Object o) {
160 return delegate.equals(o);
161 }
162 }