com.cedarsoftware.ncube.CommandCell.groovy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of n-cube Show documentation
Show all versions of n-cube Show documentation
Multi-dimensional Rule Engine
package com.cedarsoftware.ncube
import groovy.transform.CompileStatic
/**
* A 'CommandCell' represents an executable cell. NCube ships
* with support for Groovy CommandCells that allow the NCube author
* to write cells that contain Groovy expressions, Groovy methods, or
* Groovy classes. Javascript executable cells, as well as Java
* executable cells can be added to NCube. The CommandCell expects
* to call the method "def run()" on whatever object is assigned
* to the runnableCode member.
*
* Subclasses must implement 'getCubeNamesFromCommandText()' which returns
* any NCube names the subclass may reference. For example, if NCubes are referenced
* in the Groovy code, the Groovy CommandCell subclasses would return any NCube
* names they reference. This is required so that when an NCube is loaded,
* it can find referenced NCubes and load those as well.
*
* @author John DeRegnaucourt ([email protected])
*
* Copyright (c) Cedar Software LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
@CompileStatic
interface CommandCell extends Comparable
{
String getCmd()
String getUrl()
Object execute(Map ctx)
boolean isCacheable()
void getCubeNamesFromCommandText(Set cubeNames)
void getScopeKeys(Set scopeKeys)
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy