WXDomObject extends CSSNode implements Cloneable { public void add(WXDomObject child, int index) { if (child == null || index < -1 || sDestroy.get()) { return; } if (children == null) { children = new ArrayList<>(); } int count = children.size(); index = index >= count ? -1 : index; if (index == -1) { children.add(child); super.addChildAt(child, super.getChildCount()); } else { children.add(index, child); super.addChildAt(child, index); } child.parent = this; }  boolean isModifyHeight(); void setModifyHeight(boolean isModifyHeight); boolean isModifyWidth(); String getRef(); String getType(); @NonNull WXStyle getStyles(); @NonNull WXAttr getAttrs(); @NonNull WXEvent getEvents(); void clearEvents(); static void prepareRoot(WXDomObject obj); static void prepareGod(WXDomObject obj); void parseFromJson(JSONObject map); void setModifyWidth(boolean isModifyWidth); void layoutBefore(); void layoutAfter(); final boolean hasUpdate(); final void markUpdateSeen(); boolean isFixed(); Object getExtra(); void remove(WXDomObject child); void removeFromDom(WXDomObject child); int index(WXDomObject child); void add(WXDomObject child, int index); @Deprecated void add2Dom(WXDomObject child, int index); WXDomObject getChild(int index); void addEvent(String e); boolean containsEvent(String e); void removeEvent(String e); void updateAttr(Map<String, Object> attrs); void updateStyle(Map<String, Object> styles); void applyStyleToNode(); int childCount(); void hide(); void show(); boolean isVisible(); @Override WXDomObject clone(); void destroy(); ArrayList<String> getFixedStyleRefs(); void add2FixedDomList(String ref); String dumpDomTree(); static final String TAG; static final String ROOT; static final String GOD; static final String TRANSFORM; static final String TRANSFORM_ORIGIN; @Deprecated
  public String ref; @Deprecated
  public String type; @Deprecated
  public WXStyle style; @Deprecated
  public WXAttr attr; @Deprecated
  public WXEvent event; @Deprecated
  public List<WXDomObject> children; @Deprecated
  public WXDomObject parent; }
@Test public void testAdd() throws Exception { JSONObject obj = new JSONObject(); obj.put("ref","100"); obj.put("type","div"); dom.parseFromJson(obj); JSONObject child = new JSONObject(); child.put("ref","101"); child.put("type","test"); WXDomObject childDom = new WXDomObject(); childDom.parseFromJson(child); dom.add(childDom,0); assertEquals(dom.getChildCount(),1); assertEquals(dom.getChild(0),childDom); dom.removeChildAt(0); assertEquals(dom.getChildCount(),0); dom.add(childDom,0); assertEquals(dom.getChildCount(),1); assertEquals(dom.getChild(0),childDom); dom.remove(childDom); }