Pull constructor-related methods from JetClass to JetClassOrObject
This commit is contained in:
@@ -39,20 +39,6 @@ public open class JetClass : JetClassOrObject {
|
|||||||
return visitor.visitClass(this, data)
|
return visitor.visitClass(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun getPrimaryConstructor(): JetPrimaryConstructor? {
|
|
||||||
return getStubOrPsiChild(JetStubElementTypes.PRIMARY_CONSTRUCTOR)
|
|
||||||
}
|
|
||||||
|
|
||||||
public fun getPrimaryConstructorParameterList(): JetParameterList? {
|
|
||||||
val primaryConstructor = getPrimaryConstructor()
|
|
||||||
return primaryConstructor?.getValueParameterList()
|
|
||||||
}
|
|
||||||
|
|
||||||
public fun getPrimaryConstructorParameters(): List<JetParameter> {
|
|
||||||
val list = getPrimaryConstructorParameterList() ?: return emptyList<JetParameter>()
|
|
||||||
return list.getParameters()
|
|
||||||
}
|
|
||||||
|
|
||||||
public fun createPrimaryConstructorIfAbsent(): JetPrimaryConstructor {
|
public fun createPrimaryConstructorIfAbsent(): JetPrimaryConstructor {
|
||||||
val constructor = getPrimaryConstructor()
|
val constructor = getPrimaryConstructor()
|
||||||
if (constructor != null) return constructor
|
if (constructor != null) return constructor
|
||||||
@@ -69,14 +55,6 @@ public open class JetClass : JetClassOrObject {
|
|||||||
return constructor.add(JetPsiFactory(getProject()).createParameterList("()")) as JetParameterList
|
return constructor.add(JetPsiFactory(getProject()).createParameterList("()")) as JetParameterList
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun getPrimaryConstructorModifierList(): JetModifierList? {
|
|
||||||
val primaryConstructor = getPrimaryConstructor()
|
|
||||||
return primaryConstructor?.getModifierList()
|
|
||||||
}
|
|
||||||
|
|
||||||
public fun hasExplicitPrimaryConstructor(): Boolean {
|
|
||||||
return getPrimaryConstructor() != null
|
|
||||||
}
|
|
||||||
|
|
||||||
public fun getColon(): PsiElement? {
|
public fun getColon(): PsiElement? {
|
||||||
return findChildByType(JetTokens.COLON)
|
return findChildByType(JetTokens.COLON)
|
||||||
@@ -149,19 +127,6 @@ public open class JetClass : JetClassOrObject {
|
|||||||
return body.getAllCompanionObjects()
|
return body.getAllCompanionObjects()
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun hasPrimaryConstructor(): Boolean {
|
|
||||||
return hasExplicitPrimaryConstructor() || !hasSecondaryConstructors()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun hasSecondaryConstructors(): Boolean {
|
|
||||||
return !getSecondaryConstructors().isEmpty()
|
|
||||||
}
|
|
||||||
|
|
||||||
public fun getSecondaryConstructors(): List<JetSecondaryConstructor> {
|
|
||||||
val body = getBody()
|
|
||||||
return if (body != null) body.getSecondaryConstructors() else emptyList<JetSecondaryConstructor>()
|
|
||||||
}
|
|
||||||
|
|
||||||
public fun getClassOrInterfaceKeyword(): PsiElement? {
|
public fun getClassOrInterfaceKeyword(): PsiElement? {
|
||||||
return findChildByType(TokenSet.create(JetTokens.CLASS_KEYWORD, JetTokens.INTERFACE_KEYWORD))
|
return findChildByType(TokenSet.create(JetTokens.CLASS_KEYWORD, JetTokens.INTERFACE_KEYWORD))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,4 +47,17 @@ abstract public class JetClassOrObject : JetTypeParameterListOwnerStub<KotlinCla
|
|||||||
override fun getDeclarations() = getBody()?.getDeclarations().orEmpty()
|
override fun getDeclarations() = getBody()?.getDeclarations().orEmpty()
|
||||||
|
|
||||||
override fun getPresentation(): ItemPresentation? = ItemPresentationProviders.getItemPresentation(this)
|
override fun getPresentation(): ItemPresentation? = ItemPresentationProviders.getItemPresentation(this)
|
||||||
|
|
||||||
|
public fun getPrimaryConstructor(): JetPrimaryConstructor? = getStubOrPsiChild(JetStubElementTypes.PRIMARY_CONSTRUCTOR)
|
||||||
|
|
||||||
|
public fun getPrimaryConstructorModifierList(): JetModifierList? = getPrimaryConstructor()?.getModifierList()
|
||||||
|
public fun getPrimaryConstructorParameterList(): JetParameterList? = getPrimaryConstructor()?.getValueParameterList()
|
||||||
|
public fun getPrimaryConstructorParameters(): List<JetParameter> = getPrimaryConstructorParameterList()?.getParameters().orEmpty()
|
||||||
|
|
||||||
|
public fun hasExplicitPrimaryConstructor(): Boolean = getPrimaryConstructor() != null
|
||||||
|
|
||||||
|
public fun hasPrimaryConstructor(): Boolean = hasExplicitPrimaryConstructor() || !hasSecondaryConstructors()
|
||||||
|
private fun hasSecondaryConstructors(): Boolean = !getSecondaryConstructors().isEmpty()
|
||||||
|
|
||||||
|
public fun getSecondaryConstructors(): List<JetSecondaryConstructor> = getBody()?.getSecondaryConstructors().orEmpty()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,12 +51,6 @@ public class JetClassInfo extends JetClassOrObjectInfo<JetClass> {
|
|||||||
return element.getTypeParameterList();
|
return element.getTypeParameterList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public List<? extends JetParameter> getPrimaryConstructorParameters() {
|
|
||||||
return element.getPrimaryConstructorParameters();
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public ClassKind getClassKind() {
|
public ClassKind getClassKind() {
|
||||||
|
|||||||
@@ -90,6 +90,12 @@ public abstract class JetClassOrObjectInfo<E extends JetClassOrObject> implement
|
|||||||
return body == null ? Collections.<JetAnnotationEntry>emptyList() : body.getDanglingAnnotations();
|
return body == null ? Collections.<JetAnnotationEntry>emptyList() : body.getDanglingAnnotations();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public List<? extends JetParameter> getPrimaryConstructorParameters() {
|
||||||
|
return element.getPrimaryConstructorParameters();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "info for " + element.getText();
|
return "info for " + element.getText();
|
||||||
|
|||||||
@@ -42,12 +42,6 @@ public class JetObjectInfo extends JetClassOrObjectInfo<JetObjectDeclaration> {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public List<? extends JetParameter> getPrimaryConstructorParameters() {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public ClassKind getClassKind() {
|
public ClassKind getClassKind() {
|
||||||
|
|||||||
Reference in New Issue
Block a user