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

apoc.graph.document.builder.LabelBuilder Maven / Gradle / Ivy

There is a newer version: 5.25.1
Show newest version
package apoc.graph.document.builder;

import apoc.graph.util.GraphsConfig;
import org.neo4j.graphdb.Label;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import static org.apache.commons.text.WordUtils.capitalizeFully;

public class LabelBuilder {

    private GraphsConfig config;

    public LabelBuilder(GraphsConfig config) {
        this.config = config;
    }

    public Label[] buildLabel(Map obj, String path) {

        List rawLabels = new ArrayList<>();

        if (obj.containsKey(config.getLabelField())) {
            rawLabels.add(obj.get(config.getLabelField()).toString());
        }
        rawLabels.addAll(config.labelsForPath(path));
        return rawLabels.stream().map(label -> Label.label(capitalizeFully(label, '_', ' ')
                .replaceAll("_", "")
                .replaceAll(" ", "")))
                .toArray(Label[]::new);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy