001 /**
002 * This software is provided under the terms of the Minecraft Forge Public
003 * License v1.0.
004 */
005
006 package net.minecraftforge.common;
007
008 public class Property
009 {
010 public enum Type
011 {
012 STRING,
013 INTEGER,
014 BOOLEAN
015 }
016
017 private String name;
018 public String value;
019 public String comment;
020 private Type type; //Currently does nothing, need to design a way to save/load from the file.
021
022 public Property(){}
023
024 public Property(String name, String value, Type type)
025 {
026 setName(name);
027 this.value = value;
028 this.type = type;
029 }
030
031 /**
032 * Returns the value in this property as a integer,
033 * if the value is not a valid integer, it will return -1.
034 *
035 * @return The value
036 */
037 public int getInt()
038 {
039 return getInt(-1);
040 }
041
042 /**
043 * Returns the value in this property as a integer,
044 * if the value is not a valid integer, it will return the
045 * provided default.
046 *
047 * @param _default The default to provide if the current value is not a valid integer
048 * @return The value
049 */
050 public int getInt(int _default)
051 {
052 try
053 {
054 return Integer.parseInt(value);
055 }
056 catch (NumberFormatException e)
057 {
058 return _default;
059 }
060 }
061
062 /**
063 * Checks if the current value stored in this property can be converted to an integer.
064 * @return True if the vslue can be converted to an integer
065 */
066 public boolean isIntValue()
067 {
068 try
069 {
070 Integer.parseInt(value);
071 return true;
072 }
073 catch (NumberFormatException e)
074 {
075 return false;
076 }
077 }
078
079 /**
080 * Returns the value in this property as a boolean,
081 * if the value is not a valid boolean, it will return the
082 * provided default.
083 *
084 * @param _default The default to provide
085 * @return The value as a boolean, or the default
086 */
087 public boolean getBoolean(boolean _default)
088 {
089 if (isBooleanValue())
090 {
091 return Boolean.parseBoolean(value);
092 }
093 else
094 {
095 return _default;
096 }
097 }
098
099 /**
100 * Checks if the current value held by this property is a valid boolean value.
101 * @return True if it is a boolean value
102 */
103 public boolean isBooleanValue()
104 {
105 return ("true".equals(value.toLowerCase()) || "false".equals(value.toLowerCase()));
106 }
107
108 public String getName()
109 {
110 return name;
111 }
112
113 public void setName(String name)
114 {
115 this.name = name;
116 }
117 }