Search in sources :

Example 1 with APIMethodArgument

use of com.arm.mbed.cloud.sdk.testserver.internal.model.APIMethodArgument in project mbed-cloud-sdk-java by ARMmbed.

the class APIMappingGenerator method recordAPIMethod.

private APIMethod recordAPIMethod(Method method) {
    if (method == null || !method.isAnnotationPresent(API.class)) {
        return null;
    }
    APIMethod m = new APIMethod(method.getName());
    if (method.isAnnotationPresent(Daemon.class)) {
        Daemon daemonControl = method.getAnnotation(Daemon.class);
        if (daemonControl.start()) {
            m.setDaemonControl(DaemonControl.START);
        }
        if (daemonControl.stop()) {
            m.setDaemonControl(DaemonControl.STOP);
        }
        if (daemonControl.shutdown()) {
            m.setDaemonControl(DaemonControl.SHUTDOWN);
        }
    }
    if (method.getParameterCount() > 0) {
        Parameter[] parameters = method.getParameters();
        for (Parameter parameter : parameters) {
            String defaultValue = determineParameterDefaultValue(parameter);
            determineContentType(parameter);
            APIMethodArgument arg = new APIMethodArgument(parameter.getName(), parameter.getType(), determineContentType(parameter), defaultValue);
            m.addArgument(arg);
        }
    }
    APIMethodArgument returnArg = new APIMethodArgument(method.getReturnType(), null);
    m.setReturnArgument(returnArg);
    return m;
}
Also used : APIMethod(com.arm.mbed.cloud.sdk.testserver.internal.model.APIMethod) Daemon(com.arm.mbed.cloud.sdk.annotations.Daemon) Parameter(java.lang.reflect.Parameter) APIMethodArgument(com.arm.mbed.cloud.sdk.testserver.internal.model.APIMethodArgument)

Aggregations

Daemon (com.arm.mbed.cloud.sdk.annotations.Daemon)1 APIMethod (com.arm.mbed.cloud.sdk.testserver.internal.model.APIMethod)1 APIMethodArgument (com.arm.mbed.cloud.sdk.testserver.internal.model.APIMethodArgument)1 Parameter (java.lang.reflect.Parameter)1