• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

LearnLib / automatalib / 31586418187

12 Aug 2026 09:53AM UTC coverage: 92.921% (+0.9%) from 92.059%
31586418187

push

github

mtf90
use new version scheme

17615 of 18957 relevant lines covered (92.92%)

1.72 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

16.67
/api/src/main/java/net/automatalib/graph/ContextFreeModalProcessSystem.java
1
/* Copyright (C) 2013-2026 TU Dortmund University
2
 * This file is part of AutomataLib <https://automatalib.net>.
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *     http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
package net.automatalib.graph;
17

18
import java.util.Map;
19

20
import net.automatalib.automaton.concept.FiniteRepresentation;
21
import net.automatalib.graph.concept.GraphViewable;
22
import net.automatalib.ts.TransitionSystem;
23
import org.checkerframework.checker.nullness.qual.Nullable;
24

25
/**
26
 * Represents a Context-Free Modal Transition System as defined in the paper <a
27
 * href="http://doi.org/10.1007/978-3-030-00244-2_15">M3C: Modal Meta Model Checking</a>. Note that we use the term
28
 * <i>process system</i> from the <a href="https://doi.org/10.1007/BFb0084787">original paper</a> to prevent confusion
29
 * with AutomataLib's concept of {@link TransitionSystem}s.
30
 *
31
 * @param <L>
32
 *         edge label type
33
 * @param <AP>
34
 *         atomic proposition type
35
 */
36
public interface ContextFreeModalProcessSystem<L, AP> extends FiniteRepresentation, GraphViewable {
37

38
    Map<L, ProceduralModalProcessGraph<?, L, ?, AP, ?>> getPMPGs();
39

40
    @Nullable L getMainProcess();
41

42
    @Override
43
    default int size() {
44
        int result = 0;
×
45
        for (ProceduralModalProcessGraph<?, L, ?, AP, ?> pmpg : getPMPGs().values()) {
×
46
            result += pmpg.size();
×
47
        }
×
48
        return result;
×
49
    }
50

51
    @Override
52
    default Graph<?, ?> graphView() {
53
        return new CFMPSGraphView<>(getMainProcess(), getPMPGs());
1✔
54
    }
55
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc