Search in sources :

Example 1 with Pair

use of ratpack.func.Pair in project ratpack by ratpack.

the class AbstractPropertiesConfigSource method loadConfigData.

@Override
public ObjectNode loadConfigData(ObjectMapper objectMapper, FileSystemBinding fileSystemBinding) throws Exception {
    ObjectNode rootNode = objectMapper.createObjectNode();
    Properties properties = loadProperties();
    Stream<Pair<String, String>> pairs = properties.stringPropertyNames().stream().map(key -> Pair.of(key, properties.getProperty(key)));
    if (prefix.isPresent()) {
        pairs = pairs.filter(p -> p.left.startsWith(prefix.get())).map(((Function<Pair<String, String>, Pair<String, String>>) p -> p.mapLeft(s -> s.substring(prefix.get().length()))).toFunction());
    }
    pairs.forEach(p -> populate(rootNode, p.left, p.right));
    return rootNode;
}
Also used : ArrayNode(com.fasterxml.jackson.databind.node.ArrayNode) Function(ratpack.func.Function) Properties(java.util.Properties) Stream(java.util.stream.Stream) FileSystemBinding(ratpack.file.FileSystemBinding) ConfigSource(ratpack.config.ConfigSource) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Optional(java.util.Optional) Pair(ratpack.func.Pair) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) TextNode(com.fasterxml.jackson.databind.node.TextNode) Function(ratpack.func.Function) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) Properties(java.util.Properties) Pair(ratpack.func.Pair)

Aggregations

ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 ArrayNode (com.fasterxml.jackson.databind.node.ArrayNode)1 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)1 TextNode (com.fasterxml.jackson.databind.node.TextNode)1 Optional (java.util.Optional)1 Properties (java.util.Properties)1 Stream (java.util.stream.Stream)1 ConfigSource (ratpack.config.ConfigSource)1 FileSystemBinding (ratpack.file.FileSystemBinding)1 Function (ratpack.func.Function)1 Pair (ratpack.func.Pair)1