protected void setupAliases()

in xstream/src/java/com/thoughtworks/xstream/XStream.java [795:932]


    protected void setupAliases() {
        if (classAliasingMapper == null) {
            return;
        }

        alias("null", Mapper.Null.class);
        alias("int", Integer.class);
        alias("float", Float.class);
        alias("double", Double.class);
        alias("long", Long.class);
        alias("short", Short.class);
        alias("char", Character.class);
        alias("byte", Byte.class);
        alias("boolean", Boolean.class);
        alias("number", Number.class);
        alias("object", Object.class);
        alias("big-int", BigInteger.class);
        alias("big-decimal", BigDecimal.class);

        alias("string", String.class);
        alias("string-buffer", StringBuffer.class);
        alias("string-builder", StringBuilder.class);
        alias("uuid", UUID.class);
        alias("java-class", Class.class);
        alias("method", Method.class);
        alias("constructor", Constructor.class);
        alias("field", Field.class);
        alias("date", Date.class);
        alias("gregorian-calendar", Calendar.class);
        alias("uri", URI.class);
        alias("url", URL.class);
        alias("file", File.class);
        alias("locale", Locale.class);
        alias("bit-set", BitSet.class);
        alias("trace", StackTraceElement.class);
        alias("currency", Currency.class);

        alias("map", Map.class);
        alias("entry", Map.Entry.class);
        alias("properties", Properties.class);
        alias("list", List.class);
        alias("set", Set.class);
        alias("sorted-set", SortedSet.class);

        alias("linked-list", LinkedList.class);
        alias("vector", Vector.class);
        alias("tree-map", TreeMap.class);
        alias("tree-set", TreeSet.class);
        alias("hashtable", Hashtable.class);
        alias("linked-hash-map", LinkedHashMap.class);
        alias("linked-hash-set", LinkedHashSet.class);
        alias("concurrent-hash-map", ConcurrentHashMap.class);
        alias("atomic-boolean", AtomicBoolean.class);
        alias("atomic-int", AtomicInteger.class);
        alias("atomic-long", AtomicLong.class);
        alias("atomic-reference", AtomicReference.class);

        alias("enum-set", EnumSet.class);
        alias("enum-map", EnumMap.class);
        alias("empty-list", Collections.emptyList().getClass());
        alias("empty-map", Collections.emptyMap().getClass());
        alias("empty-set", Collections.emptySet().getClass());
        alias("singleton-list", Collections.singletonList(this).getClass());
        alias("singleton-map", Collections.singletonMap(this, null).getClass());
        alias("singleton-set", Collections.singleton(this).getClass());

        if (JVM.isAWTAvailable()) {
            // Instantiating these two classes starts the AWT system, which is undesirable.
            // Calling loadClass ensures a reference to the class is found but they are not
            // instantiated.
            alias("awt-color", JVM.loadClassForName("java.awt.Color", false));
            alias("awt-font", JVM.loadClassForName("java.awt.Font", false));
            alias("awt-text-attribute", JVM.loadClassForName("java.awt.font.TextAttribute"));
        }

        final Class<?> type = JVM.loadClassForName("javax.activation.ActivationDataFlavor");
        if (type != null) {
            alias("activation-data-flavor", type);
        }

        if (JVM.isSQLAvailable()) {
            alias("sql-timestamp", JVM.loadClassForName("java.sql.Timestamp"));
            alias("sql-time", JVM.loadClassForName("java.sql.Time"));
            alias("sql-date", JVM.loadClassForName("java.sql.Date"));
        }

        alias("fixed-clock", JVM.loadClassForName("java.time.Clock$FixedClock"));
        alias("offset-clock", JVM.loadClassForName("java.time.Clock$OffsetClock"));
        alias("system-clock", JVM.loadClassForName("java.time.Clock$SystemClock"));
        alias("tick-clock", JVM.loadClassForName("java.time.Clock$TickClock"));
        alias("day-of-week", DayOfWeek.class);
        alias("duration", Duration.class);
        alias("instant", Instant.class);
        alias("local-date", LocalDate.class);
        alias("local-date-time", LocalDateTime.class);
        alias("local-time", LocalTime.class);
        alias("month", Month.class);
        alias("month-day", MonthDay.class);
        alias("offset-date-time", OffsetDateTime.class);
        alias("offset-time", OffsetTime.class);
        alias("period", Period.class);
        alias("year", Year.class);
        alias("year-month", YearMonth.class);
        alias("zoned-date-time", ZonedDateTime.class);
        aliasType("zone-id", ZoneId.class);
        aliasType("chronology", Chronology.class);
        alias("hijrah-date", HijrahDate.class);
        alias("hijrah-era", HijrahEra.class);
        alias("japanese-date", JapaneseDate.class);
        alias("japanese-era", JapaneseEra.class);
        alias("minguo-date", MinguoDate.class);
        alias("minguo-era", MinguoEra.class);
        alias("thai-buddhist-date", ThaiBuddhistDate.class);
        alias("thai-buddhist-era", ThaiBuddhistEra.class);
        alias("chrono-field", ChronoField.class);
        alias("chrono-unit", ChronoUnit.class);
        alias("iso-field", JVM.loadClassForName("java.time.temporal.IsoFields$Field"));
        alias("iso-unit", JVM.loadClassForName("java.time.temporal.IsoFields$Unit"));
        alias("julian-field", JVM.loadClassForName("java.time.temporal.JulianFields$Field"));
        alias("temporal-value-range", ValueRange.class);
        alias("week-fields", WeekFields.class);
        alias("optional", Optional.class);
        alias("optional-double", OptionalDouble.class);
        alias("optional-int", OptionalInt.class);
        alias("optional-long", OptionalLong.class);
        alias("serialized-lambda", SerializedLambda.class);

        aliasType("charset", Charset.class);
        aliasType("path", Path.class);

        if (JVM.loadClassForName("javax.security.auth.Subject") != null) {
            aliasDynamically("auth-subject", "javax.security.auth.Subject");
        }
        if (JVM.loadClassForName("javax.xml.datatype.Duration") != null) {
            aliasDynamically("xml-duration", "javax.xml.datatype.Duration");
        }

    }