public boolean isNumeric() { return dataType.isNumeric(); }
@SuppressWarnings("unchecked") private final <Z extends Number> Field<Z> numeric() { if (getDataType().isNumeric()) { return (Field<Z>) this; } else { return (Field<Z>) cast(BigDecimal.class); } }
@SuppressWarnings("unchecked") private final <Z extends Number> Field<Z> numeric() { if (getDataType().isNumeric()) { return (Field<Z>) this; } else { return (Field<Z>) cast(BigDecimal.class); } }
protected void register(ForeignKey<?, ?> foreignKey) { TableField<?, ?>[] fields = foreignKey.getFieldsArray(); if (fields.length == 0 || fields.length > 1) { return; } TableField<?, ?> field = fields[0]; if (!field.getDataType().isNumeric()) { return; } String propertyName = getNameFromField(field.getTable().getRecordType(), field.getName()); String referenceName = propertyName; if (field.getName().endsWith(ID_FIELD)) { referenceName = referenceName.substring(0, referenceName.length() - 2); } Class<?> localType = foreignKey.getTable().getRecordType(); Class<?> foreignType = foreignKey.getKey().getTable().getRecordType(); Schema localSchema = schemaFactory.getSchema(localType); String childName = localSchema.getPluralName(); String childNameOverride = ArchaiusUtil.getString( String.format("object.link.name.%s.%s.override", localType.getSimpleName(), propertyName).toLowerCase()).get(); if (childNameOverride != null) { childName = childNameOverride; } register(localType, new ForeignKeyRelationship(REFERENCE, referenceName, propertyName, foreignType, foreignKey)); register(foreignType, new ForeignKeyRelationship(CHILD, childName, propertyName, localType, foreignKey)); }
public DataType<?> getDataType(DSLContext dsl) { override(dsl); DataType<?> result = DefaultDataType.getDataType(SQLDialect.DEFAULT, type); if (result.isNumeric() && !result.hasScale()) { result = result.identity(pk); } if (length >= 0) { result = result.length(length); } if (precision >= 0) { result = result.precision(precision); } if (scale >= 0) { result = result.scale(scale); } result = result.nullable(nullable); return result; }
boolean intervalOverlaps = type0.isDateTime() && (type1.isInterval() || type1.isNumeric());
(rhs.get(0).getDataType().isNumeric() || rhs.get(0).getDataType().isInterval())) {
boolean intervalOverlaps = type0.isDateTime() && (type1.isInterval() || type1.isNumeric());
(rhs.get(0).getDataType().isNumeric() || rhs.get(0).getDataType().isInterval())) return new DateExpression();
else if (type.identity() && ctx.family() == SQLITE && type.isNumeric()) { ctx.sql("integer");