Revision 46940
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultForeingKey.java | ||
---|---|---|
4 | 4 |
import org.gvsig.fmap.dal.feature.ForeingKey; |
5 | 5 |
import java.util.List; |
6 | 6 |
import java.util.Objects; |
7 |
import org.apache.commons.codec.digest.DigestUtils; |
|
7 | 8 |
import org.apache.commons.lang3.StringUtils; |
8 | 9 |
import org.gvsig.expressionevaluator.Expression; |
9 | 10 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
... | ... | |
482 | 483 |
!StringUtils.equalsIgnoreCase(theStoresRepository.getLabel(), this.repositoryLabelOfAvailableValues) |
483 | 484 |
) { |
484 | 485 |
|
485 |
LOGGER.info("Loading available values for field '" + this.getStoreName() + "." + this.descriptor.getName()+ "' from table '" + this.getTableName() + "'."); |
|
486 | 486 |
FeatureStore foreingStore = null; |
487 | 487 |
try { |
488 | 488 |
this.repositoryLabelOfAvailableValues = theStoresRepository.getLabel(); |
... | ... | |
490 | 490 |
foreingStore = (FeatureStore) theStoresRepository.getStore( |
491 | 491 |
this.getTableName() |
492 | 492 |
); |
493 |
LOGGER.info("Loading available values for field '" + this.getStoreName() + "." + this.descriptor.getName()+ "' from table '" + this.getTableName() + "'/"+DataStore.getFullNameQuietly(foreingStore)+"."); |
|
493 | 494 |
this.availableValues = this.getAvailableValuesFromStore(foreingStore); |
494 | 495 |
|
495 | 496 |
} catch (Exception ex) { |
... | ... | |
663 | 664 |
} |
664 | 665 |
DataStoreParameters params = explorer.get(tableName); |
665 | 666 |
if( explorer.exists(params) ) { |
666 |
String id = tableName+"-"+dataManager.createUniqueID().replace("-", ""); |
|
667 |
String id = getRepositoryId(store, tableName); //tableName+"-"+dataManager.createUniqueID().replace("-", "");
|
|
667 | 668 |
BaseStoresRepository repo3 = new BaseStoresRepository(id, null, explorer.getParameters()); |
668 | 669 |
repo3.add(tableName, params); |
669 | 670 |
return repo3; |
... | ... | |
674 | 675 |
return repository; |
675 | 676 |
} |
676 | 677 |
} |
678 |
|
|
679 |
private String getRepositoryId(FeatureStore store, String tableName) { |
|
680 |
String id; |
|
681 |
if(store == null){ |
|
682 |
DataManager dataManager = DALLocator.getDataManager(); |
|
683 |
id = tableName+"-"+dataManager.createUniqueID().replace("-", ""); |
|
684 |
} else { |
|
685 |
id = tableName + "-" + DigestUtils.md5Hex(store.getFullName()); |
|
686 |
} |
|
687 |
return id; |
|
688 |
} |
|
677 | 689 |
|
678 | 690 |
} |
Also available in: Unified diff