All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.taboola.backstage.internal.BackstageInternalToolsImpl Maven / Gradle / Ivy

package com.taboola.backstage.internal;

import java.util.Collection;
import java.util.Map;
import java.util.stream.Collectors;

import com.taboola.backstage.internal.factories.BackstageEndpointsFactory;
import com.taboola.backstage.model.ColumnsMetadata;
import com.taboola.backstage.model.Report;
import com.taboola.backstage.model.dynamic.DynamicField;
import com.taboola.backstage.model.dynamic.DynamicFieldMetadata;
import com.taboola.backstage.model.dynamic.DynamicFields;
import com.taboola.backstage.model.dynamic.DynamicRow;

/**
 * Created by vladi
 * Date: 3/4/2018
 * Time: 12:37 AM
 * By Taboola
 */
public class BackstageInternalToolsImpl implements BackstageInternalTools {

    private final BackstageEndpointsFactory endpointsFactory;

    public BackstageInternalToolsImpl(BackstageEndpointsFactory endpointsFactory) {
        this.endpointsFactory = endpointsFactory;
    }

    @Override
    public BackstageEndpointsFactory endpointFactory() {
        return endpointsFactory;
    }

    @Override
    public  void attachDynamicFieldMetadataToFields(Report report) {
        ColumnsMetadata metadata = report.getMetadata();
        if(metadata == null || metadata.getDynamicFields() == null) {
            return;
        }

        Map dynamicFieldIdToMetadata = metadata.getDynamicFields()
                                                                            .stream()
                                                                            .collect(Collectors.toMap(DynamicFieldMetadata::getId, v -> v));

        Collection rows = report.getResults();
        for(R row : rows) {
            DynamicFields dynamicFields = row.getDynamicFields();
            for(DynamicField field : dynamicFields) {
                DynamicFieldMetadata dynamicFieldMetadata = dynamicFieldIdToMetadata.get(field.getId());
                field.setDynamicFieldMetadata(dynamicFieldMetadata);
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy