/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ċ Ġ* Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . platform . jvm Ċ Ċ import Ġorg . jetbrains . kotlin . config . Jvm Target Ċ import Ġorg . jetbrains . kotlin . platform . Simple Platform Ċ import Ġorg . jetbrains . kotlin . platform . Target Platform Ċ import Ġorg . jetbrains . kotlin . platform . to Target Platform Ċ import Ġorg . jetbrains . kotlin . platform . Target Platform Version Ċ Ċ abstract Ġclass ĠJ vm Platform Ġ: ĠSimple Platform (" JVM ") Ġ{ ĊĠĠĠ Ġoverride Ġval Ġold F ashion ed Description : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" JVM Ġ" Ċ } Ċ Ċ @ Suppress (" DE PREC ATION _ ERROR ") Ċ object ĠJ vm Platforms Ġ{ ĊĠĠĠ Ġprivate Ġval ĠUNS PE CI FIED _ SIMPLE _ JVM _ PLATFORM Ġ= ĠJ dk Platform ( Jvm Target . DEFAULT ) ĊĠĠĠ Ġprivate Ġval Ġj vm Target To J dk Platform : ĠMap < Jvm Target , ĠTarget Platform > Ġ= ĊĠĠĠĠĠĠĠ ĠJ vm Target . values (). map Ġ{ Ġit Ġto ĠJ dk Platform ( it ). to Target Platform () Ġ}. toMap () ĊĊĠĠĠ Ġ// ĠThis Ġplatform Ġis Ġneeded Ġmostly Ġfor Ġcompatibility Ġand Ġmigration Ġof Ġcode Ġbase , ĊĠĠĠ Ġ// Ġas Ġpreviously Ġsome Ġclients Ġused ĠTarget Platform Ġjust Ġas Ġplatform - marker ĊĠĠĠ Ġ// Ġand Ġdidn 't Ġcare Ġabout Ġparticular Ġj vm Target . ĊĠĠĠ Ġ// ĠTODO ( ds av vin ov ): Ġreview Ġall Ġusage s Ġand Ġchoose Ġproper ĠJ vm Target ĊĠĠĠ Ġval Ġunspecified Jvm Platform : ĠTarget Platform ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠCompat Jvm Platform ĊĊĠĠĠ Ġval Ġdefault Jvm Platform : ĠTarget Platform Ġ= Ġj vm Target To J dk Platform [ Jvm Target . DEFAULT ] !! ĊĊĠĠĠ Ġval Ġj vm 1 6 : ĠTarget Platform Ġ= Ġj vm Target To J dk Platform [ Jvm Target . JVM _ 1 _ 6 ] !! ĊĠĠĠ Ġval Ġj vm 1 8 : ĠTarget Platform Ġ= Ġj vm Target To J dk Platform [ Jvm Target . JVM _ 1 _ 8 ] !! ĊĠĠĠ Ġval Ġj vm 9 : ĠTarget Platform Ġ= Ġj vm Target To J dk Platform [ Jvm Target . JVM _ 9 ] !! ĊĠĠĠ Ġval Ġj vm 1 5 : ĠTarget Platform Ġ= Ġj vm Target To J dk Platform [ Jvm Target . JVM _ 1 5 ] !! ĊĊĠĠĠ Ġfun Ġj vm Platform By Target Version ( target Version : ĠJ vm Target ): ĠTarget Platform Ġ= ĊĠĠĠĠĠĠĠ Ġj vm Target To J dk Platform [ target Version ] !! ĊĊĠĠĠ Ġval Ġall Jvm Platforms : ĠList < Target Platform > Ġ= Ġj vm Target To J dk Platform . values . toList () ĊĊĠĠĠ Ġ@ Deprecated ( ĊĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Should Ġbe Ġaccessed Ġonly Ġby Ġcompatibility Ġlayer , Ġother Ġclients Ġshould Ġuse Ġ' un specified Jvm Platform '", ĊĠĠĠĠĠĠĠ Ġlevel Ġ= ĠDeprec ation Level . ERROR ĊĠĠĠ Ġ) ĊĠĠĠ Ġobject ĠCompat Jvm Platform Ġ: ĠTarget Platform ( set Of ( UNSPECIFIED _ SIMPLE _ JVM _ PLATFORM )), ĊĠĠĠĠĠĠĠ Ġ// ĠN eeded Ġfor Ġbackward Ġcompatibility , Ġbecause Ġold Ġcode Ġuses ĠINSTANCE OF Ġchecks Ġinstead Ġof Ġcalling Ġextensions ĊĠĠĠĠĠĠĠ Ġorg . jetbrains . kotlin . resolve . jvm . platform . Jvm Platform Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġplatform Name : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" JVM " ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠJ dk Platform ( val Ġtarget Version : ĠJ vm Target ) Ġ: ĠJ vm Platform () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ"$ platform Name Ġ($ target Version )" ĊĊĠĠĠ Ġoverride Ġval Ġold F ashion ed Description : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" JVM Ġ" Ġ+ Ġtarget Version . description ĊĊĠĠĠ Ġoverride Ġval Ġtarget Platform Version : ĠTarget Platform Version ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtarget Version ĊĊĠĠĠ Ġ// ĠTODO ( ds av vin ov ): Ġtemporarily Ġcon serv ative Ġmeasure ; Ġmake ĠJ dk Platform Ġdata Ġclass Ġlater ĊĠĠĠ Ġ// Ġ ĠEx planation : Ġpreviously Ġwe Ġhad Ġonly Ġone ĠJ vm Platform , Ġand Ġall Ġ' Target Platform 's Ġhad Ġan ĊĠĠĠ Ġ// Ġ Ġequality Ġ( act ually , Ġidentity , Ġbecause Ġeach Ġplatform Ġhad Ġonly Ġone Ġinstance ). ĠThis Ġlead ĊĠĠĠ Ġ// Ġ Ġto Ġcommon Ġpattern Ġof Ġputting Ġthem Ġin Ġmap Ġ( e . g ., Ġsee ĠKotlin Cache ServiceImpl . global Facades Per Platform And Sdk ). ĊĠĠĠ Ġ// Ġ Ġ. ĊĠĠĠ Ġ// Ġ ĠIf Ġwe Ġstart Ġdistinguish ing ĠJ vm Platforms Ġwith Ġdifferent ĠJ vm Target Ġright Ġnow , Ġit Ġmay Ġaccidentally ĊĠĠĠ Ġ// Ġ Ġbreak Ġsome Ġclients Ġ( in Ġparticular , Ġwe 'll Ġcreate Ġglobal Ġfac ade Ġfor Ġ* each * ĠJ vm Target , Ġwhich Ġis Ġa Ġbad Ġidea ) ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ= Ġother Ġis ĠJ dk Platform ĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ= ĠJ dk Platform :: class . hashCode () Ċ } Ċ Ċ // ĠTODO : Ġtemporarily Ġcon serv ative Ġimplementation ; Ġuse Ġthe Ġsame Ġapproach Ġas Ġfor ĠTarget Platform ?. is Native () Ċ // Ġ Ġwhen ĠJ dk Platform Ġbecomes Ġa Ġdata Ġclass Ċ fun ĠTarget Platform ?. is Jvm (): ĠBoolean Ġ= Ġthis ?. single OrNull () Ġis ĠJ vm Platform Ċ