All Classes and Interfaces

Class
Description
Implements a abstract filter class for reading expire mode and value.
 
 
An abstract writer-implementation - contains helper getters for all writer parameters
Base class for writing a Wrs or a WrsRequest to an Excel sheet
Convenience class for building custom ISqlGenerators
 
logs AccessSqlLogger.LogRecord into database, binding set used is bcd_log_access, this class is not intended to be customized or extended in projects.
the result to log into database
This exception is thrown when the method Bindings.get(String) is called for a BindingSetGroup, because without the set of BindingItems to be selected the Bindings class cannot determine which BindingSet contained in the BindingSetGroup should be returned.
extending Shiro's FormAuthenticationFilter to add additional authentication scheme.
Support for bcd_log_login logging as well as further security enhancement, such as session-fixation {@link https://owasp.org/www-community/attacks/Session_fixation}
defines authentication method
Java-Klasse für anonymous complex type.
filter for identifying requests from MS Office applications like Word or Excel.
This is a worker with idle support and a queue allows asynchronous processing of objects, supports multi-object for batch processing and idle state to release resource if appropriate.
bare configuration singleton, this class is for internal purpose and must not be used in projects, consider using Configuration that purpose.
Helper in Shiro's package to access protected parts of Shiro's API
global switch for internal bcd connection wrapper class, which is not globally exposed.
In web environments serves for initializing de.businesscode.bcdui.toolbox.Configuration With application context settings (from context and web.xml)
 
The super class for binding-related exceptions.
 
The BindingItem class represents a mapping from a logical name to a
database column.
This class is container of a wrq:A of binding item in a query.
Represents a BindingItem coming form a BindingSet Relation
This class represents a BindingItem in a concrete statement It adds for example alias, aggregation and the column number
This exception is thrown when a BindingItem with the specified name cannot be found inside a specific BindingSet.
A singleton container class for all the bindings defined in the application.
This is the velocity context object, that represents BCD-UI global Bindings singleton, $bindings and serves as a lookup for BindingSets It already known from its parameters in the constructor, which binding set name / binding item names combinations occur and is used in phase 2 (@see SQLEngine)
 
security operations supported
This is the velocity context object, that represents a concrete BindingSet in phase 2 (@see SQLEngine) From its constructor parameters it already knows, which binding items will be requested from it and this allows it to determine the right concrete BindingSet for its name Also it keeps track of all requested BindingItems to find the right BindingSet for the BindingSet name and to provide the caller with information about used BindingItems
This is the velocity context object, that represents the a binding set/group in phase 1 (@see SQLEngine) It collects the referenced BindingItems for this BindingSet name to later in phase 2 (@see SQLEngine) find the right BindingSet
Indicates that there is no BindingSet or BindingSetGroup with the specified name.
This is the velocity context object, allowing velocity to lookup a BindingSet (more precisely a BindingSetLookupContextObject) by name This is used in phase 2 (@see SQLEngine), when the concrete BindingSet is already known Later the user can also ask for all BindingSets we were asked for
 
The class represents boolean SQL constraints, like IS NULL or IS NOT NULL
 
Cache factory to BCD-UI managed caches, (currently backed by ehCache v2).
Servlet to manage cache settings (VFS, Bindings): delete, reload
ClientCachingFilter implements client side caching.
This Filter set expires value for the within the init-parameters declared resource types.
closes JDBC objects
The class represents combined SQL constraints, like AND OR
Default implementation of
The class represents a SQL condition, i.e.
This class extends the JNDIProvider and offers a common API to retrieve configuration parameter from JNDI context as specified by servlet spec, furthermore this class cascades the configuration via DbProperties allowing to manage dynamic properties from database. all API refer to "server" scope in sense of DbProperties scope, except of Configuration.getClientParameters() which provides "client" scope configuration from database.
 
configuration provider interface
the connective containing SubjectFilter or further Connective elements, connectives are: Connective.ConnectiveAnd, Connective.ConnectiveOr
 
 
 
special filter to handle CORS, allows credentials to be sent, allows to be loaded from any origin and allow any http header and method.
 
 
Utility class for custom JDBC type handling/mapping, i.e. defined on a BindingItem via type-name=OTHER cust:type-name=TEXT
This class encapsulates Database specific behavior and settings
Representer for a File object, is not threadsafe
 
 
 
The Class is a writer of WebRowSet document into database, supports auto detection of key columns by updating, it means if key columns are defined and in modifyRow the values from them are not modified - the key columns were ignored by setting values in SQL statement
This algorithms
reads input from input options,
uses generator to interpret the options (generate SQL),
executes sql and
writes the resultSet out into the writer.
Cache control based on requested binding set name and data from scope_last_modified If a request matches a certain scope, we check its last_refreshed and compare it against the request's If-Modified-Since-Header If possible according to that, we send a 304 instead of forwarding to get new data - If the scope was found in bcd_cache_scope, we are active, otherwise we do chain.doFilter - If If-Modified-Since was sent, we compare that with the scopes scope_last_modified - If If-Modified-Since was not sent or data was out-dated, we call chain.doFilter and set expires to earliest_next_modified if given See bcdui4.DataModifiedFilter in web.xml for how to use
Holds information about a scope like when data was actually refreshed last time and possibly when it may be refreshed earliest next time
 
this class loads the configuration properties from database, this class is thread-safe and can also be used as a singleton, the DbProperties.getProperties(String) method is used to retrieve properties and it will keep the internal data up-to-date in case DbProperties.refreshCycleSec has been set in constructor.
 
this bean is target of evaluation in WRS updates, is not thread-safe and this bean is used on per-request level
 
 
A binding exception thrown when a BindingSet does not contain any BindingItem.
Java-Klasse für anonymous complex type.
 
The error-logEvent for usage with the ErrorLogAppender.
logs ErrorSqlLogger.LogRecord into database, binding set used is bcd_log_error, this class is not intended to be customized or extended in projects.
the result to log into database
Servlet utilizing POI class to create xslx files Note that Sylk and Cvs exports are much more efficient than this, i.e. less bandwidth consuming, faster and less memory consuming since they are streaming and a leaner format Use this only, when needed, for example because you fill an Excel template or because you need UTF-8 chars.
 
This class encapsulates a pair of a column caption and the respective data column name.
Enum with all supported expires values.
Servlet providing the base class for ExcelExportServlet, SylkServlet and CsvServlet.
this token is used in conjunction to AuthenticationFilter which authenticates a subject by any different scheme, i.e.
This class implements the file system based caching store.
Changes a standard f:Filter element as created by the period chooser from mo/cw to dy Useful to support table partitioning by dy while the client keeps "thinking" in mo etc
This class provides the common filter utilities.
Class responisible for creating a semi-root logger and configuring it with the FrontendLogRecordPublisher in order to feed the queue.
logrecord receiver servlet which parses the request and propagates the logrecord message to the FrontendLogRecordPublisher and also consumes the SingletonStringQueue which is populated by the FrontendQueueAppender
 
Several helpers as jsp functions, find their documentation in webpage.tld
Wrapp a httpRequest and implements IRequestOptions for Wrs operations
This class provides the proxy implementation of the HttpServletResponse class.
Global i18n constants and helper class
 
Provides i18n catalog XML for bcdui.i18n.I18nCatalog class, the keys are normalized and serialized as element names as expected by catalog implementation.
 
The class writes the full result of a load operation out
Java-Klasse für anonymous complex type.
The class represents request options for an operation.
Typically all parameters are readed from a HTTP-Request and/or application configuration
 
This interface describes the methods for the server side cacing store.
 
 
The generator parses the request document, builds select statement and extracts other information from the input-options
Steps to be able to be added to UploadServlet as init param, format see there Need a Constructor getting (UploadControl uc, String userId) If writing, call UploadControl#addStepResult() at the end of process()
Used by shiro framework for retrieving authentication and authorization from the database Relies on bcd_sec_user and bcd_sec_user_settings BindingSets providing support for plaintext (backwards compatibility) and salted/hashed passwords using SHA256 hashing.
 
some of BUI lib features requires JNDI.
Provider class for JNDI access easing.
JSON literal helper to write safe JSON object
 
Base class for all log events that can occur in the frontend and should be logged into the database.
 
logs LoginSqlLogger.LogRecord into database, binding set used is bcd_log_session, this class is not intended to be customized or extended in projects.
 
the result to log into database
logs LogoutSqlLogger.LogRecord into database, binding set used is bcd_log_session, this class is not intended to be customized or extended in projects.
the result to log into database
 
Java-Klasse für anonymous complex type.
A singleton container class for all the menus defined in the application.
These menus are defined in static XML files under "/WEB-INF/bcdui/menu/" and read
The servlet gets menu document by given over menuId or <Empty/> if the menu missed
 
A class implementing Modifier may be used to move a WrsRequest by adding a bnd:Modifiers block to a BindingSet xml definition
Receives a Dimension definition and a string with space separated search words Supports '/' as level separators
An exception thrown by the method Bindings.get(String, Collection) if the specified BindingSet does not contain all of the BindingItems or if the BindingSetGroup does not provide any BindingSet containing all BindingItems.
exception related with Security context and thrown if a permission is missing for context execution
The flow here is (start = not authenticated request)
 
This Realm will accept logins from trusted oAuth authentication servers Per default we also require the user to be found in bcd_sec_user to not lose control, as bcdAuthc resources only need a session and no permissions!
 
 
OAuth authentication token which is supported by OAuthRealm instances.
This object contains factory methods for each Java content interface and Java element interface generated in the a package.
This object contains factory methods for each Java content interface and Java element interface generated in the de.businesscode.bcdui.menu.config package.
This object contains factory methods for each Java content interface and Java element interface generated in the de.businesscode.bcdui.subjectsettings.config package.
 
logs PageSqlLogger.LogRecord into database, binding set used is bcd_log_page, this class is not intended to be customized or extended in projects.
the result to log into database
This is the velocity context object, that represents param substitution by one or many placeholders.
 
A primary principal, which holds technical user id.
Parses a binding xml and creates an in-memory BindingSet
Relations are defined for a BindingSet in its config file.
 
 
This class is a very first entry point of any requests.
Implements IRequestOptions for Wrs operations, which may not be originated in an HTTP request When using getManagedConnection() also call returnAllThreadManagedConnections()!
 
 
Factory methods preventing XXE attacks, according to OWASP Cheat Sheet
this type contains security settings applicable to the context
Java-Klasse für anonymous complex type.
this exception is thrown within Security context checks.
helper to evaluate shiro security on Security settings
this exception is thrown in case Security context is required but not defined by user.
this exception is thrown whenever operations related to binding security fails check due to missing security configuration.
To enable this class, add it as WriteProcessing/Callbacks/Callback/@class to bcd_sec_user BindingSet When writing to bcd_src_user we apply special handling: 1.
Set these jndi properties.
Implements server side caching.
the interface with required API any serverside value bean has to implement, all the convenient API has to return a renderered String suitable to write it to database via DatabaseWriter
 
logs SessionExpiredSqlLogger.LogRecord into database, binding set used is bcd_log_session, this class is not intended to be customized or extended in projects.
Log for expired session
 
 
logs SessionSqlLogger.LogRecord into database, binding set used is bcd_log_session, this class is not intended to be customized or extended in projects.
the result to log into database
decorator for apache shiro filter to bypass preflight cors requests, use this one instead of org.apache.shiro.web.servlet.ShiroFilter in your web.xml if you want enable CORS in your site
 
Base class for BindingItems read from a BindingSet definition or calc:Calc of a Wrs It becomes member of a (Wrs|Standard)BindingSet See also WrqBindingItem for the analogy used during actual statement representing the output
this singleton-holder helper should be used in container environments to prevent class loader leaking, implementation currently does not use java's WeakReferences or SoftReferences to reference the instances, rather is uses strong references via Maps keyed by the class-name string.
Utility class to create a SOAPFault
utility class abstracting principal information from de.businesscode.bcdui.security.SpnegoValve
the interface for condition generator in SQL clause.
An exception with SQL details, which may not be save to be included in the message to the client
The SQL Engine can transform sql fragments containing references to BindingSets into pure sql, resolving table and column names To resolve the given binding set/group names to the right concrete BindingSets first, it parses the given sql twice, - In phase 2 it will just collect the binding set name - binding item names combination, using BindingsLookupContextObject and BindingSetLookupContextObject - In phase 2 it does then know the concrete BindingSet and BindingItem and can output the appropriate table and column names, using BindingsContextObject and BindingSetContextObject
Takes the parent node of SELECTs with SET operators (formally a "full-select") in Wrq format and generates SQL from it together with the bound variables, ready to be executed
Takes a single wrq:Select (formally a "sub-select") and turns it into a SQLStatementWithParams
 
Represents part of an SQL string and the values for bound variables
a singleton logger for SQL statements, the binding set used for it is bcd_log_sql, record logged is SqlToDatabaseLogger.LogRecord this class is not intended to be customized or extended in projects.
record being logged into db
A BindingSet is a mapping from names to BindingItems.
 
 
 
Singleton to hold all well-known BCD-UI namespaces and their prefixes The prefixes must be used in client js code because they are made known to the browser's parser
 
This class enables the use of the database-backed virtual file system and jar files as source for seemingly static resources.
This class represents one single resource which is either a file on the file system or a URL from the classpath.
resource abstract descriptor implementing API to the content
provider interface to resolve a StaticResourceServlet.Resource
a static resource provider singleton
represents a SubjectFilter in BindingSet
Common denominator for SubjectFilter and Connective
Enforce SubjectFilters on write This callback is registered if SubjectFilters are declared for a BindingSet It applies its ruled for writing It does currently not support nested filter expressions (only flat AND or OR) and only '=' for comparison
SubjectFilters definition in BindingSet.
Java-Klasse für SubjectFilterType complex type.
Java-Klasse für anonymous complex type.
Java-Klasse für anonymous complex type.
Java-Klasse für anonymous complex type.
 
Java-Klasse für SubjectPreferencesConfig complex type.
Java-Klasse für anonymous complex type.
Java-Klasse für anonymous complex type.
Java-Klasse für anonymous complex type.
Java-Klasse für anonymous complex type.
Java-Klasse für anonymous complex type.
 
Subject settings are session settings in web and non-web environments It covers rights, i18n settings and so on
Returns a where clause based on the SubjectFilters of the BindingSet and the current Subject's permissions Initially taken from WrsSqlGenerator.
Java-Klasse für SubjectSettingsConfig complex type.
Java-Klasse für anonymous complex type.
Java-Klasse für anonymous complex type.
Java-Klasse für anonymous complex type.
Java-Klasse für SubjectSettingsType complex type.
Java-Klasse für anonymous complex type.
Java-Klasse für anonymous complex type.
Java-Klasse für anonymous complex type.
 
 
This class wrapped the PrintWriter functionality in order to provide the possibility to write a data to two writers.
tees the writer, ignores exceptions on a cloned object, however they are logged with warning level.
This servlet allows POSTing a text and retrieve it (up to 24h) later via GET under a given name Each servlet instance has its only scope name.
 
Java-Klasse fuer TypeSubjectFilter complex type.
Java-Klasse fuer TypeSubjectFilterConnective complex type.
Java-Klasse fuer TypeSubjectFilters complex type.
 
This class is responsible for transferring data from bcdui_upload_rowcol into the target BindingSet It relies on correct format of the data in bcdui_upload_rowcol.
This class applies all validations which are possible based on the assigned BindingSet i.e. entries in mapping Validation issues are written to bcd_dataupload_validation
 
 
 
Used for accessing bcd_dataupload_control table
Possible return codes for steps
Handles access to bcd_dataupload_control_step i.e., provides a list of steps so far and can add new steps
Plain POJO representing an upload set with detail data
Retrieves the rows with errors together with their errors as CSV It prepends the header
 
 
This class tries to guess the data content semantics in bcd_dataupload_rowcol and updates bcd_dataupload_control 1.
Trims and NULL-ifies columns in rowcol table which are of type NUMERIC, DATE or TIMESTAMP according to mapping information.
Entry point for all data data upload related steps, supports POST and PUT Add custom steps in web.xml in the following format: <init-param> <param-name>Steps</param-name> <param-value> MY_STEP_NAME: de.my.package.ClassName; MY_STEP_NAME2: de.my.package.ClassName2; </param-value> </init-param --> Such Steps - need a Constructor getting (UploadControl uc, String userId) - implement IUploadStep - if writing, call UploadControl#addStepResult() at the end of their process()
Base class for inserting a file available as BLOB column- and cell wise to bcd_dataupload_rowcol
Responsible to insert a CSV file available as BLOB column-wise to staging Detects file encoding (ISO-8859-1, UTF-8 and UTF-16), row and cell boundaries, i.e. cell delimiter and quoteChar Does not convert number or date format, does not detect header
Responsible to read an Excel xlsx file from a BLOB and write it row and cell to bcd_dataupload_rowcol
 
 
 
a thread safe StaticResourceServlet.ResourceProvider which provides a resource from VFS
represents a single resource to VFS
implements following REST API to upload binary data using file streaming API of apache commons-fileupload, see http://commons.apache.org/proper/commons-fileupload/streaming.html accepting POST for INSERT/UPDATE streams and DELETE for deleting them configuration (via servlet parameter): folder-name: abstract name which is used as prefix for all incoming file-names, read documentation on VFSServlet.doPost(HttpServletRequest, HttpServletResponse) and VFSServlet.doDelete(HttpServletRequest, HttpServletResponse) for more information and exception handling.
abstraction to write into VFS, client has finally to call VFSServlet.FileDAO.commit()
unfortunately we cant work with DatabaseFileSystem / DatabaseFileObject directly to store data, so we do here lowlevel BLOB handling, works with bcd_virtualFileSystem binding-set NOT THREADSAFE
Constructs a virtual BindingItem, behaves like a standard BindingItem but derives its sql expression and type-name from a wrq:Calc element
A Weekday enum.
 
 
 
the WriteProcessingCallback are non thread-safe and each WRS processing will obtain new own intsance of a callback, however the callback parameters supplied from binding-set definition are immutable so the factory will be configured already at binding bootstrapping while an instance of a callback will be provided when requested via createIntance()
callback params class scaffolding arbitrary parameters supplied to callback and providing access API, The parameters sample: <ul> <li><Param name="foo" x="a" y="b"/></li> <li><Param name="foo" z="x" d="y"/></li> <li><Param name="bindingItem" id="bcdUpdateBy" value="expression" isCoalesce="true"/></li> <li><Param name="bindingItem" id="bcdUpdateStamp" value="expression" isCoalesce="false"/></li> </ul> the parameter api is a list of parameter-maps in the order they are defined.
Takes a wrq:WrsRequest an optional rnd:Wrs2Excel, executes it and writes the result into an Excel sheet via Poi Api The caller is responsible to create the Workbook containing the Sheet
Takes a Wrq and generates SQL from it
Returns the generated SQL statement for a Wrq.
Represents a BindingItem in a Wrq, it is it has knowledge of the underlying BindingItem and the current query There can be multiple WrqBindingItem for a BindingItem(FromRel), to reflect different behaviora like aggr for example in select and in grouping clause
A BindingSet used during the execution of a Statement
Represents a virtual BindingSet resulting from a sub-select during the execution of a Wrq
Represents a virtual BindingSet resulting from the children of wrq:From, i.e. a table reference A table reference can be a plain table name or joined tables factors, i.e. table names, derived table expressions or references to CTE Mostly it deals with the handling of wrq:Join, but for consistency we also take care for cases without
Wrapper for BindingSets that can be referenced more than one in a query, mainly adds the sql table alias for the current occurrence This can be a StandardBindingSet and a CTE Implements WrqBindingSet
Represents a virtual BindingSet derived on runtime from parts of a Wrs
Parses a Wrq and outputs SQL
Parses a f:Filter expression and returns the SQL Where expression For older change history, see WrsSqlGenerator
Parses a wrq:WrsRequest//wrq:Grouping element and returns a sql GROUP BY [GROUPING SET] expression Initially taken from WrsSqlGenerator.
Collects knowledge about the Wrq.
Takes a full Wrq query, formally a "select-statement" and generates SQL from it [WITH]* SELECT [UNION SELECT]* [ORDER BY] Children can be recursive full-selects or a sub-selects or it is an empty (no select at all) or a meta-data request (endRow==0 ) One instance of this class only handles one Wrq NOTE: We do not check the rights, use assurePermittedOnAllResolvedBindingSets() for verifying this
Wrs to Excel (.xlsx) data exporter: exports data from Wrs into sheet(s) of target excel template, uses efficient streaming API when interfacing with input document and output.
resolves template file via templateName abstraction, usually implemented by container component, i.e. servlet and returns the input-stream to the template
This bean contains all information about the log-event
Represents a BindingItem in a concrete Wrq, includes information like overwritten attributes See analogy SimpleBindingItem and its subclasses representing the input side, i.e.
The default implementation of the IDataWriter - write wrs-xml-format using xml-stream
Write an empty document if the resultSet is null.
preserves the update information on a record, takes following configuration parameters: the default values are marked with asterix (*), all parameters which have no default values are required.
preserves the update information on a record, handles following items: bcdUpdateStamp writes current stamp on wrs:M and wrs:I bcdUpdateBy stores the username (principal), follows same logic as bcdUpdateStamp bcdCreateStamp writes current stamp on wrs:I, ignores update on wrs:M bcdCreateBy stores the username (principal), follows same logic as bcdCreateBy in case none of binding-items above are found in the given binding-set an exception is thrown.
provides next identifier - table based id generator, binding-set: bcd_identifier
Servlet for calling Wrs services GET: It turns a WrsRequest into SQL and returns a Wrs document with wrs:R rows POST: It turns a Wrs into updates of the database based on wrs:M wrs:D rows
validation exception that may be thrown by DataSaver or another class of WRS components during web row set validation.
read more about validation handling in the documentation of WrsValidationException, this class mainly holds data required to be rendered by validationMessages.xslt template
 
serializer for the WrsValidationException, creates web row set format compatible to wrs:ValidationResult
 
 
 
 
 
 
 
Servlet for compression and uncompression of XML data.