/** * Load a XStream class for the given name. * <p> * This method is not meant to use loading arbitrary classes. It is used by XStream bootstrap until it is able to * use the user provided or the default {@link ClassLoader}. * </p> * * @since 1.4.5 */ public static Class loadClassForName(String name) { return loadClassForName(name, true); }
/** * @deprecated As of 1.4.5 use {@link #loadClassForName(String)} */ public Class loadClass(String name) { return loadClassForName(name, true); }
/** * @since 1.4.4 * @deprecated As of 1.4.5 use {@link #loadClassForName(String, boolean)} */ public Class loadClass(String name, boolean initialize) { return loadClassForName(name, initialize); }
private void aliasDynamically(String alias, String className) { Class type = JVM.loadClassForName(className); if (type != null) { alias(alias, type); } }
private void addImmutableTypeDynamically(String className, boolean isReferenceable) { Class type = JVM.loadClassForName(className); if (type != null) { addImmutableType(type, isReferenceable); } }
public ISO8601GregorianCalendarConverter() { SingleValueConverter svConverter = null; final Class type = JVM.loadClassForName(JVM.isVersion(8) ? "com.thoughtworks.xstream.core.util.ISO8601JavaTimeConverter" : "com.thoughtworks.xstream.core.util.ISO8601JodaTimeConverter"); try { svConverter = (SingleValueConverter)type.getDeclaredConstructor(EMPTY_CLASS_ARRAY).newInstance( EMPTY_OBJECT_ARRAY); } catch (final InstantiationException e) { // ignore } catch (final IllegalAccessException e) { // ignore } catch (final InvocationTargetException e) { // ignore } catch (final NoSuchMethodException e) { // ignore } converter = svConverter; }
private void init() { dictionaryEntries = new HashMap(); if (JVM.is15()) try { fieldUtil = (FieldUtil)JVM.loadClassForName("com.thoughtworks.xstream.converters.reflection.FieldUtil15", true).newInstance(); } catch (Exception e) { ; } if (fieldUtil == null) fieldUtil = new FieldUtil14(); }
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")); Class type = JVM.loadClassForName("javax.activation.ActivationDataFlavor"); if (type != null) { alias("activation-data-flavor", type); 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("linked-hash-map", JVM.loadClassForName("java.util.LinkedHashMap")); alias("linked-hash-set", JVM.loadClassForName("java.util.LinkedHashSet")); alias("trace", JVM.loadClassForName("java.lang.StackTraceElement")); alias("currency", JVM.loadClassForName("java.util.Currency")); aliasType("charset", JVM.loadClassForName("java.nio.charset.Charset")); alias("concurrent-hash-map", JVM.loadClassForName("java.util.concurrent.ConcurrentHashMap")); alias("enum-set", JVM.loadClassForName("java.util.EnumSet")); alias("enum-map", JVM.loadClassForName("java.util.EnumMap")); alias("string-builder", JVM.loadClassForName("java.lang.StringBuilder")); alias("uuid", JVM.loadClassForName("java.util.UUID")); aliasType("path", JVM.loadClassForName("java.nio.file.Path")); 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"));
Class type = JVM.loadClassForName("java.lang.Enum"); if (type != null) { xstream.allowTypeHierarchy(type); type = JVM.loadClassForName("java.nio.file.Path"); if (type != null) { xstream.allowTypeHierarchy(type); types.add(String.class); types.add(StringBuffer.class); types.add(JVM.loadClassForName("java.lang.StringBuilder")); types.add(URL.class); types.add(URI.class); types.add(JVM.loadClassForName("java.util.UUID")); if (JVM.isSQLAvailable()) { types.add(JVM.loadClassForName("java.sql.Timestamp")); types.add(JVM.loadClassForName("java.sql.Time")); types.add(JVM.loadClassForName("java.sql.Date")); xstream.allowTypeHierarchy(JVM.loadClassForName("java.time.Clock")); types.add(JVM.loadClassForName("java.time.Duration")); types.add(JVM.loadClassForName("java.time.Instant")); types.add(JVM.loadClassForName("java.time.LocalDate")); types.add(JVM.loadClassForName("java.time.LocalDateTime")); types.add(JVM.loadClassForName("java.time.LocalTime")); types.add(JVM.loadClassForName("java.time.MonthDay")); types.add(JVM.loadClassForName("java.time.OffsetDateTime")); types.add(JVM.loadClassForName("java.time.OffsetTime")); types.add(JVM.loadClassForName("java.time.Period"));
System.out.println("Supports Swing: " + isSwingAvailable()); System.out.println("Supports SQL: " + isSQLAvailable()); System.out.println("Java Beans EventHandler present: " + (loadClassForName("java.beans.EventHandler") != null)); System.out.println("Standard StAX XMLInputFactory: " + staxInputFactory); System.out.println("Standard StAX XMLOutputFactory: " + staxOutputFactory);
if (JVM.loadClassForName("javax.xml.datatype.Duration") != null) { registerConverterDynamically( "com.thoughtworks.xstream.converters.extended.DurationConverter", null, null); if (JVM.loadClassForName("javax.activation.ActivationDataFlavor") != null) { registerConverterDynamically("com.thoughtworks.xstream.converters.extended.ActivationDataFlavorConverter", PRIORITY_NORMAL, null, null);
Class type = JVM.loadClassForName("java.nio.file.Paths"); if (type != null) { Method methodGet;
/** * Load a XStream class for the given name. * <p> * This method is not meant to use loading arbitrary classes. It is used by XStream bootstrap until it is able to * use the user provided or the default {@link ClassLoader}. * </p> * * @since 1.4.5 */ public static <T> Class<? extends T> loadClassForName(final String name) { return loadClassForName(name, true); }
/** * @deprecated As of 1.4.5 use {@link #loadClassForName(String)} */ public Class loadClass(String name) { return loadClassForName(name, true); }
/** * @deprecated As of 1.4.5 use {@link #loadClassForName(String)} */ @Deprecated public <T> Class<? extends T> loadClass(final String name) { return loadClassForName(name, true); }
/** * @since 1.4.4 * @deprecated As of 1.4.5 use {@link #loadClassForName(String, boolean)} */ @Deprecated public <T> Class<? extends T> loadClass(final String name, final boolean initialize) { return loadClassForName(name, initialize); }
if (JVM.loadClassForName("javax.xml.datatype.Duration") != null) { registerConverterDynamically( "com.thoughtworks.xstream.converters.extended.DurationConverter", null, null); if (JVM.loadClassForName("javax.activation.ActivationDataFlavor") != null) { registerConverterDynamically( "com.thoughtworks.xstream.converters.extended.ActivationDataFlavorConverter",
private void aliasDynamically(final String alias, final String className) { final Class<?> type = JVM.loadClassForName(className); if (type != null) { alias(alias, type); } }
private void addImmutableTypeDynamically(final String className, final boolean isReferenceable) { final Class<?> type = JVM.loadClassForName(className); if (type != null) { addImmutableType(type, isReferenceable); } }
private void addImmutableTypeDynamically(String className, boolean isReferenceable) { Class type = JVM.loadClassForName(className); if (type != null) { addImmutableType(type, isReferenceable); } }