Changeset 1207 for DCWoRMS/branches/coolemall/src/schedframe/resources/computing/ResourceCharacteristics.java
- Timestamp:
- 11/26/13 11:56:07 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/ResourceCharacteristics.java
r1007 r1207 1 1 package schedframe.resources.computing; 2 3 import java.util.ArrayList;4 import java.util.HashMap;5 import java.util.List;6 import java.util.Map;7 2 8 3 import schedframe.Parameters; 9 4 import schedframe.resources.computing.location.Location; 10 import schedframe.resources.units.ResourceUnit;11 import schedframe.resources.units.ResourceUnitName;12 5 13 6 … … 16 9 private static final long serialVersionUID = 2719535186621622647L; 17 10 18 protected Map<ResourceUnitName, List<ResourceUnit>> resUnits;11 protected Location location; 19 12 protected Parameters parameters; 20 protected Location location; 13 //protected Location location; 14 //protected List<Device> devices; 21 15 22 16 /*public ResourceCharacteristics(Map<ResourceUnitName, List<AbstractResourceUnit>> resUnits){ … … 32 26 }*/ 33 27 34 public Map<ResourceUnitName, List<ResourceUnit>> getResourceUnits() { 35 if(resUnits == null) 36 return new HashMap<ResourceUnitName, List<ResourceUnit>>(); 37 return resUnits; 38 } 28 39 29 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 84 30 public Parameters getParameters() { 85 31 if(parameters == null) … … 91 37 return location; 92 38 } 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 93 91 94 92 }
Note: See TracChangeset
for help on using the changeset viewer.