Search in sources :

Example 6 with DataPointStateException

use of com.serotonin.m2m2.rt.script.DataPointStateException 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

TranslatableMessage (com.serotonin.m2m2.i18n.TranslatableMessage)4 DataPointRT (com.serotonin.m2m2.rt.dataImage.DataPointRT)4 IDataPointValueSource (com.serotonin.m2m2.rt.dataImage.IDataPointValueSource)4 DataPointStateException (com.serotonin.m2m2.rt.script.DataPointStateException)4 DataPointVO (com.serotonin.m2m2.vo.DataPointVO)4 HashMap (java.util.HashMap)4 ValidationException (com.infiniteautomation.mango.util.exception.ValidationException)2 CompiledMangoJavaScript (com.infiniteautomation.mango.util.script.CompiledMangoJavaScript)2 MangoJavaScriptError (com.infiniteautomation.mango.util.script.MangoJavaScriptError)2 MangoJavaScriptResult (com.infiniteautomation.mango.util.script.MangoJavaScriptResult)2 ShouldNeverHappenException (com.serotonin.ShouldNeverHappenException)2 NullWriter (com.serotonin.io.NullWriter)2 ResultTypeException (com.serotonin.m2m2.rt.script.ResultTypeException)2 ScriptContextVariable (com.serotonin.m2m2.rt.script.ScriptContextVariable)2 ScriptError (com.serotonin.m2m2.rt.script.ScriptError)2 ScriptPermissionsException (com.serotonin.m2m2.rt.script.ScriptPermissionsException)2 NullPrintWriter (com.serotonin.m2m2.util.log.NullPrintWriter)2 DataPointWithEventDetectors (com.serotonin.m2m2.vo.dataPoint.DataPointWithEventDetectors)2 PermissionException (com.serotonin.m2m2.vo.permission.PermissionException)2 PermissionHolder (com.serotonin.m2m2.vo.permission.PermissionHolder)2