1. Project Clover database Sat Feb 2 2019 06:45:20 CET
  2. Package org.xwiki.job.internal.xstream

File SafeReflectionProvider.java

 

Coverage histogram

../../../../../img/srcFileCovDistChart10.png
0% of files have more coverage

Code metrics

2
5
3
1
56
24
5
1
1.67
3
1.67

Classes

Class Line # Actions
SafeReflectionProvider 31 5 0% 5 0
1.0100%
 

Contributing tests

This file is covered by 207 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.job.internal.xstream;
21   
22    import com.thoughtworks.xstream.converters.reflection.ReflectionProvider;
23    import com.thoughtworks.xstream.converters.reflection.ReflectionProviderWrapper;
24   
25    /**
26    * Wrap the standard {@link ReflectionProvider} to skip to unserializable fields.
27    *
28    * @version $Id: a80951bff5ab3abd563a8907cee19e976838ad3e $
29    * @since 10.10RC1
30    */
 
31    public class SafeReflectionProvider extends ReflectionProviderWrapper
32    {
33    /**
34    * @param provider the standard provider.
35    */
 
36  553 toggle public SafeReflectionProvider(ReflectionProvider provider)
37    {
38  553 super(provider);
39    }
40   
 
41  375 toggle @Override
42    public Object newInstance(Class type)
43    {
44  375 return this.wrapped.newInstance(type);
45    }
46   
 
47  31738 toggle @Override
48    public void visitSerializableFields(Object object, Visitor visitor)
49    {
50  31745 this.wrapped.visitSerializableFields(object, (name, type, definedIn, value) -> {
51  225783 if (XStreamUtils.isSerializable(type) && XStreamUtils.isSerializable(value)) {
52  225690 visitor.visit(name, type, definedIn, value);
53    }
54    });
55    }
56    }