1 /* Copyright 2002-2025 CS GROUP
2 * Licensed to CS GROUP (CS) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * CS licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package org.orekit.gnss.metric.parser;
18
19 /** Encoded message as a byte array.
20 * @author Luc Maisonobe
21 * @since 11.0
22 */
23 public class ByteArrayEncodedMessage extends AbstractEncodedMessage {
24
25 /** Byte array containing the message. */
26 private final byte[] message;
27
28 /** Index of current byte in array. */
29 private int byteIndex;
30
31 /** Simple constructor.
32 * @param message byte array containing the message
33 */
34 public ByteArrayEncodedMessage(final byte[] message) {
35 this.message = message.clone();
36 }
37
38 /** {@inheritDoc} */
39 @Override
40 public void start() {
41 super.start();
42 this.byteIndex = -1;
43 }
44
45 /** {@inheritDoc} */
46 @Override
47 protected int fetchByte() {
48 if (++byteIndex >= message.length) {
49 return -1;
50 }
51 return message[byteIndex] & 0xFF;
52 }
53
54 }