Changeset 6846


Ignore:
Timestamp:
26/04/10 16:37:55 (9 years ago)
Author:
sdonegan
Message:

Put in some code to deal with multiple definitions of datacentre name depending on expath chosen

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery-Ingest/trunk/v4n_MEDIN/ingestAutomation-upgrade/OAIBatch/PostgresRecord.py

    r6660 r6846  
    3838                  
    3939                  
    40         logging.info("Setting up Postgres record for file, " + filename) 
    41          
     40        logging.info("Setting up Postgres record for file, " + filename)              
    4241         
    4342        self.isoDataModel = isoDataModel 
     
    6867        #make sure we escape any special characters in this field... SJD 20/10/09         
    6968        #self.dataset_name = self.escapeSpecialCharacters(self.isoDataModel.datasetName[0]) 
     69         
    7070        self.dataset_name = self.escapeSpecialCharacters(self.isoDataModel.datasetName[0][0]) 
    71          
    72         self.datacentre_name = self.isoDataModel.datacentreName[0][0] 
     71                 
     72        self.datacentre_name = self.getSingleVal(self.isoDataModel.datacentreName) 
    7373         
    7474        #self.dataset_lastEdit = datasetLastEditUpdateDate 
     
    132132        else: 
    133133                self.stubISO = self.escapeSpecialCharacters(stubIso) 
    134          
    135          
    136  
     134                 
     135                 
     136    def getSingleVal(self, inputList): 
     137         
     138                ''' 
     139                Simple method to sort through a value list from the ISOdata model and check if any values are present, if not return an empty string 
     140                This gets around any list based errors when fishing for mandatory values 
     141                 
     142                @param inputList: list of values corresponding to xpath expressions used to fill the inputList from the original xml  
     143                @return: string: empty if no list values present, otherwise the first value if many 
     144                ''' 
     145                 
     146                valList = [] 
     147                #if type(item) is list: 
     148                #loop through all vals present and add to a temp list 
     149                for value in inputList: 
     150                        if len(value) > 0:                               
     151                                        valList = valList + value 
     152                 
     153                #take the first val.. if there is one (gotta put some cardinality in somewhere!) 
     154                if len(valList) > 0: 
     155                        return valList[0] 
     156                else: 
     157                        #if not, return an empty string 
     158                        return '' 
     159         
     160     
    137161    def escapeSpecialCharacters(self, inputString): 
    138162        ''' 
     
    177201        ''' 
    178202        logging.info("Running XQuery transform, " + xQueryType + " to create TRANSFORMED document!!") 
    179  
     203         
     204         
    180205        #takes metadataFileLoc,repositoryName,metadataID,metadataFilename, saxonJar 
    181206        #self.xqueryTransformation = xqueryTransformation(self.discovery_dir,self._repository,self.discovery_id,self._local_id,self._saxonJarFile) 
Note: See TracChangeset for help on using the changeset viewer.