Skip to content
Snippets Groups Projects
Commit d352cce8 authored by Konstantin Blaschke's avatar Konstantin Blaschke
Browse files

Removing import of rcp application,

Issue-Ref: 4310
Issue-Url: af3#4310


Signed-off-by: default avatarKonstantin Blaschke <blaschke@fortiss.org>
parent b4d4fb3b
No related branches found
No related tags found
1 merge request!210Setting up Metric extraction plugin for AF3 : Issue 4310
...@@ -15,5 +15,4 @@ Export-Package: org.fortiss.tooling.ext.quality.service ...@@ -15,5 +15,4 @@ Export-Package: org.fortiss.tooling.ext.quality.service
Import-Package: org.fortiss.af3.component.model, Import-Package: org.fortiss.af3.component.model,
org.fortiss.af3.component.utils, org.fortiss.af3.component.utils,
org.fortiss.af3.project.model, org.fortiss.af3.project.model,
org.fortiss.af3.project.utils, org.fortiss.af3.project.utils
org.fortiss.af3.rcp.application
...@@ -45,14 +45,14 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement ...@@ -45,14 +45,14 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement
@Override @Override
public List<String> apply(IHierarchicElement topComponent) { public List<String> apply(IHierarchicElement topComponent) {
extractComment(topComponent); extractComment(topComponent);
for (IHierarchicElement child : topComponent.getContainedElements()) { for(IHierarchicElement child : topComponent.getContainedElements()) {
apply(child); apply(child);
} }
return strings; return strings;
} }
public void startRecursion(IHierarchicElement topElement) { public void startRecursion(IHierarchicElement topElement) {
Set<IElementConsumer> consumers = new HashSet<MetricCommentProvider.IElementConsumer>(); Set<IElementConsumer> consumers = new HashSet<MetricCommentProvider.IElementConsumer>();
consumers.add(new PortCounter()); consumers.add(new PortCounter());
consumers.add(new ConnectionCounter()); consumers.add(new ConnectionCounter());
...@@ -64,14 +64,15 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement ...@@ -64,14 +64,15 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement
consumers.forEach(c -> c.printResult()); consumers.forEach(c -> c.printResult());
new PortCounter().printShare((HierarchicElementBase) topElement.getContainedElements().get(0)); new PortCounter()
.printShare((HierarchicElementBase)topElement.getContainedElements().get(0));
} }
public void traverse(IHierarchicElement currentElement, Set<IElementConsumer> consumers) { public void traverse(IHierarchicElement currentElement, Set<IElementConsumer> consumers) {
consumers.forEach(c -> c.apply(currentElement)); consumers.forEach(c -> c.apply(currentElement));
for (IHierarchicElement child : currentElement.getContainedElements()) { for(IHierarchicElement child : currentElement.getContainedElements()) {
traverse(child, consumers); traverse(child, consumers);
} }
...@@ -88,8 +89,8 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement ...@@ -88,8 +89,8 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement
@Override @Override
public void apply(IHierarchicElement element) { public void apply(IHierarchicElement element) {
if (element instanceof INamedCommentedElement) { if(element instanceof INamedCommentedElement) {
consume((INamedCommentedElement) element); consume((INamedCommentedElement)element);
} else { } else {
consume(element); consume(element);
} }
...@@ -112,41 +113,43 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement ...@@ -112,41 +113,43 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement
@Override @Override
public void apply(IHierarchicElement element) { public void apply(IHierarchicElement element) {
if (!((INamedCommentedElement) element).getName().equals("DtB")) { if(!((INamedCommentedElement)element).getName().equals("DtB")) {
// return; // return;
} }
int hash = 1; int hash = 1;
for (IConnector connector : element.getConnectors()) { for(IConnector connector : element.getConnectors()) {
PortSpecification port = (PortSpecification) connector.getSpecifications().get(0); PortSpecification port = (PortSpecification)connector.getSpecifications().get(0);
hash = 31 * hash hash = 31 * hash + (connector instanceof InputPort ? 1 : 2) *
+ (connector instanceof InputPort ? 1 : 2) * port.getType().getClass().hashCode(); port.getType().getClass().hashCode();
} }
map.putIfAbsent(hash, new ArrayList<>()); map.putIfAbsent(hash, new ArrayList<>());
List<IHierarchicElement> elements = map.get(hash); List<IHierarchicElement> elements = map.get(hash);
for (IHierarchicElement element_b : elements) { for(IHierarchicElement element_b : elements) {
List<String> element_a_input = new ArrayList<String>(); List<String> element_a_input = new ArrayList<String>();
List<String> element_b_input = new ArrayList<String>(); List<String> element_b_input = new ArrayList<String>();
List<String> element_a_output = new ArrayList<String>(); List<String> element_a_output = new ArrayList<String>();
List<String> element_b_output = new ArrayList<String>(); List<String> element_b_output = new ArrayList<String>();
for (IConnector connector : element.getConnectors()) { for(IConnector connector : element.getConnectors()) {
PortSpecification port = (PortSpecification) connector.getSpecifications().get(0); PortSpecification port =
(PortSpecification)connector.getSpecifications().get(0);
String type = port.getType().getClass().getSimpleName(); String type = port.getType().getClass().getSimpleName();
if (connector instanceof InputPort) { if(connector instanceof InputPort) {
element_a_input.add(type); element_a_input.add(type);
} else { } else {
element_a_output.add(type); element_a_output.add(type);
} }
} }
for (IConnector connector : element_b.getConnectors()) { for(IConnector connector : element_b.getConnectors()) {
PortSpecification port = (PortSpecification) connector.getSpecifications().get(0); PortSpecification port =
(PortSpecification)connector.getSpecifications().get(0);
String type = port.getType().getClass().getSimpleName(); String type = port.getType().getClass().getSimpleName();
if (connector instanceof InputPort) { if(connector instanceof InputPort) {
element_b_input.add(type); element_b_input.add(type);
} else { } else {
element_b_output.add(type); element_b_output.add(type);
...@@ -155,24 +158,26 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement ...@@ -155,24 +158,26 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement
boolean equals = true; boolean equals = true;
for (String type_a_input : element_a_input) { for(String type_a_input : element_a_input) {
if (!element_b_input.remove(type_a_input)) { if(!element_b_input.remove(type_a_input)) {
equals = false; equals = false;
break; break;
} }
} }
for (String type_a_output : element_a_output) { for(String type_a_output : element_a_output) {
if (!element_b_output.remove(type_a_output)) { if(!element_b_output.remove(type_a_output)) {
equals = false; equals = false;
break; break;
} }
} }
if (equals) { if(equals) {
System.out.println("Found duplicate: "+((INamedCommentedElement)element).getName() + ", " + ((INamedCommentedElement)element_b).getName()); System.out.println(
"Found duplicate: " + ((INamedCommentedElement)element).getName() +
", " + ((INamedCommentedElement)element_b).getName());
break; break;
} else { } else {
System.out.println("Same but not duplicate"); System.out.println("Same but not duplicate");
...@@ -195,8 +200,8 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement ...@@ -195,8 +200,8 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement
@Override @Override
public void printResult() { public void printResult() {
System.out.println("[CommentCompleteness] Total:" + total_amount + " With:" + with_comments + " Ratio:" System.out.println("[CommentCompleteness] Total:" + total_amount + " With:" +
+ (with_comments / (double) total_amount)); with_comments + " Ratio:" + (with_comments / (double)total_amount));
} }
@Override @Override
...@@ -206,7 +211,7 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement ...@@ -206,7 +211,7 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement
@Override @Override
public void consume(INamedCommentedElement element) { public void consume(INamedCommentedElement element) {
if (element.getComment() != "") { if(element.getComment() != "") {
with_comments++; with_comments++;
} }
total_amount++; total_amount++;
...@@ -242,7 +247,8 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement ...@@ -242,7 +247,8 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement
@Override @Override
public void printResult() { public void printResult() {
System.out.println("[" + this.getClass().getSimpleName() + "] Found " + count + " total"); System.out
.println("[" + this.getClass().getSimpleName() + "] Found " + count + " total");
} }
public int getCount() { public int getCount() {
...@@ -256,9 +262,9 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement ...@@ -256,9 +262,9 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement
counts.add(new Tuple<>("[Self]" + element.getName(), count)); counts.add(new Tuple<>("[Self]" + element.getName(), count));
count = 0; count = 0;
for (IHierarchicElement child : element.getContainedElements()) { for(IHierarchicElement child : element.getContainedElements()) {
HierarchicElementBase real_child = (HierarchicElementBase) child; HierarchicElementBase real_child = (HierarchicElementBase)child;
recursiveDescent(real_child, this); recursiveDescent(real_child, this);
...@@ -269,17 +275,17 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement ...@@ -269,17 +275,17 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement
double total = counts.stream().mapToInt(t -> t.getElement2()).sum(); double total = counts.stream().mapToInt(t -> t.getElement2()).sum();
System.out.println("[" + this.getClass().getSimpleName() + "] shares:"); System.out.println("[" + this.getClass().getSimpleName() + "] shares:");
for (Tuple<String, Integer> tuple : counts) { for(Tuple<String, Integer> tuple : counts) {
System.out.println("\t " + String.format("%05.2f%%", tuple.element2 / total * 100) + ", " System.out.println("\t " + String.format("%05.2f%%", tuple.element2 / total * 100) +
+ tuple.element2 + ": " + tuple.element1); ", " + tuple.element2 + ": " + tuple.element1);
} }
} }
protected void recursiveDescent(HierarchicElementBase element, CounterConsumer consumer) { protected void recursiveDescent(HierarchicElementBase element, CounterConsumer consumer) {
consumer.apply(element); consumer.apply(element);
for (IHierarchicElement child : element.getContainedElements()) { for(IHierarchicElement child : element.getContainedElements()) {
HierarchicElementBase real_child = (HierarchicElementBase) child; HierarchicElementBase real_child = (HierarchicElementBase)child;
recursiveDescent(real_child, consumer); recursiveDescent(real_child, consumer);
} }
...@@ -325,7 +331,7 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement ...@@ -325,7 +331,7 @@ public class MetricCommentProvider implements IMetricProvider<IHierarchicElement
/** */ /** */
private void extractComment(IHierarchicElement c) { private void extractComment(IHierarchicElement c) {
strings.add(((INamedCommentedElement) c).getComment()); strings.add(((INamedCommentedElement)c).getComment());
} }
/** {@inheritDoc} */ /** {@inheritDoc} */
......
This diff is collapsed.
...@@ -19,8 +19,8 @@ import static org.fortiss.af3.component.utils.ComponentArchitectureUtils.findFir ...@@ -19,8 +19,8 @@ import static org.fortiss.af3.component.utils.ComponentArchitectureUtils.findFir
import static org.fortiss.af3.project.utils.TestCaseProjectUtils.loadTestProject; import static org.fortiss.af3.project.utils.TestCaseProjectUtils.loadTestProject;
import org.fortiss.af3.project.model.FileProject; import org.fortiss.af3.project.model.FileProject;
import org.fortiss.af3.rcp.application.AF3ApplicationActivator;
import org.fortiss.tooling.base.model.element.IHierarchicElement; import org.fortiss.tooling.base.model.element.IHierarchicElement;
import org.fortiss.tooling.ext.quality.AF3QualityActivator;
import org.fortiss.tooling.ext.quality.service.MetricCommentProvider; import org.fortiss.tooling.ext.quality.service.MetricCommentProvider;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
...@@ -40,7 +40,7 @@ public class MetricTest { ...@@ -40,7 +40,7 @@ public class MetricTest {
/** Setup the test. */ /** Setup the test. */
@Before @Before
public void setup() { public void setup() {
FileProject project = loadTestProject(AF3ApplicationActivator.PLUGIN_ID, FileProject project = loadTestProject(AF3QualityActivator.PLUGIN_ID,
// "test-data/ACC.af3_23"); // "test-data/ACC.af3_23");
"test-data/carla_ff1_rover.af3_23"); "test-data/carla_ff1_rover.af3_23");
......
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