private String findParamTypes()

in boot/src/main/java/org/netbeans/html/boot/impl/JavaScriptProcesor.java [720:762]


    private String findParamTypes(ExecutableElement method) {
        ExecutableType t = (ExecutableType) method.asType();
        StringBuilder sb = new StringBuilder();
        sb.append('(');
        for (TypeMirror paramType : t.getParameterTypes()) {
            TypeMirror tm = paramType;
            boolean isArray = false;
            while (tm.getKind() == TypeKind.ARRAY) {
                sb.append('[');
                tm = ((ArrayType) tm).getComponentType();
                isArray = true;
            }
            if (tm.getKind().isPrimitive()) {
                switch (tm.getKind()) {
                    case INT: sb.append('I'); break;
                    case BOOLEAN: sb.append('Z'); break;
                    case BYTE: sb.append('B'); break;
                    case CHAR: sb.append('C'); break;
                    case SHORT: sb.append('S'); break;
                    case DOUBLE: sb.append('D'); break;
                    case FLOAT: sb.append('F'); break;
                    case LONG: sb.append('J'); break;
                    default:
                        throw new IllegalStateException("Unknown " + tm.getKind());
                }
                if (isArray) {
                    wrongArrayError(paramType, method);
                }
            } else {
                sb.append('L');
                Types tu = processingEnv.getTypeUtils();
                final TypeMirror erasedType = tu.erasure(tm);
                TypeMirror objectType = processingEnv.getElementUtils().getTypeElement("java.lang.Object").asType();
                if (isArray && !processingEnv.getTypeUtils().isSameType(objectType, erasedType)) {
                    wrongArrayError(paramType, method);
                }
                Element elm = tu.asElement(erasedType);
                dumpElems(sb, elm, ';');
            }
        }
        sb.append(')');
        return sb.toString();
    }