1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package org.xwiki.filter.instance.input

File AbstractInstanceInputEventGenerator.java

 

Coverage histogram

../../../../../img/srcFileCovDistChart8.png
54% of files have more coverage

Code metrics

0
18
25
1
221
152
25
1.39
0.72
25
1

Classes

Class Line # Actions
AbstractInstanceInputEventGenerator 48 18 0% 25 12
0.720930272.1%
 

Contributing tests

This file is covered by 1 test. .

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package org.xwiki.filter.instance.input;
21   
22    import java.lang.reflect.ParameterizedType;
23    import java.util.Arrays;
24    import java.util.Collection;
25    import java.util.List;
26    import java.util.Locale;
27    import java.util.Map;
28    import java.util.Stack;
29   
30    import javax.inject.Inject;
31   
32    import org.apache.commons.lang3.ArrayUtils;
33    import org.xwiki.component.phase.Initializable;
34    import org.xwiki.component.phase.InitializationException;
35    import org.xwiki.component.util.ReflectionUtils;
36    import org.xwiki.filter.FilterDescriptorManager;
37    import org.xwiki.filter.FilterEventParameters;
38    import org.xwiki.filter.FilterException;
39    import org.xwiki.filter.descriptor.FilterStreamDescriptor;
40    import org.xwiki.model.EntityType;
41    import org.xwiki.model.reference.EntityReference;
42   
43    /**
44    * @param <F> the type of the filter declaring the events supported by this {@link InstanceInputEventGenerator}
45    * @version $Id: 05ef82e0d6f46daaca543c7cff0ca3dc948c65c4 $
46    * @since 6.2M1
47    */
 
48    public abstract class AbstractInstanceInputEventGenerator<F> implements InstanceInputEventGenerator, Initializable
49    {
50    @Inject
51    private FilterDescriptorManager filterDescriptorManager;
52   
53    private List<Class<?>> filerInterfaces;
54   
55    protected Map<String, Object> properties;
56   
57    protected Object filter;
58   
59    protected F proxyFilter;
60   
61    protected String currentWiki;
62   
63    protected Stack<String> currentSpaces = new Stack<String>();
64   
65    protected EntityReference currentReference;
66   
67    protected FilterStreamDescriptor descriptor;
68   
 
69  5 toggle @Override
70    public void initialize() throws InitializationException
71    {
72    // Get the type of the internal filter
73  5 ParameterizedType genericType =
74    (ParameterizedType) ReflectionUtils.resolveType(AbstractInstanceInputEventGenerator.class, getClass());
75  5 this.filerInterfaces =
76    Arrays.<Class<?>>asList(ReflectionUtils.getTypeClass(genericType.getActualTypeArguments()[0]));
77    }
78   
 
79  0 toggle @Override
80    public FilterStreamDescriptor getDescriptor()
81    {
82  0 return this.descriptor;
83    }
84   
 
85  0 toggle protected void setDescriptor(FilterStreamDescriptor descriptor)
86    {
87  0 this.descriptor = descriptor;
88    }
89   
 
90  2 toggle @Override
91    public Collection<Class<?>> getFilterInterfaces() throws FilterException
92    {
93  2 return this.filerInterfaces;
94    }
95   
 
96  1 toggle @Override
97    public void setWikiFarmParameters(FilterEventParameters parameters) throws FilterException
98    {
99    // To ovewrite
100    }
101   
 
102  1 toggle @Override
103    public void setWikiParameters(String name, FilterEventParameters parameters) throws FilterException
104    {
105    // To ovewrite
106    }
107   
 
108  3 toggle @Override
109    public void setWikiSpaceParameters(String name, FilterEventParameters parameters) throws FilterException
110    {
111    // To ovewrite
112    }
113   
 
114  0 toggle @Override
115    public void setWikiDocumentParameters(String name, FilterEventParameters parameters) throws FilterException
116    {
117    // To ovewrite
118    }
119   
 
120  1 toggle @Override
121    public void setProperties(Map<String, Object> properties)
122    {
123  1 this.properties = properties;
124    }
125   
 
126  1 toggle @Override
127    public void setFilter(Object filter)
128    {
129  1 this.filter = filter;
130  1 this.proxyFilter = this.filterDescriptorManager.createFilterProxy(filter,
131    this.filerInterfaces.toArray(ArrayUtils.EMPTY_CLASS_ARRAY));
132    }
133   
 
134  1 toggle @Override
135    public void beginWikiFarm(FilterEventParameters parameters) throws FilterException
136    {
137    }
138   
 
139  1 toggle @Override
140    public void endWikiFarm(FilterEventParameters parameters) throws FilterException
141    {
142    }
143   
 
144  1 toggle @Override
145    public void beginWiki(String name, FilterEventParameters parameters) throws FilterException
146    {
147  1 this.currentWiki = name;
148  1 this.currentReference = new EntityReference(this.currentWiki, EntityType.WIKI);
149    }
150   
 
151  1 toggle @Override
152    public void endWiki(String name, FilterEventParameters parameters) throws FilterException
153    {
154  1 this.currentWiki = null;
155  1 this.currentReference = this.currentReference.getParent();
156    }
157   
 
158  3 toggle @Override
159    public void beginWikiSpace(String name, FilterEventParameters parameters) throws FilterException
160    {
161  3 this.currentSpaces.push(name);
162  3 this.currentReference = new EntityReference(name, EntityType.SPACE, this.currentReference);
163    }
164   
 
165  3 toggle @Override
166    public void endWikiSpace(String name, FilterEventParameters parameters) throws FilterException
167    {
168  3 this.currentSpaces.pop();
169  3 this.currentReference = this.currentReference.getParent();
170    }
171   
 
172  3 toggle @Override
173    public void beginWikiDocument(String name, FilterEventParameters parameters) throws FilterException
174    {
175  3 this.currentReference = new EntityReference(name, EntityType.DOCUMENT, this.currentReference);
176    }
177   
 
178  3 toggle @Override
179    public void endWikiDocument(String name, FilterEventParameters parameters) throws FilterException
180    {
181  3 this.currentReference = this.currentReference.getParent();
182    }
183   
 
184  0 toggle @Override
185    public void beginWikiDocumentLocale(Locale locale, FilterEventParameters parameters) throws FilterException
186    {
187   
188    }
189   
 
190  0 toggle @Override
191    public void endWikiDocumentLocale(Locale locale, FilterEventParameters parameters) throws FilterException
192    {
193    }
194   
 
195  0 toggle @Override
196    public void beginWikiDocumentRevision(String version, FilterEventParameters parameters) throws FilterException
197    {
198   
199    }
200   
 
201  0 toggle @Override
202    public void endWikiDocumentRevision(String version, FilterEventParameters parameters) throws FilterException
203    {
204   
205    }
206   
 
207  0 toggle @Override
208    public void beginUnknwon(String id, FilterEventParameters parameters) throws FilterException
209    {
210    }
211   
 
212  0 toggle @Override
213    public void endUnknwon(String id, FilterEventParameters parameters) throws FilterException
214    {
215    }
216   
 
217  0 toggle @Override
218    public void onUnknwon(String id, FilterEventParameters parameters) throws FilterException
219    {
220    }
221    }