Package org.pentaho.platform.repository.webservices

Source Code of org.pentaho.platform.repository.webservices.DatabaseConnectionAdapter

/*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License, version 2 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/gpl-2.0.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 General Public License for more details.
*
*
* Copyright 2006 - 2013 Pentaho Corporation.  All rights reserved.
*/

package org.pentaho.platform.repository.webservices;

import org.pentaho.database.model.DatabaseConnection;
import org.pentaho.database.service.DatabaseDialectService;
import org.pentaho.database.service.IDatabaseDialectService;
import org.pentaho.database.util.DatabaseTypeHelper;

import javax.xml.bind.annotation.adapters.XmlAdapter;

public class DatabaseConnectionAdapter extends XmlAdapter<DatabaseConnectionDto, DatabaseConnection> {

  @Override
  public DatabaseConnectionDto marshal( DatabaseConnection dbConn ) throws Exception {
    if ( dbConn != null ) {
      DatabaseConnectionDto dbConnDto = new DatabaseConnectionDto();
      dbConnDto.setId( dbConn.getId() );
      dbConnDto.setAccessType( dbConn.getAccessType() );
      dbConnDto.setAccessTypeValue( dbConn.getAccessTypeValue() );
      dbConnDto.setChanged( dbConn.getChanged() );
      dbConnDto.setConnectionPoolingProperties( dbConn.getConnectionPoolingProperties() );
      dbConnDto.setConnectSql( dbConn.getConnectSql() );
      dbConnDto.setDatabaseName( dbConn.getDatabaseName() );
      dbConnDto.setDatabasePort( dbConn.getDatabasePort() );
      if ( dbConn.getDatabaseType() != null ) {
        dbConnDto.setDatabaseType( dbConn.getDatabaseType().getShortName() );
      }
      dbConnDto.setDataTablespace( dbConn.getDataTablespace() );
      dbConnDto.setForcingIdentifiersToLowerCase( dbConn.isForcingIdentifiersToLowerCase() );
      dbConnDto.setForcingIdentifiersToUpperCase( dbConn.isForcingIdentifiersToUpperCase() );
      dbConnDto.setHostname( dbConn.getHostname() );
      dbConnDto.setIndexTablespace( dbConn.getIndexTablespace() );
      dbConnDto.setInformixServername( dbConn.getInformixServername() );
      dbConnDto.setInitialPoolSize( dbConn.getInitialPoolSize() );
      dbConnDto.setMaximumPoolSize( dbConn.getMaximumPoolSize() );
      dbConnDto.setName( dbConn.getName() );
      dbConnDto.setPartitioned( dbConn.isPartitioned() );
      dbConnDto.setPartitioningInformation( dbConn.getPartitioningInformation() );
      dbConnDto.setPassword( dbConn.getPassword() );
      dbConnDto.setQuoteAllFields( dbConn.isQuoteAllFields() );
      dbConnDto.setSQLServerInstance( dbConn.getSQLServerInstance() );
      dbConnDto.setStreamingResults( dbConn.isStreamingResults() );
      dbConnDto.setUsername( dbConn.getUsername() );
      dbConnDto.setUsingConnectionPool( dbConn.isUsingConnectionPool() );
      dbConnDto.setUsingDoubleDecimalAsSchemaTableSeparator( dbConn.isUsingDoubleDecimalAsSchemaTableSeparator() );
      return dbConnDto;
    } else {
      return null;
    }
  }

  @Override
  public DatabaseConnection unmarshal( DatabaseConnectionDto dbConnDto ) throws Exception {
    if ( dbConnDto != null ) {
      IDatabaseDialectService databaseDialectService = new DatabaseDialectService();
      DatabaseTypeHelper databaseTypeHelper = new DatabaseTypeHelper( databaseDialectService.getDatabaseTypes() );
      DatabaseConnection dbConn = new DatabaseConnection();
      dbConn.setId( dbConnDto.getId() );
      dbConn.setAccessType( dbConnDto.getAccessType() );
      dbConn.setAccessTypeValue( dbConnDto.getAccessTypeValue() );
      dbConn.setChanged( dbConnDto.getChanged() );
      dbConn.setConnectionPoolingProperties( dbConnDto.getConnectionPoolingProperties() );
      dbConn.setConnectSql( dbConnDto.getConnectSql() );
      dbConn.setDatabaseName( dbConnDto.getDatabaseName() );
      dbConn.setDatabasePort( dbConnDto.getDatabasePort() );
      if ( dbConnDto.getDatabaseType() != null ) {
        dbConn.setDatabaseType( databaseTypeHelper.getDatabaseTypeByShortName( dbConnDto.getDatabaseType() ) );
      }
      dbConn.setDataTablespace( dbConnDto.getDataTablespace() );
      dbConn.setForcingIdentifiersToLowerCase( dbConnDto.isForcingIdentifiersToLowerCase() );
      dbConn.setForcingIdentifiersToUpperCase( dbConnDto.isForcingIdentifiersToUpperCase() );
      dbConn.setHostname( dbConnDto.getHostname() );
      dbConn.setIndexTablespace( dbConnDto.getIndexTablespace() );
      dbConn.setInformixServername( dbConnDto.getInformixServername() );
      dbConn.setInitialPoolSize( dbConnDto.getInitialPoolSize() );
      dbConn.setMaximumPoolSize( dbConnDto.getMaximumPoolSize() );
      dbConn.setName( dbConnDto.getName() );
      dbConn.setPartitioned( dbConnDto.isPartitioned() );
      dbConn.setPartitioningInformation( dbConnDto.getPartitioningInformation() );
      dbConn.setPassword( dbConnDto.getPassword() );
      dbConn.setQuoteAllFields( dbConnDto.isQuoteAllFields() );
      dbConn.setSQLServerInstance( dbConnDto.getSQLServerInstance() );
      dbConn.setStreamingResults( dbConnDto.isStreamingResults() );
      dbConn.setUsername( dbConnDto.getUsername() );
      dbConn.setUsingConnectionPool( dbConnDto.isUsingConnectionPool() );
      dbConn.setUsingDoubleDecimalAsSchemaTableSeparator( dbConnDto.isUsingDoubleDecimalAsSchemaTableSeparator() );
      return dbConn;
    } else {
      return null;
    }
  }

}
TOP

Related Classes of org.pentaho.platform.repository.webservices.DatabaseConnectionAdapter

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.