001    package org.bukkit.material;
002    
003    import org.bukkit.GrassSpecies;
004    import org.bukkit.Material;
005    
006    /**
007     * Represents the different types of long grasses.
008     */
009    public class LongGrass extends MaterialData {
010        public LongGrass() {
011            super(Material.LONG_GRASS);
012        }
013    
014        public LongGrass(GrassSpecies species) {
015            this();
016            setSpecies(species);
017        }
018    
019        /**
020         *
021         * @deprecated Magic value
022         */
023        @Deprecated
024        public LongGrass(final int type) {
025            super(type);
026        }
027    
028        public LongGrass(final Material type) {
029            super(type);
030        }
031    
032        /**
033         *
034         * @deprecated Magic value
035         */
036        @Deprecated
037        public LongGrass(final int type, final byte data) {
038            super(type, data);
039        }
040    
041        /**
042         *
043         * @deprecated Magic value
044         */
045        @Deprecated
046        public LongGrass(final Material type, final byte data) {
047            super(type, data);
048        }
049    
050        /**
051         * Gets the current species of this grass
052         *
053         * @return GrassSpecies of this grass
054         */
055        public GrassSpecies getSpecies() {
056            return GrassSpecies.getByData(getData());
057        }
058    
059        /**
060         * Sets the species of this grass
061         *
062         * @param species New species of this grass
063         */
064        public void setSpecies(GrassSpecies species) {
065            setData(species.getData());
066        }
067    
068        @Override
069        public String toString() {
070            return getSpecies() + " " + super.toString();
071        }
072    
073        @Override
074        public LongGrass clone() {
075            return (LongGrass) super.clone();
076        }
077    }