
org.jetbrains.kotlin.load.java.structure.javaElements.kt Maven / Gradle / Ivy
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.load.java.structure
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
interface JavaElement
interface JavaNamedElement : JavaElement {
val name: Name
}
interface JavaAnnotationOwner : JavaElement {
val annotations: Collection
fun findAnnotation(fqName: FqName): JavaAnnotation?
val isDeprecatedInJavaDoc: Boolean
}
interface JavaModifierListOwner : JavaElement {
val isAbstract: Boolean
val isStatic: Boolean
val isFinal: Boolean
val visibility: Visibility
}
interface JavaTypeParameterListOwner : JavaElement {
val typeParameters: List
}
interface JavaAnnotation : JavaElement {
val arguments: Collection
val classId: ClassId?
fun resolve(): JavaClass?
}
interface JavaPackage : JavaElement {
val fqName: FqName
val subPackages: Collection
fun getClasses(nameFilter: (Name) -> Boolean): Collection
}
interface JavaClassifier : JavaNamedElement, JavaAnnotationOwner
interface JavaClass : JavaClassifier, JavaTypeParameterListOwner, JavaModifierListOwner {
val fqName: FqName?
val supertypes: Collection
val innerClasses: Collection
val outerClass: JavaClass?
val isInterface: Boolean
val isAnnotationType: Boolean
val isEnum: Boolean
val isKotlinLightClass: Boolean
val methods: Collection
val fields: Collection
val constructors: Collection
}
interface JavaMember : JavaModifierListOwner, JavaAnnotationOwner, JavaNamedElement {
val containingClass: JavaClass
}
interface JavaMethod : JavaMember, JavaTypeParameterListOwner {
val valueParameters: List
val returnType: JavaType
val hasAnnotationParameterDefaultValue: Boolean
}
interface JavaField : JavaMember {
val isEnumEntry: Boolean
val type: JavaType
}
interface JavaConstructor : JavaMember, JavaTypeParameterListOwner {
val valueParameters: List
}
interface JavaValueParameter : JavaAnnotationOwner {
val name: Name?
val type: JavaType
val isVararg: Boolean
}
interface JavaTypeParameter : JavaClassifier {
val upperBounds: Collection
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy