1. Project Clover database Sat Feb 2 2019 06:45:20 CET
  2. Package org.xwiki.component.annotation

File AbstractComponentDependencyFactory.java

 

Coverage histogram

../../../../img/srcFileCovDistChart0.png
86% of files have more coverage

Code metrics

4
8
2
1
69
27
5
0.62
4
2
2.5

Classes

Class Line # Actions
AbstractComponentDependencyFactory 34 8 0% 5 14
0.00%
 

Contributing tests

No tests hitting this source file were found.

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.component.annotation;
21   
22    import java.lang.reflect.Field;
23    import java.lang.reflect.ParameterizedType;
24    import java.lang.reflect.Type;
25    import java.util.Collection;
26    import java.util.Map;
27   
28    /**
29    * Provides useful methods for implementing {@link ComponentDependencyFactory}.
30    *
31    * @version $Id: fae843346c0ca576a42799c07c2f6711a8821492 $
32    * @since 3.2RC1
33    */
 
34    public abstract class AbstractComponentDependencyFactory implements ComponentDependencyFactory
35    {
36    /**
37    * @param type the type for which to verify if it's a list or not
38    * @return true if the type is a list (Collection or Map), false otherwise
39    * @deprecated since 4.0M1 it's useless
40    */
 
41  0 toggle @Deprecated
42    protected boolean isDependencyOfListType(Class<?> type)
43    {
44  0 return Collection.class.isAssignableFrom(type) || Map.class.isAssignableFrom(type);
45    }
46   
47    /**
48    * Extract generic type from the list field.
49    *
50    * @param field the list field to inject
51    * @return the role of the components in the list
52    * @since 4.0M1 it's useless
53    */
 
54  0 toggle @Deprecated
55    protected Class<?> getGenericRole(Field field)
56    {
57  0 Type type = field.getGenericType();
58   
59  0 if (type instanceof ParameterizedType) {
60  0 ParameterizedType pType = (ParameterizedType) type;
61  0 Type[] types = pType.getActualTypeArguments();
62  0 if (types.length > 0 && types[types.length - 1] instanceof Class) {
63  0 return (Class) types[types.length - 1];
64    }
65    }
66   
67  0 return null;
68    }
69    }