if(conceptIndex == 0 && tree.getChildren().size() > 1 && tree.getChildren(1).getNodeType().matches("CC|,")
|| conceptIndex == tree.getChildren().size()-1 && tree.getChildren().size() > 1 && tree.getChildren(conceptIndex-1).getNodeType().matches("CC|,")
|| conceptIndex > 0 && conceptIndex < tree.getChildren().size()-1 && tree.getChildren().size() > 2 && tree.getChildren(conceptIndex-1).getNodeType().equals(",") && tree.getChildren(conceptIndex+1).getNodeType().matches("CC|,")){
// if we meet this simple condition we raise the CONCEPT node!
// remove old concept node:
TreebankNode entityRoot = tree.getChildren(conceptIndex).getChildren(0);
tree.setChildren(conceptIndex, entityRoot);
entityRoot.setParent(tree);
// insert new concept node:
// SimpleTree replacementNode = new SimpleTree(tree.cat);
TreebankNode replacementNode = new TreebankNode(jcas);
replacementNode.setNodeType(tree.getNodeType());
replacementNode.setChildren(tree.getChildren());
for(int i = 0; i < replacementNode.getChildren().size(); i++){
replacementNode.getChildren(i).setParent(replacementNode);
}
replacementNode.setParent(tree);
tree.setNodeType("CONCEPT");
// tree.children = new ArrayList<SimpleTree>();
FSArray children = new FSArray(jcas, 1);
children.set(0, replacementNode);