Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (C) 2014-2015 Philip Helger (www.helger.com) philip[at]helger[dot]com Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 package com.helger.appbasics.exchange.bulkexport.format;
 
 
 
Implementation of com.helger.appbasics.exchange.bulkexport.IExporterFile for XML files

Author(s):
Philip Helger
 
 public final class ExporterXML implements IExporterFile
 {
   public static final boolean DEFAULT_EMIT_TYPE_ATTRIBUTE = true;
   private static final String ELEMENT_ROOT = "root";
   private static final String ELEMENT_HEADER = "header";
   private static final String ELEMENT_BODY = "body";
   private static final String ELEMENT_FOOTER = "footer";
   private static final String ELEMENT_FIELD = "field";
   private static final String ATTR_TYPE = "type";
 
   private final XMLWriterSettings m_aXWS = new XMLWriterSettings ();
   private boolean m_bEmitTypeAttr = ;
 
   public ExporterXML ()
   {}
 
   @Nonnull
   public ExporterXML setCharset (@Nonnull final Charset aCharset)
   {
     .setCharset (aCharset);
     return this;
   }
 
   @Nonnull
   public Charset getCharset ()
   {
     return .getCharsetObj ();
   }
 
   @Nonnull
   @ReturnsMutableObject (reason = "Design")
   {
     return ;
   }
 
   @Nonnull
   public ExporterXML setEmitTypeAttr (final boolean bEmitTypeAttr)
   {
      = bEmitTypeAttr;
     return this;
   }
 
   private void _emitRecord (@Nonnull final IMicroElement eParentRow, @Nonnull final IExportRecord aRecord)
   {
     for (final IExportRecordField aField : aRecord.getAllFields ())
     {
       final Object aFieldValue = aField.getFieldValue ();
       final IMicroElement eField = eParentRow.appendElement ();
       if ()
         eField.setAttribute (aField.getFieldType ().getID ());
       if (aFieldValue != null)
         eField.appendTextWithConversion (aFieldValue);
     }
  }
  {
    ValueEnforcer.notNull (aProvider"Provider");
    final IMicroDocument aDoc = new MicroDocument ();
    final IMicroElement eRoot = aDoc.appendElement ();
    // Header
    final IMicroElement eHeader = eRoot.appendElement ();
    for (final IExportRecord aHeaderRecord : aProvider.getHeaderRecords ())
      _emitRecord (eHeaderaHeaderRecord);
    // Body
    final IMicroElement eBody = eRoot.appendElement ();
    for (final IExportRecord aBodyRecord : aProvider.getBodyRecords ())
      _emitRecord (eBodyaBodyRecord);
    // Footer
    final IMicroElement eFooter = eRoot.appendElement ();
    for (final IExportRecord aFooterRecord : aProvider.getFooterRecords ())
      _emitRecord (eFooteraFooterRecord);
    // The body element is always present
    if (eBody.getChildCount () == 0)
      return null;
    return aDoc;
  }
  public ESuccess exportRecords (@Nonnull final IExportRecordProvider aProvider,
                                 @Nonnull @WillClose final OutputStream aOS)
  {
    try
    {
      ValueEnforcer.notNull (aProvider"Provider");
      ValueEnforcer.notNull (aOS"OutputStream");
      final IMicroDocument aDoc = convertRecords (aProvider);
      if (aDoc == null)
        return .;
      MicroWriter.writeToStream (aDocaOS);
      return .;
    }
    finally
    {
      StreamUtils.close (aOS);
    }
  }
  {
    return .;
  }
New to GrepCode? Check out our FAQ X