package se.apiva;

import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonGetter;
import com.fasterxml.jackson.annotation.JsonSetter;

import java.util.HashMap;
import java.util.Map;

public class Villain {

    private String name;
    private int damage;
    private Map<String, Villain> henchmen = new HashMap<>();

    public Villain(){}

    public Villain(String name, int damage){
        this.name = name;
        this.damage = damage;
    }

    public String getName() {
        return name;
    }

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

    @JsonGetter("strength")
    public int getDamage() {
        return damage;
    }

    @JsonSetter("strength")
    public void setDamage(int damage) {
        this.damage = damage;
    }

    @JsonAnyGetter
    public Map<String, Villain> getHenchmen() {
        return henchmen;
    }

    public void setHenchmen(Map<String, Villain> henchmen) {
        this.henchmen = henchmen;
    }

    @JsonAnySetter
    public void setHenchmen(String key, Villain villain){
        this.henchmen.put(key, villain);
    }
}
