All Downloads are FREE. Search and download functionalities are using the official Maven repository.

docs-for-eb.dev-guide.standard_yaml_dev.md Maven / Gradle / Ivy

The newest version!
---
title: YAML Config API
weight: 12
menu:
  main:
    parent: Dev Guide
    identifier: configfiles-api
    weight: 22
---

In the EngineBlock 2.* and newer versions, a standard YAML configuration format
is provided that makes it easy to use for any activity that requires statements,
tags, parameters and data bindings.  This section describes how to use it as a
developer*. Developers should already be familiar with the user guide for the
YAML config format first.

## Simple Usage

    StrInterpolater interpolator = new StrInterpolater(activityDef);
    String yaml_loc = activityDef.getParams().getOptionalString("yaml").orElse("default");
    StmtsDocList sdl = StatementsLoader.load(logger, yaml_loc, interp, "activities");

This loads the yaml at file path *yaml_loc*, while transforming template variables
with the interpolator, searching in the current directory and in the "activities"
subdirectory, and logging all diagnostics.

What you do next depends on the activity type. Typically, an activity will instantiate
an SequencePlanner to establish an operation ordering. See the *stdout* activity type
for an example of this.

## Implementation Notes

The getter methods on this API are intended to provide statements. Thus, all
access to bindings, params, or tags is provided via the StmtDef type.
It is possible to get these as aggregations at the block or doc level for activity
types that can make meaningful use of these as aggregations points. However,
it is usually sufficient to simply access the StmtDef iterator methods, as all
binding, tag, and param values are templated and overridden automatically for you.
within the API.

## On Bindings Usage

It is important to not instantiate or call bindings that are not expected to be
used by the user. This means that your statement form should use named anchors
for each and every binding that will be activated, *or* a clear contract with
the user should be expressed in the documentation for how bindings will be
resolved to statements.

## Named Anchors

The format of named anchors varies by activity type. There are some conventions
that can be used in order to maintain a more uniform user experience:

- String interpolation should use single curly braces when there are no local
  conventions.
- Named anchors in prepared statements or other DB activity types should simply
  add a name to the existing place holder, to be filtered out by the activity type
  before being passed to the lower level driver.




© 2015 - 2025 Weber Informatics LLC | Privacy Policy