001package fr.aumgn.bukkitutils.itemtype;
002
003import org.bukkit.Material;
004
005public abstract class ItemTypeDataParser {
006
007    /**
008     * Get a data parser for the given material.
009     */
010    public static ItemTypeDataParser getFor(Material material) {
011        if (material == Material.WOOL) {
012            return new ColorDataParser(false);
013        }
014
015        if (material == Material.INK_SACK) {
016            return new ColorDataParser(true);
017        }
018
019        if (material == Material.WOOD
020                || material == Material.SAPLING
021                || material == Material.LOG
022                || material == Material.LEAVES
023                || material == Material.WOOD_DOUBLE_STEP
024                || material == Material.WOOD_STEP) {
025            return new WoodDataParser();
026        }
027
028        if (material == Material.DOUBLE_STEP
029                || material == Material.STEP) {
030            return new StepDataParser();
031        }
032
033        if (material == Material.SMOOTH_BRICK) {
034            return new SmoothBrickDataParser();
035        }
036
037        if (material == Material.POTION) {
038            return new PotionDataParser();
039        }
040
041        if (material == Material.MONSTER_EGG) {
042            return new MonsterEggDataParser();
043        }
044
045        if (material == Material.MONSTER_EGGS) {
046            return new MonsterEggsDataParser();
047        }
048
049        return null;
050    }
051
052    public abstract Short parse(String token);
053}