public void addSubTree(int index,List<Node> children){
  List<NodeDescriptor> nodeDescriptors=convertTreeNodesHelper(children);
  roots.addChildren(index,nodeDescriptors);
  List<Node> nodes=new ArrayList<>();
  for (  NodeDescriptor child : nodeDescriptors) {
    nodes.add(child.getNode());
  }
  if (!nodes.isEmpty()) {
    fireEvent(new StoreAddEvent(index,nodes));
  }
}

public void addSubTree ( int index , List < Node > children ) { List < NodeDescriptor > nodeDescriptors = convertTreeNodesHelper ( children ) ; roots . addChildren ( index , nodeDescriptors ) ; List < Node > nodes = new ArrayList < > ( ) ; for ( NodeDescriptor child : nodeDescriptors ) { nodes . add ( child . getNode ( ) ) ; } if ( ! nodes . isEmpty ( ) ) { fireEvent ( new StoreAddEvent ( index , nodes ) ) ; } }
imports a list of subtrees at the given position in the root of the tree .
