private static MBeanOperationInfo[] createOperationInfo(Map<String, Method> operationMethods) throws ManagementException {
        MBeanOperationInfo[] operationInfos = new MBeanOperationInfo[operationMethods.size()];
        int operationIndex = 0;
        // Iterate in method name order
        for (String methodName : sortedKeys(operationMethods)) {
            Method method = operationMethods.get(methodName);
            ManagedOperation annotation = method.getAnnotation(ManagedOperation.class);
            // add description and names to parameters
            MBeanParameterInfo[] signature = createParameterInfo(method);
            // add description and parameter info to operation method
            Impact impact = annotation == null ? Impact.UNKNOWN : annotation.value();
            int impactValue = impact.impactValue;
            String description = description(method);
            MBeanOperationInfo opInfo = new MBeanOperationInfo(
                    method.getName(),
                    description,
                    signature,
                    method.getReturnType().getName(),
                    impactValue,
                    null);
            operationInfos[operationIndex++] = opInfo;
        }
        return operationInfos;
    }