Class Dialog

java.lang.Object
All Implemented Interfaces:
java.io.Serializable, javax.swing.ListModel
Direct Known Subclasses:
PerspectiveDialog

public class Dialog
extends AbstractListBean
A basic dialog implementation

Uses the freemarker library to interpolate the dialog's query with supplied arguments.
The provided query is processed such that all whitespace is replaced with a single space character.
Provides a couple of freemarker directives to query writers:

skip(value[, scope])
will skip (i.e. not output) the first occurance of the given value within the given scope
br
inserts an explicit newline

All arguments are wrapped in a freemarker object wrapper such that when referencing the argument's value the query writer uses argname.val and when referencing the argument's operator the query writer uses argname.op.

Aside from being a bean model for a dialog this class provides a ListModel interface on the dialog's arguments.

The interpolated query is defined as executable if all non-optional arguments have received valid values.

See Also:
Serialized Form
  • Field Details

  • Constructor Details

    • Dialog

      public Dialog​(java.util.Map<java.lang.String,​? extends java.lang.Object> attributes, org.gorpipe.gor.model.FileReader fileResolver, org.gorpipe.gor.model.QueryEvaluator queryEval, DialogDescription dialogDescription, DialogType type, java.lang.String query, java.lang.String chartScript, java.lang.String chartExec, java.lang.String chartColumns, boolean chartDF, java.util.List<Argument> arguments, java.lang.String errorMsgTemplate, java.lang.String longRunningQueryTemplate, java.lang.String version, java.lang.String packageVersion, java.lang.String gitSHA) throws freemarker.template.TemplateException
      Throws:
      freemarker.template.TemplateException
  • Method Details

    • getFileResolver

      public org.gorpipe.gor.model.FileReader getFileResolver()
    • getQueryEval

      public org.gorpipe.gor.model.QueryEvaluator getQueryEval()
    • getName

      public java.lang.String getName()
    • getShortName

      public java.lang.String getShortName()
      Returns:
      The dialog name shortened so that it contains at most 2 capital letters (from right) and breaks on the right most underscore
    • getDescription

      public java.lang.String getDescription()
    • getHelpLink

      public java.lang.String getHelpLink()
    • getListDescription

      public java.lang.String getListDescription()
    • getType

      public DialogType getType()
    • setType

      public void setType​(DialogType type)
    • getBaseQuery

      public java.lang.String getBaseQuery()
    • setBaseQuery

      public void setBaseQuery​(java.lang.String query) throws freemarker.template.TemplateException
      Throws:
      freemarker.template.TemplateException
    • getBaseChartExec

      public java.lang.String getBaseChartExec()
    • setBaseChartExec

      public void setBaseChartExec​(java.lang.String chartExec) throws freemarker.template.TemplateException
      Throws:
      freemarker.template.TemplateException
    • getBaseChartScript

      public java.lang.String getBaseChartScript()
    • setBaseChartScript

      public void setBaseChartScript​(java.lang.String chartScript)
    • getBaseChartDF

      public boolean getBaseChartDF()
    • setBaseChartDF

      public void setBaseChartDF​(boolean chartDF)
    • getBaseChartColumns

      public java.lang.String getBaseChartColumns()
    • setBaseChartColumns

      public void setBaseChartColumns​(java.lang.String chartColumns)
    • setDeferUpdates

      public void setDeferUpdates​(boolean deferUpdates)
      Defer updates to interpolated query. If set - query won't be evaluated on every change to input parameters but only when requested through getInterpolatedQuery()
    • advancedArgumentsVisible

      public boolean advancedArgumentsVisible()
      Returns:
      true if advanced arguments are visible, otherwise false
    • setAdvancedArgumentsVisible

      public void setAdvancedArgumentsVisible​(boolean visible)
      Parameters:
      visible - the visibility of advanced arguments to set
    • loadQuery

      protected void loadQuery​(java.lang.String queryName, java.lang.String query)
    • interpolateQuery

      protected java.lang.String interpolateQuery​(java.lang.String templateName) throws freemarker.template.TemplateException, java.io.IOException
      Throws:
      freemarker.template.TemplateException
      java.io.IOException
    • interpolateChart

      protected java.lang.String interpolateChart​(java.lang.String templateName) throws freemarker.template.TemplateException, java.io.IOException
      Throws:
      freemarker.template.TemplateException
      java.io.IOException
    • calcInterpolatedQuery

      public void calcInterpolatedQuery() throws freemarker.template.TemplateException
      Throws:
      freemarker.template.TemplateException
    • getInterpolatedQuery

      public java.lang.String getInterpolatedQuery()
    • getInterpolatedChart

      public java.lang.String getInterpolatedChart()
    • getQuery

      public java.lang.String getQuery()
    • getChart

      public java.lang.String getChart()
    • getVersion

      public java.lang.String getVersion()
    • getPackageVersion

      public java.lang.String getPackageVersion()
    • getGitSha

      public java.lang.String getGitSha()
    • getErrorMessage

      public java.lang.String getErrorMessage()
    • determineLongRunningQuery

      public java.lang.String determineLongRunningQuery()
    • copyArguments

      public java.util.List<Argument> copyArguments()
    • isExecutable

      public boolean isExecutable()
    • getArgument

      public Argument getArgument​(java.lang.String argumentName)
    • setArgument

      public void setArgument​(java.lang.String argumentName, Argument arg)
    • getAttribute

      public java.lang.Object getAttribute​(java.lang.String attributeName)
    • getElementAt

      public java.lang.Object getElementAt​(int index)
    • getSize

      public int getSize()
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object