Search in sources :

Example 46 with DataPointWithEventDetectors

use of com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors in project ma-core-public by infiniteautomation.

the class DataPointImporter method importImpl.

@Override
protected void importImpl() {
    String xid = json.getString("xid");
    DataSourceVO dsvo = null;
    DataPointWithEventDetectors dp = null;
    if (StringUtils.isBlank(xid)) {
        xid = dataPointService.generateUniqueXid();
    } else {
        try {
            dp = dataPointService.getWithEventDetectors(xid);
        } catch (NotFoundException e) {
        }
    }
    if (dp == null) {
        // Locate the data source for the point.
        String dsxid = json.getString("dataSourceXid");
        try {
            dsvo = dataSourceService.get(dsxid);
        } catch (NotFoundException e) {
            addFailureMessage("emport.dataPoint.badReference", xid);
            return;
        }
        DataPointVO vo = new DataPointVO();
        vo.setXid(xid);
        vo.setDataSourceId(dsvo.getId());
        vo.setDataSourceXid(dsxid);
        vo.setPointLocator(dsvo.createPointLocator());
        dp = new DataPointWithEventDetectors(vo, new ArrayList<>());
    }
    // If there is already an entry, merge the event detectors
    DataPointWithEventDetectors existingMapping = dataPointMap.get(xid);
    if (existingMapping != null) {
        dp.getEventDetectors().addAll(existingMapping.getEventDetectors());
    }
    if (dp != null) {
        try {
            // Read into the VO to get all properties
            ctx.getReader().readInto(dp.getDataPoint(), json);
            // If the name is not provided, default to the XID
            if (StringUtils.isBlank(dp.getDataPoint().getName()))
                dp.getDataPoint().setName(xid);
            // If the chart colour is null provide default of '' to handle legacy code that sets colour to null
            if (dp.getDataPoint().getChartColour() == null)
                dp.getDataPoint().setChartColour("");
            // Ensure we have a default permission since null is valid in Mango 3.x
            if (dp.getDataPoint().getReadPermission() == null) {
                dp.getDataPoint().setReadPermission(new MangoPermission());
            }
            if (dp.getDataPoint().getEditPermission() == null) {
                dp.getDataPoint().setEditPermission(new MangoPermission());
            }
            if (dp.getDataPoint().getSetPermission() == null) {
                dp.getDataPoint().setSetPermission(new MangoPermission());
            }
            // Handle embedded event detectors
            JsonArray pedArray = json.getJsonArray("eventDetectors");
            if (pedArray != null) {
                for (JsonValue jv : pedArray) {
                    JsonObject pedObject = jv.toJsonObject();
                    String pedXid = pedObject.getString("xid");
                    AbstractPointEventDetectorVO ped = null;
                    if (!StringUtils.isBlank(pedXid)) {
                        // Use the ped xid to lookup an existing ped.
                        for (AbstractPointEventDetectorVO existing : dp.getEventDetectors()) {
                            if (StringUtils.equals(pedXid, existing.getXid())) {
                                ped = existing;
                                break;
                            }
                        }
                    }
                    if (ped == null) {
                        String typeStr = pedObject.getString("type");
                        if (typeStr == null)
                            throw new TranslatableJsonException("emport.error.ped.missingAttr", "type");
                        // This assumes that all definitions used for data points are Data Point Event Detectors
                        PointEventDetectorDefinition<?> def = ModuleRegistry.getEventDetectorDefinition(typeStr);
                        if (def == null)
                            throw new TranslatableJsonException("emport.error.ped.invalid", "type", typeStr, ModuleRegistry.getEventDetectorDefinitionTypes());
                        else {
                            ped = def.baseCreateEventDetectorVO(dp.getDataPoint());
                            ped.setDefinition(def);
                        }
                        // Create a new one
                        ped.setId(Common.NEW_ID);
                        ped.setXid(pedXid);
                        dp.addOrReplaceDetector(ped);
                    }
                    JsonArray handlerXids = pedObject.getJsonArray("handlers");
                    if (handlerXids != null)
                        for (int k = 0; k < handlerXids.size(); k += 1) {
                            AbstractEventHandlerVO eh = EventHandlerDao.getInstance().getByXid(handlerXids.getString(k));
                            if (eh == null) {
                                throw new TranslatableJsonException("emport.eventHandler.missing", handlerXids.getString(k));
                            } else {
                                ped.addAddedEventHandler(eh);
                            }
                        }
                    ctx.getReader().readInto(ped, pedObject);
                }
            }
            boolean isNew = dp.getDataPoint().isNew();
            try {
                if (Common.runtimeManager.getLifecycleState() == ILifecycleState.RUNNING) {
                    if (isNew) {
                        dataPointService.insert(dp.getDataPoint());
                        // Update all our event detector source Ids
                        for (AbstractPointEventDetectorVO ed : dp.getEventDetectors()) {
                            ed.setSourceId(dp.getDataPoint().getId());
                        }
                    } else {
                        dataPointService.update(dp.getDataPoint().getId(), dp.getDataPoint());
                        // Update all our event detector source Ids
                        for (AbstractPointEventDetectorVO ed : dp.getEventDetectors()) {
                            ed.setSourceId(dp.getDataPoint().getId());
                        }
                    }
                    dataPointMap.put(xid, dp);
                    addSuccessMessage(isNew, "emport.dataPoint.prefix", xid);
                } else {
                    addFailureMessage("emport.dataPoint.runtimeManagerNotRunning", xid);
                }
            } catch (LicenseViolatedException e) {
                addFailureMessage("emport.DataPoint.notImported", e.getErrorMessage(), xid);
                addDetectorsFailureMessage(dp, xid);
            }
        } catch (ValidationException e) {
            setValidationMessages(e.getValidationResult(), "emport.dataPoint.prefix", xid);
            addDetectorsFailureMessage(dp, xid);
        } catch (TranslatableJsonException e) {
            addFailureMessage("emport.dataPoint.prefix", xid, e.getMsg());
            addDetectorsFailureMessage(dp, xid);
        } catch (JsonException e) {
            addFailureMessage("emport.dataPoint.prefix", xid, getJsonExceptionMessage(e));
            addDetectorsFailureMessage(dp, xid);
        }
    }
}
Also used : DataSourceVO(com.serotonin.m2m2.vo.dataSource.DataSourceVO) DataPointVO(com.serotonin.m2m2.vo.DataPointVO) TranslatableJsonException(com.serotonin.m2m2.i18n.TranslatableJsonException) JsonException(com.serotonin.json.JsonException) ValidationException(com.infiniteautomation.mango.util.exception.ValidationException) AbstractPointEventDetectorVO(com.serotonin.m2m2.vo.event.detector.AbstractPointEventDetectorVO) LicenseViolatedException(com.serotonin.m2m2.LicenseViolatedException) ArrayList(java.util.ArrayList) JsonValue(com.serotonin.json.type.JsonValue) DataPointWithEventDetectors(com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors) NotFoundException(com.infiniteautomation.mango.util.exception.NotFoundException) JsonObject(com.serotonin.json.type.JsonObject) TranslatableJsonException(com.serotonin.m2m2.i18n.TranslatableJsonException) AbstractEventHandlerVO(com.serotonin.m2m2.vo.event.AbstractEventHandlerVO) JsonArray(com.serotonin.json.type.JsonArray) MangoPermission(com.infiniteautomation.mango.permission.MangoPermission)

Example 47 with DataPointWithEventDetectors

use of com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors in project ma-core-public by infiniteautomation.

the class EventDetectorImporter method importImpl.

@Override
protected void importImpl() {
    String dataPointXid = json.getString("dataPointXid");
    DataPointWithEventDetectors dp;
    // Everyone is in the same thread so no synchronization on dataPointMap required.
    if (dataPointMap.containsKey(dataPointXid))
        dp = dataPointMap.get(dataPointXid);
    else {
        try {
            dp = dataPointService.getWithEventDetectors(dataPointXid);
            dataPointMap.put(dataPointXid, dp);
        } catch (NotFoundException e) {
            addFailureMessage("emport.error.missingPoint", dataPointXid);
            return;
        }
    }
    String typeStr = json.getString("type");
    if (typeStr == null)
        addFailureMessage("emport.error.ped.missingAttr", "type");
    PointEventDetectorDefinition<?> def = ModuleRegistry.getEventDetectorDefinition(typeStr);
    if (def == null) {
        addFailureMessage("emport.error.ped.invalid", "type", typeStr, ModuleRegistry.getEventDetectorDefinitionTypes());
        return;
    }
    String xid = json.getString("xid");
    AbstractEventDetectorVO importing;
    importing = EventDetectorDao.getInstance().getByXid(xid);
    if (importing == null) {
        importing = def.baseCreateEventDetectorVO(dp.getDataPoint());
        importing.setDefinition(def);
        // Create a new one
        importing.setId(Common.NEW_ID);
        importing.setXid(xid);
    }
    JsonArray handlerXids = json.getJsonArray("handlers");
    if (handlerXids != null)
        for (int k = 0; k < handlerXids.size(); k += 1) {
            AbstractEventHandlerVO eh = EventHandlerDao.getInstance().getByXid(handlerXids.getString(k));
            if (eh == null) {
                addFailureMessage("emport.eventHandler.missing", handlerXids.getString(k));
                return;
            } else {
                importing.addAddedEventHandler(eh);
            }
        }
    AbstractPointEventDetectorVO dped = (AbstractPointEventDetectorVO) importing;
    dp.addOrReplaceDetector(dped);
    try {
        ctx.getReader().readInto(importing, json);
    } catch (TranslatableJsonException e) {
        addFailureMessage("emport.eventDetector.prefix", xid, e.getMsg());
    } catch (JsonException e) {
        addFailureMessage("emport.eventDetector.prefix", xid, getJsonExceptionMessage(e));
    }
}
Also used : JsonArray(com.serotonin.json.type.JsonArray) TranslatableJsonException(com.serotonin.m2m2.i18n.TranslatableJsonException) JsonException(com.serotonin.json.JsonException) AbstractPointEventDetectorVO(com.serotonin.m2m2.vo.event.detector.AbstractPointEventDetectorVO) AbstractEventDetectorVO(com.serotonin.m2m2.vo.event.detector.AbstractEventDetectorVO) DataPointWithEventDetectors(com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors) NotFoundException(com.infiniteautomation.mango.util.exception.NotFoundException) TranslatableJsonException(com.serotonin.m2m2.i18n.TranslatableJsonException) AbstractEventHandlerVO(com.serotonin.m2m2.vo.event.AbstractEventHandlerVO)

Example 48 with DataPointWithEventDetectors

use of com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors in project ma-core-public by infiniteautomation.

the class CompiledMangoJavaScript method initialize.

/**
 * Clear the engine scope and initialize it with an expandable context which is filled with the ScriptContextVariables and returned
 *
 * @throws ScriptPermissionsException - permission denied executing a command
 * @throws ScriptError - Execution failure, generally will have line and column number with message
 * @throws DataPointStateException - If a point is not enabled or missing (unless testRun is true, then a dummy point is created)
 */
public Map<String, IDataPointValueSource> initialize(List<ScriptContextVariable> variables) throws ScriptPermissionsException, ScriptError, DataPointStateException {
    Map<String, IDataPointValueSource> context = new HashMap<>();
    if (variables != null) {
        for (ScriptContextVariable variable : variables) {
            DataPointVO dpvo = DataPointDao.getInstance().get(variable.getDataPointId());
            if (dpvo != null) {
                DataPointRT dprt = Common.runtimeManager.getDataPoint(dpvo.getId());
                // So we can test with points disabled
                if (dprt == null) {
                    if (testRun) {
                        if (dpvo.getDefaultCacheSize() == 0) {
                            dpvo.setDefaultCacheSize(1);
                        }
                        // Generate some fake event detectors
                        DataPointWithEventDetectors dp = new DataPointWithEventDetectors(dpvo, new ArrayList<>());
                        DataSourceRT<? extends DataSourceVO> dataSource = DataSourceDao.getInstance().get(dpvo.getDataSourceId()).createDataSourceRT();
                        dprt = new DataPointRT(dp, dpvo.getPointLocator().createRuntime(), dataSource, null, pointValueDao, pointValueCache);
                    } else {
                        throw new DataPointStateException(variable.getDataPointId(), new TranslatableMessage("event.script.contextPointDisabled", variable.getVariableName(), dpvo.getXid()));
                    }
                }
                if (dprt != null)
                    context.put(variable.getVariableName(), dprt);
            } else {
                throw new DataPointStateException(variable.getDataPointId(), new TranslatableMessage("event.script.contextPointMissing", variable.getVariableName(), variable.getDataPointId()));
            }
        }
    }
    this.initialize(context);
    return context;
}
Also used : DataPointVO(com.serotonin.m2m2.vo.DataPointVO) HashMap(java.util.HashMap) DataPointStateException(com.serotonin.m2m2.rt.script.DataPointStateException) IDataPointValueSource(com.serotonin.m2m2.rt.dataImage.IDataPointValueSource) DataPointRT(com.serotonin.m2m2.rt.dataImage.DataPointRT) ScriptContextVariable(com.serotonin.m2m2.rt.script.ScriptContextVariable) DataPointWithEventDetectors(com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors) TranslatableMessage(com.serotonin.m2m2.i18n.TranslatableMessage)

Example 49 with DataPointWithEventDetectors

use of com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors in project ma-core-public by MangoAutomation.

the class DataPointImporter method importImpl.

@Override
protected void importImpl() {
    String xid = json.getString("xid");
    DataSourceVO dsvo = null;
    DataPointWithEventDetectors dp = null;
    if (StringUtils.isBlank(xid)) {
        xid = dataPointService.generateUniqueXid();
    } else {
        try {
            dp = dataPointService.getWithEventDetectors(xid);
        } catch (NotFoundException e) {
        }
    }
    if (dp == null) {
        // Locate the data source for the point.
        String dsxid = json.getString("dataSourceXid");
        try {
            dsvo = dataSourceService.get(dsxid);
        } catch (NotFoundException e) {
            addFailureMessage("emport.dataPoint.badReference", xid);
            return;
        }
        DataPointVO vo = new DataPointVO();
        vo.setXid(xid);
        vo.setDataSourceId(dsvo.getId());
        vo.setDataSourceXid(dsxid);
        vo.setPointLocator(dsvo.createPointLocator());
        dp = new DataPointWithEventDetectors(vo, new ArrayList<>());
    }
    // If there is already an entry, merge the event detectors
    DataPointWithEventDetectors existingMapping = dataPointMap.get(xid);
    if (existingMapping != null) {
        dp.getEventDetectors().addAll(existingMapping.getEventDetectors());
    }
    if (dp != null) {
        try {
            // Read into the VO to get all properties
            ctx.getReader().readInto(dp.getDataPoint(), json);
            // If the name is not provided, default to the XID
            if (StringUtils.isBlank(dp.getDataPoint().getName()))
                dp.getDataPoint().setName(xid);
            // If the chart colour is null provide default of '' to handle legacy code that sets colour to null
            if (dp.getDataPoint().getChartColour() == null)
                dp.getDataPoint().setChartColour("");
            // Ensure we have a default permission since null is valid in Mango 3.x
            if (dp.getDataPoint().getReadPermission() == null) {
                dp.getDataPoint().setReadPermission(new MangoPermission());
            }
            if (dp.getDataPoint().getEditPermission() == null) {
                dp.getDataPoint().setEditPermission(new MangoPermission());
            }
            if (dp.getDataPoint().getSetPermission() == null) {
                dp.getDataPoint().setSetPermission(new MangoPermission());
            }
            // Handle embedded event detectors
            JsonArray pedArray = json.getJsonArray("eventDetectors");
            if (pedArray != null) {
                for (JsonValue jv : pedArray) {
                    JsonObject pedObject = jv.toJsonObject();
                    String pedXid = pedObject.getString("xid");
                    AbstractPointEventDetectorVO ped = null;
                    if (!StringUtils.isBlank(pedXid)) {
                        // Use the ped xid to lookup an existing ped.
                        for (AbstractPointEventDetectorVO existing : dp.getEventDetectors()) {
                            if (StringUtils.equals(pedXid, existing.getXid())) {
                                ped = existing;
                                break;
                            }
                        }
                    }
                    if (ped == null) {
                        String typeStr = pedObject.getString("type");
                        if (typeStr == null)
                            throw new TranslatableJsonException("emport.error.ped.missingAttr", "type");
                        // This assumes that all definitions used for data points are Data Point Event Detectors
                        PointEventDetectorDefinition<?> def = ModuleRegistry.getEventDetectorDefinition(typeStr);
                        if (def == null)
                            throw new TranslatableJsonException("emport.error.ped.invalid", "type", typeStr, ModuleRegistry.getEventDetectorDefinitionTypes());
                        else {
                            ped = def.baseCreateEventDetectorVO(dp.getDataPoint());
                            ped.setDefinition(def);
                        }
                        // Create a new one
                        ped.setId(Common.NEW_ID);
                        ped.setXid(pedXid);
                        dp.addOrReplaceDetector(ped);
                    }
                    JsonArray handlerXids = pedObject.getJsonArray("handlers");
                    if (handlerXids != null)
                        for (int k = 0; k < handlerXids.size(); k += 1) {
                            AbstractEventHandlerVO eh = EventHandlerDao.getInstance().getByXid(handlerXids.getString(k));
                            if (eh == null) {
                                throw new TranslatableJsonException("emport.eventHandler.missing", handlerXids.getString(k));
                            } else {
                                ped.addAddedEventHandler(eh);
                            }
                        }
                    ctx.getReader().readInto(ped, pedObject);
                }
            }
            boolean isNew = dp.getDataPoint().isNew();
            try {
                if (Common.runtimeManager.getLifecycleState() == ILifecycleState.RUNNING) {
                    if (isNew) {
                        dataPointService.insert(dp.getDataPoint());
                        // Update all our event detector source Ids
                        for (AbstractPointEventDetectorVO ed : dp.getEventDetectors()) {
                            ed.setSourceId(dp.getDataPoint().getId());
                        }
                    } else {
                        dataPointService.update(dp.getDataPoint().getId(), dp.getDataPoint());
                        // Update all our event detector source Ids
                        for (AbstractPointEventDetectorVO ed : dp.getEventDetectors()) {
                            ed.setSourceId(dp.getDataPoint().getId());
                        }
                    }
                    dataPointMap.put(xid, dp);
                    addSuccessMessage(isNew, "emport.dataPoint.prefix", xid);
                } else {
                    addFailureMessage("emport.dataPoint.runtimeManagerNotRunning", xid);
                }
            } catch (LicenseViolatedException e) {
                addFailureMessage("emport.DataPoint.notImported", e.getErrorMessage(), xid);
                addDetectorsFailureMessage(dp, xid);
            }
        } catch (ValidationException e) {
            setValidationMessages(e.getValidationResult(), "emport.dataPoint.prefix", xid);
            addDetectorsFailureMessage(dp, xid);
        } catch (TranslatableJsonException e) {
            addFailureMessage("emport.dataPoint.prefix", xid, e.getMsg());
            addDetectorsFailureMessage(dp, xid);
        } catch (JsonException e) {
            addFailureMessage("emport.dataPoint.prefix", xid, getJsonExceptionMessage(e));
            addDetectorsFailureMessage(dp, xid);
        }
    }
}
Also used : DataSourceVO(com.serotonin.m2m2.vo.dataSource.DataSourceVO) DataPointVO(com.serotonin.m2m2.vo.DataPointVO) TranslatableJsonException(com.serotonin.m2m2.i18n.TranslatableJsonException) JsonException(com.serotonin.json.JsonException) ValidationException(com.infiniteautomation.mango.util.exception.ValidationException) AbstractPointEventDetectorVO(com.serotonin.m2m2.vo.event.detector.AbstractPointEventDetectorVO) LicenseViolatedException(com.serotonin.m2m2.LicenseViolatedException) ArrayList(java.util.ArrayList) JsonValue(com.serotonin.json.type.JsonValue) DataPointWithEventDetectors(com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors) NotFoundException(com.infiniteautomation.mango.util.exception.NotFoundException) JsonObject(com.serotonin.json.type.JsonObject) TranslatableJsonException(com.serotonin.m2m2.i18n.TranslatableJsonException) AbstractEventHandlerVO(com.serotonin.m2m2.vo.event.AbstractEventHandlerVO) JsonArray(com.serotonin.json.type.JsonArray) MangoPermission(com.infiniteautomation.mango.permission.MangoPermission)

Example 50 with DataPointWithEventDetectors

use of com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors in project ma-core-public by MangoAutomation.

the class CompiledMangoJavaScript method initialize.

/**
 * Clear the engine scope and initialize it with an expandable context which is filled with the ScriptContextVariables and returned
 *
 * @throws ScriptPermissionsException - permission denied executing a command
 * @throws ScriptError - Execution failure, generally will have line and column number with message
 * @throws DataPointStateException - If a point is not enabled or missing (unless testRun is true, then a dummy point is created)
 */
public Map<String, IDataPointValueSource> initialize(List<ScriptContextVariable> variables) throws ScriptPermissionsException, ScriptError, DataPointStateException {
    Map<String, IDataPointValueSource> context = new HashMap<>();
    if (variables != null) {
        for (ScriptContextVariable variable : variables) {
            DataPointVO dpvo = DataPointDao.getInstance().get(variable.getDataPointId());
            if (dpvo != null) {
                DataPointRT dprt = Common.runtimeManager.getDataPoint(dpvo.getId());
                // So we can test with points disabled
                if (dprt == null) {
                    if (testRun) {
                        if (dpvo.getDefaultCacheSize() == 0) {
                            dpvo.setDefaultCacheSize(1);
                        }
                        // Generate some fake event detectors
                        DataPointWithEventDetectors dp = new DataPointWithEventDetectors(dpvo, new ArrayList<>());
                        DataSourceRT<? extends DataSourceVO> dataSource = DataSourceDao.getInstance().get(dpvo.getDataSourceId()).createDataSourceRT();
                        dprt = new DataPointRT(dp, dpvo.getPointLocator().createRuntime(), dataSource, null, pointValueDao, pointValueCache);
                    } else {
                        throw new DataPointStateException(variable.getDataPointId(), new TranslatableMessage("event.script.contextPointDisabled", variable.getVariableName(), dpvo.getXid()));
                    }
                }
                if (dprt != null)
                    context.put(variable.getVariableName(), dprt);
            } else {
                throw new DataPointStateException(variable.getDataPointId(), new TranslatableMessage("event.script.contextPointMissing", variable.getVariableName(), variable.getDataPointId()));
            }
        }
    }
    this.initialize(context);
    return context;
}
Also used : DataPointVO(com.serotonin.m2m2.vo.DataPointVO) HashMap(java.util.HashMap) DataPointStateException(com.serotonin.m2m2.rt.script.DataPointStateException) IDataPointValueSource(com.serotonin.m2m2.rt.dataImage.IDataPointValueSource) DataPointRT(com.serotonin.m2m2.rt.dataImage.DataPointRT) ScriptContextVariable(com.serotonin.m2m2.rt.script.ScriptContextVariable) DataPointWithEventDetectors(com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors) TranslatableMessage(com.serotonin.m2m2.i18n.TranslatableMessage)

Aggregations

DataPointWithEventDetectors (com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors)54 DataPointRT (com.serotonin.m2m2.rt.dataImage.DataPointRT)29 PointValueDao (com.serotonin.m2m2.db.dao.PointValueDao)25 PointValueTime (com.serotonin.m2m2.rt.dataImage.PointValueTime)24 DataPointVO (com.serotonin.m2m2.vo.DataPointVO)22 Test (org.junit.Test)22 ArrayList (java.util.ArrayList)20 AbstractPointEventDetectorVO (com.serotonin.m2m2.vo.event.detector.AbstractPointEventDetectorVO)18 PointValueCache (com.infiniteautomation.mango.pointvaluecache.PointValueCache)7 ValidationException (com.infiniteautomation.mango.util.exception.ValidationException)6 JsonException (com.serotonin.json.JsonException)6 HashMap (java.util.HashMap)5 NotFoundException (com.infiniteautomation.mango.util.exception.NotFoundException)4 JsonArray (com.serotonin.json.type.JsonArray)4 TranslatableJsonException (com.serotonin.m2m2.i18n.TranslatableJsonException)4 TranslatableMessage (com.serotonin.m2m2.i18n.TranslatableMessage)4 IDataPointValueSource (com.serotonin.m2m2.rt.dataImage.IDataPointValueSource)4 MockPointLocatorVO (com.serotonin.m2m2.vo.dataPoint.MockPointLocatorVO)4 SerialPointLocatorVO (com.infiniteautomation.serial.vo.SerialPointLocatorVO)3 DataPointChangeDefinition (com.serotonin.m2m2.module.definitions.dataPoint.DataPointChangeDefinition)3