EMMA Coverage Report (generated Sun Feb 05 10:43:15 CET 2012)
[all classes][de.uka.ipd.sdq.reliability.solver.test]

COVERAGE SUMMARY FOR SOURCE FILE [MarkovTestHelper.java]

nameclass, %method, %block, %line, %
MarkovTestHelper.java0%   (0/1)0%   (0/2)0%   (0/41)0%   (0/9)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MarkovTestHelper0%   (0/1)0%   (0/2)0%   (0/41)0%   (0/9)
MarkovTestHelper (): void 0%   (0/1)0%   (0/3)0%   (0/1)
getModelElement (Identifier, String): Identifier 0%   (0/1)0%   (0/38)0%   (0/8)

1package de.uka.ipd.sdq.reliability.solver.test;
2 
3import org.eclipse.emf.query.conditions.Condition;
4import org.eclipse.emf.query.conditions.eobjects.EObjectCondition;
5import org.eclipse.emf.query.conditions.eobjects.structuralfeatures.EObjectAttributeValueCondition;
6import org.eclipse.emf.query.conditions.strings.StringValue;
7import org.eclipse.emf.query.statements.FROM;
8import org.eclipse.emf.query.statements.IQueryResult;
9import org.eclipse.emf.query.statements.SELECT;
10import org.eclipse.emf.query.statements.WHERE;
11 
12import de.uka.ipd.sdq.identifier.Identifier;
13import de.uka.ipd.sdq.identifier.IdentifierPackage;
14 
15/**
16 * This class provides additional functionality for the Markov Test Cases. To
17 * use this functionality, the Test Case has to be run as a JUnit Plug-in Test
18 * (not only a JUnit Test).
19 * 
20 * @author brosch
21 * 
22 */
23public class MarkovTestHelper {
24 
25        /**
26         * Searches a tree of PCM model elements for an element with a certain GUID.
27         * Returns a reference to this element.
28         * 
29         * @param root
30         *            the root element of the tree to search
31         * @param guid
32         *            the guid of the element to find
33         * @return the reference to the element
34         */
35        public Identifier getModelElement(final Identifier root, final String guid) {
36 
37                // Search for a string which equals the given GUID:
38                Condition isGuidValue = new StringValue(guid);
39 
40                // Search for an identifier whose ID equals the given GUID:
41                EObjectCondition hasGuidValue = new EObjectAttributeValueCondition(
42                                IdentifierPackage.Literals.IDENTIFIER__ID, isGuidValue);
43 
44                // Perform an EMF Model Query:
45                IQueryResult queryResult = new SELECT(new FROM(root), new WHERE(
46                                hasGuidValue)).execute();
47 
48                // Return the first element that matches the condition:
49                for (Object next : queryResult) {
50                        return (Identifier) next;
51                }
52 
53                // Another possibility would be to use an OCL Query:
54                // OCL ocl = org.eclipse.ocl.ecore.OCL.newInstance();
55                // EObjectCondition guidCondition =
56                // new BooleanOCLCondition<EClassifier, EClass, EObject>(
57                // ocl.getEnvironment(), "self.id = '" + guid + "'",
58                // IdentifierPackage.Literals.IDENTIFIER);
59                // IQueryResult queryResult = new SELECT(new FROM(root), new WHERE(
60                // guidCondition)).execute();
61 
62                // Nothing found:
63                return null;
64        }
65}

[all classes][de.uka.ipd.sdq.reliability.solver.test]
EMMA 2.0.9414 (unsupported private build) (C) Vladimir Roubtsov