Changeset 1522


Ignore:
Timestamp:
02/21/2012 11:05:44 AM (7 years ago)
Author:
michael.kriegel
Message:

small fix handling simultaneous requests of adding sub-containers to a storage container. Previously all but one request would be discarded now, the initial properties of every single one are applied

Location:
libs/cmion/cmionMain/src/cmion
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libs/cmion/cmionMain/src/cmion/level3/MindAction.java

    r1017 r1522  
    3131 
    3232import java.util.ArrayList; 
     33import java.util.List; 
    3334import java.util.HashMap; 
    3435 
     
    4344        /** create a new mind action with the specified name and parameters, if the action has 
    4445         * no parameters, the second parameter of this constructor may be null*/ 
    45         public MindAction(String subject, String name, ArrayList<String> parameters) 
     46        public MindAction(String subject, String name, List<String> parameters) 
    4647        { 
    4748                this.subject = subject; 
     
    171172         
    172173        /** the parameters of this action */ 
    173         protected ArrayList<String> parameters; 
     174        protected List<String> parameters; 
    174175         
    175176        /** returns the name/identifier of this action */ 
     
    186187 
    187188        /** returns the parameters of this action */ 
    188         public ArrayList<String> getParameters() 
     189        public List<String> getParameters() 
    189190        { 
    190191                return parameters; 
  • libs/cmion/cmionMain/src/cmion/storage/CmionStorageContainer.java

    r1444 r1522  
    353353                                                container.requestSetProperty(propertyName, initialProperties.get(propertyName)); 
    354354                                } 
    355                 }        
     355                }  
     356                else if (initialProperties!=null) // the container already exists, however we will still add the properties 
     357                { 
     358                        CmionStorageContainer container = subContainers.get(name); 
     359                         
     360                        // don't do this if the conatainer types don't match 
     361                        if (!type.equals(container.getContainerType())) return; 
     362                         
     363                        // go through all properties and set them 
     364                        for (String propertyName : initialProperties.keySet()) 
     365                        {        
     366                                if (persistentProperties!=null) 
     367                                { 
     368                                        boolean persistent = persistentProperties.contains(propertyName); 
     369                                        container.requestSetProperty(propertyName, initialProperties.get(propertyName),persistent);                                      
     370                                } 
     371                                else 
     372                                        container.requestSetProperty(propertyName, initialProperties.get(propertyName)); 
     373                        } 
     374                } 
    356375        } 
    357376 
     
    508527                // create an array list for remembering the properties that were 
    509528                // requested to change during this simulation step 
    510                 ArrayList<String> propertiesSet = new ArrayList<String>(); 
     529                HashSet<String> propertiesSet = new HashSet<String>(); 
    511530                 
    512531                // iterate through requests 
Note: See TracChangeset for help on using the changeset viewer.