// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/factory/ReplyEnumFactory.java
// public enum ReplyEnumFactory {
//     TEXT("text", new TextReplyBuilder()),
//     NEWS("news", new NewsReplyBuilder()),
//     MUSIC("music", new MusicReplyBuilder()),
//     IMAGE("image", new ImageReplyBuilder()),
//     VOICE("voice", new VoiceReplyBuilder()),
//     VIDEO("video", new VideoReplyBuilder());
// 
//     private String replyType;
//     private ReplyBuilder replyBuilder;
// 
//     private ReplyEnumFactory(String replyType, ReplyBuilder replyBuilder) {
//         this.replyType = replyType;
//         this.replyBuilder = replyBuilder;
//     }
// 
//     public String getReplyType() {
//         return replyType;
//     }
// 
//     public Reply buildReply(List<ReplyDetail> replyDetails) {
//         if (replyDetails == null || replyDetails.isEmpty()) {
//             return null;
//         }
// 
//         return replyBuilder.buildReply(replyDetails);
//     }
// 
// }
// 
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/message/reply/detail/MediaDetail.java
// @XmlAccessorType(XmlAccessType.FIELD)
// public class MediaDetail extends AbstractToStringBuilder {
//     @XmlElement(name = "MediaId")
//     private String mediaId;
// 
//     public MediaDetail() {
//     }
// 
//     public MediaDetail(String mediaId) {
//         this.mediaId = mediaId;
//     }
// 
//     public String getMediaId() {
//         return mediaId;
//     }
// 
//     public void setMediaId(String mediaId) {
//         this.mediaId = mediaId;
//     }
// 
// }


import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import org.usc.wechat.mp.sdk.factory.ReplyEnumFactory;
import org.usc.wechat.mp.sdk.vo.message.reply.detail.MediaDetail;
package org.usc.wechat.mp.sdk.vo.message.reply;



/**
 *
 * @author Shunli
 */
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class ImageReply extends Reply {
    @XmlElement(name = "Image")
    private MediaDetail imageDetail;

    {
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/factory/ReplyEnumFactory.java
// public enum ReplyEnumFactory {
//     TEXT("text", new TextReplyBuilder()),
//     NEWS("news", new NewsReplyBuilder()),
//     MUSIC("music", new MusicReplyBuilder()),
//     IMAGE("image", new ImageReplyBuilder()),
//     VOICE("voice", new VoiceReplyBuilder()),
//     VIDEO("video", new VideoReplyBuilder());
// 
//     private String replyType;
//     private ReplyBuilder replyBuilder;
// 
//     private ReplyEnumFactory(String replyType, ReplyBuilder replyBuilder) {
//         this.replyType = replyType;
//         this.replyBuilder = replyBuilder;
//     }
// 
//     public String getReplyType() {
//         return replyType;
//     }
// 
//     public Reply buildReply(List<ReplyDetail> replyDetails) {
//         if (replyDetails == null || replyDetails.isEmpty()) {
//             return null;
//         }
// 
//         return replyBuilder.buildReply(replyDetails);
//     }
// 
// }
// 
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/message/reply/detail/MediaDetail.java
// @XmlAccessorType(XmlAccessType.FIELD)
// public class MediaDetail extends AbstractToStringBuilder {
//     @XmlElement(name = "MediaId")
//     private String mediaId;
// 
//     public MediaDetail() {
//     }
// 
//     public MediaDetail(String mediaId) {
//         this.mediaId = mediaId;
//     }
// 
//     public String getMediaId() {
//         return mediaId;
//     }
// 
//     public void setMediaId(String mediaId) {
//         this.mediaId = mediaId;
//     }
// 
// }


// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/message/reply/ImageReply.java
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import org.usc.wechat.mp.sdk.factory.ReplyEnumFactory;
import org.usc.wechat.mp.sdk.vo.message.reply.detail.MediaDetail;

package org.usc.wechat.mp.sdk.vo.message.reply;



/**
 *
 * @author Shunli
 */
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class ImageReply extends Reply {
    @XmlElement(name = "Image")
    private MediaDetail imageDetail;

    {
        super.setMsgType(ReplyEnumFactory.IMAGE.getReplyType());