Package com.barchart.feed.ddf.settings.provider

Source Code of com.barchart.feed.ddf.settings.provider.SettingsDDF

/**
* Copyright (C) 2011-2012 Barchart, Inc. <http://www.barchart.com/>
*
* All rights reserved. Licensed under the OSI BSD License.
*
* http://www.opensource.org/licenses/bsd-license.php
*/
/*
*
*/
package com.barchart.feed.ddf.settings.provider;

import static com.barchart.feed.ddf.settings.provider.XmlTagSettingsDDF.LOGIN;
import static com.barchart.feed.ddf.settings.provider.XmlTagSettingsDDF.SERVERS;
import static com.barchart.feed.ddf.settings.provider.XmlTagSettingsDDF.SERVERS_SERVER;

import java.util.EnumMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import com.barchart.feed.ddf.settings.api.DDF_Server;
import com.barchart.feed.ddf.settings.api.DDF_Settings;
import com.barchart.feed.ddf.settings.enums.DDF_ServerType;
import com.barchart.feed.ddf.util.HelperXML;

class SettingsDDF implements DDF_Settings {

  private static final Logger log = LoggerFactory
      .getLogger(SettingsDDF.class);

  private final LoginDDF login;

  private final Map<DDF_ServerType, ServerDDF> serverMap = //
  new EnumMap<DDF_ServerType, ServerDDF>(DDF_ServerType.class);

  private final String username;
  private final String password;

  /*
   * (non-Javadoc)
   *
   * @see com.barchart.feed.ddf.settings.api.DDF_Settings#getAuthUser()
   */
  @Override
  public final String getAuthUser() {
    return username;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.barchart.feed.ddf.settings.api.DDF_Settings#getAuthPass()
   */
  @Override
  public String getAuthPass() {
    return password;
  }

  SettingsDDF(final String comment) {

    this.comment = comment;

    this.username = "";
    this.password = "";

    this.login = new LoginDDF();

  }

  SettingsDDF(final Element root, final String username, final String password) {

    this.username = username;
    this.password = password;

    final Element nodeLogin = HelperXML.xmlFirstChild(root, LOGIN, true);

    this.login = new LoginDDF(nodeLogin);

    //

    final Element nodeServerList = HelperXML.xmlFirstChild(root, SERVERS,
        true);

    final NodeList nodeList = nodeServerList.getChildNodes();

    final int sizeServerList = nodeList.getLength();

    for (int index = 0; index < sizeServerList; index++) {

      final Node nodeIndex = nodeList.item(index);

      if (nodeIndex.getNodeType() == Node.ELEMENT_NODE) {

        final Element nodeServer = (Element) nodeIndex;

        final String name = nodeServer.getNodeName();

        if (name.equalsIgnoreCase(SERVERS_SERVER)) {
          final ServerDDF server = new ServerDDF(nodeServer);
          serverMap.put(server.getServerType(), server);
        } else {
          log.warn("unexpected node name={}", name);
        }

      }

    }

  }

  /*
   * (non-Javadoc)
   *
   * @see com.barchart.feed.ddf.settings.api.DDF_Settings#getLogin()
   */
  @Override
  public LoginDDF getLogin() {
    return login;
  }

  /*
   * (non-Javadoc)
   *
   * @see
   * com.barchart.feed.ddf.settings.api.DDF_Settings#getServer(com.barchart
   * .feed.ddf.settings.enums.DDF_ServerType)
   */
  @Override
  public DDF_Server getServer(final DDF_ServerType type) {
    return serverMap.get(type);
  }

  /*
   * (non-Javadoc)
   *
   * @see java.lang.Object#toString()
   */
  @Override
  public String toString() {
    return "" + //
        "\n Login:" + //
        "\n " + login + //
        "\n Servers:" + //
        "\n " + serverMap + //
        "";
  }

  /*
   * (non-Javadoc)
   *
   * @see
   * com.barchart.feed.ddf.settings.api.DDF_Settings#isValid(com.barchart.
   * feed.ddf.settings.enums.DDF_ServerType)
   */
  @Override
  public boolean isValid(final DDF_ServerType type) {
    if (!login.isValid()) {
      return false;
    }
    if (type == null) {
      return false;
    }
    final DDF_Server server = serverMap.get(type);
    if (server == null || !server.isValid()) {
      return false;
    }
    return true;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.barchart.feed.ddf.settings.api.DDF_Settings#isValidLogin()
   */
  @Override
  public boolean isValidLogin() {
    return login.isValid();
  }

  private String comment = "";

  /*
   * (non-Javadoc)
   *
   * @see com.barchart.feed.ddf.settings.api.DDF_Settings#getCommentDDF()
   */
  @Override
  public String getCommentDDF() {
    return comment;
  }

}
TOP

Related Classes of com.barchart.feed.ddf.settings.provider.SettingsDDF

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.