All Classes and Interfaces

Class
Description
 
 
 
An agent is a special sub type of Asset that is associated with a Protocol and is responsible for providing an instance of the associated Protocol when requested via Agent.getProtocolInstance().
Special type of AssetDescriptor that describes an agent Asset.
 
Represents the configuration of an Attribute linked to an Agent; each Agent should have its' own concrete implementation of this class or use DefaultAgentLink with fields describing each configuration item and standard JSR-380 annotations should be used to provide validation logic.
This resource is for Agent specific tasks like import and discovery; normal asset/attribute CRUD operations should still use AssetResource.
 
 
 
 
 
 
 
 
Facade for sending Alarms from rules RHS.
 
Determines if the value is an array and meets the following: ArrayPredicate.value - Does array contain this value ArrayPredicate.index - If specified will check that the value at this index equals the specified ArrayPredicate.value ArrayPredicate.lengthEquals - Is length of array equal to the specified value ArrayPredicate.lengthGreaterThan - Is length of array greater than the specified value ArrayPredicate.lengthLessThan - Is length of array less than the specified value There is an implicit 'and' between each specified condition; the negation is applied once all the criteria are evaluated.
The main model class of this software.
The purpose of this is to provide Attribute.AttributeDeserializer access to the asset type so the AttributeDescriptor can be looked up to control value deserialization; this isn't used when hydrating from the DB as JPA uses its' own hydration mechanism so we also have a lazy loading of attribute value mechanism.
 
 
 
 
 
This `AssetDatapointQuery` retrieves the value of a datapoint associated with a specific `AttributeRef` at a specified timestamp.
 
 
Describes an Asset that can be added to this instance; the AssetDescriptor.getName() must match the Asset.type with which it is associated.
 
This event is used when an Asset is created, read, updated or deleted (updates are only fired when one or more top level Asset properties are changed (including attributes).
 
 
 
Provides model descriptors that are processed by ValueUtil; implementations can be discovered using the standard ServiceLoader mechanism or can be manually registered by adding an instance to the ValueUtil.getModelProviders().
Resource for handling model requests and also providing server side validation of Assets
 
 
 
Encapsulate asset query restriction, projection, and ordering of results.
 
String matching options
Binary operators
 
 
 
Assetinvalid input: '<'?> access rules: The superuser (the admin in the master realm) may access all assets.
 
Rules that can only be triggered by asset modifications in a particular asset subtree, and can only modify asset data in a particular asset subtree.
Facade for writing rules RHS actions, supporting asset queries within the scope of the rule engine, and dispatching of AttributeEvent as rule consequence.
This event is used in response to a ReadAssetsEvent.
Allows Assets to be represented in a hierarchical structure
Resolves asset type strings using ValueUtil
 
 
 
A JSR-380 validator that uses ValueUtil to ensure that the Asset.getAttributes() conforms to the AttributeDescriptors for the given Asset type.
Stores a named value with associated MetaItems.
Custom deserializer that can use asset type info from deserialization context when it is passed in from the asset deserializer
Custom serializer that can serialize valueStr (for attributes that haven't been fully hydrated)
Describes an Attribute that can be added to an Asset; the AbstractNameValueDescriptorHolder.getName() must match the AbstractNameValueHolder.getName(), it also indicates what the ValueDescriptor is for the Attribute and optionally provides default MetaItems that should be added to new instances of the Attribute.
Represents an Attribute value at a point in time.
 
 
 
 
 
 
A JSR-380 validator that uses ValueUtil to ensure that the Asset.getAttributes() conforms to the AttributeDescriptors for the given Asset type.
 
A link from one attribute to another with a definition of how to map the value from the source attribute to the linked attribute.
 
 
Adds additional predicate logic to NameValuePredicate, allowing predicating on Attribute.getMeta() presence/absence and/or values; there is an implicit OR between meta predicates (and condition can be achieved by creating multiple AttributePredicates in an LogicGroup.Operator.AND LogicGroup.
A reference to an entity and an Attribute.
The desired or current or past state of an AttributeRef.
 
 
 
Predicate for boolean values; will evaluate the value as a boolean and match against this predicates value, any value that is not a boolean will not match.
 
Represents an event that occurs at a point in time with a CalendarEvent.start, {#link #end} and optional CalendarEvent.recurrence and loosely follows the following standard for JSEvent.
 
Can be applied to Attributes of type ValueType.CALENDAR_EVENT.
A client can unsubscribe from SharedEvents on the server, providing the type of event it doesn't want to receive anymore or the subscription ID to remove a specific subscriber.
 
 
 
Roles available for our client application on Keycloak.
 
 
 
Indicates the status of an agent's protocol instance; but can also be used internally by a protocol if desired.
 
 
 
 
 
 
 
Encapsulates data about a console instance that is used to generate an Asset of type
invalid reference
org.openremote.model.asset.AssetType#CONSOLE
.
 
 
 
The Container is a registry of services, the order of services in a container is important and is determined by the ContainerService.getPriority() value; when starting the Container using the auto service discovery mechanism.
 
Basic cron expression parser (unfortunately the quartz cron expression class uses all protected methods and class is final).
 
 
 
 
 
 
 
 
 
A top-level object of DashboardQuery, that is meant for filtering its output.
 
 
 
 
 
 
A datapoint is used to hold time series data of an entity attribute.
 
 
 
 
Predicate for date time values; provided values should be valid ISO 8601 datetime strings (e.g.
A simple key based debounce utility
Does nothing other than hide the generic type parameter which causes problems with inference from class references
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Interface for providing a list of entity class names to be registered for JPA, this can be used for registering custom Asset types etc.
 
 
 
 
A timestamped event.
Simple observer/observable implementation, thread-safe.
Filters SharedEvent by arbitrary criteria.
 
 
Handle for receiving events from EventBus.
A consumer can subscribe to Events on the server, providing the type of event it wants to receive as well as filter criteria to restrict the events to an interesting subset.
 
 
 
 
 
 
 
 
 
 
 
A sync rule lists any Attributes and/or MetaItems that should be removed and/or added from/to a given asset type before it is sent to the central instance
A filter for limiting when AttributeEvents are sent to the central instance.
Request the gateway to return a GatewayCapabilitiesResponseEvent
 
Resource for managing the connection to a central manager
 
Published by the server when a GatewayConnection status changes.
Used to indicate to a connected gateway should disconnect with the GatewayDisconnectEvent.reason indicating why the disconnect has been requested.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Rules that apply to all realms and assets, for the whole system.
 
An asset for grouping other assets together; The GroupAsset.CHILD_ASSET_TYPE Attribute must be specified and all children must be of the specified type or a subtype of the specified type.
 
Allows implementors to provide health status data that is relevant to them.
 
 
 
 
Facade for historic data points in rules
 
If used on a persistent Entity, an identifier value will only be set when an instance is persisted if there was no identifier already set.
 
This filter works on any type of data; when applying the filter the data should be converted to JSON representation using a tool like Jackson and then the JSON path expression should be applied to this JSON string.
A declarative rule definition a.k.a.
 
 
 
 
 
 
 
 
 
 
Represents a mail message; only represents text part with combined headers from the outer message and any mime part that contained the text content
 
 
 
 
Implements MapLibre style spec
 
 
Implements MapLibre style spec sources property.
 
 
 
A named value whose name must match the name of a MetaItemDescriptor and whose value must match the value type of the MetaItemDescriptor.
Serialise the meta item as just the value to make it less verbose
Describes a MetaItem that can be added to an Attribute; the AbstractNameValueDescriptorHolder.getName() must match the AbstractNameValueHolder.getName(), it also indicates what the ValueDescriptor is for the MetaItem.
This class handles deserialising meta item descriptor names to MetaItemDescriptors; to reuse instances
 
 
Deserialise a MetaMap that is represented as a JSON object where each key is the name of a MetaItemDescriptor
 
To be used on Asset classes to include another class in descriptor scans (only used when AssetModelProvider.useAutoScan() is true), otherwise the descriptors must be explicitly specified in the appropriate AssetModelProvider descriptor getter methods.
 
Annotation for telling the Asset model scanner to ignore the annotated type
Special map for NameHolder items where item names are used as map keys.
Identifies an item that holds a named property, the name should be very simple, as we use them in SQL path expressions, etc.
This class handles serialising ValueDescriptors as strings
 
A predicate that can be applied to a NameValuePredicate; there is an implicit AND condition between the name and the value; one or both the name and value should be supplied and the following logic applies: Both - A AbstractNameValueHolder whose AbstractNameValueHolder.getName() matches NameValuePredicate.name and whose AbstractNameValueHolder.getValue() matches NameValuePredicate.value Name only - A AbstractNameValueHolder whose AbstractNameValueHolder.getName() matches NameValuePredicate.name Value only - A AbstractNameValueHolder whose AbstractNameValueHolder.getValue() matches NameValuePredicate.value When the predicate is applied the AbstractNameValueHolder.getValue() is converted to JSON representation if not already this ensures consistency of results between in memory predicate evaluation and those applied to the DB.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Facade for sending Notifications from rules RHS.
 
A number comparator based on: https://stackoverflow.com/questions/2683202/comparing-the-values-of-two-generic-numbers
Predicate for number values; will match based on configured options.
 
 
 
 
 
 
Registers serializers/deserializers for OpenRemote model types that need special handling
 
 
 
 
 
 
 
Allows proper ISO8601 duration values which combine Duration and Period
 
 
 
 
 
Facade for predicted datapoints in rules
 
A protocol instance is responsible for connecting devices and services to the context broker.
To be used by protocols that support linked device discovery; these devices can be represented as Assets with Attributes that contain the necessary MetaItems to establish a link to the supplied Agent.
To be used by protocols that support device import from a protocol specific file.
Interface for protocols to perform limited asset related operations within their own realm
Raised when protocol device asset(s) has been discovered
Initiates a protocol discovery import (either instance or asset discovery depending on ProtocolDiscoveryImportRequestEvent.isAssetDiscovery()); for a given client only one discovery process can be running at a time so any already running discovery process will be stopped.
Raised when a protocol instance has been discovered for the specified agent type
Initiates a protocol discovery process (either instance or asset discovery depending on ProtocolDiscoveryStartRequestEvent.isAssetDiscovery()); for a given client only one discovery process can be running at a time so any already running discovery process will be stopped.
Indicates that discovery has started/stopped for the given ProtocolDiscoveryStartStopResponseEvent.getAgentDescriptor().
Request any running discovery be stopped
To be used by protocols that support Protocol instance discovery; these instances can be represented as Agent Assets with Attributes that contain the necessary configuration to establish a connection to the protocol instance.
 
 
 
 
 
 
Represents an action button that can be shown on push alerts (dependent on console support)
 
 
 
Predicate for GEO JSON point values; will return true if the point is within the specified radius of the specified latitude and longitude unless negated.
A client sends this event to the server to read the specified asset, optionally restricting which attributes expecting the server to answer "soon" with an AssetEvent.
A client sends this event to the server to query assets, expecting the server to answer "soon" with an AssetsEvent with the results.
A client sends this event to the server to refresh the value of the specified attribute, expecting the server to answer "soon" with an AttributeEvent.
This can be used (among other things) to query the REALM table in JPA queries.
 
 
 
Manage realms.
 
Rules that can only be triggered by asset modifications in a particular realm, and can only modify asset data in a particular realm.
An event that carries information about the realm it occurred in.
Predicate for GEO JSON point values; will return true if the point is within the specified rectangle specified as latitude and longitude values of two corners unless negated.
 
 
 
A client sends this event to the server to request SimulatorState for the specified Agent expecting the server to answer "soon".
For events that require a response, the consumers of these messages are responsible for calling the response consumer
Represents a role; depending on the context then different values will be populated.
 
 
 
 
Controls which Assets the RuleAction is applied to; if not supplied or none of the options are supplied then the default behaviour is to use all Assets that caused the rule to trigger.
 
 
 
 
 
Consists of one of the following triggers in order of precedence: RuleCondition.cron - CRON expression (e.g.
Controls if/when a rule can be eligible for firing again;
Defines the scope of the recurrence
 
 
 
Published by the server when a rules engine changes its RulesEngineStatus.
Rules can be defined in three scopes: global, for a realm, for an asset sub-tree.
 
Published by the server when a ruleset of a rules engine changes its RulesetStatus.
 
 
 
 
 
 
 
A task that runs when the application starts.
Provides a list of Setup tasks to execute.
An event that can be serialized and shared between client and server.
 
 
Represents a value at a point in time defined as the number of seconds of the day.
A snapshot of SimulatorAttributeInfos for a given Simulator Agent.
 
Built in model provider that scans the model classes for asset classes and also includes MetaItemType and ValueType classes.
 
Predicate for string values; will match based on configured options.
 
 
 
 
The astronomical position of the sun
 
 
 
 
 
 
A rule fact that has a timestamp, it expires after a certain time.
 
 
 
Generic asset i.e.
A helper class with utility methods for time related operations.
 
 
Annotation for telling the typescript generator to ignore the annotated type
Annotation for telling the typescript generator to ignore type parameters of the annotated class; if no TsIgnoreTypeParams.paramIndexes() are specified then all type parameters are ignored.
The server returns this message when an EventSubscription failed.
Generate a globally unique identifier value.
This is only needed so JPA can deserialise an Asset whose type doesn't match an entity otherwise it is un-used
This can be used (among other things) to query the USER_ENTITY table in JPA queries.
An asset can be linked to many users, and a user can have links to many assets.
 
 
 
 
 
 
 
 
 
Manage users in realms and get info of current user.
Facade for writing rules RHS actions, supporting UserQuery within the scope of the rule engine.
 
 
Represents a constraint to apply to a value; most are based on JSR-380 validation.
The attribute value must match any of the specified values in the ValueConstraint.AllowedValues.allowedValues property.
The attribute value must be a java time object, java date object, a string in ISO8601 format or a number representing epoch milliseconds; the value must represent a time in the future.
The attribute value must be a java time object, java date object, a string in ISO8601 format or a number representing epoch milliseconds; the value must represent a time in the future or present.
The attribute value must be a number lower or equal to the specified value on the ValueConstraint.Max.max property.
The attribute value must be a number higher or equal to the specified value on the ValueConstraint.Min.min property.
The attribute value must not be null and must contain at least 1 non-whitespace character.
The attribute value must not be null nor empty.
The attribute value must not be null.
The attribute value must be a java time object, java date object, a string in ISO8601 format or a number representing epoch milliseconds; the value must represent a time in the past.
The attribute value must be a java time object, java date object, a string in ISO8601 format or a number representing epoch milliseconds; the value must represent a time in the past or present.
The attribute value must match the regular expression pattern described in the ValueConstraint.Pattern.regexp property.
The attribute value must be between the specified boundaries based on the ValueConstraint.Size.min and ValueConstraint.Size.max properties.
 
A simple wrapper around a Class that describes a value that can be used by Attributes and MetaItems; it can also store ValueConstraint and ValueFormat information.
Custom deserialiser that will return the same instance of ValueDescriptor using the ValueDescriptor.ValueDescriptorDeserializer.VALUE_DESCRIPTOR_PROVIDER attribute; otherwise it will construct a new instance
Identifies an item that holds a ValueDescriptor.
 
Interface for a filter that can be applied to a value, the filter can return a different value type to the supplied value (i.e.
Represents formatting rules to apply to date and number values when converting to String representation; based on HTML Intl API, see: here.
 
Indicates that the implementing class provides a value of <T> the value should be immutable.
 
 
 
 
 
 
 
 
Utilities for working with values/JSON and asset model
A FunctionalInterface for populating the ConstraintViolation.getPropertyPath() for the value being validated (e.g.
 
 
 
 
 
 
 
 
TODO Deploy this as a JSON file + some HTML files to create a widget