Changeset 7788 for RevitalizationWS


Ignore:
Timestamp:
23/12/10 11:37:24 (9 years ago)
Author:
mnagni
Message:

Added four new columns in the CommonProvider?.
Unified the provider descriptin response for doNewUpdateProvider and getProviderDetails

Location:
RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/ejb/ModelManager.java

    r7787 r7788  
    260260                                        storedProvider.setName(provider.getName()); 
    261261                                }                                
     262                                 
     263                                if (provider.getDataMarker() != null  
     264                                                && !provider.getDataMarker().equals(storedProvider.getDataMarker()))    { 
     265                                        storedProvider.setDataMarker(storedProvider.getDataMarker()); 
     266                                }                                                                
     267                                 
     268                                if (provider.getNdgDataProvider() != null  
     269                                                && !provider.getNdgDataProvider().equals(storedProvider.getNdgDataProvider()))  { 
     270                                        storedProvider.setNdgDataProvider(storedProvider.getNdgDataProvider()); 
     271                                }                                                                                                
     272                                 
     273                                if (provider.getCswPublish() != null  
     274                                                && !provider.getCswPublish().equals(storedProvider.getCswPublish()))    { 
     275                                        storedProvider.setCswPublish(storedProvider.getCswPublish()); 
     276                                }                                                                                                                        
     277                                 
     278                                if (provider.getCswPublishDir() != null  
     279                                                && !provider.getCswPublishDir().equals(storedProvider.getCswPublishDir()))      { 
     280                                        storedProvider.setCswPublishDir(storedProvider.getCswPublishDir()); 
     281                                }                                                                                                        
    262282                                 
    263283                                Iterator<ProviderEmail> iterator = storedProvider.getProviderEmails().iterator(); 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/executor/ExecuteDoNewProvider.java

    r7787 r7788  
    1 /* 
     1/** 
    22 * BSD Licence 
    3  * Copyright (c) 2009, Science & Technology Facilities Council (STFC) 
    4  * All rights reserved. 
    5  
    6  * See the LICENSE file in the source distribution of this software for 
    7  * the full license text.        
    8  * Copyright (C) 2007 STFC & NERC (Science and Technology Facilities Council). 
    9  * This software may be distributed under the terms of the 
    10  * Q Public License, version 1.0 or later. 
    11  * http://ndg.nerc.ac.uk/public_docs/QPublic_license.txt 
     3 * Copyright (c) 2009, Science & Technology Facilities Council (STFC) All rights reserved. 
     4 * Redistribution and use in source and binary forms, with or without 
     5 * modification, are permitted provided that the following conditions are 
     6 * met: 
     7 * 
     8 *   - Redistributions of source code must retain the above copyright 
     9 *     notice, this list of conditions and the following disclaimer. 
     10 *   - Redistributions in binary form must reproduce the above 
     11 *     copyright notice, this list of conditions and the following disclaimer 
     12 *     in the documentation and/or other materials provided with the 
     13 *     distribution. 
     14 *   - Neither the name of the Science & Technology Facilities Council 
     15 *     (STFC) nor the names of its contributors may be used to endorse or 
     16 *     promote products derived from this software without specific prior 
     17 *     written permission. 
     18 * 
     19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
     20 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
     21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
     22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
     23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
     24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
     25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
     26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
     27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
     28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
     29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     30 *  
    1231 */ 
    1332package ndg.services.revitalization.executor; 
     
    2140import ndg.services.revitalization.EJBBeanFactory; 
    2241import ndg.services.revitalization.harvest.ProviderAdapter; 
    23 import ndg.services.revitalization.harvest.ProviderAdapterFactory; 
    24 import ndg.services.revitalization.harvest.ProviderAdapterHelper; 
    2542import ndg.services.revitalization.jpa.ProviderCommon; 
    2643import ndg.services.revitalization.jpa.ProviderEmail; 
     
    3249import ndg.services.schemas.revitalization.ProviderCommonType.ProviderAdminEmail; 
    3350 
     51/** 
     52 * Creates/updates a Provider 
     53 *  
     54 * @author Maurizio Nagni <maurizio.nagni@stfc.ac.uk> 
     55 */ 
    3456public class ExecuteDoNewProvider extends ServiceExecutor<DoNewUpdateProviderRequest, DoNewUpdateProviderResponse> { 
    3557 
     
    111133                provider.setEmailToAdmin(common.getProviderAdminEmail().isMonitor()); 
    112134                provider.setName(common.getProviderName()); 
    113                 prepareProviderEmails(common, provider); 
     135                if (common.isSetDataMarker()) { 
     136                        provider.setDataMarker(common.getDataMarker());  
     137                } 
     138                if (common.isSetNDGDataProvider()) { 
     139                        provider.setNdgDataProvider(common.isNDGDataProvider());         
     140                } 
     141                if (common.isSetCswPublish()) { 
     142                        provider.setCswPublish(common.isCswPublish());   
     143                } 
     144                if (common.isSetCswPublishDir()) { 
     145                        provider.setCswPublishDir(common.getCswPublishDir());    
     146                }                
     147                prepareProviderEmails(common, provider);                 
    114148        } 
    115149         
     
    122156        } 
    123157         
    124         @SuppressWarnings("unchecked") 
    125158        private void prepareResponse(ProviderCommon ret) throws NdgExecutionException{ 
    126                 ProviderDetail pd = getOf().createProviderDetail(); 
    127                 getResponse().setProvider(pd); 
    128                  
    129                 ProviderCommonType pct = getOf().createProviderCommonType(); 
    130                 pd.setProviderCommon(pct); 
    131                  
    132                 pd.setProviderID(ret.getId()); 
    133                 pct.setProviderName(ret.getName()); 
    134                 pct.setProviderURL(ret.getBaseUrl());            
    135                 extractProviderEmails(pct, ret);                 
    136                 ProviderAdapterHelper helper = ProviderAdapterFactory.getProviderAdapterHelper(ret.getClass()); 
    137                 pd.setProviderType(helper.extractDetails(ret, getOf()));                         
     159                getResponse().setProvider(CommonProviderAdapter.prepareResponse(ret));                   
    138160        } 
    139          
    140         private void extractProviderEmails(ProviderCommonType common, ProviderCommon provider) {                 
    141                 if (common.getProviderContacts() == null) 
    142                         return; 
    143                  
    144                 List<ProviderEmail> contacts = provider.getProviderEmails(); 
    145                  
    146                 if (contacts == null || contacts.size() == 0) 
    147                         return; 
    148                  
    149                 //Contact email 
    150                 EmailContactType email = null; 
    151                 ProviderAdminEmail adminEmail = null; 
    152                 for (ProviderEmail item : contacts){ 
    153                         email = getOf().createEmailContactType(); 
    154                         email.setEmail(item.getEmail()); 
    155                         email.setName(item.getRealName()); 
    156                         email.setID(item.getId()); 
    157                          
    158                         if (item.getAdminEmail()) { 
    159                                 adminEmail = getOf().createProviderCommonTypeProviderAdminEmail(); 
    160                                 adminEmail.setMonitor(provider.getEmailToAdmin()); 
    161                                 adminEmail.setEmailContact(email); 
    162                                 common.setProviderAdminEmail(adminEmail); 
    163                                 continue; 
    164                         } 
    165  
    166                         common.getProviderContacts().add(email); 
    167                 } 
    168         }        
    169161} 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/executor/ExecuteGetProviderDetails.java

    r7625 r7788  
     1/** 
     2 * BSD Licence 
     3 * Copyright (c) 2009, Science & Technology Facilities Council (STFC) All rights reserved. 
     4 * Redistribution and use in source and binary forms, with or without 
     5 * modification, are permitted provided that the following conditions are 
     6 * met: 
     7 * 
     8 *   - Redistributions of source code must retain the above copyright 
     9 *     notice, this list of conditions and the following disclaimer. 
     10 *   - Redistributions in binary form must reproduce the above 
     11 *     copyright notice, this list of conditions and the following disclaimer 
     12 *     in the documentation and/or other materials provided with the 
     13 *     distribution. 
     14 *   - Neither the name of the Science & Technology Facilities Council 
     15 *     (STFC) nor the names of its contributors may be used to endorse or 
     16 *     promote products derived from this software without specific prior 
     17 *     written permission. 
     18 * 
     19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
     20 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
     21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
     22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
     23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
     24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
     25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
     26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
     27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
     28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
     29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     30 *  
     31 */ 
    132package ndg.services.revitalization.executor; 
    233 
     
    738import ndg.services.revitalization.EJBBeanFactory; 
    839import ndg.services.revitalization.ejb.interfaces.ModelManagerRemote; 
    9 import ndg.services.revitalization.harvest.ProviderAdapter; 
    1040import ndg.services.revitalization.jpa.ProviderCommon; 
    11 import ndg.services.revitalization.jpa.ProviderEmail; 
    12 import ndg.services.revitalization.jpa.TimerInfo; 
    13 import ndg.services.schemas.revitalization.EmailContactType; 
    1441import ndg.services.schemas.revitalization.GetProviderDetailsRequest; 
    1542import ndg.services.schemas.revitalization.GetProviderDetailsResponse; 
    16 import ndg.services.schemas.revitalization.ProviderCommonType; 
    17 import ndg.services.schemas.revitalization.ProviderDetail; 
    18 import ndg.services.schemas.revitalization.ProviderCommonType.ProviderAdminEmail; 
    1943 
     44/** 
     45 * Extracts the Provider details 
     46 *  
     47 * @author Maurizio Nagni <maurizio.nagni@stfc.ac.uk> 
     48 */ 
    2049public class ExecuteGetProviderDetails extends 
    2150                ServiceExecutor<GetProviderDetailsRequest, GetProviderDetailsResponse> { 
     
    3463                ModelManagerRemote mm = EJBBeanFactory.getModelManager(); 
    3564                List<? extends ProviderCommon> providers = mm.getHarvesterConfiguration(request.getProviderID()); 
    36                  
    37                 ProviderDetail pd = null; 
    38                 ProviderCommonType pct = null; 
    39                 EmailContactType ect = null; 
    40                 ProviderAdminEmail pae = null; 
    41                 for (ProviderCommon provider : providers) {                      
    42                         pd = getOf().createProviderDetail(); 
    43                         pct = getOf().createProviderCommonType(); 
    44                         pd.setProviderCommon(pct); 
    45                         getResponse().getProvider().add(pd); 
    46                         pd.setProviderID(provider.getId()); 
    47                          
    48                          
    49                         pct.setProviderURL(provider.getBaseUrl()); 
    50                         pct.setProviderName(provider.getName()); 
    51                          
    52                          
    53                         for (ProviderEmail email : provider.getProviderEmails()) { 
    54                                 ect = getOf().createEmailContactType(); 
    55                                 ect.setEmail(email.getEmail()); 
    56                                 ect.setID(email.getId()); 
    57                                 ect.setName(email.getRealName()); 
    58                                  
    59                                 if (!email.getAdminEmail()) { 
    60                                         pct.getProviderContacts().add(ect); 
    61                                         continue; 
    62                                 } 
    63                                  
    64                                 //Eventually is an AdminEmail 
    65                                 pae = getOf().createProviderCommonTypeProviderAdminEmail(); 
    66                                 pae.setEmailContact(ect); 
    67                                 pae.setMonitor(provider.getEmailToAdmin()); 
    68                                 pct.setProviderAdminEmail(pae); 
    69                         } 
    70                         pd.setProviderType(ProviderAdapter.getInstance().extractDetails(provider, getOf())); 
    71                         TimerInfo timerInfo = mm.getTimerInfo(provider.getId()); 
    72                         HTITimerAdapter adapter = new HTITimerAdapter(); 
    73                         pd.setTimerInfo(adapter.modelToResponse(timerInfo));                     
     65 
     66                for (ProviderCommon provider : providers) { 
     67                        getResponse().getProvider().add(CommonProviderAdapter.prepareResponse(provider));                        
    7468                } 
    7569        } 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/jpa/ProviderCommon.java

    r7625 r7788  
    1919        private Boolean emailToAdmin; 
    2020        private String name; 
     21        private String dataMarker; 
     22        private Boolean ndgDataProvider; 
     23        private Boolean cswPublish; 
     24        private String cswPublishDir;    
    2125        private List<ProviderEmail> providerEmails; 
    2226 
     
    6973        } 
    7074 
     75        @Column(name="data_marker") 
     76        public String getDataMarker() { 
     77                return dataMarker; 
     78        } 
     79 
     80        public void setDataMarker(String dataMarker) { 
     81                this.dataMarker = dataMarker; 
     82        } 
     83 
     84        @Column(name="ndg_data_provider") 
     85        public Boolean getNdgDataProvider() { 
     86                return ndgDataProvider; 
     87        } 
     88 
     89        public void setNdgDataProvider(Boolean ndgDataProvider) { 
     90                this.ndgDataProvider = ndgDataProvider; 
     91        } 
     92 
     93        @Column(name="csw_publish") 
     94        public Boolean getCswPublish() { 
     95                return cswPublish; 
     96        } 
     97 
     98        public void setCswPublish(Boolean cswPublish) { 
     99                this.cswPublish = cswPublish; 
     100        } 
     101 
     102        @Column(name="csw_publish_dir") 
     103        public String getCswPublishDir() { 
     104                return cswPublishDir; 
     105        } 
     106 
     107        /** 
     108         * @param cswPublishDir the cswPublishDir to set 
     109         */ 
     110        public void setCswPublishDir(String cswPublishDir) { 
     111                this.cswPublishDir = cswPublishDir; 
     112        } 
    71113 
    72114        //bi-directional many-to-one association to ProviderEmail 
Note: See TracChangeset for help on using the changeset viewer.