/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates.
*
* 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 org.kie.workbench.common.screens.datasource.management.metadata;
import java.util.ArrayList;
import java.util.List;
import org.jboss.errai.common.client.api.annotations.Portable;
@Portable
public class DatabaseMetadata {
public enum DatabaseType { H2, MYSQL, MARIADB, POSTGRESQL, ORACLE, SQLSERVER, DB2 }
public enum TableType { ALL, TABLE, SYSTEM_TABLE, VIEW, SYSTEM_VIEW, SEQUENCE }
private DatabaseType databaseType;
private String databaseProductName;
private String databaseProductVersion;
private String driverName;
private String driverVersion;
private int driverMajorVersion;
private int driverMinorVersion;
private List<SchemaMetadata> schemas = new ArrayList<>( );
private List<CatalogMetadata> catalogs = new ArrayList<>( );
public DatabaseType getDatabaseType( ) {
return databaseType;
}
public void setDatabaseType( DatabaseType databaseType ) {
this.databaseType = databaseType;
}
public String getDatabaseProductName( ) {
return databaseProductName;
}
public void setDatabaseProductName( String databaseProductName ) {
this.databaseProductName = databaseProductName;
}
public String getDatabaseProductVersion( ) {
return databaseProductVersion;
}
public void setDatabaseProductVersion( String databaseProductVersion ) {
this.databaseProductVersion = databaseProductVersion;
}
public String getDriverName( ) {
return driverName;
}
public void setDriverName( String driverName ) {
this.driverName = driverName;
}
public String getDriverVersion( ) {
return driverVersion;
}
public void setDriverVersion( String driverVersion ) {
this.driverVersion = driverVersion;
}
public int getDriverMajorVersion( ) {
return driverMajorVersion;
}
public void setDriverMajorVersion( int driverMajorVersion ) {
this.driverMajorVersion = driverMajorVersion;
}
public int getDriverMinorVersion( ) {
return driverMinorVersion;
}
public void setDriverMinorVersion( int driverMinorVersion ) {
this.driverMinorVersion = driverMinorVersion;
}
public List< SchemaMetadata > getSchemas( ) {
return schemas;
}
public void setSchemas( List< SchemaMetadata > schemas ) {
this.schemas = schemas;
}
public List< CatalogMetadata > getCatalogs( ) {
return catalogs;
}
public void setCatalogs( List< CatalogMetadata > catalogs ) {
this.catalogs = catalogs;
}
@Override
public boolean equals( Object o ) {
if ( this == o ) return true;
if ( o == null || getClass( ) != o.getClass( ) ) return false;
DatabaseMetadata that = ( DatabaseMetadata ) o;
if ( driverMajorVersion != that.driverMajorVersion ) return false;
if ( driverMinorVersion != that.driverMinorVersion ) return false;
if ( databaseType != that.databaseType ) return false;
if ( databaseProductName != null ? !databaseProductName.equals( that.databaseProductName ) : that.databaseProductName != null )
return false;
if ( databaseProductVersion != null ? !databaseProductVersion.equals( that.databaseProductVersion ) : that.databaseProductVersion != null )
return false;
if ( driverName != null ? !driverName.equals( that.driverName ) : that.driverName != null ) return false;
if ( driverVersion != null ? !driverVersion.equals( that.driverVersion ) : that.driverVersion != null )
return false;
if ( schemas != null ? !schemas.equals( that.schemas ) : that.schemas != null ) return false;
return catalogs != null ? catalogs.equals( that.catalogs ) : that.catalogs == null;
}
@Override
public int hashCode( ) {
int result = databaseType != null ? databaseType.hashCode( ) : 0;
result = ~~result;
result = 31 * result + ( databaseProductName != null ? databaseProductName.hashCode( ) : 0 );
result = ~~result;
result = 31 * result + ( databaseProductVersion != null ? databaseProductVersion.hashCode( ) : 0 );
result = ~~result;
result = 31 * result + ( driverName != null ? driverName.hashCode( ) : 0 );
result = ~~result;
result = 31 * result + ( driverVersion != null ? driverVersion.hashCode( ) : 0 );
result = ~~result;
result = 31 * result + driverMajorVersion;
result = ~~result;
result = 31 * result + driverMinorVersion;
result = ~~result;
result = 31 * result + ( schemas != null ? schemas.hashCode( ) : 0 );
result = ~~result;
result = 31 * result + ( catalogs != null ? catalogs.hashCode( ) : 0 );
result = ~~result;
return result;
}
}