+++ /dev/null
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.local.view.datasource;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import eu.etaxonomy.cdm.config.CdmSourceException;
-import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
-import eu.etaxonomy.cdm.model.metadata.CdmMetaDataPropertyName;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-
-/**
- * <p>CdmMetaDataAwareDataSourceContainer class.</p>
- *
- * @author n.hoffmann
- * @created Sep 22, 2010
- * @version 1.0
- */
-public class CdmMetaDataAwareDataSourceContainer {
-
-
-
- /** Constant <code>DEFAULT_ENTRY="-"</code> */
- public static final String DEFAULT_ENTRY = "-";
-
- private ICdmSource cdmSource;
-
- private boolean running;
-
- private Map<CdmMetaDataPropertyName, String> metaDataMap;
-
- /**
- * <p>Constructor for CdmMetaDataAwareDataSourceContainer.</p>
- *
- * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
- * @param view a {@link eu.etaxonomy.taxeditor.webapp.view.datasource.CdmDataSourceViewPart} object.
- */
- public CdmMetaDataAwareDataSourceContainer(ICdmSource cdmSource){
- this.cdmSource = cdmSource;
-
- metaDataMap = getDefaultMetaDataMap();
-
- }
-
-// /**
-// * <p>Getter for the field <code>dataSource</code>.</p>
-// *
-// * @return the dataSource
-// */
-// public ICdmDataSource getDataSource() {
-// return dataSource;
-// }
-
- public ICdmSource getCdmSource() {
- return cdmSource;
-}
-
- public void getMetaDataFromDataSource(){
- try {
- running = cdmSource.checkConnection();
- } catch (Exception e) {
- running = false;
- for(CdmMetaDataPropertyName metaDataPropertyName : CdmMetaDataPropertyName.values()){
- metaDataMap.put(metaDataPropertyName, DEFAULT_ENTRY);
- }
- }
-
- try {
- if(isRunning()){
-
- // try {
- metaDataMap = cdmSource.getMetaDataMap();
- cdmSource.closeOpenConnections();
- // } catch (CdmSourceException e) {
- // StoreUtil.warn(this.getClass(), "SQLException when trying to access: " + cdmSource.getName() + ". " + e.getMessage());
- // }
- }
- } catch (Exception e) {
- if(e instanceof CdmSourceException && e.getMessage().toLowerCase().contains("\"cdmmetadata\"")){
- MessagingUtils.error(this.getClass(), "Data source "+((CdmSourceException) e).getSourceName()+" does not have a CDMMETADATA table", null);
- }
- else{
- MessagingUtils.error(this.getClass(), e);
- }
- }
- }
-
- private Map<CdmMetaDataPropertyName, String> getDefaultMetaDataMap(){
- Map<CdmMetaDataPropertyName, String> resultMap = new HashMap<>(CdmMetaDataPropertyName.values().length);
-
- for(CdmMetaDataPropertyName metaDataPropertyName : CdmMetaDataPropertyName.values()){
- resultMap.put(metaDataPropertyName, null);
- }
-
- return resultMap;
- }
-
- /**
- * <p>Getter for the field <code>metaDataMap</code>.</p>
- *
- * @return the metaDataMap
- */
- public Map<CdmMetaDataPropertyName, String> getMetaDataMap() {
- return metaDataMap;
- }
-
- /**
- * <p>isDataSourceCompatible</p>
- *
- * @return a boolean.
- */
- public boolean isDataSourceCompatible(){
- String version = metaDataMap.get(CdmMetaDataPropertyName.DB_SCHEMA_VERSION);
- return version == null || version.equals(DEFAULT_ENTRY) ? false : CdmMetaData.isDbSchemaVersionCompatible(version);
- }
-
- /**
- * <p>getMetaData</p>
- *
- * @param metaDataPropertyName a {@link eu.etaxonomy.cdm.model.common.CdmMetaData.MetaDataPropertyName} object.
- * @return a {@link java.lang.String} object.
- */
- public String getMetaData(CdmMetaDataPropertyName metaDataPropertyName){
- String property = metaDataMap.get(metaDataPropertyName);
- return property != null ? property : DEFAULT_ENTRY;
- }
-
- /**
- * <p>isRunning</p>
- *
- * @return the running
- */
- public boolean isRunning() {
- return running;
- }
-
- /** {@inheritDoc} */
- @Override
- public String toString() {
- return cdmSource.getName();
- }
-}