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

LearnLib / automatalib / 21665074655

04 Feb 2026 08:59AM UTC coverage: 92.882% (-0.02%) from 92.901%
21665074655

push

github

mtf90
bump m3c version

17419 of 18754 relevant lines covered (92.88%)

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<>(getPMPGs());
1✔
54
    }
55
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc