Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2010 JBoss Inc
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package org.kie.workbench.common.services.datamodel.backend.server.builder.projects;
 
 import java.util.List;
 import java.util.Set;
 
 import  org.drools.workbench.models.datamodel.oracle.MethodInfo;
Finds all methods that are not getters or setters from a class.
 
 public class ClassMethodInspector {
 
     private final Set<MethodInfo> methods = new HashSet<MethodInfo>();
 
     public ClassMethodInspectorfinal Class<?> clazz,
                                  final ClassToGenericClassConverter converter ) throws IOException {
         final Method[] methods = clazz.getDeclaredMethods();
         for ( int i = 0; i < methods.lengthi++ ) {
             Method aMethod = methodsi ];
             int modifiers = methodsi ].getModifiers();
             String methodName = aMethod.getName();
 
             if ( isNotGetterOrSetteraMethod ) && !BlackLists.isClassMethodBlackListedclazz,
                                                                                          methodName ) && Modifier.isPublicmodifiers ) ) {
 
                 Class<?>[] listParam = aMethod.getParameterTypes();
 
                 MethodInfo info = new MethodInfo( methodName,
                                                   convertParameterTypesconverter,
                                                                          listParam ),
                                                   aMethod.getReturnType(),
                                                   obtainGenericTypeaMethod.getGenericReturnType() ),
                                                   converter.translateClassToGenericTypeaMethod.getReturnType() ) );
                 this..add( info );
             }
         }
     }

    
Translate Method Parameter types to the generic types used by DataModelOracle

Parameters:
converter
listParam
Returns:
 
     private List<StringconvertParameterTypesfinal ClassToGenericClassConverter converter,
                                                 final Class<?>[] listParam ) {
         List<Stringparams = new ArrayList<String>();
 
         if ( listParam.length == 0 ) {
             return params;
         } else {
 
             for ( int i = 0; i < listParam.lengthi++ ) {
                 final String type = converter.translateClassToGenericTypelistParami ] );
                 params.addtype );
             }
 
             return params;
         }
     }

    
Check if this method is a mutator or accessor method for a field.

If method starts with set or get and is longer than 3 characters. For example java.util.List.set(int index, Object element) is considered to be a method, not a setter.

Parameters:
m
 
     private boolean isNotGetterOrSetterfinal Method m ) {
         String name = m.getName();
         return !( ( name.length() > 3 && ( name.startsWith"set" ) || name.startsWith"get" ) ) ) ||
                 ( name.length() > 2 && name.startsWith"is" )
                         && ( Boolean.class.isAssignableFromm.getReturnType() ) || . == m.getReturnType() ) ) );
 
     }
    public List<StringgetMethodNames() {
        List<StringmethodList = new ArrayList<String>();
        for ( MethodInfo info :  ) {
            methodList.addinfo.getName() );
        }
        return methodList;
    }
    public List<MethodInfo> getMethodInfos() {
        return new ArrayList<MethodInfo>( this. );
    }
    private String obtainGenericTypefinal Type type ) {
        if ( type instanceof ParameterizedType ) {
            ParameterizedType pt = (ParameterizedTypetype;
            Type goodType = null;
            for ( Type t : pt.getActualTypeArguments() ) {
                goodType = t;
            }
            if ( goodType != null ) {
                if ( goodType instanceof Class ) {
                    return ( (ClassgoodType ).getName();
                }
                int index = goodType.toString().lastIndexOf"." );
                return goodType.toString().substringindex + 1 );
            } else {
                return null;
            }
        }
        return null;
    }
New to GrepCode? Check out our FAQ X