diff --git a/translator/src/org/jetbrains/k2js/config/Config.java b/translator/src/org/jetbrains/k2js/config/Config.java
index bbb983b933e..b36f22126c8 100644
--- a/translator/src/org/jetbrains/k2js/config/Config.java
+++ b/translator/src/org/jetbrains/k2js/config/Config.java
@@ -15,6 +15,8 @@ import java.util.List;
/**
* @author Pavel Talanov
+ *
+ * Base class reprenting a configuration of translator.
*/
public abstract class Config {
diff --git a/translator/src/org/jetbrains/k2js/facade/K2JSTranslator.java b/translator/src/org/jetbrains/k2js/facade/K2JSTranslator.java
index 5353f614aff..d5c57a6b038 100644
--- a/translator/src/org/jetbrains/k2js/facade/K2JSTranslator.java
+++ b/translator/src/org/jetbrains/k2js/facade/K2JSTranslator.java
@@ -5,7 +5,6 @@ import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.psi.JetFile;
-import org.jetbrains.jet.lang.psi.JetNamespaceHeader;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.k2js.analyze.Analyzer;
import org.jetbrains.k2js.config.Config;
@@ -25,12 +24,15 @@ import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
+import static org.jetbrains.k2js.translate.utils.PsiUtils.getNamespaceName;
import static org.jetbrains.k2js.utils.JetFileUtils.createPsiFileList;
//TODO: clean up the code
/**
* @author Pavel Talanov
+ *
+ * An entry point of translator.
*/
public final class K2JSTranslator {
@@ -104,7 +106,7 @@ public final class K2JSTranslator {
@NotNull
public String generateCallToMain(@NotNull JetFile file, @NotNull String argumentString) {
- String namespaceName = getRootNamespaceName(file);
+ String namespaceName = getNamespaceName(file);
List arguments = parseString(argumentString);
return GenerationUtils.generateCallToMain(namespaceName, arguments);
}
@@ -119,17 +121,6 @@ public final class K2JSTranslator {
return result;
}
- @NotNull
- private String getRootNamespaceName(@NotNull JetFile psiFile) {
- JetNamespaceHeader namespaceHeader = psiFile.getNamespaceHeader();
- String name = namespaceHeader.getName();
- assert name != null : "NamespaceHeader must have a name";
- //TODO: encapsulate anonymous logic somewhere
- if (name.equals("")) {
- return "Anonymous";
- }
- return name;
- }
@NotNull
private Project getProject() {
diff --git a/translator/src/org/jetbrains/k2js/facade/K2JSTranslatorApplet.java b/translator/src/org/jetbrains/k2js/facade/K2JSTranslatorApplet.java
index 9595a319fa7..dc1066d63d9 100644
--- a/translator/src/org/jetbrains/k2js/facade/K2JSTranslatorApplet.java
+++ b/translator/src/org/jetbrains/k2js/facade/K2JSTranslatorApplet.java
@@ -11,6 +11,8 @@ import java.io.StringWriter;
/**
* @author Pavel Talanov
+ *
+ * Represents an applet API for WebDemo module.
*/
public final class K2JSTranslatorApplet extends Applet {
diff --git a/translator/src/org/jetbrains/k2js/translate/context/Namer.java b/translator/src/org/jetbrains/k2js/translate/context/Namer.java
index cf93301d665..3f12455cb2b 100644
--- a/translator/src/org/jetbrains/k2js/translate/context/Namer.java
+++ b/translator/src/org/jetbrains/k2js/translate/context/Namer.java
@@ -8,8 +8,9 @@ import org.jetbrains.annotations.NotNull;
/**
* @author Pavel Talanov
+ *
+ * Encapuslates different types of constants and naming conventions.
*/
-
public final class Namer {
private static final String INITIALIZE_METHOD_NAME = "initialize";
@@ -22,6 +23,12 @@ public final class Namer {
private static final String BACKING_FIELD_PREFIX = "$";
private static final String SUPER_METHOD_NAME = "super_init";
private static final String KOTLIN_OBJECT_NAME = "Kotlin";
+ private static final String ANONYMOUS_NAMESPACE = "Anonymous";
+
+ @NotNull
+ public static String getAnonymousNamespaceName() {
+ return ANONYMOUS_NAMESPACE;
+ }
@NotNull
public static JsNameRef initializeMethodReference() {
diff --git a/translator/src/org/jetbrains/k2js/translate/context/NamingScope.java b/translator/src/org/jetbrains/k2js/translate/context/NamingScope.java
index 93574d36e78..45d61ea7f03 100644
--- a/translator/src/org/jetbrains/k2js/translate/context/NamingScope.java
+++ b/translator/src/org/jetbrains/k2js/translate/context/NamingScope.java
@@ -6,6 +6,8 @@ import org.jetbrains.annotations.NotNull;
/**
* @author Pavel Talanov
+ *
+ * Basically a wrapper around JsScope.
*/
public final class NamingScope {
@@ -39,6 +41,11 @@ public final class NamingScope {
return declaredName;
}
+ @NotNull
+ /*package*/ JsName declareObfuscatableName(@NotNull String name) {
+ return scope.declareName(mayBeObfuscateName(name, true));
+ }
+
//TODO: temporary solution
@NotNull
private String mayBeObfuscateName(@NotNull String name, boolean shouldObfuscate) {
@@ -64,11 +71,6 @@ public final class NamingScope {
return result;
}
- @NotNull
- /*package*/ JsName declareObfuscatableName(@NotNull String name) {
- return scope.declareName(mayBeObfuscateName(name, true));
- }
-
public JsName declareTemporary() {
return scope.declareTemporary();
}
diff --git a/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java b/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java
index 77b613b3abe..be85544777f 100644
--- a/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java
+++ b/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java
@@ -13,6 +13,9 @@ import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getFQName;
/**
* @author Pavel Talanov
+ *
+ * Provides a mechanism to bind some of the kotlin/java declations with library implementations.
+ * Makes sense only for those declaration that cannot be annotated. (Use library annotation in this case)
*/
public final class StandardClasses {
diff --git a/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java b/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java
index e3a3262fafc..43bc58a8a8d 100644
--- a/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java
+++ b/translator/src/org/jetbrains/k2js/translate/context/StaticContext.java
@@ -18,6 +18,11 @@ import org.jetbrains.k2js.translate.utils.AnnotationsUtils;
import static org.jetbrains.k2js.translate.utils.AnnotationsUtils.*;
import static org.jetbrains.k2js.translate.utils.DescriptorUtils.*;
+/**
+ * @author Pavel Talanov
+ *
+ * Aggregates all the static parts of the context.
+ */
public class StaticContext {
public static StaticContext generateStaticContext(@NotNull JetStandardLibrary library,
diff --git a/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java b/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java
index 432a09d9483..77d1bf4b06a 100644
--- a/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java
+++ b/translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java
@@ -12,6 +12,8 @@ import static org.jetbrains.k2js.translate.utils.BindingUtils.getDescriptorForEl
/**
* @author Pavel Talanov
+ *
+ * All the info about the state of the translation process.
*/
public final class TranslationContext {
diff --git a/translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java b/translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java
index ee10296ae7d..ef3ed421540 100644
--- a/translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java
+++ b/translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java
@@ -24,6 +24,8 @@ import static org.jetbrains.k2js.translate.utils.BindingUtils.getDeclarationsFor
/**
* @author Pavel Talanov
+ *
+ * Generates a big block where are all the classes(objects representing them) are created.
*/
//TODO: declaration translator receives NamespaceDescriptor while actually should receive all declarations in namespace
public final class ClassDeclarationTranslator extends AbstractTranslator {
diff --git a/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java b/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java
index 654dc544b47..65fad9a0dd4 100644
--- a/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java
+++ b/translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java
@@ -22,6 +22,8 @@ import static org.jetbrains.k2js.translate.utils.PsiUtils.getPrimaryConstructorP
/**
* @author Pavel Talanov
+ *
+ * Generates a definition of a single class.
*/
public final class ClassTranslator extends AbstractTranslator {
diff --git a/translator/src/org/jetbrains/k2js/translate/declaration/NamespaceTranslator.java b/translator/src/org/jetbrains/k2js/translate/declaration/NamespaceTranslator.java
index dda8b8db198..5390c8cdacc 100644
--- a/translator/src/org/jetbrains/k2js/translate/declaration/NamespaceTranslator.java
+++ b/translator/src/org/jetbrains/k2js/translate/declaration/NamespaceTranslator.java
@@ -14,9 +14,9 @@ import java.util.List;
/**
* @author Pavel.Talanov
+ *
+ * Translates single namespace.
*/
-//TODO: rework translator to translateAsLocalNameReference everything in the namespace not only in one file
-// TEST IT
public final class NamespaceTranslator extends AbstractTranslator {
@NotNull
diff --git a/translator/src/org/jetbrains/k2js/translate/declaration/PropertyTranslator.java b/translator/src/org/jetbrains/k2js/translate/declaration/PropertyTranslator.java
index 5dfc62106be..74d3978e50b 100644
--- a/translator/src/org/jetbrains/k2js/translate/declaration/PropertyTranslator.java
+++ b/translator/src/org/jetbrains/k2js/translate/declaration/PropertyTranslator.java
@@ -22,6 +22,8 @@ import static org.jetbrains.k2js.translate.utils.TranslationUtils.*;
/**
* @author Pavel Talanov
+ *
+ * Translates single property /w accessors.
*/
public final class PropertyTranslator extends AbstractTranslator {
diff --git a/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsic.java b/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsic.java
index 87c65543580..5fc9ca07c2a 100644
--- a/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsic.java
+++ b/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsic.java
@@ -9,6 +9,8 @@ import java.util.List;
/**
* @author Pavel Talanov
+ *
+ * Base class for all intrinsics.
*/
public interface Intrinsic {
diff --git a/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsics.java b/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsics.java
index e5c7b3c347a..dd93442db80 100644
--- a/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsics.java
+++ b/translator/src/org/jetbrains/k2js/translate/intrinsic/Intrinsics.java
@@ -28,6 +28,8 @@ import static org.jetbrains.k2js.translate.utils.DescriptorUtils.getPropertyByNa
/**
* @author Pavel Talanov
+ *
+ * Provides mechanism to substitute method calls /w native constucts directly.
*/
public final class Intrinsics {
diff --git a/translator/src/org/jetbrains/k2js/translate/reference/AccessTranslator.java b/translator/src/org/jetbrains/k2js/translate/reference/AccessTranslator.java
index d05e3413751..6e7e05d277f 100644
--- a/translator/src/org/jetbrains/k2js/translate/reference/AccessTranslator.java
+++ b/translator/src/org/jetbrains/k2js/translate/reference/AccessTranslator.java
@@ -9,6 +9,8 @@ import org.jetbrains.k2js.translate.general.AbstractTranslator;
/**
* @author Pavel Talanov
+ *
+ * Abstract entity for language constructs that you can get/set. Also dispatches to the real implemntation.
*/
public abstract class AccessTranslator extends AbstractTranslator {
diff --git a/translator/src/org/jetbrains/k2js/translate/reference/KotlinPropertyAccessTranslator.java b/translator/src/org/jetbrains/k2js/translate/reference/KotlinPropertyAccessTranslator.java
index 0486f9150cb..126cd19d080 100644
--- a/translator/src/org/jetbrains/k2js/translate/reference/KotlinPropertyAccessTranslator.java
+++ b/translator/src/org/jetbrains/k2js/translate/reference/KotlinPropertyAccessTranslator.java
@@ -15,6 +15,8 @@ import static org.jetbrains.k2js.translate.utils.TranslationUtils.backingFieldRe
/**
* @author Pavel Talanov
+ *
+ * For properies /w accessors.
*/
public final class KotlinPropertyAccessTranslator extends PropertyAccessTranslator {
diff --git a/translator/src/org/jetbrains/k2js/translate/reference/NativePropertyAccessTranslator.java b/translator/src/org/jetbrains/k2js/translate/reference/NativePropertyAccessTranslator.java
index ffdec57d561..c6c8a0817df 100644
--- a/translator/src/org/jetbrains/k2js/translate/reference/NativePropertyAccessTranslator.java
+++ b/translator/src/org/jetbrains/k2js/translate/reference/NativePropertyAccessTranslator.java
@@ -14,6 +14,8 @@ import static org.jetbrains.k2js.translate.utils.DescriptorUtils.getExpectedThis
/**
* @author Pavel Talanov
+ *
+ * For native apis that use .property notation for access.
*/
public final class NativePropertyAccessTranslator extends PropertyAccessTranslator {
diff --git a/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java b/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java
index 2355bc738d0..49ae1de3727 100644
--- a/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java
+++ b/translator/src/org/jetbrains/k2js/translate/utils/DescriptorUtils.java
@@ -6,6 +6,7 @@ import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
import org.jetbrains.jet.lang.types.expressions.OperatorConventions;
+import org.jetbrains.k2js.translate.context.Namer;
import java.util.ArrayList;
import java.util.Collection;
@@ -125,12 +126,11 @@ public final class DescriptorUtils {
return (functionDescriptor.getReceiverParameter().exists());
}
- //TODO: make "anonymous" a constant
@NotNull
public static String getNameForNamespace(@NotNull NamespaceDescriptor descriptor) {
String name = descriptor.getName();
if (name.equals("")) {
- return "Anonymous";
+ return Namer.getAnonymousNamespaceName();
}
return name;
}
diff --git a/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java b/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java
index c280f0aa400..4432cb51d46 100644
--- a/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java
+++ b/translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java
@@ -7,6 +7,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lexer.JetToken;
import org.jetbrains.jet.lexer.JetTokens;
+import org.jetbrains.k2js.translate.context.Namer;
import java.util.Collections;
import java.util.List;
@@ -116,6 +117,16 @@ public final class PsiUtils {
assert parent instanceof JetObjectDeclaration :
"ObjectDeclarationName should have a parent of type ObjectDeclaration.";
return (JetObjectDeclaration) parent;
+ }
+ @NotNull
+ public static String getNamespaceName(@NotNull JetFile psiFile) {
+ JetNamespaceHeader namespaceHeader = psiFile.getNamespaceHeader();
+ String name = namespaceHeader.getName();
+ assert name != null : "NamespaceHeader must have a name";
+ if (name.equals("")) {
+ return Namer.getAnonymousNamespaceName();
+ }
+ return name;
}
}
diff --git a/translator/src/org/jetbrains/k2js/utils/ErrorSender.java b/translator/src/org/jetbrains/k2js/utils/ErrorSender.java
index ba131811796..aa1b2a63662 100644
--- a/translator/src/org/jetbrains/k2js/utils/ErrorSender.java
+++ b/translator/src/org/jetbrains/k2js/utils/ErrorSender.java
@@ -11,6 +11,8 @@ import java.net.URL;
/**
* @author Pavel Talanov
+ *
+ * Some util class for WebDemo module.
*/
public final class ErrorSender {
diff --git a/translator/src/org/jetbrains/k2js/utils/GenerationUtils.java b/translator/src/org/jetbrains/k2js/utils/GenerationUtils.java
index 2e3bcc41ab9..3aacc85a56a 100644
--- a/translator/src/org/jetbrains/k2js/utils/GenerationUtils.java
+++ b/translator/src/org/jetbrains/k2js/utils/GenerationUtils.java
@@ -4,6 +4,8 @@ import org.jetbrains.annotations.NotNull;
import java.util.List;
+//TODO: very thin class
+
/**
* @author Pavel Talanov
*/