Changeset 8109


Ignore:
Timestamp:
22/02/12 16:41:30 (8 years ago)
Author:
mnagni
Message:

Modified the DiscoverySchema? to include Polygon and Multipolygon Boxes
Small code improvement following the Sonar suggestions

Location:
mauRepo/revitalizationProject/branches/MEDIN
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/revitalizationProject/branches/MEDIN/discoverySchema/src/main/resources/DiscoverySchema.xsd

    r8070 r8109  
    66        --> 
    77<xs:schema targetNamespace="http://schemas.services.ndg/discovery" elementFormDefault="qualified" 
    8         xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    9         xmlns:tns="http://schemas.services.ndg/discovery"> 
     8        xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.services.ndg/discovery"> 
    109        <!-- Request elements --> 
    1110        <xs:element name="DoSearch" type="tns:DoSearchType"/> 
     
    4140                </xs:sequence> 
    4241        </xs:complexType> 
    43          
    44          
     42 
     43 
    4544        <xs:complexType name="RetrieveCriteriaType"> 
    4645                <xs:sequence> 
     
    206205        <xs:complexType name="SpatialType"> 
    207206                <xs:sequence> 
    208                         <xs:element name="BoundingBox" type="tns:BoundingBoxType"> 
    209                                 <xs:annotation> 
    210                                         <xs:documentation>Bounding box with coordinates by default in EPSG:4326 (lat/lon)</xs:documentation> 
    211                                 </xs:annotation> 
    212                         </xs:element> 
    213207                        <xs:element name="SpatialOperator" type="xs:string" minOccurs="0"> 
    214208                                <xs:annotation> 
     
    221215                                </xs:annotation> 
    222216                        </xs:element> 
     217                        <xs:choice> 
     218                                <xs:element name="BoundingBox" type="tns:BoundingBoxType"> 
     219                                        <xs:annotation> 
     220                                                <xs:documentation>Bounding box with coordinates by default in EPSG:4326 (lat/lon)</xs:documentation> 
     221                                        </xs:annotation> 
     222                                </xs:element> 
     223                                <xs:element maxOccurs="1" name="PolygonBox" type="tns:PolygonBoxType"/> 
     224                                <xs:element maxOccurs="1" name="MultiPolygonBox" type="tns:MultiPolygonBoxType"/> 
     225                        </xs:choice> 
    223226                </xs:sequence> 
    224227        </xs:complexType> 
     
    407410                </xs:sequence> 
    408411        </xs:complexType> 
     412        <xs:complexType name="PolygonPointType"> 
     413                <xs:all maxOccurs="1"> 
     414                        <xs:element name="x" type="xs:float"/> 
     415                        <xs:element name="y" type="xs:float"/> 
     416                        <xs:element name="z" type="xs:float" minOccurs="0" nillable="false"/> 
     417                </xs:all> 
     418        </xs:complexType> 
     419        <xs:complexType name="PolygonBoxType"> 
     420                <xs:sequence maxOccurs="unbounded" minOccurs="1"> 
     421                        <xs:element name="polygonPoint" type="tns:PolygonPointType"/> 
     422                </xs:sequence> 
     423        </xs:complexType> 
     424        <xs:complexType name="MultiPolygonBoxType"> 
     425                <xs:sequence maxOccurs="unbounded"> 
     426                        <xs:element maxOccurs="unbounded" minOccurs="2" name="polygonBox" 
     427                                type="tns:PolygonBoxType"/> 
     428                </xs:sequence> 
     429        </xs:complexType> 
    409430</xs:schema> 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/pom.xml

    r8108 r8109  
    199199                        <scope>provided</scope> 
    200200                </dependency> 
     201                <dependency> 
     202                        <groupId>commons-lang</groupId> 
     203                        <artifactId>commons-lang</artifactId> 
     204                        <version>2.6</version> 
     205                </dependency> 
    201206        </dependencies> 
    202207   
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/ejb/discovery/CommonMethods.java

    r8105 r8109  
    88 
    99import ndg.common.MessageFormatter; 
    10 import ndg.common.NdgLogger; 
    1110import ndg.common.NdgMessage; 
    1211import ndg.common.exception.AssembleQueryException; 
     
    1514import ndg.services.discovery.basic.DiscoveryBasicDPWS; 
    1615import ndg.services.discovery.basic.DiscoveryDictionaryDPWS; 
     16import ndg.services.schemas.revitalization.discovery.DoSearchType; 
    1717import ndg.services.schemas.revitalization.discovery.DoSearchType.SearchCriteria; 
    18 import ndg.services.schemas.revitalization.discovery.DoSearchType; 
    1918import ndg.services.schemas.revitalization.discovery.OrderByType; 
    2019import ndg.services.schemas.revitalization.discovery.RetrieveCriteriaType; 
    2120 
    22 import org.apache.log4j.Level; 
    2321import org.slf4j.Logger; 
    2422import org.slf4j.LoggerFactory; 
     
    2725abstract class CommonMethods<T> { 
    2826         
    29         private NdgLogger logHelper = DiscoveryBasicDPWS.getInstance().getNdgInstance(CommonMethods.class.getName()); 
    3027        private Logger logger = LoggerFactory.getLogger(CommonMethods.class); 
    3128         
     
    119116                        selectSQL.append(orderSQL); 
    120117                } 
    121  
    122                 if (logger.isInfoEnabled()) { 
    123                         logger.info(selectSQL.toString());       
    124                 }                
    125118                return selectSQL.toString(); 
    126119        } 
    127120         
    128121        public String assembleSearch(DoSearchType doSearchType) throws AssembleQueryException { 
    129                 return assembleSearch(doSearchType.getSearchCriteria(), doSearchType.getRetrieveCriteria()); 
     122                String ret = assembleSearch(doSearchType.getSearchCriteria(), doSearchType.getRetrieveCriteria());  
     123                logger.info(ret);                                                
     124                return ret; 
    130125        } 
    131126         
    132127        public String assembleSearch(RetrieveCriteriaType type) throws AssembleQueryException { 
    133                 return assembleSearch(null, type); 
     128                String ret = assembleSearch(null, type);  
     129                logger.debug(ret); //Used by the doPresent and usually returns a long list of document names                                                     
     130                return ret; 
    134131        } 
    135132         
     
    175172                        } 
    176173                } catch (SQLException e) { 
    177                         logHelper.logMessage("rollbackError: ", Level.ERROR, e); 
     174                        logger.error("rollbackError: ", e); 
    178175                } finally { 
    179176                        if (conn != null) 
     
    182179                                                conn.close(); 
    183180                                } catch (SQLException e) { 
    184                                         logHelper.logMessage("closeConnectionError: ", Level.ERROR, e); 
     181                                        logger.error("closeConnectionError: ", e); 
    185182                                } 
    186183                } 
     
    192189                                rs.close(); 
    193190                } catch (Exception e) { 
    194                         logHelper.logMessage("closeResultsetError", Level.ERROR, e); 
     191                        logger.error("closeResultsetError: ", e); 
    195192                } 
    196193                try { 
     
    198195                                stat.close(); 
    199196                } catch (Exception e) { 
    200                         logHelper.logMessage("closeStatementError", Level.ERROR, e); 
     197                        logger.error("closeStatementError: ", e);                        
    201198                } 
    202199        } 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/ejb/discovery/SearchHelper.java

    r8105 r8109  
    2424import ndg.services.schemas.revitalization.discovery.DoSearchType; 
    2525import ndg.services.schemas.revitalization.discovery.DoSearchType.SearchCriteria; 
     26import ndg.services.schemas.revitalization.discovery.MultiPolygonBoxType; 
    2627import ndg.services.schemas.revitalization.discovery.ObjectFactory; 
     28import ndg.services.schemas.revitalization.discovery.PolygonBoxType; 
     29import ndg.services.schemas.revitalization.discovery.PolygonPointType; 
    2730import ndg.services.schemas.revitalization.discovery.RetrieveCriteriaType; 
    2831import ndg.services.schemas.revitalization.discovery.SpatialType; 
     
    8083                if (conn != null) { 
    8184                        try { 
    82                                 if (!conn.isClosed()) 
     85                                if (!conn.isClosed()) { 
    8386                                        conn.close(); 
     87                                }                                        
    8488                        } catch (SQLException e) { 
    8589                                logger.error("closeConnectionError", e); 
     
    209213        private void preapareTermSearch(StringBuffer fromSQL, StringBuffer whereSQL, List<TermSearchType> oterms) 
    210214                        throws AssembleQueryException { 
    211                 if (oterms == null || oterms.size() == 0) 
     215                if (oterms == null || oterms.size() == 0) { 
    212216                        return; 
     217                } 
     218                         
    213219 
    214220                Collections.sort(oterms, new TermSearchTypeComparator()); 
     
    222228 
    223229                        // if some termType is empty just skip it 
    224                         if (term == null || term.length() == 0) 
     230                        if (term == null || term.length() == 0) { 
    225231                                continue; 
     232                        } 
     233                                 
    226234                         
    227235                        //DO NOT INVERT!! 
     
    241249                        String operator = getOperator(termType.getOperator()); 
    242250 
    243                         if (queryIndex == 0) 
    244                                 checkWHERE_AND(whereSQL, secondPass);                    
     251                        if (queryIndex == 0) { 
     252                                checkWHERE_AND(whereSQL, secondPass); 
     253                        } 
     254                                                         
    245255                         
    246256                        if ((!secondPass && operator.equals(OPERATOR.NOT.name())) || (secondPass && queryIndex < terms.size())) { 
     
    278288        private void preapareTemporalSearch(StringBuffer fromSQL, StringBuffer whereSQL, TemporalType temporalType) { 
    279289                if (temporalType == null || temporalType.getDateRange() == null 
    280                                 || temporalType.getDateRange().getDate().size() == 0) 
     290                                || temporalType.getDateRange().getDate().size() == 0) { 
    281291                        return; 
     292                } 
     293                         
    282294 
    283295                DateRangeType dataRangeType = temporalType.getDateRange(); 
     
    337349                } 
    338350        } 
    339  
     351         
     352        private String processBoxSearch(BoundingBoxType bb) { 
     353                return " SetSRID('BOX3D(" + bb.getLimitWest() + " " + bb.getLimitSouth() + ", " + bb.getLimitEast() 
     354                                + " " + bb.getLimitNorth() + ")'::box3d, 4326)"; 
     355        } 
     356 
     357        private String buildPolygonPoints(PolygonBoxType pb) { 
     358                StringBuffer sb = new StringBuffer(); 
     359                sb.append('('); 
     360                for (PolygonPointType ppt : pb.getPolygonPoint()) { 
     361                        sb.append(String.format("%1$f %2$f, ", ppt.getX(), ppt.getY())); 
     362                }                
     363                sb.deleteCharAt(sb.length() - 2); 
     364                sb.trimToSize(); 
     365                sb.append(')'); 
     366                return sb.toString(); 
     367        } 
     368         
     369        private String buildMultipolygonPoints(MultiPolygonBoxType pb) { 
     370                StringBuffer sb = new StringBuffer(); 
     371                sb.append('('); 
     372                for (PolygonBoxType pbt : pb.getPolygonBox()) { 
     373                        sb.append(String.format("%1$s, ", buildPolygonPoints(pbt))); 
     374                } 
     375                sb.deleteCharAt(sb.length() - 2); 
     376                sb.trimToSize(); 
     377                sb.append(')'); 
     378                return sb.toString(); 
     379        } 
     380         
     381        private String processBoxSearch(PolygonBoxType pb) {             
     382                return " ST_GeomFromText('POLYGON(" + buildPolygonPoints(pb) + ")')"; 
     383        }        
     384         
     385        private String processBoxSearch(MultiPolygonBoxType pb) {                
     386                return " ST_GeomFromText('MULTIPOLYGON(" + buildMultipolygonPoints(pb) + ")')"; 
     387        }        
     388         
    340389        private void preapareSpatialSearch(StringBuffer fromSQL, StringBuffer whereSQL, SpatialType spatialType) { 
    341                 if (spatialType == null || spatialType.getBoundingBox() == null) 
     390                if (spatialType == null) { 
    342391                        return; 
     392                } 
    343393 
    344394                DiscoveryDictionaryDPWS.SpatialOperator spatialOperator = DiscoveryDictionaryDPWS.getSpatialOperator(null); 
     
    346396                                .getSpatialReferenceSystem(null); 
    347397 
    348                 if (spatialType.getSpatialOperator() != null) 
     398                if (spatialType.getSpatialOperator() != null) { 
    349399                        spatialOperator = DiscoveryDictionaryDPWS.getSpatialOperator(spatialType.getSpatialOperator()); 
    350  
    351                 if (spatialType.getSpatialReferenceSystem() != null) 
     400                } 
     401                         
     402 
     403                if (spatialType.getSpatialReferenceSystem() != null) { 
    352404                        spatialReferenceSystem = DiscoveryDictionaryDPWS.getSpatialReferenceSystem(spatialType 
    353405                                        .getSpatialReferenceSystem()); 
    354  
    355                 BoundingBoxType bb = spatialType.getBoundingBox(); 
    356                 String bbox = " SetSRID('BOX3D(" + bb.getLimitWest() + " " + bb.getLimitSouth() + ", " + bb.getLimitEast() 
    357                                 + " " + bb.getLimitNorth() + ")'::box3d, 4326)"; 
    358  
     406                }                
     407                 
     408                String box = ""; 
     409                 
     410                if (spatialType.isSetBoundingBox()) { 
     411                        box = processBoxSearch(spatialType.getBoundingBox()); 
     412                } 
     413 
     414                if (spatialType.isSetPolygonBox()) { 
     415                        box = processBoxSearch(spatialType.getPolygonBox()); 
     416                } 
     417                 
     418                if (spatialType.isSetMultiPolygonBox()) { 
     419                        box = processBoxSearch(spatialType.getMultiPolygonBox()); 
     420                } 
     421                 
    359422                checkFROMComma(fromSQL, false); 
    360423                fromSQL.append(DiscoveryDictionaryDPWS.SPATIAL_DATA_TABLE); 
     
    373436                        whereSQL.append(" && "); 
    374437                } 
    375                 whereSQL.append(bbox); 
     438                whereSQL.append(box); 
    376439 
    377440                checkWHERE_AND(whereSQL, false); 
     
    379442                whereSQL.append(".original_document_id = "); 
    380443                whereSQL.append(DiscoveryDictionaryDPWS.SPATIAL_DATA_TABLE); 
    381                 whereSQL.append(".original_document_id "); 
     444                whereSQL.append(".original_document_id ");               
    382445        } 
    383446 
    384447        private void preapareScopeSearch(StringBuffer fromSQL, StringBuffer whereSQL, List<String> scopes) { 
    385                 if (scopes == null || scopes.size() == 0) 
     448                if (scopes == null || scopes.size() == 0) { 
    386449                        return; 
     450                } 
     451                         
    387452 
    388453                StringBuffer safeBuffer = new StringBuffer(); 
     
    392457                        DiscoveryDictionaryDPWS.Scope scope = DiscoveryDictionaryDPWS.getScope(scopeLabel); 
    393458                        //logHelper.logMessage("Scope: " + scope, Level.DEBUG); 
    394                         if (scope == null) 
     459                        if (scope == null) { 
    395460                                continue; 
    396                         if (secondPass) 
     461                        } 
     462                                 
     463                        if (secondPass) { 
    397464                                whereSQL.append(" & "); 
     465                        }                                
    398466                        fromSQL.append(" '" + scope.fieldName() + "' "); 
    399467                        secondPass = true; 
    400468                } 
    401469 
    402                 if (safeBuffer.length() == 0) 
     470                if (safeBuffer.length() == 0) { 
    403471                        return; 
     472                } 
     473                         
    404474 
    405475                /* -- appends the terms (FROM part) -- */ 
     
    414484 
    415485        void preapareOriginalFormatSearch(StringBuffer fromSQL, StringBuffer whereSQL, String originalFormat) { 
    416                 if (originalFormat == null) 
     486                if (originalFormat == null) { 
    417487                        return; 
     488                } 
     489                         
    418490                DiscoveryDictionaryDPWS.OriginalFormat format = DiscoveryDictionaryDPWS.getOriginalFormat(originalFormat); 
    419491                checkWHERE_AND(whereSQL, false); 
     
    444516                String ret = op.name(); 
    445517 
    446                 if (operator == null) 
     518                if (operator == null) { 
    447519                        return ret; 
     520                } 
     521                         
    448522 
    449523                for (OPERATOR item : OPERATOR.values()) { 
    450524                        if (item.name().equals(operator)) { 
    451525                                ret = item.name(); 
    452                                 if (item.equals(OPERATOR.AND_NOT)) 
     526                                if (item.equals(OPERATOR.AND_NOT)) { 
    453527                                        ret = " AND NOT "; 
    454                                 if (item.equals(OPERATOR.OR_NOT)) 
     528                                } 
     529                                         
     530                                if (item.equals(OPERATOR.OR_NOT)) { 
    455531                                        ret = " OR NOT "; 
     532                                } 
     533                                         
    456534                                break; 
    457535                        } 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/executor/CommonProviderAdapter.java

    r8033 r8109  
    8383         
    8484        private static void extractProviderEmails(final ProviderCommonType common, final ProviderCommon provider) {              
    85                 if (common.getProviderContacts() == null) 
     85                if (common.getProviderContacts() == null) { 
     86                        return;                  
     87                } 
     88                List<ProviderEmail> contacts = provider.getProviderEmails();     
     89                if (contacts == null || contacts.size() == 0) { 
    8690                        return; 
    87                  
    88                 List<ProviderEmail> contacts = provider.getProviderEmails(); 
    89                  
    90                 if (contacts == null || contacts.size() == 0) 
    91                         return; 
     91                } 
    9292                 
    9393                //Contact email 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/executor/DiscoveryServiceExecutor.java

    r8094 r8109  
    44import java.lang.reflect.InvocationTargetException; 
    55import java.util.List; 
     6 
     7import org.apache.log4j.Logger; 
    68 
    79import ndg.common.NdgMessage; 
     
    1315import ndg.services.jpa.OriginalDocument; 
    1416import ndg.services.revitalization.EJBBeanFactory; 
     17import ndg.services.revitalization.ejb.discovery.SearchHelper; 
    1518import ndg.services.schemas.revitalization.discovery.CustomInfo; 
    1619import ndg.services.schemas.revitalization.discovery.DoPresentReturnType; 
     
    4043         
    4144        private static final ObjectFactory of = new ObjectFactory(); 
     45        private final static Logger logger = Logger.getLogger(DiscoveryServiceExecutor.class.getName()); 
    4246         
    4347        public GetListNamesReturnType getListNames() {   
     
    9195                                        status = true; 
    9296                                } catch (NdgException e) { 
    93                                         //statusMsg = logHelper.getBundleMessageAndDoLog(e, Level.ERROR); 
    94                                         //statusMsg = logHelper.getBundleMessage(e); 
     97                                        logger.error("Error", e); 
    9598                                } finally { 
    9699                                        int hits = -1; 
     
    107110                                                        msg = new NdgMessage("internal.server.error", new Object[] {}); 
    108111                                                } 
     112                                                logger.debug(msg.toString()); 
    109113                                                //statusMsg = logHelper.getBundleMessageAndDoLog(msg, Level.DEBUG); 
    110114                                        } 
     
    112116                        } 
    113117                } catch (Exception e) { 
    114  
     118                        logger.error("Error", e); 
    115119                } finally { 
    116120                        finalizeSearchReponse(status, statusMsg, response); 
     
    149153                        status = true; 
    150154                } catch (NdgException e) { 
    151                         //statusMsg = logHelper.getBundleMessage(e); 
     155                        logger.error("Error", e); 
    152156                } finally { 
    153157                        if (statusMsg == null) { 
    154158                                NdgMessage msg = new NdgMessage("present.successful", new Object[] {}); 
     159                                logger.debug(msg.toString()); 
    155160                                //statusMsg = logHelper.getBundleMessageAndDoLog(msg, Level.DEBUG); 
    156161                        } 
     
    171176                DiscoveryDictionaryDPWS.Names listName = DiscoveryDictionaryDPWS.getNames(name); 
    172177 
    173                 if (listName == null) 
     178                if (listName == null) { 
    174179                        return response; 
     180                }                        
    175181 
    176182                if (listName.equals(DiscoveryDictionaryDPWS.Names.TermTarget)) { 
     
    211217                        } 
    212218                } 
    213                 //logHelper.logMessage("getList() completed successfully", Level.DEBUG); 
     219                logger.debug("getList() completed successfull"); 
    214220                return response; 
    215221        } 
     
    217223        private void processResult(List<OriginalDocument> results, Documents documents, RecordDetail type, 
    218224                        List<OrderByType> orderBy) { 
    219                 if (results != null && results.size() == 0) 
     225                if (results != null && results.size() == 0) { 
    220226                        return; 
     227                }                        
    221228                Object documentType = null; 
    222229                for (OriginalDocument result : results) { 
     
    261268                for (OrderByType orderType : orders) { 
    262269                        OrderByField order = DiscoveryDictionaryDPWS.getOrderByField(orderType.getOrderByField()); 
    263                         if (order == null) 
     270                        if (order == null) { 
    264271                                continue; 
     272                        }                                
    265273                        OrderingMetricType newOMT = getNewOMT(documentType); 
    266                         if (newOMT == null) 
    267                                 continue; 
     274                        if (newOMT == null) { 
     275                                continue;        
     276                        } 
    268277                        newOMT.setMetricName(order.fieldLabel()); 
    269278                        String value = "DataError"; 
     
    275284                                newOMT.setMetricValue(value); 
    276285                        } catch (IllegalArgumentException e) { 
    277                                 //logHelper.logMessage(new NdgException(msg, e), Level.ERROR); 
     286                                logger.error(msg.toString(), e); 
    278287                        } catch (IllegalAccessException e) { 
    279                                 //logHelper.logMessage(new NdgException(msg, e), Level.ERROR); 
     288                                logger.error(msg.toString(), e); 
    280289                        } catch (InvocationTargetException e) { 
    281                                 //logHelper.logMessage(new NdgException(msg, e), Level.ERROR); 
     290                                logger.error(msg.toString(), e); 
    282291                        } 
    283292                } 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/executor/ExecuteDeleteTimer.java

    r8033 r8109  
    5252        @Override 
    5353        protected void execute(DeleteTimerRequest doRequest) throws NdgExecutionException { 
    54                 if (Double.isNaN(doRequest.getTimerID())) 
     54                if (Double.isNaN(doRequest.getTimerID())) { 
    5555                        throw new NdgExecutionException("The ProviderID cannot be empty"); 
    56                  
     56                } 
    5757                TimerInfo timerInfo = EJBBeanFactory.getModelManager().getTimerInfo(doRequest.getTimerID()); 
    58                  
    59                 if (timerInfo == null) 
     58                if (timerInfo == null) { 
    6059                        throw new NdgExecutionException("No timer exists for ID:" + doRequest.getTimerID()); 
    61                  
     60                } 
    6261                TimerInfoLog timerInfoLog = EJBBeanFactory.getModelManager().deleteTimer(doRequest.getTimerID()); 
    6362                HTITimerAdapter adapter = new HTITimerAdapter(); 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/executor/ExecuteDoIngest.java

    r8033 r8109  
    3131        @Override 
    3232        protected void execute(DoIngestRequest doRequest) throws NdgExecutionException { 
    33                 if (doRequest.getProcessID() == null) 
     33                if (doRequest.getProcessID() == null) { 
    3434                        throw new NdgExecutionException("The ProcessID cannot be empty"); 
     35                } 
    3536                 
    3637                IngestRequest request = new IngestRequest(doRequest.getProcessID().getId(),  
     
    4041                HiProcess process = mmr.getHiProcess(request.getProcessID()); 
    4142 
    42                 if (process == null) 
    43                         throw new NdgExecutionException("Process does not exist. The request rejected.");                
     43                if (process == null) { 
     44                        throw new NdgExecutionException("Process does not exist. The request rejected."); 
     45                } 
    4446                 
    45                 if (request.getEmailIDs() == null) 
     47                if (request.getEmailIDs() == null) { 
    4648                        throw new NdgExecutionException("EmailID cannot be null. The request rejected."); 
     49                } 
    4750                 
    4851                EJBBeanFactory.getMessageDispatcher().dispatchHarvestRequest(request); 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/executor/HTITimerAdapter.java

    r8033 r8109  
    4444import ndg.services.schemas.revitalization.TimerInfoLogDetail; 
    4545 
     46import org.apache.log4j.Logger; 
     47 
    4648/** 
    4749 * @author Maurizio Nagni <maurizio.nagni@stfc.ac.uk> 
     
    5052 
    5153        public static long TIME_FACTOR = 60000; 
     54        private final static Logger logger = Logger.getLogger(HTITimerAdapter.class.getName()); 
    5255        public TimerInfo requestToModel(TimerInfoCommonType request) { 
    5356                TimerInfo timerInfo = new TimerInfo(); 
    5457                timerInfo.setCommonId(request.getProviderID()); 
    5558                 
    56                 if (request.getStartDate() != null) 
     59                if (request.getStartDate() != null) { 
    5760                        timerInfo.setStartDate(new Timestamp(request.getStartDate().toGregorianCalendar().getTimeInMillis())); 
     61                } 
    5862                         
    59                 if (request.getStopDate() != null) 
     63                         
     64                if (request.getStopDate() != null) { 
    6065                        timerInfo.setEndDate(new Timestamp(request.getStopDate().toGregorianCalendar().getTimeInMillis())); 
     66                } 
     67                         
    6168 
    62                 if (!Double.isNaN(request.getFrequency()))       
    63                         timerInfo.setFrequency(request.getFrequency()*TIME_FACTOR);      
     69                if (!Double.isNaN(request.getFrequency()))      { 
     70                        timerInfo.setFrequency(request.getFrequency()*TIME_FACTOR); 
     71                } 
    6472                                 
    65                 if (request.getIngestCommand() != null) 
     73                                 
     74                if (request.getIngestCommand() != null) { 
    6675                        timerInfo.setIngestCommand(request.getIngestCommand()); 
    67                  
     76                } 
    6877                timerInfo.setIsSingleAction(request.isSetSingleAction()); 
    6978                return timerInfo; 
     
    7180         
    7281        public TimerInfoDetail modelToResponse(TimerInfo timerInfo) { 
    73                 if (timerInfo == null) 
     82                if (timerInfo == null) { 
    7483                        return null; 
     84                } 
     85                         
    7586                TimerInfoDetail timer = new TimerInfoDetail(); 
    7687                 
     
    100111                        }                        
    101112                } catch (DatatypeConfigurationException e) { 
    102                         // TODO Auto-generated catch block 
    103                         e.printStackTrace(); 
     113                        logger.error("Error", e); 
    104114                } 
    105115                return timer; 
     
    112122                logDetail.setTimerInfoCommon(detail); 
    113123                 
    114                 if (timerInfoLog.getLastReqId() != null) 
    115                         detail.setLastReqId(timerInfoLog.getLastReqId()); 
     124                if (timerInfoLog.getLastReqId() != null) { 
     125                        detail.setLastReqId(timerInfoLog.getLastReqId());        
     126                } 
     127                         
    116128                 
    117129                ndg.services.schemas.revitalization.TimerInfoCommonType common = new TimerInfoCommonType(); 
     
    141153                        }                        
    142154                } catch (DatatypeConfigurationException e) { 
    143                         // TODO Auto-generated catch block 
    144                         e.printStackTrace(); 
     155                        logger.error("Error", e); 
    145156                }        
    146157                return logDetail; 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/executor/HarvesterTimerInfo.java

    r8033 r8109  
    114114        @Override 
    115115        public boolean equals(Object obj) { 
    116                 if (this == obj) 
     116                if (this == obj) { 
    117117                        return true; 
    118                 if (getClass() != obj.getClass()) 
     118                }                
     119                if (getClass() != obj.getClass()) { 
    119120                        return false; 
     121                }                        
    120122                HarvesterTimerInfo other = (HarvesterTimerInfo) obj; 
    121                 if (providerID != other.providerID) 
     123                if (providerID != other.providerID) { 
    122124                        return false; 
     125                }                
    123126                return true; 
    124127        } 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/main/java/ndg/services/revitalization/executor/ProviderLogs.java

    r8033 r8109  
    4949        @Override 
    5050        public boolean equals(Object obj) { 
    51                 if (this == obj) 
     51                if (this == obj) { 
    5252                        return true; 
    53                 if (obj == null) 
     53                } 
     54                         
     55                if (obj == null) { 
    5456                        return false; 
    55                 if (getClass() != obj.getClass()) 
     57                } 
     58                         
     59                if (getClass() != obj.getClass()) { 
    5660                        return false; 
     61                } 
     62                         
    5763                ProviderLogs other = (ProviderLogs) obj; 
    5864                if (providerID == null) { 
    59                         if (other.providerID != null) 
     65                        if (other.providerID != null) { 
    6066                                return false; 
    61                 } else if (!providerID.equals(other.providerID)) 
     67                        }                                
     68                } else if (!providerID.equals(other.providerID)) { 
    6269                        return false; 
     70                }                        
    6371                return true; 
    6472        } 
  • mauRepo/revitalizationProject/branches/MEDIN/dpws/src/test/java/ndg/services/revitalization/ejb/discovery/SearchHelperTest.java

    r8105 r8109  
    22 
    33import ndg.common.exception.AssembleQueryException; 
     4import ndg.services.schemas.revitalization.discovery.BoundingBoxType; 
    45import ndg.services.schemas.revitalization.discovery.DoSearchType; 
    56import ndg.services.schemas.revitalization.discovery.DoSearchType.SearchCriteria; 
     7import ndg.services.schemas.revitalization.discovery.MultiPolygonBoxType; 
     8import ndg.services.schemas.revitalization.discovery.PolygonBoxType; 
     9import ndg.services.schemas.revitalization.discovery.PolygonPointType; 
     10import ndg.services.schemas.revitalization.discovery.SpatialType; 
    611import ndg.services.schemas.revitalization.discovery.TermSearchType; 
    712 
     13import org.apache.commons.lang.StringUtils; 
    814import org.junit.Assert; 
    915import org.junit.Rule; 
     
    1723public class SearchHelperTest { 
    1824 
     25        enum BOX_TYPE {BOUNDING_BOX, POLYGON_BOX, MULTI_POLYGON_BOX} 
     26         
    1927          @Rule public MethodRule watchman = new TestWatchman() { 
    2028                    public void starting(FrameworkMethod method) { 
     
    2937         
    3038        @Test 
    31         public void doSearch() { 
    32                 DoSearchType doSearchType = generateSearchType(); 
     39        public void doSpatialBoxSearch() { 
     40                for (BOX_TYPE box_type : BOX_TYPE.values()) { 
     41                        doSpatialBoxSearch(box_type); 
     42                }                
     43        } 
     44         
     45        public void doSpatialBoxSearch(BOX_TYPE box_type) { 
     46                DoSearchType doSearchType = generateBoxSearchType(null, box_type); 
    3347                SearchHelper sh = new SearchHelper(null, doSearchType);          
    3448                try { 
     
    3953        } 
    4054         
    41         private DoSearchType generateSearchType() { 
     55        @Test 
     56        public void doSimpleSearch() { 
     57                DoSearchType doSearchType = generateSimpleSearchType(); 
     58                SearchHelper sh = new SearchHelper(null, doSearchType);          
     59                try { 
     60                        sh.assembleSearch(doSearchType); 
     61                } catch (AssembleQueryException e) { 
     62                        Assert.fail(e.getMessage()); 
     63                } 
     64        } 
     65         
     66        private DoSearchType generateSimpleSearchType() { 
    4267                DoSearchType st = new DoSearchType(); 
    4368                TermSearchType tst = new TermSearchType(); 
     
    5176                return st; 
    5277        } 
     78 
     79        private DoSearchType generateBoxSearchType(DoSearchType st, BOX_TYPE box_type) {  
     80                if (st == null) { 
     81                        st = generateSimpleSearchType(); 
     82                } 
     83                 
     84                SpatialType ss = st.getSearchCriteria().getSpatialSearch();              
     85                if (ss == null) { 
     86                        ss = new SpatialType();  
     87                } 
     88                 
     89                switch (box_type) { 
     90                case BOUNDING_BOX: 
     91                        generateBoundingBoxSearchType(ss); 
     92                        break; 
     93                case POLYGON_BOX: 
     94                        generatePolygonBoxSearchType(ss); 
     95                        break;   
     96                case MULTI_POLYGON_BOX: 
     97                        generateMultipolygonBoxSearchType(ss); 
     98                        break;                           
     99                default: 
     100                        break; 
     101                } 
     102                st.getSearchCriteria().setSpatialSearch(ss);             
     103                return st; 
     104        } 
     105         
     106        private void generateBoundingBoxSearchType(SpatialType ss) { 
     107                Assert.assertNull(ss.getBoundingBox()); 
     108                BoundingBoxType bbt = new BoundingBoxType(); 
     109                bbt.setLimitSouth(1f); 
     110                bbt.setLimitNorth(2f); 
     111                bbt.setLimitWest(3f); 
     112                bbt.setLimitEast(4f); 
     113                ss.setBoundingBox(bbt); 
     114        } 
     115         
     116        private void generatePolygonBoxSearchType(SpatialType ss) { 
     117                Assert.assertNull(ss.getPolygonBox()); 
     118                PolygonBoxType pbt = generatePolygonBoxType("-20 80, -19 80, -19 50.5, 20 50.5, 20 50, -20 50, -20 80"); 
     119                ss.setPolygonBox(pbt); 
     120        } 
     121         
     122        private void generateMultipolygonBoxSearchType(SpatialType ss) { 
     123                Assert.assertNull(ss.getMultiPolygonBox()); 
     124                MultiPolygonBoxType mpbt = new MultiPolygonBoxType(); 
     125                 
     126                mpbt.getPolygonBox().add(generatePolygonBoxType("0 0 ,4 0 ,4 4 ,0 4 ,0 0 ")); 
     127                mpbt.getPolygonBox().add(generatePolygonBoxType("-1 -1,-1 -2,-2 -2,-2 -1,-1 -1")); 
     128                ss.setMultiPolygonBox(mpbt); 
     129        } 
     130 
     131        private PolygonBoxType generatePolygonBoxType(String path) { 
     132                PolygonBoxType pbt = new PolygonBoxType(); 
     133                PolygonPointType ppt = null; 
     134                for (String point : StringUtils.split(path, ",")) { 
     135                        ppt = new PolygonPointType(); 
     136                        String[] points = StringUtils.split(point); 
     137                        ppt.setX(Float.parseFloat(points[0])); 
     138                        ppt.setY(Float.parseFloat(points[1])); 
     139                        pbt.getPolygonPoint().add(ppt);  
     140                } 
     141                return pbt; 
     142        } 
    53143} 
Note: See TracChangeset for help on using the changeset viewer.