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