Skip to content

Commit

Permalink
Merge branch 'master' into move_datasource_to_commons
Browse files Browse the repository at this point in the history
  • Loading branch information
mathbagu committed Jul 27, 2017
2 parents 2ecefa6 + 4864493 commit 818baad
Show file tree
Hide file tree
Showing 3 changed files with 360 additions and 228 deletions.
35 changes: 22 additions & 13 deletions iidm-ddb/iidm-ddb-eurostag-import-export/pom.xml
Expand Up @@ -42,18 +42,14 @@
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
</dependency>
<dependency>
<groupId>eu.itesla_project</groupId>
<artifactId>commons</artifactId>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
</dependency>
<dependency>
<groupId>net.sf.supercsv</groupId>
<artifactId>super-csv</artifactId>
</dependency>
<dependency>
<groupId>eu.itesla_project</groupId>
<artifactId>commons</artifactId>
</dependency>
<dependency>
<groupId>eu.itesla_project</groupId>
<artifactId>iidm-api</artifactId>
Expand Down Expand Up @@ -84,6 +80,23 @@
<type>jar</type>
</dependency>

<dependency>
<groupId>net.sf.supercsv</groupId>
<artifactId>super-csv</artifactId>
</dependency>

<!-- Test dependencies -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.jimfs</groupId>
<artifactId>jimfs</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>eu.itesla_project</groupId>
<artifactId>iidm-impl</artifactId>
Expand All @@ -96,14 +109,10 @@
<version>${ipstcore.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.jimfs</groupId>
<artifactId>jimfs</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
Expand Down
Expand Up @@ -292,6 +292,9 @@ public void feedDDBWithEurostagData(Path inputFile,
case "M2DS":
dbId = populateDDB_M1M2(zone, dicoMap, ddbmanager, eurostagSim);
break;
case "M21":
dbId = populateDDB_M21(zone, dicoMap, ddbmanager, eurostagSim);
break;
case "R":
dbId = populateDDB_R(zone, dicoMap, ddbmanager, eurostagSim, regsMapping);
break;
Expand Down Expand Up @@ -396,6 +399,100 @@ public String populateDDB_M1M2(EurostagRecord zone, Map<String, String> amap,

return cimId;
}
public String populateDDB_M21(EurostagRecord zone, Map<String, String> amap,
DDBManager ddbmanager, SimulatorInst eurostagSim) {
// here we assume that the simulator with the required version already
// exists
if (eurostagSim == null) {
throw new RuntimeException("Eurostag simulator could not be null");
}

if (!"M21".equals(zone.getTypeName())) {
throw new RuntimeException("not expected type M21: " + zone);
}

log.debug("-Creating DDB component {} ", zone.getTypeName());
String mName = (String) zone.getData().get("machine.name");
String cimId = amap.get(mName);
if ((cimId == null) || ("".equals(cimId))) {
throw new RuntimeException(mName + ": cimId not found in mapping.");
}

if (!equipmentsTypeMap.contains(cimId)){
equipmentsTypeMap.put(cimId, zone.getTypeName());
}

Equipment eq1 = ddbmanager.findEquipment(cimId);
if ((eq1!=null) && (updateFlag==true)) {
Set<String> connectedInternals=getConnectedInternals(cimId,ddbmanager);

//remove this equipment graph
log.info("- removing existing equipment {}", cimId);
removeEquipment(cimId,ddbmanager);
eq1=null;

for (String internalId: connectedInternals) {
log.info("- removing existing connected internal {}", internalId);
removeInternal(internalId,ddbmanager);
}

}

String mtc_ddbid = MTC_PREFIX_NAME + zone.getKeyName();
ModelTemplateContainer mtc1 = ddbmanager
.findModelTemplateContainer(mtc_ddbid);
if (mtc1 == null) {
throw new RuntimeException(" template container " + mtc_ddbid
+ " not defined! ");
}

ParametersContainer pc1 = ddbmanager.findParametersContainer(mName);
if (pc1 == null) {
log.debug("-- creating Parameters Container " + mName +" plus parameters.");
pc1 = new ParametersContainer(mName);
Parameters pars = new Parameters(eurostagSim);
for (String varName : zone.getData().keySet()) {
String varFType = DtaParser.getVarFType(zone.typeName, varName);
Object varValue = zone.getData().get(varName);
if (log.isDebugEnabled()) {
log.trace("----" + varName + " = " + varValue + ", " + varFType);
}
if (varFType.startsWith("F")) {
if (varValue != null) {
pars.addParameter(new ParameterFloat(varName,
new Float((Double) varValue)));
} else {
pars.addParameter(new ParameterFloat(varName, null));
}
} else if (varFType.startsWith("A")) {
pars.addParameter(new ParameterString(varName,
(String) varValue));
} else {
log.error(varFType + " not handled");
}
}
pc1.getParameters().add(pars);
pc1 = ddbmanager.save(pc1);
} else {
log.debug("-- Parameters Container container " + mName
+ " already defined, id: " + pc1.getId());
// ddbmanager.delete(pc1);
}

if (eq1 == null) {
log.info("-- creating Equipment " + cimId + "; eurostag name is: "
+ mName);
eq1 = new Equipment(cimId);
eq1.setModelContainer(mtc1);
eq1.setParametersContainer(pc1);
eq1 = ddbmanager.save(eq1);
} else {
log.warn("-- Equipment " + cimId + " already defined, id: "
+ eq1.getId());
}

return cimId;
}
private String populateDDB_R(EurostagRecord zone, Map<String, String> amap,
DDBManager ddbmanager, SimulatorInst eurostagSim, Map<String,Path> regsMapping) {

Expand Down Expand Up @@ -491,6 +588,12 @@ private String populateDDB_R(EurostagRecord zone, Map<String, String> amap,
pars.setDefParamSetNum(paramSetNum);
for (String varName : zone.getData().keySet()) {
String varFType = DtaParser.getVarFType(zone.typeName, varName);
if (varFType == null) {
//this is not a variable belonging to R; it's a modificated parameter
//by default insert it into the db as an int (ref. eurostag doc. 09_Dynamyc_Data_File.pdf, Macroblocks section)
log.debug("---- varName "+ varName + " is not in the list associated component " +zone.typeName +"; handle it as an additional modification parameter, with a float type");
varFType = "F8";
}
Object varValue = zone.getData().get(varName);
if (log.isDebugEnabled()) {
log.trace("----" + varName + " = " + varValue + ", " + varFType);
Expand Down Expand Up @@ -797,6 +900,9 @@ public void dumpDtaFile(Path workingDir, String fileName,
}
}

//adding svc to the equipment list
network.getStaticVarCompensators().forEach(svc -> cimIds.add(svc.getId()));

// writing a .dta
DtaParser.dumpHeader(new Date(), eurostagVersion, dtaOutStream);

Expand Down Expand Up @@ -1071,6 +1177,8 @@ public void dumpData(Equipment inst, SimulatorInst simInst, DDBManager ddbmanage
case "M2S":
case "M2DS": zoneTypeName="M2";
break;
case "M21": zoneTypeName="M21";
break;
case "R": zoneTypeName="R";
break;

Expand Down

0 comments on commit 818baad

Please sign in to comment.