Examples of ConfigValue


Examples of com.typesafe.config.ConfigValue

                                                 CodecConfig codec,
                                                 boolean nested) {
        ConfigList fieldList = (ConfigList) fieldValue;
        List<Object> newList = new ArrayList<>(fieldList.size());
        for (ConfigValue listEntry : fieldList) {
            ConfigValue listObject;
            if (nested) {
                listObject = expandSugarArray(listEntry, elementType, codec, false);
            } else {
                listObject = expandSugar(elementType, listEntry, codec);
            }
            newList.add(listObject.unwrapped());
        }
        return ConfigValueFactory.fromIterable(newList, fieldList.origin().description());
    }
View Full Code Here

Examples of com.typesafe.config.ConfigValue

            throw new ConfigException.WrongType(configValue.origin(),
                                                "invalid config type of " + configValue.valueType() +
                                                " for " + pluginMap);
        }
        ConfigObject root = (ConfigObject) configValue;
        ConfigValue classValue = root.get(classField);
        // normal, explicit typing
        if ((classValue != null) && (classValue.valueType() == ConfigValueType.STRING)) {
            String classValueString = (String) classValue.unwrapped();
            ConfigObject aliasDefaults = pluginMap.aliasDefaults(classValueString);
            return root.withFallback(aliasDefaults);
        }

        if ((type == null) || Modifier.isAbstract(type.getModifiers()) || Modifier.isInterface(type.getModifiers())) {
            // single key as type
            if (root.size() == 1) {
                String onlyKey = root.keySet().iterator().next();
                try {
                    pluginMap.getClass(onlyKey); // make sure key is a valid type
                    ConfigValue onlyKeyValue = root.values().iterator().next();
                    ConfigObject aliasDefaults = pluginMap.aliasDefaults(onlyKey);
                    if (onlyKeyValue.valueType() != ConfigValueType.OBJECT) {
                        if (aliasDefaults.get("_primary") != null) {
                            onlyKeyValue = onlyKeyValue.atPath((String) aliasDefaults.get("_primary").unwrapped()).root();
                        } else {
                            throw new ConfigException.WrongType(onlyKeyValue.origin(), onlyKey,
                                                                "OBJECT", onlyKeyValue.valueType().toString());
                        }
                    }
                    ConfigObject fieldValues = (ConfigObject) onlyKeyValue;
                    return fieldValues.withValue(classField, ConfigValueFactory.fromAnyRef(
                            onlyKey, "single key to type from " + root.origin().description()))
                                      .withFallback(aliasDefaults);
                } catch (ClassNotFoundException ignored) {
                }
            }

            // inlined type
            String matched = null;
            for (String alias : pluginMap.inlinedAliases()) {
                if (root.get(alias) != null) {
                    if (matched != null) {
                        String message = String.format(
                                "no type specified, more than one key, and both %s and %s match for inlined types.",
                                matched, alias);
                        throw new ConfigException.Parse(root.origin(), message);
                    }
                    matched = alias;
                }
            }
            if (matched != null) {
                ConfigObject aliasDefaults = pluginMap.aliasDefaults(matched);
                ConfigValue inlinedValue = root.get(matched);
                String primaryField = (String) aliasDefaults.get("_primary").unwrapped();
                ConfigObject fieldValues =  root.toConfig().withValue(primaryField, inlinedValue).root()
                                                        .withoutKey(matched)
                                                        .withFallback(aliasDefaults);
                return fieldValues.withValue(classField, ConfigValueFactory.fromAnyRef(
                        matched, "inlined key to type from " + root.origin().description()));
            }

            // default type
            ConfigValue defaultObject = pluginMap.config().root().get("_default");
            if (defaultObject != null) {
                String defaultName = pluginMap.getLastAlias("_default");
                ConfigObject aliasDefaults = pluginMap.aliasDefaults("_default");
                return root.withValue(classField, ConfigValueFactory.fromAnyRef(
                        defaultName, pluginMap.category() + " default type : "
                                     + defaultObject.origin().description()))
                           .withFallback(aliasDefaults);
            }
        }
        return root;
    }
View Full Code Here

Examples of com.typesafe.config.ConfigValue

        if (pluginMap == null) {
            throw new ConfigException.BadValue(config.root().get(category).origin(),
                                               category,
                                               "top level key must be a valid category");
        }
        ConfigValue configValue = config.root().get(category);
        return (T) decodeObject(pluginMap.baseClass(), configValue);
    }
View Full Code Here

Examples of com.typesafe.config.ConfigValue

    public static JsonMappingException maybeImproveLocation(JsonLocation wrapLoc, JsonMappingException cause) {
        JsonLocation exLoc = cause.getLocation();
        if (isRealLocation(wrapLoc) && !isRealLocation(exLoc)) {
            if (wrapLoc.getSourceRef() instanceof ConfigValue) {
                ConfigValue locRef = (ConfigValue) wrapLoc.getSourceRef();
                List<JsonMappingException.Reference> paths = cause.getPath();
                for (JsonMappingException.Reference path : paths) {
                    if (locRef instanceof ConfigObject) {
                        String fieldName = path.getFieldName();
                        ConfigObject locRefObject = (ConfigObject) locRef;
View Full Code Here

Examples of com.typesafe.config.ConfigValue

        Class<?> expectedType = field.getType();
        String fieldName = field.getName();
        if (!config.hasPath(fieldName)) {
            return null;
        } else if (field.isArray()) { // check CodableFieldInfo instead of expectedType
            ConfigValue configValue = config.root().get(fieldName);
            if ((configValue.valueType() != ConfigValueType.LIST) &&
                field.autoArrayEnabled()) {
                Object singleArrayValue = hydrateFieldComponent(expectedType, fieldName, config);
                Object wrappingArray    = Array.newInstance(expectedType, 1);
                Array.set(wrappingArray, 0, singleArrayValue);
                return wrappingArray;
View Full Code Here

Examples of com.typesafe.config.ConfigValue

                                @Nullable Class<T> type,
                                ConfigObject configObject) {

        /** look for normal, explicit type syntax. ie. "{type: my-type, val: my-val}" */
        String classField = pluginMap.classField();
        ConfigValue typeValue = configObject.get(classField);
        if (typeValue != null) {
            if (typeValue.valueType() != ConfigValueType.STRING) {
                throw new ConfigException.WrongType(typeValue.origin(), classField,
                                                    "STRING", typeValue.valueType().toString());
            }
            String stype = (String) typeValue.unwrapped();
            try {
                Class<T> normalType = (Class<T>) pluginMap.getClass(stype);
                ConfigObject aliasDefaults = pluginMap.aliasDefaults(stype);
                ConfigObject fieldValues = configObject.withoutKey(classField).withFallback(aliasDefaults);
                CodableClassInfo normalInfo = getOrCreateClassInfo(normalType);
                return createAndPopulate(normalInfo, normalType, fieldValues);
            } catch (ClassNotFoundException e) {
                String helpMessage = Plugins.classNameSuggestions(pluginRegistry, pluginMap, stype);
                throw new ConfigException.UnresolvedSubstitution(configObject.origin(), helpMessage, e);
            }
        }

        /** if no chance of instantiating current type, try to get a new type from various special syntax/ settings */
        if ((type == null) || Modifier.isAbstract(type.getModifiers()) || Modifier.isInterface(type.getModifiers())) {

            /** "type-value : {...}"  syntax; ie. if there is only one key, see if it would be a valid type */
            if (configObject.size() == 1) {
                String sugarType = configObject.keySet().iterator().next();
                try {
                    Class<T> singleKeyType = (Class<T>) pluginMap.getClass(sugarType);
                    ConfigObject aliasDefaults = pluginMap.aliasDefaults(sugarType);
                    ConfigValue configValue = configObject.get(sugarType);
                    // if value is not an object, try supporting _primary syntax to derive one
                    if (configValue.valueType() != ConfigValueType.OBJECT) {
                        if (aliasDefaults.get("_primary") != null) {
                            configValue = configValue.atPath((String) aliasDefaults.get("_primary").unwrapped()).root();
                        } else {
                            throw new ConfigException.WrongType(configValue.origin(), sugarType,
                                                                "OBJECT", configValue.valueType().toString());
                        }
                    }
                    ConfigObject fieldValues = ((ConfigObject) configValue).withFallback(aliasDefaults);
                    CodableClassInfo singleKeyInfo = getOrCreateClassInfo(singleKeyType);
                    return createAndPopulate(singleKeyInfo, singleKeyType, fieldValues);
                } catch (ClassNotFoundException ignored) {
                    // expected when the single key is not a valid alias or class. could avoid exception if we dropped
                    // support for single-keys that are just classes (ie. anonymous aliases), but we'll leave it in
                    // until we have some, more concrete, reason to remove it.
                }
            }

            /** inlined types syntax ie "{ type-value: some-value, some-field: some-other-value, ...}".
             *  Opt-in is on a per alias basis, and the target type must be unambiguous amongst aliases
             *  that have opted in. The recognized alias label is then replaced with the _primary field. */
            String matched = null;
            for (String alias : pluginMap.inlinedAliases()) {
                if (configObject.get(alias) != null) {
                    if (matched != null) {
                        String message = String.format(
                                "no type specified, more than one key, and both %s and %s match for inlined types.",
                                matched, alias);
                        throw new ConfigException.Parse(configObject.origin(), message);
                    }
                    matched = alias;
                }
            }
            if (matched != null) {
                Class<T> inlinedType = (Class<T>) pluginMap.getClassIfConfigured(matched);
                assert inlinedType != null : "matched is always a key from the pluginMap's inlinedAliases set";
                CodableClassInfo inlinedInfo = getOrCreateClassInfo(inlinedType);
                ConfigObject aliasDefaults = pluginMap.aliasDefaults(matched);
                ConfigValue configValue = configObject.get(matched);
                String primaryField = (String) aliasDefaults.get("_primary").unwrapped();
                ConfigObject fieldValues =  configObject.toConfig().withValue(primaryField, configValue).root()
                                                        .withoutKey(matched)
                                                        .withFallback(aliasDefaults);
                return createAndPopulate(inlinedInfo, inlinedType, fieldValues);
View Full Code Here

Examples of com.volantis.testtools.config.ConfigValue

                // Ensure Volantis has not already been initialised.
                Assert.assertTrue(complete + " should not be true",
                        !complete.getBoolean(volantis));

                // Initialise Volantis.
                configValue = new ConfigValue();
                // Set up the configuration
                appConf.setUp(configValue);
                try {
                    configFileBuilder.buildConfigDocument(configValue);
                    // @todo NO POINT TO PASS IN SERVLET CONTEXT HERE
View Full Code Here

Examples of com.volantis.testtools.config.ConfigValue

     * @throws Exception if there is a problem when creating the configuration.
     */
    private void setUpContext() throws Exception {

        final ConfigFileBuilder builder = new ConfigFileBuilder();
        configValue = new ConfigValue();
        configurator =
                new MinimalXmlRepositoryAppConfigurator();

        configurator.setUp(configValue);

View Full Code Here

Examples of com.volantis.testtools.config.ConfigValue

        request.setHeaderField("User-Agent", "Mozilla/5.0 blah blah blah");
        request.setHeaderField("host", "www.volantis.com:8080");
        request.setHeaderField("Accept", "text/html");
        request.setHeaderField("HeaderName", "HeaderValue");

        ConfigValue cv = new ConfigValue();
        AppConfigurator ac = new MyAppConfigurator();
        ac.setUp(cv);
        try {
            ConfigFileBuilder configFileBuilder = new ConfigFileBuilder();
            configFileBuilder.buildConfigDocument(cv);
View Full Code Here

Examples of com.volantis.testtools.config.ConfigValue

        request.setHeaderField("User-Agent", "Mozilla/5.0 blah blah blah");
        request.setHeaderField("host", "www.volantis.com:8080");
        request.setHeaderField("Accept", "text/html");
        request.setHeaderField("HeaderName", "HeaderValue");

        ConfigValue cv = new ConfigValue();
        AppConfigurator ac = new MyAppConfigurator();
        ac.setUp(cv);
        try {
            ConfigFileBuilder configFileBuilder = new ConfigFileBuilder();
            configFileBuilder.buildConfigDocument(cv);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.