001    package org.bukkit.entity;
002    
003    /**
004     * Represents an entity that can age and breed.
005     */
006    public interface Ageable extends Creature {    
007        /**
008         * Gets the age of this animal.
009         *
010         * @return Age
011         */
012        public int getAge();
013    
014        /**
015         * Sets the age of this animal.
016         *
017         * @param age New age
018         */
019        public void setAge(int age);
020    
021        /**
022         * Lock the age of the animal, setting this will prevent the animal from
023         * maturing or getting ready for mating.
024         *
025         * @param lock new lock
026         */
027        public void setAgeLock(boolean lock);
028    
029        /**
030         * Gets the current agelock.
031         *
032         * @return the current agelock
033         */
034        public boolean getAgeLock();
035    
036        /**
037         * Sets the age of the animal to a baby
038         */
039        public void setBaby();
040    
041        /**
042         * Sets the age of the animal to an adult
043         */
044        public void setAdult();
045    
046        /**
047         * Returns true if the animal is an adult.
048         *
049         * @return return true if the animal is an adult
050         */
051        public boolean isAdult();
052        
053        /**
054         * Return the ability to breed of the animal.
055         *
056         * @return the ability to breed of the animal
057         */
058        public boolean canBreed();
059    
060        /**
061         * Set breedability of the animal, if the animal is a baby and set to
062         * breed it will instantly grow up.
063         *
064         * @param breed breedability of the animal
065         */
066        public void setBreed(boolean breed);
067    }