001 package org.bukkit.metadata;
002
003 import org.bukkit.plugin.Plugin;
004
005 public interface MetadataValue {
006
007 /**
008 * Fetches the value of this metadata item.
009 *
010 * @return the metadata value.
011 */
012 public Object value();
013
014 /**
015 * Attempts to convert the value of this metadata item into an int.
016 *
017 * @return the value as an int.
018 */
019 public int asInt();
020
021 /**
022 * Attempts to convert the value of this metadata item into a float.
023 *
024 * @return the value as a float.
025 */
026 public float asFloat();
027
028 /**
029 * Attempts to convert the value of this metadata item into a double.
030 *
031 * @return the value as a double.
032 */
033 public double asDouble();
034
035 /**
036 * Attempts to convert the value of this metadata item into a long.
037 *
038 * @return the value as a long.
039 */
040 public long asLong();
041
042 /**
043 * Attempts to convert the value of this metadata item into a short.
044 *
045 * @return the value as a short.
046 */
047 public short asShort();
048
049 /**
050 * Attempts to convert the value of this metadata item into a byte.
051 *
052 * @return the value as a byte.
053 */
054 public byte asByte();
055
056 /**
057 * Attempts to convert the value of this metadata item into a boolean.
058 *
059 * @return the value as a boolean.
060 */
061 public boolean asBoolean();
062
063 /**
064 * Attempts to convert the value of this metadata item into a string.
065 *
066 * @return the value as a string.
067 */
068 public String asString();
069
070 /**
071 * Returns the {@link Plugin} that created this metadata item.
072 *
073 * @return the plugin that owns this metadata value. This should never be
074 * null.
075 */
076 public Plugin getOwningPlugin();
077
078 /**
079 * Invalidates this metadata item, forcing it to recompute when next
080 * accessed.
081 */
082 public void invalidate();
083 }