public static String getPropertyName(String methodName,
                                         int parameterCount,
                                         String returnType) {
        if ( methodName == null ) {
            return null;
        }
        String simpleName = methodName.replaceAll( "\\(\\)",
                                                   "" );
        int prefixLength = 0;
        if ( isIsGetter( simpleName,
                         parameterCount,
                         returnType ) ) {

            prefixLength = 2;

        } else if ( isGetter( simpleName,
                              parameterCount,
                              returnType ) //
                    || isSetter( simpleName,
                                 parameterCount,
                                 returnType ) ) {

            prefixLength = 3;
        } else {
            return methodName;
        }

        char firstChar = Character.toLowerCase( simpleName.charAt( prefixLength ) );
        String propertyName = firstChar + simpleName.substring( prefixLength + 1 );
        return propertyName;
    }
public static String getPropertyName(String methodName,
                                         int parameterCount,
                                         String returnType) {
        if ( methodName == null ) {
            return null;
        }
        String simpleName = methodName.replaceAll( "\\(\\)",
                                                   "" );
        int prefixLength = 0;
        if ( isIsGetter( simpleName,
                         parameterCount,
                         returnType ) ) {

            prefixLength = 2;

        } else if ( isGetter( simpleName,
                              parameterCount,
                              returnType ) 
                    || isSetter( simpleName,
                                 parameterCount,
                                 returnType ) ) {

            prefixLength = 3;
        } else {
            return methodName;
        }

        char firstChar = Character.toLowerCase( simpleName.charAt( prefixLength ) );
        String propertyName = firstChar + simpleName.substring( prefixLength + 1 );
        return propertyName;
    }
public static String getPropertyName ( String methodName , int parameterCount , String returnType ) { if ( methodName == null ) { return null ; } String simpleName = methodName . replaceAll ( "\\(\\)" , "" ) ; int prefixLength = 0 ; if ( isIsGetter ( simpleName , parameterCount , returnType ) ) { prefixLength = 2 ; } else if ( isGetter ( simpleName , parameterCount , returnType ) // || isSetter ( simpleName , parameterCount , returnType ) ) { prefixLength = 3 ; } else { return methodName ; } char firstChar = Character . toLowerCase ( simpleName . charAt ( prefixLength ) ) ; String propertyName = firstChar + simpleName . substring ( prefixLength + 1 ) ; return propertyName ; }
Given a data depicting a method (name, # or params/args, returned type key), tries to return a  bean property name derived from that method.
If a bean property name is not found, the initial method name is returned
@param methodName
@param parameterCount
@param returnType
@return a bean property name
Given a data depicting a method ( name # or params / args returned type key ) tries to return a bean property name derived from that method . If a bean property name is not found the initial method name is returned