package Ġn sl . sam . utils Ċ Ċ import Ġn sl . sam . method . basic auth . domain . user . User Traits Ċ Ċ class ĠUser Traits Comparator Ġ: ĠComparator < User Traits > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcompare ( o 1 : ĠUser Traits , Ġo 2 : ĠUser Traits ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( o 1 . name Ġ!= Ġo 2 . name ) Ġreturn Ġo 1 . name . compareTo ( o 2 . name ) ĊĠĠĠĠĠĠĠ Ġif ( o 1 . password Ġ!= Ġo 2 . password ) Ġreturn Ġo 2 . password . compareTo ( o 2 . password ) ĊĠĠĠĠĠĠĠ Ġif ( o 1 . roles . size Ġ!= Ġo 2 . roles . size ) Ġreturn Ġo 1 . roles . size . compareTo ( o 2 . roles . size ) ĊĠĠĠĠĠĠĠ Ġif ( o 1 . roles . content Deep Equals ( o 2 . roles )) Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġoverride Ġfun Ġcompare ( o 1 : ĠComparator < User Traits >, Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġo 2 : ĠComparator < User Traits >): ĠInt Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( o 1 . Ġ!= Ġo 2 . first ) Ġreturn Ġo 1 . first . compareTo ( o 2 . first ) Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( o 1 . second Ġ!= Ġo 2 . second ) Ġreturn Ġo 1 . second . compareTo ( o 2 . second ) Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( o 1 . third . size Ġ!= Ġo 2 . third . size ) Ġreturn Ġo 1 . third . size . compareTo ( o 2 . third . size ) Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( o 1 . third . content Deep Equals ( o 2 . third )) Ġreturn Ġ 0 Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġ 1 Ċ // ĠĠĠ Ġ} Ċ }