private void writeNodeBreakerTopology(VoltageLevel vl, NetworkXmlWriterContext context) throws XMLStreamException { context.getWriter().writeStartElement(IIDM_URI, NODE_BREAKER_TOPOLOGY_ELEMENT_NAME); context.getWriter().writeAttribute("nodeCount", Integer.toString(vl.getNodeBreakerView().getNodeCount())); for (BusbarSection bs : vl.getNodeBreakerView().getBusbarSections()) { BusbarSectionXml.INSTANCE.write(bs, null, context); } for (Switch sw : vl.getNodeBreakerView().getSwitches()) { NodeBreakerViewSwitchXml.INSTANCE.write(sw, vl, context); } writeNodeBreakerTopologyInternalConnections(vl, context); context.getWriter().writeEndElement(); }
/** * Creates a standard connection point from a bus bar section, * with a disconnector and a breaker. * * @param bb Bus bar section to connect to * @return Node index of the connection point */ public static int newStandardConnection(BusbarSection bb) { Objects.requireNonNull(bb, "Busbar section is null."); int n = bb.getTerminal().getNodeBreakerView().getNode(); VoltageLevel.NodeBreakerView topo = bb.getTerminal().getVoltageLevel().getNodeBreakerView(); int oldCount = topo.getNodeCount(); topo.setNodeCount(oldCount + 2); topo.newDisconnector() .setId(String.format("disconnector %s-%d", bb.getId(), oldCount)) .setNode1(n) .setNode2(oldCount) .add(); topo.newBreaker() .setId(String.format("breaker %s-%d", bb.getId(), oldCount + 1)) .setNode1(oldCount) .setNode2(oldCount + 1) .add(); return oldCount + 1; } }