Package org.bladerunnerjs.aliasing.aliases

Source Code of org.bladerunnerjs.aliasing.aliases.AliasesWriter

package org.bladerunnerjs.aliasing.aliases;

import java.io.File;
import java.io.IOException;

import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;

import org.bladerunnerjs.aliasing.AliasOverride;
import org.bladerunnerjs.testing.specutility.XmlBuilderSerializer;
import org.bladerunnerjs.utility.EncodedFileUtil;

import com.esotericsoftware.yamlbeans.parser.Parser.ParserException;
import com.google.common.base.Joiner;
import com.jamesmurty.utils.XMLBuilder;

public class AliasesWriter {
  public static void write(AliasesData data, File file, String defaultFileCharacterEncoding) throws IOException {
    try {
      EncodedFileUtil fileUtil = new EncodedFileUtil(defaultFileCharacterEncoding);
      XMLBuilder builder = XMLBuilder.create("aliases").ns("http://schema.caplin.com/CaplinTrader/aliases");
     
      if (data.scenario != null) {
        builder.a("useScenario", data.scenario);
      }
     
      if (!data.groupNames.isEmpty()) {
        builder.a("useGroups", Joiner.on(" ").join(data.groupNames));
      }
     
      for (AliasOverride aliasOverride : data.aliasOverrides) {
        XMLBuilder element = builder.e("alias").a("name", aliasOverride.getName());
       
        if(aliasOverride.getClassName() != null) {
          element.a("class", aliasOverride.getClassName());
        }
      }
     
      fileUtil.write(file, XmlBuilderSerializer.serialize(builder));
    } catch (ParserException | TransformerException | ParserConfigurationException | FactoryConfigurationError e) {
      throw new IOException(e);
    }
  }
}
TOP

Related Classes of org.bladerunnerjs.aliasing.aliases.AliasesWriter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.