1   /***************************************************************/
2   /* This class was generated by ds-to-spi-annotations-processor */
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  			// cardinality: 1..1
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  			// cardinality: 0..n
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  			// cardinality: 1..1
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 }