class AmplNetworkReader {

    private Void readShunt(String[] tokens) {
        int num = Integer.parseInt(tokens[1]);
        int busNum = Integer.parseInt(tokens[2]);

        double q = readDouble(tokens[4]);
        int sections = Integer.parseInt(tokens[5]);

        String id = mapper.getId(AmplSubset.SHUNT, num);
        ShuntCompensator sc = network.getShuntCompensator(id);
        if (sc == null) {
            throw new AmplException("Invalid shunt compensator id '" + id + "'");
        }

        if (sc.getModelType() == ShuntCompensatorModelType.NON_LINEAR) {
            // TODO improve non linear shunt section count update.
        } else {
            sc.setSectionCount(Math.max(0, Math.min(sc.getMaximumSectionCount(), sections)));
        }
        Terminal t = sc.getTerminal();
        t.setQ(q);

        busConnection(t, busNum);

        return null;
    }

    public  AmplNetworkReader(ReadOnlyDataSource dataSource, Network network, int variantIndex, StringToIntMapper<AmplSubset> mapper);
    public  AmplNetworkReader(ReadOnlyDataSource dataSource, Network network, StringToIntMapper<AmplSubset> mapper);

}