public void setValue(String value) {
        if (isBoolean(value)) {
            this.value = Boolean.parseBoolean(value);
            this.type = Type.Boolean;
            return;
        }
        if (isDateTime(value)) {
            try {
                this.value = DATE_FORMAT.parse(value);
                this.type = Type.DateTime;
            } catch (ParseException e) {
                throw new RuntimeException(e);
            }
            return;
        }
        if (isUniqueID(value)) {
            this.value = UUID.fromString(value.replace("{", "").replace("}", ""));
            this.type = Type.UniqueID;
            return;
        }
        if (isDouble(value)) {
            this.value = Double.parseDouble(value);
            this.type = Type.Double;
            return;
        }
        if (isLong(value)) {
            this.value = Long.parseLong(value);
            this.type = Type.Long;
            return;
        }
        if (isInteger(value)) {
            this.value = Integer.parseInt(value);
            this.type = Type.Integer;
            return;
        }
        JLookupValue lookup = JLookupValue.parse(value);
        if (lookup != null) {
            this.value = lookup;
            this.type = Type.Lookup;
            return;
        }

        this.value = value;
        this.type = Type.String;
    }