sandygao    2002/07/22 11:08:02

  Modified:    java/src/org/apache/xml/serialize XMLSerializer.java
                        SerializerFactoryImpl.java
                        BaseMarkupSerializer.java
  Log:
  Update some of the serialization code to use the new DOM/Serializer
  message property files, instead of hardcoded Strings, to make localization
  possible.
  
  Revision  Changes    Path
  1.37      +26 -13    xml-xerces/java/src/org/apache/xml/serialize/XMLSerializer.java
  
  Index: XMLSerializer.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xml/serialize/XMLSerializer.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- XMLSerializer.java        15 Jul 2002 21:22:37 -0000      1.36
  +++ XMLSerializer.java        22 Jul 2002 18:08:02 -0000      1.37
  @@ -90,6 +90,7 @@
   
   import org.apache.xerces.util.SymbolTable;
   import org.apache.xerces.util.NamespaceSupport;
  +import org.apache.xerces.dom.DOMMessageFormatter;
   
   /**
    * Implements an XML serializer supporting both DOM and SAX pretty
  @@ -251,8 +252,10 @@
           }
   
           try {
  -            if (_printer == null)
  -                throw new IllegalStateException( "SER002 No writer supplied for 
serializer" );
  +            if (_printer == null) {
  +                String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"NoWriterSupplied", null);
  +                throw new IllegalStateException(msg);
  +            }
   
               state = getElementState();
               if (isDocumentState()) {
  @@ -290,8 +293,10 @@
               // Do not change the current element state yet.
               // This only happens in endElement().
               if (rawName == null || rawName.length() == 0) {
  -                if (localName == null)
  -                    throw new SAXException( "No rawName and localName is null" );
  +                if (localName == null) {
  +                    String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, "NoName", 
null);
  +                    throw new SAXException(msg);
  +                }
                   if (namespaceURI != null && ! namespaceURI.equals( "" )) {
                       String prefix;
                       prefix = getPrefix( namespaceURI );
  @@ -462,8 +467,10 @@
           }
   
           try {
  -            if (_printer == null)
  -                throw new IllegalStateException( "SER002 No writer supplied for 
serializer" );
  +            if (_printer == null) {
  +                String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"NoWriterSupplied", null);
  +                throw new IllegalStateException(msg);
  +            }
   
               state = getElementState();
               if (isDocumentState()) {
  @@ -843,7 +850,8 @@
                       if (colon != colon2) {
                           //not a QName: report an error
                           if (fDOMErrorHandler != null) {
  -                            modifyDOMError("Element's name is not a QName: 
"+tagName, DOMError.SEVERITY_ERROR);
  +                            String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"ElementQName", new Object[]{tagName});
  +                            modifyDOMError(msg, DOMError.SEVERITY_ERROR);
                               boolean continueProcess = 
fDOMErrorHandler.handleError(fDOMError);
                               // REVISIT: should we terminate upon request?           
             
                           }
  @@ -852,7 +860,8 @@
                           // if we got here no namespace processing was performed
                           // report warnings
                           if (fDOMErrorHandler != null) {
  -                            modifyDOMError("Element <"+tagName+"> does not belong 
to any namespace: prefix could be undeclared or bound to some namespace", 
DOMError.SEVERITY_WARNING);
  +                            String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"ElementPrefix", new Object[]{tagName});
  +                            modifyDOMError(msg, DOMError.SEVERITY_WARNING);
                               boolean continueProcess = 
fDOMErrorHandler.handleError(fDOMError);
                           }
                       }
  @@ -1034,7 +1043,8 @@
                               if (prefix.length() == 0) {
                                   // report an error - invalid namespace declaration
                                   if (fDOMErrorHandler != null) {
  -                                    modifyDOMError("Namespace declaration syntax is 
incorrect "+name, DOMError.SEVERITY_ERROR);
  +                                    String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"InvalidNSDecl", new Object[]{name});
  +                                    modifyDOMError(msg, DOMError.SEVERITY_ERROR);
                                       boolean continueProcess = 
fDOMErrorHandler.handleError(fDOMError);
                                   }
                                   // REVISIT: skip invalid declaration?
  @@ -1044,7 +1054,8 @@
                               }
                               else if (value.length() == 0) {
                                   if (fDOMErrorHandler != null) {
  -                                    modifyDOMError("Namespace declaration syntax is 
incorrect "+name, DOMError.SEVERITY_ERROR);
  +                                    String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"InvalidNSDecl", new Object[]{name});
  +                                    modifyDOMError(msg, DOMError.SEVERITY_ERROR);
                                       boolean continueProcess = 
fDOMErrorHandler.handleError(fDOMError);
                                   }
                                   // REVISIT: skip invalid declaration?
  @@ -1077,7 +1088,8 @@
                           if (colon != colon2) {
                               //not a QName: report an error
                               if (fDOMErrorHandler != null) {
  -                                modifyDOMError("Attribute's name is not a QName: 
"+name, DOMError.SEVERITY_ERROR);
  +                                String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"AttributeQName", new Object[]{name});
  +                                modifyDOMError(msg, DOMError.SEVERITY_ERROR);
                                   boolean continueProcess = 
fDOMErrorHandler.handleError(fDOMError);                                               
         
                               }
   
  @@ -1086,7 +1098,8 @@
                               // if we got here no namespace processing was performed
                               // report warnings
                               if (fDOMErrorHandler != null) {
  -                                modifyDOMError("Attribute '"+name+"' does not 
belong to any namespace: prefix could be undeclared or bound to some namespace", 
DOMError.SEVERITY_WARNING);
  +                                String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"AttributePrefix", new Object[]{name});
  +                                modifyDOMError(msg, DOMError.SEVERITY_WARNING);
                                   boolean continueProcess = 
fDOMErrorHandler.handleError(fDOMError);
                               }
                           }
  
  
  
  1.7       +8 -5      
xml-xerces/java/src/org/apache/xml/serialize/SerializerFactoryImpl.java
  
  Index: SerializerFactoryImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xml/serialize/SerializerFactoryImpl.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SerializerFactoryImpl.java        29 Jan 2002 01:15:20 -0000      1.6
  +++ SerializerFactoryImpl.java        22 Jul 2002 18:08:02 -0000      1.7
  @@ -62,7 +62,7 @@
   import java.io.OutputStream;
   import java.io.Writer;
   import java.io.UnsupportedEncodingException;
  -
  +import org.apache.xerces.dom.DOMMessageFormatter;
   
   /**
    * Default serializer factory can construct serializers for the three
  @@ -87,8 +87,10 @@
           if ( ! _method.equals( Method.XML ) &&
                ! _method.equals( Method.HTML ) &&
                ! _method.equals( Method.XHTML ) &&
  -             ! _method.equals( Method.TEXT ) )
  -            throw new IllegalArgumentException( "SER004 The method '" + method + "' 
is not supported by this factory\n" + method);
  +             ! _method.equals( Method.TEXT ) ) {
  +            String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"MethodNotSupported", new Object[]{method});
  +            throw new IllegalArgumentException(msg);
  +        }
       }
   
   
  @@ -137,7 +139,8 @@
           }  else if ( _method.equals( Method.TEXT ) ) {
               return new TextSerializer();
           } else {
  -            throw new IllegalStateException( "SER005 The method '" + _method + "' 
is not supported by this factory\n" + _method);
  +            String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"MethodNotSupported", new Object[]{_method});
  +            throw new IllegalStateException(msg);
           }
       }
       
  
  
  
  1.38      +39 -21    
xml-xerces/java/src/org/apache/xml/serialize/BaseMarkupSerializer.java
  
  Index: BaseMarkupSerializer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xml/serialize/BaseMarkupSerializer.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- BaseMarkupSerializer.java 19 Jul 2002 19:18:38 -0000      1.37
  +++ BaseMarkupSerializer.java 22 Jul 2002 18:08:02 -0000      1.38
  @@ -109,6 +109,7 @@
   import org.w3c.dom.DOMLocator;
   import org.apache.xerces.dom.DOMErrorImpl;
   import org.apache.xerces.dom.DOMLocatorImpl;
  +import org.apache.xerces.dom.DOMMessageFormatter;
   import org.apache.xerces.impl.Constants;
   
   import org.w3c.dom.ls.DOMWriterFilter;
  @@ -333,8 +334,11 @@
   
       public void setOutputByteStream( OutputStream output )
       {
  -        if ( output == null )
  -            throw new NullPointerException( "SER001 Argument 'output' is null." );
  +        if ( output == null ) {
  +            String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN,
  +                                                           "ArgumentIsNull", new 
Object[]{"output"});
  +            throw new NullPointerException(msg);
  +        }
           _output = output;
           _writer = null;
           reset();
  @@ -343,8 +347,11 @@
   
       public void setOutputCharStream( Writer writer )
       {
  -        if ( writer == null )
  -            throw new NullPointerException( "SER001 Argument 'writer' is null." );
  +        if ( writer == null ) {
  +            String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN,
  +                                                           "ArgumentIsNull", new 
Object[]{"writer"});
  +            throw new NullPointerException(msg);
  +        }
           _writer = writer;
           _output = null;
           reset();
  @@ -353,8 +360,11 @@
   
       public void setOutputFormat( OutputFormat format )
       {
  -        if ( format == null )
  -            throw new NullPointerException( "SER001 Argument 'format' is null." );
  +        if ( format == null ) {
  +            String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN,
  +                                                           "ArgumentIsNull", new 
Object[]{"format"});
  +            throw new NullPointerException(msg);
  +        }
           _format = format;
           reset();
       }
  @@ -362,8 +372,11 @@
   
       public boolean reset()
       {
  -        if ( _elementStateCount > 1 )
  -            throw new IllegalStateException( "Serializer reset in the middle of 
serialization" );
  +        if ( _elementStateCount > 1 ) {
  +            String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN,
  +                                                           "ResetInMiddle", null);
  +            throw new IllegalStateException(msg);
  +        }
           _prepared = false;
           fCurrentNode = null;
           fStrBuffer.setLength(0);
  @@ -377,8 +390,11 @@
           if ( _prepared )
               return;
   
  -        if ( _writer == null && _output == null )
  -            throw new IOException( "SER002 No writer supplied for serializer" );
  +        if ( _writer == null && _output == null ) {
  +            String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN,
  +                                                           "NoWriterSupplied", 
null);
  +            throw new IOException(msg);
  +        }
           // If the output stream has been set, use it to construct
           // the writer. It is possible that the serializer has been
           // reused with the same output stream and different encoding.
  @@ -1363,17 +1379,17 @@
                   if (fFeatures != null && fDOMErrorHandler != null) {
                       if (!getFeature(Constants.DOM_SPLIT_CDATA)) {
                           // issue fatal error
  -                         modifyDOMError("The character sequence \"]]>\" must not 
appear in content"+
  -                                  " unless used to mark the end of a CDATA 
section.", DOMError.SEVERITY_FATAL_ERROR);
  -                         boolean continueProcess = 
fDOMErrorHandler.handleError(fDOMError);
  -                         if (!continueProcess) {
  -                                throw new IOException();
  +                        String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"EndingCDATA", null);
  +                        modifyDOMError(msg, DOMError.SEVERITY_FATAL_ERROR);
  +                        boolean continueProcess = 
fDOMErrorHandler.handleError(fDOMError);
  +                        if (!continueProcess) {
  +                            throw new IOException();
                           }
                       } else {
                           // issue warning
  -                            modifyDOMError("Spliting a CDATA section containing the 
CDATA section termination marker ']]>' ", 
  -                                           DOMError.SEVERITY_WARNING);
  -                            fDOMErrorHandler.handleError(fDOMError);
  +                        String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, 
"SplittingCDATA", null);
  +                        modifyDOMError(msg, DOMError.SEVERITY_WARNING);
  +                        fDOMErrorHandler.handleError(fDOMError);
                       }
                   }
               }
  @@ -1710,8 +1726,10 @@
                //_prefixes = _elementStates[ _elementStateCount ].prefixes;
               -- _elementStateCount;
               return _elementStates[ _elementStateCount ];
  -        } else
  -            throw new IllegalStateException( "Internal error: element state is 
zero" );
  +        } else {
  +            String msg = 
DOMMessageFormatter.formatMessage(DOMMessageFormatter.SERIALIZER_DOMAIN, "Internal", 
null);
  +            throw new IllegalStateException(msg);
  +        }
       }
   
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to