Kotlin Visibility Modifiers

Provides FilePrivate and PackagePrivate annotations to use in kotlin code as well as lint checks needed to validate their usage

License

License

Categories

Categories

Kotlin Languages
GroupId

GroupId

io.github.esentsov
ArtifactId

ArtifactId

kotlin-visibility
Last Version

Last Version

1.1.0
Release Date

Release Date

Type

Type

aar
Description

Description

Kotlin Visibility Modifiers
Provides FilePrivate and PackagePrivate annotations to use in kotlin code as well as lint checks needed to validate their usage
Project URL

Project URL

https://github.com/esentsov/kotlin-visibility-modifiers
Source Code Management

Source Code Management

https://github.com/esentsov/kotlin-visibility-modifiers/tree/master

Download kotlin-visibility

How to add to project

<!-- https://jarcasting.com/artifacts/io.github.esentsov/kotlin-visibility/ -->
<dependency>
    <groupId>io.github.esentsov</groupId>
    <artifactId>kotlin-visibility</artifactId>
    <version>1.1.0</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/io.github.esentsov/kotlin-visibility/
implementation 'io.github.esentsov:kotlin-visibility:1.1.0'
// https://jarcasting.com/artifacts/io.github.esentsov/kotlin-visibility/
implementation ("io.github.esentsov:kotlin-visibility:1.1.0")
'io.github.esentsov:kotlin-visibility:aar:1.1.0'
<dependency org="io.github.esentsov" name="kotlin-visibility" rev="1.1.0">
  <artifact name="kotlin-visibility" type="aar" />
</dependency>
@Grapes(
@Grab(group='io.github.esentsov', module='kotlin-visibility', version='1.1.0')
)
libraryDependencies += "io.github.esentsov" % "kotlin-visibility" % "1.1.0"
[io.github.esentsov/kotlin-visibility "1.1.0"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

Kotlin Visibility Modifiers

Are you missing package private visibility in kotlin?

This repository is to provide PackagePrivate and FilePrivate annotations as well as necessary lint checks.

@PackagePrivate annotation is a replacement for java package-private visibility. @FilePrivate is a new thing for java/kotlin. As the name says annotatated members can be accessed in the same file they are declared.

Usage

Add dependency to you build.gradle:

implementation("io.github.esentsov:kotlin-visibility:1.1.0")

Use annotations @PackagePrivate and @FilePrivate in your code. All necessary lint checks are already included, Android Studio will pick them up and show an error every time you are trying to access annotated members outside of the respective scope.

Release notes

1.1.0

Add support for class-level annotations. Detect usage of annotated classes, objects, annotation classes. Also detect usage of function, properties or inner classes of an annotated class.

1.0.0

Initial release. Support detections of annotated constructors, properties and functions.

Versions

Version
1.1.0
1.0.0