1 package org.daisy.pipeline.nlp.calabash.impl;
2
3 import java.util.Map;
4
5 import org.daisy.common.xproc.calabash.XProcStep;
6 import org.daisy.common.xproc.calabash.XProcStepProvider;
7 import org.daisy.common.xproc.XProcMonitor;
8 import org.daisy.pipeline.nlp.lexing.LexServiceRegistry;
9
10 import com.xmlcalabash.core.XProcRuntime;
11 import com.xmlcalabash.runtime.XAtomicStep;
12
13 import org.osgi.service.component.annotations.Component;
14 import org.osgi.service.component.annotations.Reference;
15 import org.osgi.service.component.annotations.ReferenceCardinality;
16 import org.osgi.service.component.annotations.ReferencePolicy;
17
18
19
20
21
22 @Component(
23 name = "break-detector",
24 service = { XProcStepProvider.class },
25 property = { "type:String={http://www.daisy.org/ns/pipeline/xproc}break-detect" }
26 )
27 public class BreakDetectProvider implements XProcStepProvider {
28
29 private LexServiceRegistry mRegistry = null;
30
31 @Reference(
32 name = "LexServiceRegistry",
33 unbind = "-",
34 service = LexServiceRegistry.class,
35 cardinality = ReferenceCardinality.MANDATORY,
36 policy = ReferencePolicy.STATIC
37 )
38 public void setLexServiceRegistry(LexServiceRegistry r) {
39 mRegistry = r;
40 }
41
42 public void unsetLexServiceRegistry(LexServiceRegistry r) {
43 mRegistry = null;
44 }
45
46 @Override
47 public XProcStep newStep(XProcRuntime runtime, XAtomicStep step, XProcMonitor monitor, Map<String,String> properties) {
48 return new BreakDetectStep(runtime, step, mRegistry);
49 }
50 }