// Path: mq-aliyun-consumer-spring-boot-starter/src/main/java/com/github/mq/consumer/models/Action.java
// public enum Action {
//     commit,
//     reconsume;
//     Action(){}
// }
// 
// Path: mq-aliyun-consumer-spring-boot-starter/src/main/java/com/github/mq/consumer/models/Result.java
// public class Result<T> {
//     private T result;
//     private Action action;
// 
//     public Result(T result) {
//         this.result = result;
//     }
// 
//     public Result(Action action) {
//         this.action = action;
//     }
// 
//     public Object getResult() {
//         return result;
//     }
// 
//     public Action getAction() {
//         return action;
//     }
// }
// 
// Path: mq-aliyun-consumer-spring-boot-starter/src/main/java/com/github/mq/consumer/models/Results.java
// public class Results {
// 
//     public static <T> Result<T> next(T result){
//         return new Result(result);
//     }
// 
//     public static Result end(Action action){
//         return new Result(action);
//     }
// }
// 
// Path: mq-aliyun-consumer-spring-boot-starter/src/main/java/com/github/mq/consumer/parms/ArgumentExtractor.java
// public interface ArgumentExtractor<T> {
//     Result<T> extract(Message message, Class<?> parameterClass, Annotation annotation);
// 
// }


import com.aliyun.openservices.ons.api.Message;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.mq.consumer.models.Action;
import com.github.mq.consumer.models.Result;
import com.github.mq.consumer.models.Results;
import com.github.mq.consumer.parms.ArgumentExtractor;
import java.io.IOException;
import java.lang.annotation.Annotation;
package com.mq.aliyun.example.model;



/**
 * Created by wangziqing on 17/7/25.
 */
public class JackArgumentExtractor implements ArgumentExtractor {

    private static final ObjectMapper mapper = new ObjectMapper();

    @Override
// Path: mq-aliyun-consumer-spring-boot-starter/src/main/java/com/github/mq/consumer/models/Action.java
// public enum Action {
//     commit,
//     reconsume;
//     Action(){}
// }
// 
// Path: mq-aliyun-consumer-spring-boot-starter/src/main/java/com/github/mq/consumer/models/Result.java
// public class Result<T> {
//     private T result;
//     private Action action;
// 
//     public Result(T result) {
//         this.result = result;
//     }
// 
//     public Result(Action action) {
//         this.action = action;
//     }
// 
//     public Object getResult() {
//         return result;
//     }
// 
//     public Action getAction() {
//         return action;
//     }
// }
// 
// Path: mq-aliyun-consumer-spring-boot-starter/src/main/java/com/github/mq/consumer/models/Results.java
// public class Results {
// 
//     public static <T> Result<T> next(T result){
//         return new Result(result);
//     }
// 
//     public static Result end(Action action){
//         return new Result(action);
//     }
// }
// 
// Path: mq-aliyun-consumer-spring-boot-starter/src/main/java/com/github/mq/consumer/parms/ArgumentExtractor.java
// public interface ArgumentExtractor<T> {
//     Result<T> extract(Message message, Class<?> parameterClass, Annotation annotation);
// 
// }


// Path: mq-aliyun-example/src/main/java/com/mq/aliyun/example/model/JackArgumentExtractor.java
import com.aliyun.openservices.ons.api.Message;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.mq.consumer.models.Action;
import com.github.mq.consumer.models.Result;
import com.github.mq.consumer.models.Results;
import com.github.mq.consumer.parms.ArgumentExtractor;
import java.io.IOException;
import java.lang.annotation.Annotation;

package com.mq.aliyun.example.model;



/**
 * Created by wangziqing on 17/7/25.
 */
public class JackArgumentExtractor implements ArgumentExtractor {

    private static final ObjectMapper mapper = new ObjectMapper();

    @Override
    public Result extract(Message message, Class parameterClass, Annotation annotation) {