public void splitChildOfNode(BTreeNode parent, int splitIndex) {
		BTreeNode rightPart = new BTreeNode(order);
		BTreeNode leftPart = parent.getChildAt(splitIndex);
		rightPart.setAmIaLeaf(leftPart.isLeaf());
		rightPart.setNoOfKeys( order - 1 );
		for(int j=0 ; j < order-1 ; j++) {
			rightPart.setKeyAt(j, leftPart.getKeyAt(j+order));
			rightPart.setValueAt(j, leftPart.getValueAt(j+order));
		}

		if ( !leftPart.isLeaf() ) {
			for(int j=0 ; j < order ; j++) {
				rightPart.setChildAt(j, leftPart.getChildAt(j+order));
			}
		}
		leftPart.setNoOfKeys(order-1);

		for(int j=parent.getNoOfKeys() ; j >= splitIndex+1 ; j--) {
			parent.setChildAt(j+1, parent.getChildAt(j));
		}
		parent.setChildAt(splitIndex+1, rightPart);
		
		for( int j=parent.getNoOfKeys()-1 ; j >= splitIndex; j--) {
			parent.setKeyAt(j+1, parent.getKeyAt(j));
			parent.setValueAt(j+1, parent.getValueAt(j));
		}
		parent.setKeyAt(splitIndex, leftPart.getKeyAt(order-1));
		parent.setValueAt(splitIndex, leftPart.getValueAt(order-1));
		parent.setNoOfKeys(parent.getNoOfKeys() + 1);
	}