\r
package org.onap.ccsdk.apps.controllerblueprints.core.service\r
\r
-import com.google.common.base.Preconditions\r
-import org.apache.commons.io.FileUtils\r
-import org.apache.commons.lang3.StringUtils\r
import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants\r
import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException\r
import org.onap.ccsdk.apps.controllerblueprints.core.data.*\r
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils\r
import com.att.eelf.configuration.EELFLogger\r
import com.att.eelf.configuration.EELFManager\r
+import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonReactorUtils\r
import reactor.core.publisher.Mono\r
import java.io.File\r
import java.io.Serializable\r
}\r
\r
\r
-class BluePrintRepoFileService(val basePath: String) : BluePrintRepoService {\r
+open class BluePrintRepoFileService(modelTypePath: String) : BluePrintRepoService {\r
\r
- private val log: EELFLogger = EELFManager.getInstance().getLogger(this::class.toString())\r
+ private val log: EELFLogger = EELFManager.getInstance().getLogger(BluePrintRepoFileService::class.toString())\r
\r
- private val dataTypePath = basePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_DATA_TYPE)\r
- private val nodeTypePath = basePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_NODE_TYPE)\r
- private val artifactTypePath = basePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_ARTIFACT_TYPE)\r
- private val capabilityTypePath = basePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_CAPABILITY_TYPE)\r
- private val relationshipTypePath = basePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_RELATIONSHIP_TYPE)\r
+ private val dataTypePath = modelTypePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_DATA_TYPE)\r
+ private val nodeTypePath = modelTypePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_NODE_TYPE)\r
+ private val artifactTypePath = modelTypePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_ARTIFACT_TYPE)\r
+ private val capabilityTypePath = modelTypePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_CAPABILITY_TYPE)\r
+ private val relationshipTypePath = modelTypePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_RELATIONSHIP_TYPE)\r
private val extension = ".json"\r
\r
override fun getDataType(dataTypeName: String): Mono<DataType>? {\r
}\r
\r
private fun <T> getModelType(fileName: String, valueType: Class<T>): Mono<T> {\r
- return getFileContent(fileName).map { content ->\r
- Preconditions.checkArgument(StringUtils.isNotBlank(content),\r
- String.format("Failed to get model content for file (%s)", fileName))\r
-\r
- JacksonUtils.readValue(content, valueType)\r
- ?: throw BluePrintException(String.format("Failed to get model file from content for file (%s)", fileName))\r
-\r
- }\r
- }\r
-\r
- private fun getFileContent(fileName: String): Mono<String> {\r
- return Mono.just(FileUtils.readFileToString(File(fileName), Charset.defaultCharset()))\r
+ return JacksonReactorUtils.readValueFromFile(fileName, valueType)\r
}\r
}
\ No newline at end of file