Ignore:
Timestamp:
11/26/13 11:56:07 (11 years ago)
Author:
wojtekp
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/SchedulerDescription.java

    r477 r1207  
    22 
    33import java.util.ArrayList; 
     4import java.util.Collection; 
    45import java.util.HashMap; 
    56import java.util.Iterator; 
     
    910import schedframe.resources.StandardResourceType; 
    1011import schedframe.resources.computing.description.ExecutingResourceDescription; 
     12import schedframe.resources.computing.description.ResourceDescription; 
    1113import schedframe.resources.providers.ResourceProvider; 
    12 import schedframe.resources.units.AbstractResourceUnit; 
    1314import schedframe.resources.units.ResourceUnit; 
    1415import schedframe.resources.units.ResourceUnitName; 
    1516import schedframe.scheduling.queue.QueueDescription; 
    1617 
    17 public class SchedulerDescription extends ExecutingResourceDescription{ 
     18public class SchedulerDescription extends ResourceDescription implements ExecutingResourceDescription{ 
    1819 
    1920        protected ResourceProvider provider; 
    2021        protected List<QueueDescription> accesQueues; 
     22        protected Map<ResourceUnitName, List<ResourceUnit>> resUnits; 
    2123 
    2224        public SchedulerDescription(ResourceProvider provider){ 
     
    6264                return provider; 
    6365        } 
     66         
     67        public void addResourceUnit(ResourceUnit unit) { 
     68                if (this.resUnits == null) 
     69                        this.resUnits = new HashMap<ResourceUnitName, List<ResourceUnit>>(1); 
     70                List<ResourceUnit> list = null; 
     71                if (this.resUnits.containsKey(unit.getName())) { 
     72                        list = this.resUnits.get(unit.getName()); 
     73                } else { 
     74                        list = new ArrayList<ResourceUnit>(1); 
     75                        this.resUnits.put(unit.getName(), list); 
     76                } 
     77                list.add(unit); 
     78        } 
     79         
     80        public ResourceUnit getResourceUnit(ResourceUnitName unitName) throws NoSuchFieldException { 
     81                return getResourceUnitList(unitName).get(0); 
     82        } 
     83 
     84        public List<ResourceUnit> getResourceUnitList(ResourceUnitName unitName) throws NoSuchFieldException { 
     85                if (resUnits.containsKey(unitName)) 
     86                        return resUnits.get(unitName); 
     87                else 
     88                        throw new NoSuchFieldException("Resource unit " + unitName + " is not available in resource " + this.id); 
     89        } 
     90 
     91        public Collection<ResourceUnit> getResourceUnit() { 
     92                if (resUnits == null) 
     93                        return null; 
     94                List<ResourceUnit> values = new ArrayList<ResourceUnit>(); 
     95                Collection<List<ResourceUnit>> lists = resUnits.values(); 
     96                Iterator<List<ResourceUnit>> itr = lists.iterator(); 
     97 
     98                while (itr.hasNext()) { 
     99                        List<ResourceUnit> list = itr.next(); 
     100                        values.addAll(list); 
     101                } 
     102 
     103                return values; 
     104        } 
     105 
     106        public Map<ResourceUnitName, List<ResourceUnit>> getResourceUnits() { 
     107                return resUnits; 
     108        } 
    64109} 
Note: See TracChangeset for help on using the changeset viewer.