1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package org.xwiki.component.descriptor

File DefaultComponentRole.java

 

Coverage histogram

../../../../img/srcFileCovDistChart7.png
64% of files have more coverage

Code metrics

6
24
11
1
152
82
15
0.62
2.18
11
1.36

Classes

Class Line # Actions
DefaultComponentRole 34 24 0% 15 14
0.658536665.9%
 

Contributing tests

This file is covered by 3320 tests. .

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.descriptor;
21   
22    import java.lang.reflect.Type;
23    import java.util.Objects;
24   
25    import org.apache.commons.lang3.builder.HashCodeBuilder;
26    import org.apache.commons.lang3.builder.ToStringBuilder;
27    import org.xwiki.component.util.ReflectionUtils;
28    import org.xwiki.text.XWikiToStringBuilder;
29   
30    /**
31    * @param <T> the type of the component role
32    * @version $Id: 351dd438aa6b8cdb7ab90be1580c52c7cc6354d6 $
33    */
 
34    public class DefaultComponentRole<T> implements ComponentRole<T>
35    {
36    /**
37    * @see #getRole()
38    */
39    private Type roleType;
40   
41    /**
42    * @see #getRoleHint()
43    */
44    private String roleHint = "default";
45   
46    /**
47    * Default constructor.
48    */
 
49  2250880 toggle public DefaultComponentRole()
50    {
51    }
52   
53    /**
54    * Create a new {@link DefaultComponentRole} by cloning the provided {@link ComponentRole}.
55    *
56    * @param componentRole the component role to clone
57    * @since 3.4M1
58    */
 
59  2246192 toggle public DefaultComponentRole(ComponentRole<T> componentRole)
60    {
61  2246192 setRoleType(componentRole.getRoleType());
62  2246192 setRoleHint(componentRole.getRoleHint());
63    }
64   
 
65  103480153 toggle @Override
66    public Type getRoleType()
67    {
68  103480152 return this.roleType;
69    }
70   
71    /**
72    * @param roleType the type of the role
73    */
 
74  4496427 toggle public void setRoleType(Type roleType)
75    {
76  4496427 this.roleType = roleType;
77    }
78   
79    /**
80    * @param roleHint the hint of the component role
81    */
 
82  3382822 toggle public void setRoleHint(String roleHint)
83    {
84  3382822 this.roleHint = roleHint;
85    }
86   
 
87  102847226 toggle @Override
88    public String getRoleHint()
89    {
90  102847227 return this.roleHint;
91    }
92   
 
93  0 toggle @Override
94    public String toString()
95    {
96  0 ToStringBuilder builder = new XWikiToStringBuilder(this);
97  0 builder.append("role", null == getRoleType() ? "<null>" : getRoleType());
98  0 builder.append("hint", getRoleHint());
99  0 return builder.toString();
100    }
101   
 
102  182 toggle @Override
103    public boolean equals(Object object)
104    {
105  182 boolean result;
106   
107  182 if (this == object) {
108  1 result = true;
109    } else {
110  181 if (object == null || object.getClass() != getClass()) {
111  0 result = false;
112    } else {
113    // object must be Syntax at this point
114  181 ComponentRole<?> cr = (ComponentRole<?>) object;
115  181 result =
116    Objects.equals(getRoleType(), cr.getRoleType()) && Objects.equals(getRoleHint(), cr.getRoleHint());
117    }
118    }
119   
120  182 return result;
121    }
122   
 
123  0 toggle @Override
124    public int hashCode()
125    {
126  0 HashCodeBuilder builder = new HashCodeBuilder();
127   
128  0 builder.append(getRoleType());
129  0 builder.append(getRoleHint());
130   
131  0 return builder.toHashCode();
132    }
133   
134    // deprecated
135   
136    /**
137    * @param role the class of the component role
138    * @deprecated since 4.0M1 use {@link #setRoleType(Type)} instead
139    */
 
140  875 toggle @Deprecated
141    public void setRole(Class<T> role)
142    {
143  875 this.roleType = role;
144    }
145   
 
146  758 toggle @Override
147    @Deprecated
148    public Class<T> getRole()
149    {
150  758 return ReflectionUtils.getTypeClass(getRoleType());
151    }
152    }