@Nonnull private String padColumnHeading(@Nonnull Map<String, Integer> columnSizes, @Nonnull Value m) { StringBuilder sb = new StringBuilder("|"); columnSizes.entrySet().forEach(entry -> { sb.append(" "); String txt = formatValue(m.get(entry.getKey())); String value = OutputFormatter.rightPad(txt, entry.getValue()); sb.append(value); sb.append(" |"); }); return sb.toString(); }
@Nonnull private Map<String, Integer> calculateColumnSizes(@Nonnull List<String> columns, @Nonnull List<Value> data) { Map<String, Integer> columnSizesMap = mapColumnsToLength(columns); for (Map.Entry<String, Integer> entry : columnSizesMap.entrySet()) { String key = entry.getKey(); Integer maxRecordSize = data.stream().map(record -> formatValue(record.get(key)).length()).max(Integer::compareTo).get(); if (entry.getValue() < maxRecordSize) { columnSizesMap.put(key, maxRecordSize); } } return columnSizesMap; }
@Override public ProfiledPlan create( String operatorType, Map<String,Value> arguments, List<String> identifiers, List<ProfiledPlan> children, Value originalPlanValue ) { return new InternalProfiledPlan( operatorType, arguments, identifiers, children, originalPlanValue.get( "dbHits" ).asLong(), originalPlanValue.get( "rows" ).asLong() ); } };
@Override public Notification apply( Value value ) { String code = value.get( "code" ).asString(); String title = value.get( "title" ).asString(); String description = value.get( "description" ).asString(); String severity = value.containsKey( "severity" ) ? value.get( "severity" ).asString() : "N/A"; Value posValue = value.get( "position" ); InputPosition position = null; if( posValue != NULL ) { position = new InternalInputPosition( posValue.get( "offset" ).asInt(), posValue.get( "line" ).asInt(), posValue.get( "column" ).asInt() ); } return new InternalNotification( code, title, description, severity, position ); } };
private static int counterValue( Value countersValue, String name ) { Value value = countersValue.get( name ); return value.isNull() ? 0 : value.asInt(); }
@Override public T apply( Value plan ) { final String operatorType = plan.get( "operatorType" ).asString(); final Value argumentsValue = plan.get( "args" ); final Map<String, Value> arguments = argumentsValue.isNull() ? Collections.<String, Value>emptyMap() : argumentsValue.asMap( Values.ofValue() ); final Value identifiersValue = plan.get( "identifiers" ); final List<String> identifiers = identifiersValue.isNull() ? Collections.<String>emptyList() : identifiersValue.asList( ofString() ); final Value childrenValue = plan.get( "children" ); final List<T> children = childrenValue.isNull() ? Collections.<T>emptyList() : childrenValue.asList( this ); return planCreator.create( operatorType, arguments, identifiers, children, plan ); } }
if ("m".equals(key)) { if (value.asNode().containsKey("deleted")) { Value deleteMarkerValue = value.get("deleted"); deleted = deleteMarkerValue.asBoolean(false);