@Override public KVValue<?> apply(@Nonnull ScalarValue<?> input) { return (KVValue<?>) input.accept(this, null); }
@Override public Void visit(ScalarArray value, StringBuilder arg) { arg.append('['); for (ScalarValue<?> child : value) { child.accept(this, arg); arg.append(','); } if (!value.isEmpty()) { arg.replace(arg.length() - 1, arg.length(), "]"); } return null; }
@Override public Void visit(ScalarArray value, StringBuilder arg) { arg.append('['); for (ScalarValue<?> child : value) { child.accept(this, arg); arg.append(','); } if (!value.isEmpty()) { arg.replace(arg.length() - 1, arg.length(), "]"); } return null; }
@Override public Void visit(ScalarArray value, StringBuilder arg) { arg.append('['); for (ScalarValue<?> child : value) { child.accept(IN_ARRAY_CONVERTER, arg); arg.append(','); } if (!value.isEmpty()) { arg.replace(arg.length() - 1, arg.length(), "]"); } else { arg.append(']'); } return null; }
@Override public Void visit(ScalarArray value, StringBuilder arg) { arg.append('['); for (ScalarValue<?> child : value) { child.accept(IN_ARRAY_CONVERTER, arg); arg.append(','); } if (!value.isEmpty()) { arg.replace(arg.length() - 1, arg.length(), "]"); } else { arg.append(']'); } return null; }
@SuppressWarnings("unchecked") private void addToCopy( StringBuilder sb, SubDocument subDocument, String[] orderedFieldNames, String[] orderedAttributeNames) { for (int i = 0; i < orderedFieldNames.length; i++) { String fieldName = orderedFieldNames[i]; String attName = orderedAttributeNames[i]; if (fieldName.equals(SubDocTable.DID_COLUMN_NAME)) { sb.append(subDocument.getDocumentId()); } else if (fieldName.equals(SubDocTable.INDEX_COLUMN_NAME)) { Integer index = translateSubDocIndexToDatabase(subDocument.getIndex()); if (index == null) { sb.append("\\N"); } else { sb.append(index); } } else { subDocument.getValue(attName).accept(PostgreSQLValueToCopyConverter.INSTANCE, sb); } sb.append('\t'); } sb.replace(sb.length() - 1, sb.length(), "\n"); }
private static KVDocument translateDocStructure(SubDocValueToDocValueTranslator.Argument arg) { DocStructure structure = (DocStructure) arg.structure; SplitDocument splitDocument = arg.splitDoc; LinkedHashMap<String, KVValue<?>> map = new LinkedHashMap<>(); SubDocument subDoc = splitDocument.getSubDocuments().get( structure.getType(), structure.getIndex()); for (String keyName : subDoc.getType().getAttributeKeys()) { //childStructure will be null if the child is a scalar StructureElement childStructure = structure.getElements().get(keyName); arg.structure = childStructure; map.put( keyName, subDoc.getValue(keyName).accept(VALUE_TRANSLATOR, arg) ); } for (Map.Entry<String, StructureElement> entry : structure.getElements().entrySet()) { if (entry.getValue() instanceof DocStructure) { //arrays has already been mapped as values StructureElement childStructure = structure.getElements().get(entry.getKey()); arg.structure = childStructure; map.put( entry.getKey(), translateDocStructure(arg) ); } } return new MapKVDocument(map); }
@Override public Void visit(ScalarArray value, Arg arg) { preDefaultValue(value, arg); preArrayValue(value, arg); for (ScalarValue<?> e : value) { e.accept(this, arg); } postArrayValue(value, arg); postDefaultValue(value, arg); return null; }
list.add(KVNull.getInstance()); } else { list.add((KVValue<?>) e.accept(this, arg));