protected FieldType assignSimpleType(Class<?> clzType, FieldImpl field) { FieldType result = null; if (clzType.isEnum()) { result = FieldType.ENUM; } else { outer: for (FieldType type : FieldType.values()) { Class<?>[] clzs = type.getClasses(); if (clzs == null) continue; for (Class<?> clz : clzs) { if (clz.isAssignableFrom(clzType)) { result = type; if ((Number.class.isAssignableFrom(clzType) || Boolean.class.isAssignableFrom(clzType)) && !clz.isPrimitive() && field != null) { field.setNullable(true); } break outer; } } } } if (field != null) { field.setTypeEnum(result); } return result; }
protected void processProperty(SchemaImpl schema, PropertyDescriptor prop) { if (TypeUtils.ID_FIELD.equals(prop.getName())) { return; } FieldImpl field = getField(schema, prop.getName()); Method writeMethod = prop.getWriteMethod(); Method readMethod = prop.getReadMethod(); if (field == null || writeMethod == null) { return; } Column column = writeMethod.getAnnotation(Column.class); if (column == null && readMethod != null) { column = readMethod.getAnnotation(Column.class); } if (column == null) { return; } field.setNullable(field.getTypeEnum() == FieldType.STRING ? true : column.nullable()); if (column.length() > 0) { field.setMaxLength((long) column.length()); } if (!prop.getName().equals(TypeUtils.ID_FIELD)) { field.setCreate(true); } field.setUpdate(true); }
protected void addField(SchemaImpl schema, String name, FieldType type, String... options) { Field f = schema.getResourceFields().get(name); if (f != null) { return; } FieldImpl newField = new FieldImpl(); newField.setTypeEnum(type); newField.setName(name); if (type == FieldType.ENUM) { newField.setOptions(Arrays.asList(options)); } else { newField.setNullable(true); } schema.getResourceFields().put(name, newField); }
protected void assignSimpleProps(FieldImpl field, io.github.ibuildthecloud.gdapi.annotation.Field f) { if (!StringUtils.isEmpty(f.defaultValue())) { field.setDefault(f.defaultValue()); } if (!StringUtils.isEmpty(f.validChars())) { field.setValidChars(f.validChars()); } if (!StringUtils.isEmpty(f.invalidChars())) { field.setInvalidChars(f.invalidChars()); } if (f == this.defaultField) { field.setNullable(writableByDefault); field.setUpdate(writableByDefault); field.setCreate(writableByDefault); } else { field.setNullable(f.nullable()); field.setUpdate(f.update()); field.setCreate(f.create()); field.setTransform(f.transform()); } field.setUnique(f.unique()); field.setRequired(f.required()); }