package Ġcom . github . pg ut k owski . k graphql . request . graph Ċ Ċ import Ġcom . github . pg ut k owski . k graphql . request . Arguments Ċ Ċ open Ġclass ĠSelection Node ( ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ: ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġalias : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġchildren : ĠSelection Tree ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ: ĠArguments ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġdirectives : ĠList < Directive Invocation >? Ġ= Ġnull Ċ ) Ġ: ĠComparable < Selection Node > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠSelection Node ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . alias Or Key . compareTo ( other . alias Or Key ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġalias Or Key Ġ= Ġalias Ġ?: Ġkey ĊĊĠĠĠ Ġval Ġis Leaf : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġchildren Ġ== Ġnull Ġ|| Ġchildren . isEmpty () ĊĊĠĠĠ Ġval Ġis Branch : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġchildren Ġ!= Ġnull Ġ&& Ġchildren . isNotEmpty () ĊĊĠĠĠ Ġval Ġhas Arguments : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġarguments Ġ!= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder ( alias Or Key ) ĊĠĠĠĠĠĠĠ Ġif ( children Ġ!= Ġnull ) Ġbuilder . append (" Ġ{ "). append ( children ). append (" } Ġ") ĊĠĠĠĠĠĠĠ Ġif ( arguments Ġ!= Ġnull ) Ġbuilder . append (" Ġargs : Ġ"). append ("{ "). append ( arguments ). append (" }") ĊĠĠĠĠĠĠĠ Ġif ( directives Ġ!= Ġnull ) Ġbuilder . append (" Ġdirectives : Ġ"). append ("{ "). append ( arguments ). append (" }") ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠSelection Node ĊĊĠĠĠĠĠĠĠ Ġif Ġ( key Ġ!= Ġother . key ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( alias Ġ!= Ġother . alias ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( children Ġ!= Ġother . children ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( arguments Ġ!= Ġother . arguments ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( directives Ġ!= Ġother . directives ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġkey . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( alias ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( children ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( arguments ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( directives ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ }