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

LearnLib / automatalib / 10220057657

02 Aug 2024 06:06PM UTC coverage: 90.366% (+0.3%) from 90.072%
10220057657

push

github

mtf90
overhaul serizalition code

* unify access to Input(De)Serializers behind facades to leverage the default methods for various input/output channels
* drop implicit buffering/decompressing as this should be decided where the stream are constructed (user-land)
* remove/cleanup the (now) unused code

300 of 349 new or added lines in 33 files covered. (85.96%)

9 existing lines in 3 files now uncovered.

15927 of 17625 relevant lines covered (90.37%)

1.67 hits per line

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

0.0
/serialization/taf/src/main/java/net/automatalib/serialization/taf/parser/TAFAnyParser.java
1
/* Copyright (C) 2013-2024 TU Dortmund University
2
 * This file is part of AutomataLib, http://www.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.serialization.taf.parser;
17

18
import java.io.IOException;
19
import java.io.InputStream;
20
import java.io.Reader;
21

22
import net.automatalib.automaton.FiniteAlphabetAutomaton;
23
import net.automatalib.automaton.fsa.impl.CompactDFA;
24
import net.automatalib.automaton.impl.CompactTransition;
25
import net.automatalib.automaton.transducer.impl.CompactMealy;
26
import net.automatalib.common.util.IOUtil;
27
import net.automatalib.exception.FormatException;
28
import net.automatalib.serialization.ModelDeserializer;
29

NEW
30
final class TAFAnyParser implements ModelDeserializer<FiniteAlphabetAutomaton<?, String, ?>> {
×
31

32
    @Override
33
    public FiniteAlphabetAutomaton<?, String, ?> readModel(InputStream is) throws IOException, FormatException {
34

NEW
35
        try (Reader r = IOUtil.asNonClosingUTF8Reader(is)) {
×
NEW
36
            final InternalTAFParser parser = new InternalTAFParser(r);
×
37

38
            try {
NEW
39
                final Type type = parser.type();
×
NEW
40
                switch (type) {
×
41
                    case DFA: {
NEW
42
                        final DefaultTAFBuilderDFA<CompactDFA<String>, Integer> builder =
×
43
                                new DefaultTAFBuilderDFA<>(parser, new CompactDFA.Creator<>());
NEW
44
                        parser.dfaBody(builder);
×
NEW
45
                        return builder.finish();
×
46
                    }
47
                    case MEALY: {
48
                        final DefaultTAFBuilderMealy<CompactMealy<String, String>, Integer, CompactTransition<String>>
NEW
49
                                builder = new DefaultTAFBuilderMealy<>(parser, new CompactMealy.Creator<>());
×
NEW
50
                        parser.mealyBody(builder);
×
NEW
51
                        return builder.finish();
×
52
                    }
53
                    default:
NEW
54
                        throw new IllegalStateException("Unknown type " + type);
×
55
                }
NEW
56
            } catch (ParseException ex) {
×
NEW
57
                throw new FormatException(ex);
×
58
            }
NEW
59
        }
×
60
    }
61
}
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

© 2025 Coveralls, Inc