class AmplNetworkReader {

    private Void readPhaseTapChanger(String[] tokens) {
        int num = Integer.parseInt(tokens[1]);
        int tap = Integer.parseInt(tokens[2]);
        String id = mapper.getId(AmplSubset.PHASE_TAP_CHANGER, num);
        if (id.endsWith(AmplConstants.LEG1_SUFFIX) || id.endsWith(AmplConstants.LEG2_SUFFIX) || id.endsWith(AmplConstants.LEG3_SUFFIX)) {
            ThreeWindingsTransformer twt = getThreeWindingsTransformer(network, id);
            PhaseTapChanger ptc = getThreeWindingsTransformerLeg(twt, id).getPhaseTapChanger();
            ptc.setTapPosition(ptc.getLowTapPosition() + tap - 1);
        } else {
            TwoWindingsTransformer twt = network.getTwoWindingsTransformer(id);
            if (twt == null) {
                throw new AmplException("Invalid two windings transformer id '" + id + "'");
            }
            PhaseTapChanger ptc = twt.getPhaseTapChanger();
            ptc.setTapPosition(ptc.getLowTapPosition() + tap - 1);
        }

        return null;
    }

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

}