View Javadoc
1   package org.apache.maven.plugin.cxx.utils;
2   
3   /*
4    * Copyright (C) 2011-2016, Neticoa SAS France - Tous droits réservés.
5    * Author(s) : Franck Bonin, Neticoa SAS France
6    *
7    * Licensed under the Apache License, Version 2.0 (the "License");
8    * you may not use this file except in compliance with the License.
9    * You may obtain a copy of the License at
10   *
11   *     http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing, software
14   * distributed under the License is distributed on an "AS IS" BASIS,
15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   * See the License for the specific language governing permissions and
17   * limitations under the License.
18   *
19   */
20   
21  import java.lang.reflect.Field;
22  
23  /**
24   * TODO
25   * 
26   * @version 8 mars 2016
27   * @author fbonin
28   */
29  public class ClassAccessHelper
30  {
31      public static <T> T getFieldValue( Object o, String fieldName, Class<T> cls )
32          throws NoSuchFieldException, IllegalAccessException
33      {
34          Field field = o.getClass().getDeclaredField( fieldName );
35          if ( null != field )
36          {
37              field.setAccessible( true );
38              Object value = field.get( o );
39              if ( null != value && cls.isInstance( value ) )
40              {
41                  return (T) value;
42              }
43          }
44          return null;
45      }
46      
47      public static <T> void setFieldValue( Object o, String fieldName, T value )
48          throws NoSuchFieldException, IllegalAccessException
49      {
50          Field field = o.getClass().getDeclaredField( fieldName );
51          if ( null != field )
52          {
53              field.setAccessible( true );
54              field.set( o, value );
55          }
56      }
57  }