private DefaultTypeConverterFactory()

in archaius2-core/src/main/java/com/netflix/archaius/converters/DefaultTypeConverterFactory.java [50:94]


    private DefaultTypeConverterFactory() {
        Map<Type, TypeConverter<?>> converters = new HashMap<>();
        converters.put(String.class, Function.identity()::apply);
        converters.put(boolean.class, DefaultTypeConverterFactory::convertBoolean);
        converters.put(Boolean.class, DefaultTypeConverterFactory::convertBoolean);
        converters.put(Integer.class, Lenient::parseInt);
        converters.put(int.class, Lenient::parseInt);
        converters.put(long.class, Lenient::parseLong);
        converters.put(Long.class, Lenient::parseLong);
        converters.put(short.class, Lenient::parseShort);
        converters.put(Short.class, Lenient::parseShort);
        converters.put(byte.class, Lenient::parseByte);
        converters.put(Byte.class, Lenient::parseByte);
        converters.put(double.class, Lenient::parseDouble);
        converters.put(Double.class, Lenient::parseDouble);
        converters.put(float.class, Lenient::parseFloat);
        converters.put(Float.class, Lenient::parseFloat);
        converters.put(BigInteger.class, BigInteger::new);
        converters.put(BigDecimal.class, BigDecimal::new);
        converters.put(AtomicInteger.class, v -> new AtomicInteger(Lenient.parseInt(v)));
        converters.put(AtomicLong.class, v -> new AtomicLong(Lenient.parseLong(v)));
        converters.put(Duration.class, Duration::parse);
        converters.put(Period.class, Period::parse);
        converters.put(LocalDateTime.class, LocalDateTime::parse);
        converters.put(LocalDate.class, LocalDate::parse);
        converters.put(LocalTime.class, LocalTime::parse);
        converters.put(OffsetDateTime.class, OffsetDateTime::parse);
        converters.put(OffsetTime.class, OffsetTime::parse);
        converters.put(ZonedDateTime.class, ZonedDateTime::parse);
        converters.put(Instant.class, v -> Instant.from(OffsetDateTime.parse(v)));
        converters.put(Date.class, v -> new Date(Lenient.parseLong(v)));
        converters.put(Currency.class, Currency::getInstance);
        converters.put(URI.class, URI::create);
        converters.put(Locale.class, Locale::forLanguageTag);

        converters.put(BitSet.class, v -> {
            try {
                return BitSet.valueOf(Hex.decodeHex(v));
            } catch (DecoderException e) {
                throw new RuntimeException(e);
            }
        });

        this.converters = Collections.unmodifiableMap(converters);
    }