Skip to main content
Sign in
Snippets Groups Projects
Commit f8afde51 authored by Johannes Mey's avatar Johannes Mey
Browse files

resource classes do not have sub-resources

parent bd0c5096
No related branches found
No related tags found
No related merge requests found
Showing
with 19 additions and 35 deletions
...@@ -330,7 +330,7 @@ ResourceMapping resource_mapping = ...@@ -330,7 +330,7 @@ ResourceMapping resource_mapping =
:} :}
| NAME.i RIGHT_ARROW NAME.res LB_CURLY resource_mapping.rml* RB_CURLY | NAME.i RIGHT_ARROW NAME.res LB_CURLY resource_mapping.rml* RB_CURLY
{: {:
ResourceMapping result = new ResourceResourceMapping(null, rml, null); ResourceMapping result = new ResourceResourceMapping(null, null, rml);
mph.resourceMappingTerminals.put(result, new Tuple<>(i, res)); mph.resourceMappingTerminals.put(result, new Tuple<>(i, res));
return result; return result;
:} :}
... ...
......
...@@ -38,9 +38,6 @@ aspect Helpers { ...@@ -38,9 +38,6 @@ aspect Helpers {
ResourceClassMapping copy = new ResourceClassMapping(); ResourceClassMapping copy = new ResourceClassMapping();
copy.setInstance(this.getInstance()); copy.setInstance(this.getInstance());
copy.setResourceClass(this.getResourceClass()); copy.setResourceClass(this.getResourceClass());
for (ResourceMapping subMapping : getResourceMappingList()) {
copy.addResourceMapping(subMapping.deepCopy());
}
return copy; return copy;
} }
... ...
......
...@@ -46,15 +46,7 @@ aspect Printing { ...@@ -46,15 +46,7 @@ aspect Printing {
MquatString result = new MquatString(settings, indentationLevel); MquatString result = new MquatString(settings, indentationLevel);
result.append(getInstance() == null ? "<no instance>" : getInstance().name()) result.append(getInstance() == null ? "<no instance>" : getInstance().name())
.append(" -> ").append((getResourceClass() == null) ? "<no resource class>" : "{" + getResourceClass().name() + "}"); .append(" -> ").append((getResourceClass() == null) ? "<no resource class>" : "{" + getResourceClass().name() + "}");
if (getNumResourceMapping() > 0) {
result.append(" {").lb().ind();
for (ResourceMapping subMapping : getResourceMappingList()) {
result.append(subMapping.print(settings, indentationLevel));
}
result.und().append("}").lb();
} else {
result.lb(); result.lb();
}
return result; return result;
} }
... ...
......
Solution ::= <Model:Root> Assignment* ; Solution ::= <Model:Root> Assignment* ;
Assignment ::= <TopLevel:boolean> <Request:Request> <Implementation:Implementation> ResourceMapping ComponentMapping* ; Assignment ::= <TopLevel:boolean> <Request:Request> <Implementation:Implementation> ResourceMapping ComponentMapping* ;
abstract ResourceMapping ::= <Instance:Instance> ResourceMapping* ; abstract ResourceMapping ::= <Instance:Instance> ;
ResourceResourceMapping:ResourceMapping ::= <Resource:Resource> ; ResourceResourceMapping:ResourceMapping ::= <Resource:Resource> ResourceMapping* ;
ResourceClassMapping:ResourceMapping ::= <ResourceClass:ResourceClass> ; ResourceClassMapping:ResourceMapping ::= <ResourceClass:ResourceClass> ;
ComponentMapping ::= <Instance:Instance> Assignment ; ComponentMapping ::= <Instance:Instance> Assignment ;
...@@ -30,13 +30,8 @@ aspect Traversal { ...@@ -30,13 +30,8 @@ aspect Traversal {
} }
} }
eq ResourceClassMapping.mappedResource(Instance instance) { eq ResourceClassMapping.mappedResource(Instance instance) {
for (ResourceMapping subMapping : this.getResourceMappingList()) { // TODO this method does not make sense.
Resource result = subMapping.mappedResource(instance); throw new RuntimeException("A ResourceClassMapping does not have a mapped resource!");
if (result != null) {
return result;
}
}
return null;
} }
syn java.util.List<Assignment> Assignment.allAssignments() { syn java.util.List<Assignment> Assignment.allAssignments() {
... ...
......
...@@ -8,7 +8,7 @@ aspect Helpers { ...@@ -8,7 +8,7 @@ aspect Helpers {
if (impl != null) { if (impl != null) {
assignment.setImplementation(impl); assignment.setImplementation(impl);
ResourceResourceMapping mapping = new ResourceResourceMapping(impl.getResourceRequirement().getInstance(0),new List<>(),resource); ResourceResourceMapping mapping = new ResourceResourceMapping(impl.getResourceRequirement().getInstance(0),resource,new List<>());
Resource.populateResourceMapping(mapping,impl.getResourceRequirement(),resource); Resource.populateResourceMapping(mapping,impl.getResourceRequirement(),resource);
assignment.setResourceMapping(mapping); assignment.setResourceMapping(mapping);
} }
...@@ -23,7 +23,7 @@ aspect Helpers { ...@@ -23,7 +23,7 @@ aspect Helpers {
if (impl != null) { if (impl != null) {
assignment.setImplementation(impl); assignment.setImplementation(impl);
ResourceClassMapping mapping = new ResourceClassMapping(impl.getResourceRequirement().getInstance(0),new List<>(),resourceClass); ResourceClassMapping mapping = new ResourceClassMapping(impl.getResourceRequirement().getInstance(0), resourceClass);
// Resource.populateResourceMapping(mapping,impl.getResourceRequirement(),resource); // Resource.populateResourceMapping(mapping,impl.getResourceRequirement(),resource);
assignment.setResourceMapping(mapping); assignment.setResourceMapping(mapping);
} }
... ...
......
...@@ -10,7 +10,7 @@ aspect SolverUtils { ...@@ -10,7 +10,7 @@ aspect SolverUtils {
Resource subResource = resource.getSubResource(currentResource); Resource subResource = resource.getSubResource(currentResource);
if (subResource.getType().getRef() == subRequirement.getResourceTypeRef().getRef()) { if (subResource.getType().getRef() == subRequirement.getResourceTypeRef().getRef()) {
if (currentInstance == fittingResourceCount) { if (currentInstance == fittingResourceCount) {
ResourceResourceMapping newMapping = new ResourceResourceMapping(instance, new List<>(), subResource); ResourceResourceMapping newMapping = new ResourceResourceMapping(instance, subResource, new List<>());
mapping.addResourceMapping(newMapping); mapping.addResourceMapping(newMapping);
populateResourceMapping(newMapping, subRequirement, subResource); populateResourceMapping(newMapping, subRequirement, subResource);
fittingResourceCount++; fittingResourceCount++;
... ...
......
...@@ -35,7 +35,7 @@ aspect Construction { ...@@ -35,7 +35,7 @@ aspect Construction {
} }
for (Instance instance : implementation.getResourceRequirement().getInstanceList()) { for (Instance instance : implementation.getResourceRequirement().getInstanceList()) {
assignment.setResourceMapping(new ResourceResourceMapping(instance, new List<>(), null)); assignment.setResourceMapping(new ResourceResourceMapping(instance, null, new List<>()));
} }
return assignment; return assignment;
... ...
......
...@@ -110,7 +110,7 @@ aspect Iterator { ...@@ -110,7 +110,7 @@ aspect Iterator {
assignment.setImplementation(newImplementation); assignment.setImplementation(newImplementation);
// the resourceRequirementAssignments change (even though just the keys are set.) // the resourceRequirementAssignments change (even though just the keys are set.)
assignment.setResourceMapping(new ResourceResourceMapping(newImplementation.getResourceRequirement().getInstance(0), new List<>(), null)); assignment.setResourceMapping(new ResourceResourceMapping(newImplementation.getResourceRequirement().getInstance(0), null, new List<>()));
// the componentRequirementAssignments change! // the componentRequirementAssignments change!
assignment.setComponentMappingList(new List<>()); assignment.setComponentMappingList(new List<>());
... ...
......
...@@ -568,7 +568,7 @@ public class ScenarioGenerator { ...@@ -568,7 +568,7 @@ public class ScenarioGenerator {
// add a new resource to allocate the current component to // add a new resource to allocate the current component to
Resource resource = createResource(model); Resource resource = createResource(model);
model.getHardwareModel().addResource(resource); model.getHardwareModel().addResource(resource);
currentAssignment.setResourceMapping(new ResourceResourceMapping(currentAssignment.getImplementation().getResourceRequirement().getInstance(0), new List<>(), resource)); currentAssignment.setResourceMapping(new ResourceResourceMapping(currentAssignment.getImplementation().getResourceRequirement().getInstance(0), resource, new List<>()));
// do the recursive assignment of dependent components // do the recursive assignment of dependent components
for (ComponentRequirement componentRequirement : implementation.getComponentRequirementList()) { for (ComponentRequirement componentRequirement : implementation.getComponentRequirementList()) {
...@@ -635,7 +635,7 @@ public class ScenarioGenerator { ...@@ -635,7 +635,7 @@ public class ScenarioGenerator {
if (sub.getType().getRef().equals(cpuType)) { if (sub.getType().getRef().equals(cpuType)) {
for (CurrentResourceValue value : sub.getCurrentResourceValueList()) { for (CurrentResourceValue value : sub.getCurrentResourceValueList()) {
if (value.getPropertyRef().getRef().getName().getName().equals("frequency")) { if (value.getPropertyRef().getRef().getName().getName().equals("frequency")) {
computeResourceMapping.addResourceMapping(new ResourceResourceMapping(cpuInstance[currentCpu], new List<>(), sub)); computeResourceMapping.addResourceMapping(new ResourceResourceMapping(cpuInstance[currentCpu], sub, new List<>()));
if (logger.isTraceEnabled()) { if (logger.isTraceEnabled()) {
logger.trace("set frequency value from {} to {}", value.getValue().evalAsDouble(), frequencyValue[currentCpu]); logger.trace("set frequency value from {} to {}", value.getValue().evalAsDouble(), frequencyValue[currentCpu]);
} }
...@@ -645,14 +645,14 @@ public class ScenarioGenerator { ...@@ -645,14 +645,14 @@ public class ScenarioGenerator {
} }
} else if (sub.getType().getRef().equals(ramType)) { } else if (sub.getType().getRef().equals(ramType)) {
setTotalStorageValue(computeResourceMapping, totalRamValue, ramInstance, sub); setTotalStorageValue(computeResourceMapping, totalRamValue, ramInstance, sub);
computeResourceMapping.addResourceMapping(new ResourceResourceMapping(ramInstance, new List<>(), sub)); computeResourceMapping.addResourceMapping(new ResourceResourceMapping(ramInstance, sub, new List<>()));
} else if (sub.getType().getRef().equals(diskType)) { } else if (sub.getType().getRef().equals(diskType)) {
setTotalStorageValue(computeResourceMapping, totalDiskValue, diskInstance, sub); setTotalStorageValue(computeResourceMapping, totalDiskValue, diskInstance, sub);
computeResourceMapping.addResourceMapping(new ResourceResourceMapping(diskInstance, new List<>(), sub)); computeResourceMapping.addResourceMapping(new ResourceResourceMapping(diskInstance, sub, new List<>()));
} else if (sub.getType().getRef().equals(networkType)) { } else if (sub.getType().getRef().equals(networkType)) {
for (CurrentResourceValue value : sub.getCurrentResourceValueList()) { for (CurrentResourceValue value : sub.getCurrentResourceValueList()) {
if (value.getPropertyRef().getRef().getName().getName().equals("throughput")) { if (value.getPropertyRef().getRef().getName().getName().equals("throughput")) {
computeResourceMapping.addResourceMapping(new ResourceResourceMapping(networkInstance, new List<>(), sub)); computeResourceMapping.addResourceMapping(new ResourceResourceMapping(networkInstance, sub, new List<>()));
if (logger.isTraceEnabled()) { if (logger.isTraceEnabled()) {
logger.trace("set throughput value from {} to {}", value.getValue().evalAsDouble(), networkThroughputValue); logger.trace("set throughput value from {} to {}", value.getValue().evalAsDouble(), networkThroughputValue);
} }
... ...
......
...@@ -117,7 +117,7 @@ public abstract class AbstractILPSolver implements BenchmarkableSolver { ...@@ -117,7 +117,7 @@ public abstract class AbstractILPSolver implements BenchmarkableSolver {
Assignment assignment = new Assignment(); Assignment assignment = new Assignment();
assignment.setRequest(mappingVar.getRequest()); assignment.setRequest(mappingVar.getRequest());
assignment.setImplementation(mappingVar.getImpl()); assignment.setImplementation(mappingVar.getImpl());
assignment.setResourceMapping(new ResourceResourceMapping(assignment.getImplementation().getResourceRequirement().getInstance(0), new de.tudresden.inf.st.mquat.jastadd.model.List<>(), mappingVar.getResource())); assignment.setResourceMapping(new ResourceResourceMapping(assignment.getImplementation().getResourceRequirement().getInstance(0), mappingVar.getResource(), new de.tudresden.inf.st.mquat.jastadd.model.List<>()));
listOfAssignments.add(assignment); listOfAssignments.add(assignment);
} }
} }
... ...
......
...@@ -21,7 +21,7 @@ public class SolverUtils { ...@@ -21,7 +21,7 @@ public class SolverUtils {
Implementation impl = assignment.getImplementation(); Implementation impl = assignment.getImplementation();
Resource resource = assignment.getResource(); Resource resource = assignment.getResource();
ResourceResourceMapping mapping = new ResourceResourceMapping(impl.getResourceRequirement().getInstance(0), new de.tudresden.inf.st.mquat.jastadd.model.List<>(), resource); ResourceResourceMapping mapping = new ResourceResourceMapping(impl.getResourceRequirement().getInstance(0), resource, new de.tudresden.inf.st.mquat.jastadd.model.List<>());
Resource.populateResourceMapping(mapping, impl.getResourceRequirement(), resource); Resource.populateResourceMapping(mapping, impl.getResourceRequirement(), resource);
assignment.setResourceMapping(mapping); assignment.setResourceMapping(mapping);
... ...
......
...@@ -55,7 +55,7 @@ public abstract class HandwrittenTestSuite { ...@@ -55,7 +55,7 @@ public abstract class HandwrittenTestSuite {
Assignment expectedAssignment = new Assignment(); Assignment expectedAssignment = new Assignment();
expectedAssignment.setRequest(model.getRequest(request)); expectedAssignment.setRequest(model.getRequest(request));
expectedAssignment.setImplementation(model.resolveImplementation(impl).get()); expectedAssignment.setImplementation(model.resolveImplementation(impl).get());
expectedAssignment.setResourceMapping(new ResourceResourceMapping(expectedAssignment.getImplementation().getResourceRequirement().getInstance(0), new List<>(), model.resolveResource(resource).get())); expectedAssignment.setResourceMapping(new ResourceResourceMapping(expectedAssignment.getImplementation().getResourceRequirement().getInstance(0), model.resolveResource(resource).get(), new List<>()));
// check if assignment matches (partly) one listed in the solution // check if assignment matches (partly) one listed in the solution
Iterator<Assignment> assignmentIterator = modelAndSolution.getSecondElement().assignmentIterator(); Iterator<Assignment> assignmentIterator = modelAndSolution.getSecondElement().assignmentIterator();
while (assignmentIterator.hasNext()) { while (assignmentIterator.hasNext()) {
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment