NamespaceDeclarationTranslator refactoring

This commit is contained in:
Pavel Talanov
2012-02-23 13:50:20 +04:00
parent 89cb181303
commit e2e422bd91
@@ -62,21 +62,28 @@ public final class NamespaceDeclarationTranslator extends AbstractTranslator {
return result; return result;
} }
//TODO: logic seems not so clear, may be a couple of extract method should help
@NotNull @NotNull
private List<JsStatement> translate() { private List<JsStatement> translate() {
classDeclarationTranslator.generateDeclarations(); List<JsStatement> result = classesDeclarations();
List<JsStatement> result = Lists.newArrayList(); result.addAll(namespacesDeclarations());
result.add(classDeclarationsStatement());
List<NamespaceTranslator> namespaceTranslators = getTranslatorsForNonEmptyNamespaces();
result.addAll(declarationStatements(namespaceTranslators));
result.addAll(initializeStatements(namespaceTranslators));
return result; return result;
} }
@NotNull @NotNull
private JsStatement classDeclarationsStatement() { private List<JsStatement> classesDeclarations() {
return classDeclarationTranslator.getDeclarationsStatement(); List<JsStatement> result = Lists.newArrayList();
classDeclarationTranslator.generateDeclarations();
result.add(classDeclarationTranslator.getDeclarationsStatement());
return result;
}
@NotNull
private List<JsStatement> namespacesDeclarations() {
List<JsStatement> result = Lists.newArrayList();
List<NamespaceTranslator> namespaceTranslators = getTranslatorsForNonEmptyNamespaces();
result.addAll(declarationStatements(namespaceTranslators));
result.addAll(initializeStatements(namespaceTranslators));
return result;
} }
@NotNull @NotNull