1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-09-25 21:59:08 +02:00

Moving all files to trunk.

git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@969 e251c2fe-e539-e718-e476-b85c1f46cddb
This commit is contained in:
snowleo
2011-03-19 22:39:51 +00:00
parent 487577f2fa
commit a3ebd254f2
221 changed files with 29722 additions and 0 deletions

View File

@@ -0,0 +1,187 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.anjocaido.groupmanager.data;
import com.sun.org.apache.bcel.internal.generic.AALOAD;
import java.util.ArrayList;
import org.anjocaido.groupmanager.dataholder.WorldDataHolder;
import java.util.Map;
/**
*
* @author gabrielcouto
*/
public class User extends DataUnit implements Cloneable {
/**
*
*/
private String group = null;
private ArrayList<String> subGroups = new ArrayList<String>();
/**
*This one holds the fields in INFO node.
* like prefix = 'c'
* or build = false
*/
private UserVariables variables = new UserVariables(this);
/**
*
* @param name
*/
public User(WorldDataHolder source, String name) {
super(source,name);
this.group = source.getDefaultGroup().getName();
}
/**
*
* @return
*/
@Override
public User clone() {
User clone = new User(getDataSource(), this.getName());
clone.group = this.group;
for(String perm: this.getPermissionList()){
clone.addPermission(perm);
}
//clone.variables = this.variables.clone();
//clone.flagAsChanged();
return clone;
}
/**
* Use this to deliver a user from one WorldDataHolder to another
* @param dataSource
* @return null if given dataSource already contains the same user
*/
public User clone(WorldDataHolder dataSource) {
if (dataSource.isUserDeclared(this.getName())) {
return null;
}
User clone = dataSource.createUser(this.getName());
if (dataSource.getGroup(group) == null) {
clone.setGroup(dataSource.getDefaultGroup());
} else {
clone.setGroup(this.getGroupName());
}
for(String perm: this.getPermissionList()){
clone.addPermission(perm);
}
//clone.variables = this.variables.clone();
clone.flagAsChanged();
return clone;
}
public Group getGroup() {
Group result = getDataSource().getGroup(group);
if (result == null) {
this.setGroup(getDataSource().getDefaultGroup());
result = getDataSource().getDefaultGroup();
}
return result;
}
/**
* @return the group
*/
public String getGroupName() {
Group result = getDataSource().getGroup(group);
if (result == null) {
group = getDataSource().getDefaultGroup().getName();
}
return group;
}
/**
* @param group the group to set
*/
@Deprecated
public void setGroup(String group) {
this.group = group;
flagAsChanged();
}
/**
* @param group the group to set
*/
public void setGroup(Group group) {
if (!this.getDataSource().groupExists(group.getName())) {
getDataSource().addGroup(group);
}
group = getDataSource().getGroup(group.getName());
this.group = group.getName();
flagAsChanged();
}
public void addSubGroup(Group subGroup){
if(this.group.equalsIgnoreCase(subGroup.getName())){
return;
}
if (!this.getDataSource().groupExists(subGroup.getName())) {
getDataSource().addGroup(subGroup);
}
subGroup = getDataSource().getGroup(subGroup.getName());
removeSubGroup(subGroup);
subGroups.add(subGroup.getName());
flagAsChanged();
}
public int subGroupsSize(){
return subGroups.size();
}
public boolean isSubGroupsEmpty(){
return subGroups.isEmpty();
}
public boolean containsSubGroup(Group subGroup){
return subGroups.contains(subGroup.getName());
}
public boolean removeSubGroup(Group subGroup){
try{
if(subGroups.remove(subGroup.getName())){
flagAsChanged();
return true;
}
} catch (Exception e){
}
return false;
}
public ArrayList<Group> subGroupListCopy(){
ArrayList<Group> val = new ArrayList<Group>();
for(String gstr: subGroups){
Group g = getDataSource().getGroup(gstr);
if(g==null){
removeSubGroup(g);
continue;
}
val.add(g);
}
return val;
}
public ArrayList<String> subGroupListStringCopy(){
return (ArrayList<String>) subGroups.clone();
}
/**
* @return the variables
*/
public UserVariables getVariables() {
return variables;
}
/**
*
* @param varList
*/
public void setVariables(Map<String, Object> varList) {
UserVariables temp = new UserVariables(this, varList);
variables.clearVars();
for(String key: temp.getVarKeyList()){
variables.addVar(key, temp.getVarObject(key));
}
flagAsChanged();
}
}