/**
 Class for basic pet data: name, age, and weight.
 */
public class Pet 
{
    private String name;
    private int age;       //in years
    private double weight; //in kg
    
    public Pet()
    {
        name = "No name yet.";
        age = 0;
        weight = 0; 
    }
    
    public Pet(String initialName)
    {
        name = initialName;
        age = 0;
        weight = 0;
    } 
    
    public Pet(int initialAge)
    {
        name = "No name yet";
        weight = 0;
        if (initialAge < 0)
        {
            System.out.println("Error: Negative age.");
            System.exit(0);
        } 
        else
        {
            age = initialAge;
        }
    }
    
    public Pet(double initialWeight)
    {
        name = "No name yet";
        age = 0;
        if (initialWeight < 0)
        {
            System.out.println("Error: Negative weight.");
            System.exit(0);
        }
        else
        {
            weight = initialWeight;
        }
    }
    
    public Pet(String initialName, int initialAge, double initialWeight)
    {
        name = initialName;
        if ((initialAge < 0) || (initialWeight < 0))
        {
            System.out.println("Error: Negative age or weight.");
            System.exit(0);
        }
        else
        {
            age = initialAge;
            weight = initialWeight;
        }
    }
    
    public void setPet(String newName, int newAge, double newWeight)
    {
        setName(newName);
        setAge(newAge);
        setWeight(newWeight);
    }
    
    public void setName(String newName)
    {
        name = newName; //age and weight are unchanged.
    }
    
    public void setAge(int newAge)
    {
        if (newAge < 0)
        {
            System.out.println("Error: Negative age.");
            System.exit(0);
        }
        else
        {
            age = newAge; //name and weight are unchanged. 
        }
    }
    
    public void setWeight(double newWeight)
    {
        if (newWeight < 0)
        {
            System.out.println("Error: Negative weight.");
            System.exit(0);
        }
        else
        {
            weight = newWeight; //name and age are unchanged.
        }
    }
    
    
    public String getName( )
    {
        return name;
    }
    
    public int getAge( )
    {
        return age;
    }
    
    public double getWeight( )
    {
        return weight;
    }
    
    public String toString( ) 
    {
        String rval = "";
        rval += "Name:   " + name + "\n";
        rval += "Age:    " + age + " years" + "\n";
        rval += "Weight: " + weight + " kg" + "\n";
        return rval;
    }
}
