/** * Registers the default converters. */ public void registerDefaultConverters() { getRegisteredConverters().add( new org.restlet.engine.converter.DefaultConverter()); getRegisteredConverters().add( new org.restlet.engine.converter.StatusInfoHtmlConverter()); }
private static void replaceConverter( Class<? extends ConverterHelper> converterClass, ConverterHelper newConverter) { // TODO java 8-ify List<ConverterHelper> converters = Engine.getInstance().getRegisteredConverters(); for (ConverterHelper converter : converters) { if (converter.getClass().equals(converterClass)) { converters.remove(converter); break; } } converters.add(newConverter); }
/** * Discovers the converter helpers and register the default helpers. * * @throws IOException */ private void discoverConverters() throws IOException { registerHelpers(DESCRIPTOR_CONVERTER_PATH, getRegisteredConverters(), null); registerDefaultConverters(); }
/** * Returns the list of object classes that can be converted from a given * variant. * * @param source * The source variant. * @return The list of object class that can be converted. */ public List<Class<?>> getObjectClasses(Variant source) { List<Class<?>> result = null; List<Class<?>> helperObjectClasses = null; for (ConverterHelper ch : Engine.getInstance() .getRegisteredConverters()) { helperObjectClasses = ch.getObjectClasses(source); if (helperObjectClasses != null) { if (result == null) { result = new ArrayList<Class<?>>(); } result.addAll(helperObjectClasses); } } return result; }
/** * Updates the media type preferences with available conversion capabilities * for the given entity class. * * @param preferences * The media type preferences. * @param entity * The entity class to convert. */ public void updatePreferences(List<Preference<MediaType>> preferences, Class<?> entity) { for (ConverterHelper ch : Engine.getInstance() .getRegisteredConverters()) { ch.updatePreferences(preferences, entity); } } }
@Override public void onEvent(Event event, Object source, Object data) { for (ConverterHelper converter : Engine.getInstance().getRegisteredConverters()) { if (converter instanceof JacksonConverter) { JacksonConverter jconverter = (JacksonConverter) converter; jconverter.getObjectMapper().configure(Feature.WRITE_DATES_AS_TIMESTAMPS, false); } } } }
@Override public void onEvent(Event event, Object source, Object data) { for (ConverterHelper converter : Engine.getInstance().getRegisteredConverters()) { if (converter instanceof JacksonConverter) { JacksonConverter jconverter = (JacksonConverter) converter; jconverter.getObjectMapper().setSerializationInclusion(Inclusion.NON_NULL); } } } }
/** * Returns the best converter helper matching the given parameters. * * @param <T> * The target class. * @param source * The source representation variant. * @param target * The target class. * @param resource * The parent resource. * @return The matched converter helper or null. */ public static <T> ConverterHelper getBestHelper(Representation source, Class<T> target, Resource resource) { ConverterHelper result = null; float bestScore = -1.0F; float currentScore; for (ConverterHelper ch : Engine.getInstance() .getRegisteredConverters()) { if (ch != null) { currentScore = ch.score(source, target, resource); if (currentScore > bestScore) { bestScore = currentScore; result = ch; } } } return result; }
/** * Returns the list of variants that can be converted from a given object * class. * * @param sourceClass * The source class. * @param targetVariant * The expected representation metadata. * @return The list of variants that can be converted. */ public static List<VariantInfo> getVariants(Class<?> sourceClass, Variant targetVariant) { List<VariantInfo> result = null; for (ConverterHelper ch : Engine.getInstance() .getRegisteredConverters()) { if (ch != null) { try { result = ch.addVariants(sourceClass, targetVariant, result); } catch (IOException e) { Context.getCurrentLogger().log( Level.FINE, "Unable get the variants of the " + ch + " converter helper.", e); } } } return result; }
.getRegisteredConverters()) { if (ch != null) { try {
@Override public void onEvent(Event event, Object source, Object data) { for (ConverterHelper converter : Engine.getInstance().getRegisteredConverters()) { if (converter instanceof JacksonConverter) { JacksonConverter jconverter = (JacksonConverter) converter; SimpleModule m = new SimpleModule("org.json", new Version(1, 0, 0, null)); m.addSerializer(JSONObject.class, new JSONObjectSerializer()); m.addSerializer(JSONArray.class, new JSONArraySerializer()); jconverter.getObjectMapper().registerModule(m); } } }
/** * Registers the helpers for a given bundle. * * @param bundle * The bundle to inspect. */ private void registerHelpers(Bundle bundle) { // Register server helpers registerHelper(bundle, Engine.getInstance().getRegisteredServers(), Server.class, Engine.DESCRIPTOR_SERVER_PATH); // Register client helpers registerHelper(bundle, Engine.getInstance().getRegisteredClients(), Client.class, Engine.DESCRIPTOR_CLIENT_PATH); // Register authentication helpers registerHelper(bundle, Engine.getInstance() .getRegisteredAuthenticators(), null, Engine.DESCRIPTOR_AUTHENTICATOR_PATH); // Register converter helpers registerHelper(bundle, Engine.getInstance().getRegisteredConverters(), null, Engine.DESCRIPTOR_CONVERTER_PATH); }
Engine.getInstance().getRegisteredConverters().add( new PolygeneConverter( objectFactory ) );