Skip to content

Commit 6f17557

Browse files
committed
Feature: JSON writers for configurations
1 parent 96cc29c commit 6f17557

3 files changed

Lines changed: 50 additions & 1 deletion

File tree

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
from .configuration_basic_reader import ConfigurationBasicReader # pylint: disable=cyclic-import
22
from .configuration_json_reader import ConfigurationJSONReader # pylint: disable=cyclic-import
33
from .uvls_json_reader import UVLSJSONReader # pylint: disable=cyclic
4+
from .configuration_json_writer import ConfigurationJSONWriter # pylint: disable=cyclic-import
5+
from .uvls_json_writer import UVLSJSONWriter # pylint: disable=cyclic
46

57

68
__all__ = ['ConfigurationBasicReader',
79
'ConfigurationJSONReader',
8-
'UVLSJSONReader']
10+
'UVLSJSONReader',
11+
'ConfigurationJSONWriter',
12+
'UVLSJSONWriter']
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import json
2+
3+
from flamapy.core.transformations.model_to_text import ModelToText
4+
from flamapy.core.models import VariabilityModel
5+
6+
from flamapy.metamodels.configuration_metamodel.models.configuration import Configuration
7+
8+
9+
10+
class ConfigurationJSONWriter(ModelToText):
11+
12+
@staticmethod
13+
def get_destination_extension() -> str:
14+
return 'json'
15+
16+
def __init__(self, path: str, source_model: VariabilityModel) -> None:
17+
self._path: str = path
18+
self._configuration: Configuration = source_model
19+
20+
def transform(self) -> str:
21+
with open(self._path, "w", encoding="utf-8") as file:
22+
json.dump(self._configuration.elements, file, ensure_ascii=False, indent=4)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import json
2+
3+
from flamapy.core.transformations.model_to_text import ModelToText
4+
from flamapy.core.models import VariabilityModel
5+
6+
from flamapy.metamodels.configuration_metamodel.models.configuration import Configuration
7+
8+
9+
10+
class UVLSJSONWriter(ModelToText):
11+
12+
@staticmethod
13+
def get_destination_extension() -> str:
14+
return 'uvl.json'
15+
16+
def __init__(self, path: str, source_model: VariabilityModel) -> None:
17+
self._path: str = path
18+
self._configuration: Configuration = source_model
19+
20+
def transform(self) -> str:
21+
elements = {'config': self._configuration.elements}
22+
with open(self._path, "w", encoding="utf-8") as file:
23+
json.dump(elements, file, ensure_ascii=False, indent=4)

0 commit comments

Comments
 (0)