code: public static synchronized ChatStateManager getInstance(final XMPPConnection connection) {
              ChatStateManager manager = INSTANCES.get(connection);
              if (manager == null) {
                  manager = new ChatStateManager(connection);
                  INSTANCES.put(connection, manager);
              }
              return manager;
      }
docs: Returns the ChatStateManager related to the XMPPConnection and it will create one if it does
  not yet exist.
  
  @param connection the connection to return the ChatStateManager
  @return the ChatStateManager related the the connection.