Rewrite methods: root package is parent package for all packages

This commit is contained in:
Nikolay Krasko
2012-08-28 17:47:05 +04:00
parent b1f466861d
commit a3aef5571e
@@ -1,3 +1,4 @@
/*
/* /*
* Copyright 2010-2012 JetBrains s.r.o. * Copyright 2010-2012 JetBrains s.r.o.
* *
@@ -18,8 +19,8 @@ package org.jetbrains.jet.util;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.ImportPath; import org.jetbrains.jet.lang.resolve.ImportPath;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.name.Name;
/** /**
@@ -33,8 +34,18 @@ public final class QualifiedNamesUtil {
} }
public static boolean isSubpackageOf(@NotNull final FqName subpackageName, @NotNull FqName packageName) { public static boolean isSubpackageOf(@NotNull final FqName subpackageName, @NotNull FqName packageName) {
return subpackageName.equals(packageName) || if (subpackageName.equals(packageName)) {
(subpackageName.getFqName().startsWith(packageName.getFqName()) && subpackageName.getFqName().charAt(packageName.getFqName().length()) == '.'); return true;
}
if (packageName.isRoot()) {
return true;
}
String subpackageNameStr = subpackageName.getFqName();
String packageNameStr = packageName.getFqName();
return (subpackageNameStr.startsWith(packageNameStr) && subpackageNameStr.charAt(packageNameStr.length()) == '.');
} }
public static boolean isOneSegmentFQN(@NotNull final String fqn) { public static boolean isOneSegmentFQN(@NotNull final String fqn) {
@@ -84,7 +95,7 @@ public final class QualifiedNamesUtil {
*/ */
@NotNull @NotNull
public static String tail(@NotNull FqName headFQN, @NotNull FqName fullFQN) { public static String tail(@NotNull FqName headFQN, @NotNull FqName fullFQN) {
if (!isSubpackageOf(fullFQN, headFQN)) { if (!isSubpackageOf(fullFQN, headFQN) || headFQN.isRoot()) {
return fullFQN.getFqName(); return fullFQN.getFqName();
} }