Class DexpiTopologyResolver.ResolvedTopology

java.lang.Object
neqsim.process.processmodel.dexpi.DexpiTopologyResolver.ResolvedTopology
All Implemented Interfaces:
Serializable
Enclosing class:
DexpiTopologyResolver

public static class DexpiTopologyResolver.ResolvedTopology extends Object implements Serializable
The resolved topology of a DEXPI document, containing equipment IDs in topological order and the edges (connections) between them.
Version:
1.0
Author:
NeqSim
See Also:
  • Field Details

  • Constructor Details

    • ResolvedTopology

      public ResolvedTopology(List<String> orderedEquipmentIds, List<DexpiTopologyResolver.TopologyEdge> edges, Map<String,String> nozzleToEquipment, Map<String,Element> equipmentElements)
      Creates a new resolved topology.
      Parameters:
      orderedEquipmentIds - equipment IDs in topological order
      edges - the directed edges between equipment
      nozzleToEquipment - map from nozzle ID to owning equipment ID
      equipmentElements - map from equipment ID to its XML element
  • Method Details

    • getOrderedEquipmentIds

      public List<String> getOrderedEquipmentIds()
      Gets equipment IDs in topological (upstream to downstream) order.
      Returns:
      ordered list of equipment IDs
    • getEdges

      Gets all directed edges.
      Returns:
      list of topology edges
    • getNozzleToEquipment

      public Map<String,String> getNozzleToEquipment()
      Gets the map from nozzle ID to owning equipment ID.
      Returns:
      nozzle-to-equipment map
    • getEquipmentElements

      public Map<String,Element> getEquipmentElements()
      Gets the map from equipment ID to its XML element.
      Returns:
      equipment elements map
    • getOutgoingEdges

      public List<DexpiTopologyResolver.TopologyEdge> getOutgoingEdges(String equipmentId)
      Gets edges whose source is the given equipment ID.
      Parameters:
      equipmentId - the source equipment ID
      Returns:
      list of outgoing edges (may be empty)
    • getIncomingEdges

      public List<DexpiTopologyResolver.TopologyEdge> getIncomingEdges(String equipmentId)
      Gets edges whose target is the given equipment ID.
      Parameters:
      equipmentId - the target equipment ID
      Returns:
      list of incoming edges (may be empty)
    • hasCycle

      public boolean hasCycle()
      Checks whether the topology contains a cycle. A cycle exists when the number of topologically sorted nodes is less than the total number of equipment nodes, meaning Kahn's algorithm could not resolve all dependencies.
      Returns:
      true if a cycle was detected