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

com.netflix.archaius.persisted2.ScopePredicates Maven / Gradle / Ivy

There is a newer version: 2.8.3
Show newest version
package com.netflix.archaius.persisted2;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import com.netflix.archaius.api.Config;

/**
 * Utility class for creating common ScopePredicates
 * 
 * @author elandau
 *
 */
public abstract class ScopePredicates {
    public static ScopePredicate alwaysTrue() {
        return new ScopePredicate() {
            @Override
            public boolean evaluate(Map> attrs) {
                return true;
            }
        };
    }
    
    public static ScopePredicate fromConfig(final Config config) {
        final HashMap lookup = new HashMap();
        return new AbstractScopePredicate() {
            @Override
            public String getScope(String key) {
                String value = lookup.get(key);
                if (value == null) {
                    value = config.getString(key, "");
                    lookup.put(key, value.toLowerCase());
                }
                return value;
            }
        };
    }
    
    public static ScopePredicate fromMap(final Map values) {
        final Map lowerCaseValues = new HashMap();
        for (Entry entry : values.entrySet()) {
            lowerCaseValues.put(entry.getKey(), entry.getValue().toLowerCase());
        }
        return new AbstractScopePredicate() {
            @Override
            public String getScope(String key) {
                String value = lowerCaseValues.get(key);
                return value == null ? "" : value;
            }
        };
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy