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(); }