code: private Representation createRepresentation(Representation representation) throws DDFException {
  
      Collection<Representation> vertices = this.mReps.values();
      //List<GraphPath<Representation<?>, ConvertFunction<?, ?>>> pathList = new ArrayList<GraphPath<Representation<?>, ConvertFunction<?, ?>>>();
      double minWeight = Double.MAX_VALUE;
      GraphPath<Representation, ConvertFunction> minPath = null;
      for (Representation vertex : vertices) {
        mLog.info(">>>>>> start vertex = " + vertex.getTypeSpecsString());
        mLog.info(">>>>>> end Vertex = " + representation.getTypeSpecsString());
        GraphPath<Representation, ConvertFunction> shortestPath = this.mGraph.getShortestPath(vertex, representation);
  
        if (shortestPath != null) {
          mLog.info(">>>> shortestPath != null");
          if (shortestPath.getWeight() < minWeight) {
            minWeight = shortestPath.getWeight();
            minPath = shortestPath;
          }
        }
      }
  
      if (minPath == null) {
        return null;
      } else {
        Representation startVertex = minPath.getStartVertex();
        Representation startRepresentation = null;
        for (Representation rep : this.mReps.values()) {
          if (rep.equals(startVertex)) {
            startRepresentation = rep;
          }
        }
        mLog.info("minPath.getWeight = " + minPath.getWeight());
        mLog.info("minPath.lenth = " + minPath.getEdgeList().size());
        mLog.info("startVertext = " + minPath.getStartVertex().getTypeSpecsString());
        mLog.info("endVertex = " + minPath.getEndVertex().getTypeSpecsString());
        List<ConvertFunction> convertFunctions = minPath.getEdgeList();
        Representation objectRepresentation = startRepresentation;
        for (ConvertFunction func : convertFunctions) {
          objectRepresentation = func.apply(objectRepresentation);
        }
        return objectRepresentation;
      }
    }
docs: Converts from existing representation(s) to the desired representation, which has the specified dataType.
  <p/>
  The base representation returns only the default representation if the dataType matches the default type. Otherwise
  it returns null.
  
  @param dataType
  @return