Java to Kotlin conversion: dropped "NOT_OPEN" pseudo-modifier
This commit is contained in:
@@ -258,17 +258,25 @@ public class Converter(val project: Project, val settings: ConverterSettings) {
|
|||||||
val returnType = convertType(method.getReturnType(), method.isAnnotatedAsNotNull())
|
val returnType = convertType(method.getReturnType(), method.isAnnotatedAsNotNull())
|
||||||
|
|
||||||
val modifiers = HashSet(convertModifierList(method.getModifierList()))
|
val modifiers = HashSet(convertModifierList(method.getModifierList()))
|
||||||
if (isOverride(method)) {
|
|
||||||
modifiers.add(Modifier.OVERRIDE)
|
|
||||||
}
|
|
||||||
|
|
||||||
val containingClass = method.getContainingClass()
|
val containingClass = method.getContainingClass()
|
||||||
if (containingClass != null && containingClass.isInterface()) {
|
if (containingClass != null && containingClass.isInterface()) {
|
||||||
modifiers.remove(Modifier.ABSTRACT)
|
modifiers.remove(Modifier.ABSTRACT)
|
||||||
}
|
}
|
||||||
|
if (containingClass != null && (containingClass.hasModifierProperty(PsiModifier.FINAL) || containingClass.isEnum())) {
|
||||||
|
modifiers.add(Modifier.FINAL)
|
||||||
|
}
|
||||||
|
|
||||||
if (isNotOpenMethod(method)) {
|
if (settings.openByDefault &&
|
||||||
modifiers.add(Modifier.NOT_OPEN)
|
!modifiers.contains(Modifier.ABSTRACT) &&
|
||||||
|
!modifiers.contains(Modifier.FINAL) &&
|
||||||
|
!modifiers.contains(Modifier.PRIVATE)) {
|
||||||
|
modifiers.add(Modifier.OPEN)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isOverride(method)) {
|
||||||
|
modifiers.add(Modifier.OVERRIDE)
|
||||||
|
modifiers.remove(Modifier.OPEN)
|
||||||
}
|
}
|
||||||
|
|
||||||
val comments = getComments(method)
|
val comments = getComments(method)
|
||||||
|
|||||||
@@ -55,17 +55,6 @@ fun Converter.isOverride(method: PsiMethod): Boolean {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isNotOpenMethod(method: PsiMethod): Boolean {
|
|
||||||
val parent = method.getParent()
|
|
||||||
if (parent is PsiClass) {
|
|
||||||
val parentModifierList = parent.getModifierList()
|
|
||||||
if ((parentModifierList != null && parentModifierList.hasExplicitModifier(PsiModifier.FINAL)) || parent.isEnum()) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
fun directlyOverridesMethodFromObject(method: PsiMethod): Boolean {
|
fun directlyOverridesMethodFromObject(method: PsiMethod): Boolean {
|
||||||
var superSignatures = method.getHierarchicalMethodSignature().getSuperSignatures()
|
var superSignatures = method.getHierarchicalMethodSignature().getSuperSignatures()
|
||||||
if (superSignatures.size() == 1) {
|
if (superSignatures.size() == 1) {
|
||||||
|
|||||||
@@ -46,18 +46,10 @@ open class Function(
|
|||||||
resultingModifiers.add(Modifier.ABSTRACT)
|
resultingModifiers.add(Modifier.ABSTRACT)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (converter.settings.openByDefault &&
|
if (modifiers.contains(Modifier.OPEN)) {
|
||||||
!modifiers.contains(Modifier.ABSTRACT) &&
|
|
||||||
!isOverride &&
|
|
||||||
!modifiers.contains(Modifier.FINAL) &&
|
|
||||||
!modifiers.contains(Modifier.PRIVATE)) {
|
|
||||||
resultingModifiers.add(Modifier.OPEN)
|
resultingModifiers.add(Modifier.OPEN)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (modifiers.contains(Modifier.NOT_OPEN)) {
|
|
||||||
resultingModifiers.remove(Modifier.OPEN)
|
|
||||||
}
|
|
||||||
|
|
||||||
return resultingModifiers.toKotlin()
|
return resultingModifiers.toKotlin()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,13 +30,11 @@ enum class Modifier(val name: String) {
|
|||||||
ABSTRACT: Modifier("abstract")
|
ABSTRACT: Modifier("abstract")
|
||||||
FINAL: Modifier("final")
|
FINAL: Modifier("final")
|
||||||
OPEN: Modifier("open")
|
OPEN: Modifier("open")
|
||||||
NOT_OPEN: Modifier("not open") //TODO: drop it
|
|
||||||
OVERRIDE: Modifier("override")
|
OVERRIDE: Modifier("override")
|
||||||
|
|
||||||
public fun toKotlin(): String? {
|
public fun toKotlin(): String? {
|
||||||
return when(this) {
|
return when(this) {
|
||||||
INTERNAL -> null
|
INTERNAL -> null
|
||||||
NOT_OPEN -> throw IllegalArgumentException()
|
|
||||||
else -> name
|
else -> name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user