TestDatabaseReader.java
/**
* Copyright (c) 2022, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* SPDX-License-Identifier: MPL-2.0
*/
package com.powsybl.powerfactory.db;
import com.powsybl.powerfactory.model.DataAttribute;
import com.powsybl.powerfactory.model.DataAttributeType;
import java.time.Instant;
import java.util.List;
/**
* @author Geoffroy Jamgotchian {@literal <geoffroy.jamgotchian at rte-france.com>}
*/
class TestDatabaseReader implements DatabaseReader {
@Override
public boolean isOk() {
return true;
}
@Override
public void read(String powerFactoryHome, String projectName, DataObjectBuilder builder) {
builder.createClass("IntPrj");
builder.createAttribute("IntPrj", DataAttribute.LOC_NAME, DataAttributeType.STRING.ordinal(), "");
builder.createAttribute("IntPrj", "pCase", DataAttributeType.OBJECT.ordinal(), "");
builder.createClass("IntPrjfolder");
builder.createAttribute("IntPrjfolder", DataAttribute.LOC_NAME, DataAttributeType.STRING.ordinal(), "");
builder.createClass("IntCase");
builder.createAttribute("IntCase", DataAttribute.LOC_NAME, DataAttributeType.STRING.ordinal(), "");
builder.createAttribute("IntCase", "iStudyTime", DataAttributeType.INTEGER64.ordinal(), "");
builder.createClass("ElmNet");
builder.createAttribute("ElmNet", DataAttribute.LOC_NAME, DataAttributeType.STRING.ordinal(), "");
builder.createAttribute("ElmNet", "aInt", DataAttributeType.INTEGER.ordinal(), "");
builder.createAttribute("ElmNet", "aInt64", DataAttributeType.INTEGER64.ordinal(), "");
builder.createAttribute("ElmNet", "aDouble", DataAttributeType.DOUBLE.ordinal(), "");
builder.createAttribute("ElmNet", "aObj", DataAttributeType.OBJECT.ordinal(), "");
builder.createAttribute("ElmNet", "aIntVec", DataAttributeType.INTEGER_VECTOR.ordinal(), "");
builder.createAttribute("ElmNet", "aInt64Vec", DataAttributeType.INTEGER64_VECTOR.ordinal(), "");
builder.createAttribute("ElmNet", "aDoubleVec", DataAttributeType.DOUBLE_VECTOR.ordinal(), "");
builder.createAttribute("ElmNet", "aStrVec", DataAttributeType.STRING_VECTOR.ordinal(), "");
builder.createAttribute("ElmNet", "aObjVec", DataAttributeType.OBJECT_VECTOR.ordinal(), "");
builder.createAttribute("ElmNet", "aMat", DataAttributeType.DOUBLE_MATRIX.ordinal(), "");
builder.createClass("ElmSubstat");
builder.createObject(0L, "IntPrj");
builder.setStringAttributeValue(0L, DataAttribute.LOC_NAME, "TestProject");
builder.setObjectAttributeValue(0L, "pCase", 2L);
builder.createObject(1L, "IntPrjfolder");
builder.setStringAttributeValue(1L, DataAttribute.LOC_NAME, "Study Cases");
builder.setObjectParent(1L, 0L);
builder.createObject(2L, "IntCase");
builder.setStringAttributeValue(2L, DataAttribute.LOC_NAME, "TestStudyCase");
Instant studyTime = Instant.parse("2021-10-30T09:35:25Z");
builder.setLongAttributeValue(2L, "iStudyTime", studyTime.toEpochMilli());
builder.setObjectParent(2L, 1L);
builder.createObject(3L, "IntPrjfolder");
builder.setStringAttributeValue(3L, DataAttribute.LOC_NAME, "Network Model");
builder.setObjectParent(3L, 0L);
builder.createObject(4L, "IntPrjfolder");
builder.setStringAttributeValue(4L, DataAttribute.LOC_NAME, "Network Data");
builder.setObjectParent(4L, 3L);
builder.createObject(5L, "ElmNet");
builder.setStringAttributeValue(5L, DataAttribute.LOC_NAME, "TestNetwork");
builder.setIntAttributeValue(5L, "aInt", 3);
builder.setLongAttributeValue(5L, "aInt64", 494949L);
builder.setDoubleAttributeValue(5L, "aDouble", 3.34d);
builder.setObjectAttributeValue(5L, "aObj", 1L);
builder.setIntVectorAttributeValue(5L, "aIntVec", List.of(67));
builder.setLongVectorAttributeValue(5L, "aInt64Vec", List.of(6772437L));
builder.setDoubleVectorAttributeValue(5L, "aDoubleVec", List.of(4.54828d));
builder.setObjectVectorAttributeValue(5L, "aObjVec", List.of(2L));
builder.setStringVectorAttributeValue(5L, "aStrVec", List.of("a", "b"));
builder.setDoubleMatrixAttributeValue(5L, "aMat", 2, 3, List.of(0d, 1d, 2d, 3d, 4d, 5d));
builder.setObjectParent(5L, 4L);
builder.createObject(6L, "ElmSubstat");
builder.setObjectParent(6L, 5L);
}
}