protected void setupConverters()

in xstream/src/java/com/thoughtworks/xstream/XStream.java [952:1070]


    protected void setupConverters() {
        registerConverter(new ReflectionConverter(mapper, reflectionProvider), PRIORITY_VERY_LOW);

        registerConverter(new SerializableConverter(mapper, reflectionProvider, classLoaderReference), PRIORITY_LOW);
        registerConverter(new ExternalizableConverter(mapper, classLoaderReference), PRIORITY_LOW);

        registerConverter(new NullConverter(), PRIORITY_VERY_HIGH);
        registerConverter(new IntConverter(), PRIORITY_NORMAL);
        registerConverter(new FloatConverter(), PRIORITY_NORMAL);
        registerConverter(new DoubleConverter(), PRIORITY_NORMAL);
        registerConverter(new LongConverter(), PRIORITY_NORMAL);
        registerConverter(new ShortConverter(), PRIORITY_NORMAL);
        registerConverter((Converter)new CharConverter(), PRIORITY_NORMAL);
        registerConverter(new BooleanConverter(), PRIORITY_NORMAL);
        registerConverter(new ByteConverter(), PRIORITY_NORMAL);

        registerConverter(new StringConverter(), PRIORITY_NORMAL);
        registerConverter(new StringBufferConverter(), PRIORITY_NORMAL);
        registerConverter(new StringBuilderConverter(), PRIORITY_NORMAL);
        registerConverter(new ThrowableConverter(mapper, converterLookup), PRIORITY_NORMAL);
        registerConverter(new StackTraceElementConverter(), PRIORITY_NORMAL);
        registerConverter(new DateConverter(), PRIORITY_NORMAL);
        registerConverter(new GregorianCalendarConverter(), PRIORITY_NORMAL);
        registerConverter(new RegexPatternConverter(), PRIORITY_NORMAL);
        registerConverter(new CurrencyConverter(), PRIORITY_NORMAL);
        registerConverter(new CharsetConverter(), PRIORITY_NORMAL);
        registerConverter(new LocaleConverter(), PRIORITY_NORMAL);
        registerConverter(new BitSetConverter(), PRIORITY_NORMAL);
        registerConverter(new UUIDConverter(), PRIORITY_NORMAL);
        registerConverter(new URIConverter(), PRIORITY_NORMAL);
        registerConverter(new URLConverter(), PRIORITY_NORMAL);
        registerConverter(new BigIntegerConverter(), PRIORITY_NORMAL);
        registerConverter(new BigDecimalConverter(), PRIORITY_NORMAL);
        registerConverter(new PathConverter(), PRIORITY_NORMAL);
        registerConverter((Converter)new AtomicBooleanConverter(), PRIORITY_NORMAL);
        registerConverter((Converter)new AtomicIntegerConverter(), PRIORITY_NORMAL);
        registerConverter((Converter)new AtomicLongConverter(), PRIORITY_NORMAL);
        registerConverter(new AtomicReferenceConverter(mapper), PRIORITY_NORMAL);

        registerConverter(new ArrayConverter(mapper), PRIORITY_NORMAL);
        registerConverter(new CharArrayConverter(), PRIORITY_NORMAL);
        registerConverter(new CollectionConverter(mapper), PRIORITY_NORMAL);
        registerConverter(new MapConverter(mapper), PRIORITY_NORMAL);
        registerConverter(new TreeMapConverter(mapper), PRIORITY_NORMAL);
        registerConverter(new TreeSetConverter(mapper), PRIORITY_NORMAL);
        registerConverter(new SingletonCollectionConverter(mapper), PRIORITY_NORMAL);
        registerConverter(new SingletonMapConverter(mapper), PRIORITY_NORMAL);
        registerConverter(new PropertiesConverter(), PRIORITY_NORMAL);
        registerConverter((Converter)new EncodedByteArrayConverter(), PRIORITY_NORMAL);
        registerConverter(new EnumConverter(), PRIORITY_NORMAL);
        registerConverter(new EnumSetConverter(mapper), PRIORITY_NORMAL);
        registerConverter(new EnumMapConverter(mapper), PRIORITY_NORMAL);

        registerConverter(new FileConverter(), PRIORITY_NORMAL);
        if (JVM.isSQLAvailable()) {
            registerConverter(new SqlTimestampConverter(), PRIORITY_NORMAL);
            registerConverter(new SqlTimeConverter(), PRIORITY_NORMAL);
            registerConverter(new SqlDateConverter(), PRIORITY_NORMAL);
        }
        registerConverter(new ChronologyConverter(), PRIORITY_NORMAL);
        registerConverter(new DurationConverter(), PRIORITY_NORMAL);
        registerConverter(new HijrahDateConverter(), PRIORITY_NORMAL);
        registerConverter(new JapaneseDateConverter(), PRIORITY_NORMAL);
        registerConverter(new JapaneseEraConverter(), PRIORITY_NORMAL);
        registerConverter(new InstantConverter(), PRIORITY_NORMAL);
        registerConverter(new LocalDateConverter(), PRIORITY_NORMAL);
        registerConverter(new LocalDateTimeConverter(), PRIORITY_NORMAL);
        registerConverter(new LocalTimeConverter(), PRIORITY_NORMAL);
        registerConverter(new MinguoDateConverter(), PRIORITY_NORMAL);
        registerConverter(new MonthDayConverter(), PRIORITY_NORMAL);
        registerConverter(new OffsetDateTimeConverter(), PRIORITY_NORMAL);
        registerConverter(new OffsetTimeConverter(), PRIORITY_NORMAL);
        registerConverter(new PeriodConverter(), PRIORITY_NORMAL);
        registerConverter(new SystemClockConverter(mapper), PRIORITY_NORMAL);
        registerConverter(new ThaiBuddhistDateConverter(), PRIORITY_NORMAL);
        registerConverter(new ValueRangeConverter(mapper), PRIORITY_NORMAL);
        registerConverter(new WeekFieldsConverter(mapper), PRIORITY_NORMAL);
        registerConverter(new YearConverter(), PRIORITY_NORMAL);
        registerConverter(new YearMonthConverter(), PRIORITY_NORMAL);
        registerConverter(new ZonedDateTimeConverter(), PRIORITY_NORMAL);
        registerConverter(new ZoneIdConverter(), PRIORITY_NORMAL);
        registerConverter(new OptionalConverter(mapper), PRIORITY_NORMAL);
        registerConverter((Converter)new OptionalDoubleConverter(), PRIORITY_NORMAL);
        registerConverter((Converter)new OptionalIntConverter(), PRIORITY_NORMAL);
        registerConverter((Converter)new OptionalLongConverter(), PRIORITY_NORMAL);
        registerConverter(new DynamicProxyConverter(mapper, classLoaderReference), PRIORITY_NORMAL);
        registerConverter(new JavaClassConverter(classLoaderReference), PRIORITY_NORMAL);
        registerConverter(new JavaMethodConverter(classLoaderReference), PRIORITY_NORMAL);
        registerConverter(new JavaFieldConverter(classLoaderReference), PRIORITY_NORMAL);
        registerConverter(new LambdaConverter(mapper, reflectionProvider, classLoaderReference), PRIORITY_NORMAL);

        if (JVM.isAWTAvailable()) {
            registerConverter(new FontConverter(mapper), PRIORITY_NORMAL);
            registerConverter(new ColorConverter(), PRIORITY_NORMAL);
            registerConverter(new TextAttributeConverter(), PRIORITY_NORMAL);
        }
        if (JVM.isSwingAvailable()) {
            registerConverter(new LookAndFeelConverter(mapper, reflectionProvider), PRIORITY_NORMAL);
        }

        if (JVM.loadClassForName("javax.security.auth.Subject") != null) {
            registerConverterDynamically("com.thoughtworks.xstream.converters.extended.SubjectConverter",
                PRIORITY_NORMAL, new Class[]{Mapper.class}, new Object[]{mapper});
        }
        if (JVM.loadClassForName("javax.xml.datatype.Duration") != null) {
            registerConverterDynamically("com.thoughtworks.xstream.converters.extended.DurationConverter",
                PRIORITY_NORMAL, null, null);
        }
        if (JVM.loadClassForName("javax.activation.ActivationDataFlavor") != null) {
            registerConverterDynamically("com.thoughtworks.xstream.converters.extended.ActivationDataFlavorConverter",
                PRIORITY_NORMAL, null, null);
        }
        if (JVM.isVersion(14)) {
            registerConverterDynamically("com.thoughtworks.xstream.converters.extended.RecordConverter",
                PRIORITY_NORMAL, new Class[]{Mapper.class}, new Object[]{mapper});
        }

        registerConverter(new SelfStreamingInstanceChecker(converterLookup, this), PRIORITY_NORMAL);
    }