Skip to content

Commit 6f3c34e

Browse files
author
Sebastian Höfer
committed
Introduced listener architecture, implemented updated model, final state
1 parent 3828cbb commit 6f3c34e

File tree

52 files changed

+687
-1477
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+687
-1477
lines changed

src/main/antlr4/org/jqassistant/contrib/plugin/javascript/JavaScriptLexer.g4 renamed to src/main/antlr4/org/jqassistant/contrib/plugin/javascript/parser/JavaScriptLexer.g4

File renamed without changes.

src/main/antlr4/org/jqassistant/contrib/plugin/javascript/JavaScriptParser.g4 renamed to src/main/antlr4/org/jqassistant/contrib/plugin/javascript/parser/JavaScriptParser.g4

File renamed without changes.

src/main/java/org/jqassistant/contrib/plugin/javascript/api/model/ArrayDescriptor.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,13 @@
44
import com.buschmais.xo.neo4j.api.annotation.Label;
55

66
/**
7-
* Interface used to describe the special type of a {@link BaseObjectDescriptor} called array.
8-
*
7+
* Interface that describes javascript arrays.
8+
*
99
* @author sh20xyqi
1010
*/
11+
1112
@Label(value = "Array", usingIndexedPropertyOf = FullQualifiedNameDescriptor.class)
12-
public interface ArrayDescriptor extends BaseObjectDescriptor {
13+
public interface ArrayDescriptor extends ComplexDescriptor {
1314

14-
public static final String ARRAY = "[array]";
15-
16-
@Override
17-
default String getFullQualifiedName() {
18-
return ARRAY;
19-
}
2015
}
2116

src/main/java/org/jqassistant/contrib/plugin/javascript/api/model/BaseObjectDescriptor.java

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/main/java/org/jqassistant/contrib/plugin/javascript/api/model/BooleanDescriptor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
import com.buschmais.xo.neo4j.api.annotation.Label;
44

55
/**
6-
* Interface for describing the primitive data type Boolean.
7-
*
6+
* Interface that describes javascript booleans.
7+
*
88
* @author sh20xyqi
99
*/
1010

1111
@Label("Boolean")
12-
public interface BooleanDescriptor extends LiteralDescriptor<Boolean>{}
12+
public interface BooleanDescriptor extends PrimitiveDescriptor<Boolean>{}

src/main/java/org/jqassistant/contrib/plugin/javascript/api/model/ClassDescriptor.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,18 @@
44
import com.buschmais.xo.neo4j.api.annotation.Property;
55

66
/**
7-
* Interface for describing a class.
7+
* Interface for describing a javascript class.
88
*
99
* @author sh20xyqi
1010
*/
1111
@Label(value = "Class", usingIndexedPropertyOf = FullQualifiedNameDescriptor.class)
12-
public interface ClassDescriptor extends JsDescriptor, CodeArtifact, FullQualifiedNameDescriptor {
13-
14-
/**
15-
* Returns the name of the class.
16-
* @return String
17-
*/
18-
@Property("NAME")
19-
String getName();
20-
void setName(String name);
12+
public interface ClassDescriptor extends CodeArtifact {
2113

2214
/**
23-
* Returns the super class of the class.
15+
* Binds the parent class.
2416
* @return String
2517
*/
26-
@Property("EXTENDS")
18+
@Property("extends")
2719
String getSuperClass();
2820
void setSuperClass(String superClass);
2921

src/main/java/org/jqassistant/contrib/plugin/javascript/api/model/CodeArtifact.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,16 @@
88
import com.buschmais.xo.neo4j.api.annotation.Relation.Outgoing;
99

1010
/**
11-
* Interface to describe a JavaScript code artifact.
11+
* Interface to describe a JavaScript code artifact: file, class, function or variable. Is not mentioned as a label in neo4j.
1212
*
1313
* @author sh20xyqi
1414
*/
1515

16-
@Label("JavaScriptCode")
17-
public interface CodeArtifact extends FullQualifiedNameDescriptor, LineNumberDescriptor {
16+
@Label("")
17+
public interface CodeArtifact extends FullQualifiedNameDescriptor, LineNumberDescriptor, JavaScriptDescriptor {
1818

1919
public static final String DECLARES = "DECLARES";
20+
public static final String HAS = "HAS";
2021

2122
@Outgoing
2223
List<InvokesDescriptor> getInvokes();
@@ -35,13 +36,6 @@ public interface CodeArtifact extends FullQualifiedNameDescriptor, LineNumberDes
3536
@Relation(DECLARES)
3637
List<ClassDescriptor> getClasses();
3738

38-
/**
39-
* Contains all named and anonymous {@link BaseObjectDescriptor} (e.g. {@link ObjectDescriptor} or {@link ArrayDescriptor}) that occur in this JavaScript code artifact.
40-
* @return List of objects
41-
*/
42-
@Relation(DECLARES)
43-
List<BaseObjectDescriptor> getObjects();
44-
4539
/**
4640
* Contains all named and anonymous {@link VariableDescriptor} that occur in this JavaScript code artifact.
4741
* @return List of variables
@@ -50,9 +44,10 @@ public interface CodeArtifact extends FullQualifiedNameDescriptor, LineNumberDes
5044
List<VariableDescriptor> getVariables();
5145

5246
/**
53-
* Contains all named and anonymous {@link LiteralDescriptor} (also called primitive data types) that occur in this JavaScript code artifact.
54-
* @return List of literals (primitive data types)
47+
* Contains all named and anonymous {@link ComplexDescriptor} (e.g. {@link ObjectDescriptor} or {@link ArrayDescriptor}) that occur in this JavaScript code artifact.
48+
* @return List of objects
5549
*/
56-
@Relation(DECLARES)
57-
List<LiteralDescriptor<?>> getLiterals();
50+
@Relation(HAS)
51+
List<ComplexDescriptor> getObjects();
52+
5853
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.jqassistant.contrib.plugin.javascript.api.model;
2+
3+
import com.buschmais.jqassistant.core.store.api.model.FullQualifiedNameDescriptor;
4+
import com.buschmais.xo.neo4j.api.annotation.Label;
5+
6+
/**
7+
* Interface for the description of data structures, which can be either an {@link ObjectDescriptor} or an {@kink ArrayDescriptor}.
8+
*
9+
* @author sh20xyqi
10+
*/
11+
@Label(value = "", usingIndexedPropertyOf = FullQualifiedNameDescriptor.class)
12+
public interface ComplexDescriptor extends CodeArtifact, FullQualifiedNameDescriptor, ContainsPrimitiveDescriptor {
13+
14+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.jqassistant.contrib.plugin.javascript.api.model;
2+
3+
import java.util.List;
4+
5+
import com.buschmais.xo.neo4j.api.annotation.Relation;
6+
7+
public interface ContainsPrimitiveDescriptor {
8+
@Relation("HAS")
9+
List<PrimitiveDescriptor<?>> getPrimitives();
10+
}

src/main/java/org/jqassistant/contrib/plugin/javascript/api/model/FunctionDescriptor.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,19 @@
11
package org.jqassistant.contrib.plugin.javascript.api.model;
22

3+
import java.util.List;
4+
35
import com.buschmais.jqassistant.core.store.api.model.FullQualifiedNameDescriptor;
46
import com.buschmais.xo.neo4j.api.annotation.Label;
5-
import com.buschmais.xo.neo4j.api.annotation.Property;
67
import com.buschmais.xo.neo4j.api.annotation.Relation;
78
import com.buschmais.xo.neo4j.api.annotation.Relation.Incoming;
89

9-
import java.util.List;
10-
1110
/**
1211
* Interface to describe a named or anonymous function.
1312
*
1413
* @author sh20xyqi
1514
*/
1615
@Label(value = "Function", usingIndexedPropertyOf = FullQualifiedNameDescriptor.class)
17-
public interface FunctionDescriptor extends JsDescriptor, FullQualifiedNameDescriptor, CodeArtifact {
18-
19-
/**
20-
* Returns the name of the function.
21-
*
22-
* @return The name.
23-
*/
24-
@Property("name")
25-
String getName();
26-
void setName(String name);
16+
public interface FunctionDescriptor extends CodeArtifact {
2717

2818
/**
2919
* Returns all declared {@link FunctionParameterDescriptor} of this function.

0 commit comments

Comments
 (0)