EMMA Coverage Report (generated Thu Jan 20 11:39:44 EST 2011)
[all classes][com.hammurapi.extract.scripting]

COVERAGE SUMMARY FOR SOURCE FILE [ScriptingExtractorFactory.java]

nameclass, %method, %block, %line, %
ScriptingExtractorFactory.java100% (1/1)67%  (2/3)42%  (64/153)38%  (8.8/23)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ScriptingExtractorFactory100% (1/1)67%  (2/3)42%  (64/153)38%  (8.8/23)
createExtractor (String, String, String [], Class [], Class, Class, ClassLoad... 0%   (0/1)0%   (0/75)0%   (0/11)
createPredicate (String, String, String [], Class [], Class, ClassLoader): Pr... 100% (1/1)81%  (61/75)71%  (7.8/11)
ScriptingExtractorFactory (): void 100% (1/1)100% (3/3)100% (1/1)

1package com.hammurapi.extract.scripting;
2 
3import javax.script.ScriptEngineFactory;
4import javax.script.ScriptEngineManager;
5 
6import com.hammurapi.extract.Extractor;
7import com.hammurapi.extract.ExtractorFactory;
8import com.hammurapi.extract.Predicate;
9 
10public class ScriptingExtractorFactory implements ExtractorFactory {
11 
12        public <T, V, C> Extractor<T, V, C> createExtractor(
13                        String language,
14                        String code, 
15                        String[] parameterNames, 
16                        Class<T>[] parameterTypes,
17                        Class<V> valueType, 
18                        Class<C> contextType,
19                        ClassLoader classLoader) {
20 
21                ScriptEngineManager sem = new ScriptEngineManager(classLoader==null ? contextType.getClassLoader() : classLoader);
22                for (ScriptEngineFactory sef: sem.getEngineFactories()) {
23                        if (sef.getLanguageName().equals(language)) {
24                                ScriptingExtractor<T, V, C> scriptingExtractor = new ScriptingExtractor<T, V, C>(code, sef, parameterNames);
25                                return scriptingExtractor;
26                        }
27                }
28 
29                // Trying engine names
30                for (ScriptEngineFactory sef: sem.getEngineFactories()) {
31                        for (String en: sef.getNames()) {
32                                if (en.equals(language)) {
33                                        ScriptingExtractor<T, V, C> scriptingExtractor = new ScriptingExtractor<T, V, C>(code, sef, parameterNames);
34                                        return scriptingExtractor;
35                                }
36                        }
37                }                        
38 
39                return null;
40        }
41        
42        public <T, C> Predicate<T, C> createPredicate(
43                        String language,
44                        String code, 
45                        String[] parameterNames, 
46                        Class<T>[] parameterTypes,
47                        Class<C> contextType,
48                        ClassLoader classLoader) {
49 
50                ScriptEngineManager sem = new ScriptEngineManager(classLoader==null ? contextType.getClassLoader() : classLoader);
51                for (ScriptEngineFactory sef: sem.getEngineFactories()) {
52                        if (sef.getLanguageName().equals(language)) {
53                                ScriptingPredicate<T, C> scriptingPredicate = new ScriptingPredicate<T, C>(code, sef, parameterNames);
54                                return scriptingPredicate;
55                        }
56                }
57 
58                // Trying engine names
59                for (ScriptEngineFactory sef: sem.getEngineFactories()) {
60                        for (String en: sef.getNames()) {
61                                if (en.equals(language)) {
62                                        ScriptingPredicate<T, C> scriptingPredicate = new ScriptingPredicate<T, C>(code, sef, parameterNames);
63                                        return scriptingPredicate;
64                                }
65                        }
66                }                        
67 
68                return null;
69        }
70        
71        
72}

[all classes][com.hammurapi.extract.scripting]
EMMA 2.0.5312 EclEmma Fix 2 (C) Vladimir Roubtsov