001 // BSD License (http://www.galagosearch.org/license)
002
003 package org.galagosearch.tupleflow.typebuilder;
004
005 /**
006 *
007 * @author trevor
008 */
009 public class FieldSpecification {
010 public enum DataType {
011 BOOLEAN ("boolean", "boolean", "Boolean", false, false, false),
012 BYTE ("byte", "byte", "Byte", true, false, false),
013 SHORT ("short", "short", "Short", true, false, false),
014 INT ("int", "int", "Integer", true, false, false),
015 LONG ("long", "long", "Long", true, false, false),
016 FLOAT ("float", "float", "Float", false, false, false),
017 DOUBLE ("double", "double", "Double", false, false, false),
018 STRING ("String", "String", "String", false, true, false),
019 BYTES ("bytes", "byte", "byte[]", false, false, true);
020
021 DataType(String internalType, String baseType, String className,
022 boolean isInteger, boolean isString, boolean isArray) {
023 this.internalType = internalType;
024 this.baseType = baseType;
025 this.className = className;
026 this.isInteger = isInteger;
027 this.isString = isString;
028 this.isArray = isArray;
029 }
030
031 public String getType() {
032 if (!isArray)
033 return baseType;
034 return baseType + "[]";
035 }
036
037 public String getBaseType() {
038 return baseType;
039 }
040
041 public String getInternalType() {
042 return internalType;
043 }
044
045 public boolean isInteger() {
046 return isInteger;
047 }
048
049 public boolean isString() {
050 return isString;
051 }
052
053 public boolean isArray() {
054 return isArray;
055 }
056
057 public String getClassName() {
058 return className;
059 }
060
061 private String baseType;
062 private String internalType;
063 private String className;
064 private boolean isInteger;
065 private boolean isString;
066 private boolean isArray;
067 };
068
069 public FieldSpecification(DataType type, String name) {
070 this.type = type;
071 this.name = name;
072 }
073
074 public DataType getType() {
075 return type;
076 }
077
078 public String getName() {
079 return name;
080 }
081
082 protected DataType type;
083 protected String name;
084 }