public JsonSerializer<?> findSerializer(
      SerializationConfig config, JavaType type, BeanDescription beanDesc) {
    final Class<?> rawType = type.getRawClass();

    if (_jdk7Helper != null) {
      Class<?> path = _jdk7Helper.getClassJavaNioFilePath();
      if (path.isAssignableFrom(rawType)) {
        return ToStringSerializer.instance;
      }
    }
    if ((CLASS_DOM_NODE != null) && CLASS_DOM_NODE.isAssignableFrom(rawType)) {
      return (JsonSerializer<?>) instantiate(SERIALIZER_FOR_DOM_NODE);
    }
    String className = rawType.getName();
    String factoryName;
    if (className.startsWith(PACKAGE_PREFIX_JAVAX_XML)
        || hasSuperClassStartingWith(rawType, PACKAGE_PREFIX_JAVAX_XML)) {
      factoryName = SERIALIZERS_FOR_JAVAX_XML;
    } else {
      return null;
    }

    Object ob = instantiate(factoryName);
    if (ob == null) { // could warn, if we had logging system (j.u.l?)
      return null;
    }
    return ((Serializers) ob).findSerializer(config, type, beanDesc);
  }
  public JsonDeserializer<?> findDeserializer(
      JavaType type, DeserializationConfig config, BeanDescription beanDesc)
      throws JsonMappingException {
    final Class<?> rawType = type.getRawClass();

    if (_jdk7Helper != null) {
      JsonDeserializer<?> deser = _jdk7Helper.getDeserializerForJavaNioFilePath(rawType);
      if (deser != null) {
        return deser;
      }
    }
    if ((CLASS_DOM_NODE != null) && CLASS_DOM_NODE.isAssignableFrom(rawType)) {
      return (JsonDeserializer<?>) instantiate(DESERIALIZER_FOR_DOM_NODE);
    }
    if ((CLASS_DOM_DOCUMENT != null) && CLASS_DOM_DOCUMENT.isAssignableFrom(rawType)) {
      return (JsonDeserializer<?>) instantiate(DESERIALIZER_FOR_DOM_DOCUMENT);
    }
    String className = rawType.getName();
    String factoryName;
    if (className.startsWith(PACKAGE_PREFIX_JAVAX_XML)
        || hasSuperClassStartingWith(rawType, PACKAGE_PREFIX_JAVAX_XML)) {
      factoryName = DESERIALIZERS_FOR_JAVAX_XML;
    } else {
      return null;
    }
    Object ob = instantiate(factoryName);
    if (ob == null) { // could warn, if we had logging system (j.u.l?)
      return null;
    }
    return ((Deserializers) ob).findBeanDeserializer(type, config, beanDesc);
  }
 static {
   Java7Support x = null;
   try {
     x = Java7Support.instance();
   } catch (Throwable t) {
   }
   _jdk7Helper = x;
 }