Skip to content

Commit 9f6240a

Browse files
wangwei11gerenvip
authored andcommitted
1 parent 60e6b63 commit 9f6240a

1 file changed

Lines changed: 24 additions & 17 deletions

File tree

  • arouter-compiler/src/main/java/com/alibaba/android/arouter/compiler/processor

arouter-compiler/src/main/java/com/alibaba/android/arouter/compiler/processor/RouteProcessor.java

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@
7171
@AutoService(Processor.class)
7272
@SupportedAnnotationTypes({ANNOTATION_TYPE_ROUTE, ANNOTATION_TYPE_AUTOWIRED})
7373
public class RouteProcessor extends BaseProcessor {
74-
private Map<String, Set<RouteMeta>> groupMap = new HashMap<>(); // ModuleName and routeMeta.
75-
private Map<String, String> rootMap = new TreeMap<>(); // Map of root metas, used for generate class file in order.
74+
private final Map<String, Set<RouteMeta>> groupMap = new HashMap<>(); // ModuleName and routeMeta.
75+
private final Map<String, String> rootMap = new TreeMap<>(); // Map of root metas, used for generate class file in order.
7676

7777
private TypeMirror iProvider = null;
7878
private Writer docWriter; // Writer used for write doc
@@ -81,23 +81,27 @@ public class RouteProcessor extends BaseProcessor {
8181
public synchronized void init(ProcessingEnvironment processingEnv) {
8282
super.init(processingEnv);
8383

84-
if (generateDoc) {
85-
try {
86-
docWriter = mFiler.createResource(
87-
StandardLocation.SOURCE_OUTPUT,
88-
PACKAGE_OF_GENERATE_DOCS,
89-
"arouter-map-of-" + moduleName + ".json"
90-
).openWriter();
91-
} catch (IOException e) {
92-
logger.error("Create doc writer failed, because " + e.getMessage());
93-
}
94-
}
95-
9684
iProvider = elementUtils.getTypeElement(Consts.IPROVIDER).asType();
9785

9886
logger.info(">>> RouteProcessor init. <<<");
9987
}
10088

89+
private synchronized Writer getOrCreateDocWriter() {
90+
if (docWriter != null) {
91+
return docWriter;
92+
}
93+
try {
94+
docWriter = mFiler.createResource(
95+
StandardLocation.SOURCE_OUTPUT,
96+
PACKAGE_OF_GENERATE_DOCS,
97+
"arouter-map-of-" + moduleName + ".json"
98+
).openWriter();
99+
} catch (IOException e) {
100+
logger.error("Create doc writer failed, because " + e.getMessage());
101+
}
102+
return docWriter;
103+
}
104+
101105
/**
102106
* {@inheritDoc}
103107
*
@@ -336,9 +340,12 @@ private void parseRoutes(Set<? extends Element> routeElements) throws IOExceptio
336340

337341
// Output route doc
338342
if (generateDoc) {
339-
docWriter.append(JSON.toJSONString(docSource, SerializerFeature.PrettyFormat));
340-
docWriter.flush();
341-
docWriter.close();
343+
Writer docWriter = getOrCreateDocWriter();
344+
if (docWriter != null) {
345+
docWriter.append(JSON.toJSONString(docSource, SerializerFeature.PrettyFormat));
346+
docWriter.flush();
347+
docWriter.close();
348+
}
342349
}
343350

344351
// Write provider into disk

0 commit comments

Comments
 (0)