private ClassVertex addClassAndGetClassVertex(XClass xclass){
  if (xclass == null) {
    throw new IllegalStateException();
  }
  LinkedList<XClass> workList=new LinkedList<XClass>();
  workList.add(xclass);
  while (!workList.isEmpty()) {
    XClass work=workList.removeFirst();
    ClassVertex vertex=classDescriptorToVertexMap.get(work.getClassDescriptor());
    if (vertex != null && vertex.isFinished()) {
      continue;
    }
    if (vertex == null) {
      vertex=ClassVertex.createResolvedClassVertex(work.getClassDescriptor(),work);
      addVertexToGraph(work.getClassDescriptor(),vertex);
    }
    addSupertypeEdges(vertex,workList);
    vertex.setFinished(true);
  }
  return classDescriptorToVertexMap.get(xclass.getClassDescriptor());
}

private ClassVertex addClassAndGetClassVertex ( XClass xclass ) { if ( xclass == null ) { throw new IllegalStateException ( ) ; } LinkedList < XClass > workList = new LinkedList < XClass > ( ) ; workList . add ( xclass ) ; while ( ! workList . isEmpty ( ) ) { XClass work = workList . removeFirst ( ) ; ClassVertex vertex = classDescriptorToVertexMap . get ( work . getClassDescriptor ( ) ) ; if ( vertex != null && vertex . isFinished ( ) ) { continue ; } if ( vertex == null ) { vertex = ClassVertex . createResolvedClassVertex ( work . getClassDescriptor ( ) , work ) ; addVertexToGraph ( work . getClassDescriptor ( ) , vertex ) ; } addSupertypeEdges ( vertex , workList ) ; vertex . setFinished ( true ) ; } return classDescriptorToVertexMap . get ( xclass . getClassDescriptor ( ) ) ; }
add an xclass and all of its supertypes to the inheritancegraph .
