test_class.file: api/src/test/java/edu/wpi/first/shuffleboard/api/tab/model/TabModelImplTest.java
test_class.identifier: TabModelImplTest
test_case.body: @Test
    public void testAddChild() {
      TabModel tab = new TabModelImpl("Tab");
      String path = "/Shuffleboard/Tab/Foo";
      ComponentModel child = new WidgetModelImpl(path, tab, () -> null, "", Collections.emptyMap());
      tab.addChild(child);
      assertSame(child, tab.getChild(path));
    }
test_case.class_method_signature: TabModelImplTest.testAddChild()
test_case.full_signature: @Test public void testAddChild()
test_case.identifier: testAddChild
test_case.invocations: emptyMap addChild assertSame getChild
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testAddChild()
focal_class.declarator: title
focal_class.modifier: private final
focal_class.original_string: private final String title;
focal_class.type: String
focal_class.var_name: title
focal_class.declarator: layouts = new HashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<String, LayoutModel> layouts = new HashMap<>();
focal_class.type: Map<String, LayoutModel>
focal_class.var_name: layouts
focal_class.declarator: children = new HashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<String, ComponentModel> children = new HashMap<>();
focal_class.type: Map<String, ComponentModel>
focal_class.var_name: children
focal_class.declarator: properties = new HashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<String, Object> properties = new HashMap<>();
focal_class.type: Map<String, Object>
focal_class.var_name: properties
focal_class.file: api/src/main/java/edu/wpi/first/shuffleboard/api/tab/model/TabModelImpl.java
focal_class.identifier: TabModelImpl
focal_class.interfaces: implements TabModel
focal_class.class_method_signature: TabModelImpl.TabModelImpl(String title)
focal_class.full_signature:   TabModelImpl(String title)
focal_class.identifier: TabModelImpl
focal_class.parameters: (String title)
focal_class.signature:  TabModelImpl(String title)
focal_class.class_method_signature: TabModelImpl.getTitle()
focal_class.full_signature: @Override public String getTitle()
focal_class.identifier: getTitle
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getTitle()
focal_class.class_method_signature: TabModelImpl.getProperties()
focal_class.full_signature: @Override public Map<String, Object> getProperties()
focal_class.identifier: getProperties
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Map<String, Object>
focal_class.signature: Map<String, Object> getProperties()
focal_class.class_method_signature: TabModelImpl.setProperties(Map<String, Object> properties)
focal_class.full_signature: @Override public void setProperties(Map<String, Object> properties)
focal_class.identifier: setProperties
focal_class.modifiers: @Override public
focal_class.parameters: (Map<String, Object> properties)
focal_class.return: void
focal_class.signature: void setProperties(Map<String, Object> properties)
focal_class.class_method_signature: TabModelImpl.getLayout(String path, String layoutType)
focal_class.full_signature: @Override public LayoutModel getLayout(String path, String layoutType)
focal_class.identifier: getLayout
focal_class.modifiers: @Override public
focal_class.parameters: (String path, String layoutType)
focal_class.return: LayoutModel
focal_class.signature: LayoutModel getLayout(String path, String layoutType)
focal_class.class_method_signature: TabModelImpl.getChild(String path)
focal_class.full_signature: @Override public ComponentModel getChild(String path)
focal_class.identifier: getChild
focal_class.modifiers: @Override public
focal_class.parameters: (String path)
focal_class.return: ComponentModel
focal_class.signature: ComponentModel getChild(String path)
focal_class.class_method_signature: TabModelImpl.addChild(ComponentModel component)
focal_class.full_signature: @Override public void addChild(ComponentModel component)
focal_class.identifier: addChild
focal_class.modifiers: @Override public
focal_class.parameters: (ComponentModel component)
focal_class.return: void
focal_class.signature: void addChild(ComponentModel component)
focal_class.class_method_signature: TabModelImpl.getChildren()
focal_class.full_signature: @Override public Map<String, ComponentModel> getChildren()
focal_class.identifier: getChildren
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Map<String, ComponentModel>
focal_class.signature: Map<String, ComponentModel> getChildren()
focal_method.body: @Override
    public void addChild(ComponentModel component) {
      children.put(component.getPath(), component);
    }
focal_method.class_method_signature: TabModelImpl.addChild(ComponentModel component)
focal_method.full_signature: @Override public void addChild(ComponentModel component)
focal_method.identifier: addChild
focal_method.invocations: put getPath
focal_method.modifiers: @Override public
focal_method.parameters: (ComponentModel component)
focal_method.return: void
focal_method.signature: void addChild(ComponentModel component)