src/main/java/com/mxgraph/analysis/mxGraphStructure.java
public static boolean isCutVertex(mxAnalysisGraph aGraph, Object vertex)
	{
		mxGraph graph = aGraph.getGraph();
		mxIGraphModel model = graph.getModel();

		if (aGraph.getEdges(vertex, null, true, true, false, true).length >= 2)
		{
			Object[] cells = model.cloneCells(aGraph.getChildCells(graph.getDefaultParent(), true, true), true);
			mxGraphModel modelCopy = new mxGraphModel();
			mxGraph graphCopy = new mxGraph(modelCopy);
			graphCopy.addCells(cells);
			mxAnalysisGraph aGraphCopy = new mxAnalysisGraph();
			aGraphCopy.setGraph(graphCopy);
			aGraphCopy.setGenerator(aGraph.getGenerator());
			aGraphCopy.setProperties(aGraph.getProperties());

			Object newVertex = getVertexWithValue(aGraphCopy,
					(int) aGraph.getGenerator().getCostFunction().getCost(new mxCellState(graph.getView(), vertex, null)));

			graphCopy.removeCells(new Object[] { newVertex }, true);
			Object[][] oldComponents = getGraphComponents(aGraph);
			Object[][] newComponents = getGraphComponents(aGraphCopy);

			if (newComponents.length > oldComponents.length)
			{
				return true;
			}
		}

		return false;
	}
/**
	 * @param aGraph
	 * @param vertex
	 * @return true if <b>vertex</b> is a cut vertex
	 */
@param aGraph
@param vertex
@return true if vertex is a cut vertex
@param aGraph @param vertex @return true if vertex is a cut vertex
public static boolean isCutVertex(mxAnalysisGraph aGraph, Object vertex)
	{
		mxGraph graph = aGraph.getGraph();
		mxIGraphModel model = graph.getModel();
		if (aGraph.getEdges(vertex, null, true, true, false, true).length >= 2)
		{
			Object[] cells = model.cloneCells(aGraph.getChildCells(graph.getDefaultParent(), true, true), true);
			mxGraphModel modelCopy = new mxGraphModel();
			mxGraph graphCopy = new mxGraph(modelCopy);
			graphCopy.addCells(cells);
			mxAnalysisGraph aGraphCopy = new mxAnalysisGraph();
			aGraphCopy.setGraph(graphCopy);
			aGraphCopy.setGenerator(aGraph.getGenerator());
			aGraphCopy.setProperties(aGraph.getProperties());
			Object newVertex = getVertexWithValue(aGraphCopy,
					(int) aGraph.getGenerator().getCostFunction().getCost(new mxCellState(graph.getView(), vertex, null)));
			graphCopy.removeCells(new Object[] { newVertex }, true);
			Object[][] oldComponents = getGraphComponents(aGraph);
			Object[][] newComponents = getGraphComponents(aGraphCopy);
			if (newComponents.length > oldComponents.length)
			{
				return true;
			}
		}
		return false;
	}
public static boolean isCutVertex ( mxAnalysisGraph aGraph , Object vertex ) { mxGraph graph = aGraph . getGraph ( ) ; mxIGraphModel model = graph . getModel ( ) ; if ( aGraph . getEdges ( vertex , null , true , true , false , true ) . length >= 2 ) { Object [ ] cells = model . cloneCells ( aGraph . getChildCells ( graph . getDefaultParent ( ) , true , true ) , true ) ; mxGraphModel modelCopy = new mxGraphModel ( ) ; mxGraph graphCopy = new mxGraph ( modelCopy ) ; graphCopy . addCells ( cells ) ; mxAnalysisGraph aGraphCopy = new mxAnalysisGraph ( ) ; aGraphCopy . setGraph ( graphCopy ) ; aGraphCopy . setGenerator ( aGraph . getGenerator ( ) ) ; aGraphCopy . setProperties ( aGraph . getProperties ( ) ) ; Object newVertex = getVertexWithValue ( aGraphCopy , ( int ) aGraph . getGenerator ( ) . getCostFunction ( ) . getCost ( new mxCellState ( graph . getView ( ) , vertex , null ) ) ) ; graphCopy . removeCells ( new Object [ ] { newVertex } , true ) ; Object [ ] [ ] oldComponents = getGraphComponents ( aGraph ) ; Object [ ] [ ] newComponents = getGraphComponents ( aGraphCopy ) ; if ( newComponents . length > oldComponents . length ) { return true ; } } return false ; }
@param aGraph
 @param vertex
 @return true if <b>vertex</b> is a cut vertex
@param aGraph @param vertex @return true if <b > vertex< / b > is a cut vertex