Ignore:
Timestamp:
13/03/12 13:32:01 (8 years ago)
Author:
mnagni
Message:

This new DB library adds better hash algorithm and a bug fix for the classes eq method

File:
1 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/MolesManager/trunk/src/ea_model/iso_19115_2006_metadata_corrigendum/metadata_entity_set_information/md_metadata.py

    r8091 r8160  
    1919 
    2020 
    21 from ascore.utils import has_value 
     21from ascore.utils import has_value, collectionProofHash 
    2222 
    2323''' 
    24 Created on 16-Feb-2012 16:18:10 
     24Created on 13-Mar-2012 11:08:05 
    2525 
    2626@author: mnagni 
     
    4040    def __init__(self): 
    4141 
     42        self.dataSet = None 
    4243        self.fileIdentifier = None 
    43         self.dataSet = None 
    44         self._propertyType_gf_attributetype = [] 
    4544        self._propertyType_gf_associationrole = [] 
    4645        self._propertyType_gf_operation = [] 
     46        self._propertyType_gf_attributetype = [] 
    4747        self.applicationSchemaInfo = [] 
    4848        self.language = None 
     49        self.characterSet = None 
    4950        self.metadataStandardVersion = None 
    50         self.characterSet = None 
     51        self.dateStamp = None 
    5152        self.referenceSystemInfo = [] 
    52         self.dateStamp = None 
    5353        self.hierarchyLevel = [] 
     54        self._metadataConstraints_md_legalconstraints = [] 
    5455        self._metadataConstraints_md_securityconstraints = [] 
    55         self._metadataConstraints_md_legalconstraints = [] 
    5656        self.metadataStandardName = None 
    5757        self.identificationInfo = [] 
     
    5959        self.dataQualityInfo = [] 
    6060        self.metadataMaintenance = None 
     61        self._contentInfo_md_featurecataloguedescription = [] 
    6162        self._contentInfo_md_coveragedescription = [] 
    62         self._contentInfo_md_featurecataloguedescription = [] 
    6363        self.hierarchyLevelName = [] 
     64        self._featureAttribute_gf_locationalattributetype = [] 
     65        self._featureAttribute_gf_metadataattributetype = [] 
     66        self._featureAttribute_gf_thematicattributetype = [] 
     67        self._featureAttribute_gf_temporalattributetype = [] 
    6468        self._featureAttribute_gf_spatialattributetype = [] 
    6569        self._featureAttribute_if_classificationattributetype = [] 
    66         self._featureAttribute_gf_thematicattributetype = [] 
    67         self._featureAttribute_gf_metadataattributetype = [] 
    68         self._featureAttribute_gf_locationalattributetype = [] 
    69         self._featureAttribute_gf_temporalattributetype = [] 
    7070        self.portrayalCatalogueInfo = [] 
    7171        self._series_ds_series = [] 
     
    8484    def propertyType(self):      
    8585        ret = [] 
     86        for item in self._propertyType_gf_associationrole: 
     87            ret.append(item) 
     88        for item in self._propertyType_gf_operation: 
     89            ret.append(item) 
    8690        for item in self._propertyType_gf_attributetype: 
    87             ret.append(item) 
    88         for item in self._propertyType_gf_associationrole: 
    89             ret.append(item) 
    90         for item in self._propertyType_gf_operation: 
    9191            ret.append(item) 
    9292        return ret 
     
    9595    def propertyType(self, value):       
    9696        if isinstance(value, list): 
    97             self._propertyType_gf_attributetype[:] 
    9897            self._propertyType_gf_associationrole[:] 
    9998            self._propertyType_gf_operation[:] 
    100             for item in value: 
    101                 valueClass = "%s.%s" % (type(item).__module__,type(item).__name__) 
     99            self._propertyType_gf_attributetype[:] 
     100            for item in value: 
     101                valueClass = "%s.%s" % (type(item).__module__,type(item).__name__) 
     102                if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_associationrole.GF_AssociationRole": 
     103                    self._propertyType_gf_associationrole.append(item) 
     104                    continue 
     105                if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_operation.GF_Operation": 
     106                    self._propertyType_gf_operation.append(item) 
     107                    continue 
    102108                if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_attributetype.GF_AttributeType": 
    103109                    self._propertyType_gf_attributetype.append(item) 
    104110                    continue 
    105                 if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_associationrole.GF_AssociationRole": 
    106                     self._propertyType_gf_associationrole.append(item) 
    107                     continue 
    108                 if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_operation.GF_Operation": 
    109                     self._propertyType_gf_operation.append(item) 
    110                     continue 
    111111 
    112112    @property 
    113113    def metadataConstraints(self):       
    114114        ret = [] 
     115        for item in self._metadataConstraints_md_legalconstraints: 
     116            ret.append(item) 
    115117        for item in self._metadataConstraints_md_securityconstraints: 
    116             ret.append(item) 
    117         for item in self._metadataConstraints_md_legalconstraints: 
    118118            ret.append(item) 
    119119        return ret 
     
    122122    def metadataConstraints(self, value):        
    123123        if isinstance(value, list): 
     124            self._metadataConstraints_md_legalconstraints[:] 
    124125            self._metadataConstraints_md_securityconstraints[:] 
    125             self._metadataConstraints_md_legalconstraints[:] 
    126             for item in value: 
    127                 valueClass = "%s.%s" % (type(item).__module__,type(item).__name__) 
     126            for item in value: 
     127                valueClass = "%s.%s" % (type(item).__module__,type(item).__name__) 
     128                if valueClass == "ea_model.iso_19115_2006_metadata_corrigendum.constraint_information.md_legalconstraints.MD_LegalConstraints": 
     129                    self._metadataConstraints_md_legalconstraints.append(item) 
     130                    continue 
    128131                if valueClass == "ea_model.iso_19115_2006_metadata_corrigendum.constraint_information.md_securityconstraints.MD_SecurityConstraints": 
    129132                    self._metadataConstraints_md_securityconstraints.append(item) 
    130133                    continue 
    131                 if valueClass == "ea_model.iso_19115_2006_metadata_corrigendum.constraint_information.md_legalconstraints.MD_LegalConstraints": 
    132                     self._metadataConstraints_md_legalconstraints.append(item) 
    133                     continue 
    134134 
    135135    @property 
    136136    def contentInfo(self):       
    137137        ret = [] 
     138        for item in self._contentInfo_md_featurecataloguedescription: 
     139            ret.append(item) 
    138140        for item in self._contentInfo_md_coveragedescription: 
    139             ret.append(item) 
    140         for item in self._contentInfo_md_featurecataloguedescription: 
    141141            ret.append(item) 
    142142        return ret 
     
    145145    def contentInfo(self, value):        
    146146        if isinstance(value, list): 
     147            self._contentInfo_md_featurecataloguedescription[:] 
    147148            self._contentInfo_md_coveragedescription[:] 
    148             self._contentInfo_md_featurecataloguedescription[:] 
    149             for item in value: 
    150                 valueClass = "%s.%s" % (type(item).__module__,type(item).__name__) 
     149            for item in value: 
     150                valueClass = "%s.%s" % (type(item).__module__,type(item).__name__) 
     151                if valueClass == "ea_model.iso_19115_2006_metadata_corrigendum.content_information.md_featurecataloguedescription.MD_FeatureCatalogueDescription": 
     152                    self._contentInfo_md_featurecataloguedescription.append(item) 
     153                    continue 
    151154                if valueClass == "ea_model.iso_19115_2006_metadata_corrigendum.content_information.md_coveragedescription.MD_CoverageDescription": 
    152155                    self._contentInfo_md_coveragedescription.append(item) 
    153156                    continue 
    154                 if valueClass == "ea_model.iso_19115_2006_metadata_corrigendum.content_information.md_featurecataloguedescription.MD_FeatureCatalogueDescription": 
    155                     self._contentInfo_md_featurecataloguedescription.append(item) 
    156                     continue 
    157157 
    158158    @property 
    159159    def featureAttribute(self):  
    160160        ret = [] 
     161        for item in self._featureAttribute_gf_locationalattributetype: 
     162            ret.append(item) 
     163        for item in self._featureAttribute_gf_metadataattributetype: 
     164            ret.append(item) 
     165        for item in self._featureAttribute_gf_thematicattributetype: 
     166            ret.append(item) 
     167        for item in self._featureAttribute_gf_temporalattributetype: 
     168            ret.append(item) 
    161169        for item in self._featureAttribute_gf_spatialattributetype: 
    162170            ret.append(item) 
    163171        for item in self._featureAttribute_if_classificationattributetype: 
    164             ret.append(item) 
    165         for item in self._featureAttribute_gf_thematicattributetype: 
    166             ret.append(item) 
    167         for item in self._featureAttribute_gf_metadataattributetype: 
    168             ret.append(item) 
    169         for item in self._featureAttribute_gf_locationalattributetype: 
    170             ret.append(item) 
    171         for item in self._featureAttribute_gf_temporalattributetype: 
    172172            ret.append(item) 
    173173        return ret 
     
    176176    def featureAttribute(self, value):   
    177177        if isinstance(value, list): 
     178            self._featureAttribute_gf_locationalattributetype[:] 
     179            self._featureAttribute_gf_metadataattributetype[:] 
     180            self._featureAttribute_gf_thematicattributetype[:] 
     181            self._featureAttribute_gf_temporalattributetype[:] 
    178182            self._featureAttribute_gf_spatialattributetype[:] 
    179183            self._featureAttribute_if_classificationattributetype[:] 
    180             self._featureAttribute_gf_thematicattributetype[:] 
    181             self._featureAttribute_gf_metadataattributetype[:] 
    182             self._featureAttribute_gf_locationalattributetype[:] 
    183             self._featureAttribute_gf_temporalattributetype[:] 
    184             for item in value: 
    185                 valueClass = "%s.%s" % (type(item).__module__,type(item).__name__) 
     184            for item in value: 
     185                valueClass = "%s.%s" % (type(item).__module__,type(item).__name__) 
     186                if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_locationalattributetype.GF_LocationalAttributeType": 
     187                    self._featureAttribute_gf_locationalattributetype.append(item) 
     188                    continue 
     189                if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_metadataattributetype.GF_MetaDataAttributeType": 
     190                    self._featureAttribute_gf_metadataattributetype.append(item) 
     191                    continue 
     192                if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_thematicattributetype.GF_ThematicAttributeType": 
     193                    self._featureAttribute_gf_thematicattributetype.append(item) 
     194                    continue 
     195                if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_temporalattributetype.GF_TemporalAttributeType": 
     196                    self._featureAttribute_gf_temporalattributetype.append(item) 
     197                    continue 
    186198                if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_spatialattributetype.GF_SpatialAttributeType": 
    187199                    self._featureAttribute_gf_spatialattributetype.append(item) 
     
    189201                if valueClass == "ea_model.iso_19129_2009_igcd.igcd_framework.if_classificationattributetype.IF_ClassificationAttributeType": 
    190202                    self._featureAttribute_if_classificationattributetype.append(item) 
    191                     continue 
    192                 if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_thematicattributetype.GF_ThematicAttributeType": 
    193                     self._featureAttribute_gf_thematicattributetype.append(item) 
    194                     continue 
    195                 if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_metadataattributetype.GF_MetaDataAttributeType": 
    196                     self._featureAttribute_gf_metadataattributetype.append(item) 
    197                     continue 
    198                 if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_locationalattributetype.GF_LocationalAttributeType": 
    199                     self._featureAttribute_gf_locationalattributetype.append(item) 
    200                     continue 
    201                 if valueClass == "ea_model.iso_19109_2005_application_schema.general_feature_model.gf_temporalattributetype.GF_TemporalAttributeType": 
    202                     self._featureAttribute_gf_temporalattributetype.append(item) 
    203203                    continue 
    204204 
     
    256256 
    257257    def __key(self): 
    258         return (self.fileIdentifier, self.dataSet, self.propertyType, self.applicationSchemaInfo, self.language, self.metadataStandardVersion, self.characterSet, self.referenceSystemInfo, self.dateStamp, self.hierarchyLevel, self.metadataConstraints, self.metadataStandardName, self.identificationInfo, self.distributionInfo, self.dataQualityInfo, self.metadataMaintenance, self.contentInfo, self.hierarchyLevelName, self.featureAttribute, self.portrayalCatalogueInfo, self.series, self.spatialRepresentationInfo, self.describes, self.parentIdentifier, self.contact, self.metadataExtensionInfo, self.featureType) 
     258        return (self.dataSet, self.fileIdentifier, self.propertyType, self.applicationSchemaInfo, self.language, self.characterSet, self.metadataStandardVersion, self.dateStamp, self.referenceSystemInfo, self.hierarchyLevel, self.metadataConstraints, self.metadataStandardName, self.identificationInfo, self.distributionInfo, self.dataQualityInfo, self.metadataMaintenance, self.contentInfo, self.hierarchyLevelName, self.featureAttribute, self.portrayalCatalogueInfo, self.series, self.spatialRepresentationInfo, self.describes, self.parentIdentifier, self.contact, self.metadataExtensionInfo, self.featureType) 
    259259 
    260260    def __eq__(self, y): 
     261        if type(self) != type(y): 
     262            return False 
    261263        ''' 
    262264        Cannot compare classes which do not define a "__key" attribute  
     
    267269 
    268270    def __hash__(self): 
    269         return hash(self.__key()) 
     271        return collectionProofHash(self.__key()) 
Note: See TracChangeset for help on using the changeset viewer.