public Property asType()

in archaius2-core/src/main/java/com/netflix/archaius/property/DefaultPropertyContainer.java [362:394]


    public <T> Property<T> asType(final Class<T> type, final T defaultValue) {
        switch (Type.fromClass(type)) {
        case INTEGER:
            return (Property<T>) asInteger((Integer)defaultValue);
        case BYTE:
            return (Property<T>) asByte((Byte)defaultValue);
        case SHORT:
            return (Property<T>) asShort((Short)defaultValue);
        case DOUBLE:
            return (Property<T>) asDouble((Double)defaultValue);
        case FLOAT:
            return (Property<T>) asFloat((Float)defaultValue);
        case BOOLEAN:
            return (Property<T>) asBoolean((Boolean)defaultValue);
        case STRING:
            return (Property<T>) asString((String)defaultValue);
        case LONG:
            return (Property<T>) asLong((Long)defaultValue);
        case BIG_DECIMAL:
            return (Property<T>) asBigDecimal((BigDecimal)defaultValue);
        case BIG_INTEGER:
            return (Property<T>) asBigInteger((BigInteger)defaultValue);
        default: {
                CachedProperty<T> prop = add(new CachedProperty<T>(Type.CUSTOM, defaultValue) {
                    @Override
                    protected T resolveCurrent() throws Exception {
                        return config.get(type, key, defaultValue);
                    }
                });
                return prop;
            }
        }
    }