mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-11-01 15:23:54 +01:00
Convert Namespace to kotlin
This commit is contained in:
parent
11ade09287
commit
a9c872602e
1 changed files with 26 additions and 50 deletions
|
|
@ -1,26 +1,20 @@
|
||||||
package fr.free.nrw.commons.wikidata.model.page;
|
package fr.free.nrw.commons.wikidata.model.page
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import fr.free.nrw.commons.wikidata.model.EnumCode
|
||||||
|
import fr.free.nrw.commons.wikidata.model.EnumCodeMap
|
||||||
import fr.free.nrw.commons.wikidata.model.EnumCode;
|
|
||||||
import fr.free.nrw.commons.wikidata.model.EnumCodeMap;
|
|
||||||
|
|
||||||
/** An enumeration describing the different possible namespace codes. Do not attempt to use this
|
/** An enumeration describing the different possible namespace codes. Do not attempt to use this
|
||||||
* class to preserve URL path information such as Talk: or User: or localization.
|
* class to preserve URL path information such as Talk: or User: or localization.
|
||||||
* @see <a href='https://en.wikipedia.org/wiki/Wikipedia:Namespace'>Wikipedia:Namespace</a>
|
*
|
||||||
* @see <a href='https://www.mediawiki.org/wiki/Extension_default_namespaces'>Extension default namespaces</a>
|
* @see [Wikipedia:Namespace](https://en.wikipedia.org/wiki/Wikipedia:Namespace)
|
||||||
* @see <a href='https://github.com/wikimedia/wikipedia-ios/blob/master/Wikipedia/Code/NSNumber+MWKTitleNamespace.h'>NSNumber+MWKTitleNamespace.h (iOS implementation)</a>
|
* @see [Extension default namespaces](https://www.mediawiki.org/wiki/Extension_default_namespaces)
|
||||||
* @see <a href='https://www.mediawiki.org/wiki/Manual:Namespace#Built-in_namespaces'>Manual:Namespace</a>
|
* @see [NSNumber+MWKTitleNamespace.h
|
||||||
* @see <a href='https://en.wikipedia.org/w/api.php?action=query&meta=siteinfo&siprop=namespaces|namespacealiases'>Namespaces reported by API</a>
|
* @see [Manual:Namespace](https://www.mediawiki.org/wiki/Manual:Namespace.Built-in_namespaces)
|
||||||
|
* @see [Namespaces reported by API](https://en.wikipedia.org/w/api.php?action=query&meta=siteinfo&siprop=namespaces|namespacealiases)](https://github.com/wikimedia/wikipedia-ios/blob/master/Wikipedia/Code/NSNumber+MWKTitleNamespace.h)
|
||||||
*/
|
*/
|
||||||
public enum Namespace implements EnumCode {
|
enum class Namespace(private val code: Int) : EnumCode {
|
||||||
MEDIA(-2),
|
MEDIA(-2),
|
||||||
SPECIAL(-1) {
|
SPECIAL(-1) { override fun talk(): Boolean = false },
|
||||||
@Override
|
|
||||||
public boolean talk() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MAIN(0), // Main or Article
|
MAIN(0), // Main or Article
|
||||||
TALK(1),
|
TALK(1),
|
||||||
USER(2),
|
USER(2),
|
||||||
|
|
@ -137,38 +131,20 @@ public enum Namespace implements EnumCode {
|
||||||
GADGET_DEFINITION_TALK(2303),
|
GADGET_DEFINITION_TALK(2303),
|
||||||
TOPIC(2600);
|
TOPIC(2600);
|
||||||
|
|
||||||
private static final int TALK_MASK = 0x1;
|
override fun code(): Int = code
|
||||||
private static final EnumCodeMap<Namespace> MAP = new EnumCodeMap<>(Namespace.class);
|
|
||||||
|
|
||||||
private final int code;
|
fun special(): Boolean = this === SPECIAL
|
||||||
|
|
||||||
@NonNull
|
fun main(): Boolean = this === MAIN
|
||||||
public static Namespace of(int code) {
|
|
||||||
return MAP.get(code);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
fun file(): Boolean = this === FILE
|
||||||
public int code() {
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean special() {
|
open fun talk(): Boolean = (code and TALK_MASK) == TALK_MASK
|
||||||
return this == SPECIAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean main() {
|
companion object {
|
||||||
return this == MAIN;
|
private const val TALK_MASK = 0x1
|
||||||
}
|
private val MAP = EnumCodeMap(Namespace::class.java)
|
||||||
|
|
||||||
public boolean file() {
|
fun of(code: Int): Namespace = MAP[code]
|
||||||
return this == FILE;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean talk() {
|
|
||||||
return (code & TALK_MASK) == TALK_MASK;
|
|
||||||
}
|
|
||||||
|
|
||||||
Namespace(int code) {
|
|
||||||
this.code = code;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue