Skip to content

Commit 5a99cff

Browse files
committed
parse
1 parent e725304 commit 5a99cff

16 files changed

+415
-238
lines changed
Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.hsjfans.github.config;
22

3+
import lombok.Data;
4+
35
/**
46
* @author hsjfans[[email protected]]
57
*/
8+
@Data
69
public class Config {
710

811
/**
@@ -15,20 +18,20 @@ public class Config {
1518
*/
1619
private String outPath;
1720

21+
/**
22+
* the path of classes files
23+
*/
24+
private String classPath;
25+
26+
27+
private boolean gradle;
28+
29+
30+
private String gradlePath;
31+
1832

19-
public String getPackageName() {
20-
return packageName;
21-
}
33+
private String mvnPath;
2234

23-
public void setPackageName(String packageName) {
24-
this.packageName = packageName;
25-
}
2635

27-
public String getOutPath() {
28-
return outPath;
29-
}
3036

31-
public void setOutPath(String outPath) {
32-
this.outPath = outPath;
33-
}
3437
}

src/main/java/com/hsjfans/github/model/ApiTree.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,17 @@ public void insert(Class<?> cl,ControllerClass controllerClass){
3131

3232

3333
/**
34-
*
34+
* @name 测试get
3535
*/
3636
@RequestMapping(value = "/789")
3737
public void get(){
3838
return;
3939
}
4040

4141

42-
42+
/**
43+
* @name 测试set
44+
*/
4345
@RequestMapping("/123-12312")
4446
public void set(){
4547
return;

src/main/java/com/hsjfans/github/model/ControllerClass.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ public class ControllerClass implements Serializable {
4242
*/
4343
private List<ControllerMethod> controllerMethod;
4444

45+
/**
46+
* author
47+
*/
48+
private String author;
49+
50+
51+
private String description;
4552

4653
@Override
4754
public String toString() {
@@ -52,6 +59,8 @@ public String toString() {
5259
", ignore=" + ignore +
5360
", methods=" + Arrays.toString(methods) +
5461
", controllerMethod=" + controllerMethod +
62+
", author='" + author + '\'' +
63+
", description='" + description + '\'' +
5564
'}';
5665
}
5766
}

src/main/java/com/hsjfans/github/model/ControllerMethod.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package com.hsjfans.github.model;
22

3+
import com.google.common.collect.Lists;
34
import com.hsjfans.github.util.StringUtil;
45
import lombok.Data;
56
import org.springframework.web.bind.annotation.RequestMethod;
67

78
import java.io.Serializable;
89
import java.lang.reflect.Method;
10+
import java.util.Arrays;
11+
import java.util.List;
12+
import java.util.Set;
913

1014
/**
1115
* @author hsjfans[[email protected]]
@@ -23,7 +27,7 @@ public class ControllerMethod implements Serializable {
2327
*
2428
* the method url
2529
*/
26-
private String[] url ;
30+
private String[] url =new String[]{""};
2731

2832
/**
2933
* the method name `@name`
@@ -45,7 +49,7 @@ public class ControllerMethod implements Serializable {
4549
/**
4650
* the args
4751
*/
48-
private RequestParam[] params;
52+
private List<RequestParam> params;
4953

5054

5155
/**
@@ -59,22 +63,13 @@ public class ControllerMethod implements Serializable {
5963
*/
6064
private RequestMethod[] methods;
6165

66+
/**
67+
* author
68+
*/
69+
private String author;
6270

63-
public void addRequestMethod(RequestMethod method){
64-
this.methods = new RequestMethod[]{method};
65-
}
66-
67-
68-
public void setRequestMethods(String methods){
71+
private String description;
6972

70-
for (String m: StringUtil.parseUrls(methods)
71-
) {
72-
RequestMethod method = RequestMethod.valueOf(m.trim());
73-
if(method!=null){
74-
// this
75-
}
76-
}
77-
}
7873

7974

8075
}

src/main/java/com/hsjfans/github/model/RequestParam.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import lombok.NoArgsConstructor;
66

77
import java.io.Serializable;
8+
import java.util.List;
89

910
/**
1011
*
@@ -64,7 +65,7 @@ public class RequestParam implements Serializable {
6465
/**
6566
* Collection class
6667
*/
67-
private RequestParam[] params;
68+
private List<RequestParam> params;
6869

6970

7071

src/main/java/com/hsjfans/github/model/ResponseReturn.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.hsjfans.github.model;
22

3+
import lombok.Data;
4+
35
/**
46
* @author hsjfans[[email protected]]
57
*/
8+
@Data
69
public class ResponseReturn {
710

811
/**
@@ -16,6 +19,11 @@ public class ResponseReturn {
1619
private String description;
1720

1821

22+
/**
23+
* the name
24+
*/
25+
private String name;
26+
1927

2028

2129

src/main/java/com/hsjfans/github/model/ReturnItem.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package com.hsjfans.github.model;
22

3+
import lombok.Data;
4+
35
import java.io.Serializable;
46

57
/**
68
* @author hsjfans[[email protected]]
79
*/
10+
@Data
811
public class ReturnItem implements Serializable {
912

1013
/**

src/main/java/com/hsjfans/github/parser/AbstractParser.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.hsjfans.github.parser;
22

33
import com.github.javaparser.ast.CompilationUnit;
4+
import com.google.common.collect.Sets;
5+
import com.hsjfans.github.config.Config;
46
import com.hsjfans.github.model.ApiTree;
57
import com.hsjfans.github.model.ControllerClass;
8+
import com.hsjfans.github.util.ApiClassLoader;
69
import com.hsjfans.github.util.ClassUtils;
710
import com.hsjfans.github.util.LogUtil;
811

@@ -16,20 +19,30 @@
1619

1720
public abstract class AbstractParser implements Parser {
1821

22+
protected final ClassLoader classLoader ;
23+
24+
protected final Config config;
25+
26+
public AbstractParser(Config config){
27+
this.config = config;
28+
this.classLoader = new ApiClassLoader(config);
29+
}
30+
1931

2032
protected abstract Set<String> supportClassAnnotations();
2133

2234
protected abstract Set<CompilationUnit> getAllControllerClass(Set<File> javaFiles);
2335

24-
protected abstract ControllerClass parseCompilationUnit(CompilationUnit compilationUnit);
36+
protected abstract void parseCompilationUnit(CompilationUnit compilationUnit, Set<ControllerClass> controllerClasses);
2537

2638

2739
@Override
2840
public ApiTree parse(String projectPath, boolean recursive) throws ParserException {
2941
LogUtil.info("开始解析 projectPath# "+projectPath);
3042
Set<File> javaFiles = ClassUtils.scan(projectPath,true);
3143
Set<CompilationUnit> compilationUnits = getAllControllerClass(javaFiles);
32-
compilationUnits.forEach(this::parseCompilationUnit);
44+
Set<ControllerClass> controllerClasses = Sets.newHashSet();
45+
compilationUnits.forEach(compilationUnit -> parseCompilationUnit(compilationUnit,controllerClasses));
3346
return null;
3447
}
3548

src/main/java/com/hsjfans/github/parser/ClassCache.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.hsjfans.github.parser;
22

33
import com.github.javaparser.ast.CompilationUnit;
4+
import com.github.javaparser.ast.body.TypeDeclaration;
45
import com.google.common.collect.Maps;
56

67
import java.util.Map;
@@ -18,15 +19,15 @@ public class ClassCache {
1819

1920
private static final Map<String,Class<?>> classCache ;
2021

21-
private static final Map<String, CompilationUnit> compilationUnitCache;
22+
private static final Map<String, TypeDeclaration<?>> compilationUnitCache;
2223

2324
static {
2425
classCache = Maps.newHashMap();
2526
compilationUnitCache = Maps.newHashMap();
2627
}
2728

2829

29-
public static void putCompilationUnit(String filePath,CompilationUnit compilationUnit){
30+
public static void putCompilationUnit(String filePath,TypeDeclaration compilationUnit){
3031
boolean contain;
3132
compilationUnitReadWriteLock.readLock().lock();
3233
contain = compilationUnitCache.containsKey(filePath);
@@ -39,8 +40,8 @@ public static void putCompilationUnit(String filePath,CompilationUnit compilatio
3940
compilationUnitReadWriteLock.writeLock().unlock();
4041
}
4142

42-
public static CompilationUnit getCompilationUnit(String filePath){
43-
CompilationUnit compilationUnit;
43+
public static TypeDeclaration<?> getCompilationUnit(String filePath){
44+
TypeDeclaration compilationUnit;
4445
compilationUnitReadWriteLock.readLock().lock();
4546
compilationUnit = compilationUnitCache.get(filePath);
4647
compilationUnitReadWriteLock.readLock().unlock();
@@ -75,7 +76,7 @@ public static Map<String, Class<?>> getClassCache() {
7576
return classCache;
7677
}
7778

78-
public static Map<String, CompilationUnit> getCompilationUnitCache() {
79-
return compilationUnitCache;
79+
public static Map<String, TypeDeclaration<?>> getCompilationUnitCache() {
80+
return getCompilationUnitCache();
8081
}
8182
}

src/main/java/com/hsjfans/github/parser/Parser.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.hsjfans.github.parser;
22

33
import com.github.javaparser.ast.CompilationUnit;
4+
import com.hsjfans.github.config.Config;
45
import com.hsjfans.github.model.ApiTree;
56

67
import java.util.List;

0 commit comments

Comments
 (0)