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

COVERAGE SUMMARY FOR SOURCE FILE [ExtractorUtil.java]

nameclass, %method, %block, %line, %
ExtractorUtil.java67%  (2/3)36%  (4/11)43%  (32/75)45%  (8.5/19)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ExtractorUtil$10%   (0/1)0%   (0/6)0%   (0/31)0%   (0/7)
ExtractorUtil$1 (Extractor): void 0%   (0/1)0%   (0/6)0%   (0/2)
compareTo (Extractor): ComparisonResult 0%   (0/1)0%   (0/5)0%   (0/1)
extract (Object, Map, Object []): Boolean 0%   (0/1)0%   (0/8)0%   (0/1)
getCost (): double 0%   (0/1)0%   (0/4)0%   (0/1)
isContextDependent (): boolean 0%   (0/1)0%   (0/4)0%   (0/1)
parameterIndices (): Set 0%   (0/1)0%   (0/4)0%   (0/1)
     
class ExtractorUtil100% (1/1)67%  (2/3)66%  (23/35)58%  (7/12)
ExtractorUtil (): void 0%   (0/1)0%   (0/3)0%   (0/2)
wrap (Extractor): Predicate 100% (1/1)55%  (6/11)67%  (2/3)
toMappable (Extractor): Mappable 100% (1/1)81%  (17/21)71%  (5/7)
     
class ExtractorUtil$2100% (1/1)100% (2/2)100% (9/9)100% (3/3)
ExtractorUtil$2 (Extractor): void 100% (1/1)100% (6/6)100% (2/2)
map (int []): Extractor 100% (1/1)100% (3/3)100% (1/1)

1package com.hammurapi.extract;
2 
3import java.util.Map;
4import java.util.Set;
5 
6/**
7 * Utility class.
8 * @author Pavel Vlasov
9 *
10 */
11public class ExtractorUtil {
12        
13        private ExtractorUtil() {
14                // TODO Auto-generated constructor stub
15        }
16        
17        /**
18         * Wraps extractor into predicate, if given extractor is not already a predicate.
19         * @param <T>
20         * @param <C>
21         * @param extractor
22         * @return
23         */
24        public static <T,C> Predicate<T,C> wrap(final Extractor<T,Boolean,C> extractor) {
25                if (extractor instanceof Predicate) {
26                        return (Predicate<T,C>) extractor;
27                }
28                
29                return new Predicate<T,C>() {
30 
31                        @Override
32                        public Boolean extract(
33                                        C context,
34                                        Map<C, Map<Extractor<T, ? super Boolean, C>, ? super Boolean>> cache,
35                                        T... obj) {
36                                return extractor.extract(context, cache, obj);
37                        }
38 
39                        @Override
40                        public Set<Integer> parameterIndices() {
41                                return extractor.parameterIndices();
42                        }
43 
44                        @Override
45                        public boolean isContextDependent() {
46                                return extractor.isContextDependent();
47                        }
48 
49                        @Override
50                        public ComparisonResult compareTo(Extractor<T, Boolean, C> other) {
51                                return extractor.compareTo(other);
52                        }
53                        
54                        @Override
55                        public double getCost() {
56                                return extractor.getCost();
57                        }
58                        
59                };
60                
61        }
62        
63        /**
64         * 
65         * @param <T>
66         * @param <V>
67         * @param <C>
68         * @param source Source extractor.
69         * @return Instance of mappable if extractor is mappable or its parameter indices is empty. Null otherwise.
70         */
71        public static <T,V,C> Mappable<T,V,C> toMappable(final Extractor<T,V,C> source) {
72                if (source==null) {
73                        return null;
74                }
75                if (source instanceof Mappable) {
76                        return (Mappable<T,V,C>) source;
77                }
78                if (source.parameterIndices().isEmpty()) {
79                        return new Mappable<T,V,C>() {
80 
81                                @Override
82                                public Extractor<T, V, C> map(int[] map) {
83                                        return source;
84                                }
85                                
86                        };
87                }
88                return null;
89        }
90 
91}

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