java/grafana-api-impl/src/main/java/com/epam/deltix/grafana/JoiningAggregation.java [55:106]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        for (Aggregation aggregation : aggregations) {
            if (aggregation.add(record)) {
                ready.put(aggregation);
            }
        }
        return !ready.isEmpty();
    }

    @Override
    public GenericRecord record(long timestamp) {
        record.reuse();
        factory.reuse();
        boolean first = true;
        for (Aggregation aggregation : aggregations) {
            if (ready.containsKey(aggregation)) {
                GenericRecord r = aggregation.record(timestamp);
                if (first) {
                    first = false;
                    record.setTimestamp(r.timestamp());
                }
                factory.copyContent(r, record);
            }
        }
        return record;
    }

    @Override
    public boolean isValid(GenericRecord record) {
        for (Aggregation aggregation : aggregations) {
            if (!aggregation.isValid(record)) {
                return false;
            }
        }
        return true;
    }

    @Override
    public GenericRecord calculateLast() {
        record.reuse();
        factory.reuse();
        boolean first = true;
        for (Aggregation aggregation : aggregations) {
            GenericRecord r = aggregation.calculateLast();
            if (r != null) {
                if (first) {
                    first = false;
                    record.setTimestamp(r.timestamp());
                }
                factory.copyContent(r, record);
            }
        }
        return record;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



java/grafana-api-impl/src/main/java/com/epam/deltix/grafana/RuntimeJoiningAggregation.java [64:115]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        for (Aggregation aggregation : aggregations) {
            if (aggregation.add(record)) {
                ready.put(aggregation);
            }
        }
        return !ready.isEmpty();
    }

    @Override
    public GenericRecord record(long timestamp) {
        record.reuse();
        factory.reuse();
        boolean first = true;
        for (Aggregation aggregation : aggregations) {
            if (ready.containsKey(aggregation)) {
                GenericRecord r = aggregation.record(timestamp);
                if (first) {
                    first = false;
                    record.setTimestamp(r.timestamp());
                }
                factory.copyContent(r, record);
            }
        }
        return record;
    }

    @Override
    public boolean isValid(GenericRecord record) {
        for (Aggregation aggregation : aggregations) {
            if (!aggregation.isValid(record)) {
                return false;
            }
        }
        return true;
    }

    @Override
    public GenericRecord calculateLast() {
        record.reuse();
        factory.reuse();
        boolean first = true;
        for (Aggregation aggregation : aggregations) {
            GenericRecord r = aggregation.calculateLast();
            if (r != null) {
                if (first) {
                    first = false;
                    record.setTimestamp(r.timestamp());
                }
                factory.copyContent(r, record);
            }
        }
        return record;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



