package Ġza . ac . sun . gr apl . domain . models . vertices Ċ Ċ import Ġza . ac . sun . gr apl . domain . enums . Vertex Base Traits Ċ import Ġza . ac . sun . gr apl . domain . enums . Vertex Labels Ċ import Ġza . ac . sun . gr apl . domain . models . G ra PL Vertex Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠA Ġtype Ġwhich Ġalways Ġhas Ġto Ġreference Ġa Ġtype Ġdeclaration Ġand Ġmay Ġhave Ġtype Ġargument Ġchildren Ġif Ġthe Ġreferred Ġto Ġtype Ċ Ġ* Ġdeclaration Ġis Ġa Ġtemplate Ċ Ġ*/ Ċ class ĠType Vertex ( val Ġname : ĠString , Ġval ĠfullName : ĠString , Ġval Ġtype Decl FullName : ĠString ) Ġ: ĠGra PL Vertex Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Type Vertex {" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" name ='" Ġ+ Ġname Ġ+ Ġ'\'' Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", ĠfullName ='" Ġ+ ĠfullName Ġ+ Ġ'\'' Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġtype Decl FullName ='" Ġ+ Ġtype Decl FullName Ġ+ Ġ'\'' Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' }' ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠType Vertex ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( fullName Ġ!= Ġother . fullName ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( type Decl FullName Ġ!= Ġother . type Decl FullName ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġname . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ ĠfullName . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtype Decl FullName . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ kotlin . jvm . Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠLABEL Ġ= ĠVertex Labels . TYPE ĊĠĠĠĠĠĠĠ Ġval ĠTR A ITS : ĠEnum Set < Vertex Base Traits > Ġ= ĠEnum Set . none Of ( Vertex Base Traits :: class . java ) ĊĠĠĠ Ġ} Ċ Ċ }