SH::DiskList Node1 SH::DiskList - m_state + testInvariant() + ~DiskList() + next() + path() + fileName() + openDir() + dirname() # DiskList() # getNext() # getPath() # doOpenDir() # getDirname() Node2 SH::DiskListEOS - m_dir - m_prefix - m_list - m_file - m_isDir - m_isRead + testInvariant() + DiskListEOS() + DiskListEOS() # getNext() # getPath() # doOpenDir() # getDirname() Node1->Node2 Node3 SH::DiskListLocal - m_dir - m_prefix - m_dirp - m_file + testInvariant() + DiskListLocal() + DiskListLocal() + ~DiskListLocal() # getNext() # getPath() # doOpenDir() # getDirname() Node1->Node3 Node4 SH::DiskListSRM - m_dir - m_prefix - m_list - m_file - m_isDir + testInvariant() + DiskListSRM() + DiskListSRM() # getNext() # getPath() # doOpenDir() # getDirname() Node1->Node4 Node5 SH::DiskListXRD - m_server - m_directory - m_laxParser - m_context - m_list - m_file - m_isDir - m_isRead + testInvariant() + DiskListXRD() # getNext() # getPath() # doOpenDir() # getDirname() Node1->Node5