// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.npc.storage;

import javax.annotation.Nonnull;
import com.hypixel.hytale.server.core.entity.Entity;
import java.util.HashMap;
import java.util.Map;

public abstract class ParameterStore<Type extends PersistentParameter<?>>
{
    protected Map<String, Type> parameters;
    
    protected ParameterStore() {
        this.parameters = new HashMap<String, Type>();
    }
    
    public Type get(@Nonnull final Entity owner, final String name) {
        Type parameter = this.parameters.get(name);
        if (parameter == null) {
            parameter = this.createParameter();
            this.parameters.put(name, parameter);
            owner.markNeedsSave();
        }
        return parameter;
    }
    
    protected abstract Type createParameter();
}
