package com.intrbiz.bergamot.config.model;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import com.intrbiz.bergamot.config.adapter.CSVAdapter;
import com.intrbiz.bergamot.config.resolver.ResolveWith;
import com.intrbiz.bergamot.config.resolver.stratergy.SmartMergeSet;
@XmlType(name = "group")
@XmlRootElement(name = "group")
public class GroupCfg extends SecuredObjectCfg<GroupCfg>
{
private static final long serialVersionUID = 1L;
private Set<String> groups = new LinkedHashSet<String>();
public GroupCfg()
{
super();
}
public GroupCfg(String name, String summary)
{
super();
this.setName(name);
this.setSummary(summary);
}
@XmlJavaTypeAdapter(CSVAdapter.class)
@XmlAttribute(name = "groups")
@ResolveWith(SmartMergeSet.class)
public Set<String> getGroups()
{
return groups;
}
public void setGroups(Set<String> groups)
{
this.groups = groups;
}
public void addGroup(String group)
{
this.groups.add(group);
}
public void removeGroup(String group)
{
this.groups.remove(group);
}
public boolean containsGroup(String name)
{
return this.groups.contains(name);
}
public List<TemplatedObjectCfg<?>> getTemplatedChildObjects()
{
List<TemplatedObjectCfg<?>> r = new LinkedList<TemplatedObjectCfg<?>>();
return r;
}
}