Using enum instead of string constants for J2K options

This commit is contained in:
Andrey Breslav
2012-01-31 16:21:15 +04:00
parent 9559decfc0
commit 5d6846bdd9
5 changed files with 22 additions and 9 deletions
+7 -6
View File
@@ -1,5 +1,6 @@
package org.jetbrains.jet.j2k;
import com.google.common.collect.Sets;
import com.intellij.psi.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -35,17 +36,17 @@ public class Converter {
private static PsiType ourMethodReturnType = null;
@NotNull
private static Set<String> settings = new HashSet<String>();
private static Set<J2KConverterFlags> flags = Sets.newHashSet();
private Converter() {
}
public static boolean addSetting(@NotNull String value) {
return settings.add(value);
public static boolean addFlag(@NotNull J2KConverterFlags flag) {
return flags.add(flag);
}
public static boolean hasSetting(@NotNull String value) {
return settings.contains(value);
public static boolean hasFlag(@NotNull J2KConverterFlags flag) {
return flags.contains(flag);
}
public static void setClassIdentifiers(@NotNull Set<String> identifiers) {
@@ -394,7 +395,7 @@ public class Converter {
final IdentifierImpl identifier = new IdentifierImpl(method.getName());
final Type returnType = typeToType(method.getReturnType(), ConverterUtil.isAnnotatedAsNotNull(method.getModifierList()));
final Block body = hasSetting("declarations-only")
final Block body = hasFlag(J2KConverterFlags.SKIP_BODIES)
? Block.EMPTY_BLOCK
: blockToBlock(method.getBody(), notEmpty); // #TODO
final Element params = createFunctionParameters(method);
@@ -0,0 +1,10 @@
package org.jetbrains.jet.j2k;
/**
* @author abreslav
*/
public enum J2KConverterFlags {
FULLY_QUALIFIED_TYPE_NAMES,
SKIP_BODIES,
SKIP_NON_PUBLIC_MEMBERS
}
@@ -50,7 +50,7 @@
// String to = commandLine.getOptionValue("to");
//
// for (Option o : commandLine.getOptions()) {
// Converter.addSetting(o.getLongOpt());
// Converter.addFlag(o.getLongOpt());
// }
//
// if (!from.isEmpty() && !to.isEmpty())
+2 -1
View File
@@ -3,6 +3,7 @@ package org.jetbrains.jet.j2k.ast;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.j2k.Converter;
import org.jetbrains.jet.j2k.J2KConverterFlags;
import org.jetbrains.jet.j2k.util.AstUtil;
import java.util.HashSet;
@@ -38,7 +39,7 @@ public class Class extends Member {
static List<Member> getMembers(List<Member> members) {
List<Member> withoutPrivate = new LinkedList<Member>();
if (Converter.hasSetting("public-only")) {
if (Converter.hasFlag(J2KConverterFlags.SKIP_NON_PUBLIC_MEMBERS)) {
for (Member m : members) {
if (m.accessModifier().equals("public") || m.accessModifier().equals("protected")) {
withoutPrivate.add(m);
@@ -4,6 +4,7 @@ import com.intellij.psi.*;
import com.intellij.psi.impl.source.PsiClassReferenceType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.j2k.Converter;
import org.jetbrains.jet.j2k.J2KConverterFlags;
import org.jetbrains.jet.j2k.ast.*;
import org.jetbrains.jet.j2k.util.AstUtil;
@@ -81,7 +82,7 @@ public class TypeVisitor extends PsiTypeVisitor<Type> {
if (psiClass != null) {
String qualifiedName = psiClass.getQualifiedName();
if (qualifiedName != null) {
if (!qualifiedName.equals("java.lang.Object") && Converter.hasSetting("fqn")) {
if (!qualifiedName.equals("java.lang.Object") && Converter.hasFlag(J2KConverterFlags.FULLY_QUALIFIED_TYPE_NAMES)) {
return new IdentifierImpl(qualifiedName);
}
if (qualifiedName.equals(JAVA_LANG_ITERABLE)) {