@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append('('); for (Map.Entry<String, SubDocAttribute> entry : attributes.entrySet()) { sb .append(entry.getKey()) .append(" : ") .append(entry.getValue().getType()) .append(", "); } if (!attributes.isEmpty()) { sb.delete(sb.length() - 2, sb.length()); } sb.append(')'); return sb.toString(); }
public Builder add(@Nonnull SubDocAttribute att, @Nonnull ScalarValue value) { if (values.containsKey(att.getKey())) { throw new IllegalArgumentException("There is another attribute with " + att.getKey()); } if (!att.getType().equals(value.getType())) { throw new IllegalArgumentException("Type of attribute " + att + " is " + att.getType() + " which is different " + "than the type of the given value (value is " + value + " and its type is " + value.getType()); } values.put(att.getKey(), value); return this; }
@Override TriValuedResult<ScalarType> finalStep(DocStructure structure, AttributeReference.ObjectKey key, AbstractResolver.Argument arg) { SubDocAttribute attribute = structure.getType().getAttribute(key .getKey()); if (attribute == null) { return TriValuedResult.NULL; } return TriValuedResult.createValue(attribute.getType()); }
.getConverter(attribute.getType()) .toValue(jsonValue); builder.add(attribute, subDocValue);
private SubDocTable( String alias, Schema schema, Table<SubDocTableRecord> aliased, Field<?>[] parameters, @Nonnull SubDocType type, DatabaseInterface databaseInterface ) { super(alias, schema, aliased, parameters, ""); this.erasuredType = type; for (SubDocAttribute attibute : type.getAttributes()) { String fieldName = new SubDocHelper(databaseInterface).toColumnName(attibute.getKey()); DataType<?> dataType = databaseInterface.getValueToJooqDataTypeProvider().getDataType(attibute.getType()); createField( fieldName, dataType, this, ""); } this.databaseInterface = databaseInterface; }