Package owl.automaton

## Interface EdgeTreeAutomatonMixin<S,​A extends OmegaAcceptance>

- Type Parameters:
    `S` - the type of the states of the automaton
    `A` - the type of the omega-acceptance condition of the automaton
  All Superinterfaces:
    `Automaton<S,​A>`
  All Known Implementing Classes:
    `DeterministicConstructions.CoSafety`, `DeterministicConstructions.FgSafety`, `DeterministicConstructions.GCoSafety`, `DeterministicConstructions.GfCoSafety`, `DeterministicConstructions.Safety`, `DeterministicConstructions.Tracking`, `ImplicitNonDeterministicEdgeTreeAutomaton`, `LegacyFactory`, `NonDeterministicConstructions.CoSafety`, `NonDeterministicConstructions.FgSafety`, `NonDeterministicConstructions.GfCoSafety`, `NonDeterministicConstructions.Safety`, `NonDeterministicConstructions.Tracking`, `TwoPartAutomaton`

      public interface EdgeTreeAutomatonMixin<S,​A extends OmegaAcceptance>
      extends Automaton<S,​A>

  Mixin interface for implementing an automaton by `Automaton.edgeTree(Object)`.

  It is impossible to implement the incompatible sister interface `EdgesAutomatonMixin` and the compiler will reject the code, since there are conflicting defaults for `Automaton.preferredEdgeAccess()`.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface owl.automaton.Automaton

      `Automaton.EdgeMapVisitor<S>, Automaton.EdgeTreeVisitor<S>, Automaton.EdgeVisitor<S>, Automaton.PreferredEdgeAccess, Automaton.Property, Automaton.Visitor<S>`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static List<Automaton.PreferredEdgeAccess>` | `ACCESS_MODES` |

  - ### Method Summary

    All Methods Instance Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default Map<Edge<S>,​ValuationSet>` | `edgeMap​(S state)` | Returns a mapping from all outgoing edges to their valuations of the specified `state`.
    `default Set<Edge<S>>` | `edges​(S state)` | Returns all successor edges of the specified `state` under any valuation.
    `default Set<Edge<S>>` | `edges​(S state, BitSet valuation)` | Returns the successor edges of the specified `state` under the given `valuation`.
    `default List<Automaton.PreferredEdgeAccess>` | `preferredEdgeAccess()` | Indicate if the automaton implements a fast (e.g.

    - ### Methods inherited from interface owl.automaton.Automaton

      `accept, accept, accept, accept, acceptance, edge, edgeTree, factory, initialStates, is, name, onlyInitialState, predecessors, size, states, successor, successors, successors`

- - ### Field Detail

    - #### ACCESS_MODES

          static final List<Automaton.PreferredEdgeAccess> ACCESS_MODES

  - ### Method Detail

    - #### edgeMap

          default Map<Edge<S>,​ValuationSet> edgeMap​(S state)

      Description copied from interface: `Automaton`
      Returns a mapping from all outgoing edges to their valuations of the specified `state`.
      Specified by:
        `edgeMap` in interface `Automaton<S,​A extends OmegaAcceptance>`
      Parameters:
        `state` - The state.
      Returns:
        All labelled edges of the state.

    - #### edges

          default Set<Edge<S>> edges​(S state)

      Description copied from interface: `Automaton`
      Returns all successor edges of the specified `state` under any valuation.
      Specified by:
        `edges` in interface `Automaton<S,​A extends OmegaAcceptance>`
      Parameters:
        `state` - The starting state of the edges.
      Returns:
        The set of edges originating from `state`

    - #### edges

          default Set<Edge<S>> edges​(S state,
                                     BitSet valuation)

      Description copied from interface: `Automaton`
      Returns the successor edges of the specified `state` under the given `valuation`.
      Specified by:
        `edges` in interface `Automaton<S,​A extends OmegaAcceptance>`
      Parameters:
        `state` - The starting state of the transition.
        `valuation` - The valuation.
      Returns:
        The successor edges, possibly empty.

    - #### preferredEdgeAccess

          default List<Automaton.PreferredEdgeAccess> preferredEdgeAccess()

      Description copied from interface: `Automaton`
      Indicate if the automaton implements a fast (e.g. symbolic) computation of edges. Returns a `List` containing all supported `PreferredEdgeAccess` ordered by their preference. Meaning the element at first position (index 0) is the most preferred. Accordingly algorithms can change the use of `Automaton.edges(Object, BitSet)`, `Automaton.edgeMap(Object)`, or `Automaton.edgeTree(Object)` for accessing all outgoing edges of a state. This information is also used to dispatch to the right visitor style.
      Specified by:
        `preferredEdgeAccess` in interface `Automaton<S,​A extends OmegaAcceptance>`
      Returns:
        An ordered list of the traversal methods. It always contains a complete list