package org.bukkit.metadata;
import org.bukkit.plugin.Plugin;
public interface MetadataValue
{
/**
* Fetches the value of this metadata item.
*
* @return the metadata value.
*/
public Object value();
/**
* Attempts to convert the value of this metadata item into an int.
*
* @return the value as an int.
*/
public int asInt();
/**
* Attempts to convert the value of this metadata item into a float.
*
* @return the value as a float.
*/
public float asFloat();
/**
* Attempts to convert the value of this metadata item into a double.
*
* @return the value as a double.
*/
public double asDouble();
/**
* Attempts to convert the value of this metadata item into a long.
*
* @return the value as a long.
*/
public long asLong();
/**
* Attempts to convert the value of this metadata item into a short.
*
* @return the value as a short.
*/
public short asShort();
/**
* Attempts to convert the value of this metadata item into a byte.
*
* @return the value as a byte.
*/
public byte asByte();
/**
* Attempts to convert the value of this metadata item into a boolean.
*
* @return the value as a boolean.
*/
public boolean asBoolean();
/**
* Attempts to convert the value of this metadata item into a string.
*
* @return the value as a string.
*/
public String asString();
/**
* Returns the {@link Plugin} that created this metadata item.
*
* @return the plugin that owns this metadata value. This should never be
* null.
*/
public Plugin getOwningPlugin();
/**
* Invalidates this metadata item, forcing it to recompute when next
* accessed.
*/
public void invalidate();
}