protected static void writePhaseTapChanger(String name, PhaseTapChanger ptc, NetworkXmlWriterContext context) throws XMLStreamException {
context.getWriter().writeStartElement(IIDM_URI, name);
writeTapChanger(ptc, context.getWriter());
context.getWriter().writeAttribute("regulationMode", ptc.getRegulationMode().name());
if (ptc.getRegulationMode() != PhaseTapChanger.RegulationMode.FIXED_TAP || !Double.isNaN(ptc.getRegulationValue())) {
XmlUtil.writeDouble("regulationValue", ptc.getRegulationValue(), context.getWriter());
}
if (ptc.getRegulationMode() != PhaseTapChanger.RegulationMode.FIXED_TAP || ptc.isRegulating()) {
context.getWriter().writeAttribute(ATTR_REGULATING, Boolean.toString(ptc.isRegulating()));
}
if (ptc.getRegulationTerminal() != null) {
writeTerminalRef(ptc.getRegulationTerminal(), context, ELEM_TERMINAL_REF);
}
for (int p = ptc.getLowTapPosition(); p <= ptc.getHighTapPosition(); p++) {
PhaseTapChangerStep ptcs = ptc.getStep(p);
context.getWriter().writeEmptyElement(IIDM_URI, ELEM_STEP);
writeTapChangerStep(ptcs, context.getWriter());
XmlUtil.writeDouble("alpha", ptcs.getAlpha(), context.getWriter());
}
context.getWriter().writeEndElement();
}