summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/GroupVariables.java
blob: e08d1db7dd0921d2d33b9968e3b5ca7e4d4b55ef (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
88
89
90
91
92
93
94
/*
 * 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;
	}
}