3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.view
.datasource
;
13 import java
.sql
.SQLException
;
14 import java
.util
.HashMap
;
17 import eu
.etaxonomy
.cdm
.config
.CdmSourceException
;
18 import eu
.etaxonomy
.cdm
.config
.ICdmSource
;
19 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
20 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmMetaData
;
21 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmMetaData
.MetaDataPropertyName
;
22 import eu
.etaxonomy
.taxeditor
.model
.MessagingUtils
;
25 * <p>CdmMetaDataAwareDataSourceContainer class.</p>
28 * @created Sep 22, 2010
31 public class CdmMetaDataAwareDataSourceContainer
{
35 /** Constant <code>DEFAULT_ENTRY="-"</code> */
36 public static final String DEFAULT_ENTRY
= "-";
38 private ICdmSource cdmSource
;
40 private boolean running
;
42 private Map
<MetaDataPropertyName
, String
> metaDataMap
;
45 * <p>Constructor for CdmMetaDataAwareDataSourceContainer.</p>
47 * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
48 * @param view a {@link eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart} object.
50 public CdmMetaDataAwareDataSourceContainer(ICdmSource cdmSource
){
51 this.cdmSource
= cdmSource
;
53 metaDataMap
= getDefaultMetaDataMap();
58 // * <p>Getter for the field <code>dataSource</code>.</p>
60 // * @return the dataSource
62 // public ICdmDataSource getDataSource() {
66 public ICdmSource
getCdmSource() {
70 public void getMetaDataFromDataSource(){
72 running
= cdmSource
.checkConnection();
73 } catch (Exception e
) {
75 for(MetaDataPropertyName metaDataPropertyName
: MetaDataPropertyName
.values()){
76 metaDataMap
.put(metaDataPropertyName
, DEFAULT_ENTRY
);
84 metaDataMap
= cdmSource
.getMetaDataMap();
85 cdmSource
.closeOpenConnections();
86 // } catch (CdmSourceException e) {
87 // StoreUtil.warn(this.getClass(), "SQLException when trying to access: " + cdmSource.getName() + ". " + e.getMessage());
90 } catch (Exception e
) {
91 MessagingUtils
.error(this.getClass(), e
);
95 private Map
<MetaDataPropertyName
, String
> getDefaultMetaDataMap(){
96 Map
<MetaDataPropertyName
, String
> resultMap
= new HashMap
<MetaDataPropertyName
, String
>(MetaDataPropertyName
.values().length
);
98 for(MetaDataPropertyName metaDataPropertyName
: MetaDataPropertyName
.values()){
99 resultMap
.put(metaDataPropertyName
, null);
106 * <p>Getter for the field <code>metaDataMap</code>.</p>
108 * @return the metaDataMap
110 public Map
<MetaDataPropertyName
, String
> getMetaDataMap() {
115 * <p>isDataSourceCompatible</p>
119 public boolean isDataSourceCompatible(){
120 String version
= metaDataMap
.get(MetaDataPropertyName
.DB_SCHEMA_VERSION
);
121 return version
== null || version
.equals(DEFAULT_ENTRY
) ?
false : CdmMetaData
.isDbSchemaVersionCompatible(version
);
127 * @param metaDataPropertyName a {@link eu.etaxonomy.cdm.model.common.CdmMetaData.MetaDataPropertyName} object.
128 * @return a {@link java.lang.String} object.
130 public String
getMetaData(MetaDataPropertyName metaDataPropertyName
){
131 String property
= metaDataMap
.get(metaDataPropertyName
);
132 return property
!= null ? property
: DEFAULT_ENTRY
;
138 * @return the running
140 public boolean isRunning() {
145 * @see java.lang.Object#toString()
149 public String
toString() {
150 return cdmSource
.getName();