DiagnosticCommandImpl.java 文件源码

java
阅读 18 收藏 0 点赞 0 评论 0

项目:openjdk-jdk10 作者:
private Descriptor commandDescriptor(Wrapper w) throws IllegalArgumentException {
    HashMap<String, Object> map = new HashMap<>();
    map.put("dcmd.name", w.info.getName());
    map.put("dcmd.description", w.info.getDescription());
    map.put("dcmd.vmImpact", w.info.getImpact());
    map.put("dcmd.permissionClass", w.info.getPermissionClass());
    map.put("dcmd.permissionName", w.info.getPermissionName());
    map.put("dcmd.permissionAction", w.info.getPermissionAction());
    map.put("dcmd.enabled", w.info.isEnabled());
    StringBuilder sb = new StringBuilder();
    sb.append("help ");
    sb.append(w.info.getName());
    map.put("dcmd.help", executeDiagnosticCommand(sb.toString()));
    if (w.info.getArgumentsInfo() != null && !w.info.getArgumentsInfo().isEmpty()) {
        HashMap<String, Object> allargmap = new HashMap<>();
        for (DiagnosticCommandArgumentInfo arginfo : w.info.getArgumentsInfo()) {
            HashMap<String, Object> argmap = new HashMap<>();
            argmap.put("dcmd.arg.name", arginfo.getName());
            argmap.put("dcmd.arg.type", arginfo.getType());
            argmap.put("dcmd.arg.description", arginfo.getDescription());
            argmap.put("dcmd.arg.isMandatory", arginfo.isMandatory());
            argmap.put("dcmd.arg.isMultiple", arginfo.isMultiple());
            boolean isOption = arginfo.isOption();
            argmap.put("dcmd.arg.isOption", isOption);
            if(!isOption) {
                argmap.put("dcmd.arg.position", arginfo.getPosition());
            } else {
                argmap.put("dcmd.arg.position", -1);
            }
            allargmap.put(arginfo.getName(), new ImmutableDescriptor(argmap));
        }
        map.put("dcmd.arguments", new ImmutableDescriptor(allargmap));
    }
    return new ImmutableDescriptor(map);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号