if (null == className) { throw new IllegalArgumentException( "The output format must have a '" + OutputPropertiesFactory.S_KEY_CONTENT_HANDLER + "' property!"); }
if (className == null) { throw new IllegalArgumentException( "The output format must have a '" + OutputPropertiesFactory.S_KEY_CONTENT_HANDLER + "' property!"); }
    public static Serializer getSerializer(Properties format)    {      Serializer ser = null;      try      {        Class cls;        String method = format.getProperty(OutputKeys.METHOD);        if (method == null)          throw new IllegalArgumentException(            "The output format has a null method name");        String className;          className =            format.getProperty(OutputPropertiesFactory.S_KEY_CONTENT_HANDLER);          if (null == className)          {            throw new IllegalArgumentException(              "The output format must have a '"              + OutputPropertiesFactory.S_KEY_CONTENT_HANDLER + "' property!");          }          cls = Utils.ClassForName(className);          // _serializers.put(method, cls);        Object obj = cls.newInstance();        if (obj instanceof SerializationHandler)        {              // this is one of the supplied serializers            ser = (Serializer) cls.newInstance();            ser.setOutputFormat(format);        }        else        {              /*               *  This  must be a user defined Serializer.               *  It had better implement ContentHandler.               */               if (obj instanceof ContentHandler)               {                  /*                   * The user defined serializer defines ContentHandler,                   * but we need to wrap it with ToXMLSAXHandler which                   * will collect SAX-like events and emit true                   * SAX ContentHandler events to the users handler.                   */                  className = SerializerConstants.DEFAULT_SAX_SERIALIZER;                  cls = Utils.ClassForName(className);                  SerializationHandler sh =                      (SerializationHandler) cls.newInstance();                  sh.setContentHandler( (ContentHandler) obj);                  sh.setOutputFormat(format);                  ser = sh;               }               else               {                  // user defined serializer does not implement                  // ContentHandler, ... very bad                   throw new Exception(                       XMLMessages.createXMLMessage(                           XMLErrorResources.ER_SERIALIZER_NOT_CONTENTHANDLER,                               new Object[] { className}));               }        }      }      catch (Exception e)      {        throw new org.apache.xml.utils.WrappedRuntimeException(e);      }      return ser;    }