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/resources/computing/ResourceCharacteristics.java

    r1007 r1207  
    11package schedframe.resources.computing; 
    2  
    3 import java.util.ArrayList; 
    4 import java.util.HashMap; 
    5 import java.util.List; 
    6 import java.util.Map; 
    72 
    83import schedframe.Parameters; 
    94import schedframe.resources.computing.location.Location; 
    10 import schedframe.resources.units.ResourceUnit; 
    11 import schedframe.resources.units.ResourceUnitName; 
    125 
    136 
     
    169        private static final long serialVersionUID = 2719535186621622647L; 
    1710 
    18         protected Map<ResourceUnitName, List<ResourceUnit>> resUnits; 
     11        protected Location location; 
    1912        protected Parameters parameters; 
    20         protected Location location; 
     13        //protected Location location; 
     14        //protected List<Device> devices; 
    2115 
    2216        /*public ResourceCharacteristics(Map<ResourceUnitName, List<AbstractResourceUnit>> resUnits){ 
     
    3226        }*/ 
    3327         
    34         public Map<ResourceUnitName, List<ResourceUnit>> getResourceUnits() { 
    35                 if(resUnits == null) 
    36                         return new HashMap<ResourceUnitName, List<ResourceUnit>>(); 
    37                 return resUnits; 
    38         } 
     28 
    3929         
    40         public ResourceUnit getResourceUnit(ResourceUnitName unitName) throws NoSuchFieldException{ 
    41                 if(getResourceUnits().containsKey(unitName)) 
    42                         return getResourceUnits().get(unitName).get(0); 
    43                 else throw new NoSuchFieldException("Resource unit " + unitName +  
    44                                 " is not available in this resource "); 
    45         } 
    46          
    47         public void addResourceUnit(ResourceUnit unit){  
    48                 if(resUnits == null){ 
    49                         resUnits = new HashMap<ResourceUnitName, List<ResourceUnit>>(2); 
    50                 } 
    51                 List<ResourceUnit> list = null; 
    52                 if(resUnits.containsKey(unit.getName())){ 
    53                         list = resUnits.get(unit.getName()); 
    54                 } else { 
    55                         list = new ArrayList<ResourceUnit>(1); 
    56                         resUnits.put(unit.getName(), list); 
    57                 } 
    58                 list.add(unit); 
    59         } 
    60          
    61          
    62         public static class Builder { 
    63                    
    64                 protected Map<ResourceUnitName, List<ResourceUnit>> resUnits; 
    65                 protected Location location; 
    66                 protected Parameters parameters; 
    67                  
    68                 public Builder location(Location loc){this.location = loc; return this; } 
    69         public Builder parameters(Parameters params){this.parameters = params; return this; } 
    70         public Builder resourceUnits(Map<ResourceUnitName, List<ResourceUnit>> units){this.resUnits = units; return this; } 
    71         public Builder resourceUnits(){this.resUnits = new HashMap<ResourceUnitName, List<ResourceUnit>>(2); return this; } 
    72          
    73         public ResourceCharacteristics build() { 
    74             return new ResourceCharacteristics(this); 
    75         } 
    76         } 
    77          
    78         private ResourceCharacteristics(Builder builder) { 
    79                 this.location = builder.location; 
    80                 this.parameters = builder.parameters; 
    81                 this.resUnits = builder.resUnits; 
    82         } 
    83  
    8430        public Parameters getParameters() { 
    8531                if(parameters == null) 
     
    9137                return location; 
    9238        } 
     39         
     40        protected ResourceCharacteristics(Builder<?> builder) { 
     41                //this.location = builder.location; 
     42                this.parameters = builder.parameters; 
     43                this.location = builder.location; 
     44                //this.devices = builder.devices; 
     45        } 
     46         
     47    public static abstract class Builder<T extends Builder<T>> { 
     48           
     49                protected Location location; 
     50                protected Parameters parameters; 
     51 
     52        public T parameters(Parameters params){this.parameters = params; return self(); } 
     53                public T location(Location loc){this.location = loc; return self(); } 
     54                 
     55        protected abstract T self(); 
     56 
     57        public ResourceCharacteristics build() { 
     58            return new ResourceCharacteristics(this); 
     59        } 
     60    } 
     61    private static class Builder2 extends Builder<Builder2> { 
     62        @Override 
     63        protected Builder2 self() { 
     64            return this; 
     65        } 
     66    } 
     67 
     68    public static Builder<?> builder() { 
     69        return new Builder2(); 
     70    } 
     71         
     72        /*public static class Builder { 
     73                   
     74                protected Map<ResourceUnitName, List<ResourceUnit>> resUnits; 
     75                //protected Location location; 
     76                protected Parameters parameters; 
     77                //protected List<Device> devices; 
     78                 
     79                //public Builder location(Location loc){this.location = loc; return this; } 
     80        public Builder parameters(Parameters params){this.parameters = params; return this; } 
     81        //public Builder device(List<Device> dev){this.devices = dev; return this; } 
     82        public Builder resourceUnits(Map<ResourceUnitName, List<ResourceUnit>> units){this.resUnits = units; return this; } 
     83        public Builder resourceUnits(){this.resUnits = new HashMap<ResourceUnitName, List<ResourceUnit>>(2); return this; } 
     84         
     85        public ResourceCharacteristics build() { 
     86            return new ResourceCharacteristics(this); 
     87        } 
     88        } 
     89        */ 
     90 
    9391 
    9492} 
Note: See TracChangeset for help on using the changeset viewer.