Package perestrojka.common

Examples of perestrojka.common.Vertex


   
    // get the start- and endvertices from the graph. We could run into problems if
    // formats with the same extension exists that have different lossy/lossless
    // settings. Since I don't know such a format we simply take the first matching
    // vertex.
    Vertex startVertex = null;
    for (Edge edge : edges) {
      if (edge.getSourceVertex().getFormat().equalsIgnoreCase(sourceFormat)) {
        startVertex = edge.getSourceVertex();
        break;
      }
    }
    if (startVertex == null) {
      return null;
    }
   
    Vertex targetVertex = null;
    for (Edge edge : edges) {
      if (edge.getTargetVertex().getFormat().equalsIgnoreCase(targetFormat)) {
        targetVertex = edge.getTargetVertex();
        break;
      }
    }
    if (targetVertex == null) {
      return null;
    }
   
    runDijkstra(startVertex);
    ret = new ArrayList<ConversionStep>();
    Vertex predecessor = null;

    Vertex activeVertex = targetVertex;
    while ((predecessor = activeVertex.getPredecessor()) != null) {
      Edge edge = findEdge(predecessor, activeVertex);
      ret.add(0, new ConversionStep(activeVertex.getFormat(), edge.getConversionExtension()));
      activeVertex = predecessor;
    }
   
    // add to cache
    cache.add(sourceFormat, targetFormat, ret);
View Full Code Here


 
  private List<Vertex> relaxNeighbours(Vertex vertex)
  {
    List<Vertex> neighbours = new ArrayList<Vertex>();
    for (Edge edge : edges) {
      Vertex targetVertex = edge.getTargetVertex();
      if (edge.getSourceVertex() == vertex && !targetVertex.isDistancePermanent()) {
        int newDistance = vertex.getDistance() + edge.getWeight();
        if (targetVertex.getDistance() > newDistance) {
          targetVertex.setDistance(newDistance);
          targetVertex.setPredecessor(vertex);
        }
        if (!neighbours.contains(targetVertex)) {
          neighbours.add(targetVertex);
        }
      }
View Full Code Here

   * Dijksta's shortest path algorithm
   */
  private void runDijkstra(Vertex startVertex)
  {
    //init
    Vertex activeVertex = startVertex;
    for (Vertex vertex : vertices) {
      if (vertex == startVertex) {
        vertex.setDistance(0);
        vertex.setDistancePermanent(true);
      }
      else {
        vertex.setDistance(Integer.MAX_VALUE);
        vertex.setDistancePermanent(false);
      }
    }
   
    TreeSet<Vertex> priorityList = new TreeSet<Vertex>();
    do {
      List<Vertex> neighbours = relaxNeighbours(activeVertex);
      priorityList.addAll(neighbours);
      try {
        activeVertex = priorityList.first();
        priorityList.remove(activeVertex);
        activeVertex.setDistancePermanent(true);
      }
      catch (NoSuchElementException e) {
        activeVertex = null;
      }
    } while (activeVertex != null);
View Full Code Here

        if (isLossless == null) {
          isLossless = Boolean.FALSE.toString();
        }

        if (fileExtension != null) {
          Vertex fileFormat = new Vertex(fileExtension,
              isLossless.equals(Boolean.TRUE.toString()));
          if (element.getName().equals("writeableFormat")) {
           
            writeableFormats.add(fileFormat);
          }
View Full Code Here

TOP

Related Classes of perestrojka.common.Vertex

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.