ProjectSymbolData { public void add(ClassSymbolData classSymbolData) { classSymbolsByQualifiedName.put(classSymbolData.qualifiedName(), classSymbolData); }  void add(ClassSymbolData classSymbolData); void add(FunctionSymbolData functionSymbolData); Optional<ClassSymbolData> classSymbolData(QualifiedName qualifiedName); List<FunctionSymbolData> functionSymbolData(QualifiedName qualifiedName);  }
@Test public void add() { QualifiedName qualifiedName = qualifiedName("ns1\\Class1"); ProjectSymbolData projectSymbolData = new ProjectSymbolData(); assertThat(projectSymbolData.classSymbolData(qualifiedName)).isEmpty(); ClassSymbolData class1 = new ClassSymbolData(new LocationInFileImpl("f1", 1, 2, 3, 4), qualifiedName, null, emptyList(), emptyList()); projectSymbolData.add(class1); assertThat(projectSymbolData.classSymbolData(qualifiedName)).contains(class1); }