@Data @ApiModel(description = '授权') @JsonIgnoreProperties(ignoreUnknown = true) public class PolicyVO {

/**
 * 目录资源 path
 */
@ApiModelProperty(name = 'resources', notes = '目录资源、库表属、队列', required = true)
private List<T> resources;

/**
 * 服务类型
 */
@ApiModelProperty(name = 'serviceType', notes = '服务类型: hdfs 目录, hive 数据, yarn 队列', required = true)
private String serviceType;


@Data
public static class Resource {
    private Long id;
}

@Data
public static class ResourceHdfs extends Resource {
    /**
     * 存储信息id, t_quota_store.store_id
     */
    @ApiModelProperty(name = 'id', notes = '存储信息id', required = true)
    private Long id;
    /**
     * 存储绝对路径, t_quota_store.store_path
     */
    @ApiModelProperty(name = 'path', notes = '存储信息绝对路径', required = true)
    private String path;
}

@Data
public static class ResourceHive extends Resource {
    @ApiModelProperty(name = 'id', notes = 'id', required = false)
    private Long id;
    @ApiModelProperty(name = 'database', notes = '数据库', required = true)
    private String database;
    @ApiModelProperty(name = 'tab', notes = '表', required = true)
    private List<String> tab;
    @ApiModelProperty(name = 'col', notes = '字段', required = true)
    private List<String> col;
}

@Data
public static class ResourceYarn extends Resource {
    /**
     * 队列信息id, t_quota_queue.queue_id
     */
    @ApiModelProperty(name = 'id', notes = '队列信息id', required = true)
    private Long id;
    /**
     * 队列名称,t_quota_queue.queue_name
     */
    @ApiModelProperty(name = 'queueName', notes = '队列名称', required = true)
    private String queueName;
}

}

Java 泛型应用:使用泛型优化代码结构

原文地址: https://www.cveoy.top/t/topic/qxST 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录