summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/GroupVariables.java
blob: 19db58851c404120ef0db967f76815eb5b7b6b07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.anjocaido.groupmanager.data;

import java.util.Map;

/**
 *
 * @author gabrielcouto
 */
public class GroupVariables extends Variables implements Cloneable {

    private Group owner;

    public GroupVariables(Group owner) {
        super(owner);
        this.owner = owner;
        addVar("prefix", "");
        addVar("suffix", "");
        addVar("build", false);
    }

    public GroupVariables(Group owner, Map<String, Object> varList) {
        super(owner);
        variables = varList;
        if (variables.get("prefix") == null) {
            variables.put("prefix", "");
            owner.flagAsChanged();
        }
        //thisGrp.prefix = infoNode.get("prefix").toString();

        if (variables.get("suffix") == null) {
            variables.put("suffix", "");
            owner.flagAsChanged();
        }
        //thisGrp.suffix = infoNode.get("suffix").toString();

        if (variables.get("build") == null) {
            variables.put("build", false);
            owner.flagAsChanged();
        }
        this.owner = owner;
    }

    /**
     * A clone of all vars here.
     * @return GroupVariables clone
     */
    protected GroupVariables clone(Group newOwner) {
        GroupVariables clone = new GroupVariables(newOwner);
        for (String key : variables.keySet()) {
            clone.variables.put(key, variables.get(key));
        }
        newOwner.flagAsChanged();
        return clone;
    }

    /**
     * Remove a var from the list
     * @param name
     */
    @Override
    public void removeVar(String name) {
        try {
            this.variables.remove(name);
        } catch (Exception e) {
        }
        if (name.equals("prefix")) {
            addVar("prefix", "");
        } else if (name.equals("suffix")) {
            addVar("suffix", "");
        } else if (name.equals("build")) {
            addVar("build", false);
        }
        owner.flagAsChanged();
    }

    /**
     * @return the owner
     */
    @Override
    public Group getOwner() {
        return owner;
    }
}