/*
 * Created on 21-Feb-2005
 */
package org.bodington.servlet.facilities;

import java.util.Collections;
import java.util.Iterator;

import org.bodington.server.realm.Group;
import org.bodington.server.realm.User;

/**
 * @author buckett
 */
public class AclGroupResourcePermission extends AclResourcePermission
{
    private Group group; 
    private User user;

    /**
     * Gets the user associated with this permission
     * @see org.bodington.servlet.facilities.AclResourcePermission#getUser()
     */
    public User getUser()
    {
        return user;
    }

    /* (non-Javadoc)
     * @see org.bodington.servlet.facilities.AclResourcePermission#getGroups()
     */
    public Iterator getGroups()
    {
        return Collections.singletonList(group).iterator();
    }
    
    public Group getGroup()
    {
        return this.group;
    }
    
    public void setGroup(Group group)
    {
        this.group = group;
        this.user = new User();
        this.user.setName(group.getDescription());
    }
    
    /**
     * Compare the group names.
     */
    public int compareTo(Object other)
    {
        try
        {
            AclGroupResourcePermission otherGroup = (AclGroupResourcePermission)other;
            return getGroup().getName().compareTo(otherGroup.getGroup().getName());
        }
        catch (ClassCastException cce)
        {
            return super.compareTo((AclResourcePermission)other);
        }
    }

}
