summaryrefslogtreecommitdiff
path: root/src/main/java/com/redstoner/misc/mysql/types
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/redstoner/misc/mysql/types')
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/MysqlType.java96
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/date/Date.java10
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/date/DateTime.java10
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/date/Time.java10
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/date/TimeStamp.java10
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/date/Year.java10
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/number/BigInt.java12
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/number/Decimal.java10
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/number/Double.java10
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/number/Float.java10
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/number/Int.java16
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/number/MediumInt.java12
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/number/SmallInt.java12
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/number/TinyInt.java12
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/text/Blob.java10
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/text/Char.java16
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/text/Enum.java27
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/text/LongBlob.java8
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/text/LongText.java8
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/text/MediumBlob.java8
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/text/MediumText.java8
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/text/Set.java27
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/text/Text.java10
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/text/TinyText.java8
-rw-r--r--src/main/java/com/redstoner/misc/mysql/types/text/VarChar.java16
25 files changed, 386 insertions, 0 deletions
diff --git a/src/main/java/com/redstoner/misc/mysql/types/MysqlType.java b/src/main/java/com/redstoner/misc/mysql/types/MysqlType.java
new file mode 100644
index 0000000..86413f9
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/MysqlType.java
@@ -0,0 +1,96 @@
+package com.redstoner.misc.mysql.types;
+
+import com.redstoner.misc.mysql.types.date.Date;
+import com.redstoner.misc.mysql.types.date.DateTime;
+import com.redstoner.misc.mysql.types.date.Time;
+import com.redstoner.misc.mysql.types.date.TimeStamp;
+import com.redstoner.misc.mysql.types.date.Year;
+import com.redstoner.misc.mysql.types.number.BigInt;
+import com.redstoner.misc.mysql.types.number.Decimal;
+import com.redstoner.misc.mysql.types.number.Double;
+import com.redstoner.misc.mysql.types.number.Float;
+import com.redstoner.misc.mysql.types.number.Int;
+import com.redstoner.misc.mysql.types.number.MediumInt;
+import com.redstoner.misc.mysql.types.number.SmallInt;
+import com.redstoner.misc.mysql.types.number.TinyInt;
+import com.redstoner.misc.mysql.types.text.Blob;
+import com.redstoner.misc.mysql.types.text.Char;
+import com.redstoner.misc.mysql.types.text.Enum;
+import com.redstoner.misc.mysql.types.text.LongBlob;
+import com.redstoner.misc.mysql.types.text.LongText;
+import com.redstoner.misc.mysql.types.text.MediumBlob;
+import com.redstoner.misc.mysql.types.text.MediumText;
+import com.redstoner.misc.mysql.types.text.Set;
+import com.redstoner.misc.mysql.types.text.Text;
+import com.redstoner.misc.mysql.types.text.TinyText;
+import com.redstoner.misc.mysql.types.text.VarChar;
+
+public abstract class MysqlType
+{
+ public abstract String getName();
+
+ public static MysqlType getTypeFromString(String type)
+ {
+ String[] splitType = type.split("\\(");
+ String toSwitch = splitType[0].toUpperCase();
+ String value = "";
+ if (type.contains("(") && type.endsWith(")"))
+ {
+ value = splitType[1].substring(0, splitType[1].length() - 1);
+ }
+ switch (toSwitch)
+ {
+ case "CHAR":
+ return new Char(Integer.valueOf(value));
+ case "ENUM":
+ return new Enum(value.replaceAll("'", "").split(","));
+ case "VARCHAR":
+ return new VarChar(Integer.valueOf(value));
+ case "SET":
+ return new Set(value.replaceAll("'", "").split(","));
+ case "BLOB":
+ return new Blob();
+ case "TEXT":
+ return new Text();
+ case "MEDIUMBLOB":
+ return new MediumBlob();
+ case "LONGBLOB":
+ return new LongBlob();
+ case "TINYTEXT":
+ return new TinyText();
+ case "MEDIUMTEXT":
+ return new MediumText();
+ case "LONGTEXT":
+ return new LongText();
+ case "INT":
+ return new Int(Integer.valueOf(value));
+ case "TINYINT":
+ return new TinyInt(Integer.valueOf(value));
+ case "SMALLINT":
+ return new SmallInt(Integer.valueOf(value));
+ case "MEDIUMINT":
+ return new MediumInt(Integer.valueOf(value));
+ case "BIGINT":
+ return new BigInt(Integer.valueOf(value));
+ case "BIT":
+ return new TinyInt(1);
+ case "FLOAT":
+ return new Float();
+ case "DOUBLE":
+ return new Double();
+ case "DECIMAL":
+ return new Decimal();
+ case "DATE":
+ return new Date();
+ case "DATETIME":
+ return new DateTime();
+ case "TIME":
+ return new Time();
+ case "TIMESTAMP":
+ return new TimeStamp();
+ case "YEAR":
+ return new Year();
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/date/Date.java b/src/main/java/com/redstoner/misc/mysql/types/date/Date.java
new file mode 100644
index 0000000..9943333
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/date/Date.java
@@ -0,0 +1,10 @@
+package com.redstoner.misc.mysql.types.date;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Date extends MysqlType {
+ @Override
+ public String getName() {
+ return "DATE";
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/date/DateTime.java b/src/main/java/com/redstoner/misc/mysql/types/date/DateTime.java
new file mode 100644
index 0000000..b4d9623
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/date/DateTime.java
@@ -0,0 +1,10 @@
+package com.redstoner.misc.mysql.types.date;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class DateTime extends MysqlType {
+ @Override
+ public String getName() {
+ return "DATETIME";
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/date/Time.java b/src/main/java/com/redstoner/misc/mysql/types/date/Time.java
new file mode 100644
index 0000000..4ead72c
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/date/Time.java
@@ -0,0 +1,10 @@
+package com.redstoner.misc.mysql.types.date;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Time extends MysqlType {
+ @Override
+ public String getName() {
+ return "TIME";
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/date/TimeStamp.java b/src/main/java/com/redstoner/misc/mysql/types/date/TimeStamp.java
new file mode 100644
index 0000000..56205af
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/date/TimeStamp.java
@@ -0,0 +1,10 @@
+package com.redstoner.misc.mysql.types.date;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class TimeStamp extends MysqlType {
+ @Override
+ public String getName() {
+ return "TIMESTAMP";
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/date/Year.java b/src/main/java/com/redstoner/misc/mysql/types/date/Year.java
new file mode 100644
index 0000000..4c2ce1a
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/date/Year.java
@@ -0,0 +1,10 @@
+package com.redstoner.misc.mysql.types.date;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Year extends MysqlType {
+ @Override
+ public String getName() {
+ return "YEAR";
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/number/BigInt.java b/src/main/java/com/redstoner/misc/mysql/types/number/BigInt.java
new file mode 100644
index 0000000..71086fd
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/number/BigInt.java
@@ -0,0 +1,12 @@
+package com.redstoner.misc.mysql.types.number;
+
+public class BigInt extends Int {
+ public BigInt(int maxSize) {
+ super(maxSize);
+ }
+
+ @Override
+ public String getName() {
+ return "BIG" + super.getName();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/redstoner/misc/mysql/types/number/Decimal.java b/src/main/java/com/redstoner/misc/mysql/types/number/Decimal.java
new file mode 100644
index 0000000..4e4dbb6
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/number/Decimal.java
@@ -0,0 +1,10 @@
+package com.redstoner.misc.mysql.types.number;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Decimal extends MysqlType {
+ @Override
+ public String getName() {
+ return "DECIMAL";
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/number/Double.java b/src/main/java/com/redstoner/misc/mysql/types/number/Double.java
new file mode 100644
index 0000000..b4b1dda
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/number/Double.java
@@ -0,0 +1,10 @@
+package com.redstoner.misc.mysql.types.number;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Double extends MysqlType {
+ @Override
+ public String getName() {
+ return "DOUBLE";
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/number/Float.java b/src/main/java/com/redstoner/misc/mysql/types/number/Float.java
new file mode 100644
index 0000000..ea3047e
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/number/Float.java
@@ -0,0 +1,10 @@
+package com.redstoner.misc.mysql.types.number;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Float extends MysqlType {
+ @Override
+ public String getName() {
+ return "FLOAT";
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/number/Int.java b/src/main/java/com/redstoner/misc/mysql/types/number/Int.java
new file mode 100644
index 0000000..4256f7b
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/number/Int.java
@@ -0,0 +1,16 @@
+package com.redstoner.misc.mysql.types.number;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Int extends MysqlType {
+ private int maxSize;
+
+ public Int(int maxSize) {
+ this.maxSize = maxSize;
+ }
+
+ @Override
+ public String getName() {
+ return "INT(" + maxSize + ")";
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/redstoner/misc/mysql/types/number/MediumInt.java b/src/main/java/com/redstoner/misc/mysql/types/number/MediumInt.java
new file mode 100644
index 0000000..fbcb0f4
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/number/MediumInt.java
@@ -0,0 +1,12 @@
+package com.redstoner.misc.mysql.types.number;
+
+public class MediumInt extends Int {
+ public MediumInt(int maxSize) {
+ super(maxSize);
+ }
+
+ @Override
+ public String getName() {
+ return "MEDIUM" + super.getName();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/redstoner/misc/mysql/types/number/SmallInt.java b/src/main/java/com/redstoner/misc/mysql/types/number/SmallInt.java
new file mode 100644
index 0000000..01bf97d
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/number/SmallInt.java
@@ -0,0 +1,12 @@
+package com.redstoner.misc.mysql.types.number;
+
+public class SmallInt extends Int {
+ public SmallInt(int maxSize) {
+ super(maxSize);
+ }
+
+ @Override
+ public String getName() {
+ return "SMALL" + super.getName();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/redstoner/misc/mysql/types/number/TinyInt.java b/src/main/java/com/redstoner/misc/mysql/types/number/TinyInt.java
new file mode 100644
index 0000000..63ad700
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/number/TinyInt.java
@@ -0,0 +1,12 @@
+package com.redstoner.misc.mysql.types.number;
+
+public class TinyInt extends Int {
+ public TinyInt(int maxSize) {
+ super(maxSize);
+ }
+
+ @Override
+ public String getName() {
+ return "TINY" + super.getName();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/redstoner/misc/mysql/types/text/Blob.java b/src/main/java/com/redstoner/misc/mysql/types/text/Blob.java
new file mode 100644
index 0000000..d56ee45
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/text/Blob.java
@@ -0,0 +1,10 @@
+package com.redstoner.misc.mysql.types.text;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Blob extends MysqlType {
+ @Override
+ public String getName() {
+ return "BLOB";
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/text/Char.java b/src/main/java/com/redstoner/misc/mysql/types/text/Char.java
new file mode 100644
index 0000000..ece068c
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/text/Char.java
@@ -0,0 +1,16 @@
+package com.redstoner.misc.mysql.types.text;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Char extends MysqlType {
+ private int size;
+
+ public Char(int size) {
+ this.size = size;
+ }
+
+ @Override
+ public String getName() {
+ return "CHAR(" + size + ")";
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/text/Enum.java b/src/main/java/com/redstoner/misc/mysql/types/text/Enum.java
new file mode 100644
index 0000000..e68476d
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/text/Enum.java
@@ -0,0 +1,27 @@
+package com.redstoner.misc.mysql.types.text;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Enum extends MysqlType {
+ private String[] possibleValues;
+
+ public Enum(String... possibleValues) {
+ this.possibleValues = possibleValues;
+ }
+
+ @Override
+ public String getName() {
+ String name = "ENUM(";
+
+ for (int i = 0; i < possibleValues.length; i++) {
+ name += "'" + possibleValues[i] + "'";
+
+ if (i != possibleValues.length - 1) {
+ name += ",";
+ }
+ }
+
+ return name + ")";
+ }
+
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/text/LongBlob.java b/src/main/java/com/redstoner/misc/mysql/types/text/LongBlob.java
new file mode 100644
index 0000000..802caed
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/text/LongBlob.java
@@ -0,0 +1,8 @@
+package com.redstoner.misc.mysql.types.text;
+
+public class LongBlob extends Blob {
+ @Override
+ public String getName() {
+ return "LONG" + super.getName();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/redstoner/misc/mysql/types/text/LongText.java b/src/main/java/com/redstoner/misc/mysql/types/text/LongText.java
new file mode 100644
index 0000000..5149ed2
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/text/LongText.java
@@ -0,0 +1,8 @@
+package com.redstoner.misc.mysql.types.text;
+
+public class LongText extends Text {
+ @Override
+ public String getName() {
+ return "LONG" + super.getName();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/redstoner/misc/mysql/types/text/MediumBlob.java b/src/main/java/com/redstoner/misc/mysql/types/text/MediumBlob.java
new file mode 100644
index 0000000..6ae25a7
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/text/MediumBlob.java
@@ -0,0 +1,8 @@
+package com.redstoner.misc.mysql.types.text;
+
+public class MediumBlob extends Blob {
+ @Override
+ public String getName() {
+ return "MEDIUM" + super.getName();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/redstoner/misc/mysql/types/text/MediumText.java b/src/main/java/com/redstoner/misc/mysql/types/text/MediumText.java
new file mode 100644
index 0000000..a0f6525
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/text/MediumText.java
@@ -0,0 +1,8 @@
+package com.redstoner.misc.mysql.types.text;
+
+public class MediumText extends Text {
+ @Override
+ public String getName() {
+ return "MEDIUM" + super.getName();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/redstoner/misc/mysql/types/text/Set.java b/src/main/java/com/redstoner/misc/mysql/types/text/Set.java
new file mode 100644
index 0000000..4e12ce6
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/text/Set.java
@@ -0,0 +1,27 @@
+package com.redstoner.misc.mysql.types.text;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Set extends MysqlType {
+ private String[] possibleValues;
+
+ public Set(String... possibleValues) {
+ this.possibleValues = possibleValues;
+ }
+
+ @Override
+ public String getName() {
+ String name = "SET(";
+
+ for (int i = 0; i < possibleValues.length; i++) {
+ name += "'" + possibleValues[i] + "'";
+
+ if (i != possibleValues.length - 1) {
+ name += ",";
+ }
+ }
+
+ return name + ")";
+ }
+
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/text/Text.java b/src/main/java/com/redstoner/misc/mysql/types/text/Text.java
new file mode 100644
index 0000000..7d1a38c
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/text/Text.java
@@ -0,0 +1,10 @@
+package com.redstoner.misc.mysql.types.text;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class Text extends MysqlType {
+ @Override
+ public String getName() {
+ return "TEXT";
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/text/TinyText.java b/src/main/java/com/redstoner/misc/mysql/types/text/TinyText.java
new file mode 100644
index 0000000..e78160c
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/text/TinyText.java
@@ -0,0 +1,8 @@
+package com.redstoner.misc.mysql.types.text;
+
+public class TinyText extends Text {
+ @Override
+ public String getName() {
+ return "TINY" + super.getName();
+ }
+}
diff --git a/src/main/java/com/redstoner/misc/mysql/types/text/VarChar.java b/src/main/java/com/redstoner/misc/mysql/types/text/VarChar.java
new file mode 100644
index 0000000..cb28ad1
--- /dev/null
+++ b/src/main/java/com/redstoner/misc/mysql/types/text/VarChar.java
@@ -0,0 +1,16 @@
+package com.redstoner.misc.mysql.types.text;
+
+import com.redstoner.misc.mysql.types.MysqlType;
+
+public class VarChar extends MysqlType {
+ private int maxSize;
+
+ public VarChar(int maxSize) {
+ this.maxSize = maxSize;
+ }
+
+ @Override
+ public String getName() {
+ return "VARCHAR(" + maxSize + ")";
+ }
+} \ No newline at end of file