drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/editors/completion/CompletionUtil.java
public static String getWritablePropertyName(String methodName,
                                                 int parameterCount,
                                                 String returnType) {
        if ( methodName == null ) {
            return null;
        }
        String simpleName = methodName.replaceAll( "\\(\\)",
                                                   "" );
        if ( !isSetter( simpleName,
                        parameterCount,
                        returnType ) ) {
            return methodName;
        }

        int prefixLength = 3;

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

        int prefixLength = 3;

        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  writable bean property name derived from that method.
If a writable (ie setter) bean property name is not found, the initial method name is returned
@param methodName
@param parameterCount
@param returnType
@return a bean property name