UnixUser.java

package eu.javaexperience.unix.user;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.Principal;

import eu.javaexperience.reflect.Mirror;
import eu.javaexperience.unix.user.exception.GroupDoesnotExistException;
import eu.javaexperience.unix.user.exception.UserDoesnotExistException;

public class UnixUser implements UnixUserEntity, Principal
{
	protected final String username;
	protected final int uid;
	
	public UnixUser(String username, int uid)
	{
		this.username = username;
		this.uid = uid;
	}
	
	@Override
	public String getName()
	{
		return username;
	}

	@Override
	public String getUsername()
	{
		return username;
	}

	@Override
	public int getUid()
	{
		return uid;
	}

	@Override
	public String getDefaultGroupname()
	{
		try
		{
			return UnixEntityManager.getUserDefaultGroupName(username);
		}
		catch(Exception e)
		{
			return null;
		}
	}

	@Override
	public int getDefaultGroupGid()
	{
		try
		{
			return UnixEntityManager.getUserDefaultGroupGid(username);
		}
		catch (Exception e)
		{
			return -1;
		}
	}

	@Override
	public UnixGroup getDefaultGroup()
	{
		try
		{
			return UnixGroup.getInstanceByName(UnixEntityManager.getUserDefaultGroupName(username));
		}
		catch (Exception e)
		{
			return null;
		}
	}

	@Override
	public UnixGroupEntity[] getUnixGroups() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String[] getUnixGroupNames()
	{
		try
		{
			return UnixEntityManager.getUserGroups(username);
		}
		catch (Exception e)
		{
			return Mirror.emptyStringArray;
		}
	}

	@Override
	public int[] getUnixGids() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String toString()
	{
		return "UnixUser: "+username;
	}

	public String getHomePath() throws UserDoesnotExistException, IOException
	{
		return UnixEntityManager.getUserHomePath(username);
	}

	public String getRealName() throws UserDoesnotExistException, IOException
	{
		return UnixEntityManager.getUserRealName(username);
	}
}