ELNPanelTranslator.java 32.04 KiB
/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
*
* ludovic.apvrille AT enst.fr
*
* This software is a computer program whose purpose is to allow the
* edition of TURTLE analysis, design and deployment diagrams, to
* allow the generation of RT-LOTOS or Java code from this diagram,
* and at last to allow the analysis of formal validation traces
* obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
* from INRIA Rhone-Alpes.
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited
* liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
*
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*/
package ui;
import ui.eln.*;
import ui.eln.sca_eln.*;
import ui.eln.sca_eln_sca_de.*;
import ui.eln.sca_eln_sca_tdf.*;
import java.util.*;
import elntranslator.*;
/**
* Class ELNPanelTranslator
* Translation of semantics of ELN Diagrams
* Creation: 24/07/2018
* @version 1.0 24/07/2018
* @author Irina Kit Yan LEE
*/
public class ELNPanelTranslator {
private List<TGComponent> tgcComponents;
private List<ELNTComponent> elnComponents;
private List<ELNTConnector> elnConnectors;
public ELNPanelTranslator(ELNDiagramPanel _elnDiagramPanel) {
tgcComponents = _elnDiagramPanel.getComponentList();
elnComponents = new LinkedList<ELNTComponent>();
elnConnectors = new LinkedList<ELNTConnector>();
MakeListOfComponent(_elnDiagramPanel);
}
private void MakeListOfComponent(ELNDiagramPanel elnDiagramPanel) {
Map<TGComponent, ELNTComponent> elnMap = new HashMap<TGComponent, ELNTComponent>();
TGComponent tgc;
Iterator<TGComponent> iterator1 = tgcComponents.listIterator();
Iterator<TGComponent> iterator2 = tgcComponents.listIterator();
Iterator<TGComponent> iterator3 = tgcComponents.listIterator();
List<TGComponent> list = new ArrayList<TGComponent>();
while (iterator1.hasNext()) {
tgc = iterator1.next();
if (!(tgc instanceof TGConnector)) {
list.add(tgc);
}
}
while (iterator2.hasNext()) {
tgc = iterator2.next();
if (tgc instanceof TGConnector) {
if (!(((TGConnector) tgc).getTGConnectingPointP1().getFather() instanceof ELNMidPortTerminal || ((TGConnector) tgc).getTGConnectingPointP2().getFather() instanceof ELNMidPortTerminal)) {
list.add(tgc);
}
}
}
while (iterator3.hasNext()) {
tgc = iterator3.next();
if (tgc instanceof TGConnector) {
if (((TGConnector) tgc).getTGConnectingPointP1().getFather() instanceof ELNMidPortTerminal || ((TGConnector) tgc).getTGConnectingPointP2().getFather() instanceof ELNMidPortTerminal) {
list.add(tgc);
}
}
}
for (TGComponent dp : list) {
if (dp instanceof ELNCluster) {
ELNCluster cluster = (ELNCluster) dp;
String clusterName = cluster.getValue();
ELNTCluster elnCluster = new ELNTCluster(clusterName);
List<ELNClusterTerminal> clusterTerminals = cluster.getAllClusterTerminal();
for (int i = 0; i < clusterTerminals.size(); i++) {
ELNClusterTerminal clusterTerminal = clusterTerminals.get(i);
String termName = clusterTerminal.getValue();
ELNTClusterTerminal elnClusterTerminal = new ELNTClusterTerminal(termName, elnCluster);
elnMap.put(clusterTerminal, elnClusterTerminal);
elnCluster.addClusterTerminal(elnClusterTerminal);
elnComponents.add(elnClusterTerminal);
}
List<ELNClusterPortDE> clusterPortsDE = cluster.getAllClusterPortDE();
for (int i = 0; i < clusterPortsDE.size(); i++) {
ELNClusterPortDE clusterPortDE = clusterPortsDE.get(i);
String portName = clusterPortDE.getValue();
String type = clusterPortDE.getPortType();
String origin = clusterPortDE.getOrigin();
ELNTClusterPortDE elnClusterPortDE = new ELNTClusterPortDE(portName, type, origin, elnCluster);
elnMap.put(clusterPortDE, elnClusterPortDE);
elnCluster.addClusterPortDE(elnClusterPortDE);
elnComponents.add(elnClusterPortDE);
}
List<ELNClusterPortTDF> clusterPortsTDF = cluster.getAllClusterPortTDF();
for (int i = 0; i < clusterPortsTDF.size(); i++) {
ELNClusterPortTDF clusterPortTDF = clusterPortsTDF.get(i);
String portName = clusterPortTDF.getValue();
String type = clusterPortTDF.getPortType();
String origin = clusterPortTDF.getOrigin();
ELNTClusterPortTDF elnClusterPortTDF = new ELNTClusterPortTDF(portName, type, origin, elnCluster);
elnMap.put(clusterPortTDF, elnClusterPortTDF);
elnCluster.addClusterPortTDF(elnClusterPortTDF);
elnComponents.add(elnClusterPortTDF);
}
List<ELNModule> modules = cluster.getAllModule();
for (int i = 0; i < modules.size(); i++) {
ELNModule module = modules.get(i);
String moduleName = module.getValue();
ELNTModule elnModule = new ELNTModule(moduleName, elnCluster);
List<ELNComponentCapacitor> capacitors = module.getAllComponentCapacitor();
for (int j = 0; j < capacitors.size(); j++) {
ELNComponentCapacitor capacitor = capacitors.get(j);
String name = capacitor.getValue();
double val = capacitor.getVal();
double q0 = capacitor.getQ0();
String unit0 = capacitor.getUnit0();
String unit1 = capacitor.getUnit1();
ELNConnectingPoint cp0 = (ELNConnectingPoint) capacitor.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) capacitor.getTGConnectingPointAtIndex(1);
ELNTComponentCapacitor elnCapacitor = new ELNTComponentCapacitor(name, val, q0, unit0, unit1, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnCapacitor);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnCapacitor);
elnCapacitor.addConnectingPoint(elncp0);
elnCapacitor.addConnectingPoint(elncp1);
elnMap.put(capacitor, elnCapacitor);
elnModule.addCapacitor(elnCapacitor);
elnComponents.add(elnCapacitor);
}
List<ELNComponentCurrentSinkDE> DE_isinks = module.getAllComponentCurrentSinkDE();
for (int j = 0; j < DE_isinks.size(); j++) {
ELNComponentCurrentSinkDE DE_isink = DE_isinks.get(j);
String name = DE_isink.getValue();
double scale = DE_isink.getScale();
ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_isink.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_isink.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_isink.getTGConnectingPointAtIndex(2);
ELNTComponentCurrentSinkDE elnDE_isink = new ELNTComponentCurrentSinkDE(name, scale,elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_isink);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_isink);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_isink);
elnDE_isink.addConnectingPoint(elncp0);
elnDE_isink.addConnectingPoint(elncp1);
elnDE_isink.addConnectingPoint(elncp2);
elnMap.put(DE_isink, elnDE_isink);
elnModule.addDE_isink(elnDE_isink);
elnComponents.add(elnDE_isink);
}
List<ELNComponentCurrentSourceDE> DE_isources = module.getAllComponentCurrentSourceDE();
for (int j = 0; j < DE_isources.size(); j++) {
ELNComponentCurrentSourceDE DE_isource = DE_isources.get(j);
String name = DE_isource.getValue();
double scale = DE_isource.getScale();
ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_isource.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_isource.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_isource.getTGConnectingPointAtIndex(2);
ELNTComponentCurrentSourceDE elnDE_isource = new ELNTComponentCurrentSourceDE(name, scale, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_isource);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_isource);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_isource);
elnDE_isource.addConnectingPoint(elncp0);
elnDE_isource.addConnectingPoint(elncp1);
elnDE_isource.addConnectingPoint(elncp2);
elnMap.put(DE_isource, elnDE_isource);
elnModule.addDE_isource(elnDE_isource);
elnComponents.add(elnDE_isource);
}
List<ELNComponentCurrentSinkTDF> TDF_isinks = module.getAllComponentCurrentSinkTDF();
for (int j = 0; j < TDF_isinks.size(); j++) {
ELNComponentCurrentSinkTDF TDF_isink = TDF_isinks.get(j);
String name = TDF_isink.getValue();
double scale = TDF_isink.getScale();
ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_isink.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_isink.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_isink.getTGConnectingPointAtIndex(2);
ELNTComponentCurrentSinkTDF elnTDF_isink = new ELNTComponentCurrentSinkTDF(name, scale,elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_isink);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_isink);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_isink);
elnTDF_isink.addConnectingPoint(elncp0);
elnTDF_isink.addConnectingPoint(elncp1);
elnTDF_isink.addConnectingPoint(elncp2);
elnMap.put(TDF_isink, elnTDF_isink);
elnModule.addTDF_isink(elnTDF_isink);
elnComponents.add(elnTDF_isink);
}
List<ELNComponentCurrentSourceTDF> TDF_isources = module.getAllComponentCurrentSourceTDF();
for (int j = 0; j < TDF_isources.size(); j++) {
ELNComponentCurrentSourceTDF TDF_isource = TDF_isources.get(j);
String name = TDF_isource.getValue();
double scale = TDF_isource.getScale();
ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_isource.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_isource.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_isource.getTGConnectingPointAtIndex(2);
ELNTComponentCurrentSourceTDF elnTDF_isource = new ELNTComponentCurrentSourceTDF(name, scale, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_isource);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_isource);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_isource);
elnTDF_isource.addConnectingPoint(elncp0);
elnTDF_isource.addConnectingPoint(elncp1);
elnTDF_isource.addConnectingPoint(elncp2);
elnMap.put(TDF_isource, elnTDF_isource);
elnModule.addTDF_isource(elnTDF_isource);
elnComponents.add(elnTDF_isource);
}
List<ELNComponentIdealTransformer> idealTransformers = module.getAllComponentIdealTransformer();
for (int j = 0; j < idealTransformers.size(); j++) {
ELNComponentIdealTransformer idealTransformer = idealTransformers.get(j);
String name = idealTransformer.getValue();
double ratio = idealTransformer.getRatio();
ELNConnectingPoint cp0 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(2);
ELNConnectingPoint cp3 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(3);
ELNTComponentIdealTransformer elnIdealTransformer = new ELNTComponentIdealTransformer(name, ratio, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnIdealTransformer);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnIdealTransformer);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnIdealTransformer);
ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnIdealTransformer);
elnIdealTransformer.addConnectingPoint(elncp0);
elnIdealTransformer.addConnectingPoint(elncp1);
elnIdealTransformer.addConnectingPoint(elncp2);
elnIdealTransformer.addConnectingPoint(elncp3);
elnMap.put(idealTransformer, elnIdealTransformer);
elnModule.addIdealTransformer(elnIdealTransformer);
elnComponents.add(elnIdealTransformer);
}
List<ELNComponentIndependentCurrentSource> isources = module.getAllComponentIndependentCurrentSource();
for (int j = 0; j < isources.size(); j++) {
ELNComponentIndependentCurrentSource isource = isources.get(j);
String name = isource.getValue();
double initValue = isource.getInitValue();
double offset = isource.getOffset();
double amplitude = isource.getAmplitude();
double frequency = isource.getFrequency();
double phase = isource.getPhase();
double acAmplitude = isource.getAcAmplitude();
double acPhase = isource.getAcPhase();
double acNoiseAmpliture = isource.getAcNoiseAmplitude();
String delay = isource.getDelay();
String unit0 = isource.getUnit0();
ELNConnectingPoint cp0 = (ELNConnectingPoint) isource.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) isource.getTGConnectingPointAtIndex(1);
ELNTComponentIndependentCurrentSource elnISource = new ELNTComponentIndependentCurrentSource(name, initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmpliture, delay, unit0, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnISource);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnISource);
elnISource.addConnectingPoint(elncp0);
elnISource.addConnectingPoint(elncp1);
elnMap.put(isource, elnISource);
elnModule.addIsource(elnISource);
elnComponents.add(elnISource);
}
List<ELNComponentIndependentVoltageSource> vsources = module.getAllComponentIndependentVoltageSource();
for (int j = 0; j < vsources.size(); j++) {
ELNComponentIndependentVoltageSource vsource = vsources.get(j);
String name = vsource.getValue();
double initValue = vsource.getInitValue();
double offset = vsource.getOffset();
double amplitude = vsource.getAmplitude();
double frequency = vsource.getFrequency();
double phase = vsource.getPhase();
double acAmplitude = vsource.getAcAmplitude();
double acPhase = vsource.getAcPhase();
double acNoiseAmpliture = vsource.getAcNoiseAmplitude();
String delay = vsource.getDelay();
String unit0 = vsource.getUnit0();
ELNConnectingPoint cp0 = (ELNConnectingPoint) vsource.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) vsource.getTGConnectingPointAtIndex(1);
ELNTComponentIndependentVoltageSource elnVSource = new ELNTComponentIndependentVoltageSource(name, initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmpliture, delay, unit0, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnVSource);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnVSource);
elnVSource.addConnectingPoint(elncp0);
elnVSource.addConnectingPoint(elncp1);
elnMap.put(vsource, elnVSource);
elnModule.addVsource(elnVSource);
elnComponents.add(elnVSource);
}
List<ELNComponentInductor> inductors = module.getAllComponentInductor();
for (int j = 0; j < inductors.size(); j++) {
ELNComponentInductor inductor = inductors.get(j);
String name = inductor.getValue();
double val = inductor.getVal();
double phi0 = inductor.getPhi0();
String unit0 = inductor.getUnit0();
String unit1 = inductor.getUnit1();
ELNConnectingPoint cp0 = (ELNConnectingPoint) inductor.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) inductor.getTGConnectingPointAtIndex(1);
ELNTComponentInductor elnInductor = new ELNTComponentInductor(name, val, phi0, unit0, unit1, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnInductor);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnInductor);
elnInductor.addConnectingPoint(elncp0);
elnInductor.addConnectingPoint(elncp1);
elnMap.put(inductor, elnInductor);
elnModule.addInductor(elnInductor);
elnComponents.add(elnInductor);
}
List<ELNNodeRef> nodeRefs = module.getAllComponentNodeRef();
for (int j = 0; j < nodeRefs.size(); j++) {
ELNNodeRef nodeRef = nodeRefs.get(j);
String name = nodeRef.getValue();
ELNTNodeRef elnNodeRef = new ELNTNodeRef(name, elnModule);
elnMap.put(nodeRef, elnNodeRef);
elnModule.addNodeRef(elnNodeRef);
elnComponents.add(elnNodeRef);
}
List<ELNComponentResistor> resistors = module.getAllComponentResistor();
for (int j = 0; j < resistors.size(); j++) {
ELNComponentResistor resistor = resistors.get(j);
String name = resistor.getValue();
double val = resistor.getVal();
String unit = resistor.getUnit();
ELNConnectingPoint cp0 = (ELNConnectingPoint) resistor.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) resistor.getTGConnectingPointAtIndex(1);
ELNTComponentResistor elnResistor = new ELNTComponentResistor(name, val, unit, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnResistor);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnResistor);
elnResistor.addConnectingPoint(elncp0);
elnResistor.addConnectingPoint(elncp1);
elnMap.put(resistor, elnResistor);
elnModule.addResistor(elnResistor);
elnComponents.add(elnResistor);
}
List<ELNComponentTransmissionLine> transmissionLines = module.getAllComponentTransmissionLine();
for (int j = 0; j < transmissionLines.size(); j++) {
ELNComponentTransmissionLine transmissionLine = transmissionLines.get(j);
String name = transmissionLine.getValue();
double z0 = transmissionLine.getZ0();
double delta0 = transmissionLine.getDelta0();
String delay = transmissionLine.getDelay();
String unit0 = transmissionLine.getUnit0();
String unit2 = transmissionLine.getUnit2();
ELNConnectingPoint cp0 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(2);
ELNConnectingPoint cp3 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(3);
ELNTComponentTransmissionLine elnTransmissionLine = new ELNTComponentTransmissionLine(name, z0, delta0, delay, unit0, unit2, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTransmissionLine);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTransmissionLine);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTransmissionLine);
ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnTransmissionLine);
elnTransmissionLine.addConnectingPoint(elncp0);
elnTransmissionLine.addConnectingPoint(elncp1);
elnTransmissionLine.addConnectingPoint(elncp2);
elnTransmissionLine.addConnectingPoint(elncp3);
elnMap.put(transmissionLine, elnTransmissionLine);
elnModule.addTransmissionLine(elnTransmissionLine);
elnComponents.add(elnTransmissionLine);
}
List<ELNComponentVoltageControlledCurrentSource> vccss = module.getAllComponentVoltageControlledCurrentSource();
for (int j = 0; j < vccss.size(); j++) {
ELNComponentVoltageControlledCurrentSource vccs = vccss.get(j);
String name = vccs.getValue();
double val = vccs.getVal();
String unit = vccs.getUnit();
ELNConnectingPoint cp0 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(2);
ELNConnectingPoint cp3 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(3);
ELNTComponentVoltageControlledCurrentSource elnVCCS = new ELNTComponentVoltageControlledCurrentSource(name, val, unit, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnVCCS);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnVCCS);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnVCCS);
ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnVCCS);
elnVCCS.addConnectingPoint(elncp0);
elnVCCS.addConnectingPoint(elncp1);
elnVCCS.addConnectingPoint(elncp2);
elnVCCS.addConnectingPoint(elncp3);
elnMap.put(vccs, elnVCCS);
elnModule.addVccs(elnVCCS);
elnComponents.add(elnVCCS);
}
List<ELNComponentVoltageControlledVoltageSource> vcvss = module.getAllComponentVoltageControlledVoltageSource();
for (int j = 0; j < vcvss.size(); j++) {
ELNComponentVoltageControlledVoltageSource vcvs = vcvss.get(j);
String name = vcvs.getValue();
double val = vcvs.getVal();
ELNConnectingPoint cp0 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(2);
ELNConnectingPoint cp3 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(3);
ELNTComponentVoltageControlledVoltageSource elnVCVS = new ELNTComponentVoltageControlledVoltageSource(name, val, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnVCVS);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnVCVS);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnVCVS);
ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnVCVS);
elnVCVS.addConnectingPoint(elncp0);
elnVCVS.addConnectingPoint(elncp1);
elnVCVS.addConnectingPoint(elncp2);
elnVCVS.addConnectingPoint(elncp3);
elnMap.put(vcvs, elnVCVS);
elnModule.addVcvs(elnVCVS);
elnComponents.add(elnVCVS);
}
List<ELNComponentVoltageSinkDE> DE_vsinks = module.getAllComponentVoltageSinkDE();
for (int j = 0; j < DE_vsinks.size(); j++) {
ELNComponentVoltageSinkDE DE_vsink = DE_vsinks.get(j);
String name = DE_vsink.getValue();
double scale = DE_vsink.getScale();
ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_vsink.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_vsink.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_vsink.getTGConnectingPointAtIndex(2);
ELNTComponentVoltageSinkDE elnDE_vsink = new ELNTComponentVoltageSinkDE(name, scale, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_vsink);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_vsink);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_vsink);
elnDE_vsink.addConnectingPoint(elncp0);
elnDE_vsink.addConnectingPoint(elncp1);
elnDE_vsink.addConnectingPoint(elncp2);
elnMap.put(DE_vsink, elnDE_vsink);
elnModule.addDE_vsink(elnDE_vsink);
elnComponents.add(elnDE_vsink);
}
List<ELNComponentVoltageSourceDE> DE_vsources = module.getAllComponentVoltageSourceDE();
for (int j = 0; j < DE_vsources.size(); j++) {
ELNComponentVoltageSourceDE DE_vsource = DE_vsources.get(j);
String name = DE_vsource.getValue();
double scale = DE_vsource.getScale();
ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_vsource.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_vsource.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_vsource.getTGConnectingPointAtIndex(2);
ELNTComponentVoltageSourceDE elnDE_vsource = new ELNTComponentVoltageSourceDE(name, scale, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_vsource);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_vsource);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_vsource);
elnDE_vsource.addConnectingPoint(elncp0);
elnDE_vsource.addConnectingPoint(elncp1);
elnDE_vsource.addConnectingPoint(elncp2);
elnMap.put(DE_vsource, elnDE_vsource);
elnModule.addDE_vsource(elnDE_vsource);
elnComponents.add(elnDE_vsource);
}
List<ELNComponentVoltageSinkTDF> TDF_vsinks = module.getAllComponentVoltageSinkTDF();
for (int j = 0; j < TDF_vsinks.size(); j++) {
ELNComponentVoltageSinkTDF TDF_vsink = TDF_vsinks.get(j);
String name = TDF_vsink.getValue();
double scale = TDF_vsink.getScale();
ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_vsink.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_vsink.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_vsink.getTGConnectingPointAtIndex(2);
ELNTComponentVoltageSinkTDF elnTDF_vsink = new ELNTComponentVoltageSinkTDF(name, scale, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_vsink);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_vsink);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_vsink);
elnTDF_vsink.addConnectingPoint(elncp0);
elnTDF_vsink.addConnectingPoint(elncp1);
elnTDF_vsink.addConnectingPoint(elncp2);
elnMap.put(TDF_vsink, elnTDF_vsink);
elnModule.addTDF_vsink(elnTDF_vsink);
elnComponents.add(elnTDF_vsink);
}
List<ELNComponentVoltageSourceTDF> TDF_vsources = module.getAllComponentVoltageSourceTDF();
for (int j = 0; j < TDF_vsources.size(); j++) {
ELNComponentVoltageSourceTDF TDF_vsource = TDF_vsources.get(j);
String name = TDF_vsource.getValue();
double scale = TDF_vsource.getScale();
ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_vsource.getTGConnectingPointAtIndex(0);
ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_vsource.getTGConnectingPointAtIndex(1);
ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_vsource.getTGConnectingPointAtIndex(2);
ELNTComponentVoltageSourceTDF elnTDF_vsource = new ELNTComponentVoltageSourceTDF(name, scale, elnModule);
ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_vsource);
ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_vsource);
ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_vsource);
elnTDF_vsource.addConnectingPoint(elncp0);
elnTDF_vsource.addConnectingPoint(elncp1);
elnTDF_vsource.addConnectingPoint(elncp2);
elnMap.put(TDF_vsource, elnTDF_vsource);
elnModule.addTDF_vsource(elnTDF_vsource);
elnComponents.add(elnTDF_vsource);
}
List<ELNModuleTerminal> moduleTerminals = module.getAllModuleTerminal();
for (int j = 0; j < moduleTerminals.size(); j++) {
ELNModuleTerminal moduleTerminal = moduleTerminals.get(j);
String name = moduleTerminal.getValue();
ELNTModuleTerminal elnModuleTerminal = new ELNTModuleTerminal(name, elnModule);
elnMap.put(moduleTerminal, elnModuleTerminal);
elnModule.addModuleTerminal(elnModuleTerminal);
elnComponents.add(elnModuleTerminal);
}
List<ELNModulePortDE> modulePortsDE = module.getAllModulePortDE();
for (int j = 0; j < modulePortsDE.size(); j++) {
ELNModulePortDE modulePortDE = modulePortsDE.get(j);
String portName = modulePortDE.getValue();
String type = modulePortDE.getPortType();
String origin = modulePortDE.getOrigin();
ELNTModulePortDE elnModulePortDE = new ELNTModulePortDE(portName, type, origin, elnModule);
elnMap.put(modulePortDE, elnModulePortDE);
elnModule.addModulePortDE(elnModulePortDE);
elnComponents.add(elnModulePortDE);
}
List<ELNModulePortTDF> modulePortsTDF = module.getAllModulePortTDF();
for (int j = 0; j < modulePortsTDF.size(); j++) {
ELNModulePortTDF modulePortTDF = modulePortsTDF.get(j);
String portName = modulePortTDF.getValue();
String type = modulePortTDF.getPortType();
String origin = modulePortTDF.getOrigin();
ELNTModulePortTDF elnModulePortTDF = new ELNTModulePortTDF(portName, type, origin, elnModule);
elnMap.put(modulePortTDF, elnModulePortTDF);
elnModule.addModulePortTDF(elnModulePortTDF);
elnComponents.add(elnModulePortTDF);
}
elnMap.put(module, elnModule);
elnCluster.addModule(elnModule);
elnComponents.add(elnModule);
}
elnMap.put(cluster, elnCluster);
elnComponents.add(elnCluster);
} else if (dp instanceof ELNConnector) {
ELNConnector connector = (ELNConnector) dp;
String name = connector.getValue();
ELNConnectingPoint connectingPoint1 = (ELNConnectingPoint) connector.get_p1();
ELNConnectingPoint connectingPoint2 = (ELNConnectingPoint) connector.get_p2();
String p1Name = connectingPoint1.getName();
String p2Name = connectingPoint2.getName();
TGComponent owner_p1 = elnDiagramPanel.getComponentToWhichBelongs(connectingPoint1);
TGComponent owner_p2 = elnDiagramPanel.getComponentToWhichBelongs(connectingPoint2);
ELNTComponent avowner_p1 = elnMap.get(owner_p1);
ELNTComponent avowner_p2 = elnMap.get(owner_p2);
ELNTConnectingPoint avConnectingPoint1 = new ELNTConnectingPoint(p1Name, avowner_p1);
ELNTConnectingPoint avConnectingPoint2 = new ELNTConnectingPoint(p2Name, avowner_p2);
ELNTConnector avconnector = new ELNTConnector(avConnectingPoint1, avConnectingPoint2, name);
List<ELNMidPortTerminal> midPortTerminals = connector.getAllMidPortTerminal();
for (int i = 0; i < midPortTerminals.size(); i++) {
ELNMidPortTerminal midPortTerminal = midPortTerminals.get(i);
ELNTMidPortTerminal elnMidPortTerminal = new ELNTMidPortTerminal(avconnector);
elnMap.put(midPortTerminal, elnMidPortTerminal);
avconnector.addMidPortTerminal(elnMidPortTerminal);
elnComponents.add(elnMidPortTerminal);
}
elnConnectors.add(avconnector);
}
}
}
public ELNSpecification getELNSpecification() {
return new ELNSpecification(elnComponents, elnConnectors);
}
}