- final boolean actualDoTransform = doTransform;
- final MathTransform actualTransform = transform;
- Simantics.getSession().syncRequest(new Write() {
-
- @Override
- public void perform(WriteGraph graph) throws DatabaseException {
- graph.markUndoPoint();
-
- DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
-
- Collection<Resource> vertices = graph.syncRequest(new ObjectsWithType(model.getParentDiagram(), Layer0.getInstance(graph).ConsistsOf, DistrictNetworkResource.getInstance(graph).Vertex));
- List<ResourceVertex> vv = new ArrayList<>(vertices.size());
- for (Resource vertex : vertices) {
- double[] existingCoords = graph.getRelatedValue2(vertex, DiagramResource.getInstance(graph).HasLocation, Bindings.DOUBLE_ARRAY);
- vv.add(new ResourceVertex(vertex, existingCoords));
- }
-
- for (int k = 1; k < rows.size(); k++) {
- CSVRecord row = rows.get(k);
-
- String mappingValue = row.get(mappingColumn);
-
- try {
- if (model.isVertexImport()) {
- String xCoords = row.get(xCoordColumnIndex);
- String yCoords = row.get(yCoordColumnIndex);
- double xCoord = Double.parseDouble(xCoords);
- double yCoord = Double.parseDouble(yCoords);
-
- double z = 0;
- if (zCoordColumnIndex != -1) {
- String zs = row.get(zCoordColumnIndex);
-
- if (!zs.isEmpty()) {
- try {
- z = Double.parseDouble(zs);
- } catch (NumberFormatException e) {
- throw new DatabaseException(e);
- }
- }
- }
-
- double[] coords;
- if (actualDoTransform) {
- DirectPosition2D targetPos = new DirectPosition2D();
- DirectPosition2D sourcePos = new DirectPosition2D(xCoord, yCoord);
- DirectPosition res = actualTransform.transform(sourcePos, targetPos);
- coords = res.getCoordinate();
- } else {
- coords = new double[] { xCoord, yCoord };
- }
- Resource vertex = DistrictNetworkUtil.createVertex(graph, model.getParentDiagram(), coords, model.getComponentMappings().get(mappingValue));
-
- writeStringValue(graph, row, idColumn, vertex, DN.HasId);
-
- graph.claimLiteral(vertex, DN.Vertex_HasElevation, z, Bindings.DOUBLE);
-
- writeValue(graph, row, supplyTempColumnIndex, vertex, DN.Vertex_HasSupplyTemperature);
- writeValue(graph, row, returnTempColumnIndex, vertex, DN.Vertex_HasReturnTemperature);
- writeValue(graph, row, supplyPressureColumnIndex, vertex, DN.Vertex_HasSupplyPressure);
- writeValue(graph, row, returnPressureColumnIndex, vertex, DN.Vertex_HasReturnPressure);
- writeValue(graph, row, dpIndex, vertex, DN.Vertex_HasDeltaPressure);
- writeValue(graph, row, dtIndex, vertex, DN.Vertex_HasDeltaTemperature);
- writeValue(graph, row, heatPowerIndex, vertex, DN.Vertex_HasHeatPower);
- writeValue(graph, row, valvePositionIndex, vertex, DN.Vertex_HasValvePosition);
- writeValue(graph, row, nominalHeadMIndex, vertex, DN.Vertex_HasNominalHeadM);
- writeValue(graph, row, nominalHeadBIndex, vertex, DN.Vertex_HasNominalHeadB);
- writeValue(graph, row, nominalFlowIndex, vertex, DN.Vertex_HasNominalFlow);
- writeValue(graph, row, maximumHeadMIndex, vertex, DN.Vertex_HasMaximumHeadM);
- writeValue(graph, row, heatLoadDsIndex, vertex, DN.Vertex_HasHeatLoadDs);
- writeValue(graph, row, massFlowIndex, vertex, DN.Vertex_HasMassFlow);
- writeValue(graph, row, volFlowIndex, vertex, DN.Vertex_HasVolFlow);
- writeValue(graph, row, velocityIndex, vertex, DN.Vertex_HasVelocity);
- writeValue(graph, row, flowAreaIndex, vertex, DN.Vertex_HasFlowArea);
- writeValue(graph, row, nominalPressureLossIndex, vertex, DN.Vertex_HasNominalPressureLoss);
-
- } else {
- String startXCoords = row.get(startXCoordColumnIndex);
- String startYCoords = row.get(startYCoordColumnIndex);
- String endXCoords = row.get(endXCoordColumnIndex);
- String endYCoords = row.get(endYCoordColumnIndex);
-
- double startXCoord = Double.parseDouble(startXCoords); // make negative
- double startYCoord = Double.parseDouble(startYCoords);
-
- double endXCoord = Double.parseDouble(endXCoords); // make negative
- double endYCoord = Double.parseDouble(endYCoords);
-
- double[] startCoords;
- double[] endCoords;
- if (actualDoTransform) {
- DirectPosition2D startTargetPos = new DirectPosition2D();
- DirectPosition2D startSourcePos = new DirectPosition2D(startXCoord, startYCoord);
- DirectPosition startRes = actualTransform.transform(startSourcePos, startTargetPos);
- startCoords = startRes.getCoordinate();
-
- DirectPosition2D endTargetPos = new DirectPosition2D();
- DirectPosition2D endSourcePos = new DirectPosition2D(endXCoord, endYCoord);
- DirectPosition endRes = actualTransform.transform(endSourcePos, endTargetPos);
- endCoords = endRes.getCoordinate();
- } else {
- startCoords = new double[] { startXCoord , startYCoord };
- endCoords = new double[] { endXCoord , endYCoord };
- }