package Ġch . b ail u . gtk . converter Ċ Ċ import Ġjava . util .* Ċ import Ġjava . util . regex . Pattern Ċ Ċ class ĠNamespace Type ( fallback Namespace : ĠString , ĠtypeName : ĠString ) Ġ{ ĊĠĠĠ Ġprivate Ġval ĠNAMES PACE Ġ= ĠPattern . compile ("^ ([ A - Za - z ]\\ w +) \\. ([ A - Za - z ]\\ w + )$ ") ĊĠĠĠ Ġprivate Ġval ĠNON AMES PACE Ġ= ĠPattern . compile ("^ [ A - Za - z ]\\ w +$ ") ĊĊĊĠĠĠ Ġprivate Ġval Ġnamespace : ĠString ĊĠĠĠ Ġprivate Ġval Ġname : ĠString ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġm Ġ= ĠNAMES PACE . matcher ( typeName ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m . find ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnamespace Ġ= Ġm . group ( 1 ). lowercase () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġm . group ( 2 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Ġ= ĠNON AMES PACE . matcher ( typeName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m . find ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnamespace Ġ= Ġfallback Namespace . lowercase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠtypeName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnamespace Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Namespace (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnamespace ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObjects . hash ( namespace , Ġname ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠisValid (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" Ġ!= Ġname ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"${ namespace }.${ name }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠNamespace Type ĊĊĠĠĠĠĠĠĠ Ġif Ġ( namespace Ġ!= Ġother . namespace ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ }