Changeset 440:d7faaedf2de8

Show
Ignore:
Timestamp:
09/18/09 17:12:26 (4 years ago)
Author:
tgambet
Branch:
default
convert_revision:
svn:cdcfb263-7567-472c-a848-e2c2df3466e7/trunk@441
Message:

new way to get the response from RequestThread?, unicornCall is no longer passed as a parameter

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/org/w3c/unicorn/UnicornCall.java

    r427 r440  
    1 // $Id: UnicornCall.java,v 1.17 2009-09-18 15:01:43 tgambet Exp $ 
     1// $Id: UnicornCall.java,v 1.18 2009-09-18 17:12:26 tgambet Exp $ 
    22// Author: Jean-Guilhem Rouel 
    33// (c) COPYRIGHT MIT, ERCIM and Keio, 2006. 
     
    435435                final Map<String, Request> requests = requestList.getRequestMap(); 
    436436                // Creation of the thread list 
    437                 ArrayList<Thread> threadsList = new ArrayList<Thread>(); 
     437                ArrayList<RequestThread> threadsList = new ArrayList<RequestThread>(); 
    438438 
    439439                for (final String obsID : requests.keySet()) { 
    440440                        // send request to observer 
    441                         threadsList.add(new RequestThread(mapOfResponse, requests 
    442                                         .get(obsID), obsID, this)); 
     441                        //threadsList.add(new RequestThread(mapOfResponse, requests.get(obsID), obsID, this)); 
     442                        threadsList.add(new RequestThread(requests.get(obsID), obsID, this.getLang())); 
    443443                        logger.debug("Request " + requests.get(obsID) + " added to threadsList"); 
    444444                } 
     
    451451                        try { 
    452452                                threadsList.get(i).join(); 
     453                                Response resp = threadsList.get(i).getResponse(); 
     454                                mapOfResponse.put(threadsList.get(i).getObsID(), resp); 
     455                                String outputParamName = Framework.mapOfObserver.get(resp.getObserverId()).getParamOutputName(); 
     456                                resp.setRequestUri(resp.getRequestUri().replaceAll("&?" + outputParamName + "=[^&]*", "")); 
    453457                                logger.debug("Request " + ((RequestThread)threadsList.get(i)).getObsID() + " terminated"); 
    454458                        } catch (InterruptedException e) { 
     
    499503         
    500504        public LinkedHashMap<String, Response> getObservationList() { 
    501                 if (observationMap == null) { 
    502                         observationMap = new LinkedHashMap<String, Response>(); 
    503                          
    504                         for (Group group : aTask.getOutput().getGroupList()) { 
    505                                 if (!group.isSetType()) { 
    506                                         for (String observerId : group.getObservationList()) { 
    507                                                 if(mapOfResponse.get(observerId) != null) { 
    508                                                         observationMap.put(observerId, mapOfResponse.get(observerId)); 
     505                if (observationMap != null) 
     506                        return observationMap; 
     507                 
     508                observationMap = new LinkedHashMap<String, Response>(); 
     509                for (Group group : aTask.getOutput().getGroupList()) { 
     510                        if (!group.isSetType()) { 
     511                                for (String observerId : group.getObservationList()) { 
     512                                        if(mapOfResponse.get(observerId) != null) { 
     513                                                observationMap.put(observerId, mapOfResponse.get(observerId)); 
     514                                        } 
     515                                } 
     516                        } else { 
     517                                switch (group.getType()) { 
     518                                        case FIRSTPASSED: 
     519                                                String passedId = null; 
     520                                                for (String observerId : group.getObservationList()) { 
     521                                                        if (mapOfResponse.get(observerId) == null) { 
     522                                                                logger.error("unknown observer id (" + observerId + ") in output group of task: " + this.getTask().getID()); 
     523                                                                continue; 
     524                                                        } 
     525                                                        if (mapOfResponse.get(observerId).isPassed()) { 
     526                                                                passedId = observerId; 
     527                                                                break; 
     528                                                        } 
    509529                                                } 
    510                                         } 
    511                                 } else { 
    512                                         switch (group.getType()) { 
    513                                                 case FIRSTPASSED: 
    514                                                         String passedId = null; 
    515                                                         for (String observerId : group.getObservationList()) { 
    516                                                                 if (mapOfResponse.get(observerId) == null) { 
    517                                                                         logger.error("unknown observer id (" + observerId + ") in output group of task: " + this.getTask().getID()); 
    518                                                                         continue; 
    519                                                                 } 
    520                                                                 if (mapOfResponse.get(observerId).isPassed()) { 
    521                                                                         passedId = observerId; 
    522                                                                         break; 
    523                                                                 } 
    524                                                         } 
    525                                                         if (passedId == null) { 
    526                                                                 Response resp = mapOfResponse.get(group.getObservationList().get(0)); 
    527                                                                 if (resp != null) 
    528                                                                         observationMap.put(group.getObservationList().get(0), resp); 
    529                                                         } 
    530                                                         else  
    531                                                                 observationMap.put(passedId, mapOfResponse.get(passedId)); 
    532                                         } 
     530                                                if (passedId == null) { 
     531                                                        Response resp = mapOfResponse.get(group.getObservationList().get(0)); 
     532                                                        if (resp != null) 
     533                                                                observationMap.put(group.getObservationList().get(0), resp); 
     534                                                } 
     535                                                else  
     536                                                        observationMap.put(passedId, mapOfResponse.get(passedId)); 
    533537                                } 
    534538                        } 
     
    601605         */ 
    602606        public void setLang(final String sLang) { 
    603                 logger.debug("setLang(" + sLang + ")"); 
    604607                this.sLang = sLang; 
    605608        }