All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opentripplanner.common.CTX Maven / Gradle / Ivy

There is a newer version: 2.6.0
Show newest version
/* This program is free software: you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public License
 as published by the Free Software Foundation, either version 3 of
 the License, or (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see . */

package org.opentripplanner.common;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * CTX parser for receiving Dutch realtime updates
 * 
 * @author skywave
 */
public class CTX {

    public ArrayList> rows = new ArrayList>();

    public String subscription;

    public String timestamp;

    public String type;

    public CTX(String ctx) {
        String[] lines = ctx.split("\r\n");
        String[] labels = null;
        for (int i = 0; i < lines.length; i++) {
            String line = lines[i];
            if (line.length() > 0) {
                if (line.charAt(0) == '\\') {
                    if (line.charAt(1) == 'G') {
                        String[] header = line.split("\\|");
                        subscription = header[2];
                    } else if (line.charAt(1) == 'T') {
                        String[] table = line.split("\\|");
                        type = table[1];
                    } else if (line.charAt(1) == 'L') {
                        labels = line.substring(2).split("\\|");
                    }
                } else {
                    HashMap row = new HashMap();
                    String[] values = line.split("\\|");
                    for (int j = 0; j < values.length; j++) {
                        if (values[j] == "\0") {
                            values[j] = null;
                        }
                        row.put(labels[j], values[j]);
                    }
                    rows.add(row);
                }
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy