- Query query + ClientIO( ) + void processQueries( ) ClientIO 10.0 140.0 -PopularNames names + Query( ) + String findAverageAndStandardDeviation( String name, char sex, int startYr, int endYr ) + ArrayList< QueriedName > findRanks( boolean isCumulative, char sex, int firstYear, int lastYear, int lowRank, int highRank ) + ArrayList< Integer > findRanks( String name, char sex, int startYr, int endYr ) Query 250.0 120.0 - ArrayList< BabyNames > names - FILE_NAME popularNames + PopularNames( ) + void load( String fileName ) + ArrayList< Integer > find( String name, char sex ) + ArrayList< QueriedName > findRanks( boolean isCumulative, char sex, int firstYear, int lastYear ) PopularNames 320.0 280.0 - String name - char sex - ArrayList< Integer > ranks + Name( ) + Name( String name, char sex ) + char getSex( ) + String getName( ) + ArrayList< Integer > getRanks( ) + String toString( ) abstract Name 510.0 460.0 - int START_YEAR = 1900 - int HIGH_RANK = 1001 - String SEPARATOR = "\\s+" + BabyName( String line ) + QueriedName getCumulativeRank( int startYr, int endYr ) + QueriedName getRankCount( int startYr, int endYr, int lowRank, int highRank ) + int compareTo( BabyName right ) BabyName 40.0 720.0 + QueriedName( String name, char sex, int rank ) + QueriedName( String name, char sex, ArrayList< Integer > ranks ) + int compareTo( QueriedName right ) QueriedName 650.0 720.0 + main( String [ ] args ) Test 10.0 0.0