##### Coverage Report - org.yaml.snakeyaml.introspector.MethodProperty

Classes in this File | Line Coverage | Branch Coverage | Complexity
MethodProperty |
100% | 13/13
100% | 6/6
| 1.8;1.8

1 |  |
     /**
2 |  |
      * Copyright (c) 2008-2011, http://www.snakeyaml.org
3 |  |
      *
4 |  |
      * Licensed under the Apache License, Version 2.0 (the "License");
5 |  |
      * you may not use this file except in compliance with the License.
6 |  |
      * You may obtain a copy of the License at
7 |  |
      *
8 |  |
      *     http://www.apache.org/licenses/LICENSE-2.0
9 |  |
      *
10 |  |
      * Unless required by applicable law or agreed to in writing, software
11 |  |
      * distributed under the License is distributed on an "AS IS" BASIS,
12 |  |
      * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  |
      * See the License for the specific language governing permissions and
14 |  |
      * limitations under the License.
15 |  |
      */
16 |  |
17 |  |
     package org.yaml.snakeyaml.introspector;
18 |  |
19 |  |
     import java.beans.PropertyDescriptor;
20 |  |
21 |  |
     import org.yaml.snakeyaml.error.YAMLException;
22 |  |
23 |  |
     public class MethodProperty extends GenericProperty {
24 |  |
25 |  |
         private final PropertyDescriptor property;
26 |  |
         private final boolean readable;
27 |  |
         private final boolean writable;
28 |  |
29 |  |
         public MethodProperty(PropertyDescriptor property) {
30 | 1254 |
             super(property.getName(), property.getPropertyType(),
31 |  |
                     property.getReadMethod() == null ? null : property.getReadMethod()
32 |  |
                             .getGenericReturnType());
33 | 1254 |
             this.property = property;
34 | 1254 |
             this.readable = property.getReadMethod() != null;
35 | 1254 |
             this.writable = property.getWriteMethod() != null;
36 | 1254 |
         }
37 |  |
38 |  |
         @Override
39 |  |
         public void set(Object object, Object value) throws Exception {
40 | 2399 |
             property.getWriteMethod().invoke(object, value);
41 | 2397 |
         }
42 |  |
43 |  |
         @Override
44 |  |
         public Object get(Object object) {
45 |  |
             try {
46 | 31935 |
                 property.getReadMethod().setAccessible(true);// issue 50
47 | 31935 |
                 return property.getReadMethod().invoke(object);
48 | 1 |
             } catch (Exception e) {
49 | 1 |
                 throw new YAMLException("Unable to find getter for property '" + property.getName()
50 |  |
                         + "' on object " + object + ":" + e);
51 |  |
             }
52 |  |
         }
53 |  |
54 |  |
         @Override
55 |  |
         public boolean isWritable() {
56 | 2968 |
             return writable;
57 |  |
         }
58 |  |
59 |  |
         @Override
60 |  |
         public boolean isReadable() {
61 | 600 |
             return readable;
62 |  |
         }
63 |  |
     }