// Path: elasticservice/src/main/java/elasticsearch/constant/ESConstants.java
// public class ESConstants {
//     public      static  final   String STORE_INDEX = "stores";
//     public      static  final   String PRODUCT_TYPE = "product";
//     public      static  final   String SKU_TYPE = "sku";
//     public      static  final   String PRODUCT_PROPERTY = "productproperty";
//     public      static  final   String CHANNEL_TYPE = "channels";
//     public      static  final   int SNIFFER_INTERVAL = 15000;
//     public      static  final   int RESTCLIENT_TIMEOUT = 20000; // 20s
// 
// 
//     public      static  final   Pattern ROUTINGKEY_PATTERN = Pattern.compile("([\\w\\.]+)\\.(\\w+)\\.(\\d+)");
// 
// }
// 
// Path: elasticservice/src/main/java/elasticsearch/esapi/resp/ESGetByIdResponse.java
// public class ESGetByIdResponse extends ESBaseResponse {
//     private Boolean found;
//     @SerializedName("_source")
//     private JsonObject object;
// 
//     public Boolean getFound() {
//         return found;
//     }
// 
//     public void setFound(Boolean found) {
//         this.found = found;
//     }
// 
//     public JsonObject getObject() {
//         return object;
//     }
// 
//     public void setObject(JsonObject object) {
//         this.object = object;
//     }
// 
//     @Override
//     public String toString() {
//         return super.toString() + "ESGetByIdResponse{" +
//                 "found=" + found +
//                 ", object=" + object +
//                 '}';
//     }
// }
// 
// Path: rabbitmqservice/src/main/java/sync/common/ESHandleMessage.java
// public class ESHandleMessage {
//     private Long tenantId;
//     private String type;
//     private OperateAction action;
//     private byte[] msgBody;
//     private JsonElement jsonElement;
// 
//     private boolean needSendEvent = true;
//     private boolean isEventGenerated = false;
// 
//     private List<Long> productIds = null;
//     private Long channelId = null;
// 
//     public ESHandleMessage() {
//     }
// 
//     public ESHandleMessage(Long tenantId, String indexType, String action, byte[] msgBody) {
//         this.tenantId = tenantId;
//         this.type = indexType;
//         this.action = OperateAction.valueOf(action);
//         this.msgBody = msgBody;
//     }
// 
//     public Long getTenantId() {
//         return tenantId;
//     }
// 
//     public void setTenantId(Long tenantId) {
//         this.tenantId = tenantId;
//     }
// 
//     public String getType() {
//         return type;
//     }
// 
//     public void setType(String type) {
//         this.type = type;
//     }
// 
//     public OperateAction getAction() {
//         return action;
//     }
// 
//     public void setAction(OperateAction action) {
//         this.action = action;
//     }
// 
//     public byte[] getMsgBody() {
//         return msgBody;
//     }
// 
//     public void setMsgBody(byte[] msgBody) {
//         this.msgBody = msgBody;
//     }
// 
//     public List<Long> getProductIds() {
//         return productIds;
//     }
// 
//     public void setProductIds(List<Long> productIds) {
//         this.productIds = productIds;
//     }
// 
//     public boolean isNeedSendEvent() {
//         return needSendEvent;
//     }
// 
//     public boolean isProductIdsEmpty() {
//         return CollectionUtils.isEmpty(this.productIds);
//     }
// 
//     public void setNeedSendEvent(boolean needSendEvent) {
//         this.needSendEvent = needSendEvent;
//     }
// 
//     public JsonElement getJsonElement() {
//         return jsonElement;
//     }
// 
//     public void setJsonElement(JsonElement jsonElement) {
//         this.jsonElement = jsonElement;
//     }
// 
//     public Long getChannelId() {
//         return channelId;
//     }
// 
//     public void setChannelId(Long channelId) {
//         this.channelId = channelId;
//     }
// 
//     public boolean isEventGenerated() {
//         return isEventGenerated;
//     }
// 
//     public void setEventGenerated(boolean eventGenerated) {
//         isEventGenerated = eventGenerated;
//     }
// 
//     @Override
//     public String toString() {
//         return "ESHandleMessage{" +
//                 "tenantId=" + tenantId +
//                 ", type='" + type + '\'' +
//                 ", searchcommand=" + action +
//                 ", needSendEvent=" + needSendEvent +
//                 ", isEventGenerated=" + isEventGenerated +
//                 ", productIds=" + productIds +
//                 ", channelId=" + channelId +
//                 '}';
//     }
// }
// 
// Path: rabbitmqservice/src/main/java/sync/common/OperateAction.java
// public enum OperateAction {
//     CREATE,
//     UPDATE,
//     DELETE,
//     ASSOCIATE,
//     DISASSOCIATE,
//     LIST,
//     UNLIST
// }


import com.google.gson.JsonObject;
import elasticsearch.constant.ESConstants;
import elasticsearch.esapi.resp.ESGetByIdResponse;
import sync.common.ESHandleMessage;
import sync.common.OperateAction;
import java.util.ArrayList;
import java.util.HashMap;

package sync.handler.impl;



/**
 * Created by I311352 on 10/17/2016.
 */
public class ESSKUSyncHandler extends ESAbstractHandler{

    @Override

// Path: elasticservice/src/main/java/elasticsearch/constant/ESConstants.java
// public class ESConstants {
//     public      static  final   String STORE_INDEX = "stores";
//     public      static  final   String PRODUCT_TYPE = "product";
//     public      static  final   String SKU_TYPE = "sku";
//     public      static  final   String PRODUCT_PROPERTY = "productproperty";
//     public      static  final   String CHANNEL_TYPE = "channels";
//     public      static  final   int SNIFFER_INTERVAL = 15000;
//     public      static  final   int RESTCLIENT_TIMEOUT = 20000; // 20s
// 
// 
//     public      static  final   Pattern ROUTINGKEY_PATTERN = Pattern.compile("([\\w\\.]+)\\.(\\w+)\\.(\\d+)");
// 
// }
// 
// Path: elasticservice/src/main/java/elasticsearch/esapi/resp/ESGetByIdResponse.java
// public class ESGetByIdResponse extends ESBaseResponse {
//     private Boolean found;
//     @SerializedName("_source")
//     private JsonObject object;
// 
//     public Boolean getFound() {
//         return found;
//     }
// 
//     public void setFound(Boolean found) {
//         this.found = found;
//     }
// 
//     public JsonObject getObject() {
//         return object;
//     }
// 
//     public void setObject(JsonObject object) {
//         this.object = object;
//     }
// 
//     @Override
//     public String toString() {
//         return super.toString() + "ESGetByIdResponse{" +
//                 "found=" + found +
//                 ", object=" + object +
//                 '}';
//     }
// }
// 
// Path: rabbitmqservice/src/main/java/sync/common/ESHandleMessage.java
// public class ESHandleMessage {
//     private Long tenantId;
//     private String type;
//     private OperateAction action;
//     private byte[] msgBody;
//     private JsonElement jsonElement;
// 
//     private boolean needSendEvent = true;
//     private boolean isEventGenerated = false;
// 
//     private List<Long> productIds = null;
//     private Long channelId = null;
// 
//     public ESHandleMessage() {
//     }
// 
//     public ESHandleMessage(Long tenantId, String indexType, String action, byte[] msgBody) {
//         this.tenantId = tenantId;
//         this.type = indexType;
//         this.action = OperateAction.valueOf(action);
//         this.msgBody = msgBody;
//     }
// 
//     public Long getTenantId() {
//         return tenantId;
//     }
// 
//     public void setTenantId(Long tenantId) {
//         this.tenantId = tenantId;
//     }
// 
//     public String getType() {
//         return type;
//     }
// 
//     public void setType(String type) {
//         this.type = type;
//     }
// 
//     public OperateAction getAction() {
//         return action;
//     }
// 
//     public void setAction(OperateAction action) {
//         this.action = action;
//     }
// 
//     public byte[] getMsgBody() {
//         return msgBody;
//     }
// 
//     public void setMsgBody(byte[] msgBody) {
//         this.msgBody = msgBody;
//     }
// 
//     public List<Long> getProductIds() {
//         return productIds;
//     }
// 
//     public void setProductIds(List<Long> productIds) {
//         this.productIds = productIds;
//     }
// 
//     public boolean isNeedSendEvent() {
//         return needSendEvent;
//     }
// 
//     public boolean isProductIdsEmpty() {
//         return CollectionUtils.isEmpty(this.productIds);
//     }
// 
//     public void setNeedSendEvent(boolean needSendEvent) {
//         this.needSendEvent = needSendEvent;
//     }
// 
//     public JsonElement getJsonElement() {
//         return jsonElement;
//     }
// 
//     public void setJsonElement(JsonElement jsonElement) {
//         this.jsonElement = jsonElement;
//     }
// 
//     public Long getChannelId() {
//         return channelId;
//     }
// 
//     public void setChannelId(Long channelId) {
//         this.channelId = channelId;
//     }
// 
//     public boolean isEventGenerated() {
//         return isEventGenerated;
//     }
// 
//     public void setEventGenerated(boolean eventGenerated) {
//         isEventGenerated = eventGenerated;
//     }
// 
//     @Override
//     public String toString() {
//         return "ESHandleMessage{" +
//                 "tenantId=" + tenantId +
//                 ", type='" + type + '\'' +
//                 ", searchcommand=" + action +
//                 ", needSendEvent=" + needSendEvent +
//                 ", isEventGenerated=" + isEventGenerated +
//                 ", productIds=" + productIds +
//                 ", channelId=" + channelId +
//                 '}';
//     }
// }
// 
// Path: rabbitmqservice/src/main/java/sync/common/OperateAction.java
// public enum OperateAction {
//     CREATE,
//     UPDATE,
//     DELETE,
//     ASSOCIATE,
//     DISASSOCIATE,
//     LIST,
//     UNLIST
// }


// Path: rabbitmqservice/src/main/java/sync/handler/impl/ESSKUSyncHandler.java
import com.google.gson.JsonObject;
import elasticsearch.constant.ESConstants;
import elasticsearch.esapi.resp.ESGetByIdResponse;
import sync.common.ESHandleMessage;
import sync.common.OperateAction;
import java.util.ArrayList;
import java.util.HashMap;

package sync.handler.impl;



/**
 * Created by I311352 on 10/17/2016.
 */
public class ESSKUSyncHandler extends ESAbstractHandler{

    @Override

    public boolean handleCreate(ESHandleMessage message) {
