Skip to content
Snippets Groups Projects
Commit b58c4b14 authored by Simon Eismann's avatar Simon Eismann
Browse files

fixed whatif filters

parent b5e56383
No related branches found
No related tags found
No related merge requests found
......@@ -56,11 +56,12 @@ public class DoubleFilter implements WhatIfFilter {
for (Iterator<Probe> probeIterator = resource.getProbes().iterator(); probeIterator.hasNext();) {
Probe probe = probeIterator.next();
for (Iterator<StatType> statIterator = probe.getStatTypes().iterator(); statIterator.hasNext();) {
Result r = statIterator.next().getResult();
StatType st = statIterator.next();
Result r = st.getResult();
if (r != null && r instanceof DecimalResult) {
DecimalResult modifiedResult = (DecimalResult) r;
DecimalResult initialResult = getResult(initial, resource.getIdentifier(),
probe.getMetricName());
probe.getMetricName(), st.getTypeName());
if (modifier) {
if (filterWithModifier(modifiedResult, initialResult))
......@@ -81,11 +82,12 @@ public class DoubleFilter implements WhatIfFilter {
for (Iterator<Probe> probeIterator = service.getProbes().iterator(); probeIterator.hasNext();) {
Probe probe = probeIterator.next();
for (Iterator<StatType> statIterator = probe.getStatTypes().iterator(); statIterator.hasNext();) {
Result r = statIterator.next().getResult();
StatType st = statIterator.next();
Result r = st.getResult();
if (r != null && r instanceof DecimalResult) {
DecimalResult modifiedResult = (DecimalResult) r;
DecimalResult initialResult = getResult(initial, service.getIdentifier(),
probe.getMetricName());
probe.getMetricName(), st.getTypeName());
if (modifier) {
if (filterWithModifier(modifiedResult, initialResult))
......@@ -123,14 +125,16 @@ public class DoubleFilter implements WhatIfFilter {
}
private DecimalResult getResult(final EntityMapping initial, String identifier, String metricIdentifier) {
private DecimalResult getResult(final EntityMapping initial, String identifier, String metricIdentifier, String string) {
for (Iterator<Resource> resourceIterator = initial.getResources().iterator(); resourceIterator.hasNext();) {
Resource resource = resourceIterator.next();
if (resource.getIdentifier().equals(identifier)) {
for (Iterator<Probe> probeIterator = resource.getProbes().iterator(); probeIterator.hasNext();) {
Probe probe = probeIterator.next();
if (probe.getMetricName().equals(metricIdentifier)) {
return (DecimalResult) probe;
for (StatType st: probe.getStatTypes())
if (st.getTypeName().equals(string))
return (DecimalResult) st.getResult();
}
}
}
......@@ -142,7 +146,9 @@ public class DoubleFilter implements WhatIfFilter {
for (Iterator<Probe> probeIterator = service.getProbes().iterator(); probeIterator.hasNext();) {
Probe probe = probeIterator.next();
if (probe.getMetricName().equals(metricIdentifier)) {
return (DecimalResult) probe;
for (StatType st : probe.getStatTypes())
if (st.getTypeName().equals(string))
return (DecimalResult) st.getResult();
}
}
}
......
......@@ -70,6 +70,7 @@ import tools.descartes.dql.models.mapping.domain.DomainFactory;
import tools.descartes.dql.models.mapping.domain.Entity;
import tools.descartes.dql.models.mapping.domain.Probe;
import tools.descartes.dql.models.mapping.domain.Resource;
import tools.descartes.dql.models.mapping.domain.Result;
import tools.descartes.dql.models.mapping.domain.Service;
import tools.descartes.dql.models.mapping.domain.StatType;
import tools.descartes.dql.models.mapping.mapping.EntityMapping;
......@@ -329,12 +330,17 @@ public class WhatIfUtil {
Resource resource = resourceIterator.next();
for (Iterator<Probe> probeIterator = resource.getProbes().iterator(); probeIterator.hasNext();) {
Probe probe = probeIterator.next();
if (probe instanceof DecimalResult) {
DecimalResult modifiedResult = (DecimalResult) probe;
DecimalResult initialResult = getResult(initial, resource.getIdentifier(), probe.getMetricName());
for (Iterator<StatType> stIterator = probe.getStatTypes().iterator(); stIterator.hasNext();) {
StatType st = stIterator.next();
Result r = st.getResult();
if (r instanceof DecimalResult) {
DecimalResult modifiedResult = (DecimalResult) r;
DecimalResult initialResult = getResult(initial, resource.getIdentifier(),
probe.getMetricName(), st.getTypeName());
modifiedResult.setValue(modifiedResult.getValue().subtract(initialResult.getValue()));
modifiedResult.setValue(modifiedResult.getValue().subtract(initialResult.getValue()));
}
}
}
}
......@@ -343,12 +349,17 @@ public class WhatIfUtil {
Service service = serviceIterator.next();
for (Iterator<Probe> probeIterator = service.getProbes().iterator(); probeIterator.hasNext();) {
Probe probe = probeIterator.next();
if (probe instanceof DecimalResult) {
DecimalResult modifiedResult = (DecimalResult) probe;
DecimalResult initialResult = getResult(initial, service.getIdentifier(), probe.getMetricName());
for (Iterator<StatType> stIterator = probe.getStatTypes().iterator(); stIterator.hasNext();) {
StatType st = stIterator.next();
Result r = st.getResult();
if (r instanceof DecimalResult) {
DecimalResult modifiedResult = (DecimalResult) r;
DecimalResult initialResult = getResult(initial, service.getIdentifier(),
probe.getMetricName(), st.getTypeName());
modifiedResult.setValue(modifiedResult.getValue().subtract(initialResult.getValue()));
modifiedResult.setValue(modifiedResult.getValue().subtract(initialResult.getValue()));
}
}
}
}
......@@ -362,14 +373,18 @@ public class WhatIfUtil {
/*
* copied from DoubleFilter
*/
private static DecimalResult getResult(final EntityMapping initial, String identifier, String metricIdentifier) {
private static DecimalResult getResult(final EntityMapping initial, String identifier, String metricIdentifier,
String string) {
for (Iterator<Resource> resourceIterator = initial.getResources().iterator(); resourceIterator.hasNext();) {
Resource resource = resourceIterator.next();
if (resource.getIdentifier().equals(identifier)) {
for (Iterator<Probe> probeIterator = resource.getProbes().iterator(); probeIterator.hasNext();) {
Probe probe = probeIterator.next();
if (probe.getMetricName().equals(metricIdentifier)) {
return (DecimalResult) probe;
for (StatType st : probe.getStatTypes())
if (st.getTypeName().equals(string))
return (DecimalResult) st.getResult();
}
}
}
......@@ -381,14 +396,16 @@ public class WhatIfUtil {
for (Iterator<Probe> probeIterator = service.getProbes().iterator(); probeIterator.hasNext();) {
Probe probe = probeIterator.next();
if (probe.getMetricName().equals(metricIdentifier)) {
return (DecimalResult) probe;
for (StatType st : probe.getStatTypes())
if (st.getTypeName().equals(string))
return (DecimalResult) st.getResult();
}
}
}
}
return null;
}
/*
* creates an empty EntityMapping with model location
*/
......
......@@ -32,6 +32,7 @@ import tools.descartes.dql.models.mapping.domain.DecimalResult;
import tools.descartes.dql.models.mapping.domain.Probe;
import tools.descartes.dql.models.mapping.domain.Resource;
import tools.descartes.dql.models.mapping.domain.Service;
import tools.descartes.dql.models.mapping.domain.StatType;
import tools.descartes.dql.models.mapping.mapping.EntityMapping;
public class ZeroFilter implements WhatIfFilter {
......@@ -50,10 +51,13 @@ public class ZeroFilter implements WhatIfFilter {
Resource resource = resourceIterator.next();
for (Iterator<Probe> probeIterator = resource.getProbes().iterator(); probeIterator.hasNext();) {
Probe probe = probeIterator.next();
if (probe instanceof DecimalResult) {
DecimalResult modifiedResult = (DecimalResult) probe;
if (modifiedResult.getValue().intValue() == 0)
probeIterator.remove();
for (Iterator<StatType> stIterator = probe.getStatTypes().iterator(); stIterator.hasNext();) {
StatType st = stIterator.next();
if (st.getResult() instanceof DecimalResult) {
DecimalResult modifiedResult = (DecimalResult) st.getResult();
if (modifiedResult.getValue().intValue() == 0)
stIterator.remove();
}
}
if (resource.getProbes().isEmpty())
resourceIterator.remove();
......@@ -64,10 +68,13 @@ public class ZeroFilter implements WhatIfFilter {
Service service = serviceIterator.next();
for (Iterator<Probe> probeIteratpr = service.getProbes().iterator(); probeIteratpr.hasNext();) {
Probe probe = probeIteratpr.next();
if (probe instanceof DecimalResult) {
DecimalResult modifiedResult = (DecimalResult) probe;
if (modifiedResult.getValue().intValue() == 0)
probeIteratpr.remove();
for (Iterator<StatType> stIterator = probe.getStatTypes().iterator(); stIterator.hasNext();) {
StatType st = stIterator.next();
if (st.getResult() instanceof DecimalResult) {
DecimalResult modifiedResult = (DecimalResult) st.getResult();
if (modifiedResult.getValue().intValue() == 0)
stIterator.remove();
}
}
if (service.getProbes().isEmpty())
serviceIterator.remove();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment