Skip to content
Snippets Groups Projects
Commit 2c13288c authored by Fabian Gorsler's avatar Fabian Gorsler
Browse files

Created a tag of PDR Connector for Niko as the current implementation step is...

Created a tag of PDR Connector for Niko as the current implementation step is an easy to understand stage of the implementation of another individual connector

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/querylang/tags/CONNECTOR_PDR_EXAMPLE@11204 9e42b895-fcda-4063-8a3b-11be15eb1bbd
parents 75c10f49 627210f8
No related branches found
No related tags found
No related merge requests found
package edu.kit.ipd.descartes.ql.connector.pdr; package edu.kit.ipd.descartes.ql.connector.pdr;
import java.util.HashMap;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -87,14 +86,12 @@ public class ModelStructureQueryConnectorImpl extends AbstractOSGiQueryConnector ...@@ -87,14 +86,12 @@ public class ModelStructureQueryConnectorImpl extends AbstractOSGiQueryConnector
// iterate // iterate
final Observation latestObservation = repository.getLatestObservation(); final Observation latestObservation = repository.getLatestObservation();
final EntityMapping latest = latestObservation.getObservation(); final EntityMapping latest = latestObservation.getObservation();
final Map<String, Entity> latestEntityIndex = new HashMap<String, Entity>(); final Map<String, Entity> latestEntityIndex = RepositoryHelper.buildEntityIndex(latest);
final List<Entity> responseEntities = new LinkedList<Entity>(); final List<Entity> responseEntities = new LinkedList<Entity>();
responseEntities.addAll(response.getResources()); responseEntities.addAll(response.getResources());
responseEntities.addAll(response.getServices()); responseEntities.addAll(response.getServices());
RepositoryHelper.buildEntityIndex(latestEntityIndex, latest);
for (final Entity e : responseEntities) { for (final Entity e : responseEntities) {
final String identifier = e.getIdentifier(); final String identifier = e.getIdentifier();
final Entity latestEntity = latestEntityIndex.get(identifier); final Entity latestEntity = latestEntityIndex.get(identifier);
......
package edu.kit.ipd.descartes.ql.connector.pdr; package edu.kit.ipd.descartes.ql.connector.pdr;
import static edu.kit.ipd.descartes.ql.connector.pdr.RepositoryHelper.buildProbeIndex;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
...@@ -117,17 +119,12 @@ public class PerformanceMetricsQueryConnectorImpl extends AbstractOSGiQueryConne ...@@ -117,17 +119,12 @@ public class PerformanceMetricsQueryConnectorImpl extends AbstractOSGiQueryConne
} }
private void createResponseFromInstance(final EntityMapping response, final EntityMapping instance) { private void createResponseFromInstance(final EntityMapping response, final EntityMapping instance) {
final EList<Service> services = instance.getServices(); final Map<String, Entity> latestEntityIndex = RepositoryHelper.buildEntityIndex(instance);
final EList<Resource> resources = instance.getResources();
final int numEntities = services.size() + resources.size();
final Map<String, Entity> latestEntityIndex = new HashMap<String, Entity>(numEntities);
final List<Entity> responseEntities = new LinkedList<Entity>(); final List<Entity> responseEntities = new LinkedList<Entity>();
responseEntities.addAll(response.getResources()); responseEntities.addAll(response.getResources());
responseEntities.addAll(response.getServices()); responseEntities.addAll(response.getServices());
RepositoryHelper.buildEntityIndex(latestEntityIndex, instance);
for (final Entity e : responseEntities) { for (final Entity e : responseEntities) {
final String identifier = e.getIdentifier(); final String identifier = e.getIdentifier();
final Entity latestEntity = latestEntityIndex.get(identifier); final Entity latestEntity = latestEntityIndex.get(identifier);
...@@ -138,10 +135,8 @@ public class PerformanceMetricsQueryConnectorImpl extends AbstractOSGiQueryConne ...@@ -138,10 +135,8 @@ public class PerformanceMetricsQueryConnectorImpl extends AbstractOSGiQueryConne
} }
// Found entity, replace probes // Found entity, replace probes
final Map<String, Probe> latestProbeIndex = buildProbeIndex(latestEntity);
final EList<Probe> latestEntityProbes = latestEntity.getProbes();
final Map<String, Probe> latestProbeIndex = new HashMap<String, Probe>(latestEntityProbes.size());
RepositoryHelper.buildProbeIndex(latestProbeIndex, latestEntity);
final List<Probe> requestedProbes = e.getProbes(); final List<Probe> requestedProbes = e.getProbes();
final List<Probe> removal = new LinkedList<Probe>(); final List<Probe> removal = new LinkedList<Probe>();
final List<Probe> additional = new LinkedList<Probe>(); final List<Probe> additional = new LinkedList<Probe>();
......
package edu.kit.ipd.descartes.ql.connector.pdr; package edu.kit.ipd.descartes.ql.connector.pdr;
import java.io.File; import java.io.File;
import java.util.HashMap;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -9,6 +10,7 @@ import org.eclipse.core.resources.IWorkspace; ...@@ -9,6 +10,7 @@ import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IPath;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI; import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
...@@ -20,21 +22,30 @@ import edu.kit.ipd.descartes.ql.models.repository.repository.ObservationReposito ...@@ -20,21 +22,30 @@ import edu.kit.ipd.descartes.ql.models.repository.repository.ObservationReposito
public class RepositoryHelper { public class RepositoryHelper {
public static void buildEntityIndex(final Map<String, Entity> entityIndex, final EntityMapping mapping) { public static Map<String, Entity> buildEntityIndex(final EntityMapping mapping) {
final List<Entity> entities = new LinkedList<Entity>(); final List<Entity> entities = new LinkedList<Entity>();
entities.addAll(mapping.getResources()); entities.addAll(mapping.getResources());
entities.addAll(mapping.getServices()); entities.addAll(mapping.getServices());
final Map<String, Entity> entityIndex = new HashMap<String, Entity>(entities.size());
for (final Entity e : entities) { for (final Entity e : entities) {
entityIndex.put(e.getIdentifier(), e); entityIndex.put(e.getIdentifier(), e);
} }
return entityIndex;
} }
public static void buildProbeIndex(final Map<String, Probe> latestProbeIndex, final Entity latestEntity) { public static Map<String, Probe> buildProbeIndex(final Entity latestEntity) {
for (final Probe p : latestEntity.getProbes()) { final EList<Probe> probes = latestEntity.getProbes();
final Map<String, Probe> latestProbeIndex = new HashMap<String, Probe>(probes.size());
for (final Probe p : probes) {
latestProbeIndex.put(p.getMetricName(), p); latestProbeIndex.put(p.getMetricName(), p);
} }
return latestProbeIndex;
} }
public static ObservationRepository loadModelInstance(final String modelLocation) { public static ObservationRepository loadModelInstance(final String modelLocation) {
......
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