// Path: src/main/java/org/cleverframe/fastdfs/protocol/BaseResponse.java
// public abstract class BaseResponse<T> {
//     /**
//      * 报文头
//      */
//     private ProtocolHead head;
// 
//     /**
//      * 返回值泛型类型
//      */
//     private final Class<T> genericType;
// 
//     /**
//      * 构造函数
//      */
//     public BaseResponse() {
//         this.genericType = ReflectionsUtils.getClassGenricType(getClass());
//     }
// 
//     /**
//      * 获取报文长度
//      */
//     protected long getContentLength() {
//         return head.getContentLength();
//     }
// 
//     /**
//      * 解析反馈结果 请求头报文使用 {@link ProtocolHead#createFromInputStream(InputStream)} 解析
//      */
//     T decode(ProtocolHead head, InputStream in, Charset charset) throws IOException {
//         this.head = head;
//         return decodeContent(in, charset);
//     }
// 
//     /**
//      * 解析反馈内容
//      */
//     public T decodeContent(InputStream in, Charset charset) throws IOException {
//         // 如果有内容
//         if (getContentLength() > 0) {
//             byte[] bytes = new byte[(int) getContentLength()];
//             int contentSize = in.read(bytes);
//             // 获取数据
//             if (contentSize != getContentLength()) {
//                 throw new IOException("读取到的数据长度与协议长度不符");
//             }
//             return FastDfsParamMapperUtils.map(bytes, genericType, charset);
//         }
//         return null;
//     }
// }
// 
// Path: src/main/java/org/cleverframe/fastdfs/protocol/tracker/request/DeleteStorageRequest.java
// public class DeleteStorageRequest extends BaseRequest {
//     /**
//      * 组名
//      */
//     @FastDFSColumn(index = 0, max = OtherConstants.FDFS_GROUP_NAME_MAX_LEN)
//     private String groupName;
// 
//     /**
//      * 存储ip
//      */
//     @FastDFSColumn(index = 1, max = OtherConstants.FDFS_IPADDR_SIZE - 1)
//     private String storageIpAddr;
// 
//     /**
//      * 获取文件源服务器
//      *
//      * @param groupName     组名称
//      * @param storageIpAddr 存储服务器IP地址
//      */
//     public DeleteStorageRequest(String groupName, String storageIpAddr) {
//         Validate.notBlank(groupName, "分组不能为空");
//         Validate.notBlank(storageIpAddr, "文件路径不能为空");
//         this.groupName = groupName;
//         this.storageIpAddr = storageIpAddr;
//         head = new ProtocolHead(CmdConstants.TRACKER_PROTO_CMD_SERVER_DELETE_STORAGE);
//     }
// 
//     public String getGroupName() {
//         return groupName;
//     }
// 
//     public String getStorageIpAddr() {
//         return storageIpAddr;
//     }
// 
// }


import org.cleverframe.fastdfs.protocol.BaseResponse;
import org.cleverframe.fastdfs.protocol.tracker.request.DeleteStorageRequest;
package org.cleverframe.fastdfs.protocol.tracker;


/**
 * 删除存储服务器
 * 作者：LiZW <br/>
 * 创建时间：2016/11/20 15:43 <br/>
 */
public class DeleteStorageCommand extends TrackerCommand<Void> {

    public DeleteStorageCommand(String groupName, String storageIpAddr) {
// Path: src/main/java/org/cleverframe/fastdfs/protocol/BaseResponse.java
// public abstract class BaseResponse<T> {
//     /**
//      * 报文头
//      */
//     private ProtocolHead head;
// 
//     /**
//      * 返回值泛型类型
//      */
//     private final Class<T> genericType;
// 
//     /**
//      * 构造函数
//      */
//     public BaseResponse() {
//         this.genericType = ReflectionsUtils.getClassGenricType(getClass());
//     }
// 
//     /**
//      * 获取报文长度
//      */
//     protected long getContentLength() {
//         return head.getContentLength();
//     }
// 
//     /**
//      * 解析反馈结果 请求头报文使用 {@link ProtocolHead#createFromInputStream(InputStream)} 解析
//      */
//     T decode(ProtocolHead head, InputStream in, Charset charset) throws IOException {
//         this.head = head;
//         return decodeContent(in, charset);
//     }
// 
//     /**
//      * 解析反馈内容
//      */
//     public T decodeContent(InputStream in, Charset charset) throws IOException {
//         // 如果有内容
//         if (getContentLength() > 0) {
//             byte[] bytes = new byte[(int) getContentLength()];
//             int contentSize = in.read(bytes);
//             // 获取数据
//             if (contentSize != getContentLength()) {
//                 throw new IOException("读取到的数据长度与协议长度不符");
//             }
//             return FastDfsParamMapperUtils.map(bytes, genericType, charset);
//         }
//         return null;
//     }
// }
// 
// Path: src/main/java/org/cleverframe/fastdfs/protocol/tracker/request/DeleteStorageRequest.java
// public class DeleteStorageRequest extends BaseRequest {
//     /**
//      * 组名
//      */
//     @FastDFSColumn(index = 0, max = OtherConstants.FDFS_GROUP_NAME_MAX_LEN)
//     private String groupName;
// 
//     /**
//      * 存储ip
//      */
//     @FastDFSColumn(index = 1, max = OtherConstants.FDFS_IPADDR_SIZE - 1)
//     private String storageIpAddr;
// 
//     /**
//      * 获取文件源服务器
//      *
//      * @param groupName     组名称
//      * @param storageIpAddr 存储服务器IP地址
//      */
//     public DeleteStorageRequest(String groupName, String storageIpAddr) {
//         Validate.notBlank(groupName, "分组不能为空");
//         Validate.notBlank(storageIpAddr, "文件路径不能为空");
//         this.groupName = groupName;
//         this.storageIpAddr = storageIpAddr;
//         head = new ProtocolHead(CmdConstants.TRACKER_PROTO_CMD_SERVER_DELETE_STORAGE);
//     }
// 
//     public String getGroupName() {
//         return groupName;
//     }
// 
//     public String getStorageIpAddr() {
//         return storageIpAddr;
//     }
// 
// }


// Path: src/main/java/org/cleverframe/fastdfs/protocol/tracker/DeleteStorageCommand.java
import org.cleverframe.fastdfs.protocol.BaseResponse;
import org.cleverframe.fastdfs.protocol.tracker.request.DeleteStorageRequest;

package org.cleverframe.fastdfs.protocol.tracker;


/**
 * 删除存储服务器
 * 作者：LiZW <br/>
 * 创建时间：2016/11/20 15:43 <br/>
 */
public class DeleteStorageCommand extends TrackerCommand<Void> {

    public DeleteStorageCommand(String groupName, String storageIpAddr) {
        super.request = new DeleteStorageRequest(groupName, storageIpAddr);