Package org.pentaho.platform.config

Source Code of org.pentaho.platform.config.ConsoleConfigXml

/*!
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright (c) 2002-2013 Pentaho Corporation..  All rights reserved.
*/

package org.pentaho.platform.config;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.pentaho.platform.util.xml.dom4j.XmlDom4JHelper;

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

public class ConsoleConfigXml implements IConsoleConfig {

  protected static final String ROOT_ELEMENT = "console";
  protected static final String CHECK_PERIOD_XPATH = ROOT_ELEMENT + "/biserver-status-check-period-millis";
  protected static final String PLATFORM_USERNAME_XPATH = ROOT_ELEMENT + "/platform-username";
  protected static final String SOLUTION_PATH_XPATH = ROOT_ELEMENT + "/solution-path";
  protected static final String WAR_PATH_XPATH = ROOT_ELEMENT + "/war-path";
  protected static final String TEMP_DIR_PATH_XPATH = ROOT_ELEMENT + "/temp-directory";
  protected static final String BACKUP_DIR_PATH_XPATH = ROOT_ELEMENT + "/backup-directory";
  protected static final String HELP_URL_XPATH = ROOT_ELEMENT + "/help_url";
  protected static final String JDBC_DRIVERS_XPATH = ROOT_ELEMENT + "/jdbc-drivers-path";
  protected static final String DEFAULT_ROLES_XPATH = ROOT_ELEMENT + "/default-roles";
  protected static final String HOME_PAGE_TIMEOUT_XPATH = ROOT_ELEMENT + "/homepage-timeout-millis";
  protected static final String HOME_PAGE_URL_XPATH = ROOT_ELEMENT + "/homepage-url";
  protected static final String XML_ENCODING_XPATH = ROOT_ELEMENT + "/xml-encoding";
  protected static final String BASE_URL_XPATH = ROOT_ELEMENT + "/base-url";
  protected static final String DEFAULT_SERVER_DIR_XPATH = ROOT_ELEMENT + "/default-server-dir";

  Document document;

  public String getBaseUrl() {
    return getValue( BASE_URL_XPATH );
  }

  public void setBaseUrl( String url ) {
    setValue( BASE_URL_XPATH, url );
  }

  public ConsoleConfigXml( File consoleConfigXmlFile ) throws IOException, DocumentException {
    this( XmlDom4JHelper.getDocFromFile( consoleConfigXmlFile, null ) );
  }

  public ConsoleConfigXml( String xml ) throws DocumentException {
    this( DocumentHelper.parseText( xml ) );
  }

  public ConsoleConfigXml( Document doc ) throws DocumentException {
    Element rootElement = doc.getRootElement();
    if ( ( rootElement != null ) && !doc.getRootElement().getName().equals( ROOT_ELEMENT ) ) {
      throw new DocumentException( "Invalid root element." );
    }
    document = doc;
  }

  public ConsoleConfigXml() {
    document = DocumentHelper.createDocument();
    document.addElement( ROOT_ELEMENT );
  }

  public Long getServerStatusCheckPeriod() {
    Long period = null;
    try {
      period = Long.parseLong( getValue( CHECK_PERIOD_XPATH ) );
    } catch ( Exception ex ) {
      //ignore
    }
    return period;
  }

  public void setServerStatusCheckPeriod( Long biServerStatusCheckPeriod ) {
    String period = biServerStatusCheckPeriod != null ? Long.toString( biServerStatusCheckPeriod ) : "";
    setValue( CHECK_PERIOD_XPATH, period );
  }

  public Integer getHomePageTimeout() {
    Integer timeout = null;
    try {
      timeout = Integer.parseInt( getValue( HOME_PAGE_TIMEOUT_XPATH ) );
    } catch ( Exception ex ) {
      //ignore
    }
    return timeout;
  }

  public void setHomePageTimeout( Integer timeout ) {
    setValue( HOME_PAGE_TIMEOUT_XPATH, timeout != null ? Integer.toString( timeout ) : "" );
  }

  public String getHomePageUrl() {
    return getValue( HOME_PAGE_URL_XPATH );
  }

  public void setHomePageUrl( String url ) {
    setValue( HOME_PAGE_URL_XPATH, url );
  }

  public String getHelpUrl() {
    return getValue( HELP_URL_XPATH );
  }

  public void setHelpUrl( String url ) {
    setValue( HELP_URL_XPATH, url );
  }

  public String getJdbcDriversClassPath() {
    return getValue( JDBC_DRIVERS_XPATH );
  }

  public void setJdbcDriversClassPath( String classpath ) {
    setValue( JDBC_DRIVERS_XPATH, classpath );
  }

  public String getDefaultRoles() {
    return getValue( DEFAULT_ROLES_XPATH );
  }

  public void setDefaultRoles( String defaultRoles ) {
    setValue( DEFAULT_ROLES_XPATH, defaultRoles );
  }

  public String getPlatformUserName() {
    return getValue( PLATFORM_USERNAME_XPATH );
  }

  public void setPlatformUserName( String platformUserName ) {
    setValue( PLATFORM_USERNAME_XPATH, platformUserName );
  }

  public String getSolutionPath() {
    return getValue( SOLUTION_PATH_XPATH );
  }

  public void setSolutionPath( String solutionPath ) {
    setValue( SOLUTION_PATH_XPATH, solutionPath );
  }

  public String getWebAppPath() {
    return getValue( WAR_PATH_XPATH );
  }

  public void setWebAppPath( String warPath ) {
    setValue( WAR_PATH_XPATH, warPath );
  }

  public String getTempDirectory() {
    return getValue( TEMP_DIR_PATH_XPATH );
  }

  public void setTempDirectory( String path ) {
    setValue( TEMP_DIR_PATH_XPATH, path );
  }

  public String getBackupDirectory() {
    return getValue( BACKUP_DIR_PATH_XPATH );
  }

  public void setBackupDirectory( String path ) {
    setValue( BACKUP_DIR_PATH_XPATH, path );
  }

  public void setValue( String xPath, String value ) {
    Element element = (Element) document.selectSingleNode( xPath );
    if ( element == null ) {
      element = DocumentHelper.makeElement( document, xPath );
    }
    element.setText( value );
  }

  public String getDefaultBiServerDir() {
    return getValue( DEFAULT_SERVER_DIR_XPATH );
  }

  public void setDefaultBiServerDir( String defaultBiServerDir ) {
    setValue( DEFAULT_SERVER_DIR_XPATH, defaultBiServerDir );
  }

  public String getValue( String xpath ) {
    Element element = (Element) document.selectSingleNode( xpath );
    return element != null ? element.getText() : null;
  }

  public String getXmlEncoding() {
    return getValue( XML_ENCODING_XPATH );
  }

  public void setXmlEncoding( String encoding ) {
    setValue( XML_ENCODING_XPATH, encoding );
  }

  public Document getDocument() {
    return document;
  }
}
TOP

Related Classes of org.pentaho.platform.config.ConsoleConfigXml

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.