package com.bocloud.ims.service.internal.worker;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.Map;

/**
 * @author wangyu
 * @version 5.0.0-SNAPSHOT
 * @since 2021/3/12
 */
public class Module<Entity> {
    private String name;
    private Entity args;
    private Option options;
    @JSONField(name = "bocloud_decrypt")
    @JsonProperty(value = "bocloud_decrypt")
    private Map<String, Object> bocloudDecrypt;

    public Module(String name, Entity args, Map<String, Object> bocloudDecrypt) {
        this.name = name;
        this.args = args;
        this.bocloudDecrypt = bocloudDecrypt;
    }

    public Module(String name, Entity args) {
        this.name = name;
        this.args = args;
    }

    public Module(String name, Entity args, Option options) {
        this.name = name;
        this.args = args;
        this.options = options;
    }

    public Module(String name) {
        this.name = name;
    }

    public Module() {
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Entity getArgs() {
        return this.args;
    }

    public void setArgs(Entity args) {
        this.args = args;
    }

    public Option getOptions() {
        return this.options;
    }

    public void setOptions(Option options) {
        this.options = options;
    }

    public Map<String, Object> getBocloudDecrypt() {
        return bocloudDecrypt;
    }

    public void setBocloudDecrypt(Map<String, Object> bocloudDecrypt) {
        this.bocloudDecrypt = bocloudDecrypt;
    }
}

