Skip to content

Commit 8b62194

Browse files
committed
Simplifications and renamings
Signed-off-by: Laurent Garnier <[email protected]>
1 parent 081e294 commit 8b62194

File tree

8 files changed

+40
-123
lines changed

8 files changed

+40
-123
lines changed

bundles/org.openhab.core.model.core/src/main/java/org/openhab/core/model/core/ModelRepository.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
*
3030
* @author Kai Kreuzer - Initial contribution
3131
* @author Laurent Garnier - Added method generateSyntaxFromModel
32-
* @author Laurent Garnier - Added methods addStandaloneModel and removeStandaloneModel
32+
* @author Laurent Garnier - Added methods createIsolatedModel and removeIsolatedModel
3333
*/
3434
@NonNullByDefault
3535
public interface ModelRepository {
@@ -98,8 +98,10 @@ public interface ModelRepository {
9898
void removeModelRepositoryChangeListener(ModelRepositoryChangeListener listener);
9999

100100
/**
101-
* Adds a standalone model to the repository
102-
* A standalone model will be loaded without triggering any listener.
101+
* Creates an isolated model in the repository
102+
*
103+
* An isolated model is a temporary model that will be loaded without triggering any listener
104+
* and so without impacting any object registry.
103105
*
104106
* @param modelType the model type
105107
* @param inputStream an input stream with the model's content
@@ -108,15 +110,15 @@ public interface ModelRepository {
108110
* @return the created model name if it was successfully processed, null otherwise
109111
*/
110112
@Nullable
111-
String addStandaloneModel(String modelType, InputStream inputStream, List<String> errors, List<String> warnings);
113+
String createIsolatedModel(String modelType, InputStream inputStream, List<String> errors, List<String> warnings);
112114

113115
/**
114-
* Removes a standalone model from the repository
116+
* Removes an isolated model from the repository
115117
*
116118
* @param name the name of the model to remove
117119
* @return true, if model was removed, false, if it did not exist
118120
*/
119-
boolean removeStandaloneModel(String name);
121+
boolean removeIsolatedModel(String name);
120122

121123
/**
122124
* Generate the syntax from a provided model content.

bundles/org.openhab.core.model.core/src/main/java/org/openhab/core/model/core/internal/ModelRepositoryImpl.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
* @author Oliver Libutzki - Added reloadAllModelsOfType method
5252
* @author Simon Kaufmann - added validation of models before loading them
5353
* @author Laurent Garnier - Added method generateSyntaxFromModel
54-
* @author Laurent Garnier - Added methods addStandaloneModel and removeStandaloneModel
54+
* @author Laurent Garnier - Added methods createIsolatedModel and removeIsolatedModel
5555
*/
5656
@Component(immediate = true)
5757
@NonNullByDefault
@@ -104,7 +104,7 @@ public boolean addOrRefreshModel(String name, final InputStream originalInputStr
104104
}
105105

106106
public boolean addOrRefreshModel(String name, final InputStream originalInputStream, @Nullable List<String> errors,
107-
@Nullable List<String> warnings, boolean standalone) {
107+
@Nullable List<String> warnings, boolean isolated) {
108108
logger.info("Loading model '{}'", name);
109109
Resource resource = null;
110110
byte[] bytes;
@@ -120,14 +120,14 @@ public boolean addOrRefreshModel(String name, final InputStream originalInputStr
120120
warnings.addAll(newWarnings);
121121
}
122122
if (!valid) {
123-
if (!standalone) {
123+
if (!isolated) {
124124
logger.warn("Configuration model '{}' has errors, therefore ignoring it: {}", name,
125125
String.join("\n", newErrors));
126126
}
127127
removeModel(name);
128128
return false;
129129
}
130-
if (!standalone && !newWarnings.isEmpty()) {
130+
if (!isolated && !newWarnings.isEmpty()) {
131131
logger.info("Validation issues found in configuration model '{}', using it anyway:\n{}", name,
132132
String.join("\n", newWarnings));
133133
}
@@ -148,7 +148,7 @@ public boolean addOrRefreshModel(String name, final InputStream originalInputStr
148148
resource = resourceSet.createResource(URI.createURI(name));
149149
if (resource != null) {
150150
resource.load(inputStream, resourceOptions);
151-
if (!standalone) {
151+
if (!isolated) {
152152
notifyListeners(name, EventType.ADDED);
153153
}
154154
return true;
@@ -161,7 +161,7 @@ public boolean addOrRefreshModel(String name, final InputStream originalInputStr
161161
synchronized (resourceSet) {
162162
resource.unload();
163163
resource.load(inputStream, resourceOptions);
164-
if (!standalone) {
164+
if (!isolated) {
165165
notifyListeners(name, EventType.MODIFIED);
166166
}
167167
return true;
@@ -181,12 +181,12 @@ public boolean removeModel(String name) {
181181
return removeModel(name, false);
182182
}
183183

184-
private boolean removeModel(String name, boolean standalone) {
184+
private boolean removeModel(String name, boolean isolated) {
185185
Resource resource = getResource(name);
186186
if (resource != null) {
187187
synchronized (resourceSet) {
188188
// do not physically delete it, but remove it from the resource set
189-
if (!standalone) {
189+
if (!isolated) {
190190
notifyListeners(name, EventType.REMOVED);
191191
}
192192
resourceSet.getResources().remove(resource);
@@ -263,14 +263,14 @@ public void removeModelRepositoryChangeListener(ModelRepositoryChangeListener li
263263
}
264264

265265
@Override
266-
public @Nullable String addStandaloneModel(String modelType, InputStream inputStream, List<String> errors,
266+
public @Nullable String createIsolatedModel(String modelType, InputStream inputStream, List<String> errors,
267267
List<String> warnings) {
268-
String name = "tmp_syntax_%d.%s".formatted(++counter, modelType);
268+
String name = "tmp_isolated_model_%d.%s".formatted(++counter, modelType);
269269
return addOrRefreshModel(name, inputStream, errors, warnings, true) ? name : null;
270270
}
271271

272272
@Override
273-
public boolean removeStandaloneModel(String name) {
273+
public boolean removeIsolatedModel(String name) {
274274
return removeModel(name, true);
275275
}
276276

bundles/org.openhab.core.model.item/src/org/openhab/core/model/item/internal/GenericItemProvider.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.util.ArrayList;
1616
import java.util.Arrays;
1717
import java.util.Collection;
18-
import java.util.Collections;
1918
import java.util.HashMap;
2019
import java.util.LinkedHashMap;
2120
import java.util.List;
@@ -68,13 +67,12 @@
6867
*
6968
* @author Kai Kreuzer - Initial contribution
7069
* @author Thomas Eichstaedt-Engelen - Initial contribution
71-
* @author Laurent Garnier - Add interface StandaloneItemProvider
7270
*/
7371
@NonNullByDefault
74-
@Component(service = { ItemProvider.class, StandaloneItemProvider.class,
72+
@Component(service = { ItemProvider.class, GenericItemProvider.class,
7573
StateDescriptionFragmentProvider.class }, immediate = true)
76-
public class GenericItemProvider extends AbstractProvider<Item> implements ModelRepositoryChangeListener, ItemProvider,
77-
StandaloneItemProvider, StateDescriptionFragmentProvider {
74+
public class GenericItemProvider extends AbstractProvider<Item>
75+
implements ModelRepositoryChangeListener, ItemProvider, StateDescriptionFragmentProvider {
7876

7977
private final Logger logger = LoggerFactory.getLogger(GenericItemProvider.class);
8078

@@ -173,7 +171,7 @@ public Collection<Item> getAll() {
173171
return items;
174172
}
175173

176-
private List<Item> getItemsFromModel(String modelName) {
174+
public List<Item> getItemsFromModel(String modelName) {
177175
logger.debug("Read items from model '{}'", modelName);
178176

179177
List<Item> items = new ArrayList<>();
@@ -524,14 +522,6 @@ private Map<String, Item> toItemMap(@Nullable Collection<Item> items) {
524522
return null;
525523
}
526524

527-
@Override
528-
public List<Item> getItemsFromStandaloneModel(String modelName) {
529-
if (modelName.endsWith("items")) {
530-
return getItemsFromModel(modelName);
531-
}
532-
return Collections.emptyList();
533-
}
534-
535525
@Override
536526
public @Nullable StateDescriptionFragment getStateDescriptionFragment(String itemName, @Nullable Locale locale) {
537527
return stateDescriptionFragments.get(itemName);

bundles/org.openhab.core.model.item/src/org/openhab/core/model/item/internal/StandaloneItemProvider.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

bundles/org.openhab.core.model.item/src/org/openhab/core/model/item/internal/fileconverter/DslItemFileConverter.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
import org.openhab.core.items.fileconverter.ItemFileGenerator;
4141
import org.openhab.core.items.fileconverter.ItemFileParser;
4242
import org.openhab.core.model.core.ModelRepository;
43-
import org.openhab.core.model.item.internal.StandaloneItemProvider;
43+
import org.openhab.core.model.item.internal.GenericItemProvider;
4444
import org.openhab.core.model.items.ItemModel;
4545
import org.openhab.core.model.items.ItemsFactory;
4646
import org.openhab.core.model.items.ModelBinding;
@@ -69,15 +69,15 @@ public class DslItemFileConverter extends AbstractItemFileGenerator implements I
6969
private final Logger logger = LoggerFactory.getLogger(DslItemFileConverter.class);
7070

7171
private final ModelRepository modelRepository;
72-
private final StandaloneItemProvider standaloneItemProvider;
72+
private final GenericItemProvider itemProvider;
7373
private final ConfigDescriptionRegistry configDescriptionRegistry;
7474

7575
@Activate
7676
public DslItemFileConverter(final @Reference ModelRepository modelRepository,
77-
final @Reference StandaloneItemProvider standaloneItemProvider,
77+
final @Reference GenericItemProvider itemProvider,
7878
final @Reference ConfigDescriptionRegistry configDescriptionRegistry) {
7979
this.modelRepository = modelRepository;
80-
this.standaloneItemProvider = standaloneItemProvider;
80+
this.itemProvider = itemProvider;
8181
this.configDescriptionRegistry = configDescriptionRegistry;
8282
}
8383

@@ -270,9 +270,9 @@ public String getFileFormatParser() {
270270
public boolean parseFileFormat(String syntax, List<Item> items, List<Metadata> metadata, List<String> errors,
271271
List<String> warnings) {
272272
ByteArrayInputStream inputStream = new ByteArrayInputStream(syntax.getBytes());
273-
String modelName = modelRepository.addStandaloneModel("items", inputStream, errors, warnings);
273+
String modelName = modelRepository.createIsolatedModel("items", inputStream, errors, warnings);
274274
if (modelName != null) {
275-
items.addAll(standaloneItemProvider.getItemsFromStandaloneModel(modelName));
275+
items.addAll(itemProvider.getItemsFromModel(modelName));
276276
// TODO retrieve metadata
277277
for (Item item : items) {
278278
MetadataKey key;
@@ -293,7 +293,7 @@ public boolean parseFileFormat(String syntax, List<Item> items, List<Metadata> m
293293
md = new Metadata(key, "myBinding:myTypoe:myThing#channel2", null);
294294
metadata.add(md);
295295
}
296-
modelRepository.removeStandaloneModel(modelName);
296+
modelRepository.removeIsolatedModel(modelName);
297297
return true;
298298
}
299299
return false;

bundles/org.openhab.core.model.thing/src/org/openhab/core/model/thing/internal/GenericThingProvider.xtend

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ import org.slf4j.LoggerFactory
7373
* @author Markus Rathgeb - Add locale provider support
7474
* @author Laurent Garnier - Add interface StandaloneThingProvider
7575
*/
76-
@Component(immediate=true, service=#[ThingProvider, StandaloneThingProvider])
77-
class GenericThingProvider extends AbstractProviderLazyNullness<Thing> implements ThingProvider, StandaloneThingProvider, ModelRepositoryChangeListener, ReadyService.ReadyTracker {
76+
@Component(immediate=true, service=#[ ThingProvider, GenericThingProvider ])
77+
class GenericThingProvider extends AbstractProviderLazyNullness<Thing> implements ThingProvider, ModelRepositoryChangeListener, ReadyService.ReadyTracker {
7878

7979
static final String XML_THING_TYPE = "openhab.xmlThingTypes";
8080

@@ -491,7 +491,7 @@ class GenericThingProvider extends AbstractProviderLazyNullness<Thing> implement
491491
}
492492
}
493493

494-
override List<Thing> getThingsFromStandaloneModel(String modelName) {
494+
def public List<Thing> getThingsFromIsolatedModel(String modelName) {
495495
val things = newArrayList()
496496
if (modelRepository !== null && modelName.endsWith("things")) {
497497
logger.debug("Read standalone things from model '{}'", modelName);

bundles/org.openhab.core.model.thing/src/org/openhab/core/model/thing/internal/StandaloneThingProvider.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

bundles/org.openhab.core.model.thing/src/org/openhab/core/model/thing/internal/fileconverter/DslThingFileConverter.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import org.eclipse.jdt.annotation.Nullable;
2626
import org.openhab.core.config.core.ConfigDescriptionRegistry;
2727
import org.openhab.core.model.core.ModelRepository;
28-
import org.openhab.core.model.thing.internal.StandaloneThingProvider;
28+
import org.openhab.core.model.thing.internal.GenericThingProvider;
2929
import org.openhab.core.model.thing.thing.ModelBridge;
3030
import org.openhab.core.model.thing.thing.ModelChannel;
3131
import org.openhab.core.model.thing.thing.ModelProperty;
@@ -62,17 +62,16 @@ public class DslThingFileConverter extends AbstractThingFileGenerator implements
6262
private final Logger logger = LoggerFactory.getLogger(DslThingFileConverter.class);
6363

6464
private final ModelRepository modelRepository;
65-
private final StandaloneThingProvider standaloneThingProvider;
65+
private final GenericThingProvider thingProvider;
6666

6767
@Activate
6868
public DslThingFileConverter(final @Reference ModelRepository modelRepository,
69-
final @Reference StandaloneThingProvider standaloneThingProvider,
70-
final @Reference ThingTypeRegistry thingTypeRegistry,
69+
final @Reference GenericThingProvider thingProvider, final @Reference ThingTypeRegistry thingTypeRegistry,
7170
final @Reference ChannelTypeRegistry channelTypeRegistry,
7271
final @Reference ConfigDescriptionRegistry configDescRegistry) {
7372
super(thingTypeRegistry, channelTypeRegistry, configDescRegistry);
7473
this.modelRepository = modelRepository;
75-
this.standaloneThingProvider = standaloneThingProvider;
74+
this.thingProvider = thingProvider;
7675
}
7776

7877
@Override
@@ -213,10 +212,10 @@ public String getFileFormatParser() {
213212
@Override
214213
public boolean parseFileFormat(String syntax, List<Thing> things, List<String> errors, List<String> warnings) {
215214
ByteArrayInputStream inputStream = new ByteArrayInputStream(syntax.getBytes());
216-
String modelName = modelRepository.addStandaloneModel("things", inputStream, errors, warnings);
215+
String modelName = modelRepository.createIsolatedModel("things", inputStream, errors, warnings);
217216
if (modelName != null) {
218-
things.addAll(standaloneThingProvider.getThingsFromStandaloneModel(modelName));
219-
modelRepository.removeStandaloneModel(modelName);
217+
things.addAll(thingProvider.getThingsFromIsolatedModel(modelName));
218+
modelRepository.removeIsolatedModel(modelName);
220219
return true;
221220
}
222221
return false;

0 commit comments

Comments
 (0)