Ignore:
Timestamp:
20/04/07 08:12:11 (13 years ago)
Author:
lawrence
Message:

Code to support late binding to Browse service

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/PythonCode/wsgi/DIF.py

    r2417 r2422  
    99from renderEntity import renderEntity 
    1010from ServiceBinding import DIFService 
     11from ndgObject import ndgObject 
    1112try: #python 2.5 
    1213    from xml.etree import ElementTree as ET 
     
    3637    note ... not a complete implementation, currently minimum to 
    3738    show a reasonable piece of content ''' 
    38     def __init__(self,xml,et=0,debug=0,ndgObject=None): 
     39    def __init__(self,xml,et=0,debug=0,ndgObj=None): 
    3940         
    4041        '''Initialise a python dif instance based on an xml document (expected 
     
    6162         
    6263        # if this is an ndgObject that'll have been sorted externally ... 
    63         self.ndgObject=ndgObject 
     64        self.ndgObject=ndgObj 
    6465         
    6566        # now try and interpret it  
     
    158159                 helper.getText(item,'URL'), 
    159160                 helper.getText(item,'Description') )) 
    160          
     161         
    161162        if self.ndgObject is None: 
    162163            self.binding=None 
     
    164165            if self.ndgObject.discoveryURL is not None: 
    165166                self.binding=DIFService('DISCOVERY',self.ndgObject.discoveryURL,'Discovery record') 
     167                #explicitly do late binding on NDG-B URL  
     168                #... and override contents in metadatarecord 
     169                print '1' 
     170                B='%s__%s__%s'%(self.ndgObject.repository,'NDG-B1',self.ndgObject.localID) 
     171                Bobject=ndgObject(B,config=self.ndgObject.config) 
     172                print '2' 
     173                bdone=0 
     174                if Bobject.gettable!=-1: 
     175                    for s in self.services: 
     176                        print '3 ',s.contentType 
     177                        if s.contentType=='NDG_B_SERVICE':  
     178                            s.url=Bobject.URL 
     179                            bdone=1 
     180                    print '4' 
     181                    if not bdone: self.services.append( 
     182                                DIFService('NDG_B_SERVICE',Bobject.URL,'NDG Browse Metadata Service')) 
    166183            else: self.binding=None 
    167  
     184            print '5' 
    168185        if self.debug: 
    169186           f=open('difs.log','a') 
Note: See TracChangeset for help on using the changeset viewer.