```
-Example for rule that sends an notification with collected waste types on day before collection
+Example for rule that sends a notification with collected waste types on day before collection
```
triggers:
public interface AhaCollectionScheduleFactory {
/**
- * Creates an new {@link AhaCollectionSchedule} for the given location.
+ * Creates a new {@link AhaCollectionSchedule} for the given location.
*/
public AhaCollectionSchedule create(final String commune, final String street, final String houseNumber,
final String houseNumberAddon, final String collectionPlace);
private final String collectionPlace;
/**
- * Creates an new {@link AhaCollectionScheduleImpl} for the given location.
+ * Creates a new {@link AhaCollectionScheduleImpl} for the given location.
*/
public AhaCollectionScheduleImpl(final String commune, final String street, final String houseNumber,
final String houseNumberAddon, final String collectionPlace) {
}
/**
- * Returns <code>true</code> if the row is an (empty) delimiter row or if its an row that contains the download
+ * Returns <code>true</code> if the row is an (empty) delimiter row or if its a row that contains the download
* buttons for ical.
*/
private boolean isDelimiterOrDownloadRow(Element currentRow) {
}
/**
- * Schedules an job that updates the collection dates at midnight.
+ * Schedules a job that updates the collection dates at midnight.
*/
private void restartJob() {
this.logger.debug("Restarting jobs for thing {}", this.getThing().getUID());
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * Contains the next collection dates for an given waste type.
+ * Contains the next collection dates for a given waste type.
*
* @author Sönke Küper - Initial contribution
*/
private final List<Date> dates;
/**
- * Creates an new {@link CollectionDate}.
+ * Creates a new {@link CollectionDate}.
*/
public CollectionDate(final WasteType type, final List<Date> dates) {
this.type = type;
</config-description>
</thing-type>
- <!-- Channel type that represents the collection time of an waste type. -->
+ <!-- Channel type that represents the collection time of a waste type. -->
<channel-type id="collectionDateGeneralWaste">
<item-type>DateTime</item-type>
<label>General Waste</label>
}
/**
- * Exception indicating that the execution of an script within the stub-Scheduler failed.
+ * Exception indicating that the execution of a script within the stub-Scheduler failed.
*/
private static class SchedulerRuntimeException extends RuntimeException {
}
/**
- * Creates an {@link CronScheduler} that executes all commands synchronous.
+ * Creates a {@link CronScheduler} that executes all commands synchronous.
*/
@SuppressWarnings("unchecked")
private static CronScheduler createStubScheduler() {
import de.kaizencode.tchaikovsky.exception.SpeakerException;
/**
- * The {@link AllPlayAudioSink} make AllPlay speakers available as a {@link AudioSink}.
+ * The {@link AllPlayAudioSink} make AllPlay speakers available as an {@link AudioSink}.
*
* @author Dominic Lerbs - Initial contribution
*/
end
```
-## Playing an alarm sound for 15 seconds with an openHAB rule if an door contact was opened:
+## Playing an alarm sound for 15 seconds with an openHAB rule if a door contact was opened:
1) Do get the ID of your sound, follow the steps in "How To Get IDs"
2) Write down the text in the square brackets. e.g. ECHO:system_alerts_repetitive01 for the nightstand sound
Set<SmartHomeDevice> supportedChildren = SmartHomeDeviceHandler.getSupportedSmartHomeDevices(shg,
deviceList);
if (supportedChildren.isEmpty()) {
- // No children with an supported interface
+ // No children with a supported interface
continue;
}
thingUID = new ThingUID(THING_TYPE_SMART_HOME_DEVICE_GROUP, bridgeThingUID, id.replace(".", "-"));
/**
* Defines an implementation of {@link AtlonaHandlerCallback} that will remember the last state
- * for an channelId and suppress the callback if the state hasn't changed
+ * for a channelId and suppress the callback if the state hasn't changed
*
* @author Tim Roberts - Initial contribution
*/
## Example
-This is how an BlueGiga adapter can be configured textually in a *.things file:
+This is how a BlueGiga adapter can be configured textually in a *.things file:
```
Bridge bluetooth:bluegiga:1 [ port="/dev/ttyS0", backgroundDiscovery=false ]
}
/**
- * Sends an BlueGiga request without waiting for the response.
+ * Sends a BlueGiga request without waiting for the response.
*
* @param bleCommand {@link BlueGigaCommand}
* @return response {@link Future} {@link BlueGigaResponse}
## Example
-This is how an BlueZ adapter can be configured textually in a *.things file:
+This is how a BlueZ adapter can be configured textually in a *.things file:
```
Bridge bluetooth:bluez:hci0 [ address="12:34:56:78:90:AB", backgroundDiscovery=false ]
## Example
-This is how an Roaming adapter can be configured textually in a *.things file:
+This is how a Roaming adapter can be configured textually in a *.things file:
```
Bridge bluetooth:roaming:ctrl "BLE Roaming Adapter" [ backgroundDiscovery=true]
/**
* The {@link BluetoothAdapter} class defines the standard adapter API that must be implemented by bridge handlers,
- * which are then required to be registered as an BluetoothAdapter OSGi service.
+ * which are then required to be registered as a BluetoothAdapter OSGi service.
* <p>
* <b>Scanning</b>
* The API assumes that the adapter is "always" scanning to enable beacons to be received.
private final DarkSkyAPIHandler bridgeHandler;
/**
- * Creates an DarkSkyLocationDiscoveryService.
+ * Creates a DarkSkyLocationDiscoveryService.
*/
public DarkSkyDiscoveryService(DarkSkyAPIHandler bridgeHandler, LocationProvider locationProvider,
LocaleProvider localeProvider, TranslationProvider i18nProvider) {
package org.openhab.binding.darksky.internal.model;
/**
- * The {@link DarkSkyCurrentlyData} is the Java class used to map the JSON response to an Dark Sky request.
+ * The {@link DarkSkyCurrentlyData} is the Java class used to map the JSON response to a Dark Sky request.
*
* @author Christoph Weitkamp - Initial contribution
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * The {@link DarkSkyDailyData} is the Java class used to map the JSON response to an Dark Sky request.
+ * The {@link DarkSkyDailyData} is the Java class used to map the JSON response to a Dark Sky request.
*
* @author Christoph Weitkamp - Initial contribution
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * The {@link DarkSkyHourlyData} is the Java class used to map the JSON response to an Dark Sky request.
+ * The {@link DarkSkyHourlyData} is the Java class used to map the JSON response to a Dark Sky request.
*
* @author Christoph Weitkamp - Initial contribution
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * The {@link DarkSkyJsonWeatherData} is the Java class used to map the JSON response to an Dark Sky request.
+ * The {@link DarkSkyJsonWeatherData} is the Java class used to map the JSON response to a Dark Sky request.
*
* @author Christoph Weitkamp - Initial contribution
*/
import org.openhab.core.types.State;
/**
- * Accessor for attribute value of an DTO-Object.
+ * Accessor for attribute value of a DTO-Object.
*
* @author Sönke Küper - Initial contribution.
*
private final Function<VALUE_TYPE, List<String>> valueToList;
/**
- * Creates an new {@link EventAttribute}.
+ * Creates a new {@link EventAttribute}.
*
* @param getter Function to get the raw value.
* @param setter Function to set the raw value.
import org.openhab.core.types.State;
/**
- * Selection of an attribute within an {@link TimetableStop} that provides a channel {@link State}.
+ * Selection of an attribute within a {@link TimetableStop} that provides a channel {@link State}.
*
* @author Sönke Küper - Initial contribution
*/
import org.slf4j.LoggerFactory;
/**
- * Handler for an Train-Thing in DeutscheBahn Binding.
+ * Handler for a Train-Thing in DeutscheBahn Binding.
*
- * Represents an Train that arrives / departs at the station selected by the DeutscheBahnTimetable-Bridge.
+ * Represents a Train that arrives / departs at the station selected by the DeutscheBahnTimetable-Bridge.
*
* @author Sönke Küper - Initial contribution
*/
private final AttributeSelection attributeSelection;
/**
- * Creates an new ChannelWithConfig.
+ * Creates a new ChannelWithConfig.
*
* @param channelUid The UID of the channel
* @param attributeSelection The attribute that provides the state that will be displayed.
private final List<ChannelWithConfig> configuredChannels = new ArrayList<>();
/**
- * Creates an new {@link DeutscheBahnTrainHandler}.
+ * Creates a new {@link DeutscheBahnTrainHandler}.
*/
public DeutscheBahnTrainHandler(Thing thing) {
super(thing);
}
/**
- * Creates an {@link ChannelWithConfig} for an channel that represents an attribute of an
+ * Creates a {@link ChannelWithConfig} for a channel that represents an attribute of an
* {@link org.openhab.binding.deutschebahn.internal.timetable.dto.TripLabel}.
*/
private void createTripChannelConfiguration(Channel channel) {
}
/**
- * Creates the {@link ChannelWithConfig} for an channel that represents an attribute of an
+ * Creates the {@link ChannelWithConfig} for a channel that represents an attribute of an
* {@link org.openhab.binding.deutschebahn.internal.timetable.dto.Event}.}
*/
private void createEventChannelConfiguration(EventType eventType, Channel channel) {
private static final SimpleDateFormat DATETIME_FORMAT = new SimpleDateFormat("yyMMddHHmm");
/**
- * Creates an new {@link EventAttribute}.
+ * Creates a new {@link EventAttribute}.
*
* @param getter Function to get the raw value.
* @param setter Function to set the raw value.
private final EventAttribute<?, ?> eventAttribute;
/**
- * Creates an new {@link EventAttributeSelection}.
+ * Creates a new {@link EventAttributeSelection}.
*/
public EventAttributeSelection(EventType eventType, EventAttribute<?, ?> eventAttribute) {
this.eventType = eventType;
import org.openhab.binding.deutschebahn.internal.timetable.dto.TimetableStop;
/**
- * Type of an {@link Event} within an {@link TimetableStop}.
+ * Type of an {@link Event} within a {@link TimetableStop}.
*
* @author Sönke Küper - initial contribution
*/
import org.openhab.core.types.UnDefType;
/**
- * Selection that returns the value of an {@link TripLabel}.
+ * Selection that returns the value of a {@link TripLabel}.
*
* chapter "1.2.7 TripLabel" in Technical Interface Description for external Developers
*
TripLabel::setO, StringType::new, TripLabelAttribute::singletonList, StringType.class);
/**
- * Creates an new {@link TripLabelAttribute}.
+ * Creates a new {@link TripLabelAttribute}.
*
* @param getter Function to get the raw value.
* @param setter Function to set the raw value.
}
/**
- * Returns an {@link TripLabelAttribute} for the given channel-name.
+ * Returns a {@link TripLabelAttribute} for the given channel-name.
*/
@Nullable
public static TripLabelAttribute<?, ?> getByChannelName(final String channelName) {
private final TimetableStopPredicate second;
/**
- * Creates an new {@link AndPredicate}.
+ * Creates a new {@link AndPredicate}.
*/
public AndPredicate(TimetableStopPredicate first, TimetableStopPredicate second) {
this.first = first;
private final String channelGroup;
/**
- * Creates an new {@link ChannelNameEquals}.
+ * Creates a new {@link ChannelNameEquals}.
*/
public ChannelNameEquals(int position, String channelGroup, String channelName, Pattern filterPattern) {
super(position);
}
/**
- * Maps this into an {@link TimetableStopByStringEventAttributeFilter}.
+ * Maps this into a {@link TimetableStopByStringEventAttributeFilter}.
*/
public TimetableStopByStringEventAttributeFilter mapToPredicate() throws FilterParserException {
return new TimetableStopByStringEventAttributeFilter(mapAttributeSelection(), filterValue);
import org.eclipse.jdt.annotation.Nullable;
/**
- * Parses an {@link FilterToken}-Sequence into a {@link TimetableStopPredicate}.
+ * Parses a {@link FilterToken}-Sequence into a {@link TimetableStopPredicate}.
*
* @author Sönke Küper - Initial contribution.
*/
}
/**
- * Parses the given {@link FilterToken} into an {@link TimetableStopPredicate}.
+ * Parses the given {@link FilterToken} into a {@link TimetableStopPredicate}.
*/
public static TimetableStopPredicate parse(final List<FilterToken> tokens) throws FilterParserException {
State state = new InitialState();
private static final long serialVersionUID = 3104578924298682889L;
/**
- * Creates an new {@link FilterParserException}.
+ * Creates a new {@link FilterParserException}.
*/
public FilterParserException(String message) {
super(message);
private final String channelGroup;
/**
- * Creates an new {@link ExpectQuotesState}.
+ * Creates a new {@link ExpectQuotesState}.
*/
public ExpectQuotesState(int startPosition, final String channelGroup, String channelName) {
this.startPosition = startPosition;
private final StringBuilder filterValue;
/**
- * Creates an new {@link FilterValueState}.
+ * Creates a new {@link FilterValueState}.
*/
public FilterValueState(int startPosition, String channelGroup, String channelName) {
this.startPosition = startPosition;
private List<FilterToken> result;
/**
- * Creates an new {@link FilterScanner}.
+ * Creates a new {@link FilterScanner}.
*/
public FilterScanner() {
this.result = new ArrayList<>();
private final int position;
/**
- * Creates an new {@link FilterToken}.
+ * Creates a new {@link FilterToken}.
*/
public FilterToken(int position) {
this.position = position;
public abstract class OperatorToken extends FilterToken {
/**
- * Creates an new {@link OperatorToken}.
+ * Creates a new {@link OperatorToken}.
*/
public OperatorToken(int position) {
super(position);
private final TimetableStopPredicate second;
/**
- * Creates an new {@link OrPredicate}.
+ * Creates a new {@link OrPredicate}.
*/
public OrPredicate(TimetableStopPredicate first, TimetableStopPredicate second) {
this.first = first;
import org.openhab.binding.deutschebahn.internal.timetable.dto.TimetableStop;
/**
- * Abstract predicate that filters timetable stops by an selected attribute of an {@link TimetableStop}.
+ * Abstract predicate that filters timetable stops by a selected attribute of a {@link TimetableStop}.
*
* If value has multiple values (for example stations on the planned-path) the predicate will return <code>true</code>,
* if at least one value matches the given filter.
private final Pattern filter;
/**
- * Creates an new {@link TimetableStopByStringEventAttributeFilter}.
+ * Creates a new {@link TimetableStopByStringEventAttributeFilter}.
*/
TimetableStopByStringEventAttributeFilter(final AttributeSelection attributeSelection, final Pattern filter) {
this.attributeSelection = attributeSelection;
import org.openhab.core.library.types.DateTimeType;
/**
- * Helper for loading the required amount of {@link TimetableStop} via an {@link TimetablesV1Api}.
+ * Helper for loading the required amount of {@link TimetableStop} via a {@link TimetablesV1Api}.
* This consists of a series of calls.
*
* @author Sönke Küper - initial contribution
private Date lastRequestedChanges;
/**
- * Creates an new {@link TimetableLoader}.
+ * Creates a new {@link TimetableLoader}.
*
* @param api {@link TimetablesV1Api} to use.
* @param stopPredicate Filter for selection of loaded {@link TimetableStop}.
private final EventType eventSelection;
/**
- * Creates an new {@link TimetableStopComparator} that sorts {@link TimetableStop} according the Event selected
+ * Creates a new {@link TimetableStopComparator} that sorts {@link TimetableStop} according the Event selected
* selected by the given {@link EventType}.
*/
public TimetableStopComparator(EventType eventSelection) {
public interface TimetablesV1ApiFactory {
/**
- * Creates an new instance of the {@link TimetablesV1Api}.
+ * Creates a new instance of the {@link TimetablesV1Api}.
*/
public abstract TimetablesV1Api create(final String clientId, final String clientSecret,
final HttpCallable httpCallable) throws JAXBException;
}
/**
- * Creates an new {@link TimetablesV1ApiStub}, that returns the given result.
+ * Creates a new {@link TimetablesV1ApiStub}, that returns the given result.
*/
public static TimetablesV1ApiStub createWithResult(Timetable timetable) {
return new TimetablesV1ApiStub(timetable);
}
/**
- * Creates an new {@link TimetablesV1ApiStub} that throws an Exception.
+ * Creates a new {@link TimetablesV1ApiStub} that throws an Exception.
*/
public static TimetablesV1ApiStub createWithException() {
return new TimetablesV1ApiStub(null);
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * Helper interface for jUnit Tests to provide an {@link TimetablesApiTestModule}.
+ * Helper interface for jUnit Tests to provide a {@link TimetablesApiTestModule}.
*
* @author Sönke Küper - initial contribution.
*/
public static final String CLIENT_SECRET = "354c8161cd7fb0936c840240280c131e";
/**
- * Creates an {@link TimetablesApiTestModule} that uses http response data from file system.
+ * Creates a {@link TimetablesApiTestModule} that uses http response data from file system.
* Uses default-testdata from directory /timetablesData
*/
public default TimetablesApiTestModule createApiWithTestdata() throws Exception {
}
/**
- * Creates an {@link TimetablesApiTestModule} that uses http response data from file system.
+ * Creates a {@link TimetablesApiTestModule} that uses http response data from file system.
*
* @param dataDirectory Directory within test-resources containing the stub-data.
*/
public interface EventHandler {
/**
- * Handles a {@link EventItem} e.g. which was detected by the {@link EventListener}.
+ * Handles an {@link EventItem} e.g. which was detected by the {@link EventListener}.
*
* @param eventItem to handle
*/
String getUID();
/**
- * Sets a {@link EventListener} to this {@link EventHandler}.
+ * Sets an {@link EventListener} to this {@link EventHandler}.
*
* @param eventListener to set
*/
void setEventListener(EventListener eventListener);
/**
- * Unsets a {@link EventListener} to this {@link EventHandler}.
+ * Unsets an {@link EventListener} to this {@link EventHandler}.
*
* @param eventListener to unset
*/
* added {@link EventHandler} about the detected events, if it supports the event-type.<br>
* You can add {@link EventHandler}'s through the constructors or the methods {@link #addEventHandler(EventHandler)} and
* {@link #addEventHandlers(List)}.<br>
- * You can also delete a {@link EventHandler} though the method {@link #removeEventHandler(EventHandler)}.<br>
+ * You can also delete an {@link EventHandler} though the method {@link #removeEventHandler(EventHandler)}.<br>
* If the {@link EventListener} is started, both methods subscribe respectively unsubscribe the event-types of the
* {@link EventHandler}/s automatically.<br>
* If you want to dynamically subscribe event-types, e.g. because a configuration has changed and a
}
/**
- * Creates a new {@link EventListener} without a {@link EventHandler}<br>
+ * Creates a new {@link EventListener} without an {@link EventHandler}<br>
* <br>
* To get notified by events you have to call {@link #start()} and {@link #addEventHandler(EventHandler)} or
* {@link #addEventHandlers(List)}.
}
/**
- * Adds a {@link EventHandler}'s and subscribe the supported event-types, if the
+ * Adds an {@link EventHandler}'s and subscribe the supported event-types, if the
* {@link EventListener} is started and the event-types are not already subscribed.<br>
* <br>
* <b>Note:</b><br>
}
/**
- * Remove a {@link EventHandler} and unsubscribes the supported event-types, if the
+ * Remove an {@link EventHandler} and unsubscribes the supported event-types, if the
* {@link EventListener} is started and no other {@link EventHandler} needed the event-types.
*
* @param eventHandler to remove
/**
* Returns {@link HashMap} with the properties fiels of this {@link EventItem}.
- * The key is a {@link EventResponseEnum} and represents the property name
+ * The key is an {@link EventResponseEnum} and represents the property name
* and the value is the property value.
*
* @return the properties of this {@link EventItem}
/**
* Returns {@link HashMap} with the source fields of this {@link EventItem}.
- * The key is a {@link EventResponseEnum} and represents the property name
+ * The key is an {@link EventResponseEnum} and represents the property name
* and the value is the property value.
*
* @return the properties of this {@link EventItem}
import org.openhab.binding.digitalstrom.internal.lib.structure.scene.InternalScene;
/**
- * The {@link SceneStatusListener} is notified, if a {@link InternalScene} status has changed or a
+ * The {@link SceneStatusListener} is notified, if an {@link InternalScene} status has changed or a
* {@link InternalScene} has been removed or added.
*
* <p>
void onSceneStateChanged(boolean newState);
/**
- * This method is called whenever a {@link InternalScene} is removed.
+ * This method is called whenever an {@link InternalScene} is removed.
*
* @param scene that was removed
*/
void onSceneRemoved(InternalScene scene);
/**
- * This method is called whenever a {@link InternalScene} is added.
+ * This method is called whenever an {@link InternalScene} is added.
*
* @param scene that was added
*/
* , {@link #callDeviceScene(String, Short)} etc. can be used.
*
* <p>
- * If you call the {@link #start()} method a {@link EventListener} will be started to handle scene calls and undos from
+ * If you call the {@link #start()} method an {@link EventListener} will be started to handle scene calls and undos from
* the outside.
*
* @author Michael Ochel - Initial contribution
void callInternalScene(InternalScene scene);
/**
- * Activates a {@link InternalScene} with the given id, if it exists. Otherwise a new
+ * Activates an {@link InternalScene} with the given id, if it exists. Otherwise a new
* {@link InternalScene} will be created and activated, if it is a callable scene.
*
* @param sceneID of the scene to call
void undoInternalScene(InternalScene scene);
/**
- * Deactivates a {@link InternalScene} with the given sceneID, if it exists. Otherwise a new
+ * Deactivates an {@link InternalScene} with the given sceneID, if it exists. Otherwise a new
* {@link InternalScene} will be created and deactivated, if it is a callable scene.
*
* @param sceneID of the scene to undo
/**
* Same constructor like {@link #SceneManagerImpl(ConnectionManager, StructureManager, ManagerStatusListener)}, but
- * a {@link EventListener} can be set, too.
+ * an {@link EventListener} can be set, too.
*
* @param connectionManager (must not be null)
* @param structureManager (must not be null)
}
/**
- * This method build the digitalSTROM structure as an {@link HashMap} with the zone id as key
- * and an {@link HashMap} as value. This {@link HashMap} has the group id as key and a {@link List}
+ * This method build the digitalSTROM structure as a {@link HashMap} with the zone id as key
+ * and a {@link HashMap} as value. This {@link HashMap} has the group id as key and a {@link List}
* with all digitalSTROM {@link Device}s.<br>
* <br>
* <b>Note:</b> the zone id 0 is the broadcast address and the group id 0, too.
/**
* The {@link TemperatureControlManager} is responsible for handling the zone temperature control of the digitalSTROM
- * zones. For that it implements a {@link EventHandler} to get informed by control changes, like the target temperature.
+ * zones. For that it implements an {@link EventHandler} to get informed by control changes, like the target
+ * temperature.
* It also implement the {@link TemperatureControlSensorTransmitter}, so the zone temperature can be set through this
* class. <br>
* <br>
* operation mode, see
* {@link OperationModes}.<br>
* To set the values a {@link List} with an object array has to be set as controlVlaues parameter. The 1th field has
- * to be a {@link String} for the {@link OperationModes} name and the 2nd field has to be a {@link Integer} for the
+ * to be a {@link String} for the {@link OperationModes} name and the 2nd field has to be an {@link Integer} for the
* new value. If the control mode is {@link ControlModes#PID_CONTROL} it is the nominal temperature, otherwise it is
* the control valve value.
*
import com.google.gson.JsonParser;
/**
- * The {@link JSONResponseHandler} checks an digitalSTROM-JSON response and can parse it to an {@link JsonObject}.
+ * The {@link JSONResponseHandler} checks an digitalSTROM-JSON response and can parse it to a {@link JsonObject}.
*
* @author Alexander Betker - Initial contribution
* @author Alex Maier - Initial contribution
boolean isSensorEchoBoxEnabled();
/**
- * Sets the {@link DeviceSensorValue} through a {@link EventItem} of the type
+ * Sets the {@link DeviceSensorValue} through an {@link EventItem} of the type
* {@link EventNames#DEVICE_SENSOR_VALUE}.
*
* @param event of the sensor update
}
/**
- * if an {@link DeviceStatusListener} is registered inform him about the new
+ * if a {@link DeviceStatusListener} is registered inform him about the new
* state otherwise do nothing.
*
* @param deviceStateUpdate
}
/**
- * Parses a String value (that represents an decimal) to an {@link DecimalType} object.
+ * Parses a String value (that represents an decimal) to a {@link DecimalType} object.
*
* @param cosemValue the value to parse
* @return {@link DecimalType} representing the value of the cosem value
/**
* Parses the List of COSEM String value to COSEM objects values.
* <p>
- * When the parser has problems it throws an {@link ParseException}. The
+ * When the parser has problems it throws a {@link ParseException}. The
* already parsed values will still be available. It is up to the caller how
* to handle a partially parsed message.
*
import org.openhab.binding.elerotransmitterstick.internal.handler.EleroChannelHandler;
/**
- * The {@link EleroChannelConfig} holds configuration data of a {@link EleroChannelHandler}
+ * The {@link EleroChannelConfig} holds configuration data of an {@link EleroChannelHandler}
*
* @author Volker Bier - Initial contribution
*/
## Full Example
-Following is an example how to set up an exec command thing, pass it a parameter, debug it with a rule and set the returned string to an Number Item.
+Following is an example how to set up an exec command thing, pass it a parameter, debug it with a rule and set the returned string to a Number Item.
**demo.things**
private @Nullable HomeConnectBridgeHandler bridgeHandler;
/**
- * Construct an {@link HomeConnectDiscoveryService}.
+ * Construct a {@link HomeConnectDiscoveryService}.
*
*/
public HomeConnectDiscoveryService() {
package org.openhab.binding.innogysmarthome.internal.client.entity.action;
/**
- * Defines the structure of a {@link IntegerActionParam}.
+ * Defines the structure of an {@link IntegerActionParam}.
*
* @author Oliver Kuhl - Initial contribution
*/
logger.trace("Create things: {} id: {} channel: {}", thing.getUID(), subKey, thing.getUID().getId());
switch (subKeyType) {
case DATA_TYPE_STRING_VALUE:
- /* Creating an new channel type with capabilities from service */
+ /* Creating a new channel type with capabilities from service */
List<StateOption> options = null;
if (serObj.serviceTreeMap.get(subKey).getValueParameter() != null) {
options = new ArrayList<>();
}
/* Check the capabilities of this service */
if (serObj.serviceTreeMap.get(subKey).getValueParameter() != null) {
- /* Creating an new channel type with capabilities from service */
+ /* Creating a new channel type with capabilities from service */
// The type is definitely correct here
@SuppressWarnings("unchecked")
List<Object> subValParas = (List<Object>) serObj.serviceTreeMap.get(subKey).getValueParameter();
/**
* This class represents a configured connection to one LCN-PCHK.
- * It uses a {@link AsynchronousSocketChannel} to connect to LCN-PCHK.
+ * It uses an {@link AsynchronousSocketChannel} to connect to LCN-PCHK.
* Included logic:
* <ul>
* <li>Reconnection on connection loss
/**
* Registers a new generic packet handler for the given packet class. The
* packet class must meet the criteria for {@link GenericHandler};
- * specifically, it must have an no-argument constructor and require no
+ * specifically, it must have a no-argument constructor and require no
* parsing logic outside of an invocation of
* {@link Packet#parse(java.nio.ByteBuffer)}.
*
package org.openhab.binding.livisismarthome.internal.client.api.entity.action;
/**
- * Defines the structure of a {@link IntegerActionParamDTO}.
+ * Defines the structure of an {@link IntegerActionParamDTO}.
*
* @author Oliver Kuhl - Initial contribution
*/
private @Nullable LivisiBridgeHandler bridgeHandler;
/**
- * Construct an {@link LivisiDeviceDiscoveryService}.
+ * Construct a {@link LivisiDeviceDiscoveryService}.
*/
public LivisiDeviceDiscoveryService() {
super(SEARCH_TIME_SECONDS);
* </ul>
* </li>
* <li>Using an {@link java.util.concurrent.Executor}</li>
- * <li>Using an {@link Thread}</li>
+ * <li>Using a {@link Thread}</li>
* </ul>
*
* <p>
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * Configuration settings for a {@link org.openhab.binding.lutron.internal.handler.OGroupHandler}.
+ * Configuration settings for an {@link org.openhab.binding.lutron.internal.handler.OGroupHandler}.
*
* @author Bob Adair - Initial contribution
*/
private final Thread socketReceiveThread = new Thread(this::receiveData);
/**
- * Sets up an {@link XiaomiSocket} with the MiHome multicast address and a random port
+ * Sets up a {@link XiaomiSocket} with the MiHome multicast address and a random port
*
* @param owner identifies the socket owner
*/
}
/**
- * Sets up an {@link XiaomiSocket} with the MiHome multicast address and a specific port
+ * Sets up a {@link XiaomiSocket} with the MiHome multicast address and a specific port
*
* @param port the socket will be bound to this port
* @param owner identifies the socket owner
import org.slf4j.LoggerFactory;
/**
- * This object consists of an {@link Value}, which is updated on the respective MQTT topic change.
+ * This object consists of a {@link Value}, which is updated on the respective MQTT topic change.
* Updates to the value are propagated via the {@link ChannelStateUpdateListener}.
*
* @author David Graeff - Initial contribution
protected @Nullable Device device;
/**
- * Parse the base properties of the configJSON into a {@link AbstractChannelConfiguration}
+ * Parse the base properties of the configJSON into an {@link AbstractChannelConfiguration}
*
* @param configJSON channels configuration in JSON
* @param gson parser
}
/**
- * Returns an text representation for a canvas layout.
+ * Returns a text representation for a canvas layout.
*
* Note only canvas supported currently due to its easy geometry
*
}
/**
- * Utility function to close a {@link AutoCloseable} and log any exception thrown.
+ * Utility function to close an {@link AutoCloseable} and log any exception thrown.
*
* @param closeable a possibly null {@link AutoCloseable}. If null, no action is done.
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * The model representing an Neeo Brain(serialize/deserialize json use only)
+ * The model representing a Neeo Brain(serialize/deserialize json use only)
*
* @author Tim Roberts - Initial contribution
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * The model representing an NEEO Device (serialize/deserialize json use only)
+ * The model representing a NEEO Device (serialize/deserialize json use only)
*
* @author Tim Roberts - Initial contribution
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * The model representing an Neeo Device Details (serialize/deserialize json use only)
+ * The model representing a Neeo Device Details (serialize/deserialize json use only)
*
* @author Tim Roberts - Initial contribution
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * The model representing an Neeo Device Details Timings (serialize/deserialize json use only)
+ * The model representing a Neeo Device Details Timings (serialize/deserialize json use only)
*
* @author Tim Roberts - Initial contribution
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * The model representing an Neeo Macro (serialize/deserialize json use only)
+ * The model representing a Neeo Macro (serialize/deserialize json use only)
*
* @author Tim Roberts - Initial contribution
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * The model representing an Neeo Recipe (serialize/deserialize json use only).
+ * The model representing a Neeo Recipe (serialize/deserialize json use only).
*
* @author Tim Roberts - Initial contribution
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * The model representing an Neeo Room (serialize/deserialize json use only).
+ * The model representing a Neeo Room (serialize/deserialize json use only).
*
* @author Tim Roberts - Initial contribution
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * The model representing an Neeo Scenario (serialize/deserialize json use only).
+ * The model representing a Neeo Scenario (serialize/deserialize json use only).
*
* @author Tim Roberts - Initial contribution
*/
import org.slf4j.LoggerFactory;
/**
- * Some automation actions to be used with a {@link OnkyoThingActions}
+ * Some automation actions to be used with an {@link OnkyoThingActions}
*
* @author David Masshardt - initial contribution
*/
/**
* Discovers Plugwise devices by periodically reading the Circle+ node/MAC table with {@link RoleCallRequestMessage}s.
- * Sleeping end devices are discovered when they announce being awake with a {@link AnnounceAwakeRequestMessage}. To
+ * Sleeping end devices are discovered when they announce being awake with an {@link AnnounceAwakeRequestMessage}. To
* reduce network traffic {@link InformationRequestMessage}s are only sent to undiscovered devices.
*
* @author Wouter Born, Karel Goderis - Initial contribution
/**
* Requests the power state of a relay device (Circle, Circle+, Stealth) to be switched on/off. The current power state
- * of a device is retrieved by sending a {@link InformationRequestMessage} and reading the
+ * of a device is retrieved by sending an {@link InformationRequestMessage} and reading the
* {@link InformationResponseMessage#getPowerState()} value.
*
* @author Wouter Born, Karel Goderis - Initial contribution
}
/**
- * retrieves a {@link AbstractAudioDeviceConfig} by its identifier
+ * retrieves an {@link AbstractAudioDeviceConfig} by its identifier
* If several devices correspond to the deviceIdentifier, returns the first one (aphabetical order)
*
* @param The device identifier to match against
}
/**
- * change the volume of a {@link AbstractAudioDeviceConfig}
+ * change the volume of an {@link AbstractAudioDeviceConfig}
*
* @param item the {@link AbstractAudioDeviceConfig} to handle
* @param vol the new volume value the {@link AbstractAudioDeviceConfig} should be changed to (possible values from
}
/**
- * change the volume of a {@link AbstractAudioDeviceConfig}
+ * change the volume of an {@link AbstractAudioDeviceConfig}
*
* @param item the {@link AbstractAudioDeviceConfig} to handle
* @param vol the new volume percent value the {@link AbstractAudioDeviceConfig} should be changed to (possible
/**
* Get's the {@link AbstractRioProtocol} handler. May be null if none currently exists
*
- * @return a {@link AbstractRioProtocol} handler or null if none exists
+ * @return an {@link AbstractRioProtocol} handler or null if none exists
*/
protected E getProtocolHandler() {
return protocolHandler;
/**
* Get's the {@link AbstractRioProtocol} handler. May be null if none currently exists
*
- * @return a {@link AbstractRioProtocol} handler or null if none exists
+ * @return an {@link AbstractRioProtocol} handler or null if none exists
*/
protected E getProtocolHandler() {
return protocolHandler;
logger.debug("{}: No firmware files found for device type {}", LOG_PREFIX, deviceType);
} else {
// Create selection list
- json = "{" + json.replace("[{", "\"versions\":[{") + "}"; // make it an named array
+ json = "{" + json.replace("[{", "\"versions\":[{") + "}"; // make it a named array
FwArchList list = getFirmwareArchiveList(deviceType);
ArrayList<FwArchEntry> versions = list.versions;
if (versions != null) {
list.versions = new ArrayList<FwArchEntry>();
} else {
// Create selection list
- json = "{" + json.replace("[{", "\"versions\":[{") + "}"; // make it an named array
+ json = "{" + json.replace("[{", "\"versions\":[{") + "}"; // make it a named array
list = fromJson(gson, json, FwArchList.class);
}
}
/**
- * Gets a {@link ObisCode} from a String. It must follow the pattern {@value #OBIS_PATTERN}
+ * Gets an {@link ObisCode} from a String. It must follow the pattern {@value #OBIS_PATTERN}
*
* @param obis The obis as String.
* @return The new Obis code. Can not be null.
import org.openmuc.jsml.EUnit;
/**
- * Converts a {@link EUnit} to an {@link Unit}.
+ * Converts an {@link EUnit} to a {@link Unit}.
*
* @author Matthias Steigenberger - Initial contribution
*
private static final long serialVersionUID = -707507777792259512L;
/**
- * Constructs an {@code DeviceNotFoundException} with {@code null}
+ * Constructs a {@code DeviceNotFoundException} with {@code null}
* as its error detail message.
*/
public DeviceNotFoundException() {
}
/**
- * Constructs an {@code DeviceNotFoundException} with the specified detail message.
+ * Constructs a {@code DeviceNotFoundException} with the specified detail message.
*
*
* @param message
}
/**
- * Constructs an {@code DeviceNotFoundException} with the specified detail message
+ * Constructs a {@code DeviceNotFoundException} with the specified detail message
* and cause.
*
* <p>
/**
* The {@link VehicleListener} interface can be implemented by classes that want to be informed about
- * existing vehicles of a given account. They need to register on an {@link TeslaAccountHandler}.
+ * existing vehicles of a given account. They need to register on a {@link TeslaAccountHandler}.
*
* @author Kai Kreuzer - Initial contribution
*/
### Rule examples
You can use the trigger channel to create a rule to calculate additional values.
-Create an new manual Item with a meaningful id, fx. WundergroundUpdateReceiverBinging_HeatIndex with a Number type.
+Create a new manual Item with a meaningful id, fx. WundergroundUpdateReceiverBinging_HeatIndex with a Number type.
Create a rule that triggers when the trigger channel is updated and the following DSL:
```
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * Java class for an channel XML element
+ * Java class for a channel XML element
* Renamed to MediaChannel in order to avoid confusion with Framework Channels
*
* @author Gaël L'hopital - Initial contribution
import org.openhab.binding.yamahareceiver.internal.state.ZoneControlStateListener;
/**
- * Factory to create a {@link AbstractConnection} connection object based on a feature test.
+ * Factory to create an {@link AbstractConnection} connection object based on a feature test.
* Also returns implementation objects for all the protocol interfaces.
* <p>
* At the moment only the XML protocol is supported.
public interface ProtocolFactory {
/**
* Asynchronous method to create and return a connection object. Depending
- * on the feature test it might be either a {@link XMLConnection} or a JsonConnection.
+ * on the feature test it might be either an {@link XMLConnection} or a JsonConnection.
*
* @param host The host name
* @param connectionStateListener
}
/**
- * Utility function to close a {@link AutoCloseable} and log any exception thrown.
+ * Utility function to close an {@link AutoCloseable} and log any exception thrown.
*
* @param closeable a possibly null {@link AutoCloseable}. If null, no action is done.
*/
import org.openhab.io.neeo.internal.NeeoUtil;
/**
- * The model representing an NEEO notification (serialize/deserialize json use only).
+ * The model representing a NEEO notification (serialize/deserialize json use only).
*
* @author Tim Roberts - Initial Contribution
*/
import com.google.gson.annotations.SerializedName;
/**
- * The model representing an NEEO recipe (serialize/deserialize json use only).
+ * The model representing a NEEO recipe (serialize/deserialize json use only).
*
* @author Tim Roberts - Initial Contribution
*/
import org.openhab.io.neeo.internal.NeeoUtil;
/**
- * The model representing an NEEO recipe urls (serialize/deserialize json use only).
+ * The model representing a NEEO recipe urls (serialize/deserialize json use only).
*
* @author Tim Roberts - Initial Contribution
*/
import org.openhab.io.neeo.internal.NeeoUtil;
/**
- * The model representing an NEEO sensor notification (serialize/deserialize json use only).
+ * The model representing a NEEO sensor notification (serialize/deserialize json use only).
*
* @author Tim Roberts - Initial Contribution
*/
import org.slf4j.LoggerFactory;
/**
- * The model representing an NEEO system information (serialize/deserialize json use only). This model only represents a
+ * The model representing a NEEO system information (serialize/deserialize json use only). This model only represents a
* small portion of the system information
*
* @author Tim Roberts - Initial Contribution
*
* @param criteria Criteria to create query from
* @param retentionPolicy Name of the retentionPolicy/bucket to use in query
- * @return Created query as an String
+ * @return Created query as a String
*/
String createQuery(FilterCriteria criteria, String retentionPolicy);
/**
* Converts a value to a {@link State} which is suitable for the given {@link Item}. This is
- * needed for querying a {@link InfluxDBHistoricItem}.
+ * needed for querying an {@link InfluxDBHistoricItem}.
*
* @param value to be converted to a {@link State}
* @param itemName name of the {@link Item} to get the {@link State} for
#### Outgoing data
The JINJA transformation can be used to publish simple JSON strings through, for example, the HTTP Binding's `commandTransformation` parameter.
-Say we have an String Item which holds the following value:
+Say we have a String Item which holds the following value:
```
This is my string
*
* @param function JsonPath expression
* @param source String which contains JSON
- * @throws TransformationException If the JsonPath expression is invalid, a {@link InvalidPathException} is thrown,
+ * @throws TransformationException If the JsonPath expression is invalid, an {@link InvalidPathException} is thrown,
* which is encapsulated in a {@link TransformationException}.
*/
@Override