diff --git a/.gitignore b/.gitignore index fbfda73c..06c5d04a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ !**/src/test/**/target/ +!**/src/main/antlr/in.handyman.raven/compiler/ ### STS ### .apt_generated @@ -33,6 +34,7 @@ build/ .vscode/ /.jpb/ -log/ -*.log logs/ +*.log + +gen/ \ No newline at end of file diff --git a/LICENSE b/LICENSE.txt similarity index 100% rename from LICENSE rename to LICENSE.txt diff --git a/README.md b/README.md index 08239f6c..6c92c909 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,59 @@ -# Handyman Legacy -## To Clean, Compile and build, run the below maven commands +# Handyman -1. Inside handyman.legacy - > mvn clean compile install package -Dmaven.test.skip=true -2. Inside handyman.legacy/handyman - > mvn clean compile install scala:compile install package -Dmaven.test.skip=true +## Tech stack: +1. Java +2. SQL -## Jar +## Framework: +1. ANTLR +2. JOOQ -### Generated jar file available in handyman.legacy/target folder as *handyman.legacy--SNAPSHOT.jar* +## why ANTLR ? +ANTLR (ANother Tool for Language Recognition) is a versatile framework pivotal in developing Domain-Specific Language (DSL) applications. It simplifies the creation of parsers, interpreters, and analyzers, enabling concise expression of intricate concepts. -# Handyman Raven +With ANTLR, DSLs become coherent and approachable. Developers define a DSL's grammar formally, ensuring accurate parsing and consistent interpretation. This approach streamlines development and maintains precision. -## To Clean, Compile and build, run the below maven commands +Key ANTLR features for DSL applications: -1. Inside handyman.raven - > mvn clean antlr4:antlr4 test -Dtest=ActionGenerationTest#generate compile install scala:compile install package +1. **Grammar Specification**: Developers outline DSL syntax and semantics using ANTLR's grammar notation, defining precise rules for input processing. -## Jar +2. **Parsing and Lexing**: ANTLR efficiently generates parsers and lexers, translating input text into structured data aligned with DSL rules. -### Generated jar file available in handyman.raven/target folder as *handyman-raven-vm--SNAPSHOT.jar* +3. **Abstract Syntax Tree (AST)**: ANTLR parsers generate an AST, which reflects parsed input hierarchy, forming the foundation for interpretation. + +4. **Visitor and Listener Patterns**: ANTLR supports Visitor and Listener patterns for traversing and analyzing AST nodes, enabling logic implementation. + +5. **Error Handling**: ANTLR ensures robust error reporting and recovery, enhancing meaningful error messages and graceful input handling. + +DSLs powered by ANTLR find utility across sectors: + +- **Configuration Management**: ANTLR-driven DSLs define concise configuration files, enhancing settings specification. + +- **Query Languages**: ANTLR DSLs succinctly articulate complex queries, streamlining data retrieval from various sources. + +- **Mathematical Modeling**: ANTLR-based DSLs enable mathematical expression creation for analysis and simulation. + +- **Rule Engines**: ANTLR DSLs serve as rule engines, defining decision logic and actions. + +- **Scripting Languages**: ANTLR facilitates DSLs as lightweight scripting languages, augmenting larger applications. + +To conclude, ANTLR empowers DSL application creation by simplifying grammar definition, parsing, and interpretation. This tool is crucial for crafting efficient, domain-specific languages in diverse fields. As specialized language solutions gain traction, ANTLR remains instrumental in tailoring DSLs to precise needs. + + + +## To get the repository clone + + > git clone https://github.com/zucisystems-dev/handyman.git + +## To see the list of branch in the repo (default master) + > git branch -a + +## To change to the particular branch + > git checkout {{branch}} + +## To Clean, Compile and build, run the below maven commands + 1. In the project root dir + > mvn clean antlr4:antlr4 test -Dtest=ActionGenerationTest#generate compile install + + ### Generated jar file available in target folder as *handyman-raven-vm-{{version}}.jar* diff --git a/build.sh b/build.sh deleted file mode 100644 index f60ab7ad..00000000 --- a/build.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -mvn install:install-file -DgroupId=in.handyman -DartifactId=handyman.parent -Dpackaging=pom -Dversion=1.0.0 -Dfile="./pom.xml" -DgeneratePom=true - - -# shellcheck disable=SC2164 -cd handyman.legacy/ - -mvn clean compile install package -Dmaven.test.skip=true - -# shellcheck disable=SC2164 -cd handyman/ - -mvn clean compile install scala:compile install package -Dmaven.test.skip=true - -mvn install:install-file -DgroupId=in.handyman -DartifactId=handyman.legacy.server -Dpackaging=jar -Dversion=1.0.0 -Dfile=target/handyman.legacy.server-1.0.0.jar -DgeneratePom=true - -# shellcheck disable=SC2103 -cd .. - -# shellcheck disable=SC2103 -cd .. - -# shellcheck disable=SC2103 -cd handyman.raven/ - -mvn clean antlr4:antlr4 test -Dtest=ActionGenerationTest#generate compile install - -mvn install:install-file -DgroupId=in.handyman -DartifactId=handyman.raven -Dpackaging=jar -Dversion=1.0.0 -Dfile=target/handyman-raven-vm-1.0.0.jar -DgeneratePom=true - - -# shellcheck disable=SC2103 -cd .. - -# shellcheck disable=SC2103 -cd handyman.server/ - -mvn clean install -Dmaven.test.skip=true diff --git a/handyman.raven/build.txt b/build.txt similarity index 100% rename from handyman.raven/build.txt rename to build.txt diff --git a/db/handyman_vm.sql b/db/handyman_vm.sql deleted file mode 100644 index 960b98a6..00000000 --- a/db/handyman_vm.sql +++ /dev/null @@ -1,440 +0,0 @@ -CREATE DATABASE `handyman_audit` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; - -use handyman_audit; - --- handyman_audit.execution_group definition - -CREATE TABLE `execution_group` -( - `id` int(11) NOT NULL, - `value` varchar(100) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `execution_group_UN` (`value`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; - - --- handyman_audit.execution_status definition - -CREATE TABLE `execution_status` -( - `id` int(11) NOT NULL, - `value` varchar(100) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `execution_status_UN` (`value`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; - - --- handyman_audit.pipeline_execution_audit definition - -CREATE TABLE `pipeline_execution_audit` -( - `pipeline_id` bigint(20) NOT NULL, - `created_by` bigint(20) NOT NULL, - `created_date` datetime NOT NULL, - `last_modified_by` bigint(20) NOT NULL, - `last_modified_date` datetime NOT NULL, - `context_node` longtext NOT NULL, - `execution_status_id` int(11) NOT NULL, - `lambda_name` varchar(255) NOT NULL, - `parent_action_id` bigint(20) NOT NULL, - `parent_action_name` varchar(255) NOT NULL, - `parent_pipeline_id` bigint(20) NOT NULL, - `parent_pipeline_name` varchar(255) NOT NULL, - `pipeline_name` varchar(255) NOT NULL, - `file_content` longtext NOT NULL, - `host_name` varchar(255) NOT NULL, - `mode_of_execution` varchar(255) NOT NULL, - `pipeline_load_type` varchar(255) NOT NULL, - `relative_path` varchar(255) NOT NULL, - `request_body` longtext NOT NULL, - `thread_name` varchar(255) NOT NULL, - `process_name` varchar(100) NOT NULL, - `root_pipeline_id` bigint(20) NOT NULL, - PRIMARY KEY (`pipeline_id`), - KEY `pipeline_execution_audit_FK` (`execution_status_id`), - CONSTRAINT `pipeline_execution_audit_FK` FOREIGN KEY (`execution_status_id`) REFERENCES `execution_status` (`id`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; - - --- handyman_audit.pipeline_execution_status_audit definition - -CREATE TABLE `pipeline_execution_status_audit` -( - `id` bigint(20) NOT NULL, - `created_by` bigint(20) DEFAULT NULL, - `created_date` datetime DEFAULT NULL, - `last_modified_by` bigint(20) DEFAULT NULL, - `last_modified_date` datetime DEFAULT NULL, - `execution_status_id` int(11) DEFAULT NULL, - `pipeline_id` bigint(20) DEFAULT NULL, - `root_pipeline_id` bigint(20) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `pipeline_execution_status_audit_FK` (`pipeline_id`), - KEY `pipeline_execution_status_audit_FK_2` (`execution_status_id`), - CONSTRAINT `pipeline_execution_status_audit_FK` FOREIGN KEY (`pipeline_id`) REFERENCES `pipeline_execution_audit` (`pipeline_id`), - CONSTRAINT `pipeline_execution_status_audit_FK_2` FOREIGN KEY (`execution_status_id`) REFERENCES `execution_status` (`id`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; - - --- handyman_audit.action_execution_audit definition - -CREATE TABLE `action_execution_audit` -( - `action_id` bigint(20) NOT NULL, - `created_by` bigint(20) NOT NULL, - `created_date` datetime NOT NULL, - `last_modified_by` bigint(20) NOT NULL, - `last_modified_date` datetime NOT NULL, - `context_node` longtext DEFAULT NULL, - `execution_status_id` int(11) NOT NULL, - `lambda_name` varchar(255) NOT NULL, - `parent_action_id` bigint(20) NOT NULL, - `parent_action_name` varchar(255) NOT NULL, - `parent_pipeline_id` bigint(20) NOT NULL, - `parent_pipeline_name` varchar(255) NOT NULL, - `pipeline_name` varchar(255) NOT NULL, - `action_name` varchar(255) NOT NULL, - `execution_group_id` int(11) NOT NULL, - `input_node` longtext DEFAULT NULL, - `log` longtext DEFAULT NULL, - `pipeline_id` bigint(20) NOT NULL, - `thread_name` varchar(100) NOT NULL, - `root_pipeline_id` bigint(20) NOT NULL, - PRIMARY KEY (`action_id`), - KEY `action_FK` (`pipeline_id`), - KEY `pipeline_execution_status_audit_FK_execution_status` (`execution_status_id`), - KEY `action_execution_audit_FK_1` (`execution_group_id`), - CONSTRAINT `action_execution_audit_FK` FOREIGN KEY (`pipeline_id`) REFERENCES `pipeline_execution_audit` (`pipeline_id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `action_execution_audit_FK_1` FOREIGN KEY (`execution_group_id`) REFERENCES `execution_group` (`id`), - CONSTRAINT `pipeline_execution_status_audit_FK_execution_status` FOREIGN KEY (`execution_status_id`) REFERENCES `execution_status` (`id`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; - - --- handyman_audit.action_execution_status_audit definition - -CREATE TABLE `action_execution_status_audit` -( - `id` bigint(20) NOT NULL, - `created_by` bigint(20) NOT NULL, - `created_date` datetime NOT NULL, - `last_modified_by` bigint(20) NOT NULL, - `last_modified_date` datetime NOT NULL, - `action_id` bigint(20) NOT NULL, - `execution_status_id` int(11) NOT NULL, - `pipeline_id` bigint(20) NOT NULL, - `root_pipeline_id` bigint(20) NOT NULL, - PRIMARY KEY (`id`), - KEY `action_execution_status_audit_FK` (`action_id`), - KEY `action_execution_status_audit_FK_1` (`execution_status_id`), - CONSTRAINT `action_execution_status_audit_FK` FOREIGN KEY (`action_id`) REFERENCES `action_execution_audit` (`action_id`), - CONSTRAINT `action_execution_status_audit_FK_1` FOREIGN KEY (`execution_status_id`) REFERENCES `execution_status` (`id`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; - - --- handyman_audit.statement_execution_audit definition - -CREATE TABLE `statement_execution_audit` -( - `statement_id` bigint(20) NOT NULL, - `created_by` bigint(20) DEFAULT NULL, - `created_date` datetime DEFAULT NULL, - `last_modified_by` bigint(20) DEFAULT NULL, - `last_modified_date` datetime DEFAULT NULL, - `action_id` bigint(20) DEFAULT NULL, - `rows_processed` int(11) DEFAULT NULL, - `rows_read` int(11) DEFAULT NULL, - `rows_written` int(11) DEFAULT NULL, - `statement_content` longtext DEFAULT NULL, - `time_taken` double DEFAULT NULL, - `root_pipeline_id` bigint(20) DEFAULT NULL, - PRIMARY KEY (`statement_id`), - KEY `statement_execution_audit_FK` (`action_id`), - CONSTRAINT `statement_execution_audit_FK` FOREIGN KEY (`action_id`) REFERENCES `action_execution_audit` (`action_id`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; - -CREATE DATABASE `handyman_config` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; - -use handyman_config; - --- handyman_config.spw_common_config definition - -CREATE TABLE `spw_common_config` -( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `variable` varchar(150) NOT NULL, - `value` longtext NOT NULL, - `active` enum ('Y','N') NOT NULL, - `created_by` bigint(20) NOT NULL, - `created_date` datetime NOT NULL, - `last_modified_by` bigint(20) NOT NULL, - `last_modified_date` datetime NOT NULL, - `version` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `spw_common_config_UN` (`variable`, `version`) USING HASH -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb3; - - --- handyman_config.spw_instance_config definition - -CREATE TABLE `spw_instance_config` -( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `instance` varchar(150) NOT NULL, - `process` varchar(150) NOT NULL, - `variable` varchar(150) NOT NULL, - `value` longtext NOT NULL, - `active` enum ('Y','N') NOT NULL, - `created_by` bigint(20) NOT NULL, - `created_date` datetime NOT NULL, - `last_modified_by` bigint(20) NOT NULL, - `last_modified_date` datetime NOT NULL, - `version` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `spw_instance_config_UN` (`instance`, `process`, `variable`, `version`) USING HASH -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb3; - - --- handyman_config.spw_process_config definition - -CREATE TABLE `spw_process_config` -( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `process` varchar(150) NOT NULL, - `variable` varchar(150) NOT NULL, - `value` varchar(500) NOT NULL, - `active` enum ('Y','N') NOT NULL, - `created_by` bigint(20) NOT NULL, - `created_date` datetime NOT NULL, - `last_modified_by` bigint(20) NOT NULL, - `last_modified_date` datetime NOT NULL, - `version` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `spw_process_config_UN` (`process`, `variable`, `version`) -) ENGINE = InnoDB - AUTO_INCREMENT = 2 - DEFAULT CHARSET = utf8mb3; - - --- handyman_config.spw_resource_config definition - -CREATE TABLE `spw_resource_config` -( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `config_name` varchar(50) NOT NULL, - `resource_url` varchar(1000) NOT NULL, - `active` enum ('Y','N') NOT NULL, - `user_name` varchar(50) NOT NULL, - `password` varchar(50) NOT NULL, - `driver_class` varchar(100) NOT NULL, - `host` varchar(100) NOT NULL, - `port` varchar(100) NOT NULL, - `database_name` varchar(100) NOT NULL, - `created_by` bigint(20) NOT NULL, - `created_date` datetime NOT NULL, - `last_modified_by` bigint(20) NOT NULL, - `last_modified_date` datetime NOT NULL, - `version` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `spw_resource_config_UN` (`host`, `database_name`, `user_name`, `port`, `version`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb3; - - -DROP DATABASE if exists `handyman_qrtz`; -CREATE DATABASE `handyman_qrtz` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; - -use handyman_qrtz; - -# -# Quartz seems to work best -# -# PLEASE consider using mysql with innodb tables to avoid locking issues -# -# In your Quartz properties file, you'll need to set -# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate -# - -DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; -DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; -DROP TABLE IF EXISTS QRTZ_LOCKS; -DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; -DROP TABLE IF EXISTS QRTZ_CALENDARS; - - -CREATE TABLE QRTZ_JOB_DETAILS -( - SCHED_NAME VARCHAR(120) NOT NULL, - JOB_NAME VARCHAR(200) NOT NULL, - JOB_GROUP VARCHAR(200) NOT NULL, - DESCRIPTION VARCHAR(250) NULL, - JOB_CLASS_NAME VARCHAR(250) NOT NULL, - IS_DURABLE VARCHAR(1) NOT NULL, - IS_NONCONCURRENT VARCHAR(1) NOT NULL, - IS_UPDATE_DATA VARCHAR(1) NOT NULL, - REQUESTS_RECOVERY VARCHAR(1) NOT NULL, - JOB_DATA BLOB NULL, - PRIMARY KEY (SCHED_NAME, JOB_NAME, JOB_GROUP) -); - -CREATE TABLE QRTZ_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - JOB_NAME VARCHAR(200) NOT NULL, - JOB_GROUP VARCHAR(200) NOT NULL, - DESCRIPTION VARCHAR(250) NULL, - NEXT_FIRE_TIME BIGINT(13) NULL, - PREV_FIRE_TIME BIGINT(13) NULL, - PRIORITY INTEGER NULL, - TRIGGER_STATE VARCHAR(16) NOT NULL, - TRIGGER_TYPE VARCHAR(8) NOT NULL, - START_TIME BIGINT(13) NOT NULL, - END_TIME BIGINT(13) NULL, - CALENDAR_NAME VARCHAR(200) NULL, - MISFIRE_INSTR SMALLINT(2) NULL, - JOB_DATA BLOB NULL, - PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), - FOREIGN KEY (SCHED_NAME, JOB_NAME, JOB_GROUP) - REFERENCES QRTZ_JOB_DETAILS (SCHED_NAME, JOB_NAME, JOB_GROUP) -); - -CREATE TABLE QRTZ_SIMPLE_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - REPEAT_COUNT BIGINT(7) NOT NULL, - REPEAT_INTERVAL BIGINT(12) NOT NULL, - TIMES_TRIGGERED BIGINT(10) NOT NULL, - PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), - FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) - REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) -); - -CREATE TABLE QRTZ_CRON_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - CRON_EXPRESSION VARCHAR(200) NOT NULL, - TIME_ZONE_ID VARCHAR(80), - PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), - FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) - REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) -); - -CREATE TABLE QRTZ_SIMPROP_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - STR_PROP_1 VARCHAR(512) NULL, - STR_PROP_2 VARCHAR(512) NULL, - STR_PROP_3 VARCHAR(512) NULL, - INT_PROP_1 INT NULL, - INT_PROP_2 INT NULL, - LONG_PROP_1 BIGINT NULL, - LONG_PROP_2 BIGINT NULL, - DEC_PROP_1 NUMERIC(13, 4) NULL, - DEC_PROP_2 NUMERIC(13, 4) NULL, - BOOL_PROP_1 VARCHAR(1) NULL, - BOOL_PROP_2 VARCHAR(1) NULL, - PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), - FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) - REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) -); - -CREATE TABLE QRTZ_BLOB_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - BLOB_DATA BLOB NULL, - PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), - FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) - REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) -); - -CREATE TABLE QRTZ_CALENDARS -( - SCHED_NAME VARCHAR(120) NOT NULL, - CALENDAR_NAME VARCHAR(200) NOT NULL, - CALENDAR BLOB NOT NULL, - PRIMARY KEY (SCHED_NAME, CALENDAR_NAME) -); - -CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - PRIMARY KEY (SCHED_NAME, TRIGGER_GROUP) -); - -CREATE TABLE QRTZ_FIRED_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - ENTRY_ID VARCHAR(95) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - INSTANCE_NAME VARCHAR(200) NOT NULL, - FIRED_TIME BIGINT(13) NOT NULL, - SCHED_TIME BIGINT(13) NOT NULL, - PRIORITY INTEGER NOT NULL, - STATE VARCHAR(16) NOT NULL, - JOB_NAME VARCHAR(200) NULL, - JOB_GROUP VARCHAR(200) NULL, - IS_NONCONCURRENT VARCHAR(1) NULL, - REQUESTS_RECOVERY VARCHAR(1) NULL, - PRIMARY KEY (SCHED_NAME, ENTRY_ID) -); - -CREATE TABLE QRTZ_SCHEDULER_STATE -( - SCHED_NAME VARCHAR(120) NOT NULL, - INSTANCE_NAME VARCHAR(200) NOT NULL, - LAST_CHECKIN_TIME BIGINT(13) NOT NULL, - CHECKIN_INTERVAL BIGINT(13) NOT NULL, - PRIMARY KEY (SCHED_NAME, INSTANCE_NAME) -); - -CREATE TABLE QRTZ_LOCKS -( - SCHED_NAME VARCHAR(120) NOT NULL, - LOCK_NAME VARCHAR(40) NOT NULL, - PRIMARY KEY (SCHED_NAME, LOCK_NAME) -); - - -INSERT INTO handyman_config.spw_process_config (id, process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version) VALUES(1, 'SYS_PACKAGE', 'raven.java.lib', 'in.handyman.raven.lib', 'Y', 1, '2022-01-01 00:00:00.000', 1, '2022-01-01 00:00:00.000', 1); -INSERT INTO handyman_config.spw_process_config (id, process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version) VALUES(2, 'ZIO_CORE', 'zio.lambda.temp', '/home/naruto/data/handyman/tmp', 'Y', 1, '2022-01-01 00:00:00.000', 1, '2022-01-01 00:00:00.000', 1); -INSERT INTO handyman_config.spw_process_config (id, process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version) VALUES(3, 'ZIO_CORE', 'zio.lambda.dir', 'src/main/lambda', 'Y', 1, '2022-01-01 00:00:00.000', 1, '2022-01-01 00:00:00.000', 1); -INSERT INTO handyman_audit.execution_group (id, value) VALUES(4, 'ACTION'); -INSERT INTO handyman_audit.execution_group (id, value) VALUES(2, 'CATCH'); -INSERT INTO handyman_audit.execution_group (id, value) VALUES(3, 'FINALLY'); -INSERT INTO handyman_audit.execution_group (id, value) VALUES(1, 'TRY'); -INSERT INTO handyman_audit.execution_status (id, value) VALUES(5, 'COMPLETED'); -INSERT INTO handyman_audit.execution_status (id, value) VALUES(4, 'FAILED'); -INSERT INTO handyman_audit.execution_status (id, value) VALUES(2, 'RUNNING'); -INSERT INTO handyman_audit.execution_status (id, value) VALUES(6, 'STAGED'); -INSERT INTO handyman_audit.execution_status (id, value) VALUES(1, 'STARTED'); -INSERT INTO handyman_audit.execution_status (id, value) VALUES(3, 'STOPPED'); -INSERT INTO handyman_audit.execution_status (id, value) VALUES(7, 'WARNING'); - - -commit; diff --git a/db/spw_audit.sql b/db/spw_audit.sql deleted file mode 100644 index 12573514..00000000 --- a/db/spw_audit.sql +++ /dev/null @@ -1,74 +0,0 @@ -DROP DATABASE if exists `spw_audit`; - -CREATE DATABASE `spw_audit` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; - -use spw_audit; - --- `batch_audit` definition - -CREATE TABLE `batch_audit` -( - `batch_id` bigint(20) NOT NULL AUTO_INCREMENT, - `instance_id` bigint(20) NOT NULL, - `statement_id` bigint(20) NOT NULL, - `command_name` varchar(50) NOT NULL, - `rows_processed` int(11) DEFAULT NULL, - `time_taken` float NOT NULL, - PRIMARY KEY (`batch_id`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb3; - - --- `command_audit` definition - -CREATE TABLE `command_audit` -( - `command_id` bigint(20) NOT NULL, - `instance_id` bigint(20) NOT NULL, - `start` timestamp NULL DEFAULT current_timestamp(), - `end` datetime DEFAULT NULL, - `action_name` varchar(150) NOT NULL, - `process_name` varchar(150) NOT NULL, - `command_config` text DEFAULT NULL, - `status` smallint(6) NOT NULL, - PRIMARY KEY (`command_id`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb3; - - --- `instance_audit` definition - -CREATE TABLE `instance_audit` -( - `instance_id` bigint(20) NOT NULL, - `instance_name` varchar(150) NOT NULL, - `mode` varchar(100) NOT NULL, - `start` timestamp NULL DEFAULT current_timestamp(), - `end` datetime DEFAULT NULL, - `hostname` varchar(50) DEFAULT NULL, - `file` varchar(500) DEFAULT NULL, - `status` smallint(6) NOT NULL, - `context_log` text DEFAULT NULL, - `root_ref_id` int(11) DEFAULT NULL, - PRIMARY KEY (`instance_id`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb3; - - --- `statement_audit` definition - -CREATE TABLE `statement_audit` -( - `statement_id` bigint(20) NOT NULL, - `action_id` bigint(20) NOT NULL, - `action_name` varchar(50) NOT NULL, - `process_name` varchar(50) NOT NULL, - `start` timestamp NULL DEFAULT current_timestamp(), - `end` datetime DEFAULT NULL, - `rows_written` int(11) DEFAULT NULL, - `statement_config` text DEFAULT NULL, - `rows_read` int(11) DEFAULT NULL, - `status` smallint(6) NOT NULL, - PRIMARY KEY (`statement_id`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb3; diff --git a/db/spw_config.sql b/db/spw_config.sql deleted file mode 100644 index 18e5e682..00000000 --- a/db/spw_config.sql +++ /dev/null @@ -1,61 +0,0 @@ -DROP DATABASE if exists `spw_config`; - -CREATE DATABASE `spw_config` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; - -use spw_config; - --- spw_config.spw_common_config definition - -CREATE TABLE `spw_common_config` -( - `variable` varchar(150) NOT NULL, - `value` varchar(500) NOT NULL, - `active` enum ('Y','N') NOT NULL, - PRIMARY KEY (`variable`, `value`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb3; - - --- spw_config.spw_instance_config definition - -CREATE TABLE `spw_instance_config` -( - `instance` varchar(150) NOT NULL, - `process` varchar(150) NOT NULL, - `variable` varchar(150) NOT NULL, - `value` varchar(500) NOT NULL, - `active` enum ('Y','N') NOT NULL, - PRIMARY KEY (`instance`, `process`, `variable`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb3; - - --- spw_config.spw_process_config definition - -CREATE TABLE `spw_process_config` -( - `process` varchar(150) NOT NULL, - `variable` varchar(150) NOT NULL, - `value` varchar(500) NOT NULL, - `active` enum ('Y','N') NOT NULL, - PRIMARY KEY (`process`, `variable`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb3; - - --- spw_config.spw_resource_config definition - -CREATE TABLE `spw_resource_config` -( - `config_type` varchar(50) DEFAULT NULL, - `config_name` varchar(50) NOT NULL, - `auth_info` varchar(1000) DEFAULT NULL, - `resource_url` varchar(1000) NOT NULL, - `active` enum ('Y','N') NOT NULL, - `created_date` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `user_name` varchar(50) NOT NULL, - `password` varchar(50) NOT NULL, - `driver_class` varchar(100) NOT NULL, - PRIMARY KEY (`config_name`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb3; diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index aeeb8ddc..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,72 +0,0 @@ -version: '3' -services: - zookeeper: - image: confluentinc/cp-zookeeper:6.2.0 - hostname: zookeeper - container_name: zookeeper - environment: - ZOOKEEPER_CLIENT_PORT: 2181 - ZOOKEEPER_TICK_TIME: 2000 - - broker: - image: confluentinc/cp-kafka:6.2.0 - container_name: broker - ports: - - "9092:9092" - depends_on: - - zookeeper - environment: - KAFKA_BROKER_ID: 1 - KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,PLAINTEXT_INTERNAL://broker:29092 - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 - KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 - KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 - - elastic.store: - image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1 - container_name: elastic.store - environment: - - node.name=elastic.store - - cluster.name=es-docker-cluster - - cluster.initial_master_nodes=elastic.store - - bootstrap.memory_lock=true - - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - - xpack.security.enabled=true - - xpack.security.audit.enabled=true - - ELASTIC_PASSWORD=password - - ELASTICSEARCH_USERNAME=elastic - ulimits: - memlock: - soft: -1 - hard: -1 - ports: - - "9200:9200" - - "9300:9300" - healthcheck: - test: curl -s https://elastic.store:9200 >/dev/null || exit 1 - interval: 30s - timeout: 10s - retries: 50 - - maria_db: - image: "mariadb" - restart: always - ports: - - "3306:3306" - environment: - MYSQL_DATABASE: handyman_vm - MYSQL_ROOT_PASSWORD: password - - zio_app_ui: - image: openjdk:11 - container_name: zio-app-ui - # restart: always - ports: - - "9000:9000" - environment: - TZ: "Asia/Kolkata" - command: [ 'java', '-jar', '/zio-app-ui.jar' ] - - diff --git a/handyman.legacy/.antlr-generator-3.2.0-patch.jar b/handyman.legacy/.antlr-generator-3.2.0-patch.jar deleted file mode 100644 index 90516fd7..00000000 Binary files a/handyman.legacy/.antlr-generator-3.2.0-patch.jar and /dev/null differ diff --git a/handyman.legacy/.gitignore b/handyman.legacy/.gitignore deleted file mode 100644 index c6842a3f..00000000 --- a/handyman.legacy/.gitignore +++ /dev/null @@ -1,40 +0,0 @@ -/target/* -/.cache-main -/.classpath -*.class -/target/ -HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ -/.jpb/ - diff --git a/handyman.legacy/handyman/.antlr-generator-3.2.0-patch.jar b/handyman.legacy/handyman/.antlr-generator-3.2.0-patch.jar deleted file mode 100644 index 90516fd7..00000000 Binary files a/handyman.legacy/handyman/.antlr-generator-3.2.0-patch.jar and /dev/null differ diff --git a/handyman.legacy/handyman/.gitignore b/handyman.legacy/handyman/.gitignore deleted file mode 100644 index c6842a3f..00000000 --- a/handyman.legacy/handyman/.gitignore +++ /dev/null @@ -1,40 +0,0 @@ -/target/* -/.cache-main -/.classpath -*.class -/target/ -HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ -/.jpb/ - diff --git a/handyman.legacy/handyman/jar-with-ecore-model.xml b/handyman.legacy/handyman/jar-with-ecore-model.xml deleted file mode 100644 index af5b4f61..00000000 --- a/handyman.legacy/handyman/jar-with-ecore-model.xml +++ /dev/null @@ -1,19 +0,0 @@ - - jar-with-ecore-model - - jar - - false - - - / - target/classes - - - model/generated - model/generated - - - diff --git a/handyman.legacy/handyman/model/generated/Dsl.ecore b/handyman.legacy/handyman/model/generated/Dsl.ecore deleted file mode 100644 index c4e6a439..00000000 --- a/handyman.legacy/handyman/model/generated/Dsl.ecore +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/handyman.legacy/handyman/model/generated/Dsl.genmodel b/handyman.legacy/handyman/model/generated/Dsl.genmodel deleted file mode 100644 index 7aa96bbe..00000000 --- a/handyman.legacy/handyman/model/generated/Dsl.genmodel +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/handyman.legacy/handyman/pom.xml b/handyman.legacy/handyman/pom.xml deleted file mode 100644 index 9b454d88..00000000 --- a/handyman.legacy/handyman/pom.xml +++ /dev/null @@ -1,416 +0,0 @@ - - 4.0.0 - - in.handyman - handyman.legacy - 1.0.0 - - handyman.legacy.server - jar - - 11 - 11 - 11 - 2.12.3 - 3.5.0 - 1.0.5 - 2.4.0 - 1.3.3 - 2.9.5 - 1.1 - 4.5.2 - 4.1.2 - 6.0.0 - 3.11.0 - v1-rev224-1.23.0 - v3-rev87-1.19.0 - 1.1.7 - 0.166 - - - - - maven-restlet - Public online Restlet repository - https://maven.restlet.org - - - - - - org.codehaus.mojo - exec-maven-plugin - 1.4.0 - - - mwe2Launcher - generate-sources - - java - - - - - org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher - - /${project.basedir}/src/main/java/in/handyman/GenerateDsl.mwe2 - -p - rootPath=/${project.basedir}/.. - - compile - true - false - - - - org.eclipse.xtend - xtend-maven-plugin - 2.26.0.M2 - - - - org.apache.maven.plugins - maven-clean-plugin - - - - ${basedir}/../handyman/src/main/xtext-gen/ - - **/* - - - - - - - - - - ${basedir}/model/generated/ - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.9.1 - - - add-source - initialize - - add-source - add-resource - - - - src/main/xtext-gen - - - - src/main/xtext-gen - - **/*.java - **/*.g - - - - - - - - - maven-assembly-plugin - 3.1.0 - - - jar-with-ecore-model.xml - - false - - - - make-assembly - package - - single - - - - - - - - - org.eclipse.m2e - lifecycle-mapping - 1.0.0 - - - - - - - org.codehaus.mojo - - - exec-maven-plugin - - - [1.2.1,) - - - java - - - - - - - - - - org.eclipse.xtend - - - xtend-maven-plugin - - - [2.16.0,) - - - testCompile - compile - - - - - - - - - - - - - net.alchim31.maven - scala-maven-plugin - 3.3.1 - - - scala-compile-first - process-resources - - add-source - compile - - - - scala-test-compile - process-test-resources - - testCompile - - - - - ${scala.version} - - - - org.apache.maven.plugins - maven-compiler-plugin - - - compile - - compile - - - - - - - - - src/main/resources/common - - - - - - - - com.facebook.presto - presto-parser - ${presto-parser.version} - - - - com.github.jsqlparser - jsqlparser - 4.2 - - - pausemysauce - bubblet - 1.0-SNAPSHOT - - - org.knowm - sundial - 2.2.0 - - - net.sf.flatpack - flatpack-parent - 4.0.4 - pom - - - - com.typesafe - config - ${typesafe.config.version} - - - - org.eclipse.xtext - org.eclipse.xtext - ${xtextVersion} - - - org.eclipse.xtext - org.eclipse.xtext.xbase - ${xtextVersion} - - - org.eclipse.xtext - org.eclipse.xtext.xtext.generator - ${xtextVersion} - true - - - org.eclipse.emf - org.eclipse.emf.mwe2.launch - 2.9.1.201705291010 - true - - - org.scala-lang - scala-library - ${scala.version} - - - - com.typesafe.scala-logging - scala-logging_2.12 - ${scala.logging.version} - - - - ch.qos.logback - logback-classic - ${logback.classic.version} - - - - - org.scala-lang.modules - scala-xml_2.12 - ${scala.xml.version} - - - - org.restlet.jee - org.restlet - ${restlet.core.version} - - - - com.fasterxml.jackson.core - jackson-databind - ${fasterxml.version} - - - - - com.fasterxml.jackson.core - jackson-core - ${fasterxml.version} - - - - - com.fasterxml.jackson.core - jackson-annotations - ${fasterxml.version} - - - org.apache.commons - commons-text - ${commons.text.version} - - - org.apache.httpcomponents - httpclient - ${commons.httpclient.version} - - - org.apache.httpcomponents - httpasyncclient - ${commons.asynchttpclient.version} - - - org.apache.httpcomponents - httpmime - ${commons.httpclient.version} - - - com.facebook.business.sdk - facebook-java-business-sdk - ${facebook.sdk.version} - - - - com.squareup.okhttp3 - okhttp - ${squareup.http.version} - - - - com.google.apis - google-api-services-people - ${google.people.version} - - - - com.google.apis - google-api-services-calendar - ${google.cal.version} - - - - org.restlet.jee - org.restlet.ext.jackson - ${restlet.core.version} - - - - com.sendgrid - sendgrid-java - 4.3.0 - - - - com.sendgrid - java-http-client - 4.2.0 - - - - diff --git a/handyman.legacy/handyman/src/main/java/in/handyman/Dsl.xtext b/handyman.legacy/handyman/src/main/java/in/handyman/Dsl.xtext deleted file mode 100644 index fdf72e8e..00000000 --- a/handyman.legacy/handyman/src/main/java/in/handyman/Dsl.xtext +++ /dev/null @@ -1,311 +0,0 @@ -grammar in.handyman.Dsl with org.eclipse.xtext.common.Terminals - -generate dsl "http://www.handyman.in/Dsl" - -Process: - 'process' name=STRING - '{' - try=Try - catch=Catch - finally=Finally - - '}'; - -Try : - 'try' name=ID - '{' - (action+=Action)* - '}' -; - -Finally: - 'finally' name=ID - '{' - (action+=Action)* - '}' -; - -Catch: - 'catch' name=ID - '{' - (action+=Action)* - '}' -; - -Action: - (Copydata - |LoadCsv - |WriteCsv - |Transform - |GooglecalPUT - |SlackPUT - |ClickSendSms - |Updatedaudit - |Callprocess - |Forkprocess - |Fetch - |TrelloPUT - |TrelloGET - |Rest - |Doozle - |Dropfile - |FBCLead - |FBFormDownload - |SendMail - |GooglecontactPUT - |GooglecontactSelectAll - |Abort - |SmsLeadSms - |FirebaseReactiveNotification - |FirebaseDatabasePut - |ExecJava - |Dogleg - |Spawnprocess - ) -; - -Spawnprocess: - 'spawn' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'on-condition' condition=Expression; - - -Dogleg: - "dogleg" 'as' name=STRING 'use-parent-context' inheritContext=STRING 'using' - '{' - processList+=StartProcess - '}' 'on-condition' condition=Expression -; - - - - -ExecJava: - "java" 'as' name=STRING 'using' classFqn=STRING 'name-sake-db' dbSrc=STRING - '{' - value=STRING - '}' 'on-condition' condition=Expression -; - -FirebaseDatabasePut: - 'fbdp' 'as' name=STRING 'on' url=STRING 'auth-by' fbjson=STRING 'for-group' groupPath=STRING 'from-source' dbSrc=STRING 'with-class' classFqn=STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression -; - -FirebaseReactiveNotification: - 'fbrn' 'as' name=STRING 'on' url=STRING 'auth-by' fbjson=STRING 'for-group' groupPath=STRING 'with-class' classFqn=STRING 'using' dbSrc=STRING 'on-condition' condition=Expression; - -SmsLeadSms: - 'smsleadssms' 'as' name=STRING 'on' url=STRING 'with-sender' sender=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'from-source' dbSrc=STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression 'do-dryrun-with' dryrunNumber=STRING -; - - -Abort: - 'abort' 'as' name=STRING - '{' - value=STRING - '}' 'on-condition' condition=Expression -; - - - -GooglecontactSelectAll: - 'gcontact-fetchall' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'to-target' dbSrc=STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression -; - -SendMail: - 'sendmail' 'as' name=STRING 'secured-by' privateKey=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' dbSrc=STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression 'do-dryrun-with' dryrunMail=STRING -; - - -GooglecontactPUT: - 'gcontact' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' dbSrc=STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression -; - -GooglecalPUT: - 'gcalendar' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' dbSrc=STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression -; - -FBCLead: - 'fblc' 'as' name=STRING 'secured-by' accessToken=STRING 'with-key' appSecret=STRING 'through-user' accountId=STRING 'for-campaign' campaignId=STRING 'into' target=STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression -; - -FBFormDownload: - 'fbfd' 'as' name=STRING 'secured-by' accessToken=STRING 'with-key' appSecret=STRING 'through-user' accountId=STRING 'for-form' formId=STRING 'into' target=STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression -; - -Dropfile: - 'dropfile' 'as' name=STRING 'in-path' target=STRING 'on-condition' condition=Expression -; - -Doozle: - 'doozle' 'as' name=STRING 'in-table' target=STRING 'on' on=STRING 'using' - '{' - value=CreateStatement - '}' 'on-condition' condition=Expression -; - - - -Rest: - 'rest' 'as' name=STRING 'secured-by' authtoken=STRING 'with-url' url=STRING 'and-method-as' method=STRING - '{' - 'from' resourcedatafrom=STRING 'update-url-with' '{' - urldata=SelectStatement - '}' - 'from' headerdatafrom=STRING 'update-header-with' '{' - headerdata=SelectStatement - '}' - 'from' postdatafrom=STRING 'update-body-with' '{' - 'parent' 'as' parentName=STRING parentdata=SelectStatement - parts+=(RestPart)* - '}' - 'into' ackdatato=STRING 'store-ack-at' '{' - ackdata=SelectStatement - '}' - '}' 'on-condition' condition=Expression -; - -RestPart: - 'part' 'as' partName=STRING 'with' partData=SelectStatement -; - -TrelloGET: - 'trelloget' 'as' name=STRING 'secured-by' authtoken=STRING 'with-key' key=STRING 'through-user' useraccount=STRING 'from-board' board=STRING 'to' target=STRING 'using' - '{' - value=SelectStatement - '}' 'on-condition' condition=Expression -; - -TrelloPUT: - 'trelloput' 'as' name=STRING 'secured-by' authtoken=STRING 'with-key' key=STRING 'through-user' useraccount=STRING 'for-list' list=STRING 'from-source' source=STRING 'using' - '{' - value=SelectStatement - '}' 'on-condition' condition=Expression -; - - -Fetch: - 'assign' 'as' name=STRING 'source' source=STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression -; - -Callprocess: - 'callprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING 'for-every' - '{' - value=SelectStatement - '}' 'on-condition' condition=Expression -; - -Forkprocess: - 'forkprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING 'for-every' - '{' - value=SelectStatement - '}' 'watermark' forkBatchSize=STRING 'on-condition' condition=Expression -; - -Updatedaudit: - 'log' 'as' name=STRING 'logto' logsink=STRING 'in' datasource=STRING 'using' - '{' - value=SelectStatement - '}' 'on-condition' condition=Expression -; - -ClickSendSms: - 'c2sms' 'as' name=STRING 'with-user' userid=STRING 'secured-by' securityKey=STRING 'from-source' target=STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression -; - -SlackPUT: - 'slackput' 'as' name=STRING 'to' team=STRING 'on' channel=STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression -; - - - -Copydata: - 'copydata' 'as' name= STRING 'from' source= STRING 'to' to= STRING 'using' - '{' - value=STRING - '}' 'on-condition' condition=Expression 'fielding' writeThreadCount=STRING 'with-fetch-batch-size' fetchBatchSize=STRING 'with-write-batch-size' writeBatchSize=STRING -; - - -WriteCsv: - 'writecsv' 'as' name= STRING 'from' source= STRING 'to' to= STRING 'with' delim= STRING 'using' - '{' - value=SelectStatement - '}' 'on-condition' condition=Expression -; - -LoadCsv: - 'loadcsv' 'as' name= STRING 'from' source= STRING 'to' to= STRING 'with' delim= STRING 'with-fetch-batch-size' fetchBatchSize=INT 'with-write-batch-size' writeBatchSize=INT 'using' - '{' - value=SelectStatement - '}' 'on-condition' condition=Expression 'fielding' writeThreadCount=INT -; - -Transform: - 'transform' 'as' name= STRING 'on' on= STRING 'using' - '{' - value+=NonSelectStatement - '}' 'on-condition' condition=Expression - -; - - - -Column: - STRING -; -SelectStatement: - STRING -; - -NonSelectStatement: - STRING -; - -CreateStatement: - STRING -; - -StartProcess: - 'start-process' name=STRING 'with-file' target=STRING -; - - -Expression : - 'if' lhs=STRING operator=Operator rhs=STRING -; - -Operator: - '<'|'>'|'=='|'contains' -; diff --git a/handyman.legacy/handyman/src/main/java/in/handyman/DslRuntimeModule.xtend b/handyman.legacy/handyman/src/main/java/in/handyman/DslRuntimeModule.xtend deleted file mode 100644 index 8b1a768e..00000000 --- a/handyman.legacy/handyman/src/main/java/in/handyman/DslRuntimeModule.xtend +++ /dev/null @@ -1,11 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman - - -/** - * Use this class to register components to be used at runtime / without the Equinox extension registry. - */ -class DslRuntimeModule extends AbstractDslRuntimeModule { -} diff --git a/handyman.legacy/handyman/src/main/java/in/handyman/DslStandaloneSetup.xtend b/handyman.legacy/handyman/src/main/java/in/handyman/DslStandaloneSetup.xtend deleted file mode 100644 index 3eba408e..00000000 --- a/handyman.legacy/handyman/src/main/java/in/handyman/DslStandaloneSetup.xtend +++ /dev/null @@ -1,15 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman - - -/** - * Initialization support for running Xtext languages without Equinox extension registry. - */ -class DslStandaloneSetup extends DslStandaloneSetupGenerated { - - def static void doSetup() { - new DslStandaloneSetup().createInjectorAndDoEMFRegistration() - } -} diff --git a/handyman.legacy/handyman/src/main/java/in/handyman/GenerateDsl.mwe2 b/handyman.legacy/handyman/src/main/java/in/handyman/GenerateDsl.mwe2 deleted file mode 100644 index 0fb15abe..00000000 --- a/handyman.legacy/handyman/src/main/java/in/handyman/GenerateDsl.mwe2 +++ /dev/null @@ -1,43 +0,0 @@ -module in.handyman.GenerateDsl - -import org.eclipse.xtext.xtext.generator.* -import org.eclipse.xtext.xtext.generator.model.project.* - -var rootPath = ".." - -Workflow { - - component = XtextGenerator { - configuration = { - project = StandardProjectConfig { - baseName = "handyman" - rootPath = rootPath - genericIde = { - enabled = false - } - mavenLayout = true - } - code = { - encoding = "windows-1252" - lineDelimiter = "\r\n" - fileHeader = "/*\n * generated by Xtext \${version}\n */" - } - } - language = StandardLanguage { - name = "in.handyman.Dsl" - fileExtensions = "spw" - - serializer = { - generateStub = false - } - validator = { - // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" - // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage - generateDeprecationValidation = true - } - junitSupport = { - junitVersion = "5" - } - } - } -} diff --git a/handyman.legacy/handyman/src/main/java/in/handyman/generator/DslGenerator.xtend b/handyman.legacy/handyman/src/main/java/in/handyman/generator/DslGenerator.xtend deleted file mode 100644 index bd991626..00000000 --- a/handyman.legacy/handyman/src/main/java/in/handyman/generator/DslGenerator.xtend +++ /dev/null @@ -1,25 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman.generator - -import org.eclipse.emf.ecore.resource.Resource -import org.eclipse.xtext.generator.AbstractGenerator -import org.eclipse.xtext.generator.IFileSystemAccess2 -import org.eclipse.xtext.generator.IGeneratorContext - -/** - * Generates code from your model files on save. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation - */ -class DslGenerator extends AbstractGenerator { - - override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) { -// fsa.generateFile('greetings.txt', 'People to greet: ' + -// resource.allContents -// .filter(Greeting) -// .map[name] -// .join(', ')) - } -} diff --git a/handyman.legacy/handyman/src/main/java/in/handyman/scoping/DslScopeProvider.xtend b/handyman.legacy/handyman/src/main/java/in/handyman/scoping/DslScopeProvider.xtend deleted file mode 100644 index efb62152..00000000 --- a/handyman.legacy/handyman/src/main/java/in/handyman/scoping/DslScopeProvider.xtend +++ /dev/null @@ -1,15 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman.scoping - - -/** - * This class contains custom scoping description. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping - * on how and when to use it. - */ -class DslScopeProvider extends AbstractDslScopeProvider { - -} diff --git a/handyman.legacy/handyman/src/main/java/in/handyman/validation/DslValidator.xtend b/handyman.legacy/handyman/src/main/java/in/handyman/validation/DslValidator.xtend deleted file mode 100644 index 08259929..00000000 --- a/handyman.legacy/handyman/src/main/java/in/handyman/validation/DslValidator.xtend +++ /dev/null @@ -1,25 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman.validation - - -/** - * This class contains custom validation rules. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation - */ -class DslValidator extends AbstractDslValidator { - -// public static val INVALID_NAME = 'invalidName' -// -// @Check -// def checkGreetingStartsWithCapital(Greeting greeting) { -// if (!Character.isUpperCase(greeting.name.charAt(0))) { -// warning('Name should start with a capital', -// DslPackage.Literals.GREETING__NAME, -// INVALID_NAME) -// } -// } - -} diff --git a/handyman.legacy/handyman/src/main/resources/common/configstore.props b/handyman.legacy/handyman/src/main/resources/common/configstore.props deleted file mode 100644 index c9786ee1..00000000 --- a/handyman.legacy/handyman/src/main/resources/common/configstore.props +++ /dev/null @@ -1,15 +0,0 @@ -config= { - url = "jdbc:mysql://pazzmysaz.cherry.in:3306/spw_config?useUnicode=true&characterEncoding=utf8&dumpQueriesOnException=true" - driver = com.mysql.jdbc.Driver - user=root - passwd=password - batch_sql="select variable, value from spw_common_config" - process_sql="select variable, value from spw_process_config where process=?" - instance_sql="select variable, value from spw_instance_config where instance=?" - - key_global_sql="select value from spw_common_config where key_=?" - key_process_sql="select value from spw_process_config where process=? and variable=?" - key_instance_sql="select value from spw_instance_config where alias =?" - - resource_sql = "select config_type, driver_class, user_name, password, resource_url from spw_resource_config where active='y' AND config_name=?" -} diff --git a/handyman.legacy/handyman/src/main/resources/common/logback.xml b/handyman.legacy/handyman/src/main/resources/common/logback.xml deleted file mode 100644 index cd852172..00000000 --- a/handyman.legacy/handyman/src/main/resources/common/logback.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - handyman.log - - handyman.%d{yyyy-MM-dd}.log - 30 - 100MB - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/AbortException.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/AbortException.scala deleted file mode 100644 index f88feffe..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/AbortException.scala +++ /dev/null @@ -1,23 +0,0 @@ -package in.handyman - -import in.handyman.command.Context -import in.handyman.server.ProcessResponse - -//https://stackoverflow.com/questions/38243530/custom-exception-in-scala -class AbortException (message: String, action:String, context:Context) extends Exception(message) { - - var processResponse:ProcessResponse=null - - def this(message: String, cause: Throwable, action:String, context:Context) { - this(message, action, context ) - initCause(cause) - } - - def this(cause: Throwable, action:String, context:Context, processResponse:ProcessResponse) { - this(Option(cause).map(_.toString).orNull, cause, action, context) - } - - def this() { - this(null: String, null, null, null) - } -} diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/HandymanException.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/HandymanException.scala deleted file mode 100644 index 00505d31..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/HandymanException.scala +++ /dev/null @@ -1,19 +0,0 @@ -package in.handyman - -class HandymanException(message: String) extends Exception(message) { - - def this(message: String, cause: Throwable) { - this(message) - initCause(cause) - } - - def this(cause: Throwable) { - this(Option(cause).map(_.toString).orNull, cause) - } - - def this() { - this(null: String) - } -} - - diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/audit/AuditService.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/audit/AuditService.scala deleted file mode 100644 index 09145752..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/audit/AuditService.scala +++ /dev/null @@ -1,194 +0,0 @@ -package in.handyman.audit - -import in.handyman.config.ConfigurationService -import java.sql.DriverManager -import java.sql.Statement -import in.handyman.util.ResourceAccess -import com.typesafe.scalalogging.LazyLogging -import org.slf4j.MarkerFactory - -object AuditService extends LazyLogging{ - - val auditService = ConfigurationService.getGlobalconfig().getOrElse("audit", "audit/spw-audit") - val auditMarker = "AUDIT"; - val aMarker = MarkerFactory.getMarker(auditMarker); - - def insertInstanceAudit(instanceName: String, runMode: String, machine: String, file: String): Integer = { - - val conn = ResourceAccess.rdbmsConn(auditService) - conn.setAutoCommit(false) - logger.info(aMarker, "Obtained Connection for handle ={} for inserting the audit for process {}", auditService, instanceName) - val st = conn.prepareStatement("INSERT INTO instance_audit (instance_name, mode, start, hostname, file, status) VALUES (?, ?, NOW(), ?, ?, 1);", Statement.RETURN_GENERATED_KEYS) - try { - st.setString(1, instanceName) - st.setString(2, runMode) - st.setString(3, machine) - st.setString(4, file) - - val rowsUpdated = st.executeUpdate() - - val rs = st.getGeneratedKeys - rs.next - val pk = rs.getInt(1) - logger.info(aMarker, "Retrieved process id post process start as {} for process {} with file {}",pk.toString, instanceName, file) - - rs.close() - conn.commit - pk - } catch { - case t: Throwable => - t.printStackTrace() - 0 - } finally { - st.close(); - conn.close() - } - } - - def updateProcessAudit(processId: Integer, status: Int, contextLog: String, instanceName:String): Unit = { - val conn = ResourceAccess.rdbmsConn(auditService) - conn.setAutoCommit(false) - logger.info(aMarker, "Obtained Connection for handle #{} for updating the audit for processid #{} for process #{} ", auditService, processId, instanceName) - val st = conn.prepareStatement("update instance_audit set end=now(), status=?, context_log=? where instance_id=?") - try { - st.setInt(1, status) - st.setString(2, contextLog) - st.setInt(3, processId) - val rowsUpdated = st.executeUpdate() - conn.commit - } catch { - case t: Throwable => - logger.error(aMarker,"Error performing updating the proces audit with process id ={}, for process#{}",processId,instanceName) - logger.error(aMarker,"Error stack trace#",t) - - } finally { - st.close(); - conn.close() - logger.info(aMarker,"Completed update for processid #{} for process #{} ", processId, instanceName) - } - } - - def insertCommandAudit(instanceId: Int, actionName: String, processName: String): Integer = { - val conn = ResourceAccess.rdbmsConn(auditService) - conn.setAutoCommit(false) - val st = conn.prepareStatement("INSERT INTO command_audit (instance_id, start, action_name, process_name, status) VALUES (?, NOW(), ?, ?, '1')", Statement.RETURN_GENERATED_KEYS) - logger.info(aMarker, "Insert for command #{} for process #{} for processid# {}",actionName, processName, instanceId.toString()) - try { - st.setInt(1, instanceId) - st.setString(2, actionName) - st.setString(3, processName) - val rowsUpdated = st.executeUpdate() - conn.commit - val rs = st.getGeneratedKeys - rs.next - val pk = rs.getInt(1) - rs.close() - logger.info(aMarker,"Completed Insert for command # {} for process # {} for processid# {} with id# {}", actionName, processName, instanceId.toString(), pk.toString()) - pk - } catch { - case t: Throwable => - logger.error(aMarker,"Error performing updating the proces audit with process id = $instanceId, for process# $processName, for action# $actionName") - logger.error(aMarker,"Error stack trace#",t) - 0 - } finally { - st.close(); - conn.close() - - } - } - - def updateCommandAudit(actionId: Integer, status: Integer, commandDetail:String): Unit = { - val conn = ResourceAccess.rdbmsConn(auditService) - logger.info(aMarker, "Obtained Connection for actionid #{} with status #{} ", actionId, status) - val st = conn.prepareStatement("update command_audit set end=now(), status=?, command_config=? where command_id=?") - try { - st.setInt(1, status) - st.setString(2, commandDetail) - st.setInt(3, actionId) - val rowsUpdated = st.executeUpdate() - conn.commit - } catch { - case t: Throwable => - t.printStackTrace() - } finally { - st.close(); - conn.close() - } - } - - def insertStatementAudit(actionId: Int, actionName: String, processName: String): Int = { - val conn = ResourceAccess.rdbmsConn(auditService) - conn.setAutoCommit(false) - val st = conn.prepareStatement("INSERT INTO statement_audit (action_id, action_name, process_name, start, status) VALUES (?, ?, ?, NOW(),'1');", Statement.RETURN_GENERATED_KEYS) - try { - st.setInt(1, actionId) - st.setString(2, actionName) - st.setString(3, processName) - - val rowsUpdated = st.executeUpdate() - conn.commit - val rs = st.getGeneratedKeys - rs.next - val pk = rs.getInt(1) - rs.close() - pk - } catch { - case t: Throwable => - t.printStackTrace() - 0 - } finally { - st.close(); - conn.close() - } - } - - def insertBatchAudit(statementId:Int, actionName:String, instanceId:Int, rowsProcessed:Int, timeTaken:Int):Int={ - val conn = ResourceAccess.rdbmsConn(auditService) - conn.setAutoCommit(false) - val st = conn.prepareStatement("INSERT INTO batch_audit (instance_id, command_name, statement_id, rows_processed, time_taken) VALUES (?, ?, ?, ?, ?);", Statement.RETURN_GENERATED_KEYS) - try { - st.setInt(1, instanceId) - st.setString(2, actionName) - st.setInt(3, statementId) - st.setInt(4, rowsProcessed) - st.setInt(5, timeTaken) - - val rowsUpdated = st.executeUpdate() - conn.commit - val rs = st.getGeneratedKeys - rs.next - val pk = rs.getInt(1) - rs.close() - pk - } catch { - case t: Throwable => - t.printStackTrace() - 0 - } finally { - st.close(); - conn.close() - } - } - - //, - def updateStatementAudit(statementId: Integer, rowsW: Int, rowsR: Int, statement: String, status: Integer): Unit = { - val conn = ResourceAccess.rdbmsConn(auditService) - conn.setAutoCommit(false) - val st = conn.prepareStatement("update statement_audit set end=now(), status=?, statement_config=?, rows_written=?, rows_read=? where statement_id=?") - try { - st.setInt(1, status) - st.setString(2, statement) - st.setInt(3, rowsW) - st.setInt(4, rowsR) - st.setInt(5,statementId) - val rowsUpdated = st.executeUpdate() - conn.commit - } catch { - case t: Throwable => - t.printStackTrace() - } finally { - st.close(); - conn.close() - } - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/command/Action.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/command/Action.scala deleted file mode 100644 index 7d56ac28..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/command/Action.scala +++ /dev/null @@ -1,10 +0,0 @@ -package in.handyman.command - -trait Action { - - def execute(context: Context, action:in.handyman.dsl.Action, actionId:Integer) :Context - - def executeIf(context: Context, action:in.handyman.dsl.Action) :Boolean - - def generateAudit():java.util.Map[String,String] -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/command/CommandProxy.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/command/CommandProxy.scala deleted file mode 100644 index 345199cd..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/command/CommandProxy.scala +++ /dev/null @@ -1,75 +0,0 @@ -package in.handyman.command -import java.lang.reflect.{ Method, InvocationHandler, Proxy } -import org.eclipse.emf.ecore.util.EDataTypeEList -import org.eclipse.emf.common.util.EList -import org.eclipse.emf.common.util.BasicEList -import in.handyman.util.ParameterisationEngine -import in.handyman.dsl.RestPart -import org.eclipse.emf.ecore.util.EObjectContainmentEList -import com.typesafe.scalalogging.LazyLogging -import in.handyman.dsl.Expression -import in.handyman.dsl.impl.ExpressionImpl -import in.handyman.HandymanException - -object CommandProxy extends LazyLogging { - //val eList = classOf[EList[String]].getName - def createProxy[I](proxee: I, interfaceClass: Class[I], context: Context): I = { - - assert(interfaceClass.isInterface, "interfaceClass should be an inteface class") - Proxy.newProxyInstance(interfaceClass.getClassLoader, Array(interfaceClass), new InvocationHandler() { - override def invoke(proxy: Object, method: Method, args: Array[Object]) = { - - method.getReturnType.getName match { - - case "org.eclipse.emf.common.util.EList" => { - method.getName match { - case "getParts" => { - logger.info("(getParts) Invoking method in action #{}", method.getName) - method.invoke(proxee, args: _*) - .asInstanceOf[EObjectContainmentEList[RestPart]] - } - case _ => { - val interim = method.invoke(proxee, args: _*) - .asInstanceOf[EDataTypeEList[String]] - logger.info("(No getParts) Invoking method in action #{}", method.getName) - val output = new BasicEList[String] - val iter = interim.iterator - while (iter.hasNext) { - val value = iter.next - val result = ParameterisationEngine.resolve(value, context) - output.add(result) - } - output - } - } - } - case "in.handyman.dsl.Expression" => { - method.getName match { - case "getCondition" => { - val interim = method.invoke(proxee, args: _*) - .asInstanceOf[Expression] - logger.info("Invoking method in action #{}", method.getName) - if (interim!=null && interim.getLhs != null && interim.getRhs != null) { - interim.setLhs(ParameterisationEngine.resolve(interim.getLhs, context)) - interim.setRhs(ParameterisationEngine.resolve(interim.getRhs, context)) - } - interim - } - } - } - case "java.lang.String" => { - val inputString = method.invoke(proxee, args: _*).asInstanceOf[String] - val result = ParameterisationEngine.resolve(inputString, context) - result - } - case _=> { - throw new HandymanException("Support for other types is not there yet") - } - - } - - } - }).asInstanceOf[I] - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/command/Context.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/command/Context.scala deleted file mode 100644 index 13a1f484..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/command/Context.scala +++ /dev/null @@ -1,10 +0,0 @@ -package in.handyman.command - -trait Context { - - def getValue(variable:String):String - def getMe():java.util.Map[String, String] - def getMeAsIs():Map[String, String] - def addValue(key:String, value:String) - def getJson():String -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/command/ErrorContext.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/command/ErrorContext.scala deleted file mode 100644 index 7b36dce8..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/command/ErrorContext.scala +++ /dev/null @@ -1,41 +0,0 @@ -package in.handyman.command - -import java.io.StringWriter -import java.io.PrintWriter -import com.fasterxml.jackson.databind.ObjectMapper - -class ErrorContext(val tryContext:Context) extends Context { - - private[this] var executionException:Throwable=null - def getValue(variable: String): String = { - tryContext.getValue(variable) - } - def getMe():java.util.Map[String,String] = { - tryContext.getMe - } - def getMeAsIs():Map[String, String] = { - tryContext.getMeAsIs - } - def addValue(key: String, value: String): Unit = { - tryContext.addValue(key, value) - } - def exception = executionException - def exception_=(t:Throwable) { - // write require condition if you need require(0 <= x && x < 60) - executionException=t - } - - def completeStackTrace():String={ - val errors = new StringWriter(); - val print = new PrintWriter(errors) - if(executionException!=null) executionException.printStackTrace(print) else print.print("NONE"); - errors.toString(); - - } - - def getJson(): String = { - val jsonSerializer = new ObjectMapper - jsonSerializer.writeValueAsString(getMe()) - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/command/FinallyContext.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/command/FinallyContext.scala deleted file mode 100644 index 7f3d6e36..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/command/FinallyContext.scala +++ /dev/null @@ -1,25 +0,0 @@ -package in.handyman.command - -import com.fasterxml.jackson.databind.ObjectMapper - -class FinallyContext(val errorContext:ErrorContext) extends Context { - def getValue(variable: String): String = { - errorContext.getValue(variable) - } - def getMe():java.util.Map[String,String] = { - errorContext.getMe - } - - def getMeAsIs():Map[String, String] = { - errorContext.getMeAsIs - } - def addValue(key: String, value: String): Unit = { - - } - - def getJson(): String = { - val jsonSerializer = new ObjectMapper - jsonSerializer.writeValueAsString(getMe()) - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/command/TryContext.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/command/TryContext.scala deleted file mode 100644 index 5bd5033c..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/command/TryContext.scala +++ /dev/null @@ -1,42 +0,0 @@ - - -package in.handyman.command - -import in.handyman.util.ParameterisationEngine -import com.fasterxml.jackson.databind.ObjectMapper - -class TryContext(var config: Map[String, String], val instanceName: String) extends Context { - - def getValue(variable: String): String = { - val output = if(config.contains(variable)) { - val value = config.get(variable).get - ParameterisationEngine.resolve(value, this) - } - else - { - "" - } - output - } - - def getMe(): java.util.Map[String, String] = { - val configMap: java.util.Map[String, String] = new java.util.HashMap[String, String] - config.foreach(t => { - configMap.put(t._1, t._2) - }) - configMap - } - - def getMeAsIs(): Map[String, String] = { - config - } - - def addValue(key: String, value: String): Unit = { - config += ((key, value)) - } - - def getJson(): String = { - val jsonSerializer = new ObjectMapper - jsonSerializer.writeValueAsString(getMe()) - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/config/ConfigurationService.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/config/ConfigurationService.scala deleted file mode 100644 index 2076a694..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/config/ConfigurationService.scala +++ /dev/null @@ -1,211 +0,0 @@ -package in.handyman.config - -import java.sql._ - -import org.slf4j.Logger - -import com.typesafe.config._ -import com.typesafe.scalalogging.LazyLogging -import in.handyman.HandymanException - -/** - * @author jpvel - * TODO I would like to use immutable map instead of mutable map - * - */ -case class Resource(configType: String, driverClassName: String, userName: String, password: String, url: String, name: String) -object ConfigurationService extends LazyLogging { - //config_type, auth_info, resource_url - private val conf = ConfigFactory.parseResources("configstore.props") - logger.info(s"Initializing the config store from config file $conf.origin.url") - private val url = conf.getString("config.url") - private val driver = conf.getString("config.driver") - private val user = conf.getString("config.user") - private val password = conf.getString("config.passwd") - private val keyQueryBatch = conf.getString("config.key_global_sql") - private val keyQueryProces = conf.getString("config.key_process_sql") - private val keyQueryInstance = conf.getString("config.key_instance_sql") - private val allQueryBatch = conf.getString("config.batch_sql") - private val allQueryProcess = conf.getString("config.process_sql") - private val allQueryInstance = conf.getString("config.instance_sql") - private val resourceConfig = conf.getString("config.resource_sql") - - Class.forName(driver) - - def getConfig(processName: String, key: String): String = - { - val conn = DriverManager.getConnection(url, user, password) - var value: String = null - try { - value = getProcessConfigValue(conn, processName, key) - if (value == null || value.isEmpty()) - value = getBatchConfigValue(conn, key) - - } catch { - case t: Throwable => logger.error("Error reading information from config store{}", url, t) - } finally { - conn.close() - } - value - } - - def getGlobalconfig(): scala.collection.immutable.Map[String, String] = { - val conn = DriverManager.getConnection(url, user, password) - val valueList = getAllBatchConfigValue(conn) - valueList - } - def getAllConfig(instanceName: String): scala.collection.immutable.Map[String, String] = { - val conn = DriverManager.getConnection(url, user, password) - val processName = findProcessName(instanceName) - val valueList = getAllBatchConfigValue(conn) ++ getAllProcessConfigValue(conn, processName) ++ getAllInstanceConfigValue(conn, instanceName) - valueList - } - - private def getBatchConfigValue(conn: Connection, key: String): String = { - val stmt = conn.prepareStatement(keyQueryBatch) - var valueRet: String = null - try { - stmt.setString(1, key) - val rs = stmt.executeQuery() - try { - if (rs.next()) { - val value = rs.getString(1) - valueRet = value - } - } finally { - rs.close() - } - } finally { - stmt.closeOnCompletion() - } - valueRet - } - - private def getProcessConfigValue(conn: Connection, processName: String, key: String): String = { - val stmt = conn.prepareStatement(keyQueryProces) - var valueRet: String = null - try { - stmt.setString(1, processName) - stmt.setString(2, key) - val rs = stmt.executeQuery() - try { - if (rs.next()) { - val value = rs.getString(1) - valueRet = value - } - } finally { - rs.close() - } - } finally { - stmt.closeOnCompletion() - } - valueRet - } - - private def getInstanceConfigVaue(conn: Connection, instanceName: String, key: String): String = { - val stmt = conn.prepareStatement(keyQueryInstance) - var valueRet: String = null - try { - stmt.setString(1, instanceName) - stmt.setString(2, key) - val rs = stmt.executeQuery() - try { - if (rs.next()) { - val value = rs.getString(1) - valueRet = value - } - } finally { - rs.close() - } - } finally { - stmt.closeOnCompletion() - } - valueRet - } - private def getAllBatchConfigValue(conn: Connection): scala.collection.immutable.HashMap[String, String] = - { - val stmt = conn.createStatement() - var configInfo = scala.collection.immutable.HashMap[String, String]() - try { - val rs = stmt.executeQuery(allQueryBatch) - try { - while (rs.next()) { - configInfo += ((rs.getString(1), rs.getString(2))) - } - } finally { - rs.close() - } - } finally { - stmt.closeOnCompletion() - } - configInfo - } - - private def getAllProcessConfigValue(conn: Connection, processFqn: String): scala.collection.immutable.HashMap[String, String] = - { - val stmt = conn.prepareStatement(allQueryProcess) - var configInfo = scala.collection.immutable.HashMap[String, String]() - try { - stmt.setString(1, processFqn) - val rs = stmt.executeQuery() - try { - while (rs.next()) { - configInfo += ((rs.getString(1), rs.getString(2))) - } - } finally { - rs.close() - } - } finally { - stmt.closeOnCompletion() - } - configInfo - } - - private def getAllInstanceConfigValue(conn: Connection, instanceFqn: String): scala.collection.immutable.HashMap[String, String] = - { - val stmt = conn.prepareStatement(allQueryInstance) - var configInfo = scala.collection.immutable.HashMap[String, String]() - try { - stmt.setString(1, instanceFqn) - val rs = stmt.executeQuery() - try { - while (rs.next()) { - configInfo += ((rs.getString(1), rs.getString(2))) - } - } finally { - rs.close() - } - } finally { - stmt.closeOnCompletion() - } - configInfo - } - - def findProcessName(instanceName: String) = { - - if (instanceName.contains("#")) instanceName.substring(0, instanceName.lastIndexOf("#")) else instanceName - } - - def getResourceConfig(name: String): Resource = { - val conn = DriverManager.getConnection(url, user, password) - val stmt = conn.prepareStatement(resourceConfig) - - try { - stmt.setString(1, name) - val rs = stmt.executeQuery() - rs.next() - //TODO need to try catch throw to handle exception scenarios - Resource(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), name) - } - catch { - case e: SQLException => throw new HandymanException("Issue fetching configuration from spw_resource_config for "+name, e) - - } - finally { - stmt.closeOnCompletion() - conn.close - } - - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/AbortAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/AbortAction.scala deleted file mode 100644 index 1c34c9b5..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/AbortAction.scala +++ /dev/null @@ -1,56 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.Context -import in.handyman.command.CommandProxy -import in.handyman.util.ParameterisationEngine -import in.handyman.AbortException -import org.slf4j.MarkerFactory - -class AbortAction extends in.handyman.command.Action with LazyLogging { - val detailMap = new java.util.HashMap[String, String] - val auditMarker = "ABORT"; - val aMarker = MarkerFactory.getMarker(auditMarker); - - def execute(context: Context, action: in.handyman.dsl.Action, actionId:Integer): Context = { - val abortAsIs: in.handyman.dsl.Abort = action.asInstanceOf[in.handyman.dsl.Abort] - val abort: in.handyman.dsl.Abort = CommandProxy.createProxy(abortAsIs, classOf[in.handyman.dsl.Abort], context) - val message = abort.getValue.trim - val id = context.getValue("process-id") - val name = abort.getName - - logger.info(aMarker, "Abort action id#{}, name#{}, calledprocess#{}, message#{}", id, name, name, message) - try { - throw new AbortException(message, name, context) - } finally { - detailMap.putIfAbsent("message", message) - detailMap.putIfAbsent("name", name) - } - } - - def executeIf(context: Context, action: in.handyman.dsl.Action): Boolean = { - val abortAsIs: in.handyman.dsl.Abort = action.asInstanceOf[in.handyman.dsl.Abort] - val abort: in.handyman.dsl.Abort = CommandProxy.createProxy(abortAsIs, classOf[in.handyman.dsl.Abort], context) - - val name = abort.getName - val id = context.getValue("process-id") - - val expression = abort.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - logger.info(aMarker, "Completed evaluation to execute id#{}, name#{}, dbSrc#{}, expression#{}", id, name, expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CalendarEvent.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CalendarEvent.scala deleted file mode 100644 index 627c492e..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CalendarEvent.scala +++ /dev/null @@ -1,33 +0,0 @@ -package in.handyman.process.onethread - -import java.io.Serializable -import scala.beans.{ BeanProperty, BooleanBeanProperty } -//remove if not needed -import scala.collection.JavaConversions._ -import java.util.Date -import java.util.ArrayList - -@SerialVersionUID(6636717210313067637L) -class CalendarEvent extends Serializable { - - @BeanProperty - var calId: String = "NA" - - @BeanProperty - var interval: Int = 0 - - @BeanProperty - var eventAlertTime: String = "NA" - - @BeanProperty - var contactDetails: ArrayList[String] = new java.util.ArrayList[String]() - - @BeanProperty - var startDate:Date=new Date(System.currentTimeMillis()) - - @BeanProperty - var endDate:String="NA" - - - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CallProcessAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CallProcessAction.scala deleted file mode 100644 index 45eacf05..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CallProcessAction.scala +++ /dev/null @@ -1,126 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.Action -import in.handyman.command.Context -import in.handyman.util.ResourceAccess -import in.handyman.DslStandaloneSetup -import in.handyman.server.PathResolver - -import in.handyman.command.TryContext -import in.handyman.parser.antlr.DslParser -import java.io.FileReader -import in.handyman.server.ProcessExecutor -import in.handyman.command.CommandProxy -import in.handyman.server.ProcessAST -import in.handyman.util.ParameterisationEngine -import java.io.StringWriter -import java.io.PrintWriter -import in.handyman.util.ExceptionUtil -import java.sql.ResultSet - -class CallProcessAction extends in.handyman.command.Action with LazyLogging { - val detailMap = new java.util.HashMap[String, String] - def execute(context: in.handyman.command.Context, action: in.handyman.dsl.Action, actionId: Integer): in.handyman.command.Context = { - - val callProcessAsIs: in.handyman.dsl.Callprocess = action.asInstanceOf[in.handyman.dsl.Callprocess] - val callProcess: in.handyman.dsl.Callprocess = CommandProxy.createProxy(callProcessAsIs, classOf[in.handyman.dsl.Callprocess], context) - - val name = callProcess.getName - val fileRelativePath: String = callProcess.getSource - val processName: String = callProcess.getTarget - val dbSrc = callProcess.getDatasource - val sql = callProcess.getValue.replaceAll("\"", "") - val id = context.getValue("process-id") - - logger.info("Callprocess id#{}, name#{}, calledprocess#{}, calledfile#{}, db=#{}", id, name, processName, fileRelativePath, dbSrc) - - val conn = ResourceAccess.rdbmsConn(dbSrc) - val stmt = conn.createStatement - val rs = stmt.executeQuery(sql) - val columnCount = rs.getMetaData.getColumnCount - val contextList: java.util.Set[TryContext] = new java.util.HashSet[TryContext] - - while (rs.next()) { - - for (i <- 1 until columnCount + 1) { - - val key = rs.getMetaData.getColumnLabel(i) - val value = rs.getString(i) - context.addValue(key, value) - detailMap.put("query.output." + key, value) - } - - val runtimeContext = ProcessAST.loadProcessAST(processName, fileRelativePath, context) - - try { - //TODO - change to create(config.get("runmode")) - val runtime = ProcessExecutor.execute("in.handyman.process.onethread", runtimeContext) - - } catch { - case ex: Throwable => { - handleError(ex) - detailMap.put("exception", ExceptionUtil.completeStackTraceex(ex)) - throw ex - } - - } finally { - val onFinally = runtimeContext.process.getFinally - handleFinally() - } - } - try { - logger.info("Completed callprocess name#{}, calledprocess#{}, calledfile#{}, db=#{}", name, processName, fileRelativePath, dbSrc) - detailMap.put("name", name) - detailMap.put("targetProcess", processName) - detailMap.put("targetFile", fileRelativePath) - detailMap.put("dataSource", dbSrc) - detailMap.put("sql", sql) - - } finally { - try { - rs.close - stmt.close - conn.close - } catch { - case ex: Throwable => { - handleError(ex) - detailMap.put("exception", ExceptionUtil.completeStackTraceex(ex)) - } - } - - } - context - } - - def executeIf(context: in.handyman.command.Context, action: in.handyman.dsl.Action): Boolean = { - val callProcessAsIs: in.handyman.dsl.Callprocess = action.asInstanceOf[in.handyman.dsl.Callprocess] - val callProcess: in.handyman.dsl.Callprocess = CommandProxy.createProxy(callProcessAsIs, classOf[in.handyman.dsl.Callprocess], context) - - val expression = callProcess.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - - def handleError(ex: Throwable) = { - logger.info("Error section of call process", ex) - throw ex - } - - def handleFinally() = { - logger.info("Finally section of call process") - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CatchRuntime.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CatchRuntime.scala deleted file mode 100644 index 7c78a303..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CatchRuntime.scala +++ /dev/null @@ -1,12 +0,0 @@ -package in.handyman.process.onethread - -import in.handyman.dsl.Catch -import in.handyman.command.Context - -class CatchRuntime(val catchBlock:Catch, val context:Context) { - - def execute():Context = { - - context - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CommandFactory.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CommandFactory.scala deleted file mode 100644 index 0f129e5f..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CommandFactory.scala +++ /dev/null @@ -1,31 +0,0 @@ -package in.handyman.process.onethread - -import in.handyman.command.Action - -object CommandFactory { - - def create(name:String) :Action={ - - name.toLowerCase match { - case "abort" => new AbortAction - case "googlecal" => new GoogleCalendarAction - case "transform" => new TransformAction - case "assign" => new FetchVariableAction - case "callprocess" => new CallProcessAction - case "forkprocess" => new ForkProcessAction - case "doozle"=>new DoozleAction - case "fbclead"=>new FBLeadCreateAction - case "fbformdownload"=>new FBFormDownloadAction - case "googlecontactput"=>new GContactCreateAction - case "googlecalput"=>new GoogleCalendarAction - case "fetch"=>new FetchVariableAction - case "smsleadsms"=>new SmsLeadsAction - case "sendmail"=>new MailAction - case "firebasedatabaseput"=>new FirebaseDbUpdateAction - case "firebasereactivenotification"=>new FirebaseMessagingAction - case "execjava"=>new JavaAction - case "copydata"=>new CopyDataAction - - } - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/Constants.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/Constants.scala deleted file mode 100644 index f05f22ee..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/Constants.scala +++ /dev/null @@ -1,16 +0,0 @@ -package in.handyman.process.onethread - -object Constants { - - val WRITESIZE="write_size" - val DEFAULT_WRITE_SIZE="5000" - val READSIZE="read_size" - val DEFAULT_READ_SIZE="5000" - val WRITERTHREAD="writer_count" - val DEFAULT_WRITER_COUNT="3" - val STRING_DATATYPE="varchar" - val STRING_ENCLOSER="'" - val FIELD_SEPARATOR="," - val INSERT_STMT_VALUE_START="(" - val INSERT_STMT_VALUE_END=")" -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CopyDataAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CopyDataAction.scala deleted file mode 100644 index c74f81da..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CopyDataAction.scala +++ /dev/null @@ -1,263 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors -import in.handyman.command.CommandProxy -import in.handyman.util.ParameterisationEngine -import in.handyman.util.ResourceAccess -import in.handyman.HandymanException -import in.handyman.audit.AuditService -import in.handyman.config.ConfigurationService -import java.sql.ResultSet -import java.util.concurrent.BlockingQueue -import java.util.concurrent.LinkedBlockingDeque -import java.util.concurrent.CountDownLatch -import java.util.Collections -import net.sf.jsqlparser.parser.CCJSqlParserUtil -import net.sf.jsqlparser.statement.select.Select -import net.sf.jsqlparser.statement.select.PlainSelect -import net.sf.jsqlparser.statement.insert.Insert -import scala.collection.mutable.HashSet -import java.sql.ResultSetMetaData -import java.util.concurrent.atomic.AtomicInteger -import scala.collection.mutable.LinkedHashSet -import scala.collection.mutable.HashMap -import java.util.Random -import scala.collection.mutable.LinkedHashMap - -/** - * TODO - Still need to add more rich ness to audit trail with respect to statement warnings - */ -class CopyDataAction extends in.handyman.command.Action with LazyLogging { - - val rowQueueMap: LinkedHashMap[Int, BlockingQueue[Row]] = new LinkedHashMap[Int, BlockingQueue[Row]]; - val executor: ExecutorService = Executors.newCachedThreadPool; - val detailMap = new java.util.HashMap[String, String] - var rowsProcessed: AtomicInteger = new AtomicInteger(0) - val rand: Random = new Random() - - def execute(context: in.handyman.command.Context, action: in.handyman.dsl.Action, actionId: Integer): in.handyman.command.Context = { - - //Setting up the proxy for retrieving configuration for the macro - val copyDataAsIs: in.handyman.dsl.Copydata = action.asInstanceOf[in.handyman.dsl.Copydata] - val copyData: in.handyman.dsl.Copydata = CommandProxy.createProxy(copyDataAsIs, classOf[in.handyman.dsl.Copydata], context) - - //Retrieving the global config map for default value - val configMap = ConfigurationService.getGlobalconfig() - - val instanceId = context.getValue("process-id") - - val name = copyData.getName - - val source = { - if (copyData.getSource.trim.isEmpty()) { - throw new HandymanException("source data source cannot be empty for copydata for " + name) - } - copyData.getSource.trim - - } - - val target = { - if (copyData.getTo.trim.isEmpty()) { - throw new HandymanException("target data source cannot be empty for copydata for " + name) - } - copyData.getTo.trim - - } - - val fetchSize: Int = { - if (!copyData.getFetchBatchSize.isEmpty && copyData.getFetchBatchSize.toInt > 0) - copyData.getFetchBatchSize.toInt - else { - configMap.getOrElse(Constants.READSIZE, Constants.DEFAULT_READ_SIZE).toInt - } - } - - val writeSize = { - if (!copyData.getWriteBatchSize.isEmpty && copyData.getWriteBatchSize.toInt > 0) - copyData.getWriteBatchSize.toInt - else { - configMap.getOrElse(Constants.WRITESIZE, Constants.DEFAULT_WRITE_SIZE).toInt - } - } - - val threadCount: Int = { - if (!copyData.getWriteThreadCount.isEmpty && copyData.getWriteThreadCount.toInt > 0) - copyData.getWriteThreadCount.toInt - else { - configMap.getOrElse(Constants.WRITERTHREAD, Constants.DEFAULT_WRITER_COUNT).toInt - } - } - - val upperThreadCount = threadCount - val lowerThreadCount = 1 - var isTempTable: Boolean = false - //retrieving the insert into sql statement - val insertStatementAsIs = copyData.getValue - logger.info(s"Insert statement as is :$insertStatementAsIs") - val insertStatement = { - if (insertStatementAsIs.trim.isEmpty()) - throw new HandymanException("INSERT INTO SELECT .... cannot be empty for copydata for " + name) - else { - insertStatementAsIs - } - } - logger.info(s"Insert statement after process id identification :$insertStatement") - val insert = CCJSqlParserUtil.parse(insertStatement).asInstanceOf[Insert] - val select = insert.getSelect - - val targetTable = insert.getTable - - logger.info(s"Copydata action input variables id:$instanceId,name: $name, source-database:$source, target-database:$target, fetchSize:$fetchSize, writeSize:$writeSize,threadCount:$threadCount ") - logger.info(s"Copydata Insert Sql input post parameter ingestion \n :$insert") - logger.info(s"Copydata Select Sql input post parameter ingestion \n :$select") - - //initializing the connection related statement - val sourceConnection = ResourceAccess.rdbmsConn(source) - val stmt = sourceConnection.createStatement - stmt.setFetchSize(fetchSize) - val statementId = AuditService.insertStatementAudit(actionId, "copydata->" + name, context.getValue("process-name")) - //Updating the - AuditService.updateStatementAudit(statementId, -1, 0, insertStatement, 1) - - //Prepping up the parallelization framework - - val prepOut = prepWokerPool(configMap, insert, copyData, threadCount, instanceId, isTempTable) - val countDownLatch = prepOut._1 - val workerPool = prepOut._2 - - //Retrieving the data from the source - val selectStatement = select.toString - - val rs: ResultSet = stmt.executeQuery(selectStatement) - val rsmd = rs.getMetaData - val nrCols = rsmd.getColumnCount - - while (rs.next()) { - - val startTime = System.currentTimeMillis - val columnSet: LinkedHashSet[ColumnInARow] = new LinkedHashSet[ColumnInARow] - val id = rs.getRow - for (i <- 1 to nrCols) { - val column: ColumnInARow = createColumn(i, rs, rsmd, nrCols) - columnSet.add(column) - } - - val row = new Row(id, columnSet) - val queuNumber = rand.nextInt((upperThreadCount - lowerThreadCount) + 1) + lowerThreadCount - val rowQueue = rowQueueMap.get(queuNumber).get - rowQueue.add(row) - - if (rowsProcessed.incrementAndGet % fetchSize == 0) { - val endTime = System.currentTimeMillis - val timeTaken = endTime - startTime - //Taken care of batch audit - AuditService.insertBatchAudit(statementId, name, instanceId.toInt, rowsProcessed.get, timeTaken.toInt) - } - - } - - rowQueueMap.foreach((kv) => { - val rowQueue = kv._2 - val row = new Row(kv._1, null) - rowQueue.add(row) - }) - - try { - countDownLatch.await(); - workerPool.foreach((kv) => { - val worker = kv._2 - logger.info(s"Copydata:$instanceId cleaning up worker:$worker with poison pill:$kv._1") - worker.cleanup - }) - - } catch { - case ex: InterruptedException => { - logger.error(s"Copydata:$instanceId error during waiting for worker threads to finish their job", ex) - throw ex - } - } finally { - detailMap.put("name", name) - detailMap.put("source", source) - detailMap.put("destination", target) - detailMap.put("ddlSql", insertStatementAsIs) - detailMap.put("rows-processed", String.valueOf(rowsProcessed.intValue)); - context.addValue("rows-processed", String.valueOf(rowsProcessed.intValue)); - - try { - if (rs != null) - rs.close - if (stmt != null) - stmt.close - if (sourceConnection != null) - sourceConnection.close - } catch { - case ex: Throwable => { - logger.error(s"Copydata:$instanceId error closing source connection for database:$source", ex) - } - } - - } - context - } - - def prepWokerPool(configMap: Map[String, String], insert: Insert, copyData: in.handyman.dsl.Copydata, threadCount: Int, instanceId: String, isTempTable: Boolean): Tuple2[CountDownLatch, HashMap[Row, CopyDataJdbcWriter]] = { - val countDownLatch: CountDownLatch = new CountDownLatch(threadCount); - val workerPool: HashMap[Row, CopyDataJdbcWriter] = new HashMap[Row, CopyDataJdbcWriter] - - for (i <- 1 to threadCount) { - val rowQueue = new LinkedBlockingDeque[Row]; - val poisonPill: Row = new Row(i, null) - logger.info(s"Copydata action is prepping up writer thread with poison pill:$poisonPill") - val jdbcWriter: CopyDataJdbcWriter = new CopyDataJdbcWriter(configMap, insert, poisonPill, copyData, instanceId, rowQueue, countDownLatch, isTempTable) - workerPool.put(poisonPill, jdbcWriter) - this.executor.submit(jdbcWriter) - rowQueueMap.put(poisonPill.rowId, rowQueue) - - } - new Tuple2(countDownLatch, workerPool) - } - - def createColumn(i: Int, rs: ResultSet, rsmd: ResultSetMetaData, nrCols: Int): ColumnInARow = { - - //case class ColumnInARow(columnType: String, columnTypeName: String, columnName: String, columnLabel: String, scale: Integer, - //value: Object, columnFunction:String, isLastColumn:Boolean) - val columnType = rsmd.getColumnType(i) - val columnTypeName = rsmd.getColumnTypeName(i) - val columnName = rsmd.getColumnName(i) - val columnLabel = rsmd.getColumnLabel(i) - val scale: Int = rsmd.getScale(i) - val value = rs.getObject(i) - val isLastColumn: Boolean = { - if (i == nrCols) - true - else - false - } - val column: ColumnInARow = new ColumnInARow(columnType, columnTypeName, columnName, columnLabel, scale, value, null, isLastColumn) - column - } - - def executeIf(context: in.handyman.command.Context, action: in.handyman.dsl.Action): Boolean = - { - val copyDataAsIs: in.handyman.dsl.Copydata = action.asInstanceOf[in.handyman.dsl.Copydata] - val copyData: in.handyman.dsl.Copydata = CommandProxy.createProxy(copyDataAsIs, classOf[in.handyman.dsl.Copydata], context) - - val expression = copyData.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - } - - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CopyDataJdbcWriter.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CopyDataJdbcWriter.scala deleted file mode 100644 index 22af759a..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/CopyDataJdbcWriter.scala +++ /dev/null @@ -1,158 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.HandymanException -import in.handyman.util.ResourceAccess -import net.sf.jsqlparser.statement.insert.Insert - -import java.sql.{SQLException, Statement} -import java.util.concurrent.{BlockingQueue, Callable, CountDownLatch} -import scala.collection.mutable.HashSet -import scala.util.control.Breaks - -class CopyDataJdbcWriter(configMap: Map[String, String], insert: Insert, poisonPill: Row, - copyData: in.handyman.dsl.Copydata, - id: String, rowQueue: BlockingQueue[Row], - countDownLatch: CountDownLatch, - isTempTable: Boolean) extends Callable[Void] with LazyLogging { - - val writeBuffer: HashSet[String] = new HashSet[String] - val target = { - if (!copyData.getTo.trim.isEmpty()) - copyData.getTo.trim - else - throw new HandymanException("target data source cannot be empty for copydata for " + copyData.getName) - } - - val conn = { - val c = ResourceAccess.rdbmsConn(target) - c.setAutoCommit(false) - c - } - - val writeSize = { - if (!copyData.getWriteBatchSize.isEmpty && copyData.getWriteBatchSize.toInt > 0) - copyData.getWriteBatchSize.toInt - else { - configMap.getOrElse(Constants.WRITESIZE, Constants.DEFAULT_WRITE_SIZE).toInt - } - } - - val columnList = { - val colListBuilder = new StringBuilder - val colListSize = insert.getColumns.size - insert.getColumns.forEach(item => { - val currentIndex = insert.getColumns.indexOf(item) - if (currentIndex + 1 == colListSize) - colListBuilder.append(item.getColumnName) - else - colListBuilder.append(item.getColumnName).append(",") - }) - colListBuilder.toString - } - - def call(): Void = { - - Breaks.breakable { - while (true) { - val row = rowQueue.take(); - if (poisonPill.equals(row)) { - if (!writeBuffer.isEmpty) { - logger.info(s"CopydataWriter(After poison pill) flushing to database rows:$writeBuffer.size") - writeToDb - } - countDownLatch.countDown - Breaks.break - - } else { - val dataFrame = generateDataFrame(row) - writeBuffer.add(dataFrame) - if (writeBuffer.size % writeSize == 0) { - logger.info(s"CopydataWriter(Before poison pill) flushing to database rows:$writeBuffer.size") - writeToDb - } - } - } - } - - ??? - } - - def generateDataFrame(row: Row): String = { - logger.debug(s"Copydata Writer generating dataframe for row:$row") - val columnSet = row.columnSet - val dataFrameBuilder = new StringBuilder - - val targetTable = insert.getTable - - dataFrameBuilder.append("INSERT INTO ").append(targetTable).append(" ("). - append(columnList).append(") VALUES").append(Constants.INSERT_STMT_VALUE_START) - - columnSet.foreach(column => { - - val columnType = column.columnTypeName - if (column.value != null) { - columnType.toLowerCase match { - case Constants.STRING_DATATYPE | "java.lang.string" => dataFrameBuilder.append(Constants.STRING_ENCLOSER). - append(column.value).append(Constants.STRING_ENCLOSER) - case "datetime" => dataFrameBuilder.append(Constants.STRING_ENCLOSER). - append(column.value).append(Constants.STRING_ENCLOSER) - case "timestamp" => dataFrameBuilder.append(Constants.STRING_ENCLOSER). - append(column.value).append(Constants.STRING_ENCLOSER) - case _ => dataFrameBuilder.append(column.value) - } - } else { - dataFrameBuilder.append(column.value) - } - if (!column.isLastColumn) - dataFrameBuilder.append(Constants.FIELD_SEPARATOR) - }) - - dataFrameBuilder.append(Constants.INSERT_STMT_VALUE_END) - dataFrameBuilder.toString() - } - - def writeToDb() = { - logger.info(s"Writing to database using conn:$target") - val stmt: Statement = conn.createStatement - try { - writeBuffer.foreach(sql => { - stmt.addBatch(sql) - }) - stmt.executeBatch - conn.commit - writeBuffer.clear - } catch { - case ex: SQLException => { - logger.error(s"CopydataWriter:$id error closing source connection for database:$target", ex) - } - case ex: Throwable => { - logger.error(s"CopydataWriter:$id error closing source connection for database:$target", ex) - } - } finally { - try { - if (stmt != null) - stmt.close - } catch { - case ex: Throwable => { - ex.printStackTrace - logger.error(s"Copydata:$id error closing source connection for database:$target", ex) - } - } - } - - } - - def cleanup = { - /*try { - if (conn != null) { - conn.close() - } - } catch { - case ex: Exception => { - ex.printStackTrace() - //throw ex - } - }*/ - } -} diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/DogLegAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/DogLegAction.scala deleted file mode 100644 index 34674396..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/DogLegAction.scala +++ /dev/null @@ -1,94 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.Action -import in.handyman.command.Context -import in.handyman.util.ResourceAccess -import in.handyman.DslStandaloneSetup -import in.handyman.server.PathResolver -import in.handyman.command.CommandProxy -import in.handyman.util.ParameterisationEngine -import java.util.concurrent.atomic.AtomicInteger -import java.util.HashSet -import in.handyman.command.TryContext -import in.handyman.util.ExceptionUtil -import java.util.concurrent.CountDownLatch -import in.handyman.server.ProcessAST -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class DogLegAction extends in.handyman.command.Action with LazyLogging { - - val detailMap: java.util.Map[String, String] = new java.util.HashMap[String, String] - val executor: ExecutorService = Executors.newCachedThreadPool(); - - def execute(context: Context, action: in.handyman.dsl.Action, actionId: Integer): Context = { - val dogLegAsIs: in.handyman.dsl.Dogleg = action.asInstanceOf[in.handyman.dsl.Dogleg] - val dogLeg: in.handyman.dsl.Dogleg = CommandProxy.createProxy(dogLegAsIs, classOf[in.handyman.dsl.Dogleg], context) - - val name = dogLeg.getName - val id = context.getValue("process-id") - val inheritContext = { - if (dogLeg.getInheritContext.equals("true")) - true - else - false - } - val processList = dogLeg.getProcessList - logger.info(s"DogLeg id:$id, name:$name") - - val countDownLatch: CountDownLatch = new CountDownLatch(processList.size()); - if (inheritContext) { - processList.forEach(process => { - val processName = process.getName - val fileRelativePath = process.getTarget - val runtimeContext = ProcessAST.loadProcessAST(processName, fileRelativePath, context) - val processWorker = new ForkProcessCallable(runtimeContext, countDownLatch); - this.executor.submit(processWorker) - }) - } else { - processList.forEach(process => { - val instanceName = process.getName - val fileRelativePath = process.getTarget - val runtimeContext = ProcessAST.loadProcessAST(instanceName, "{}") - val runMode = "in.handyman.process.onethread" - val processWorker = new SpawnProcessCallable(runtimeContext); - this.executor.submit(processWorker) - }) - } - try { - countDownLatch.await(); - } catch { - case ex: InterruptedException => { - ex.printStackTrace() - throw ex - } - } - context - } - - def executeIf(context: in.handyman.command.Context, action: in.handyman.dsl.Action): Boolean = { - val dogLegAsIs: in.handyman.dsl.Dogleg = action.asInstanceOf[in.handyman.dsl.Dogleg] - val dogLeg: in.handyman.dsl.Dogleg = CommandProxy.createProxy(dogLegAsIs, classOf[in.handyman.dsl.Dogleg], context) - - val expression = dogLeg.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - - def handleError(ex: Throwable) = { - logger.info("Error section of dogleg ", ex) - throw ex - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/DoozleAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/DoozleAction.scala deleted file mode 100644 index 15fb5c19..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/DoozleAction.scala +++ /dev/null @@ -1,79 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.Context -import in.handyman.command.Action -import in.handyman.command.CommandProxy -import in.handyman.util.ResourceAccess -import java.nio.file.Files -import java.nio.file.Paths -import java.nio.charset.StandardCharsets -import java.nio.file.StandardOpenOption -import in.handyman.util.ParameterisationEngine - -class DoozleAction extends in.handyman.command.Action with LazyLogging { - val detailMap = new java.util.HashMap[String, String] - - def execute(context: in.handyman.command.Context, action: in.handyman.dsl.Action, actionId:Integer): in.handyman.command.Context = { - val doozleAsIs: in.handyman.dsl.Doozle = action.asInstanceOf[in.handyman.dsl.Doozle] - val doozle: in.handyman.dsl.Doozle = CommandProxy.createProxy(doozleAsIs, classOf[in.handyman.dsl.Doozle], context) - - val dbSrc = doozle.getOn - val table = doozle.getTarget - val name = doozle.getName - val ddlSql = doozle.getValue.replaceAll("\"", "") - val id = context.getValue("process-id") - - logger.info("Doozle id#{}, name#{}, table#{}, db=#{}", id, name, table, dbSrc) - - val incomingJson = context.getValue("myjson") - val storagePath = context.getValue("json.storagepath") - storeJson(incomingJson, storagePath, table, id) - - logger.info("Sql=" + ddlSql) - val conn = ResourceAccess.rdbmsConn(dbSrc) - val stmt = conn.createStatement - try { - stmt.execute(ddlSql) - logger.info("Completed doozle id#{}, name#{}, table#{}, db=#{}", id, name, table, dbSrc) - } finally { - stmt.close - conn.close - detailMap.put("name", name) - detailMap.put("table", table) - detailMap.put("dbSrc", dbSrc) - detailMap.put("ddlSql", ddlSql) - detailMap.put("storagePath", storagePath) - - } - context - } - - def executeIf(context: in.handyman.command.Context, action: in.handyman.dsl.Action): Boolean = { - val doozleAsIs: in.handyman.dsl.Doozle = action.asInstanceOf[in.handyman.dsl.Doozle] - val doozle: in.handyman.dsl.Doozle = CommandProxy.createProxy(doozleAsIs, classOf[in.handyman.dsl.Doozle], context) - - val expression = doozle.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if(expression!=null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def storeJson(incomingJson: String, storagePath: String, name: String, id: String) = { - val finalPath = storagePath + "/" + name + ".json" - Files.write(Paths.get(finalPath), incomingJson.getBytes(StandardCharsets.UTF_8), StandardOpenOption.CREATE) - logger.info("File stored for doozle id#{}, path#{}", id, finalPath) - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/DropFileAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/DropFileAction.scala deleted file mode 100644 index dc8a4514..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/DropFileAction.scala +++ /dev/null @@ -1,53 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.CommandProxy -import java.io.File -import in.handyman.util.ParameterisationEngine - -class DropFileAction extends in.handyman.command.Action with LazyLogging { - val detailMap = new java.util.HashMap[String, String] - def execute(context: in.handyman.command.Context,action: in.handyman.dsl.Action, actionId:Integer): in.handyman.command.Context = - { - val dropFileAsIs: in.handyman.dsl.Dropfile = action.asInstanceOf[in.handyman.dsl.Dropfile] - val dropFile: in.handyman.dsl.Dropfile = CommandProxy.createProxy(dropFileAsIs, classOf[in.handyman.dsl.Dropfile], context) - - val file = dropFile.getTarget - val name = dropFile.getName - val id = context.getValue("process-id") - - logger.info("Dropfile id#{}, name#{}, file#{}, db=#{}", id, name, file) - - val filePath = new File(file) - try{ - filePath.delete - logger.info("Completed dropfile id#{}, name#{}, file#{}, db=#{}", id, name, file) - } - finally{ - detailMap.put("file", file) - } - - context - } - - def executeIf(context: in.handyman.command.Context,action: in.handyman.dsl.Action): Boolean = - { - val dropFileAsIs: in.handyman.dsl.Dropfile = action.asInstanceOf[in.handyman.dsl.Dropfile] - val dropFile: in.handyman.dsl.Dropfile = CommandProxy.createProxy(dropFileAsIs, classOf[in.handyman.dsl.Dropfile], context) - - val expression = dropFile.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if(expression!=null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FBFormDownLoadAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FBFormDownLoadAction.scala deleted file mode 100644 index 50b4da0e..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FBFormDownLoadAction.scala +++ /dev/null @@ -1,270 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.CommandProxy -import com.facebook.ads.sdk.APIContext -import com.facebook.ads.sdk.AdAccount -import com.facebook.ads.sdk.Campaign -import in.handyman.util.ResourceAccess -import in.handyman.util.ParameterisationEngine -import java.util.concurrent.atomic.AtomicInteger -import java.sql.SQLException -import java.util.regex.Pattern -import com.facebook.ads.sdk.Ad -import java.util.HashMap -import java.time.LocalDateTime -import java.time.ZoneOffset -import in.handyman.config.ConfigurationService -import in.handyman.util.ExceptionUtil -import org.slf4j.MarkerFactory -import com.facebook.ads.sdk.LeadgenForm -import in.handyman.audit.AuditService -import com.facebook.ads.sdk.APIConfig - -/** - * //https://developers.facebook.com/docs/marketing-api/guides/lead-ads/retrieving/v2.9 - * //https://developers.facebook.com/docs/marketing-api/guides/lead-ads/retrieving/v2.9 - * //1.https://developers.facebook.com/apps - * // -- App display name - in.junome.fubar.app (https://developers.facebook.com/apps/318205931969703/settings/) - * // -- Under marketing api/tools - * // -----ads_management, ads_read, manage_notifications, manage_pages, read_insights, rsvp_event - * // App secret - 632b2b7e5a1d1a86348aa3ec73606cfd - * // Client token - 4097cb4c0fff4c502dff24f31c36f0e6 - * // Access token - EAAEhaBeKXKcBAE991IXtywQPyCSOSOtOKo7n1UhLZCZCQQPg2Ps5dTZB9gPMGte41u0q0yzjLfEqqkXTaxKNHZA7CMTLq8cRRupt8l1Kmg2EzhcR9ZCXBuOsZB9JpzmLGX1ZBubDyjRwM6q4UlqzXmYv3qbazgBVeJHe13SGV7bWkcVIPtqVx4r - * // Account id - 1385910988364458 - * public static final String ACCESS_TOKEN = "EAAEhaBeKXKcBAE991IXtywQPyCSOSOtOKo7n1UhLZCZCQQPg2Ps5dTZB9gPMGte41u0q0yzjLfEqqkXTaxKNHZA7CMTLq8cRRupt8l1Kmg2EzhcR9ZCXBuOsZB9JpzmLGX1ZBubDyjRwM6q4UlqzXmYv3qbazgBVeJHe13SGV7bWkcVIPtqVx4r"; - * public static final Long ACCOUNT_ID = 1385910988364458L; - * public static final String APP_SECRET = "632b2b7e5a1d1a86348aa3ec73606cfd"; - */ -class FBFormDownloadAction extends in.handyman.command.Action with LazyLogging { - - val NAME = 1 - val EMAIL = 2 - val MOBILE = 3 - val ALT_MOBILE = 4 - val LOCALITY = 5 - val TARGETED_CITY = 6 - val LEADSOURCE_CAMPAIGN = 7; - val LEADSOURCE_CHANNEL = 8; - val COMPANY = 9; - val LEADGEN_DATE = 10; - val COA_APROX = 11; - val PROFESSION = 12; - val BUDGET = 13; - val LEADSOURCE_METADATA = 14; - val INTENT_METADATA = 15; - val BATCH_ID = 16; - - val InsertSql = "replace into leads_soft ( name, email, mobile, alt_mobile, locality, targeted_city, leadsource_campaign, leadsource_channel, company, leadgen_date, coa_aprox, profession, budget, leadsource_metadata, intent_metadata, batch_id, updated_date) values (?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?,?,now());" - val detailMap = new java.util.HashMap[String, String] - val fbMarkerText = "FB-LEAD-INGESTION"; - val fbMarker = MarkerFactory.getMarker(fbMarkerText); - - def execute(context: in.handyman.command.Context, action: in.handyman.dsl.Action, actionId: Integer): in.handyman.command.Context = { - - val fbAsIs: in.handyman.dsl.FBFormDownload = action.asInstanceOf[in.handyman.dsl.FBFormDownload] - val fb: in.handyman.dsl.FBFormDownload = CommandProxy.createProxy(fbAsIs, classOf[in.handyman.dsl.FBFormDownload], context) - - val accessToken = fb.getAccessToken - val appSecret = fb.getAppSecret - val accountId = fb.getAccountId - - val formIdList = { - if (fb.getFormId.contains(",")) - fb.getFormId.split(",") - else - Array(fb.getFormId) - } - - val fieldsToSelect = fb.getValue - val fieldArray = fieldsToSelect.split(",") - val dbTarget = fb.getTarget - val name = fb.getName - val tgtConn = ResourceAccess.rdbmsConn(dbTarget) - val stmt = tgtConn.prepareStatement(InsertSql) - - //val fbContext = new APIContext(accessToken, appSecret); - val fbContext = new APIContext(APIConfig.DEFAULT_API_BASE, APIConfig.DEFAULT_VIDEO_API_BASE, "v6.0", accessToken, - appSecret, "455366335002918", true).enableDebug(true); - val fbAccount = new AdAccount(accountId, fbContext) - val nameCleanup = ConfigurationService.getGlobalconfig().get("cleanSpecialChar").getOrElse("false") - val incomingLeadCount: AtomicInteger = new AtomicInteger - val insertedLeadCount: AtomicInteger = new AtomicInteger - - val statementId = AuditService.insertStatementAudit(actionId, "fbform->" + name, context.getValue("process-name")) - logger.info(fbMarker, "Form id list as is {} with account id {} and with db {}", formIdList, accountId, dbTarget) - formIdList.foreach { - formId => - { - //LeadgenForm(219664825595022) - val form = LeadgenForm.fetchById(formId, fbContext) - //Need to know how to use the lamba and keep my life simple - //val leadList = ad.getLeads.requestAllFields().execute(); - //.setParam(\"filtering\", \"[{\\"field\\":\\"time_created\\",\\"operator\\":\\"GREATER_THAN\\",\\"value\\":1546549613}]\") - val leadList = form.getLeads.requestAllFields().execute(); - if (!leadList.isEmpty()) { - - val leadListIter = leadList.withAutoPaginationIterator(true).iterator() - logger.info(fbMarker, "Iterating through campaign {} for account {}", formId, accountId) - - val leadCounter: AtomicInteger = new AtomicInteger; - while (leadListIter.hasNext()) { - - val lead = leadListIter.next - val createdAt = lead.getFieldCreatedTime - - incomingLeadCount.incrementAndGet() - val leadSourceMeta = "ad_id=" + lead.getFieldAdId + ",
ad_name=" + lead.getFieldAdName + "
, adset_id=" + lead.getFieldAdsetId + - "
, adset_name=" + lead.getFieldAdsetName + "
, campaign_id=" + lead.getFieldCampaignId + "
,form_id=" + - lead.getFieldFormId + "
,id=" + lead.getFieldId + "
, dailybudget=" + 0 - //ad.getFieldAdset.getFieldDailyBudget - will try later - - val userGenData = lead.getFieldFieldData - - val intentMeta = new StringBuilder - val myLead: Lead = new Lead - if (!userGenData.isEmpty) { - val usergeniter = userGenData.listIterator - - while (usergeniter.hasNext()) { - val userData = usergeniter.next() - val name = userData.getFieldName.trim - val value = userData.getFieldValues.toArray().mkString(",") - if (name.equals("email")) { - myLead.setEmail(value) - } else if (name.equals("full_name")) { - val leadName = { - if (nameCleanup.equalsIgnoreCase("true")) - cleanTextContent(value) - else - value - } - - val existingVal = myLead.getFullName - if (existingVal != null) - myLead.setFullName(existingVal + "/" + value) - else - myLead.setFullName(leadName) - } else if (name.toLowerCase().contains("name")) { - val leadName = { - if (nameCleanup.equalsIgnoreCase("true")) - cleanTextContent(value) - else - value - } - val existingVal = myLead.getFullName - if (existingVal != null) - myLead.setFullName(existingVal + "/" + value) - else - myLead.setFullName(leadName) - } else if (name.equals("city")) { - myLead.setCity(value) - } else if (name.equals("company_name")) { - myLead.setCompany(value) - } else if (name.equals("phone_number")) { - val prunedValue = { - if (value.length > 10) - value.substring(value.length - 10, value.length) - else - value - } - myLead.setMobile(prunedValue) - } else if (name.equals("job_title")) { - myLead.setProfession(value) - } else { - intentMeta.append(name).append("=").append(value).append("\n") - } - usergeniter.remove - } - } - stmt.setString(EMAIL, myLead.getEmail) - stmt.setString(NAME, myLead.getFullName) - stmt.setString(TARGETED_CITY, myLead.getCity) - stmt.setString(LOCALITY, myLead.getCity) - stmt.setString(COMPANY, myLead.getCompany) - stmt.setString(MOBILE, myLead.getMobile) - stmt.setString(ALT_MOBILE, myLead.getMobile) - stmt.setString(PROFESSION, myLead.getProfession) - stmt.setString(INTENT_METADATA, intentMeta.toString) - stmt.setString(LEADSOURCE_METADATA, leadSourceMeta) - stmt.setString(LEADSOURCE_CAMPAIGN, lead.getFieldCampaignName) - stmt.setInt(BUDGET, 0) - stmt.setInt(COA_APROX, 0) - stmt.setString(LEADSOURCE_CHANNEL, "FB") - stmt.setString(LEADGEN_DATE, createdAt) - val processid = context.getValue("process-id") - stmt.setInt(BATCH_ID, Integer.parseInt(processid)) - try { - logger.info(fbMarker, "Adding lead with name {} , phone {}, email {}, location {}", myLead.fullName, myLead.mobile, myLead.email, myLead.city) - stmt.executeUpdate - tgtConn.commit - insertedLeadCount.incrementAndGet() - } catch { - - case ex: SQLException => { - logger.error("Error inserting name {} , phone {}, email {}, location {} with campaign {} and conter {}", myLead.fullName, myLead.mobile, myLead.email, myLead.city, formId, leadCounter.incrementAndGet.toString, ex) - detailMap.put("exception", ExceptionUtil.completeStackTraceex(ex)) - } - case ex: Throwable => { - logger.error("Error inserting name {} , phone {}, email {}, location {} with campaign {} and conter {}", myLead.fullName, myLead.mobile, myLead.email, myLead.city, formId, leadCounter.incrementAndGet.toString, ex) - detailMap.put("exception", ExceptionUtil.completeStackTraceex(ex)) - } - } - detailMap.put(formId, leadCounter.intValue().toString) - } //leadList.iterator().hasNext() - } //!leadList.isEmpty() - - } //form closure - } //form iteration - - try {} - finally { - stmt.close - tgtConn.close - detailMap.put("accountId", accountId) - detailMap.put("formIdList", formIdList.toString()) - detailMap.put("fieldsToSelect", fieldsToSelect) - detailMap.put("fieldArray", fieldArray.toString()) - detailMap.put("dbTarget", dbTarget) - detailMap.put("nameCleanup", nameCleanup) - detailMap.put("incomingLeadCount", incomingLeadCount.intValue.toString) - detailMap.put("insertedLeadCount", insertedLeadCount.intValue.toString) - AuditService.updateStatementAudit(statementId, insertedLeadCount.intValue(), incomingLeadCount.intValue(), fieldsToSelect, 1) - } - context - } - - def executeIf(context: in.handyman.command.Context, action: in.handyman.dsl.Action): Boolean = { - val fbAsIs: in.handyman.dsl.FBFormDownload = action.asInstanceOf[in.handyman.dsl.FBFormDownload] - val fb: in.handyman.dsl.FBFormDownload = CommandProxy.createProxy(fbAsIs, classOf[in.handyman.dsl.FBFormDownload], context) - val expression: in.handyman.dsl.Expression = fb.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - //https://howtodoinjava.com/regex/java-clean-ascii-text-non-printable-chars/ - def cleanTextContent(text: String): String = - { - var output = text; - // strips off all non-ASCII characters - output = output.replaceAll("[^\\x00-\\x7F]", ""); - // erases all the ASCII control characters - output = output.replaceAll("[\\p{Cntrl}&&[^\r\n\t]]", ""); - // removes non-printable characters from Unicode - output = output.replaceAll("\\p{C}", ""); - return output.trim(); - } - - //email full_name phone_number city company_name job_title - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FBLeadCreateAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FBLeadCreateAction.scala deleted file mode 100644 index 4690dd7b..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FBLeadCreateAction.scala +++ /dev/null @@ -1,282 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.CommandProxy -import com.facebook.ads.sdk.APIContext -import com.facebook.ads.sdk.AdAccount -import com.facebook.ads.sdk.Campaign -import in.handyman.util.ResourceAccess -import in.handyman.util.ParameterisationEngine -import java.util.concurrent.atomic.AtomicInteger -import java.sql.SQLException -import java.util.regex.Pattern -import com.facebook.ads.sdk.Ad -import java.util.HashMap -import java.time.LocalDateTime -import java.time.ZoneOffset -import in.handyman.config.ConfigurationService -import in.handyman.util.ExceptionUtil -import org.slf4j.MarkerFactory -import in.handyman.audit.AuditService -import com.facebook.ads.sdk.APIConfig - -/** - * //https://developers.facebook.com/docs/marketing-api/guides/lead-ads/retrieving/v2.9 - * //https://developers.facebook.com/docs/marketing-api/guides/lead-ads/retrieving/v2.9 - * //1.https://developers.facebook.com/apps - * // -- App display name - in.junome.fubar.app (https://developers.facebook.com/apps/318205931969703/settings/) - * // -- Under marketing api/tools - * // -----ads_management, ads_read, manage_notifications, manage_pages, read_insights, rsvp_event - * // App secret - 632b2b7e5a1d1a86348aa3ec73606cfd - * // Client token - 4097cb4c0fff4c502dff24f31c36f0e6 - * // Access token - EAAEhaBeKXKcBAE991IXtywQPyCSOSOtOKo7n1UhLZCZCQQPg2Ps5dTZB9gPMGte41u0q0yzjLfEqqkXTaxKNHZA7CMTLq8cRRupt8l1Kmg2EzhcR9ZCXBuOsZB9JpzmLGX1ZBubDyjRwM6q4UlqzXmYv3qbazgBVeJHe13SGV7bWkcVIPtqVx4r - * // Account id - 1385910988364458 - * public static final String ACCESS_TOKEN = "EAAEhaBeKXKcBAE991IXtywQPyCSOSOtOKo7n1UhLZCZCQQPg2Ps5dTZB9gPMGte41u0q0yzjLfEqqkXTaxKNHZA7CMTLq8cRRupt8l1Kmg2EzhcR9ZCXBuOsZB9JpzmLGX1ZBubDyjRwM6q4UlqzXmYv3qbazgBVeJHe13SGV7bWkcVIPtqVx4r"; - * public static final Long ACCOUNT_ID = 1385910988364458L; - * public static final String APP_SECRET = "632b2b7e5a1d1a86348aa3ec73606cfd"; - */ -class FBLeadCreateAction extends in.handyman.command.Action with LazyLogging { - - val NAME = 1 - val EMAIL = 2 - val MOBILE = 3 - val ALT_MOBILE = 4 - val LOCALITY = 5 - val TARGETED_CITY = 6 - val LEADSOURCE_CAMPAIGN = 7; - val LEADSOURCE_CHANNEL = 8; - val COMPANY = 9; - val LEADGEN_DATE = 10; - val COA_APROX = 11; - val PROFESSION = 12; - val BUDGET = 13; - val LEADSOURCE_METADATA = 14; - val INTENT_METADATA = 15; - val BATCH_ID = 16; - - val InsertSql = "replace into leads_soft ( name, email, mobile, alt_mobile, locality, targeted_city, leadsource_campaign, leadsource_channel, company, leadgen_date, coa_aprox, profession, budget, leadsource_metadata, intent_metadata, batch_id, updated_date) values (?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?,?,now());" - val detailMap = new java.util.HashMap[String, String] - val fbMarkerText = "FB-LEAD-INGESTION"; - val fbMarker = MarkerFactory.getMarker(fbMarkerText); - //https://stackoverflow.com/questions/11352037/scala-utc-timestamp-in-seconds-since-january-1st-1970 - def execute(context: in.handyman.command.Context, action: in.handyman.dsl.Action, actionId:Integer): in.handyman.command.Context = { - val fbAsIs: in.handyman.dsl.FBCLead = action.asInstanceOf[in.handyman.dsl.FBCLead] - val fb: in.handyman.dsl.FBCLead = CommandProxy.createProxy(fbAsIs, classOf[in.handyman.dsl.FBCLead], context) - - val accessToken = fb.getAccessToken - val appSecret = fb.getAppSecret - val accountId = fb.getAccountId - val campaignIdList = { - if (fb.getCampaignId.contains(",")) - fb.getCampaignId.split(",") - else - Array(fb.getCampaignId) - } - val fieldsToSelect = fb.getValue - val fieldArray = fieldsToSelect.split(",") - val dbTarget = fb.getTarget - val name = fb.getName - val tgtConn = ResourceAccess.rdbmsConn(dbTarget) - val stmt = tgtConn.prepareStatement(InsertSql) - - //val fbContext = new APIContext(accessToken, appSecret).enableDebug(true); - val fbContext = new APIContext(APIConfig.DEFAULT_API_BASE, APIConfig.DEFAULT_VIDEO_API_BASE, "v6.0", accessToken, - appSecret, "455366335002918", true).enableDebug(true); - val fbAccount = new AdAccount(accountId, fbContext) - val nameCleanup = ConfigurationService.getGlobalconfig().get("cleanSpecialChar").getOrElse("false") - - - val incomingLeadCount:AtomicInteger=new AtomicInteger - val insertedLeadCount:AtomicInteger = new AtomicInteger - - logger.info(fbMarker, "Campaign id list as is {} with account id {} and with db {}" , campaignIdList, accountId, dbTarget) - val statementId = AuditService.insertStatementAudit(actionId, "fblc->"+name, context.getValue("process-name")) - campaignIdList.foreach { - campaignId => - { - val campaign = Campaign.fetchById(campaignId, fbContext) - val adList = campaign.getAds.requestNameField().execute() - - //Need to know how to use the lamba and keep my life simple - if (!adList.isEmpty()) { - val adListIter = adList.iterator() - while (adListIter.hasNext()) { - val ad = adListIter.next() - - val leadList = ad.getLeads.requestAllFields().execute(); - if (!leadList.isEmpty()) { - - val leadListIter = leadList.withAutoPaginationIterator(true).iterator() - logger.info(fbMarker, "Iterating through campaign {} for account {}", campaignId, accountId) - - val leadCounter: AtomicInteger = new AtomicInteger; - - while (leadListIter.hasNext()) { - - val lead = leadListIter.next - val createdAt = lead.getFieldCreatedTime - - - incomingLeadCount.incrementAndGet() - val leadSourceMeta = "ad_id=" + lead.getFieldAdId + ",
ad_name=" + lead.getFieldAdName + "
, adset_id=" + lead.getFieldAdsetId + - "
, adset_name=" + lead.getFieldAdsetName + "
, campaign_id=" + lead.getFieldCampaignId + "
,form_id=" + - lead.getFieldFormId + "
,id=" + lead.getFieldId + "
, dailybudget=" + 0 - //ad.getFieldAdset.getFieldDailyBudget - will try later - - val userGenData = lead.getFieldFieldData - - val intentMeta = new StringBuilder - val myLead: Lead = new Lead - if (!userGenData.isEmpty) { - val usergeniter = userGenData.listIterator - - while (usergeniter.hasNext()) - { - val userData = usergeniter.next() - val name = userData.getFieldName.trim - val value = userData.getFieldValues.toArray().mkString(",") - if (name.equals("email")) - { - myLead.setEmail(value) - } else if (name.equals("full_name")) - { - val leadName = { - if(nameCleanup.equalsIgnoreCase("true")) - cleanTextContent(value) - else - value - } - - val existingVal = myLead.getFullName - if(existingVal!=null) - myLead.setFullName(existingVal+"/"+value) - else - myLead.setFullName(leadName) - } else if (name.toLowerCase().contains("name")) - { - val leadName = { - if(nameCleanup.equalsIgnoreCase("true")) - cleanTextContent(value) - else - value - } - val existingVal = myLead.getFullName - if(existingVal!=null) - myLead.setFullName(existingVal+"/"+value) - else - myLead.setFullName(leadName) - } - else if (name.equals("city")) { - myLead.setCity(value) - } else if (name.equals("company_name")) - { - myLead.setCompany(value) - } else if (name.equals("phone_number")||name.equals("mobile_number")) { - val prunedValue = { - if (value.length > 10) - value.substring(value.length - 10, value.length) - else - value - } - myLead.setMobile(prunedValue) - } else if (name.equals("job_title")) { - myLead.setProfession(value) - } else { - intentMeta.append(name).append("=").append(value).append("\n") - } - usergeniter.remove - } - } - stmt.setString(EMAIL, myLead.getEmail) - stmt.setString(NAME, myLead.getFullName) - stmt.setString(TARGETED_CITY, myLead.getCity) - stmt.setString(LOCALITY, myLead.getCity) - stmt.setString(COMPANY, myLead.getCompany) - stmt.setString(MOBILE, myLead.getMobile) - stmt.setString(ALT_MOBILE, myLead.getMobile) - stmt.setString(PROFESSION, myLead.getProfession) - stmt.setString(INTENT_METADATA, intentMeta.toString) - stmt.setString(LEADSOURCE_METADATA, leadSourceMeta) - stmt.setString(LEADSOURCE_CAMPAIGN, lead.getFieldCampaignName) - stmt.setInt(BUDGET, 0) - stmt.setInt(COA_APROX, 0) - stmt.setString(LEADSOURCE_CHANNEL, "FB") - stmt.setString(LEADGEN_DATE, createdAt) - val processid = context.getValue("process-id") - stmt.setInt(BATCH_ID, Integer.parseInt(processid)) - try { - logger.info(fbMarker, "Adding lead with name {} , phone {}, email {}, location {}",myLead.fullName, myLead.mobile, myLead.email, myLead.city) - stmt.executeUpdate - tgtConn.commit - insertedLeadCount.incrementAndGet() - } catch { - - case ex: SQLException => { - logger.error(fbMarker, "Error inserting name {} , phone {}, email {}, location {} with campaign {} and conter {}",myLead.fullName, myLead.mobile, myLead.email, myLead.city, campaignId, leadCounter.incrementAndGet.toString, ex) - detailMap.put("exception", ExceptionUtil.completeStackTraceex(ex)) - } - case ex: Throwable => { - logger.error(fbMarker, "Error inserting name {} , phone {}, email {}, location {} with campaign {} and conter {}",myLead.fullName, myLead.mobile, myLead.email, myLead.city, campaignId, leadCounter.incrementAndGet.toString, ex) - detailMap.put("exception", ExceptionUtil.completeStackTraceex(ex)) - } - } - detailMap.put(campaignId,leadCounter.intValue().toString) - } //leadList.iterator().hasNext() - } //!leadList.isEmpty() - } //adListIter.hasNext() - } //!adList.isEmpty() - - } //campaign closure - } //campaign iteration - - try {} - finally { - stmt.close - tgtConn.close - detailMap.put("accountId", accountId) - detailMap.put("campaignIdList", campaignIdList.toString()) - detailMap.put("fieldsToSelect", fieldsToSelect) - detailMap.put("fieldArray", fieldArray.toString()) - detailMap.put("dbTarget", dbTarget) - detailMap.put("nameCleanup",nameCleanup) - detailMap.put("incomingLeadCount", incomingLeadCount.intValue.toString) - detailMap.put("insertedLeadCount", insertedLeadCount.intValue.toString) - AuditService.updateStatementAudit(statementId, insertedLeadCount.intValue(), incomingLeadCount.intValue(), fieldsToSelect, 1) - } - context - } - - def executeIf(context: in.handyman.command.Context, action: in.handyman.dsl.Action): Boolean = { - val fbAsIs: in.handyman.dsl.FBCLead = action.asInstanceOf[in.handyman.dsl.FBCLead] - val fb: in.handyman.dsl.FBCLead = CommandProxy.createProxy(fbAsIs, classOf[in.handyman.dsl.FBCLead], context) - val expression:in.handyman.dsl.Expression = fb.getCondition - try { - val output=ParameterisationEngine.doYieldtoTrue(expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if(expression!=null) - detailMap.putIfAbsent("condition", "LHS=" +expression.getLhs+", Operator="+expression.getOperator+", RHS="+expression.getRhs) - - } - } - - //https://howtodoinjava.com/regex/java-clean-ascii-text-non-printable-chars/ - def cleanTextContent(text:String):String= - { - var output=text; - // strips off all non-ASCII characters - output = output.replaceAll("[^\\x00-\\x7F]", ""); - // erases all the ASCII control characters - output = output.replaceAll("[\\p{Cntrl}&&[^\r\n\t]]", ""); - // removes non-printable characters from Unicode - output = output.replaceAll("\\p{C}", ""); - return output.trim(); - } - - //email full_name phone_number city company_name job_title - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FetchVariableAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FetchVariableAction.scala deleted file mode 100644 index 7ea58350..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FetchVariableAction.scala +++ /dev/null @@ -1,76 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.dsl.Action -import in.handyman.command.Context -import in.handyman.util.ParameterisationEngine -import in.handyman.command.CommandProxy -import in.handyman.util.ResourceAccess -import org.slf4j.MarkerFactory - -class FetchVariableAction extends in.handyman.command.Action with LazyLogging { - val detailMap = new java.util.HashMap[String, String] - val auditMarker = "ASSIGN"; - val aMarker = MarkerFactory.getMarker(auditMarker); - - def execute(context: Context, action: Action, actionId: Integer): Context = { - val fetchAsIs: in.handyman.dsl.Fetch = action.asInstanceOf[in.handyman.dsl.Fetch] - val fetch: in.handyman.dsl.Fetch = CommandProxy.createProxy(fetchAsIs, classOf[in.handyman.dsl.Fetch], context) - - val source = fetch.getSource - val name = fetch.getName - val sql = fetch.getValue.trim - val id = context.getValue("process-id") - val sqlList = sql.split(";") - logger.info(aMarker, "Fetch id#{}, name#{}, sql#{}, db=#{}", id, name, sqlList, source) - val conn = ResourceAccess.rdbmsConn(source) - val stmt = conn.createStatement - try { - sqlList.foreach(sqlItem => { - logger.info(aMarker, "Execution query sql#{} on db=#{}", sqlItem.trim(), source) - val rs = stmt.executeQuery(sqlItem.trim) - val columnCount = rs.getMetaData.getColumnCount - - while (rs.next()) { - - for (i <- 1 until columnCount + 1) { - val key = rs.getMetaData.getColumnLabel(i) - val value = rs.getString(i) - logger.info(aMarker, "Adding value {} for key {} from query sql#{} on db=#{}", value, name + "." + key, sqlItem, source) - context.addValue(name + "." + key, value) - } - } - detailMap.put("source", source) - detailMap.put("sql", sqlItem) - }) - } finally { - - stmt.close - conn.close - } - logger.info("Completed fetch id#{}, name#{}, sql#{}, db=#{}", id, name, sql, source) - - context - } - - def executeIf(context: Context, action: Action): Boolean = { - val fetchAsIs: in.handyman.dsl.Fetch = action.asInstanceOf[in.handyman.dsl.Fetch] - val fetch: in.handyman.dsl.Fetch = CommandProxy.createProxy(fetchAsIs, classOf[in.handyman.dsl.Fetch], context) - - val expression = fetch.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FinallyRuntime.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FinallyRuntime.scala deleted file mode 100644 index bc93794b..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FinallyRuntime.scala +++ /dev/null @@ -1,5 +0,0 @@ -package in.handyman.process.onethread - -class FinallyRuntime { - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FirebaseDbUpdateAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FirebaseDbUpdateAction.scala deleted file mode 100644 index 42580dd5..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FirebaseDbUpdateAction.scala +++ /dev/null @@ -1,78 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.dsl.Action -import in.handyman.command.Context -import in.handyman.util.ResourceAccess -import in.handyman.command.CommandProxy -import in.handyman.util.ParameterisationEngine -import in.handyman.util.ExceptionUtil -import java.sql.SQLException -import in.handyman.dsl.Expression -import java.util.HashMap -import org.slf4j.MarkerFactory - -class FirebaseDbUpdateAction extends in.handyman.command.Action with LazyLogging { - val detailMap = new java.util.HashMap[String, String] - val auditMarker = "FIREBASE-UPDATE"; - val aMarker = MarkerFactory.getMarker(auditMarker); - - def execute(context: Context, action: Action, actionId:Integer): Context = { - val fbDuAsIs = action.asInstanceOf[in.handyman.dsl.FirebaseDatabasePut] - val fbDu: in.handyman.dsl.FirebaseDatabasePut = CommandProxy.createProxy(fbDuAsIs, classOf[in.handyman.dsl.FirebaseDatabasePut], context) - val className = fbDu.getClassFqn - val jsonPath = fbDu.getFbjson - val groupPath = fbDu.getGroupPath - val databaseFQNUrl = fbDu.getUrl - val dataSrc = fbDu.getDbSrc - val sql = fbDu.getValue - val name = fbDu.getName - - val clazz = this.getClass.getClassLoader.loadClass(className) - - try { - //Bso here means business specific object - val fbrnBso = clazz.newInstance() - - logger.info(aMarker, "Starting the firebase database update custom code execution with param class = {}, authkey = {}, url = {}, group = {}, dbSrc = {}", className, jsonPath, databaseFQNUrl, groupPath, dataSrc) - val method = clazz.getDeclaredMethod("execute", classOf[Integer], classOf[String], classOf[String], classOf[String], classOf[String], classOf[String], classOf[Context], classOf[HashMap[String, String]]) - method.invoke(fbrnBso, actionId, jsonPath, groupPath, databaseFQNUrl, dataSrc, sql, context, detailMap).asInstanceOf[Context] - logger.info(aMarker, "Starting the firebase database update custom code execution with param class = {}, authkey = {}, url = {}, group = {}, dbSrc = {}", className, jsonPath, databaseFQNUrl, groupPath, dataSrc) - context - } finally { - detailMap.put("name", fbDu.getName) - detailMap.put("className", className) - detailMap.put("jsonPath", jsonPath) - detailMap.put("groupPath", groupPath) - detailMap.put("databaseFQNUrl", databaseFQNUrl) - detailMap.put("dataSrc", dataSrc) - detailMap.put("sql", sql) - } - } - - def executeIf(context: Context, action: Action): Boolean = { - val fbDuAsIs = action.asInstanceOf[in.handyman.dsl.FirebaseDatabasePut] - val fbdu: in.handyman.dsl.FirebaseDatabasePut = CommandProxy.createProxy(fbDuAsIs, classOf[in.handyman.dsl.FirebaseDatabasePut], context) - - val dbSrc = fbdu.getUrl() - val name = fbdu.getName - val id = context.getValue("process-id") - val expression: Expression = fbdu.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - logger.info(aMarker, "Completed evaluation to execute id#{}, name#{}, dbSrc#{}, expression#{}, output = {}", id, name, dbSrc, expression, output.toString()) - detailMap.put("name", name) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FirebaseMessagingAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FirebaseMessagingAction.scala deleted file mode 100644 index 031aff73..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/FirebaseMessagingAction.scala +++ /dev/null @@ -1,77 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.dsl.Action -import in.handyman.command.Context -import in.handyman.util.ResourceAccess -import in.handyman.command.CommandProxy -import in.handyman.util.ParameterisationEngine -import in.handyman.util.ExceptionUtil -import java.sql.SQLException -import in.handyman.dsl.Expression -import java.util.HashMap -import org.slf4j.MarkerFactory -import in.handyman.audit.AuditService - -class FirebaseMessagingAction extends in.handyman.command.Action with LazyLogging { - val detailMap = new java.util.HashMap[String, String] - val auditMarker = "FIREBASE-MESSAGING"; - val aMarker = MarkerFactory.getMarker(auditMarker); - - def execute(context: Context, action: Action, actionId:Integer): Context = { - val fbrnAsIs = action.asInstanceOf[in.handyman.dsl.FirebaseReactiveNotification] - val fbrn: in.handyman.dsl.FirebaseReactiveNotification = CommandProxy.createProxy(fbrnAsIs, classOf[in.handyman.dsl.FirebaseReactiveNotification], context) - val className = fbrn.getClassFqn - val jsonPath = fbrn.getFbjson - val groupPath = fbrn.getGroupPath - val databaseFQNUrl = fbrn.getUrl - val clazz = this.getClass.getClassLoader.loadClass(className) - val dbSrc = fbrn.getDbSrc - val name = fbrn.getName - - - - try { - //Bso here means business specific object - val fbrnBso = clazz.newInstance() - logger.info(aMarker, "Starting the messaging custom code execution with param class = {}, authkey = {}, url = {}, group = {}, dbSrc = {}", className, jsonPath, databaseFQNUrl, groupPath, dbSrc) - val method = clazz.getDeclaredMethod("execute", classOf[Integer], classOf[String], classOf[String], classOf[String], classOf[String], classOf[Context], classOf[HashMap[String, String]]) - method.invoke(fbrnBso, actionId, jsonPath, groupPath, databaseFQNUrl, dbSrc, context, detailMap).asInstanceOf[Context] - logger.info(aMarker, "Completed the messaging custom code execution with param class = {}, authkey = {}, url = {}, group = {}, dbSrc = {}", className, jsonPath, databaseFQNUrl, groupPath, dbSrc) - context - } finally { - detailMap.put("name", fbrn.getName) - detailMap.put("className", className) - detailMap.put("jsonPath", jsonPath) - detailMap.put("groupPath", groupPath) - detailMap.put("databaseFQNUrl", databaseFQNUrl) - detailMap.put("dataSrc", dbSrc) - } - } - - def executeIf(context: Context, action: Action): Boolean = { - val fbrnAsIs = action.asInstanceOf[in.handyman.dsl.FirebaseReactiveNotification] - val fbrn: in.handyman.dsl.FirebaseReactiveNotification = CommandProxy.createProxy(fbrnAsIs, classOf[in.handyman.dsl.FirebaseReactiveNotification], context) - - val dbSrc = fbrn.getUrl() - val name = fbrn.getName - val id = context.getValue("process-id") - val expression: Expression = fbrn.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - logger.info(aMarker, "Completed evaluation to execute id#{}, name#{}, dbSrc#{}, expression#{}", id, name, dbSrc, expression) - detailMap.put("name", name) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/ForkProcessAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/ForkProcessAction.scala deleted file mode 100644 index f6f92c1e..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/ForkProcessAction.scala +++ /dev/null @@ -1,164 +0,0 @@ -package in.handyman.process.onethread - -import java.util.Map.Entry -import java.util.concurrent.CountDownLatch -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors -import java.util.concurrent.atomic.AtomicInteger - -import org.slf4j.MarkerFactory - -import com.typesafe.scalalogging.LazyLogging - -import in.handyman.command.CommandProxy -import in.handyman.command.Context -import in.handyman.command.TryContext -import in.handyman.server.ProcessAST -import in.handyman.util.ExceptionUtil -import in.handyman.util.ParameterisationEngine -import in.handyman.util.ResourceAccess - - -class ForkProcessAction extends in.handyman.command.Action with LazyLogging { - - val detailMap: java.util.Map[String, String] = new java.util.HashMap[String, String] - val executor: ExecutorService = Executors.newCachedThreadPool(); - val auditMarker = "FORKPROCESS"; - val aMarker = MarkerFactory.getMarker(auditMarker); - - def execute(context: Context, action: in.handyman.dsl.Action, actionId: Integer): Context = { - val callProcessAsIs: in.handyman.dsl.Forkprocess = action.asInstanceOf[in.handyman.dsl.Forkprocess] - val callProcess: in.handyman.dsl.Forkprocess = CommandProxy.createProxy(callProcessAsIs, classOf[in.handyman.dsl.Forkprocess], context) - - val name = callProcess.getName - val fileRelativePath: String = callProcess.getSource - val processName: String = callProcess.getTarget - val dbSrc = callProcess.getDatasource - - val forkBatchSize = callProcess.getForkBatchSize - var forkBatchSizeInt : Integer = 0 - if (forkBatchSize != null && !forkBatchSize.isEmpty) - forkBatchSizeInt = Integer.valueOf(forkBatchSize) - - val forkBatchMap: java.util.Map[Integer, java.util.Set[TryContext]] = new java.util.HashMap[Integer, java.util.Set[TryContext]] - - val sql = callProcess.getValue.replaceAll("\"", "") - val id = context.getValue("process-id") - - logger.info("Forkprocess id#{}, name#{}, forked process#{}, calledfile#{}, db=#{}", id, name, processName, fileRelativePath, dbSrc) - - val conn = ResourceAccess.rdbmsConn(dbSrc) - val stmt = conn.createStatement - val rs = stmt.executeQuery(sql) - val columnCount = rs.getMetaData.getColumnCount - val threadCount: AtomicInteger = new AtomicInteger - - var contextSet: java.util.Set[TryContext] = new java.util.HashSet[TryContext] - while (rs.next()) { - val tryContext = new TryContext(new scala.collection.immutable.HashMap[String, String](), processName) - tryContext.addValue("basepath", context.getValue("basepath")) - for (i <- 1 until columnCount + 1) { - val key = rs.getMetaData.getColumnLabel(i) - val value = rs.getString(i) - tryContext.addValue(key, value) - - val queryOutputKey : String = "query.output.rowId=" + rs.getRow + ".columnName=" + key - detailMap.put(queryOutputKey, value) - } - contextSet.add(tryContext) - threadCount.incrementAndGet - - if(forkBatchSize != null && forkBatchSizeInt > 0){ - if (threadCount.intValue() % forkBatchSizeInt == 0) { - val batchNo : Int = threadCount.intValue() / forkBatchSizeInt - forkBatchMap.put(batchNo, contextSet) - - contextSet = new java.util.HashSet[TryContext] - } - } - } - - if (!contextSet.isEmpty() && !forkBatchMap.isEmpty()) { - val batchNo : Int = (threadCount.intValue() / forkBatchSizeInt) + 1 - forkBatchMap.put(batchNo, contextSet) - }else{ - forkBatchMap.put(1, contextSet) - } - - try {} finally { - try { - rs.close - stmt.close - conn.close - } catch { - case ex: Throwable => { - handleError(ex) - detailMap.put("exception", ExceptionUtil.completeStackTraceex(ex)) - } - } - } - - var batchSize : Integer = 0; - var batchNo : Integer = 0; - val entrySet : java.util.Set[Entry[Integer, java.util.Set[TryContext]]] = forkBatchMap.entrySet(); - entrySet.forEach(entry => { - batchNo = entry.getKey - batchSize = Integer.valueOf(entry.getValue.size()) - logger.info("Started Executing Forkprocess for batch-id#{} with batch-size#{}", batchNo, batchSize) - try{ - val countDownLatch: CountDownLatch = new CountDownLatch(batchSize); - val tryContexSet = entry.getValue; - tryContexSet.forEach(tryContext=>{ - val runtimeContext = ProcessAST.loadProcessAST(processName, fileRelativePath, tryContext) - val processWorker = new ForkProcessCallable(runtimeContext, countDownLatch); - this.executor.submit(processWorker) - }) - - try { - countDownLatch.await(); - } catch { - case ex: InterruptedException => { - //ex.printStackTrace() - throw ex - } - } - - logger.info("Completed Executing Forkprocess for batch-id#{} with batch-size#{}", batchNo, batchSize) - - }catch { - case ex: Throwable => { - logger.error(aMarker, "Caught Exception#{} While Executing Forkprocess for batch-Id#{} with Batch-Size#{}", ex, batchNo, batchSize) - val excepMsg : String = "Exception on Batch-Id " + batchNo + " With Batch-Size : " + batchSize - detailMap.put(excepMsg, ExceptionUtil.completeStackTraceex(ex)) - } - } - }) - - context - } - - def executeIf(context: in.handyman.command.Context, action: in.handyman.dsl.Action): Boolean = { - val callProcessAsIs: in.handyman.dsl.Forkprocess = action.asInstanceOf[in.handyman.dsl.Forkprocess] - val callProcess: in.handyman.dsl.Forkprocess = CommandProxy.createProxy(callProcessAsIs, classOf[in.handyman.dsl.Forkprocess], context) - - val expression = callProcess.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - - def handleError(ex: Throwable) = { - logger.info("Error section of call process", ex) - throw ex - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/ForkProcessCallable.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/ForkProcessCallable.scala deleted file mode 100644 index 6c384d81..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/ForkProcessCallable.scala +++ /dev/null @@ -1,41 +0,0 @@ -package in.handyman.process.onethread - -import java.util.concurrent.Callable -import com.typesafe.scalalogging.LazyLogging -import in.handyman.server.ProcessAST -import in.handyman.server.RuntimeContext -import in.handyman.server.ProcessExecutor -import in.handyman.util.ExceptionUtil -import java.util.concurrent.CountDownLatch - -class ForkProcessCallable(runtimeContext:RuntimeContext, countDownLatch: CountDownLatch) extends Callable[Void] with LazyLogging { - - def call(): Void = { - try { - //TODO - change to create(config.get("runmode")) - val runtime = ProcessExecutor.execute("in.handyman.process.onethread", runtimeContext) - - } catch { - case ex: Throwable => { - handleError(ex) - throw ex - } - - } finally { - val onFinally = runtimeContext.process.getFinally - handleFinally() - countDownLatch.countDown - } - ??? - } - - def handleError(ex: Throwable) = { - logger.info("Error section of call process", ex) - throw ex - } - - def handleFinally() = { - logger.info("Finally section of call process") - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/GoogleCalendarAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/GoogleCalendarAction.scala deleted file mode 100644 index 58526318..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/GoogleCalendarAction.scala +++ /dev/null @@ -1,190 +0,0 @@ -package in.handyman.process.onethread - -import java.io.File -import java.util.Arrays -import java.util.Collections -import java.util.Date -import java.util.TimeZone - -import in.handyman.command.Context -import in.handyman.dsl.Action -import in.handyman.dsl.GooglecalPUT -import in.handyman.util.ResourceAccess - -import com.google.api.client.googleapis.auth.oauth2.GoogleCredential -import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport -import com.google.api.client.json.JsonFactory -import com.google.api.client.json.jackson2.JacksonFactory -import com.google.api.client.util.DateTime -import com.google.api.client.util.store.FileDataStoreFactory -import com.google.api.services.calendar.model.Event -import com.google.api.services.calendar.model.EventDateTime -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.CommandProxy -import in.handyman.util.ParameterisationEngine -import java.util.concurrent.atomic.AtomicInteger -import in.handyman.config.ConfigurationService -import org.slf4j.MarkerFactory -import in.handyman.audit.AuditService - -class GoogleCalendarAction extends in.handyman.command.Action with LazyLogging { - val DEFAULT_TIMEZONE = "Asia/Kolkata" - val detailMap = new java.util.HashMap[String, String] - - val DATA_STORE_DIR: java.io.File = - new java.io.File(System.getProperty("user.home"), ".store/calendar_sample"); - val JSON_FACTORY: JsonFactory = JacksonFactory.getDefaultInstance(); - val CALENDAR_SCOPE = "https://www.googleapis.com/auth/calendar" - val gcalCreateMarker = "GCALENDART-CREATE"; - val gMarker = MarkerFactory.getMarker(gcalCreateMarker); - - def execute(context: Context, action: Action, actionId: Integer): Context = { - val calAsIs: GooglecalPUT = action.asInstanceOf[GooglecalPUT] - val cal: in.handyman.dsl.GooglecalPUT = CommandProxy.createProxy(calAsIs, classOf[in.handyman.dsl.GooglecalPUT], context) - - val dbSrc = cal.getDbSrc - val accountId = cal.getAccount - val mail = cal.getImpersonatedUser - val relativePath = cal.getPtwelveFile - val key = cal.getPrivateKey - val project = cal.getProject - val name = cal.getName - - val authStore = this.getClass.getClassLoader.getResource(relativePath).getPath - val sql = cal.getValue - val conn = ResourceAccess.rdbmsConn(dbSrc) - val stmt = conn.createStatement - val rs = stmt.executeQuery(sql) - val httpTransport = GoogleNetHttpTransport.newTrustedTransport(); - - val credential: GoogleCredential = new GoogleCredential.Builder().setTransport(httpTransport). - setJsonFactory(JSON_FACTORY). - setServiceAccountId(accountId). - setServiceAccountPrivateKeyId(key). - setServiceAccountPrivateKeyFromP12File(new File(authStore)). - setServiceAccountProjectId(project). - setServiceAccountScopes(Collections.singleton(CALENDAR_SCOPE)). - setServiceAccountUser(mail).build() - - val client = new com.google.api.services.calendar.Calendar.Builder( - httpTransport, JSON_FACTORY, credential).setApplicationName(project).build(); - - val incomingCalenderEvent: AtomicInteger = new AtomicInteger - val addedCalenderEvent: AtomicInteger = new AtomicInteger - val timeZoneLabel = ConfigurationService.getGlobalconfig().get("timeZone").getOrElse(DEFAULT_TIMEZONE) - val timeZone = TimeZone.getTimeZone(timeZoneLabel); - - val eventMap: java.util.Map[Date, CalendarEvent] = new java.util.HashMap[Date, CalendarEvent]() - val statementId = AuditService.insertStatementAudit(actionId, "contact->" + name, context.getValue("process-name")) - try { - while (rs.next()) { - - val calEvent = new CalendarEvent - - calEvent.startDate = rs.getDate("event_start") - - if (eventMap.containsKey(calEvent.startDate)) { - val title = rs.getString("event_title") - val description = rs.getString("description") - val location = rs.getString("event_location") - val info = title + " " + location - eventMap.get(calEvent.startDate).contactDetails.add(info) - } else { - calEvent.calId = rs.getString("event_calendar_id") - calEvent.interval = rs.getInt("event_interval") - calEvent.endDate = rs.getString("event_end") - calEvent.eventAlertTime = rs.getString("event_alert_time") - val title = rs.getString("event_title") - val description = rs.getString("description") - val location = rs.getString("event_location") - val info = title + " " + location - calEvent.contactDetails.add(info) - eventMap.put(calEvent.startDate, calEvent) - } - } - if (!eventMap.isEmpty) { - val iter = eventMap.keySet().iterator() - while (iter.hasNext) { - incomingCalenderEvent.incrementAndGet() - val startDateAsKey = iter.next - val eventPojo: CalendarEvent = eventMap.get(startDateAsKey) - val calId = eventPojo.calId - val interval = eventPojo.interval - val endDate = eventPojo.endDate - val time = eventPojo.eventAlertTime - val title = "Schedule to call Juno contacts" - val contactList = eventPojo.contactDetails - val location = "NA" - - val event = new Event(); - val startDateG = new Date(startDateAsKey.getTime + 36000) - - val start = new DateTime(startDateG, timeZone) - val startEventDateTime = new EventDateTime() - startEventDateTime.setTimeZone(timeZoneLabel).setDateTime(start) - event.setStart(startEventDateTime) - - val eventEnd = new Date(startDateAsKey.getTime + 60 * 60 * 1000) - val dailyEnd = new DateTime(eventEnd, TimeZone.getTimeZone(timeZoneLabel)); - event.setEnd(new EventDateTime().setDateTime(dailyEnd).setTimeZone(timeZoneLabel)) - - event.setLocation(location) - event.setSummary(title) - val descBuilder: StringBuilder = new StringBuilder() - val description = { - //contactList.foreach(contact => descBuilder.append(contact).append("
")) - val iter = contactList.iterator() - while (iter.hasNext()) { - descBuilder.append(iter.next()).append("
") - } - descBuilder.toString() - } - event.setDescription(description) - - val endDateForRecur = endDate.replaceAll("-", "") + "T170000Z" - event.setRecurrence(Arrays.asList("RRULE:FREQ=DAILY;UNTIL=" + endDateForRecur)); - - val result = client.events().insert(calId, event).execute(); - addedCalenderEvent.incrementAndGet - logger.info(gMarker, "Adding event {} with for location {} title {} with counter {} with description {} with final date{}", startDateAsKey.toString(), location, title, addedCalenderEvent.get.toString(), description, endDateForRecur) - - } - } - } finally { - detailMap.put("accountId", accountId) - detailMap.put("dbSrc", dbSrc) - detailMap.put("mail", mail) - detailMap.put("relativePath", relativePath) - detailMap.put("key", key) - detailMap.put("project", project) - detailMap.put("authStore", authStore) - detailMap.put("sql", sql) - detailMap.put("incomingContactCounter", incomingCalenderEvent.intValue.toString) - detailMap.put("addedContactCounter", addedCalenderEvent.intValue.toString) - AuditService.updateStatementAudit(statementId, addedCalenderEvent.intValue(), incomingCalenderEvent.intValue(), sql, 1) - stmt.close - conn.close - } - context - } - - def executeIf(context: Context, action: Action): Boolean = { - val calAsIs: GooglecalPUT = action.asInstanceOf[GooglecalPUT] - val cal: in.handyman.dsl.GooglecalPUT = CommandProxy.createProxy(calAsIs, classOf[in.handyman.dsl.GooglecalPUT], context) - - val expression = cal.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/GoogleContactCreateAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/GoogleContactCreateAction.scala deleted file mode 100644 index ec004904..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/GoogleContactCreateAction.scala +++ /dev/null @@ -1,155 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.CommandProxy -import in.handyman.dsl.GooglecontactPUT -import in.handyman.util.ParameterisationEngine -import in.handyman.util.ResourceAccess -import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport -import com.google.api.client.googleapis.auth.oauth2.GoogleCredential -import com.google.api.client.json.JsonFactory -import com.google.api.client.json.jackson2.JacksonFactory -import java.io.File -import java.util.Collections -import com.google.api.services.people.v1.PeopleServiceScopes -import com.google.api.services.people.v1.model.Person -import com.google.api.services.people.v1.model.PhoneNumber -import com.google.api.services.people.v1.model.EmailAddress -import com.google.api.services.people.v1.model.Name -import com.google.api.services.people.v1.PeopleService -import java.util.concurrent.atomic.AtomicInteger -import com.google.api.services.people.v1.model.Source -import com.google.api.services.people.v1.model.Address -import com.google.api.services.people.v1.model.ProfileMetadata -import com.google.api.services.people.v1.model.Url -import org.slf4j.MarkerFactory -import in.handyman.util.ExceptionUtil -import in.handyman.audit.AuditService - -class GContactCreateAction extends in.handyman.command.Action with LazyLogging { - val detailMap = new java.util.HashMap[String, String] - val JSON_FACTORY: JsonFactory = JacksonFactory.getDefaultInstance(); - def execute(context: in.handyman.command.Context, action: in.handyman.dsl.Action, actionId: Integer): in.handyman.command.Context = { - val contactPut: GooglecontactPUT = action.asInstanceOf[GooglecontactPUT] - val contact: in.handyman.dsl.GooglecontactPUT = CommandProxy.createProxy(contactPut, classOf[in.handyman.dsl.GooglecontactPUT], context) - val dbSrc = contact.getDbSrc - val accountId = contact.getAccount - val mail = contact.getImpersonatedUser - val relativePath = contact.getPtwelveFile - val key = contact.getPrivateKey - val project = contact.getProject - val authStore = this.getClass.getClassLoader.getResource(relativePath).getPath - val sql = contact.getValue - val conn = ResourceAccess.rdbmsConn(dbSrc) - val stmt = conn.createStatement - val rs = stmt.executeQuery(sql) - val httpTransport = GoogleNetHttpTransport.newTrustedTransport(); - val gcontactCreateMarker = "GCONTACT-CREATE"; - val gMarker = MarkerFactory.getMarker(gcontactCreateMarker); - val name = contact.getName - - val credential: GoogleCredential = new GoogleCredential.Builder().setTransport(httpTransport). - setJsonFactory(JSON_FACTORY). - setServiceAccountId(accountId). - setServiceAccountPrivateKeyId(key). - setServiceAccountPrivateKeyFromP12File(new File(authStore)). - setServiceAccountProjectId(project). - setServiceAccountScopes(Collections.singleton(PeopleServiceScopes.CONTACTS)). - setServiceAccountUser(mail).build() - - val peopleService: PeopleService = - new PeopleService.Builder(httpTransport, JSON_FACTORY, credential).setApplicationName(project).build(); - - val incomingContactCounter: AtomicInteger = new AtomicInteger - val addedContactCounter: AtomicInteger = new AtomicInteger - val statementId = AuditService.insertStatementAudit(actionId, "contact->" + name, context.getValue("process-name")) - try { - - while (rs.next()) { - - incomingContactCounter.incrementAndGet - - val name = rs.getString("name") - val email = rs.getString("email") - val location = rs.getString("location") - val mobile = rs.getString("mobile") - val orderUrl = rs.getString("source") - try { - val person = new Person - val phoneList = new java.util.ArrayList[PhoneNumber] - val phone = new PhoneNumber - phone.setValue(mobile) - phoneList.add(phone) - - val nameList = new java.util.ArrayList[Name] - val personName = new Name - personName.setDisplayName(name) - personName.setFamilyName(location) - personName.setGivenName(name) - - nameList.add(personName) - - val emailList = new java.util.ArrayList[EmailAddress] - val personEmail = new EmailAddress - personEmail.setDisplayName(email) - personEmail.setValue(email) - emailList.add(personEmail) - - val sourceList = new java.util.ArrayList[Url] - val source = new Url - source.setValue(orderUrl) - sourceList.add(source) - - person.setPhoneNumbers(phoneList) - person.setNames(nameList) - person.setEmailAddresses(emailList) - person.setUrls(sourceList) - - val contact = peopleService.people.createContact(person) - val output = contact.execute() - addedContactCounter.incrementAndGet - logger.info(gMarker, "Adding lead {} with for number {} from {} with counter {}", name, mobile, location, addedContactCounter.get.toString) - } catch { - case ex: Throwable => { - logger.error("Error Adding lead {} with for number {} from {} with counter {}", name, mobile, location, addedContactCounter.get.toString, ex) - detailMap.put("exception", ExceptionUtil.completeStackTraceex(ex)) - } - } - } - } finally { - detailMap.put("accountId", accountId) - detailMap.put("dbSrc", dbSrc) - detailMap.put("mail", mail) - detailMap.put("relativePath", relativePath) - detailMap.put("key", key) - detailMap.put("project", project) - detailMap.put("authStore", authStore) - detailMap.put("sql", sql) - detailMap.put("incomingContactCounter", incomingContactCounter.intValue.toString) - detailMap.put("addedContactCounter", addedContactCounter.intValue.toString) - AuditService.updateStatementAudit(statementId, addedContactCounter.intValue(), incomingContactCounter.intValue(), sql, 1) - stmt.close - conn.close - } - context - } - - def executeIf(context: in.handyman.command.Context, action: in.handyman.dsl.Action): Boolean = { - val contactPut: GooglecontactPUT = action.asInstanceOf[GooglecontactPUT] - val contact: in.handyman.dsl.GooglecontactPUT = CommandProxy.createProxy(contactPut, classOf[in.handyman.dsl.GooglecontactPUT], context) - val expression = contact.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/JavaAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/JavaAction.scala deleted file mode 100644 index c437d1c7..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/JavaAction.scala +++ /dev/null @@ -1,82 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.dsl.Action -import in.handyman.command.Context -import in.handyman.util.ResourceAccess -import in.handyman.command.CommandProxy -import in.handyman.util.ParameterisationEngine -import in.handyman.util.ExceptionUtil -import java.sql.SQLException -import in.handyman.dsl.Expression -import java.util.HashMap -import org.slf4j.MarkerFactory - -class JavaAction extends in.handyman.command.Action with LazyLogging { - val detailMap = new java.util.HashMap[String, String] - val auditMarker = "JAVA"; - val aMarker = MarkerFactory.getMarker(auditMarker); - - def execute(context: Context, action: Action, actionId: Integer): Context = { - val javaExecAsIs = action.asInstanceOf[in.handyman.dsl.ExecJava] - val javaExec: in.handyman.dsl.ExecJava = CommandProxy.createProxy(javaExecAsIs, classOf[in.handyman.dsl.ExecJava], context) - val className = javaExec.getClassFqn - val dataSrc = javaExec.getDbSrc - val name = javaExec.getName - - val clazz = this.getClass.getClassLoader.loadClass(className) - val sql = javaExec.getValue - val conn = ResourceAccess.rdbmsConn(dataSrc) - val stmt = conn.createStatement - val rs = stmt.executeQuery(sql) - val totalColumns = rs.getMetaData.getColumnCount - rs.next()//Assume that there will be definitely one row - for( counter <- 1 to totalColumns){ - val paramKey = rs.getMetaData.getColumnLabel(counter); - val paramValue = rs.getString(paramKey) - detailMap.put(paramKey, paramValue) - } - - - try { - //Bso here means business specific object - val javaBso = clazz.newInstance() - - logger.info(aMarker, "Starting custom code execution with param class = {}, dbSrc = {}", className, dataSrc) - val method = clazz.getDeclaredMethod("execute", classOf[Integer], classOf[String], classOf[Context], classOf[HashMap[String, String]]) - method.invoke(javaBso, actionId, dataSrc, context, detailMap).asInstanceOf[Context] - - context - } finally { - detailMap.put("name", javaExec.getName) - detailMap.put("className", className) - detailMap.put("dataSrc", dataSrc) - } - } - - def executeIf(context: Context, action: Action): Boolean = { - val fbDuAsIs = action.asInstanceOf[in.handyman.dsl.ExecJava] - val fbDu: in.handyman.dsl.ExecJava = CommandProxy.createProxy(fbDuAsIs, classOf[in.handyman.dsl.ExecJava], context) - - val name = fbDu.getName - val dataSrc = fbDu.getDbSrc - val id = context.getValue("process-id") - val expression: Expression = fbDu.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - logger.info(aMarker, "Completed evaluation to execute id#{}, name#{}, dbSrc#{}, expression#{}, output = {}", id, name, dataSrc, expression, output.toString()) - detailMap.put("name", name) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/Lead.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/Lead.scala deleted file mode 100644 index 98ca722e..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/Lead.scala +++ /dev/null @@ -1,31 +0,0 @@ -package in.handyman.process.onethread - -import java.io.Serializable - -import scala.beans.{BeanProperty, BooleanBeanProperty} - -//remove if not needed -import scala.collection.JavaConversions._ - -@SerialVersionUID(6636717210313067637L) -class Lead extends Serializable { - - @BeanProperty - var email: String = "NA" - - @BeanProperty - var fullName: String = "NA" - - @BeanProperty - var profession: String = "NA" - - @BeanProperty - var company: String = "NA" - - @BeanProperty - var city: String = "NA" - - @BeanProperty - var mobile: String = "NA" - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/MailAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/MailAction.scala deleted file mode 100644 index 64bda146..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/MailAction.scala +++ /dev/null @@ -1,122 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.Context -import in.handyman.command.CommandProxy -import in.handyman.util.ParameterisationEngine -import in.handyman.util.ResourceAccess -import org.apache.http.impl.client.HttpClientBuilder -import org.apache.http.client.methods.HttpGet -import java.net.URLEncoder -import org.apache.commons.text.StrSubstitutor -import com.sendgrid.SendGrid -import com.sendgrid.Request -import com.sendgrid.Method -import com.sendgrid.Email -import com.sendgrid.Content -import com.sendgrid.Mail -import org.slf4j.MarkerFactory -import java.util.concurrent.atomic.AtomicInteger -import in.handyman.audit.AuditService - -class MailAction extends in.handyman.command.Action with LazyLogging { - - val detailMap = new java.util.HashMap[String, String] - val auditMarker = "SENDMAIL"; - val aMarker = MarkerFactory.getMarker(auditMarker); - - def execute(context: Context, action: in.handyman.dsl.Action, actionId:Integer): Context = { - val mailAsIs: in.handyman.dsl.SendMail = action.asInstanceOf[in.handyman.dsl.SendMail] - val mail: in.handyman.dsl.SendMail = CommandProxy.createProxy(mailAsIs, classOf[in.handyman.dsl.SendMail], context) - - val name = mail.getName - val asUser = mail.getImpersonatedUser - val securityKey = mail.getPrivateKey - val dbSrc = mail.getDbSrc - val sql = mail.getValue - - val conn = ResourceAccess.rdbmsConn(dbSrc) - val stmt = conn.createStatement - val rs = stmt.executeQuery(sql.trim()) - val sg = new SendGrid(securityKey); - - val incomingMailReq: AtomicInteger = new AtomicInteger - val sentMailCount: AtomicInteger = new AtomicInteger - - val statementId = AuditService.insertStatementAudit(actionId, "mail->" + name, context.getValue("process-name")) - logger.error(aMarker, "Attempting to send email using SendMail API, configurations are, name={}, asUser={}, securitykey={}, dbsrc={}", name, asUser, securityKey, dbSrc) - try { - while (rs.next()) { - incomingMailReq.incrementAndGet() - val targetSubject = rs.getString("subject") - val targetEmail = rs.getString("email") - val body = rs.getString("body") - if (body != null) { - val request = new Request() - val from = new Email(asUser); - val to = new Email(targetEmail); - val content = new Content("text/html", body); - val mail = new Mail(from, targetSubject, to, content); - logger.info(aMarker, "Sending email with contents subject={}, emailid={}, from={}", targetSubject, targetEmail, body) - try { - request.setMethod(Method.POST); - request.setEndpoint("mail/send"); - request.setBody(mail.build()); - val response = sg.api(request); - sentMailCount.incrementAndGet() - detailMap.put(targetEmail, response.getBody) - } catch { - case ex: Throwable => { - logger.error(aMarker, "Error sending email using SendMail API, configurations are, name={}, asUser={}, securitykey={}, dbsrc={}", name, asUser, securityKey, dbSrc) - detailMap.put(name+".exception", ex.getMessage) - } - } - - }else { - logger.info(aMarker, "Skipping email with contents subject={}, emailid={}, from={}", targetSubject, targetEmail, body) - } - } - } finally { - - detailMap.put("dbSrc", dbSrc) - detailMap.put("impersonateduser", asUser) - detailMap.put("keypath", securityKey) - detailMap.put("sql", sql) - detailMap.put("name", mail.getName) - detailMap.put("asUser", asUser) - detailMap.put("securityKey", securityKey) - detailMap.put("incomingMailReq", incomingMailReq.intValue().toString()) - detailMap.put("sentMailCount", sentMailCount.intValue().toString()) - AuditService.updateStatementAudit(statementId, incomingMailReq.intValue(), sentMailCount.intValue(), sql, 1) - stmt.close - conn.close - } - logger.error(aMarker, "Completed sending email using SendMail API, configurations are, name={}, asUser={}, securitykey={}, dbsrc={}", name, asUser, securityKey, dbSrc) - context - } - - def executeIf(context: in.handyman.command.Context, action: in.handyman.dsl.Action): Boolean = { - val mailAsIs: in.handyman.dsl.SendMail = action.asInstanceOf[in.handyman.dsl.SendMail] - val mail: in.handyman.dsl.SendMail = CommandProxy.createProxy(mailAsIs, classOf[in.handyman.dsl.SendMail], context) - val expression = mail.getCondition - val dbSrc = mail.getDbSrc - val name = mail.getName - val id = context.getValue("process-id") - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - logger.info(aMarker, "Completed evaluation to execute id#{}, name#{}, dbSrc#{}, expression#{}", id, name, dbSrc, expression) - detailMap.put("name", name) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - this.detailMap - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/ObjectModelContainer.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/ObjectModelContainer.scala deleted file mode 100644 index e05e124c..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/ObjectModelContainer.scala +++ /dev/null @@ -1,12 +0,0 @@ -package in.handyman.process.onethread - -import scala.collection.mutable.HashSet -import scala.collection.mutable.LinkedHashSet - -case class ColumnInARow(columnType: Int, columnTypeName: String, columnName: String, columnLabel: String, scale: Integer, - value: Object, columnFunction:String, isLastColumn:Boolean) -case class Row(rowId:Int, columnSet:LinkedHashSet[ColumnInARow]) - -object ObjectModelContainer { - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/SmsLeadsAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/SmsLeadsAction.scala deleted file mode 100644 index f77ff3aa..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/SmsLeadsAction.scala +++ /dev/null @@ -1,140 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.Context -import in.handyman.command.CommandProxy -import in.handyman.util.ParameterisationEngine -import in.handyman.util.ResourceAccess -import org.apache.http.impl.client.HttpClientBuilder -import org.apache.http.client.methods.HttpGet -import java.net.URLEncoder -import org.apache.commons.text.StrSubstitutor -import org.slf4j.MarkerFactory -import in.handyman.audit.AuditService -import java.util.concurrent.atomic.AtomicInteger -import org.apache.http.impl.nio.client.HttpAsyncClients - -//https://hc.apache.org/httpcomponents-asyncclient-ga/quickstart.html -class SmsLeadsAction extends in.handyman.command.Action with LazyLogging { - - val detailMap = new java.util.HashMap[String, String] - val auditMarker = "SENDSMS"; - val aMarker = MarkerFactory.getMarker(auditMarker); - val client = HttpAsyncClients.createDefault() - client.start(); - - def execute(context: Context, action: in.handyman.dsl.Action, actionId: Integer): Context = { - val smsAsIs: in.handyman.dsl.SmsLeadSms = action.asInstanceOf[in.handyman.dsl.SmsLeadSms] - val sms: in.handyman.dsl.SmsLeadSms = CommandProxy.createProxy(smsAsIs, classOf[in.handyman.dsl.SmsLeadSms], context) - - - val name = sms.getName - val sender = sms.getSender - val url = sms.getUrl - val dbSrc = sms.getDbSrc - val user = sms.getAccount - val password = sms.getPrivateKey - val dryRun = sms.getDryrunNumber - val sql = sms.getValue - val conn = ResourceAccess.rdbmsConn(dbSrc) - val stmt = conn.createStatement - val rs = stmt.executeQuery(sql.trim()) - var urlString: String = "" - - logger.info(aMarker, "Executing query to retreive the essentials {}", sql.trim()) - - val incomingSMSReq: AtomicInteger = new AtomicInteger - val sentSMSCount: AtomicInteger = new AtomicInteger - - val statementId = AuditService.insertStatementAudit(actionId, "sms->" + name, context.getValue("process-name")) - - try { - while (rs.next()) { - incomingSMSReq.incrementAndGet() - val targetMobileNumber = rs.getString("target_mobile_number") - val targetAltNumber = rs.getString("target_alternate_number") - val body = rs.getString("body") - - val mobile = { - if (dryRun != null && !dryRun.isEmpty()) - dryRun.trim - else { - if (targetMobileNumber.equals(targetAltNumber)) { - removePlusNineOne(targetMobileNumber) - } else if (targetAltNumber.trim().isEmpty()){ - removePlusNineOne(targetMobileNumber) - } - else { - removePlusNineOne(targetMobileNumber) + "," + removePlusNineOne(targetAltNumber) - } - } - } - - val output = body - if (output != null) { - val encodedMessage = URLEncoder.encode(output) - urlString = url + "username=" + user + "&password=" + password + "&sender=" + sender + "&numbers=" + mobile + "&message=" + encodedMessage - val request = new HttpGet(urlString); - request.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"); - request.addHeader("Upgrade-Insecure-Requests", "1") - request.addHeader("Host", "smsleads.in") - request.addHeader("Accept-Language", "en-IN,en-GB;q=0.9,en-US;q=0.8,en;q=0.7") - request.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8") - val response = client.execute(request, null) - - sentSMSCount.incrementAndGet() - logger.info(aMarker, "Sent sms using url {} with responsecode {}", urlString, response) - - } else { - logger.info(aMarker, "Skipping sending sms using url {} with username {} as there is not text", url, user) - } - } - } finally { - detailMap.put("name", name) - detailMap.put("dbSrc", dbSrc) - detailMap.put("user", user) - detailMap.put("password", password) - detailMap.put("target", dryRun) - detailMap.put("url", urlString) - detailMap.put("sender", sender) - detailMap.put("sql", sql) - detailMap.put("incomingSMSReq", incomingSMSReq.intValue().toString()) - detailMap.put("sentSMSCount", sentSMSCount.intValue().toString()) - AuditService.updateStatementAudit(statementId, incomingSMSReq.intValue(), sentSMSCount.intValue(), sql, 1) - stmt.close - conn.close - } - context - } - - def removePlusNineOne(number: String): String = { - if (number.startsWith("+91")) - number.substring(3, number.length()) - else - number - } - - def executeIf(context: in.handyman.command.Context, action: in.handyman.dsl.Action): Boolean = { - val smsAsIs: in.handyman.dsl.SmsLeadSms = action.asInstanceOf[in.handyman.dsl.SmsLeadSms] - val sms: in.handyman.dsl.SmsLeadSms = CommandProxy.createProxy(smsAsIs, classOf[in.handyman.dsl.SmsLeadSms], context) - val expression = sms.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - val name = sms.getName - val id = context.getValue("process-id") - logger.info(aMarker, "Completed evaluation to execute id#{}, name#{}, dbSrc#{}, expression#{}", id, name, expression) - detailMap.put("name", name) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - this.detailMap - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/SpawnProcessAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/SpawnProcessAction.scala deleted file mode 100644 index 8541c21a..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/SpawnProcessAction.scala +++ /dev/null @@ -1,55 +0,0 @@ -package in.handyman.process.onethread - -import in.handyman.command.Context -import in.handyman.dsl.Action -import com.typesafe.scalalogging.LazyLogging -import in.handyman.command.CommandProxy -import in.handyman.util.ParameterisationEngine -import in.handyman.server.ProcessAST -import in.handyman.server.ProcessExecutor -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class SpawnProcessAction extends in.handyman.command.Action with LazyLogging { - val detailMap = new java.util.HashMap[String, String] - val executor: ExecutorService = Executors.newCachedThreadPool(); - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - - def executeIf(context: Context, action: Action): Boolean = { - val spawnAsIs = action.asInstanceOf[in.handyman.dsl.Spawnprocess] - val spawn: in.handyman.dsl.Spawnprocess = CommandProxy.createProxy(spawnAsIs, classOf[in.handyman.dsl.Spawnprocess], context) - - val id = context.getValue("process-id") - val expression = spawn.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - logger.info(s"Completed evaluation to execute id:$id, expression:$expression for spawn action") - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - } - - } - - def execute(context: Context, action: Action, actionId: Integer): Context = { - val spawnAsIs = action.asInstanceOf[in.handyman.dsl.Spawnprocess] - val spawn: in.handyman.dsl.Spawnprocess = CommandProxy.createProxy(spawnAsIs, classOf[in.handyman.dsl.Spawnprocess], context) - val name = spawn.getName - val fileRelativePath: String = spawn.getSource - val instanceName: String = spawn.getTarget - val id = context.getValue("process-id") - - logger.info(s"Spawnprocess id:$id, name:$name, calledprocess:$instanceName, calledfile:$fileRelativePath") - val runtimeContext = ProcessAST.loadProcessAST(instanceName, "{}") - val runMode = "in.handyman.process.onethread" - val processWorker = new SpawnProcessCallable(runtimeContext); - this.executor.submit(processWorker) - context - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/SpawnProcessCallable.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/SpawnProcessCallable.scala deleted file mode 100644 index 7b72fa2f..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/SpawnProcessCallable.scala +++ /dev/null @@ -1,31 +0,0 @@ -package in.handyman.process.onethread - -import in.handyman.server.RuntimeContext -import java.util.concurrent.Callable -import com.typesafe.scalalogging.LazyLogging -import in.handyman.server.ProcessExecutor - -class SpawnProcessCallable(runtimeContext: RuntimeContext) extends Callable[Void] with LazyLogging { - - def call(): Void = { - try { - //TODO - change to create(config.get("runmode")) - val runtime = ProcessExecutor.execute("in.handyman.process.onethread", runtimeContext) - - } catch { - case ex: Throwable => { - handleError(ex) - throw ex - } - - } finally { - - } - ??? - } - - def handleError(ex: Throwable) = { - logger.info("Error section of call process", ex) - throw ex - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/TransformAction.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/TransformAction.scala deleted file mode 100644 index ba892d06..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/TransformAction.scala +++ /dev/null @@ -1,112 +0,0 @@ -package in.handyman.process.onethread - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.dsl.Action -import in.handyman.command.Context -import in.handyman.util.ResourceAccess -import in.handyman.command.CommandProxy -import in.handyman.util.ParameterisationEngine -import in.handyman.util.ExceptionUtil -import java.sql.SQLException -import org.slf4j.MarkerFactory -import java.sql.SQLSyntaxErrorException -import in.handyman.audit.AuditService - -class TransformAction extends in.handyman.command.Action with LazyLogging { - val detailMap = new java.util.HashMap[String, String] - val auditMarker = "TRANSFORM"; - val aMarker = MarkerFactory.getMarker(auditMarker); - - def execute(context: Context, action: Action, actionId:Integer): Context = { - val transformAsIs = action.asInstanceOf[in.handyman.dsl.Transform] - val transform: in.handyman.dsl.Transform = CommandProxy.createProxy(transformAsIs, classOf[in.handyman.dsl.Transform], context) - - val dbSrc = transform.getOn - val name = transform.getName - val id = context.getValue("process-id") - val sqlList = transform.getValue - - logger.info(s"Transform action input variables id:$id,name: $name, source-database:$dbSrc ") - logger.info(s"Sql input post parameter ingestion \n $sqlList") - detailMap.put("dbSrc", dbSrc) - - val conn = ResourceAccess.rdbmsConn(dbSrc) - conn.setAutoCommit(false) - - val stmt = conn.createStatement - val iter = sqlList.iterator - try { - while (iter.hasNext) { - val sqlWithoutQuotes = iter.next.replaceAll("\"", "") - val sqlList = sqlWithoutQuotes.split(";") - sqlList.foreach { sql => - if (!sql.trim.isEmpty()) { - val sqlToExecute = sql.trim - logger.info(s"Transform with id:$id, executing script $sqlToExecute") - val statementId = AuditService.insertStatementAudit(actionId, "transform->"+name, context.getValue("process-name")) - try { - val rowCount = stmt.executeUpdate(sql.trim) - val warnings = ExceptionUtil.completeSQLWarning(stmt.getWarnings) - detailMap.put(sql.trim + ".count", rowCount.toString) - detailMap.put(sql.trim + ".stmtcount", stmt.getUpdateCount.toString) - detailMap.put(sql.trim + ".warnings", warnings) - AuditService.updateStatementAudit(statementId, rowCount, 0, sql, 1) - logger.info(aMarker, "Transform id# {}, executed script {} rows returned {}", statementId.toString(), sql.trim(), rowCount.toString()) - stmt.clearWarnings(); - } catch { - - case ex:SQLSyntaxErrorException=>{ - logger.error(aMarker, "Stopping execution, General Error executing sql for {} with for campaign {}", sql, ex) - detailMap.put(sql.trim + ".exception", ExceptionUtil.completeStackTraceex(ex)) - throw ex - } - - case ex: SQLException => { - logger.error(aMarker, "Continuing to execute, even though SQL Error executing sql for {} ", sql, ex) - detailMap.put(sql.trim + ".exception", ExceptionUtil.completeStackTraceex(ex)) - - } - - case ex: Throwable => { - logger.error(aMarker, "Stopping execution, General Error iexecuting sql for {} with for campaign {}", sql, ex) - detailMap.put(sql.trim + ".exception", ExceptionUtil.completeStackTraceex(ex)) - throw ex - } - } - } - } - } - conn.commit - logger.info(aMarker, "Completed Transform id#{}, name#{}, dbSrc#{}, sqlList#{}", id, name, dbSrc, sqlList) - } finally { - stmt.close - conn.close - } - - context - } - - def executeIf(context: Context, action: Action): Boolean = { - val transformAsIs = action.asInstanceOf[in.handyman.dsl.Transform] - val transform: in.handyman.dsl.Transform = CommandProxy.createProxy(transformAsIs, classOf[in.handyman.dsl.Transform], context) - val dbSrc = transform.getOn - val name = transform.getName - val id = context.getValue("process-id") - val expression = transform.getCondition - try { - val output = ParameterisationEngine.doYieldtoTrue(expression) - logger.info(aMarker, "Completed evaluation to execute id#{}, name#{}, dbSrc#{}, expression#{}", id, name, dbSrc, expression) - detailMap.putIfAbsent("condition-output", output.toString()) - output - } finally { - if (expression != null) - detailMap.putIfAbsent("condition", "LHS=" + expression.getLhs + ", Operator=" + expression.getOperator + ", RHS=" + expression.getRhs) - - } - } - - def generateAudit(): java.util.Map[String, String] = { - detailMap - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/TryRuntime.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/TryRuntime.scala deleted file mode 100644 index 1a708599..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/TryRuntime.scala +++ /dev/null @@ -1,12 +0,0 @@ -package in.handyman.process.onethread - -import in.handyman.command.Context -import in.handyman.dsl.Try - -class TryRuntime(val tryBlock:Try, val context:Context) { - - def execute():Context = { - - context - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/UniThreadProcessRuntime.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/UniThreadProcessRuntime.scala deleted file mode 100644 index 97553d23..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/process/onethread/UniThreadProcessRuntime.scala +++ /dev/null @@ -1,105 +0,0 @@ -package in.handyman.process.onethread - -import in.handyman.dsl._ -import in.handyman.server.ProcessRuntime -import com.typesafe.scalalogging.LazyLogging -import com.fasterxml.jackson.databind.ObjectMapper -import in.handyman.command._ -import in.handyman.server.ProcessResponse -import in.handyman.AbortException -import com.fasterxml.jackson.databind.SerializationFeature -import org.slf4j.MarkerFactory - -class UniThreadProcessRuntime(name: String, id: Int) extends ProcessRuntime with LazyLogging { - val jsonSerializer = new ObjectMapper - val auditMarkerText = "Actioncaller"; - val auditMarker = MarkerFactory.getMarker(auditMarkerText); - - @throws(classOf[Exception]) - def execute(process: in.handyman.dsl.Process, context: Context): ProcessResponse = { - var errorContext: ErrorContext = new ErrorContext(context.asInstanceOf[TryContext]) - var processResponse = new ProcessResponse - try { - logger.info(auditMarker, "Executing try block for process {}", process.getName) - val detailMap = executeChain(process.getTry.getAction, context) - processResponse.detailMap = detailMap - processResponse.context = context - processResponse - } catch { - case ex: in.handyman.AbortException => { - //logError(ex, process.getName) - logger.info(auditMarker, "Abort exception caught in try block for process {}", process.getName) - processResponse.exception = ex - ex.processResponse=processResponse - processResponse - throw ex - } - case ex: Throwable => { - logError(ex, process.getName) - val onError = process.getCatch - logger.info(auditMarker, "General exception caught in try block for process {}, attempting to execute catch block", process.getName) - errorContext = executeCatch(onError, context.asInstanceOf[TryContext]) - errorContext.exception = ex - processResponse.context = errorContext - processResponse.exception = ex - processResponse - throw ex - } - - } finally { - val onFinally = process.getFinally - logger.info(auditMarker, "Executing finally block for process {}, attempting to execute catch block", process.getName) - executeFinally(onFinally, errorContext) - processResponse.context = errorContext - processResponse - } - //Send context + commandDetailAsMap + exception stack trace back to client - } - - @throws(classOf[Exception]) - def executeChain(actionList: org.eclipse.emf.common.util.EList[in.handyman.dsl.Action], context: Context): java.util.HashMap[String, java.util.Map[String, String]] = - { - - val iterator = actionList.iterator - val detailMap: java.util.HashMap[String, java.util.Map[String, String]] = new java.util.HashMap[String, java.util.Map[String, String]] - while (iterator.hasNext) { - val action = iterator.next - val actionRuntime = CommandFactory.create(action.eClass.getName) - if (actionRuntime.executeIf(context, action)) { - val actionId = in.handyman.audit.AuditService.insertCommandAudit(id, action.eClass().getName + "->" + action.getName, name) - context.addValue("process-name", name) - actionRuntime.execute(context, action, actionId) - //TODO still need to fix the status part - val commandDetailAsMap = actionRuntime.generateAudit() - if(commandDetailAsMap!=null && !commandDetailAsMap.isEmpty()){ - val commandDetail = jsonSerializer.writeValueAsString(commandDetailAsMap) - detailMap.put(action.getName + "." + actionId.toString(), commandDetailAsMap) - in.handyman.audit.AuditService.updateCommandAudit(actionId, 1, commandDetail) - } - } - } - detailMap - } - - def logError(ex: Throwable, process:String) = { - logger.error(auditMarker, "Error executing process {}", process, ex) - } - - def executeCatch(onError: Catch, context: TryContext): ErrorContext = { - // logger.warn(marker, message) - val errorContext: ErrorContext = new ErrorContext(context) - executeChain(onError.getAction, errorContext) - errorContext - } - - def executeFinally(onFinally: Finally, errorContext: ErrorContext): FinallyContext = { - val finallyContext: FinallyContext = new FinallyContext(errorContext) - executeChain(onFinally.getAction, finallyContext) - val processId: String = errorContext.getValue("process-id") - val contextLog: String = errorContext.getJson() - val status: Int = if (contextLog.isEmpty) 1 else -1 - in.handyman.audit.AuditService.updateProcessAudit(Integer.parseInt(processId), status, contextLog, name) - finallyContext - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/server/HandymanServer.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/server/HandymanServer.scala deleted file mode 100644 index 2982c659..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/server/HandymanServer.scala +++ /dev/null @@ -1,60 +0,0 @@ -package in.handyman.server - -import com.typesafe.scalalogging.LazyLogging -import org.restlet.Application -import org.restlet.Component -import org.restlet.data.Protocol -import org.restlet.routing.Router -import org.knowm.sundial.SundialJobScheduler - -object HandymanServer extends Application with LazyLogging{ - - def main(args:Array[String]){ - - logger.info("Starting the restlet server to take in commands,") - val component = new Component() - val port:Int = { - if(args.isEmpty) - 2909 - else - args.apply(0).toInt - } - component.getServers().add(Protocol.HTTP, port) - // Attach the sample application. - component.getDefaultHost().attach(this) - // Start the component. - component.start() - logger.info("Successfully started the restlet server to take in commands, at port 2909") - logger.info("Bootstrapping the background scheduler") - val schedulerThreadPoolCount:Int = { - if(args.isEmpty) - 5 - else - args.apply(1).toInt - } - val packageName:String = { - if(args.isEmpty ) - "in.juno.jam" - else - args.apply(2) - } - val startDelay:Int = { - if(args.isEmpty) - 10 - else - args.apply(3).toInt - } - SundialJobScheduler.createScheduler(schedulerThreadPoolCount, packageName); - logger.info("Starting the background scheduler") - SundialJobScheduler.getScheduler().startDelayed(startDelay); - - - } - override def createInboundRoot: Router = { - val router = new Router(getContext()) - router.attach("/process/{instance}/{alias}/start",classOf[StartProcess]) - router.attach("/",classOf[ListProcess]) - router.attach("/process/{id}/stop", classOf[StopProcess]) - router -} -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/server/ListProcess.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/server/ListProcess.scala deleted file mode 100644 index c9f36e4d..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/server/ListProcess.scala +++ /dev/null @@ -1,11 +0,0 @@ -package in.handyman.server - -import org.restlet.resource.ServerResource -import org.restlet.resource.Get - -class ListProcess extends ServerResource{ - @Get("application/json") - def represent():String={ - "" - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/server/PathResolver.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/server/PathResolver.scala deleted file mode 100644 index 6cc7b015..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/server/PathResolver.scala +++ /dev/null @@ -1,21 +0,0 @@ -package in.handyman.server - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.HandymanException - -object PathResolver extends LazyLogging { - - def resolvePath(processName: String, fileRelativePath: String, basePath: String): String = { - - val fullPath = new StringBuilder().append(basePath). - append("/").append(fileRelativePath).toString() - - logger.info(s"Trying to find the process file :$fullPath") - val finalPathUrl = this.getClass.getClassLoader.getResource(fullPath) - if (finalPathUrl != null) { - val finalPath = finalPathUrl.getPath - finalPath - } else - throw new HandymanException("Process definition for " + fileRelativePath + " is absent") - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessAST.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessAST.scala deleted file mode 100644 index f350bfae..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessAST.scala +++ /dev/null @@ -1,59 +0,0 @@ -package in.handyman.server - - -import com.typesafe.scalalogging.LazyLogging -import in.handyman.DslStandaloneSetup -import in.handyman.parser.antlr.DslParser -import org.slf4j.MarkerFactory - - - -case class RuntimeContext(process: in.handyman.dsl.Process, configMap: Map[String, String], path: String, instanceName: String) - -object ProcessAST extends LazyLogging { - - val sparrowHero = new DslStandaloneSetup - val guiceInjector = sparrowHero.createInjectorAndDoEMFRegistration - val parser = guiceInjector.getInstance(classOf[DslParser]); - val marker = "PROCESS-LOADER"; - val pMarker = MarkerFactory.getMarker(marker) - - def loadProcessAST(instanceName: String, json:String) = { - logger.info(pMarker,"Retreiving configuration for process instance {}" + instanceName) - val config: Map[String, String] = in.handyman.config.ConfigurationService.getAllConfig(instanceName) - val inputConfig = config+("myjson"->json) - val filePathConfig = config.get("filepath") - - - if(filePathConfig.isEmpty) - throw new Exception("File path configuration for process "+instanceName+" is missing, check spw_process_config or spw_instance_config") - - val fileRelativePath = filePathConfig.get; - - val basePath = config.get("basepath").get; - //logger.info("basepath=" + basePath) - logger.info(pMarker, "filepath {} for process instance {} with base path as {}" , fileRelativePath, instanceName, basePath) - val path = PathResolver.resolvePath(instanceName, fileRelativePath, basePath) - - - val result = parser.parse(new java.io.FileReader(path)) - val eRoot = result.getRootASTElement() - val process: in.handyman.dsl.Process = eRoot.asInstanceOf[in.handyman.dsl.Process] - RuntimeContext(process, inputConfig, path, instanceName) - } - - - - - def loadProcessAST(instanceName: String, fileRelativePath: String, context: in.handyman.command.Context) = { - logger.info("filepath=" + fileRelativePath) - val basePath = context.getValue("basepath"); - logger.info("basepath=" + basePath) - val path = PathResolver.resolvePath(instanceName, fileRelativePath, basePath) - val result = parser.parse(new java.io.FileReader(path)); - val eRoot = result.getRootASTElement(); - val process: in.handyman.dsl.Process = eRoot.asInstanceOf[in.handyman.dsl.Process] - RuntimeContext(process, context.getMeAsIs, path, instanceName) - } - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessExecutor.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessExecutor.scala deleted file mode 100644 index 686db0d2..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessExecutor.scala +++ /dev/null @@ -1,33 +0,0 @@ -package in.handyman.server - - -import in.handyman.command.TryContext -import java.net.InetAddress - - - - -object ProcessExecutor { - - @throws(classOf[Exception]) - def execute(mode:String, runtimeContext:RuntimeContext):ProcessResponse = { - - if(mode.equals("in.handyman.process.onethread")) - { - val tryContext = new TryContext(runtimeContext.configMap, runtimeContext.instanceName) - val machine = InetAddress.getLocalHost.getHostAddress - val instanceId = in.handyman.audit.AuditService.insertInstanceAudit(runtimeContext.instanceName, mode, machine, runtimeContext.path) - - if(tryContext.getValue("root-ref").isEmpty()) tryContext.addValue("root-ref", instanceId.toString()) - - tryContext.addValue("process-id", instanceId.toString) - val runtime = new in.handyman.process.onethread.UniThreadProcessRuntime(runtimeContext.instanceName, instanceId) - val processResponse = runtime.execute(runtimeContext.process, tryContext) - processResponse - } - else - { - throw new Exception("Not yet implemented") - } - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessResponse.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessResponse.scala deleted file mode 100644 index fdd1fdd7..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessResponse.scala +++ /dev/null @@ -1,17 +0,0 @@ -package in.handyman.server - -import in.handyman.command.Context -import scala.beans.{BeanProperty, BooleanBeanProperty} - -class ProcessResponse extends Serializable{ - - @BeanProperty - var context:Context=null - - @BeanProperty - var detailMap:java.util.HashMap[String,java.util.Map[String, String]]=null - - @BeanProperty - var exception:Throwable=null - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessRuntime.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessRuntime.scala deleted file mode 100644 index e8868edf..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/server/ProcessRuntime.scala +++ /dev/null @@ -1,8 +0,0 @@ -package in.handyman.server - -import in.handyman.command.Context - -trait ProcessRuntime { - - def execute(process:in.handyman.dsl.Process, context:Context):ProcessResponse -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/server/StartProcess.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/server/StartProcess.scala deleted file mode 100644 index 609a2307..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/server/StartProcess.scala +++ /dev/null @@ -1,96 +0,0 @@ -package in.handyman.server - -import com.fasterxml.jackson.databind.ObjectMapper -import com.typesafe.scalalogging.LazyLogging -import org.restlet.representation.Representation -import org.restlet.resource.{Post, ServerResource} - -class StartProcess extends ServerResource with LazyLogging { - val runMode = "in.handyman.process.onethread" - val jsonSerializer = new ObjectMapper - - // - @Post("json") - def doPost(entity: Representation): String = { - val inboundValue = getRequest.getAttributes.get("instance"); - val alias = getRequest().getAttributes().get("alias"); - val instanceName: String = inboundValue.asInstanceOf[String] + "#" + alias.asInstanceOf[String] - start(instanceName) - } - - /*@Get("application/json") - def represent(): String = { - val inboundValue = getRequest.getAttributes.get("instance"); - - val alias = getRequest().getAttributes().get("alias"); - val instanceName: String = inboundValue.asInstanceOf[String] + "#" + alias.asInstanceOf[String] - logger.info("Starting the process=" + instanceName) - val runtimeContext = ProcessAST.loadProcessAST(instanceName, "{}") - - try { - - ProcessExecutor.execute(runMode, runtimeContext) - - } catch { - case ex: Throwable => { - handleError(ex) - } - } finally { - - handleFinally() - } - "{\"start_status\": \"SUCCESS\"}" - } - - @Post("application/json") - def acceptAndReturnJson(json: Representation): String = { - val inboundValue = getRequest.getAttributes.get("instance"); - - val alias = getRequest().getAttributes().get("alias"); - val instanceName: String = inboundValue.asInstanceOf[String] + "#" + alias.asInstanceOf[String] - logger.info("Starting the process=" + instanceName + ", with incoming json=" + json) - val jsonObject = json.getJsonObject.toString - val runtimeContext = ProcessAST.loadProcessAST(instanceName, jsonObject) - - try { - - ProcessExecutor.execute(runMode, runtimeContext) - - } catch { - case ex: Throwable => { - handleError(ex) - } - } finally { - - handleFinally() - } - - "{\"start_status\": \"SUCCESS\"}" - }*/ - - def start(instanceName: String): String = { - logger.info("Starting the process=" + instanceName) - val runtimeContext = ProcessAST.loadProcessAST(instanceName, "{}") - - try { - - val processResponse = ProcessExecutor.execute(runMode, runtimeContext) - jsonSerializer.writeValueAsString(processResponse) - } catch { - case ex: Throwable => { - handleError(ex) - jsonSerializer.writeValueAsString(ex) - } - } finally { - handleFinally() - } - } - - def handleError(ex: Throwable) = { - ex.printStackTrace() - } - - def handleFinally() = { - println("Processing the request completed") - } -} diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/server/StopProcess.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/server/StopProcess.scala deleted file mode 100644 index 256e821e..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/server/StopProcess.scala +++ /dev/null @@ -1,14 +0,0 @@ -package in.handyman.server - -import org.restlet.resource.ServerResource -import org.restlet.resource.Get - -class StopProcess extends ServerResource{ - @Get("application/json") - def represent():String={ - "" - } - - - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/util/ExceptionUtil.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/util/ExceptionUtil.scala deleted file mode 100644 index 9e7116c5..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/util/ExceptionUtil.scala +++ /dev/null @@ -1,22 +0,0 @@ -package in.handyman.util - -import java.io.StringWriter -import java.io.PrintWriter - -object ExceptionUtil { - - def completeStackTraceex(executionException:Throwable):String={ - val errors = new StringWriter(); - val print = new PrintWriter(errors) - if(executionException!=null) executionException.printStackTrace(print) else print.print("NONE"); - errors.toString(); - - } - - def completeSQLWarning(sqlWarnings:java.sql.SQLWarning):String={ - val errors = new StringWriter(); - val print = new PrintWriter(errors); - if(sqlWarnings!=null) sqlWarnings.printStackTrace(print) else print.print("NONE"); - errors.toString(); - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/util/ParameterisationEngine.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/util/ParameterisationEngine.scala deleted file mode 100644 index 5c812d92..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/util/ParameterisationEngine.scala +++ /dev/null @@ -1,53 +0,0 @@ -package in.handyman.util - -import in.handyman.command.Context -import org.apache.commons.text.StrSubstitutor - -object ParameterisationEngine { - - def resolve(inputString: String, context: Context): String = { - val configMap = context.getMe - val paramEngine = new StrSubstitutor(configMap) - if (inputString != null) { - val output = paramEngine.replace(inputString) - //replace("0_", configMap.getOrDefault("process-id", "0_") + "_") - output - } else - "" - } - - def doYieldtoTrue(expression: in.handyman.dsl.Expression) = { - expression match { - case null => { - true - } - case _ => { - val lhs = expression.getLhs - val rhs = expression.getRhs - val oper = expression.getOperator - oper match { - case "<" => { - val lhsInt = Integer.parseInt(lhs) - val rhsInt = Integer.parseInt(rhs) - - lhsInt < rhsInt - } - case ">" => { - val lhsInt = Integer.parseInt(lhs) - val rhsInt = Integer.parseInt(rhs) - - lhsInt > rhsInt - - } - case "==" => { - lhs.equals(rhs) - } - case "contains" => { - lhs.contains(rhs) - } - } - } - } - - } -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/util/ResourceAccess.scala b/handyman.legacy/handyman/src/main/scala/in/handyman/util/ResourceAccess.scala deleted file mode 100644 index ecc361ef..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/util/ResourceAccess.scala +++ /dev/null @@ -1,39 +0,0 @@ -package in.handyman.util - -import java.sql.Connection -import com.typesafe.scalalogging.LazyLogging -import in.handyman.config.ConfigurationService -import in.handyman.config.Resource -import java.sql.DriverManager -import com.typesafe.scalalogging.LazyLogging -import com.typesafe.scalalogging.Logger - -/** - * Migration script added on Feb 19 2021 - - * - */ - -object ResourceAccess extends LazyLogging{ - - - def rdbmsConn(name: String): Connection = - { - - val connResource: Resource = ConfigurationService.getResourceConfig(name) - if(connResource.driverClassName!=null) - { - Class.forName(connResource.driverClassName) - } - logger.info(s"Initiating connection for $name with url: $connResource") - val conn = DriverManager. - getConnection(connResource.url, - connResource.userName, connResource.password) - conn.setAutoCommit(false) - conn - } - - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/scala/in/handyman/util/driversanddatabases.prop b/handyman.legacy/handyman/src/main/scala/in/handyman/util/driversanddatabases.prop deleted file mode 100644 index dcd4d5a5..00000000 --- a/handyman.legacy/handyman/src/main/scala/in/handyman/util/driversanddatabases.prop +++ /dev/null @@ -1,3 +0,0 @@ -sql4es=in.pazmysaz.essql.jdbc.ESDriver -es=org.elasticsearch.xpack.sql.jdbc.EsDriver -mysql=com.mysql.jdbc.Driver \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/.DslRuntimeModule.java._trace b/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/.DslRuntimeModule.java._trace deleted file mode 100644 index c0abc814..00000000 Binary files a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/.DslRuntimeModule.java._trace and /dev/null differ diff --git a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/.DslStandaloneSetup.java._trace b/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/.DslStandaloneSetup.java._trace deleted file mode 100644 index 87e031ed..00000000 Binary files a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/.DslStandaloneSetup.java._trace and /dev/null differ diff --git a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/DslRuntimeModule.java b/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/DslRuntimeModule.java deleted file mode 100644 index ff466829..00000000 --- a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/DslRuntimeModule.java +++ /dev/null @@ -1,11 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman; - -/** - * Use this class to register components to be used at runtime / without the Equinox extension registry. - */ -@SuppressWarnings("all") -public class DslRuntimeModule extends AbstractDslRuntimeModule { -} diff --git a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/DslStandaloneSetup.java b/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/DslStandaloneSetup.java deleted file mode 100644 index e379c966..00000000 --- a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/DslStandaloneSetup.java +++ /dev/null @@ -1,14 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman; - -/** - * Initialization support for running Xtext languages without Equinox extension registry. - */ -@SuppressWarnings("all") -public class DslStandaloneSetup extends DslStandaloneSetupGenerated { - public static void doSetup() { - new DslStandaloneSetup().createInjectorAndDoEMFRegistration(); - } -} diff --git a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/generator/.DslGenerator.java._trace b/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/generator/.DslGenerator.java._trace deleted file mode 100644 index 499cd273..00000000 Binary files a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/generator/.DslGenerator.java._trace and /dev/null differ diff --git a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/generator/DslGenerator.java b/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/generator/DslGenerator.java deleted file mode 100644 index 1c69bb31..00000000 --- a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/generator/DslGenerator.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.generator; - -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.xtext.generator.AbstractGenerator; -import org.eclipse.xtext.generator.IFileSystemAccess2; -import org.eclipse.xtext.generator.IGeneratorContext; - -/** - * Generates code from your model files on save. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation - */ -@SuppressWarnings("all") -public class DslGenerator extends AbstractGenerator { - @Override - public void doGenerate(final Resource resource, final IFileSystemAccess2 fsa, final IGeneratorContext context) { - } -} diff --git a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/scoping/.DslScopeProvider.java._trace b/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/scoping/.DslScopeProvider.java._trace deleted file mode 100644 index bf69a794..00000000 Binary files a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/scoping/.DslScopeProvider.java._trace and /dev/null differ diff --git a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/scoping/DslScopeProvider.java b/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/scoping/DslScopeProvider.java deleted file mode 100644 index 68b71996..00000000 --- a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/scoping/DslScopeProvider.java +++ /dev/null @@ -1,14 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.scoping; - -/** - * This class contains custom scoping description. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping - * on how and when to use it. - */ -@SuppressWarnings("all") -public class DslScopeProvider extends AbstractDslScopeProvider { -} diff --git a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/validation/.DslValidator.java._trace b/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/validation/.DslValidator.java._trace deleted file mode 100644 index dea7b51d..00000000 Binary files a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/validation/.DslValidator.java._trace and /dev/null differ diff --git a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/validation/DslValidator.java b/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/validation/DslValidator.java deleted file mode 100644 index 25e3e637..00000000 --- a/handyman.legacy/handyman/src/main/xtend-gen/in/handyman/validation/DslValidator.java +++ /dev/null @@ -1,13 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.validation; - -/** - * This class contains custom validation rules. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation - */ -@SuppressWarnings("all") -public class DslValidator extends AbstractDslValidator { -} diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/AbstractDslRuntimeModule.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/AbstractDslRuntimeModule.java deleted file mode 100644 index 94f39b06..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/AbstractDslRuntimeModule.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman; - -import com.google.inject.Binder; -import com.google.inject.Provider; -import com.google.inject.name.Names; -import in.handyman.generator.DslGenerator; -import in.handyman.parser.antlr.DslAntlrTokenFileProvider; -import in.handyman.parser.antlr.DslParser; -import in.handyman.parser.antlr.internal.InternalDslLexer; -import in.handyman.scoping.DslScopeProvider; -import in.handyman.serializer.DslSemanticSequencer; -import in.handyman.serializer.DslSyntacticSequencer; -import in.handyman.services.DslGrammarAccess; -import in.handyman.validation.DslConfigurableIssueCodesProvider; -import in.handyman.validation.DslValidator; -import java.util.Properties; -import org.eclipse.xtext.Constants; -import org.eclipse.xtext.IGrammarAccess; -import org.eclipse.xtext.generator.IGenerator2; -import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider; -import org.eclipse.xtext.naming.IQualifiedNameProvider; -import org.eclipse.xtext.parser.IParser; -import org.eclipse.xtext.parser.ITokenToStringConverter; -import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider; -import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter; -import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; -import org.eclipse.xtext.parser.antlr.ITokenDefProvider; -import org.eclipse.xtext.parser.antlr.Lexer; -import org.eclipse.xtext.parser.antlr.LexerBindings; -import org.eclipse.xtext.parser.antlr.LexerProvider; -import org.eclipse.xtext.resource.IContainer; -import org.eclipse.xtext.resource.IResourceDescriptions; -import org.eclipse.xtext.resource.containers.IAllContainersState; -import org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider; -import org.eclipse.xtext.resource.containers.StateBasedContainerManager; -import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider; -import org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions; -import org.eclipse.xtext.scoping.IGlobalScopeProvider; -import org.eclipse.xtext.scoping.IScopeProvider; -import org.eclipse.xtext.scoping.IgnoreCaseLinking; -import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider; -import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider; -import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider; -import org.eclipse.xtext.serializer.ISerializer; -import org.eclipse.xtext.serializer.impl.Serializer; -import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer; -import org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer; -import org.eclipse.xtext.service.DefaultRuntimeModule; -import org.eclipse.xtext.service.SingletonBinding; -import org.eclipse.xtext.validation.ConfigurableIssueCodesProvider; - -/** - * Manual modifications go to {@link DslRuntimeModule}. - */ -@SuppressWarnings("all") -public abstract class AbstractDslRuntimeModule extends DefaultRuntimeModule { - - protected Properties properties = null; - - @Override - public void configure(Binder binder) { - properties = tryBindProperties(binder, "in/handyman/Dsl.properties"); - super.configure(binder); - } - - public void configureLanguageName(Binder binder) { - binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("in.handyman.Dsl"); - } - - public void configureFileExtensions(Binder binder) { - if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null) - binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("spw"); - } - - // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2 - public ClassLoader bindClassLoaderToInstance() { - return getClass().getClassLoader(); - } - - // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2 - public Class bindIGrammarAccess() { - return DslGrammarAccess.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 - public Class bindISemanticSequencer() { - return DslSemanticSequencer.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 - public Class bindISyntacticSequencer() { - return DslSyntacticSequencer.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 - public Class bindISerializer() { - return Serializer.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 - public Class bindIParser() { - return DslParser.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 - public Class bindITokenToStringConverter() { - return AntlrTokenToStringConverter.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 - public Class bindIAntlrTokenFileProvider() { - return DslAntlrTokenFileProvider.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 - public Class bindLexer() { - return InternalDslLexer.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 - public Class bindITokenDefProvider() { - return AntlrTokenDefProvider.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 - public Provider provideInternalDslLexer() { - return LexerProvider.create(InternalDslLexer.class); - } - - // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 - public void configureRuntimeLexer(Binder binder) { - binder.bind(Lexer.class) - .annotatedWith(Names.named(LexerBindings.RUNTIME)) - .to(InternalDslLexer.class); - } - - // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2 - @SingletonBinding(eager=true) - public Class bindDslValidator() { - return DslValidator.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2 - public Class bindConfigurableIssueCodesProvider() { - return DslConfigurableIssueCodesProvider.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 - public Class bindIScopeProvider() { - return DslScopeProvider.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 - public void configureIScopeProviderDelegate(Binder binder) { - binder.bind(IScopeProvider.class).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(ImportedNamespaceAwareLocalScopeProvider.class); - } - - // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 - public Class bindIGlobalScopeProvider() { - return DefaultGlobalScopeProvider.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 - public void configureIgnoreCaseLinking(Binder binder) { - binder.bindConstant().annotatedWith(IgnoreCaseLinking.class).to(false); - } - - // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2 - public Class bindIQualifiedNameProvider() { - return DefaultDeclarativeQualifiedNameProvider.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 - public Class bindIContainer$Manager() { - return StateBasedContainerManager.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 - public Class bindIAllContainersState$Provider() { - return ResourceSetBasedAllContainersStateProvider.class; - } - - // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 - public void configureIResourceDescriptions(Binder binder) { - binder.bind(IResourceDescriptions.class).to(ResourceSetBasedResourceDescriptions.class); - } - - // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 - public void configureIResourceDescriptionsPersisted(Binder binder) { - binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(ResourceSetBasedResourceDescriptions.class); - } - - // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2 - public Class bindIGenerator2() { - return DslGenerator.class; - } - -} diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/Dsl.xtextbin b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/Dsl.xtextbin deleted file mode 100644 index bd2bd7b3..00000000 Binary files a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/Dsl.xtextbin and /dev/null differ diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/DslStandaloneSetupGenerated.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/DslStandaloneSetupGenerated.java deleted file mode 100644 index 5f933183..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/DslStandaloneSetupGenerated.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman; - -import com.google.inject.Guice; -import com.google.inject.Injector; -import in.handyman.dsl.DslPackage; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.xtext.ISetup; -import org.eclipse.xtext.common.TerminalsStandaloneSetup; -import org.eclipse.xtext.resource.IResourceFactory; -import org.eclipse.xtext.resource.IResourceServiceProvider; - -@SuppressWarnings("all") -public class DslStandaloneSetupGenerated implements ISetup { - - @Override - public Injector createInjectorAndDoEMFRegistration() { - TerminalsStandaloneSetup.doSetup(); - - Injector injector = createInjector(); - register(injector); - return injector; - } - - public Injector createInjector() { - return Guice.createInjector(new DslRuntimeModule()); - } - - public void register(Injector injector) { - if (!EPackage.Registry.INSTANCE.containsKey("http://www.handyman.in/Dsl")) { - EPackage.Registry.INSTANCE.put("http://www.handyman.in/Dsl", DslPackage.eINSTANCE); - } - IResourceFactory resourceFactory = injector.getInstance(IResourceFactory.class); - IResourceServiceProvider serviceProvider = injector.getInstance(IResourceServiceProvider.class); - - Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("spw", resourceFactory); - IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("spw", serviceProvider); - } -} diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Abort.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Abort.java deleted file mode 100644 index 65ea4077..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Abort.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Abort'. - * - * - *

- * The following features are supported: - *

- * - * - * @see in.handyman.dsl.DslPackage#getAbort() - * @model - * @generated - */ -public interface Abort extends Action -{ - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getAbort_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Abort#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // Abort diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Action.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Action.java deleted file mode 100644 index 20167bbe..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Action.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Action'. - * - * - *

- * The following features are supported: - *

- * - * - * @see in.handyman.dsl.DslPackage#getAction() - * @model - * @generated - */ -public interface Action extends EObject -{ - /** - * Returns the value of the 'Name' attribute. - * - *

- * If the meaning of the 'Name' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see in.handyman.dsl.DslPackage#getAction_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Action#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - - /** - * Returns the value of the 'Condition' containment reference. - * - *

- * If the meaning of the 'Condition' containment reference isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Condition' containment reference. - * @see #setCondition(Expression) - * @see in.handyman.dsl.DslPackage#getAction_Condition() - * @model containment="true" - * @generated - */ - Expression getCondition(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Action#getCondition Condition}' containment reference. - * - * - * @param value the new value of the 'Condition' containment reference. - * @see #getCondition() - * @generated - */ - void setCondition(Expression value); - -} // Action diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Callprocess.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Callprocess.java deleted file mode 100644 index 1bf9c5f5..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Callprocess.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Callprocess'. - * - * - *

- * The following features are supported: - *

- * - * - * @see in.handyman.dsl.DslPackage#getCallprocess() - * @model - * @generated - */ -public interface Callprocess extends Action -{ - /** - * Returns the value of the 'Target' attribute. - * - *

- * If the meaning of the 'Target' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Target' attribute. - * @see #setTarget(String) - * @see in.handyman.dsl.DslPackage#getCallprocess_Target() - * @model - * @generated - */ - String getTarget(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Callprocess#getTarget Target}' attribute. - * - * - * @param value the new value of the 'Target' attribute. - * @see #getTarget() - * @generated - */ - void setTarget(String value); - - /** - * Returns the value of the 'Source' attribute. - * - *

- * If the meaning of the 'Source' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Source' attribute. - * @see #setSource(String) - * @see in.handyman.dsl.DslPackage#getCallprocess_Source() - * @model - * @generated - */ - String getSource(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Callprocess#getSource Source}' attribute. - * - * - * @param value the new value of the 'Source' attribute. - * @see #getSource() - * @generated - */ - void setSource(String value); - - /** - * Returns the value of the 'Datasource' attribute. - * - *

- * If the meaning of the 'Datasource' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Datasource' attribute. - * @see #setDatasource(String) - * @see in.handyman.dsl.DslPackage#getCallprocess_Datasource() - * @model - * @generated - */ - String getDatasource(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Callprocess#getDatasource Datasource}' attribute. - * - * - * @param value the new value of the 'Datasource' attribute. - * @see #getDatasource() - * @generated - */ - void setDatasource(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getCallprocess_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Callprocess#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // Callprocess diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Catch.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Catch.java deleted file mode 100644 index 828b4afc..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Catch.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Catch'. - * - * - *

- * The following features are supported: - *

- * - * - * @see in.handyman.dsl.DslPackage#getCatch() - * @model - * @generated - */ -public interface Catch extends EObject -{ - /** - * Returns the value of the 'Name' attribute. - * - *

- * If the meaning of the 'Name' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see in.handyman.dsl.DslPackage#getCatch_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Catch#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - - /** - * Returns the value of the 'Action' containment reference list. - * The list contents are of type {@link in.handyman.dsl.Action}. - * - *

- * If the meaning of the 'Action' containment reference list isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Action' containment reference list. - * @see in.handyman.dsl.DslPackage#getCatch_Action() - * @model containment="true" - * @generated - */ - EList getAction(); - -} // Catch diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/ClickSendSms.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/ClickSendSms.java deleted file mode 100644 index c040fcb7..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/ClickSendSms.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Click Send Sms'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.ClickSendSms#getUserid Userid}
  • - *
  • {@link in.handyman.dsl.ClickSendSms#getSecurityKey Security Key}
  • - *
  • {@link in.handyman.dsl.ClickSendSms#getTarget Target}
  • - *
  • {@link in.handyman.dsl.ClickSendSms#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getClickSendSms() - * @model - * @generated - */ -public interface ClickSendSms extends Action -{ - /** - * Returns the value of the 'Userid' attribute. - * - *

- * If the meaning of the 'Userid' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Userid' attribute. - * @see #setUserid(String) - * @see in.handyman.dsl.DslPackage#getClickSendSms_Userid() - * @model - * @generated - */ - String getUserid(); - - /** - * Sets the value of the '{@link in.handyman.dsl.ClickSendSms#getUserid Userid}' attribute. - * - * - * @param value the new value of the 'Userid' attribute. - * @see #getUserid() - * @generated - */ - void setUserid(String value); - - /** - * Returns the value of the 'Security Key' attribute. - * - *

- * If the meaning of the 'Security Key' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Security Key' attribute. - * @see #setSecurityKey(String) - * @see in.handyman.dsl.DslPackage#getClickSendSms_SecurityKey() - * @model - * @generated - */ - String getSecurityKey(); - - /** - * Sets the value of the '{@link in.handyman.dsl.ClickSendSms#getSecurityKey Security Key}' attribute. - * - * - * @param value the new value of the 'Security Key' attribute. - * @see #getSecurityKey() - * @generated - */ - void setSecurityKey(String value); - - /** - * Returns the value of the 'Target' attribute. - * - *

- * If the meaning of the 'Target' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Target' attribute. - * @see #setTarget(String) - * @see in.handyman.dsl.DslPackage#getClickSendSms_Target() - * @model - * @generated - */ - String getTarget(); - - /** - * Sets the value of the '{@link in.handyman.dsl.ClickSendSms#getTarget Target}' attribute. - * - * - * @param value the new value of the 'Target' attribute. - * @see #getTarget() - * @generated - */ - void setTarget(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getClickSendSms_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.ClickSendSms#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // ClickSendSms diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Copydata.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Copydata.java deleted file mode 100644 index 12738460..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Copydata.java +++ /dev/null @@ -1,186 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Copydata'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Copydata#getSource Source}
  • - *
  • {@link in.handyman.dsl.Copydata#getTo To}
  • - *
  • {@link in.handyman.dsl.Copydata#getValue Value}
  • - *
  • {@link in.handyman.dsl.Copydata#getWriteThreadCount Write Thread Count}
  • - *
  • {@link in.handyman.dsl.Copydata#getFetchBatchSize Fetch Batch Size}
  • - *
  • {@link in.handyman.dsl.Copydata#getWriteBatchSize Write Batch Size}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getCopydata() - * @model - * @generated - */ -public interface Copydata extends Action -{ - /** - * Returns the value of the 'Source' attribute. - * - *

- * If the meaning of the 'Source' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Source' attribute. - * @see #setSource(String) - * @see in.handyman.dsl.DslPackage#getCopydata_Source() - * @model - * @generated - */ - String getSource(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Copydata#getSource Source}' attribute. - * - * - * @param value the new value of the 'Source' attribute. - * @see #getSource() - * @generated - */ - void setSource(String value); - - /** - * Returns the value of the 'To' attribute. - * - *

- * If the meaning of the 'To' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'To' attribute. - * @see #setTo(String) - * @see in.handyman.dsl.DslPackage#getCopydata_To() - * @model - * @generated - */ - String getTo(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Copydata#getTo To}' attribute. - * - * - * @param value the new value of the 'To' attribute. - * @see #getTo() - * @generated - */ - void setTo(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getCopydata_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Copydata#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - - /** - * Returns the value of the 'Write Thread Count' attribute. - * - *

- * If the meaning of the 'Write Thread Count' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Write Thread Count' attribute. - * @see #setWriteThreadCount(String) - * @see in.handyman.dsl.DslPackage#getCopydata_WriteThreadCount() - * @model - * @generated - */ - String getWriteThreadCount(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Copydata#getWriteThreadCount Write Thread Count}' attribute. - * - * - * @param value the new value of the 'Write Thread Count' attribute. - * @see #getWriteThreadCount() - * @generated - */ - void setWriteThreadCount(String value); - - /** - * Returns the value of the 'Fetch Batch Size' attribute. - * - *

- * If the meaning of the 'Fetch Batch Size' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Fetch Batch Size' attribute. - * @see #setFetchBatchSize(String) - * @see in.handyman.dsl.DslPackage#getCopydata_FetchBatchSize() - * @model - * @generated - */ - String getFetchBatchSize(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Copydata#getFetchBatchSize Fetch Batch Size}' attribute. - * - * - * @param value the new value of the 'Fetch Batch Size' attribute. - * @see #getFetchBatchSize() - * @generated - */ - void setFetchBatchSize(String value); - - /** - * Returns the value of the 'Write Batch Size' attribute. - * - *

- * If the meaning of the 'Write Batch Size' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Write Batch Size' attribute. - * @see #setWriteBatchSize(String) - * @see in.handyman.dsl.DslPackage#getCopydata_WriteBatchSize() - * @model - * @generated - */ - String getWriteBatchSize(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Copydata#getWriteBatchSize Write Batch Size}' attribute. - * - * - * @param value the new value of the 'Write Batch Size' attribute. - * @see #getWriteBatchSize() - * @generated - */ - void setWriteBatchSize(String value); - -} // Copydata diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Dogleg.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Dogleg.java deleted file mode 100644 index 5bc3ae12..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Dogleg.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.common.util.EList; - -/** - * - * A representation of the model object 'Dogleg'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Dogleg#getInheritContext Inherit Context}
  • - *
  • {@link in.handyman.dsl.Dogleg#getProcessList Process List}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getDogleg() - * @model - * @generated - */ -public interface Dogleg extends Action -{ - /** - * Returns the value of the 'Inherit Context' attribute. - * - *

- * If the meaning of the 'Inherit Context' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Inherit Context' attribute. - * @see #setInheritContext(String) - * @see in.handyman.dsl.DslPackage#getDogleg_InheritContext() - * @model - * @generated - */ - String getInheritContext(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Dogleg#getInheritContext Inherit Context}' attribute. - * - * - * @param value the new value of the 'Inherit Context' attribute. - * @see #getInheritContext() - * @generated - */ - void setInheritContext(String value); - - /** - * Returns the value of the 'Process List' containment reference list. - * The list contents are of type {@link in.handyman.dsl.StartProcess}. - * - *

- * If the meaning of the 'Process List' containment reference list isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Process List' containment reference list. - * @see in.handyman.dsl.DslPackage#getDogleg_ProcessList() - * @model containment="true" - * @generated - */ - EList getProcessList(); - -} // Dogleg diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Doozle.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Doozle.java deleted file mode 100644 index 5cc1e59d..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Doozle.java +++ /dev/null @@ -1,105 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Doozle'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Doozle#getTarget Target}
  • - *
  • {@link in.handyman.dsl.Doozle#getOn On}
  • - *
  • {@link in.handyman.dsl.Doozle#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getDoozle() - * @model - * @generated - */ -public interface Doozle extends Action -{ - /** - * Returns the value of the 'Target' attribute. - * - *

- * If the meaning of the 'Target' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Target' attribute. - * @see #setTarget(String) - * @see in.handyman.dsl.DslPackage#getDoozle_Target() - * @model - * @generated - */ - String getTarget(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Doozle#getTarget Target}' attribute. - * - * - * @param value the new value of the 'Target' attribute. - * @see #getTarget() - * @generated - */ - void setTarget(String value); - - /** - * Returns the value of the 'On' attribute. - * - *

- * If the meaning of the 'On' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'On' attribute. - * @see #setOn(String) - * @see in.handyman.dsl.DslPackage#getDoozle_On() - * @model - * @generated - */ - String getOn(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Doozle#getOn On}' attribute. - * - * - * @param value the new value of the 'On' attribute. - * @see #getOn() - * @generated - */ - void setOn(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getDoozle_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Doozle#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // Doozle diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Dropfile.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Dropfile.java deleted file mode 100644 index b4a00cd5..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Dropfile.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Dropfile'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Dropfile#getTarget Target}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getDropfile() - * @model - * @generated - */ -public interface Dropfile extends Action -{ - /** - * Returns the value of the 'Target' attribute. - * - *

- * If the meaning of the 'Target' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Target' attribute. - * @see #setTarget(String) - * @see in.handyman.dsl.DslPackage#getDropfile_Target() - * @model - * @generated - */ - String getTarget(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Dropfile#getTarget Target}' attribute. - * - * - * @param value the new value of the 'Target' attribute. - * @see #getTarget() - * @generated - */ - void setTarget(String value); - -} // Dropfile diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/DslFactory.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/DslFactory.java deleted file mode 100644 index d66ab752..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/DslFactory.java +++ /dev/null @@ -1,359 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.ecore.EFactory; - -/** - * - * The Factory for the model. - * It provides a create method for each non-abstract class of the model. - * - * @see in.handyman.dsl.DslPackage - * @generated - */ -public interface DslFactory extends EFactory -{ - /** - * The singleton instance of the factory. - * - * - * @generated - */ - DslFactory eINSTANCE = in.handyman.dsl.impl.DslFactoryImpl.init(); - - /** - * Returns a new object of class 'Process'. - * - * - * @return a new object of class 'Process'. - * @generated - */ - Process createProcess(); - - /** - * Returns a new object of class 'Try'. - * - * - * @return a new object of class 'Try'. - * @generated - */ - Try createTry(); - - /** - * Returns a new object of class 'Finally'. - * - * - * @return a new object of class 'Finally'. - * @generated - */ - Finally createFinally(); - - /** - * Returns a new object of class 'Catch'. - * - * - * @return a new object of class 'Catch'. - * @generated - */ - Catch createCatch(); - - /** - * Returns a new object of class 'Action'. - * - * - * @return a new object of class 'Action'. - * @generated - */ - Action createAction(); - - /** - * Returns a new object of class 'Spawnprocess'. - * - * - * @return a new object of class 'Spawnprocess'. - * @generated - */ - Spawnprocess createSpawnprocess(); - - /** - * Returns a new object of class 'Dogleg'. - * - * - * @return a new object of class 'Dogleg'. - * @generated - */ - Dogleg createDogleg(); - - /** - * Returns a new object of class 'Exec Java'. - * - * - * @return a new object of class 'Exec Java'. - * @generated - */ - ExecJava createExecJava(); - - /** - * Returns a new object of class 'Firebase Database Put'. - * - * - * @return a new object of class 'Firebase Database Put'. - * @generated - */ - FirebaseDatabasePut createFirebaseDatabasePut(); - - /** - * Returns a new object of class 'Firebase Reactive Notification'. - * - * - * @return a new object of class 'Firebase Reactive Notification'. - * @generated - */ - FirebaseReactiveNotification createFirebaseReactiveNotification(); - - /** - * Returns a new object of class 'Sms Lead Sms'. - * - * - * @return a new object of class 'Sms Lead Sms'. - * @generated - */ - SmsLeadSms createSmsLeadSms(); - - /** - * Returns a new object of class 'Abort'. - * - * - * @return a new object of class 'Abort'. - * @generated - */ - Abort createAbort(); - - /** - * Returns a new object of class 'Googlecontact Select All'. - * - * - * @return a new object of class 'Googlecontact Select All'. - * @generated - */ - GooglecontactSelectAll createGooglecontactSelectAll(); - - /** - * Returns a new object of class 'Send Mail'. - * - * - * @return a new object of class 'Send Mail'. - * @generated - */ - SendMail createSendMail(); - - /** - * Returns a new object of class 'Googlecontact PUT'. - * - * - * @return a new object of class 'Googlecontact PUT'. - * @generated - */ - GooglecontactPUT createGooglecontactPUT(); - - /** - * Returns a new object of class 'Googlecal PUT'. - * - * - * @return a new object of class 'Googlecal PUT'. - * @generated - */ - GooglecalPUT createGooglecalPUT(); - - /** - * Returns a new object of class 'FBC Lead'. - * - * - * @return a new object of class 'FBC Lead'. - * @generated - */ - FBCLead createFBCLead(); - - /** - * Returns a new object of class 'FB Form Download'. - * - * - * @return a new object of class 'FB Form Download'. - * @generated - */ - FBFormDownload createFBFormDownload(); - - /** - * Returns a new object of class 'Dropfile'. - * - * - * @return a new object of class 'Dropfile'. - * @generated - */ - Dropfile createDropfile(); - - /** - * Returns a new object of class 'Doozle'. - * - * - * @return a new object of class 'Doozle'. - * @generated - */ - Doozle createDoozle(); - - /** - * Returns a new object of class 'Rest'. - * - * - * @return a new object of class 'Rest'. - * @generated - */ - Rest createRest(); - - /** - * Returns a new object of class 'Rest Part'. - * - * - * @return a new object of class 'Rest Part'. - * @generated - */ - RestPart createRestPart(); - - /** - * Returns a new object of class 'Trello GET'. - * - * - * @return a new object of class 'Trello GET'. - * @generated - */ - TrelloGET createTrelloGET(); - - /** - * Returns a new object of class 'Trello PUT'. - * - * - * @return a new object of class 'Trello PUT'. - * @generated - */ - TrelloPUT createTrelloPUT(); - - /** - * Returns a new object of class 'Fetch'. - * - * - * @return a new object of class 'Fetch'. - * @generated - */ - Fetch createFetch(); - - /** - * Returns a new object of class 'Callprocess'. - * - * - * @return a new object of class 'Callprocess'. - * @generated - */ - Callprocess createCallprocess(); - - /** - * Returns a new object of class 'Forkprocess'. - * - * - * @return a new object of class 'Forkprocess'. - * @generated - */ - Forkprocess createForkprocess(); - - /** - * Returns a new object of class 'Updatedaudit'. - * - * - * @return a new object of class 'Updatedaudit'. - * @generated - */ - Updatedaudit createUpdatedaudit(); - - /** - * Returns a new object of class 'Click Send Sms'. - * - * - * @return a new object of class 'Click Send Sms'. - * @generated - */ - ClickSendSms createClickSendSms(); - - /** - * Returns a new object of class 'Slack PUT'. - * - * - * @return a new object of class 'Slack PUT'. - * @generated - */ - SlackPUT createSlackPUT(); - - /** - * Returns a new object of class 'Copydata'. - * - * - * @return a new object of class 'Copydata'. - * @generated - */ - Copydata createCopydata(); - - /** - * Returns a new object of class 'Write Csv'. - * - * - * @return a new object of class 'Write Csv'. - * @generated - */ - WriteCsv createWriteCsv(); - - /** - * Returns a new object of class 'Load Csv'. - * - * - * @return a new object of class 'Load Csv'. - * @generated - */ - LoadCsv createLoadCsv(); - - /** - * Returns a new object of class 'Transform'. - * - * - * @return a new object of class 'Transform'. - * @generated - */ - Transform createTransform(); - - /** - * Returns a new object of class 'Start Process'. - * - * - * @return a new object of class 'Start Process'. - * @generated - */ - StartProcess createStartProcess(); - - /** - * Returns a new object of class 'Expression'. - * - * - * @return a new object of class 'Expression'. - * @generated - */ - Expression createExpression(); - - /** - * Returns the package supported by this factory. - * - * - * @return the package supported by this factory. - * @generated - */ - DslPackage getDslPackage(); - -} //DslFactory diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/DslPackage.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/DslPackage.java deleted file mode 100644 index 0fbf1260..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/DslPackage.java +++ /dev/null @@ -1,6250 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.ecore.EAttribute; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.EReference; - -/** - * - * The Package for the model. - * It contains accessors for the meta objects to represent - *
    - *
  • each class,
  • - *
  • each feature of each class,
  • - *
  • each enum,
  • - *
  • and each data type
  • - *
- * - * @see in.handyman.dsl.DslFactory - * @model kind="package" - * @generated - */ -public interface DslPackage extends EPackage -{ - /** - * The package name. - * - * - * @generated - */ - String eNAME = "dsl"; - - /** - * The package namespace URI. - * - * - * @generated - */ - String eNS_URI = "http://www.handyman.in/Dsl"; - - /** - * The package namespace name. - * - * - * @generated - */ - String eNS_PREFIX = "dsl"; - - /** - * The singleton instance of the package. - * - * - * @generated - */ - DslPackage eINSTANCE = in.handyman.dsl.impl.DslPackageImpl.init(); - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.ProcessImpl Process}' class. - * - * - * @see in.handyman.dsl.impl.ProcessImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getProcess() - * @generated - */ - int PROCESS = 0; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int PROCESS__NAME = 0; - - /** - * The feature id for the 'Try' containment reference. - * - * - * @generated - * @ordered - */ - int PROCESS__TRY = 1; - - /** - * The feature id for the 'Catch' containment reference. - * - * - * @generated - * @ordered - */ - int PROCESS__CATCH = 2; - - /** - * The feature id for the 'Finally' containment reference. - * - * - * @generated - * @ordered - */ - int PROCESS__FINALLY = 3; - - /** - * The number of structural features of the 'Process' class. - * - * - * @generated - * @ordered - */ - int PROCESS_FEATURE_COUNT = 4; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.TryImpl Try}' class. - * - * - * @see in.handyman.dsl.impl.TryImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getTry() - * @generated - */ - int TRY = 1; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int TRY__NAME = 0; - - /** - * The feature id for the 'Action' containment reference list. - * - * - * @generated - * @ordered - */ - int TRY__ACTION = 1; - - /** - * The number of structural features of the 'Try' class. - * - * - * @generated - * @ordered - */ - int TRY_FEATURE_COUNT = 2; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.FinallyImpl Finally}' class. - * - * - * @see in.handyman.dsl.impl.FinallyImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFinally() - * @generated - */ - int FINALLY = 2; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int FINALLY__NAME = 0; - - /** - * The feature id for the 'Action' containment reference list. - * - * - * @generated - * @ordered - */ - int FINALLY__ACTION = 1; - - /** - * The number of structural features of the 'Finally' class. - * - * - * @generated - * @ordered - */ - int FINALLY_FEATURE_COUNT = 2; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.CatchImpl Catch}' class. - * - * - * @see in.handyman.dsl.impl.CatchImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getCatch() - * @generated - */ - int CATCH = 3; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int CATCH__NAME = 0; - - /** - * The feature id for the 'Action' containment reference list. - * - * - * @generated - * @ordered - */ - int CATCH__ACTION = 1; - - /** - * The number of structural features of the 'Catch' class. - * - * - * @generated - * @ordered - */ - int CATCH_FEATURE_COUNT = 2; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.ActionImpl Action}' class. - * - * - * @see in.handyman.dsl.impl.ActionImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getAction() - * @generated - */ - int ACTION = 4; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int ACTION__NAME = 0; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int ACTION__CONDITION = 1; - - /** - * The number of structural features of the 'Action' class. - * - * - * @generated - * @ordered - */ - int ACTION_FEATURE_COUNT = 2; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.SpawnprocessImpl Spawnprocess}' class. - * - * - * @see in.handyman.dsl.impl.SpawnprocessImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getSpawnprocess() - * @generated - */ - int SPAWNPROCESS = 5; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int SPAWNPROCESS__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int SPAWNPROCESS__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Target' attribute. - * - * - * @generated - * @ordered - */ - int SPAWNPROCESS__TARGET = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Source' attribute. - * - * - * @generated - * @ordered - */ - int SPAWNPROCESS__SOURCE = ACTION_FEATURE_COUNT + 1; - - /** - * The number of structural features of the 'Spawnprocess' class. - * - * - * @generated - * @ordered - */ - int SPAWNPROCESS_FEATURE_COUNT = ACTION_FEATURE_COUNT + 2; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.DoglegImpl Dogleg}' class. - * - * - * @see in.handyman.dsl.impl.DoglegImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getDogleg() - * @generated - */ - int DOGLEG = 6; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int DOGLEG__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int DOGLEG__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Inherit Context' attribute. - * - * - * @generated - * @ordered - */ - int DOGLEG__INHERIT_CONTEXT = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Process List' containment reference list. - * - * - * @generated - * @ordered - */ - int DOGLEG__PROCESS_LIST = ACTION_FEATURE_COUNT + 1; - - /** - * The number of structural features of the 'Dogleg' class. - * - * - * @generated - * @ordered - */ - int DOGLEG_FEATURE_COUNT = ACTION_FEATURE_COUNT + 2; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.ExecJavaImpl Exec Java}' class. - * - * - * @see in.handyman.dsl.impl.ExecJavaImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getExecJava() - * @generated - */ - int EXEC_JAVA = 7; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int EXEC_JAVA__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int EXEC_JAVA__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Class Fqn' attribute. - * - * - * @generated - * @ordered - */ - int EXEC_JAVA__CLASS_FQN = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Db Src' attribute. - * - * - * @generated - * @ordered - */ - int EXEC_JAVA__DB_SRC = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int EXEC_JAVA__VALUE = ACTION_FEATURE_COUNT + 2; - - /** - * The number of structural features of the 'Exec Java' class. - * - * - * @generated - * @ordered - */ - int EXEC_JAVA_FEATURE_COUNT = ACTION_FEATURE_COUNT + 3; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.FirebaseDatabasePutImpl Firebase Database Put}' class. - * - * - * @see in.handyman.dsl.impl.FirebaseDatabasePutImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFirebaseDatabasePut() - * @generated - */ - int FIREBASE_DATABASE_PUT = 8; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_DATABASE_PUT__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int FIREBASE_DATABASE_PUT__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Url' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_DATABASE_PUT__URL = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Fbjson' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_DATABASE_PUT__FBJSON = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Group Path' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_DATABASE_PUT__GROUP_PATH = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Db Src' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_DATABASE_PUT__DB_SRC = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Class Fqn' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_DATABASE_PUT__CLASS_FQN = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_DATABASE_PUT__VALUE = ACTION_FEATURE_COUNT + 5; - - /** - * The number of structural features of the 'Firebase Database Put' class. - * - * - * @generated - * @ordered - */ - int FIREBASE_DATABASE_PUT_FEATURE_COUNT = ACTION_FEATURE_COUNT + 6; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.FirebaseReactiveNotificationImpl Firebase Reactive Notification}' class. - * - * - * @see in.handyman.dsl.impl.FirebaseReactiveNotificationImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFirebaseReactiveNotification() - * @generated - */ - int FIREBASE_REACTIVE_NOTIFICATION = 9; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_REACTIVE_NOTIFICATION__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int FIREBASE_REACTIVE_NOTIFICATION__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Url' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_REACTIVE_NOTIFICATION__URL = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Fbjson' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_REACTIVE_NOTIFICATION__FBJSON = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Group Path' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_REACTIVE_NOTIFICATION__GROUP_PATH = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Class Fqn' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_REACTIVE_NOTIFICATION__CLASS_FQN = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Db Src' attribute. - * - * - * @generated - * @ordered - */ - int FIREBASE_REACTIVE_NOTIFICATION__DB_SRC = ACTION_FEATURE_COUNT + 4; - - /** - * The number of structural features of the 'Firebase Reactive Notification' class. - * - * - * @generated - * @ordered - */ - int FIREBASE_REACTIVE_NOTIFICATION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 5; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.SmsLeadSmsImpl Sms Lead Sms}' class. - * - * - * @see in.handyman.dsl.impl.SmsLeadSmsImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getSmsLeadSms() - * @generated - */ - int SMS_LEAD_SMS = 10; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int SMS_LEAD_SMS__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int SMS_LEAD_SMS__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Url' attribute. - * - * - * @generated - * @ordered - */ - int SMS_LEAD_SMS__URL = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Sender' attribute. - * - * - * @generated - * @ordered - */ - int SMS_LEAD_SMS__SENDER = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Account' attribute. - * - * - * @generated - * @ordered - */ - int SMS_LEAD_SMS__ACCOUNT = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Private Key' attribute. - * - * - * @generated - * @ordered - */ - int SMS_LEAD_SMS__PRIVATE_KEY = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Db Src' attribute. - * - * - * @generated - * @ordered - */ - int SMS_LEAD_SMS__DB_SRC = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int SMS_LEAD_SMS__VALUE = ACTION_FEATURE_COUNT + 5; - - /** - * The feature id for the 'Dryrun Number' attribute. - * - * - * @generated - * @ordered - */ - int SMS_LEAD_SMS__DRYRUN_NUMBER = ACTION_FEATURE_COUNT + 6; - - /** - * The number of structural features of the 'Sms Lead Sms' class. - * - * - * @generated - * @ordered - */ - int SMS_LEAD_SMS_FEATURE_COUNT = ACTION_FEATURE_COUNT + 7; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.AbortImpl Abort}' class. - * - * - * @see in.handyman.dsl.impl.AbortImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getAbort() - * @generated - */ - int ABORT = 11; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int ABORT__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int ABORT__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int ABORT__VALUE = ACTION_FEATURE_COUNT + 0; - - /** - * The number of structural features of the 'Abort' class. - * - * - * @generated - * @ordered - */ - int ABORT_FEATURE_COUNT = ACTION_FEATURE_COUNT + 1; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.GooglecontactSelectAllImpl Googlecontact Select All}' class. - * - * - * @see in.handyman.dsl.impl.GooglecontactSelectAllImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getGooglecontactSelectAll() - * @generated - */ - int GOOGLECONTACT_SELECT_ALL = 12; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_SELECT_ALL__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_SELECT_ALL__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Account' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_SELECT_ALL__ACCOUNT = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Private Key' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_SELECT_ALL__PRIVATE_KEY = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Ptwelve File' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_SELECT_ALL__PTWELVE_FILE = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Project' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_SELECT_ALL__PROJECT = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Impersonated User' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_SELECT_ALL__IMPERSONATED_USER = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Db Src' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_SELECT_ALL__DB_SRC = ACTION_FEATURE_COUNT + 5; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_SELECT_ALL__VALUE = ACTION_FEATURE_COUNT + 6; - - /** - * The number of structural features of the 'Googlecontact Select All' class. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_SELECT_ALL_FEATURE_COUNT = ACTION_FEATURE_COUNT + 7; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.SendMailImpl Send Mail}' class. - * - * - * @see in.handyman.dsl.impl.SendMailImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getSendMail() - * @generated - */ - int SEND_MAIL = 13; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int SEND_MAIL__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int SEND_MAIL__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Private Key' attribute. - * - * - * @generated - * @ordered - */ - int SEND_MAIL__PRIVATE_KEY = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Impersonated User' attribute. - * - * - * @generated - * @ordered - */ - int SEND_MAIL__IMPERSONATED_USER = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Db Src' attribute. - * - * - * @generated - * @ordered - */ - int SEND_MAIL__DB_SRC = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int SEND_MAIL__VALUE = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Dryrun Mail' attribute. - * - * - * @generated - * @ordered - */ - int SEND_MAIL__DRYRUN_MAIL = ACTION_FEATURE_COUNT + 4; - - /** - * The number of structural features of the 'Send Mail' class. - * - * - * @generated - * @ordered - */ - int SEND_MAIL_FEATURE_COUNT = ACTION_FEATURE_COUNT + 5; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.GooglecontactPUTImpl Googlecontact PUT}' class. - * - * - * @see in.handyman.dsl.impl.GooglecontactPUTImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getGooglecontactPUT() - * @generated - */ - int GOOGLECONTACT_PUT = 14; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_PUT__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_PUT__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Account' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_PUT__ACCOUNT = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Private Key' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_PUT__PRIVATE_KEY = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Ptwelve File' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_PUT__PTWELVE_FILE = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Project' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_PUT__PROJECT = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Impersonated User' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_PUT__IMPERSONATED_USER = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Db Src' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_PUT__DB_SRC = ACTION_FEATURE_COUNT + 5; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_PUT__VALUE = ACTION_FEATURE_COUNT + 6; - - /** - * The number of structural features of the 'Googlecontact PUT' class. - * - * - * @generated - * @ordered - */ - int GOOGLECONTACT_PUT_FEATURE_COUNT = ACTION_FEATURE_COUNT + 7; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.GooglecalPUTImpl Googlecal PUT}' class. - * - * - * @see in.handyman.dsl.impl.GooglecalPUTImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getGooglecalPUT() - * @generated - */ - int GOOGLECAL_PUT = 15; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECAL_PUT__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int GOOGLECAL_PUT__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Account' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECAL_PUT__ACCOUNT = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Private Key' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECAL_PUT__PRIVATE_KEY = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Ptwelve File' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECAL_PUT__PTWELVE_FILE = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Project' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECAL_PUT__PROJECT = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Impersonated User' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECAL_PUT__IMPERSONATED_USER = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Db Src' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECAL_PUT__DB_SRC = ACTION_FEATURE_COUNT + 5; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int GOOGLECAL_PUT__VALUE = ACTION_FEATURE_COUNT + 6; - - /** - * The number of structural features of the 'Googlecal PUT' class. - * - * - * @generated - * @ordered - */ - int GOOGLECAL_PUT_FEATURE_COUNT = ACTION_FEATURE_COUNT + 7; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.FBCLeadImpl FBC Lead}' class. - * - * - * @see in.handyman.dsl.impl.FBCLeadImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFBCLead() - * @generated - */ - int FBC_LEAD = 16; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int FBC_LEAD__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int FBC_LEAD__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Access Token' attribute. - * - * - * @generated - * @ordered - */ - int FBC_LEAD__ACCESS_TOKEN = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'App Secret' attribute. - * - * - * @generated - * @ordered - */ - int FBC_LEAD__APP_SECRET = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Account Id' attribute. - * - * - * @generated - * @ordered - */ - int FBC_LEAD__ACCOUNT_ID = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Campaign Id' attribute. - * - * - * @generated - * @ordered - */ - int FBC_LEAD__CAMPAIGN_ID = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Target' attribute. - * - * - * @generated - * @ordered - */ - int FBC_LEAD__TARGET = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int FBC_LEAD__VALUE = ACTION_FEATURE_COUNT + 5; - - /** - * The number of structural features of the 'FBC Lead' class. - * - * - * @generated - * @ordered - */ - int FBC_LEAD_FEATURE_COUNT = ACTION_FEATURE_COUNT + 6; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.FBFormDownloadImpl FB Form Download}' class. - * - * - * @see in.handyman.dsl.impl.FBFormDownloadImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFBFormDownload() - * @generated - */ - int FB_FORM_DOWNLOAD = 17; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int FB_FORM_DOWNLOAD__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int FB_FORM_DOWNLOAD__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Access Token' attribute. - * - * - * @generated - * @ordered - */ - int FB_FORM_DOWNLOAD__ACCESS_TOKEN = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'App Secret' attribute. - * - * - * @generated - * @ordered - */ - int FB_FORM_DOWNLOAD__APP_SECRET = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Account Id' attribute. - * - * - * @generated - * @ordered - */ - int FB_FORM_DOWNLOAD__ACCOUNT_ID = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Form Id' attribute. - * - * - * @generated - * @ordered - */ - int FB_FORM_DOWNLOAD__FORM_ID = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Target' attribute. - * - * - * @generated - * @ordered - */ - int FB_FORM_DOWNLOAD__TARGET = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int FB_FORM_DOWNLOAD__VALUE = ACTION_FEATURE_COUNT + 5; - - /** - * The number of structural features of the 'FB Form Download' class. - * - * - * @generated - * @ordered - */ - int FB_FORM_DOWNLOAD_FEATURE_COUNT = ACTION_FEATURE_COUNT + 6; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.DropfileImpl Dropfile}' class. - * - * - * @see in.handyman.dsl.impl.DropfileImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getDropfile() - * @generated - */ - int DROPFILE = 18; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int DROPFILE__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int DROPFILE__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Target' attribute. - * - * - * @generated - * @ordered - */ - int DROPFILE__TARGET = ACTION_FEATURE_COUNT + 0; - - /** - * The number of structural features of the 'Dropfile' class. - * - * - * @generated - * @ordered - */ - int DROPFILE_FEATURE_COUNT = ACTION_FEATURE_COUNT + 1; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.DoozleImpl Doozle}' class. - * - * - * @see in.handyman.dsl.impl.DoozleImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getDoozle() - * @generated - */ - int DOOZLE = 19; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int DOOZLE__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int DOOZLE__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Target' attribute. - * - * - * @generated - * @ordered - */ - int DOOZLE__TARGET = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'On' attribute. - * - * - * @generated - * @ordered - */ - int DOOZLE__ON = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int DOOZLE__VALUE = ACTION_FEATURE_COUNT + 2; - - /** - * The number of structural features of the 'Doozle' class. - * - * - * @generated - * @ordered - */ - int DOOZLE_FEATURE_COUNT = ACTION_FEATURE_COUNT + 3; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.RestImpl Rest}' class. - * - * - * @see in.handyman.dsl.impl.RestImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getRest() - * @generated - */ - int REST = 20; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int REST__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int REST__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Authtoken' attribute. - * - * - * @generated - * @ordered - */ - int REST__AUTHTOKEN = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Url' attribute. - * - * - * @generated - * @ordered - */ - int REST__URL = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Method' attribute. - * - * - * @generated - * @ordered - */ - int REST__METHOD = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Resourcedatafrom' attribute. - * - * - * @generated - * @ordered - */ - int REST__RESOURCEDATAFROM = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Urldata' attribute. - * - * - * @generated - * @ordered - */ - int REST__URLDATA = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Headerdatafrom' attribute. - * - * - * @generated - * @ordered - */ - int REST__HEADERDATAFROM = ACTION_FEATURE_COUNT + 5; - - /** - * The feature id for the 'Headerdata' attribute. - * - * - * @generated - * @ordered - */ - int REST__HEADERDATA = ACTION_FEATURE_COUNT + 6; - - /** - * The feature id for the 'Postdatafrom' attribute. - * - * - * @generated - * @ordered - */ - int REST__POSTDATAFROM = ACTION_FEATURE_COUNT + 7; - - /** - * The feature id for the 'Parent Name' attribute. - * - * - * @generated - * @ordered - */ - int REST__PARENT_NAME = ACTION_FEATURE_COUNT + 8; - - /** - * The feature id for the 'Parentdata' attribute. - * - * - * @generated - * @ordered - */ - int REST__PARENTDATA = ACTION_FEATURE_COUNT + 9; - - /** - * The feature id for the 'Parts' containment reference list. - * - * - * @generated - * @ordered - */ - int REST__PARTS = ACTION_FEATURE_COUNT + 10; - - /** - * The feature id for the 'Ackdatato' attribute. - * - * - * @generated - * @ordered - */ - int REST__ACKDATATO = ACTION_FEATURE_COUNT + 11; - - /** - * The feature id for the 'Ackdata' attribute. - * - * - * @generated - * @ordered - */ - int REST__ACKDATA = ACTION_FEATURE_COUNT + 12; - - /** - * The number of structural features of the 'Rest' class. - * - * - * @generated - * @ordered - */ - int REST_FEATURE_COUNT = ACTION_FEATURE_COUNT + 13; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.RestPartImpl Rest Part}' class. - * - * - * @see in.handyman.dsl.impl.RestPartImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getRestPart() - * @generated - */ - int REST_PART = 21; - - /** - * The feature id for the 'Part Name' attribute. - * - * - * @generated - * @ordered - */ - int REST_PART__PART_NAME = 0; - - /** - * The feature id for the 'Part Data' attribute. - * - * - * @generated - * @ordered - */ - int REST_PART__PART_DATA = 1; - - /** - * The number of structural features of the 'Rest Part' class. - * - * - * @generated - * @ordered - */ - int REST_PART_FEATURE_COUNT = 2; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.TrelloGETImpl Trello GET}' class. - * - * - * @see in.handyman.dsl.impl.TrelloGETImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getTrelloGET() - * @generated - */ - int TRELLO_GET = 22; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_GET__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int TRELLO_GET__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Authtoken' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_GET__AUTHTOKEN = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Key' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_GET__KEY = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Useraccount' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_GET__USERACCOUNT = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Board' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_GET__BOARD = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Target' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_GET__TARGET = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_GET__VALUE = ACTION_FEATURE_COUNT + 5; - - /** - * The number of structural features of the 'Trello GET' class. - * - * - * @generated - * @ordered - */ - int TRELLO_GET_FEATURE_COUNT = ACTION_FEATURE_COUNT + 6; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.TrelloPUTImpl Trello PUT}' class. - * - * - * @see in.handyman.dsl.impl.TrelloPUTImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getTrelloPUT() - * @generated - */ - int TRELLO_PUT = 23; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_PUT__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int TRELLO_PUT__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Authtoken' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_PUT__AUTHTOKEN = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Key' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_PUT__KEY = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Useraccount' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_PUT__USERACCOUNT = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'List' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_PUT__LIST = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Source' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_PUT__SOURCE = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int TRELLO_PUT__VALUE = ACTION_FEATURE_COUNT + 5; - - /** - * The number of structural features of the 'Trello PUT' class. - * - * - * @generated - * @ordered - */ - int TRELLO_PUT_FEATURE_COUNT = ACTION_FEATURE_COUNT + 6; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.FetchImpl Fetch}' class. - * - * - * @see in.handyman.dsl.impl.FetchImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFetch() - * @generated - */ - int FETCH = 24; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int FETCH__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int FETCH__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Source' attribute. - * - * - * @generated - * @ordered - */ - int FETCH__SOURCE = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int FETCH__VALUE = ACTION_FEATURE_COUNT + 1; - - /** - * The number of structural features of the 'Fetch' class. - * - * - * @generated - * @ordered - */ - int FETCH_FEATURE_COUNT = ACTION_FEATURE_COUNT + 2; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.CallprocessImpl Callprocess}' class. - * - * - * @see in.handyman.dsl.impl.CallprocessImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getCallprocess() - * @generated - */ - int CALLPROCESS = 25; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int CALLPROCESS__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int CALLPROCESS__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Target' attribute. - * - * - * @generated - * @ordered - */ - int CALLPROCESS__TARGET = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Source' attribute. - * - * - * @generated - * @ordered - */ - int CALLPROCESS__SOURCE = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Datasource' attribute. - * - * - * @generated - * @ordered - */ - int CALLPROCESS__DATASOURCE = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int CALLPROCESS__VALUE = ACTION_FEATURE_COUNT + 3; - - /** - * The number of structural features of the 'Callprocess' class. - * - * - * @generated - * @ordered - */ - int CALLPROCESS_FEATURE_COUNT = ACTION_FEATURE_COUNT + 4; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.ForkprocessImpl Forkprocess}' class. - * - * - * @see in.handyman.dsl.impl.ForkprocessImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getForkprocess() - * @generated - */ - int FORKPROCESS = 26; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int FORKPROCESS__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int FORKPROCESS__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Target' attribute. - * - * - * @generated - * @ordered - */ - int FORKPROCESS__TARGET = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Source' attribute. - * - * - * @generated - * @ordered - */ - int FORKPROCESS__SOURCE = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Datasource' attribute. - * - * - * @generated - * @ordered - */ - int FORKPROCESS__DATASOURCE = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int FORKPROCESS__VALUE = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Fork Batch Size' attribute. - * - * - * @generated - * @ordered - */ - int FORKPROCESS__FORK_BATCH_SIZE = ACTION_FEATURE_COUNT + 4; - - /** - * The number of structural features of the 'Forkprocess' class. - * - * - * @generated - * @ordered - */ - int FORKPROCESS_FEATURE_COUNT = ACTION_FEATURE_COUNT + 5; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.UpdatedauditImpl Updatedaudit}' class. - * - * - * @see in.handyman.dsl.impl.UpdatedauditImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getUpdatedaudit() - * @generated - */ - int UPDATEDAUDIT = 27; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int UPDATEDAUDIT__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int UPDATEDAUDIT__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Logsink' attribute. - * - * - * @generated - * @ordered - */ - int UPDATEDAUDIT__LOGSINK = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Datasource' attribute. - * - * - * @generated - * @ordered - */ - int UPDATEDAUDIT__DATASOURCE = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int UPDATEDAUDIT__VALUE = ACTION_FEATURE_COUNT + 2; - - /** - * The number of structural features of the 'Updatedaudit' class. - * - * - * @generated - * @ordered - */ - int UPDATEDAUDIT_FEATURE_COUNT = ACTION_FEATURE_COUNT + 3; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.ClickSendSmsImpl Click Send Sms}' class. - * - * - * @see in.handyman.dsl.impl.ClickSendSmsImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getClickSendSms() - * @generated - */ - int CLICK_SEND_SMS = 28; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int CLICK_SEND_SMS__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int CLICK_SEND_SMS__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Userid' attribute. - * - * - * @generated - * @ordered - */ - int CLICK_SEND_SMS__USERID = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Security Key' attribute. - * - * - * @generated - * @ordered - */ - int CLICK_SEND_SMS__SECURITY_KEY = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Target' attribute. - * - * - * @generated - * @ordered - */ - int CLICK_SEND_SMS__TARGET = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int CLICK_SEND_SMS__VALUE = ACTION_FEATURE_COUNT + 3; - - /** - * The number of structural features of the 'Click Send Sms' class. - * - * - * @generated - * @ordered - */ - int CLICK_SEND_SMS_FEATURE_COUNT = ACTION_FEATURE_COUNT + 4; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.SlackPUTImpl Slack PUT}' class. - * - * - * @see in.handyman.dsl.impl.SlackPUTImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getSlackPUT() - * @generated - */ - int SLACK_PUT = 29; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int SLACK_PUT__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int SLACK_PUT__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Team' attribute. - * - * - * @generated - * @ordered - */ - int SLACK_PUT__TEAM = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Channel' attribute. - * - * - * @generated - * @ordered - */ - int SLACK_PUT__CHANNEL = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int SLACK_PUT__VALUE = ACTION_FEATURE_COUNT + 2; - - /** - * The number of structural features of the 'Slack PUT' class. - * - * - * @generated - * @ordered - */ - int SLACK_PUT_FEATURE_COUNT = ACTION_FEATURE_COUNT + 3; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.CopydataImpl Copydata}' class. - * - * - * @see in.handyman.dsl.impl.CopydataImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getCopydata() - * @generated - */ - int COPYDATA = 30; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int COPYDATA__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int COPYDATA__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Source' attribute. - * - * - * @generated - * @ordered - */ - int COPYDATA__SOURCE = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'To' attribute. - * - * - * @generated - * @ordered - */ - int COPYDATA__TO = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int COPYDATA__VALUE = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Write Thread Count' attribute. - * - * - * @generated - * @ordered - */ - int COPYDATA__WRITE_THREAD_COUNT = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Fetch Batch Size' attribute. - * - * - * @generated - * @ordered - */ - int COPYDATA__FETCH_BATCH_SIZE = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Write Batch Size' attribute. - * - * - * @generated - * @ordered - */ - int COPYDATA__WRITE_BATCH_SIZE = ACTION_FEATURE_COUNT + 5; - - /** - * The number of structural features of the 'Copydata' class. - * - * - * @generated - * @ordered - */ - int COPYDATA_FEATURE_COUNT = ACTION_FEATURE_COUNT + 6; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.WriteCsvImpl Write Csv}' class. - * - * - * @see in.handyman.dsl.impl.WriteCsvImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getWriteCsv() - * @generated - */ - int WRITE_CSV = 31; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int WRITE_CSV__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int WRITE_CSV__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Source' attribute. - * - * - * @generated - * @ordered - */ - int WRITE_CSV__SOURCE = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'To' attribute. - * - * - * @generated - * @ordered - */ - int WRITE_CSV__TO = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Delim' attribute. - * - * - * @generated - * @ordered - */ - int WRITE_CSV__DELIM = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int WRITE_CSV__VALUE = ACTION_FEATURE_COUNT + 3; - - /** - * The number of structural features of the 'Write Csv' class. - * - * - * @generated - * @ordered - */ - int WRITE_CSV_FEATURE_COUNT = ACTION_FEATURE_COUNT + 4; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.LoadCsvImpl Load Csv}' class. - * - * - * @see in.handyman.dsl.impl.LoadCsvImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getLoadCsv() - * @generated - */ - int LOAD_CSV = 32; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int LOAD_CSV__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int LOAD_CSV__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'Source' attribute. - * - * - * @generated - * @ordered - */ - int LOAD_CSV__SOURCE = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'To' attribute. - * - * - * @generated - * @ordered - */ - int LOAD_CSV__TO = ACTION_FEATURE_COUNT + 1; - - /** - * The feature id for the 'Delim' attribute. - * - * - * @generated - * @ordered - */ - int LOAD_CSV__DELIM = ACTION_FEATURE_COUNT + 2; - - /** - * The feature id for the 'Fetch Batch Size' attribute. - * - * - * @generated - * @ordered - */ - int LOAD_CSV__FETCH_BATCH_SIZE = ACTION_FEATURE_COUNT + 3; - - /** - * The feature id for the 'Write Batch Size' attribute. - * - * - * @generated - * @ordered - */ - int LOAD_CSV__WRITE_BATCH_SIZE = ACTION_FEATURE_COUNT + 4; - - /** - * The feature id for the 'Value' attribute. - * - * - * @generated - * @ordered - */ - int LOAD_CSV__VALUE = ACTION_FEATURE_COUNT + 5; - - /** - * The feature id for the 'Write Thread Count' attribute. - * - * - * @generated - * @ordered - */ - int LOAD_CSV__WRITE_THREAD_COUNT = ACTION_FEATURE_COUNT + 6; - - /** - * The number of structural features of the 'Load Csv' class. - * - * - * @generated - * @ordered - */ - int LOAD_CSV_FEATURE_COUNT = ACTION_FEATURE_COUNT + 7; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.TransformImpl Transform}' class. - * - * - * @see in.handyman.dsl.impl.TransformImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getTransform() - * @generated - */ - int TRANSFORM = 33; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int TRANSFORM__NAME = ACTION__NAME; - - /** - * The feature id for the 'Condition' containment reference. - * - * - * @generated - * @ordered - */ - int TRANSFORM__CONDITION = ACTION__CONDITION; - - /** - * The feature id for the 'On' attribute. - * - * - * @generated - * @ordered - */ - int TRANSFORM__ON = ACTION_FEATURE_COUNT + 0; - - /** - * The feature id for the 'Value' attribute list. - * - * - * @generated - * @ordered - */ - int TRANSFORM__VALUE = ACTION_FEATURE_COUNT + 1; - - /** - * The number of structural features of the 'Transform' class. - * - * - * @generated - * @ordered - */ - int TRANSFORM_FEATURE_COUNT = ACTION_FEATURE_COUNT + 2; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.StartProcessImpl Start Process}' class. - * - * - * @see in.handyman.dsl.impl.StartProcessImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getStartProcess() - * @generated - */ - int START_PROCESS = 34; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int START_PROCESS__NAME = 0; - - /** - * The feature id for the 'Target' attribute. - * - * - * @generated - * @ordered - */ - int START_PROCESS__TARGET = 1; - - /** - * The number of structural features of the 'Start Process' class. - * - * - * @generated - * @ordered - */ - int START_PROCESS_FEATURE_COUNT = 2; - - /** - * The meta object id for the '{@link in.handyman.dsl.impl.ExpressionImpl Expression}' class. - * - * - * @see in.handyman.dsl.impl.ExpressionImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getExpression() - * @generated - */ - int EXPRESSION = 35; - - /** - * The feature id for the 'Lhs' attribute. - * - * - * @generated - * @ordered - */ - int EXPRESSION__LHS = 0; - - /** - * The feature id for the 'Operator' attribute. - * - * - * @generated - * @ordered - */ - int EXPRESSION__OPERATOR = 1; - - /** - * The feature id for the 'Rhs' attribute. - * - * - * @generated - * @ordered - */ - int EXPRESSION__RHS = 2; - - /** - * The number of structural features of the 'Expression' class. - * - * - * @generated - * @ordered - */ - int EXPRESSION_FEATURE_COUNT = 3; - - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Process Process}'. - * - * - * @return the meta object for class 'Process'. - * @see in.handyman.dsl.Process - * @generated - */ - EClass getProcess(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Process#getName Name}'. - * - * - * @return the meta object for the attribute 'Name'. - * @see in.handyman.dsl.Process#getName() - * @see #getProcess() - * @generated - */ - EAttribute getProcess_Name(); - - /** - * Returns the meta object for the containment reference '{@link in.handyman.dsl.Process#getTry Try}'. - * - * - * @return the meta object for the containment reference 'Try'. - * @see in.handyman.dsl.Process#getTry() - * @see #getProcess() - * @generated - */ - EReference getProcess_Try(); - - /** - * Returns the meta object for the containment reference '{@link in.handyman.dsl.Process#getCatch Catch}'. - * - * - * @return the meta object for the containment reference 'Catch'. - * @see in.handyman.dsl.Process#getCatch() - * @see #getProcess() - * @generated - */ - EReference getProcess_Catch(); - - /** - * Returns the meta object for the containment reference '{@link in.handyman.dsl.Process#getFinally Finally}'. - * - * - * @return the meta object for the containment reference 'Finally'. - * @see in.handyman.dsl.Process#getFinally() - * @see #getProcess() - * @generated - */ - EReference getProcess_Finally(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Try Try}'. - * - * - * @return the meta object for class 'Try'. - * @see in.handyman.dsl.Try - * @generated - */ - EClass getTry(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Try#getName Name}'. - * - * - * @return the meta object for the attribute 'Name'. - * @see in.handyman.dsl.Try#getName() - * @see #getTry() - * @generated - */ - EAttribute getTry_Name(); - - /** - * Returns the meta object for the containment reference list '{@link in.handyman.dsl.Try#getAction Action}'. - * - * - * @return the meta object for the containment reference list 'Action'. - * @see in.handyman.dsl.Try#getAction() - * @see #getTry() - * @generated - */ - EReference getTry_Action(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Finally Finally}'. - * - * - * @return the meta object for class 'Finally'. - * @see in.handyman.dsl.Finally - * @generated - */ - EClass getFinally(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Finally#getName Name}'. - * - * - * @return the meta object for the attribute 'Name'. - * @see in.handyman.dsl.Finally#getName() - * @see #getFinally() - * @generated - */ - EAttribute getFinally_Name(); - - /** - * Returns the meta object for the containment reference list '{@link in.handyman.dsl.Finally#getAction Action}'. - * - * - * @return the meta object for the containment reference list 'Action'. - * @see in.handyman.dsl.Finally#getAction() - * @see #getFinally() - * @generated - */ - EReference getFinally_Action(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Catch Catch}'. - * - * - * @return the meta object for class 'Catch'. - * @see in.handyman.dsl.Catch - * @generated - */ - EClass getCatch(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Catch#getName Name}'. - * - * - * @return the meta object for the attribute 'Name'. - * @see in.handyman.dsl.Catch#getName() - * @see #getCatch() - * @generated - */ - EAttribute getCatch_Name(); - - /** - * Returns the meta object for the containment reference list '{@link in.handyman.dsl.Catch#getAction Action}'. - * - * - * @return the meta object for the containment reference list 'Action'. - * @see in.handyman.dsl.Catch#getAction() - * @see #getCatch() - * @generated - */ - EReference getCatch_Action(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Action Action}'. - * - * - * @return the meta object for class 'Action'. - * @see in.handyman.dsl.Action - * @generated - */ - EClass getAction(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Action#getName Name}'. - * - * - * @return the meta object for the attribute 'Name'. - * @see in.handyman.dsl.Action#getName() - * @see #getAction() - * @generated - */ - EAttribute getAction_Name(); - - /** - * Returns the meta object for the containment reference '{@link in.handyman.dsl.Action#getCondition Condition}'. - * - * - * @return the meta object for the containment reference 'Condition'. - * @see in.handyman.dsl.Action#getCondition() - * @see #getAction() - * @generated - */ - EReference getAction_Condition(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Spawnprocess Spawnprocess}'. - * - * - * @return the meta object for class 'Spawnprocess'. - * @see in.handyman.dsl.Spawnprocess - * @generated - */ - EClass getSpawnprocess(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Spawnprocess#getTarget Target}'. - * - * - * @return the meta object for the attribute 'Target'. - * @see in.handyman.dsl.Spawnprocess#getTarget() - * @see #getSpawnprocess() - * @generated - */ - EAttribute getSpawnprocess_Target(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Spawnprocess#getSource Source}'. - * - * - * @return the meta object for the attribute 'Source'. - * @see in.handyman.dsl.Spawnprocess#getSource() - * @see #getSpawnprocess() - * @generated - */ - EAttribute getSpawnprocess_Source(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Dogleg Dogleg}'. - * - * - * @return the meta object for class 'Dogleg'. - * @see in.handyman.dsl.Dogleg - * @generated - */ - EClass getDogleg(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Dogleg#getInheritContext Inherit Context}'. - * - * - * @return the meta object for the attribute 'Inherit Context'. - * @see in.handyman.dsl.Dogleg#getInheritContext() - * @see #getDogleg() - * @generated - */ - EAttribute getDogleg_InheritContext(); - - /** - * Returns the meta object for the containment reference list '{@link in.handyman.dsl.Dogleg#getProcessList Process List}'. - * - * - * @return the meta object for the containment reference list 'Process List'. - * @see in.handyman.dsl.Dogleg#getProcessList() - * @see #getDogleg() - * @generated - */ - EReference getDogleg_ProcessList(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.ExecJava Exec Java}'. - * - * - * @return the meta object for class 'Exec Java'. - * @see in.handyman.dsl.ExecJava - * @generated - */ - EClass getExecJava(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.ExecJava#getClassFqn Class Fqn}'. - * - * - * @return the meta object for the attribute 'Class Fqn'. - * @see in.handyman.dsl.ExecJava#getClassFqn() - * @see #getExecJava() - * @generated - */ - EAttribute getExecJava_ClassFqn(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.ExecJava#getDbSrc Db Src}'. - * - * - * @return the meta object for the attribute 'Db Src'. - * @see in.handyman.dsl.ExecJava#getDbSrc() - * @see #getExecJava() - * @generated - */ - EAttribute getExecJava_DbSrc(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.ExecJava#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.ExecJava#getValue() - * @see #getExecJava() - * @generated - */ - EAttribute getExecJava_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.FirebaseDatabasePut Firebase Database Put}'. - * - * - * @return the meta object for class 'Firebase Database Put'. - * @see in.handyman.dsl.FirebaseDatabasePut - * @generated - */ - EClass getFirebaseDatabasePut(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FirebaseDatabasePut#getUrl Url}'. - * - * - * @return the meta object for the attribute 'Url'. - * @see in.handyman.dsl.FirebaseDatabasePut#getUrl() - * @see #getFirebaseDatabasePut() - * @generated - */ - EAttribute getFirebaseDatabasePut_Url(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FirebaseDatabasePut#getFbjson Fbjson}'. - * - * - * @return the meta object for the attribute 'Fbjson'. - * @see in.handyman.dsl.FirebaseDatabasePut#getFbjson() - * @see #getFirebaseDatabasePut() - * @generated - */ - EAttribute getFirebaseDatabasePut_Fbjson(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FirebaseDatabasePut#getGroupPath Group Path}'. - * - * - * @return the meta object for the attribute 'Group Path'. - * @see in.handyman.dsl.FirebaseDatabasePut#getGroupPath() - * @see #getFirebaseDatabasePut() - * @generated - */ - EAttribute getFirebaseDatabasePut_GroupPath(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FirebaseDatabasePut#getDbSrc Db Src}'. - * - * - * @return the meta object for the attribute 'Db Src'. - * @see in.handyman.dsl.FirebaseDatabasePut#getDbSrc() - * @see #getFirebaseDatabasePut() - * @generated - */ - EAttribute getFirebaseDatabasePut_DbSrc(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FirebaseDatabasePut#getClassFqn Class Fqn}'. - * - * - * @return the meta object for the attribute 'Class Fqn'. - * @see in.handyman.dsl.FirebaseDatabasePut#getClassFqn() - * @see #getFirebaseDatabasePut() - * @generated - */ - EAttribute getFirebaseDatabasePut_ClassFqn(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FirebaseDatabasePut#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.FirebaseDatabasePut#getValue() - * @see #getFirebaseDatabasePut() - * @generated - */ - EAttribute getFirebaseDatabasePut_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.FirebaseReactiveNotification Firebase Reactive Notification}'. - * - * - * @return the meta object for class 'Firebase Reactive Notification'. - * @see in.handyman.dsl.FirebaseReactiveNotification - * @generated - */ - EClass getFirebaseReactiveNotification(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FirebaseReactiveNotification#getUrl Url}'. - * - * - * @return the meta object for the attribute 'Url'. - * @see in.handyman.dsl.FirebaseReactiveNotification#getUrl() - * @see #getFirebaseReactiveNotification() - * @generated - */ - EAttribute getFirebaseReactiveNotification_Url(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FirebaseReactiveNotification#getFbjson Fbjson}'. - * - * - * @return the meta object for the attribute 'Fbjson'. - * @see in.handyman.dsl.FirebaseReactiveNotification#getFbjson() - * @see #getFirebaseReactiveNotification() - * @generated - */ - EAttribute getFirebaseReactiveNotification_Fbjson(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FirebaseReactiveNotification#getGroupPath Group Path}'. - * - * - * @return the meta object for the attribute 'Group Path'. - * @see in.handyman.dsl.FirebaseReactiveNotification#getGroupPath() - * @see #getFirebaseReactiveNotification() - * @generated - */ - EAttribute getFirebaseReactiveNotification_GroupPath(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FirebaseReactiveNotification#getClassFqn Class Fqn}'. - * - * - * @return the meta object for the attribute 'Class Fqn'. - * @see in.handyman.dsl.FirebaseReactiveNotification#getClassFqn() - * @see #getFirebaseReactiveNotification() - * @generated - */ - EAttribute getFirebaseReactiveNotification_ClassFqn(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FirebaseReactiveNotification#getDbSrc Db Src}'. - * - * - * @return the meta object for the attribute 'Db Src'. - * @see in.handyman.dsl.FirebaseReactiveNotification#getDbSrc() - * @see #getFirebaseReactiveNotification() - * @generated - */ - EAttribute getFirebaseReactiveNotification_DbSrc(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.SmsLeadSms Sms Lead Sms}'. - * - * - * @return the meta object for class 'Sms Lead Sms'. - * @see in.handyman.dsl.SmsLeadSms - * @generated - */ - EClass getSmsLeadSms(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SmsLeadSms#getUrl Url}'. - * - * - * @return the meta object for the attribute 'Url'. - * @see in.handyman.dsl.SmsLeadSms#getUrl() - * @see #getSmsLeadSms() - * @generated - */ - EAttribute getSmsLeadSms_Url(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SmsLeadSms#getSender Sender}'. - * - * - * @return the meta object for the attribute 'Sender'. - * @see in.handyman.dsl.SmsLeadSms#getSender() - * @see #getSmsLeadSms() - * @generated - */ - EAttribute getSmsLeadSms_Sender(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SmsLeadSms#getAccount Account}'. - * - * - * @return the meta object for the attribute 'Account'. - * @see in.handyman.dsl.SmsLeadSms#getAccount() - * @see #getSmsLeadSms() - * @generated - */ - EAttribute getSmsLeadSms_Account(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SmsLeadSms#getPrivateKey Private Key}'. - * - * - * @return the meta object for the attribute 'Private Key'. - * @see in.handyman.dsl.SmsLeadSms#getPrivateKey() - * @see #getSmsLeadSms() - * @generated - */ - EAttribute getSmsLeadSms_PrivateKey(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SmsLeadSms#getDbSrc Db Src}'. - * - * - * @return the meta object for the attribute 'Db Src'. - * @see in.handyman.dsl.SmsLeadSms#getDbSrc() - * @see #getSmsLeadSms() - * @generated - */ - EAttribute getSmsLeadSms_DbSrc(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SmsLeadSms#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.SmsLeadSms#getValue() - * @see #getSmsLeadSms() - * @generated - */ - EAttribute getSmsLeadSms_Value(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SmsLeadSms#getDryrunNumber Dryrun Number}'. - * - * - * @return the meta object for the attribute 'Dryrun Number'. - * @see in.handyman.dsl.SmsLeadSms#getDryrunNumber() - * @see #getSmsLeadSms() - * @generated - */ - EAttribute getSmsLeadSms_DryrunNumber(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Abort Abort}'. - * - * - * @return the meta object for class 'Abort'. - * @see in.handyman.dsl.Abort - * @generated - */ - EClass getAbort(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Abort#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.Abort#getValue() - * @see #getAbort() - * @generated - */ - EAttribute getAbort_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.GooglecontactSelectAll Googlecontact Select All}'. - * - * - * @return the meta object for class 'Googlecontact Select All'. - * @see in.handyman.dsl.GooglecontactSelectAll - * @generated - */ - EClass getGooglecontactSelectAll(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactSelectAll#getAccount Account}'. - * - * - * @return the meta object for the attribute 'Account'. - * @see in.handyman.dsl.GooglecontactSelectAll#getAccount() - * @see #getGooglecontactSelectAll() - * @generated - */ - EAttribute getGooglecontactSelectAll_Account(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactSelectAll#getPrivateKey Private Key}'. - * - * - * @return the meta object for the attribute 'Private Key'. - * @see in.handyman.dsl.GooglecontactSelectAll#getPrivateKey() - * @see #getGooglecontactSelectAll() - * @generated - */ - EAttribute getGooglecontactSelectAll_PrivateKey(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactSelectAll#getPtwelveFile Ptwelve File}'. - * - * - * @return the meta object for the attribute 'Ptwelve File'. - * @see in.handyman.dsl.GooglecontactSelectAll#getPtwelveFile() - * @see #getGooglecontactSelectAll() - * @generated - */ - EAttribute getGooglecontactSelectAll_PtwelveFile(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactSelectAll#getProject Project}'. - * - * - * @return the meta object for the attribute 'Project'. - * @see in.handyman.dsl.GooglecontactSelectAll#getProject() - * @see #getGooglecontactSelectAll() - * @generated - */ - EAttribute getGooglecontactSelectAll_Project(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactSelectAll#getImpersonatedUser Impersonated User}'. - * - * - * @return the meta object for the attribute 'Impersonated User'. - * @see in.handyman.dsl.GooglecontactSelectAll#getImpersonatedUser() - * @see #getGooglecontactSelectAll() - * @generated - */ - EAttribute getGooglecontactSelectAll_ImpersonatedUser(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactSelectAll#getDbSrc Db Src}'. - * - * - * @return the meta object for the attribute 'Db Src'. - * @see in.handyman.dsl.GooglecontactSelectAll#getDbSrc() - * @see #getGooglecontactSelectAll() - * @generated - */ - EAttribute getGooglecontactSelectAll_DbSrc(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactSelectAll#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.GooglecontactSelectAll#getValue() - * @see #getGooglecontactSelectAll() - * @generated - */ - EAttribute getGooglecontactSelectAll_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.SendMail Send Mail}'. - * - * - * @return the meta object for class 'Send Mail'. - * @see in.handyman.dsl.SendMail - * @generated - */ - EClass getSendMail(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SendMail#getPrivateKey Private Key}'. - * - * - * @return the meta object for the attribute 'Private Key'. - * @see in.handyman.dsl.SendMail#getPrivateKey() - * @see #getSendMail() - * @generated - */ - EAttribute getSendMail_PrivateKey(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SendMail#getImpersonatedUser Impersonated User}'. - * - * - * @return the meta object for the attribute 'Impersonated User'. - * @see in.handyman.dsl.SendMail#getImpersonatedUser() - * @see #getSendMail() - * @generated - */ - EAttribute getSendMail_ImpersonatedUser(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SendMail#getDbSrc Db Src}'. - * - * - * @return the meta object for the attribute 'Db Src'. - * @see in.handyman.dsl.SendMail#getDbSrc() - * @see #getSendMail() - * @generated - */ - EAttribute getSendMail_DbSrc(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SendMail#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.SendMail#getValue() - * @see #getSendMail() - * @generated - */ - EAttribute getSendMail_Value(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SendMail#getDryrunMail Dryrun Mail}'. - * - * - * @return the meta object for the attribute 'Dryrun Mail'. - * @see in.handyman.dsl.SendMail#getDryrunMail() - * @see #getSendMail() - * @generated - */ - EAttribute getSendMail_DryrunMail(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.GooglecontactPUT Googlecontact PUT}'. - * - * - * @return the meta object for class 'Googlecontact PUT'. - * @see in.handyman.dsl.GooglecontactPUT - * @generated - */ - EClass getGooglecontactPUT(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactPUT#getAccount Account}'. - * - * - * @return the meta object for the attribute 'Account'. - * @see in.handyman.dsl.GooglecontactPUT#getAccount() - * @see #getGooglecontactPUT() - * @generated - */ - EAttribute getGooglecontactPUT_Account(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactPUT#getPrivateKey Private Key}'. - * - * - * @return the meta object for the attribute 'Private Key'. - * @see in.handyman.dsl.GooglecontactPUT#getPrivateKey() - * @see #getGooglecontactPUT() - * @generated - */ - EAttribute getGooglecontactPUT_PrivateKey(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactPUT#getPtwelveFile Ptwelve File}'. - * - * - * @return the meta object for the attribute 'Ptwelve File'. - * @see in.handyman.dsl.GooglecontactPUT#getPtwelveFile() - * @see #getGooglecontactPUT() - * @generated - */ - EAttribute getGooglecontactPUT_PtwelveFile(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactPUT#getProject Project}'. - * - * - * @return the meta object for the attribute 'Project'. - * @see in.handyman.dsl.GooglecontactPUT#getProject() - * @see #getGooglecontactPUT() - * @generated - */ - EAttribute getGooglecontactPUT_Project(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactPUT#getImpersonatedUser Impersonated User}'. - * - * - * @return the meta object for the attribute 'Impersonated User'. - * @see in.handyman.dsl.GooglecontactPUT#getImpersonatedUser() - * @see #getGooglecontactPUT() - * @generated - */ - EAttribute getGooglecontactPUT_ImpersonatedUser(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactPUT#getDbSrc Db Src}'. - * - * - * @return the meta object for the attribute 'Db Src'. - * @see in.handyman.dsl.GooglecontactPUT#getDbSrc() - * @see #getGooglecontactPUT() - * @generated - */ - EAttribute getGooglecontactPUT_DbSrc(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecontactPUT#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.GooglecontactPUT#getValue() - * @see #getGooglecontactPUT() - * @generated - */ - EAttribute getGooglecontactPUT_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.GooglecalPUT Googlecal PUT}'. - * - * - * @return the meta object for class 'Googlecal PUT'. - * @see in.handyman.dsl.GooglecalPUT - * @generated - */ - EClass getGooglecalPUT(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecalPUT#getAccount Account}'. - * - * - * @return the meta object for the attribute 'Account'. - * @see in.handyman.dsl.GooglecalPUT#getAccount() - * @see #getGooglecalPUT() - * @generated - */ - EAttribute getGooglecalPUT_Account(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecalPUT#getPrivateKey Private Key}'. - * - * - * @return the meta object for the attribute 'Private Key'. - * @see in.handyman.dsl.GooglecalPUT#getPrivateKey() - * @see #getGooglecalPUT() - * @generated - */ - EAttribute getGooglecalPUT_PrivateKey(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecalPUT#getPtwelveFile Ptwelve File}'. - * - * - * @return the meta object for the attribute 'Ptwelve File'. - * @see in.handyman.dsl.GooglecalPUT#getPtwelveFile() - * @see #getGooglecalPUT() - * @generated - */ - EAttribute getGooglecalPUT_PtwelveFile(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecalPUT#getProject Project}'. - * - * - * @return the meta object for the attribute 'Project'. - * @see in.handyman.dsl.GooglecalPUT#getProject() - * @see #getGooglecalPUT() - * @generated - */ - EAttribute getGooglecalPUT_Project(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecalPUT#getImpersonatedUser Impersonated User}'. - * - * - * @return the meta object for the attribute 'Impersonated User'. - * @see in.handyman.dsl.GooglecalPUT#getImpersonatedUser() - * @see #getGooglecalPUT() - * @generated - */ - EAttribute getGooglecalPUT_ImpersonatedUser(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecalPUT#getDbSrc Db Src}'. - * - * - * @return the meta object for the attribute 'Db Src'. - * @see in.handyman.dsl.GooglecalPUT#getDbSrc() - * @see #getGooglecalPUT() - * @generated - */ - EAttribute getGooglecalPUT_DbSrc(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.GooglecalPUT#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.GooglecalPUT#getValue() - * @see #getGooglecalPUT() - * @generated - */ - EAttribute getGooglecalPUT_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.FBCLead FBC Lead}'. - * - * - * @return the meta object for class 'FBC Lead'. - * @see in.handyman.dsl.FBCLead - * @generated - */ - EClass getFBCLead(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBCLead#getAccessToken Access Token}'. - * - * - * @return the meta object for the attribute 'Access Token'. - * @see in.handyman.dsl.FBCLead#getAccessToken() - * @see #getFBCLead() - * @generated - */ - EAttribute getFBCLead_AccessToken(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBCLead#getAppSecret App Secret}'. - * - * - * @return the meta object for the attribute 'App Secret'. - * @see in.handyman.dsl.FBCLead#getAppSecret() - * @see #getFBCLead() - * @generated - */ - EAttribute getFBCLead_AppSecret(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBCLead#getAccountId Account Id}'. - * - * - * @return the meta object for the attribute 'Account Id'. - * @see in.handyman.dsl.FBCLead#getAccountId() - * @see #getFBCLead() - * @generated - */ - EAttribute getFBCLead_AccountId(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBCLead#getCampaignId Campaign Id}'. - * - * - * @return the meta object for the attribute 'Campaign Id'. - * @see in.handyman.dsl.FBCLead#getCampaignId() - * @see #getFBCLead() - * @generated - */ - EAttribute getFBCLead_CampaignId(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBCLead#getTarget Target}'. - * - * - * @return the meta object for the attribute 'Target'. - * @see in.handyman.dsl.FBCLead#getTarget() - * @see #getFBCLead() - * @generated - */ - EAttribute getFBCLead_Target(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBCLead#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.FBCLead#getValue() - * @see #getFBCLead() - * @generated - */ - EAttribute getFBCLead_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.FBFormDownload FB Form Download}'. - * - * - * @return the meta object for class 'FB Form Download'. - * @see in.handyman.dsl.FBFormDownload - * @generated - */ - EClass getFBFormDownload(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBFormDownload#getAccessToken Access Token}'. - * - * - * @return the meta object for the attribute 'Access Token'. - * @see in.handyman.dsl.FBFormDownload#getAccessToken() - * @see #getFBFormDownload() - * @generated - */ - EAttribute getFBFormDownload_AccessToken(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBFormDownload#getAppSecret App Secret}'. - * - * - * @return the meta object for the attribute 'App Secret'. - * @see in.handyman.dsl.FBFormDownload#getAppSecret() - * @see #getFBFormDownload() - * @generated - */ - EAttribute getFBFormDownload_AppSecret(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBFormDownload#getAccountId Account Id}'. - * - * - * @return the meta object for the attribute 'Account Id'. - * @see in.handyman.dsl.FBFormDownload#getAccountId() - * @see #getFBFormDownload() - * @generated - */ - EAttribute getFBFormDownload_AccountId(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBFormDownload#getFormId Form Id}'. - * - * - * @return the meta object for the attribute 'Form Id'. - * @see in.handyman.dsl.FBFormDownload#getFormId() - * @see #getFBFormDownload() - * @generated - */ - EAttribute getFBFormDownload_FormId(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBFormDownload#getTarget Target}'. - * - * - * @return the meta object for the attribute 'Target'. - * @see in.handyman.dsl.FBFormDownload#getTarget() - * @see #getFBFormDownload() - * @generated - */ - EAttribute getFBFormDownload_Target(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.FBFormDownload#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.FBFormDownload#getValue() - * @see #getFBFormDownload() - * @generated - */ - EAttribute getFBFormDownload_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Dropfile Dropfile}'. - * - * - * @return the meta object for class 'Dropfile'. - * @see in.handyman.dsl.Dropfile - * @generated - */ - EClass getDropfile(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Dropfile#getTarget Target}'. - * - * - * @return the meta object for the attribute 'Target'. - * @see in.handyman.dsl.Dropfile#getTarget() - * @see #getDropfile() - * @generated - */ - EAttribute getDropfile_Target(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Doozle Doozle}'. - * - * - * @return the meta object for class 'Doozle'. - * @see in.handyman.dsl.Doozle - * @generated - */ - EClass getDoozle(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Doozle#getTarget Target}'. - * - * - * @return the meta object for the attribute 'Target'. - * @see in.handyman.dsl.Doozle#getTarget() - * @see #getDoozle() - * @generated - */ - EAttribute getDoozle_Target(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Doozle#getOn On}'. - * - * - * @return the meta object for the attribute 'On'. - * @see in.handyman.dsl.Doozle#getOn() - * @see #getDoozle() - * @generated - */ - EAttribute getDoozle_On(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Doozle#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.Doozle#getValue() - * @see #getDoozle() - * @generated - */ - EAttribute getDoozle_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Rest Rest}'. - * - * - * @return the meta object for class 'Rest'. - * @see in.handyman.dsl.Rest - * @generated - */ - EClass getRest(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getAuthtoken Authtoken}'. - * - * - * @return the meta object for the attribute 'Authtoken'. - * @see in.handyman.dsl.Rest#getAuthtoken() - * @see #getRest() - * @generated - */ - EAttribute getRest_Authtoken(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getUrl Url}'. - * - * - * @return the meta object for the attribute 'Url'. - * @see in.handyman.dsl.Rest#getUrl() - * @see #getRest() - * @generated - */ - EAttribute getRest_Url(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getMethod Method}'. - * - * - * @return the meta object for the attribute 'Method'. - * @see in.handyman.dsl.Rest#getMethod() - * @see #getRest() - * @generated - */ - EAttribute getRest_Method(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getResourcedatafrom Resourcedatafrom}'. - * - * - * @return the meta object for the attribute 'Resourcedatafrom'. - * @see in.handyman.dsl.Rest#getResourcedatafrom() - * @see #getRest() - * @generated - */ - EAttribute getRest_Resourcedatafrom(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getUrldata Urldata}'. - * - * - * @return the meta object for the attribute 'Urldata'. - * @see in.handyman.dsl.Rest#getUrldata() - * @see #getRest() - * @generated - */ - EAttribute getRest_Urldata(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getHeaderdatafrom Headerdatafrom}'. - * - * - * @return the meta object for the attribute 'Headerdatafrom'. - * @see in.handyman.dsl.Rest#getHeaderdatafrom() - * @see #getRest() - * @generated - */ - EAttribute getRest_Headerdatafrom(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getHeaderdata Headerdata}'. - * - * - * @return the meta object for the attribute 'Headerdata'. - * @see in.handyman.dsl.Rest#getHeaderdata() - * @see #getRest() - * @generated - */ - EAttribute getRest_Headerdata(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getPostdatafrom Postdatafrom}'. - * - * - * @return the meta object for the attribute 'Postdatafrom'. - * @see in.handyman.dsl.Rest#getPostdatafrom() - * @see #getRest() - * @generated - */ - EAttribute getRest_Postdatafrom(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getParentName Parent Name}'. - * - * - * @return the meta object for the attribute 'Parent Name'. - * @see in.handyman.dsl.Rest#getParentName() - * @see #getRest() - * @generated - */ - EAttribute getRest_ParentName(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getParentdata Parentdata}'. - * - * - * @return the meta object for the attribute 'Parentdata'. - * @see in.handyman.dsl.Rest#getParentdata() - * @see #getRest() - * @generated - */ - EAttribute getRest_Parentdata(); - - /** - * Returns the meta object for the containment reference list '{@link in.handyman.dsl.Rest#getParts Parts}'. - * - * - * @return the meta object for the containment reference list 'Parts'. - * @see in.handyman.dsl.Rest#getParts() - * @see #getRest() - * @generated - */ - EReference getRest_Parts(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getAckdatato Ackdatato}'. - * - * - * @return the meta object for the attribute 'Ackdatato'. - * @see in.handyman.dsl.Rest#getAckdatato() - * @see #getRest() - * @generated - */ - EAttribute getRest_Ackdatato(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Rest#getAckdata Ackdata}'. - * - * - * @return the meta object for the attribute 'Ackdata'. - * @see in.handyman.dsl.Rest#getAckdata() - * @see #getRest() - * @generated - */ - EAttribute getRest_Ackdata(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.RestPart Rest Part}'. - * - * - * @return the meta object for class 'Rest Part'. - * @see in.handyman.dsl.RestPart - * @generated - */ - EClass getRestPart(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.RestPart#getPartName Part Name}'. - * - * - * @return the meta object for the attribute 'Part Name'. - * @see in.handyman.dsl.RestPart#getPartName() - * @see #getRestPart() - * @generated - */ - EAttribute getRestPart_PartName(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.RestPart#getPartData Part Data}'. - * - * - * @return the meta object for the attribute 'Part Data'. - * @see in.handyman.dsl.RestPart#getPartData() - * @see #getRestPart() - * @generated - */ - EAttribute getRestPart_PartData(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.TrelloGET Trello GET}'. - * - * - * @return the meta object for class 'Trello GET'. - * @see in.handyman.dsl.TrelloGET - * @generated - */ - EClass getTrelloGET(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloGET#getAuthtoken Authtoken}'. - * - * - * @return the meta object for the attribute 'Authtoken'. - * @see in.handyman.dsl.TrelloGET#getAuthtoken() - * @see #getTrelloGET() - * @generated - */ - EAttribute getTrelloGET_Authtoken(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloGET#getKey Key}'. - * - * - * @return the meta object for the attribute 'Key'. - * @see in.handyman.dsl.TrelloGET#getKey() - * @see #getTrelloGET() - * @generated - */ - EAttribute getTrelloGET_Key(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloGET#getUseraccount Useraccount}'. - * - * - * @return the meta object for the attribute 'Useraccount'. - * @see in.handyman.dsl.TrelloGET#getUseraccount() - * @see #getTrelloGET() - * @generated - */ - EAttribute getTrelloGET_Useraccount(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloGET#getBoard Board}'. - * - * - * @return the meta object for the attribute 'Board'. - * @see in.handyman.dsl.TrelloGET#getBoard() - * @see #getTrelloGET() - * @generated - */ - EAttribute getTrelloGET_Board(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloGET#getTarget Target}'. - * - * - * @return the meta object for the attribute 'Target'. - * @see in.handyman.dsl.TrelloGET#getTarget() - * @see #getTrelloGET() - * @generated - */ - EAttribute getTrelloGET_Target(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloGET#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.TrelloGET#getValue() - * @see #getTrelloGET() - * @generated - */ - EAttribute getTrelloGET_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.TrelloPUT Trello PUT}'. - * - * - * @return the meta object for class 'Trello PUT'. - * @see in.handyman.dsl.TrelloPUT - * @generated - */ - EClass getTrelloPUT(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloPUT#getAuthtoken Authtoken}'. - * - * - * @return the meta object for the attribute 'Authtoken'. - * @see in.handyman.dsl.TrelloPUT#getAuthtoken() - * @see #getTrelloPUT() - * @generated - */ - EAttribute getTrelloPUT_Authtoken(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloPUT#getKey Key}'. - * - * - * @return the meta object for the attribute 'Key'. - * @see in.handyman.dsl.TrelloPUT#getKey() - * @see #getTrelloPUT() - * @generated - */ - EAttribute getTrelloPUT_Key(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloPUT#getUseraccount Useraccount}'. - * - * - * @return the meta object for the attribute 'Useraccount'. - * @see in.handyman.dsl.TrelloPUT#getUseraccount() - * @see #getTrelloPUT() - * @generated - */ - EAttribute getTrelloPUT_Useraccount(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloPUT#getList List}'. - * - * - * @return the meta object for the attribute 'List'. - * @see in.handyman.dsl.TrelloPUT#getList() - * @see #getTrelloPUT() - * @generated - */ - EAttribute getTrelloPUT_List(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloPUT#getSource Source}'. - * - * - * @return the meta object for the attribute 'Source'. - * @see in.handyman.dsl.TrelloPUT#getSource() - * @see #getTrelloPUT() - * @generated - */ - EAttribute getTrelloPUT_Source(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.TrelloPUT#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.TrelloPUT#getValue() - * @see #getTrelloPUT() - * @generated - */ - EAttribute getTrelloPUT_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Fetch Fetch}'. - * - * - * @return the meta object for class 'Fetch'. - * @see in.handyman.dsl.Fetch - * @generated - */ - EClass getFetch(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Fetch#getSource Source}'. - * - * - * @return the meta object for the attribute 'Source'. - * @see in.handyman.dsl.Fetch#getSource() - * @see #getFetch() - * @generated - */ - EAttribute getFetch_Source(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Fetch#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.Fetch#getValue() - * @see #getFetch() - * @generated - */ - EAttribute getFetch_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Callprocess Callprocess}'. - * - * - * @return the meta object for class 'Callprocess'. - * @see in.handyman.dsl.Callprocess - * @generated - */ - EClass getCallprocess(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Callprocess#getTarget Target}'. - * - * - * @return the meta object for the attribute 'Target'. - * @see in.handyman.dsl.Callprocess#getTarget() - * @see #getCallprocess() - * @generated - */ - EAttribute getCallprocess_Target(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Callprocess#getSource Source}'. - * - * - * @return the meta object for the attribute 'Source'. - * @see in.handyman.dsl.Callprocess#getSource() - * @see #getCallprocess() - * @generated - */ - EAttribute getCallprocess_Source(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Callprocess#getDatasource Datasource}'. - * - * - * @return the meta object for the attribute 'Datasource'. - * @see in.handyman.dsl.Callprocess#getDatasource() - * @see #getCallprocess() - * @generated - */ - EAttribute getCallprocess_Datasource(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Callprocess#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.Callprocess#getValue() - * @see #getCallprocess() - * @generated - */ - EAttribute getCallprocess_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Forkprocess Forkprocess}'. - * - * - * @return the meta object for class 'Forkprocess'. - * @see in.handyman.dsl.Forkprocess - * @generated - */ - EClass getForkprocess(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Forkprocess#getTarget Target}'. - * - * - * @return the meta object for the attribute 'Target'. - * @see in.handyman.dsl.Forkprocess#getTarget() - * @see #getForkprocess() - * @generated - */ - EAttribute getForkprocess_Target(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Forkprocess#getSource Source}'. - * - * - * @return the meta object for the attribute 'Source'. - * @see in.handyman.dsl.Forkprocess#getSource() - * @see #getForkprocess() - * @generated - */ - EAttribute getForkprocess_Source(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Forkprocess#getDatasource Datasource}'. - * - * - * @return the meta object for the attribute 'Datasource'. - * @see in.handyman.dsl.Forkprocess#getDatasource() - * @see #getForkprocess() - * @generated - */ - EAttribute getForkprocess_Datasource(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Forkprocess#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.Forkprocess#getValue() - * @see #getForkprocess() - * @generated - */ - EAttribute getForkprocess_Value(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Forkprocess#getForkBatchSize Fork Batch Size}'. - * - * - * @return the meta object for the attribute 'Fork Batch Size'. - * @see in.handyman.dsl.Forkprocess#getForkBatchSize() - * @see #getForkprocess() - * @generated - */ - EAttribute getForkprocess_ForkBatchSize(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Updatedaudit Updatedaudit}'. - * - * - * @return the meta object for class 'Updatedaudit'. - * @see in.handyman.dsl.Updatedaudit - * @generated - */ - EClass getUpdatedaudit(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Updatedaudit#getLogsink Logsink}'. - * - * - * @return the meta object for the attribute 'Logsink'. - * @see in.handyman.dsl.Updatedaudit#getLogsink() - * @see #getUpdatedaudit() - * @generated - */ - EAttribute getUpdatedaudit_Logsink(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Updatedaudit#getDatasource Datasource}'. - * - * - * @return the meta object for the attribute 'Datasource'. - * @see in.handyman.dsl.Updatedaudit#getDatasource() - * @see #getUpdatedaudit() - * @generated - */ - EAttribute getUpdatedaudit_Datasource(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Updatedaudit#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.Updatedaudit#getValue() - * @see #getUpdatedaudit() - * @generated - */ - EAttribute getUpdatedaudit_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.ClickSendSms Click Send Sms}'. - * - * - * @return the meta object for class 'Click Send Sms'. - * @see in.handyman.dsl.ClickSendSms - * @generated - */ - EClass getClickSendSms(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.ClickSendSms#getUserid Userid}'. - * - * - * @return the meta object for the attribute 'Userid'. - * @see in.handyman.dsl.ClickSendSms#getUserid() - * @see #getClickSendSms() - * @generated - */ - EAttribute getClickSendSms_Userid(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.ClickSendSms#getSecurityKey Security Key}'. - * - * - * @return the meta object for the attribute 'Security Key'. - * @see in.handyman.dsl.ClickSendSms#getSecurityKey() - * @see #getClickSendSms() - * @generated - */ - EAttribute getClickSendSms_SecurityKey(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.ClickSendSms#getTarget Target}'. - * - * - * @return the meta object for the attribute 'Target'. - * @see in.handyman.dsl.ClickSendSms#getTarget() - * @see #getClickSendSms() - * @generated - */ - EAttribute getClickSendSms_Target(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.ClickSendSms#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.ClickSendSms#getValue() - * @see #getClickSendSms() - * @generated - */ - EAttribute getClickSendSms_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.SlackPUT Slack PUT}'. - * - * - * @return the meta object for class 'Slack PUT'. - * @see in.handyman.dsl.SlackPUT - * @generated - */ - EClass getSlackPUT(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SlackPUT#getTeam Team}'. - * - * - * @return the meta object for the attribute 'Team'. - * @see in.handyman.dsl.SlackPUT#getTeam() - * @see #getSlackPUT() - * @generated - */ - EAttribute getSlackPUT_Team(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SlackPUT#getChannel Channel}'. - * - * - * @return the meta object for the attribute 'Channel'. - * @see in.handyman.dsl.SlackPUT#getChannel() - * @see #getSlackPUT() - * @generated - */ - EAttribute getSlackPUT_Channel(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.SlackPUT#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.SlackPUT#getValue() - * @see #getSlackPUT() - * @generated - */ - EAttribute getSlackPUT_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Copydata Copydata}'. - * - * - * @return the meta object for class 'Copydata'. - * @see in.handyman.dsl.Copydata - * @generated - */ - EClass getCopydata(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Copydata#getSource Source}'. - * - * - * @return the meta object for the attribute 'Source'. - * @see in.handyman.dsl.Copydata#getSource() - * @see #getCopydata() - * @generated - */ - EAttribute getCopydata_Source(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Copydata#getTo To}'. - * - * - * @return the meta object for the attribute 'To'. - * @see in.handyman.dsl.Copydata#getTo() - * @see #getCopydata() - * @generated - */ - EAttribute getCopydata_To(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Copydata#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.Copydata#getValue() - * @see #getCopydata() - * @generated - */ - EAttribute getCopydata_Value(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Copydata#getWriteThreadCount Write Thread Count}'. - * - * - * @return the meta object for the attribute 'Write Thread Count'. - * @see in.handyman.dsl.Copydata#getWriteThreadCount() - * @see #getCopydata() - * @generated - */ - EAttribute getCopydata_WriteThreadCount(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Copydata#getFetchBatchSize Fetch Batch Size}'. - * - * - * @return the meta object for the attribute 'Fetch Batch Size'. - * @see in.handyman.dsl.Copydata#getFetchBatchSize() - * @see #getCopydata() - * @generated - */ - EAttribute getCopydata_FetchBatchSize(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Copydata#getWriteBatchSize Write Batch Size}'. - * - * - * @return the meta object for the attribute 'Write Batch Size'. - * @see in.handyman.dsl.Copydata#getWriteBatchSize() - * @see #getCopydata() - * @generated - */ - EAttribute getCopydata_WriteBatchSize(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.WriteCsv Write Csv}'. - * - * - * @return the meta object for class 'Write Csv'. - * @see in.handyman.dsl.WriteCsv - * @generated - */ - EClass getWriteCsv(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.WriteCsv#getSource Source}'. - * - * - * @return the meta object for the attribute 'Source'. - * @see in.handyman.dsl.WriteCsv#getSource() - * @see #getWriteCsv() - * @generated - */ - EAttribute getWriteCsv_Source(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.WriteCsv#getTo To}'. - * - * - * @return the meta object for the attribute 'To'. - * @see in.handyman.dsl.WriteCsv#getTo() - * @see #getWriteCsv() - * @generated - */ - EAttribute getWriteCsv_To(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.WriteCsv#getDelim Delim}'. - * - * - * @return the meta object for the attribute 'Delim'. - * @see in.handyman.dsl.WriteCsv#getDelim() - * @see #getWriteCsv() - * @generated - */ - EAttribute getWriteCsv_Delim(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.WriteCsv#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.WriteCsv#getValue() - * @see #getWriteCsv() - * @generated - */ - EAttribute getWriteCsv_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.LoadCsv Load Csv}'. - * - * - * @return the meta object for class 'Load Csv'. - * @see in.handyman.dsl.LoadCsv - * @generated - */ - EClass getLoadCsv(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.LoadCsv#getSource Source}'. - * - * - * @return the meta object for the attribute 'Source'. - * @see in.handyman.dsl.LoadCsv#getSource() - * @see #getLoadCsv() - * @generated - */ - EAttribute getLoadCsv_Source(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.LoadCsv#getTo To}'. - * - * - * @return the meta object for the attribute 'To'. - * @see in.handyman.dsl.LoadCsv#getTo() - * @see #getLoadCsv() - * @generated - */ - EAttribute getLoadCsv_To(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.LoadCsv#getDelim Delim}'. - * - * - * @return the meta object for the attribute 'Delim'. - * @see in.handyman.dsl.LoadCsv#getDelim() - * @see #getLoadCsv() - * @generated - */ - EAttribute getLoadCsv_Delim(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.LoadCsv#getFetchBatchSize Fetch Batch Size}'. - * - * - * @return the meta object for the attribute 'Fetch Batch Size'. - * @see in.handyman.dsl.LoadCsv#getFetchBatchSize() - * @see #getLoadCsv() - * @generated - */ - EAttribute getLoadCsv_FetchBatchSize(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.LoadCsv#getWriteBatchSize Write Batch Size}'. - * - * - * @return the meta object for the attribute 'Write Batch Size'. - * @see in.handyman.dsl.LoadCsv#getWriteBatchSize() - * @see #getLoadCsv() - * @generated - */ - EAttribute getLoadCsv_WriteBatchSize(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.LoadCsv#getValue Value}'. - * - * - * @return the meta object for the attribute 'Value'. - * @see in.handyman.dsl.LoadCsv#getValue() - * @see #getLoadCsv() - * @generated - */ - EAttribute getLoadCsv_Value(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.LoadCsv#getWriteThreadCount Write Thread Count}'. - * - * - * @return the meta object for the attribute 'Write Thread Count'. - * @see in.handyman.dsl.LoadCsv#getWriteThreadCount() - * @see #getLoadCsv() - * @generated - */ - EAttribute getLoadCsv_WriteThreadCount(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Transform Transform}'. - * - * - * @return the meta object for class 'Transform'. - * @see in.handyman.dsl.Transform - * @generated - */ - EClass getTransform(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Transform#getOn On}'. - * - * - * @return the meta object for the attribute 'On'. - * @see in.handyman.dsl.Transform#getOn() - * @see #getTransform() - * @generated - */ - EAttribute getTransform_On(); - - /** - * Returns the meta object for the attribute list '{@link in.handyman.dsl.Transform#getValue Value}'. - * - * - * @return the meta object for the attribute list 'Value'. - * @see in.handyman.dsl.Transform#getValue() - * @see #getTransform() - * @generated - */ - EAttribute getTransform_Value(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.StartProcess Start Process}'. - * - * - * @return the meta object for class 'Start Process'. - * @see in.handyman.dsl.StartProcess - * @generated - */ - EClass getStartProcess(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.StartProcess#getName Name}'. - * - * - * @return the meta object for the attribute 'Name'. - * @see in.handyman.dsl.StartProcess#getName() - * @see #getStartProcess() - * @generated - */ - EAttribute getStartProcess_Name(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.StartProcess#getTarget Target}'. - * - * - * @return the meta object for the attribute 'Target'. - * @see in.handyman.dsl.StartProcess#getTarget() - * @see #getStartProcess() - * @generated - */ - EAttribute getStartProcess_Target(); - - /** - * Returns the meta object for class '{@link in.handyman.dsl.Expression Expression}'. - * - * - * @return the meta object for class 'Expression'. - * @see in.handyman.dsl.Expression - * @generated - */ - EClass getExpression(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Expression#getLhs Lhs}'. - * - * - * @return the meta object for the attribute 'Lhs'. - * @see in.handyman.dsl.Expression#getLhs() - * @see #getExpression() - * @generated - */ - EAttribute getExpression_Lhs(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Expression#getOperator Operator}'. - * - * - * @return the meta object for the attribute 'Operator'. - * @see in.handyman.dsl.Expression#getOperator() - * @see #getExpression() - * @generated - */ - EAttribute getExpression_Operator(); - - /** - * Returns the meta object for the attribute '{@link in.handyman.dsl.Expression#getRhs Rhs}'. - * - * - * @return the meta object for the attribute 'Rhs'. - * @see in.handyman.dsl.Expression#getRhs() - * @see #getExpression() - * @generated - */ - EAttribute getExpression_Rhs(); - - /** - * Returns the factory that creates the instances of the model. - * - * - * @return the factory that creates the instances of the model. - * @generated - */ - DslFactory getDslFactory(); - - /** - * - * Defines literals for the meta objects that represent - *
    - *
  • each class,
  • - *
  • each feature of each class,
  • - *
  • each enum,
  • - *
  • and each data type
  • - *
- * - * @generated - */ - interface Literals - { - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.ProcessImpl Process}' class. - * - * - * @see in.handyman.dsl.impl.ProcessImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getProcess() - * @generated - */ - EClass PROCESS = eINSTANCE.getProcess(); - - /** - * The meta object literal for the 'Name' attribute feature. - * - * - * @generated - */ - EAttribute PROCESS__NAME = eINSTANCE.getProcess_Name(); - - /** - * The meta object literal for the 'Try' containment reference feature. - * - * - * @generated - */ - EReference PROCESS__TRY = eINSTANCE.getProcess_Try(); - - /** - * The meta object literal for the 'Catch' containment reference feature. - * - * - * @generated - */ - EReference PROCESS__CATCH = eINSTANCE.getProcess_Catch(); - - /** - * The meta object literal for the 'Finally' containment reference feature. - * - * - * @generated - */ - EReference PROCESS__FINALLY = eINSTANCE.getProcess_Finally(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.TryImpl Try}' class. - * - * - * @see in.handyman.dsl.impl.TryImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getTry() - * @generated - */ - EClass TRY = eINSTANCE.getTry(); - - /** - * The meta object literal for the 'Name' attribute feature. - * - * - * @generated - */ - EAttribute TRY__NAME = eINSTANCE.getTry_Name(); - - /** - * The meta object literal for the 'Action' containment reference list feature. - * - * - * @generated - */ - EReference TRY__ACTION = eINSTANCE.getTry_Action(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.FinallyImpl Finally}' class. - * - * - * @see in.handyman.dsl.impl.FinallyImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFinally() - * @generated - */ - EClass FINALLY = eINSTANCE.getFinally(); - - /** - * The meta object literal for the 'Name' attribute feature. - * - * - * @generated - */ - EAttribute FINALLY__NAME = eINSTANCE.getFinally_Name(); - - /** - * The meta object literal for the 'Action' containment reference list feature. - * - * - * @generated - */ - EReference FINALLY__ACTION = eINSTANCE.getFinally_Action(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.CatchImpl Catch}' class. - * - * - * @see in.handyman.dsl.impl.CatchImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getCatch() - * @generated - */ - EClass CATCH = eINSTANCE.getCatch(); - - /** - * The meta object literal for the 'Name' attribute feature. - * - * - * @generated - */ - EAttribute CATCH__NAME = eINSTANCE.getCatch_Name(); - - /** - * The meta object literal for the 'Action' containment reference list feature. - * - * - * @generated - */ - EReference CATCH__ACTION = eINSTANCE.getCatch_Action(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.ActionImpl Action}' class. - * - * - * @see in.handyman.dsl.impl.ActionImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getAction() - * @generated - */ - EClass ACTION = eINSTANCE.getAction(); - - /** - * The meta object literal for the 'Name' attribute feature. - * - * - * @generated - */ - EAttribute ACTION__NAME = eINSTANCE.getAction_Name(); - - /** - * The meta object literal for the 'Condition' containment reference feature. - * - * - * @generated - */ - EReference ACTION__CONDITION = eINSTANCE.getAction_Condition(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.SpawnprocessImpl Spawnprocess}' class. - * - * - * @see in.handyman.dsl.impl.SpawnprocessImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getSpawnprocess() - * @generated - */ - EClass SPAWNPROCESS = eINSTANCE.getSpawnprocess(); - - /** - * The meta object literal for the 'Target' attribute feature. - * - * - * @generated - */ - EAttribute SPAWNPROCESS__TARGET = eINSTANCE.getSpawnprocess_Target(); - - /** - * The meta object literal for the 'Source' attribute feature. - * - * - * @generated - */ - EAttribute SPAWNPROCESS__SOURCE = eINSTANCE.getSpawnprocess_Source(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.DoglegImpl Dogleg}' class. - * - * - * @see in.handyman.dsl.impl.DoglegImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getDogleg() - * @generated - */ - EClass DOGLEG = eINSTANCE.getDogleg(); - - /** - * The meta object literal for the 'Inherit Context' attribute feature. - * - * - * @generated - */ - EAttribute DOGLEG__INHERIT_CONTEXT = eINSTANCE.getDogleg_InheritContext(); - - /** - * The meta object literal for the 'Process List' containment reference list feature. - * - * - * @generated - */ - EReference DOGLEG__PROCESS_LIST = eINSTANCE.getDogleg_ProcessList(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.ExecJavaImpl Exec Java}' class. - * - * - * @see in.handyman.dsl.impl.ExecJavaImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getExecJava() - * @generated - */ - EClass EXEC_JAVA = eINSTANCE.getExecJava(); - - /** - * The meta object literal for the 'Class Fqn' attribute feature. - * - * - * @generated - */ - EAttribute EXEC_JAVA__CLASS_FQN = eINSTANCE.getExecJava_ClassFqn(); - - /** - * The meta object literal for the 'Db Src' attribute feature. - * - * - * @generated - */ - EAttribute EXEC_JAVA__DB_SRC = eINSTANCE.getExecJava_DbSrc(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute EXEC_JAVA__VALUE = eINSTANCE.getExecJava_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.FirebaseDatabasePutImpl Firebase Database Put}' class. - * - * - * @see in.handyman.dsl.impl.FirebaseDatabasePutImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFirebaseDatabasePut() - * @generated - */ - EClass FIREBASE_DATABASE_PUT = eINSTANCE.getFirebaseDatabasePut(); - - /** - * The meta object literal for the 'Url' attribute feature. - * - * - * @generated - */ - EAttribute FIREBASE_DATABASE_PUT__URL = eINSTANCE.getFirebaseDatabasePut_Url(); - - /** - * The meta object literal for the 'Fbjson' attribute feature. - * - * - * @generated - */ - EAttribute FIREBASE_DATABASE_PUT__FBJSON = eINSTANCE.getFirebaseDatabasePut_Fbjson(); - - /** - * The meta object literal for the 'Group Path' attribute feature. - * - * - * @generated - */ - EAttribute FIREBASE_DATABASE_PUT__GROUP_PATH = eINSTANCE.getFirebaseDatabasePut_GroupPath(); - - /** - * The meta object literal for the 'Db Src' attribute feature. - * - * - * @generated - */ - EAttribute FIREBASE_DATABASE_PUT__DB_SRC = eINSTANCE.getFirebaseDatabasePut_DbSrc(); - - /** - * The meta object literal for the 'Class Fqn' attribute feature. - * - * - * @generated - */ - EAttribute FIREBASE_DATABASE_PUT__CLASS_FQN = eINSTANCE.getFirebaseDatabasePut_ClassFqn(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute FIREBASE_DATABASE_PUT__VALUE = eINSTANCE.getFirebaseDatabasePut_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.FirebaseReactiveNotificationImpl Firebase Reactive Notification}' class. - * - * - * @see in.handyman.dsl.impl.FirebaseReactiveNotificationImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFirebaseReactiveNotification() - * @generated - */ - EClass FIREBASE_REACTIVE_NOTIFICATION = eINSTANCE.getFirebaseReactiveNotification(); - - /** - * The meta object literal for the 'Url' attribute feature. - * - * - * @generated - */ - EAttribute FIREBASE_REACTIVE_NOTIFICATION__URL = eINSTANCE.getFirebaseReactiveNotification_Url(); - - /** - * The meta object literal for the 'Fbjson' attribute feature. - * - * - * @generated - */ - EAttribute FIREBASE_REACTIVE_NOTIFICATION__FBJSON = eINSTANCE.getFirebaseReactiveNotification_Fbjson(); - - /** - * The meta object literal for the 'Group Path' attribute feature. - * - * - * @generated - */ - EAttribute FIREBASE_REACTIVE_NOTIFICATION__GROUP_PATH = eINSTANCE.getFirebaseReactiveNotification_GroupPath(); - - /** - * The meta object literal for the 'Class Fqn' attribute feature. - * - * - * @generated - */ - EAttribute FIREBASE_REACTIVE_NOTIFICATION__CLASS_FQN = eINSTANCE.getFirebaseReactiveNotification_ClassFqn(); - - /** - * The meta object literal for the 'Db Src' attribute feature. - * - * - * @generated - */ - EAttribute FIREBASE_REACTIVE_NOTIFICATION__DB_SRC = eINSTANCE.getFirebaseReactiveNotification_DbSrc(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.SmsLeadSmsImpl Sms Lead Sms}' class. - * - * - * @see in.handyman.dsl.impl.SmsLeadSmsImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getSmsLeadSms() - * @generated - */ - EClass SMS_LEAD_SMS = eINSTANCE.getSmsLeadSms(); - - /** - * The meta object literal for the 'Url' attribute feature. - * - * - * @generated - */ - EAttribute SMS_LEAD_SMS__URL = eINSTANCE.getSmsLeadSms_Url(); - - /** - * The meta object literal for the 'Sender' attribute feature. - * - * - * @generated - */ - EAttribute SMS_LEAD_SMS__SENDER = eINSTANCE.getSmsLeadSms_Sender(); - - /** - * The meta object literal for the 'Account' attribute feature. - * - * - * @generated - */ - EAttribute SMS_LEAD_SMS__ACCOUNT = eINSTANCE.getSmsLeadSms_Account(); - - /** - * The meta object literal for the 'Private Key' attribute feature. - * - * - * @generated - */ - EAttribute SMS_LEAD_SMS__PRIVATE_KEY = eINSTANCE.getSmsLeadSms_PrivateKey(); - - /** - * The meta object literal for the 'Db Src' attribute feature. - * - * - * @generated - */ - EAttribute SMS_LEAD_SMS__DB_SRC = eINSTANCE.getSmsLeadSms_DbSrc(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute SMS_LEAD_SMS__VALUE = eINSTANCE.getSmsLeadSms_Value(); - - /** - * The meta object literal for the 'Dryrun Number' attribute feature. - * - * - * @generated - */ - EAttribute SMS_LEAD_SMS__DRYRUN_NUMBER = eINSTANCE.getSmsLeadSms_DryrunNumber(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.AbortImpl Abort}' class. - * - * - * @see in.handyman.dsl.impl.AbortImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getAbort() - * @generated - */ - EClass ABORT = eINSTANCE.getAbort(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute ABORT__VALUE = eINSTANCE.getAbort_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.GooglecontactSelectAllImpl Googlecontact Select All}' class. - * - * - * @see in.handyman.dsl.impl.GooglecontactSelectAllImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getGooglecontactSelectAll() - * @generated - */ - EClass GOOGLECONTACT_SELECT_ALL = eINSTANCE.getGooglecontactSelectAll(); - - /** - * The meta object literal for the 'Account' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_SELECT_ALL__ACCOUNT = eINSTANCE.getGooglecontactSelectAll_Account(); - - /** - * The meta object literal for the 'Private Key' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_SELECT_ALL__PRIVATE_KEY = eINSTANCE.getGooglecontactSelectAll_PrivateKey(); - - /** - * The meta object literal for the 'Ptwelve File' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_SELECT_ALL__PTWELVE_FILE = eINSTANCE.getGooglecontactSelectAll_PtwelveFile(); - - /** - * The meta object literal for the 'Project' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_SELECT_ALL__PROJECT = eINSTANCE.getGooglecontactSelectAll_Project(); - - /** - * The meta object literal for the 'Impersonated User' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_SELECT_ALL__IMPERSONATED_USER = eINSTANCE.getGooglecontactSelectAll_ImpersonatedUser(); - - /** - * The meta object literal for the 'Db Src' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_SELECT_ALL__DB_SRC = eINSTANCE.getGooglecontactSelectAll_DbSrc(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_SELECT_ALL__VALUE = eINSTANCE.getGooglecontactSelectAll_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.SendMailImpl Send Mail}' class. - * - * - * @see in.handyman.dsl.impl.SendMailImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getSendMail() - * @generated - */ - EClass SEND_MAIL = eINSTANCE.getSendMail(); - - /** - * The meta object literal for the 'Private Key' attribute feature. - * - * - * @generated - */ - EAttribute SEND_MAIL__PRIVATE_KEY = eINSTANCE.getSendMail_PrivateKey(); - - /** - * The meta object literal for the 'Impersonated User' attribute feature. - * - * - * @generated - */ - EAttribute SEND_MAIL__IMPERSONATED_USER = eINSTANCE.getSendMail_ImpersonatedUser(); - - /** - * The meta object literal for the 'Db Src' attribute feature. - * - * - * @generated - */ - EAttribute SEND_MAIL__DB_SRC = eINSTANCE.getSendMail_DbSrc(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute SEND_MAIL__VALUE = eINSTANCE.getSendMail_Value(); - - /** - * The meta object literal for the 'Dryrun Mail' attribute feature. - * - * - * @generated - */ - EAttribute SEND_MAIL__DRYRUN_MAIL = eINSTANCE.getSendMail_DryrunMail(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.GooglecontactPUTImpl Googlecontact PUT}' class. - * - * - * @see in.handyman.dsl.impl.GooglecontactPUTImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getGooglecontactPUT() - * @generated - */ - EClass GOOGLECONTACT_PUT = eINSTANCE.getGooglecontactPUT(); - - /** - * The meta object literal for the 'Account' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_PUT__ACCOUNT = eINSTANCE.getGooglecontactPUT_Account(); - - /** - * The meta object literal for the 'Private Key' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_PUT__PRIVATE_KEY = eINSTANCE.getGooglecontactPUT_PrivateKey(); - - /** - * The meta object literal for the 'Ptwelve File' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_PUT__PTWELVE_FILE = eINSTANCE.getGooglecontactPUT_PtwelveFile(); - - /** - * The meta object literal for the 'Project' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_PUT__PROJECT = eINSTANCE.getGooglecontactPUT_Project(); - - /** - * The meta object literal for the 'Impersonated User' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_PUT__IMPERSONATED_USER = eINSTANCE.getGooglecontactPUT_ImpersonatedUser(); - - /** - * The meta object literal for the 'Db Src' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_PUT__DB_SRC = eINSTANCE.getGooglecontactPUT_DbSrc(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECONTACT_PUT__VALUE = eINSTANCE.getGooglecontactPUT_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.GooglecalPUTImpl Googlecal PUT}' class. - * - * - * @see in.handyman.dsl.impl.GooglecalPUTImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getGooglecalPUT() - * @generated - */ - EClass GOOGLECAL_PUT = eINSTANCE.getGooglecalPUT(); - - /** - * The meta object literal for the 'Account' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECAL_PUT__ACCOUNT = eINSTANCE.getGooglecalPUT_Account(); - - /** - * The meta object literal for the 'Private Key' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECAL_PUT__PRIVATE_KEY = eINSTANCE.getGooglecalPUT_PrivateKey(); - - /** - * The meta object literal for the 'Ptwelve File' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECAL_PUT__PTWELVE_FILE = eINSTANCE.getGooglecalPUT_PtwelveFile(); - - /** - * The meta object literal for the 'Project' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECAL_PUT__PROJECT = eINSTANCE.getGooglecalPUT_Project(); - - /** - * The meta object literal for the 'Impersonated User' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECAL_PUT__IMPERSONATED_USER = eINSTANCE.getGooglecalPUT_ImpersonatedUser(); - - /** - * The meta object literal for the 'Db Src' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECAL_PUT__DB_SRC = eINSTANCE.getGooglecalPUT_DbSrc(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute GOOGLECAL_PUT__VALUE = eINSTANCE.getGooglecalPUT_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.FBCLeadImpl FBC Lead}' class. - * - * - * @see in.handyman.dsl.impl.FBCLeadImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFBCLead() - * @generated - */ - EClass FBC_LEAD = eINSTANCE.getFBCLead(); - - /** - * The meta object literal for the 'Access Token' attribute feature. - * - * - * @generated - */ - EAttribute FBC_LEAD__ACCESS_TOKEN = eINSTANCE.getFBCLead_AccessToken(); - - /** - * The meta object literal for the 'App Secret' attribute feature. - * - * - * @generated - */ - EAttribute FBC_LEAD__APP_SECRET = eINSTANCE.getFBCLead_AppSecret(); - - /** - * The meta object literal for the 'Account Id' attribute feature. - * - * - * @generated - */ - EAttribute FBC_LEAD__ACCOUNT_ID = eINSTANCE.getFBCLead_AccountId(); - - /** - * The meta object literal for the 'Campaign Id' attribute feature. - * - * - * @generated - */ - EAttribute FBC_LEAD__CAMPAIGN_ID = eINSTANCE.getFBCLead_CampaignId(); - - /** - * The meta object literal for the 'Target' attribute feature. - * - * - * @generated - */ - EAttribute FBC_LEAD__TARGET = eINSTANCE.getFBCLead_Target(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute FBC_LEAD__VALUE = eINSTANCE.getFBCLead_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.FBFormDownloadImpl FB Form Download}' class. - * - * - * @see in.handyman.dsl.impl.FBFormDownloadImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFBFormDownload() - * @generated - */ - EClass FB_FORM_DOWNLOAD = eINSTANCE.getFBFormDownload(); - - /** - * The meta object literal for the 'Access Token' attribute feature. - * - * - * @generated - */ - EAttribute FB_FORM_DOWNLOAD__ACCESS_TOKEN = eINSTANCE.getFBFormDownload_AccessToken(); - - /** - * The meta object literal for the 'App Secret' attribute feature. - * - * - * @generated - */ - EAttribute FB_FORM_DOWNLOAD__APP_SECRET = eINSTANCE.getFBFormDownload_AppSecret(); - - /** - * The meta object literal for the 'Account Id' attribute feature. - * - * - * @generated - */ - EAttribute FB_FORM_DOWNLOAD__ACCOUNT_ID = eINSTANCE.getFBFormDownload_AccountId(); - - /** - * The meta object literal for the 'Form Id' attribute feature. - * - * - * @generated - */ - EAttribute FB_FORM_DOWNLOAD__FORM_ID = eINSTANCE.getFBFormDownload_FormId(); - - /** - * The meta object literal for the 'Target' attribute feature. - * - * - * @generated - */ - EAttribute FB_FORM_DOWNLOAD__TARGET = eINSTANCE.getFBFormDownload_Target(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute FB_FORM_DOWNLOAD__VALUE = eINSTANCE.getFBFormDownload_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.DropfileImpl Dropfile}' class. - * - * - * @see in.handyman.dsl.impl.DropfileImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getDropfile() - * @generated - */ - EClass DROPFILE = eINSTANCE.getDropfile(); - - /** - * The meta object literal for the 'Target' attribute feature. - * - * - * @generated - */ - EAttribute DROPFILE__TARGET = eINSTANCE.getDropfile_Target(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.DoozleImpl Doozle}' class. - * - * - * @see in.handyman.dsl.impl.DoozleImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getDoozle() - * @generated - */ - EClass DOOZLE = eINSTANCE.getDoozle(); - - /** - * The meta object literal for the 'Target' attribute feature. - * - * - * @generated - */ - EAttribute DOOZLE__TARGET = eINSTANCE.getDoozle_Target(); - - /** - * The meta object literal for the 'On' attribute feature. - * - * - * @generated - */ - EAttribute DOOZLE__ON = eINSTANCE.getDoozle_On(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute DOOZLE__VALUE = eINSTANCE.getDoozle_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.RestImpl Rest}' class. - * - * - * @see in.handyman.dsl.impl.RestImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getRest() - * @generated - */ - EClass REST = eINSTANCE.getRest(); - - /** - * The meta object literal for the 'Authtoken' attribute feature. - * - * - * @generated - */ - EAttribute REST__AUTHTOKEN = eINSTANCE.getRest_Authtoken(); - - /** - * The meta object literal for the 'Url' attribute feature. - * - * - * @generated - */ - EAttribute REST__URL = eINSTANCE.getRest_Url(); - - /** - * The meta object literal for the 'Method' attribute feature. - * - * - * @generated - */ - EAttribute REST__METHOD = eINSTANCE.getRest_Method(); - - /** - * The meta object literal for the 'Resourcedatafrom' attribute feature. - * - * - * @generated - */ - EAttribute REST__RESOURCEDATAFROM = eINSTANCE.getRest_Resourcedatafrom(); - - /** - * The meta object literal for the 'Urldata' attribute feature. - * - * - * @generated - */ - EAttribute REST__URLDATA = eINSTANCE.getRest_Urldata(); - - /** - * The meta object literal for the 'Headerdatafrom' attribute feature. - * - * - * @generated - */ - EAttribute REST__HEADERDATAFROM = eINSTANCE.getRest_Headerdatafrom(); - - /** - * The meta object literal for the 'Headerdata' attribute feature. - * - * - * @generated - */ - EAttribute REST__HEADERDATA = eINSTANCE.getRest_Headerdata(); - - /** - * The meta object literal for the 'Postdatafrom' attribute feature. - * - * - * @generated - */ - EAttribute REST__POSTDATAFROM = eINSTANCE.getRest_Postdatafrom(); - - /** - * The meta object literal for the 'Parent Name' attribute feature. - * - * - * @generated - */ - EAttribute REST__PARENT_NAME = eINSTANCE.getRest_ParentName(); - - /** - * The meta object literal for the 'Parentdata' attribute feature. - * - * - * @generated - */ - EAttribute REST__PARENTDATA = eINSTANCE.getRest_Parentdata(); - - /** - * The meta object literal for the 'Parts' containment reference list feature. - * - * - * @generated - */ - EReference REST__PARTS = eINSTANCE.getRest_Parts(); - - /** - * The meta object literal for the 'Ackdatato' attribute feature. - * - * - * @generated - */ - EAttribute REST__ACKDATATO = eINSTANCE.getRest_Ackdatato(); - - /** - * The meta object literal for the 'Ackdata' attribute feature. - * - * - * @generated - */ - EAttribute REST__ACKDATA = eINSTANCE.getRest_Ackdata(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.RestPartImpl Rest Part}' class. - * - * - * @see in.handyman.dsl.impl.RestPartImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getRestPart() - * @generated - */ - EClass REST_PART = eINSTANCE.getRestPart(); - - /** - * The meta object literal for the 'Part Name' attribute feature. - * - * - * @generated - */ - EAttribute REST_PART__PART_NAME = eINSTANCE.getRestPart_PartName(); - - /** - * The meta object literal for the 'Part Data' attribute feature. - * - * - * @generated - */ - EAttribute REST_PART__PART_DATA = eINSTANCE.getRestPart_PartData(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.TrelloGETImpl Trello GET}' class. - * - * - * @see in.handyman.dsl.impl.TrelloGETImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getTrelloGET() - * @generated - */ - EClass TRELLO_GET = eINSTANCE.getTrelloGET(); - - /** - * The meta object literal for the 'Authtoken' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_GET__AUTHTOKEN = eINSTANCE.getTrelloGET_Authtoken(); - - /** - * The meta object literal for the 'Key' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_GET__KEY = eINSTANCE.getTrelloGET_Key(); - - /** - * The meta object literal for the 'Useraccount' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_GET__USERACCOUNT = eINSTANCE.getTrelloGET_Useraccount(); - - /** - * The meta object literal for the 'Board' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_GET__BOARD = eINSTANCE.getTrelloGET_Board(); - - /** - * The meta object literal for the 'Target' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_GET__TARGET = eINSTANCE.getTrelloGET_Target(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_GET__VALUE = eINSTANCE.getTrelloGET_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.TrelloPUTImpl Trello PUT}' class. - * - * - * @see in.handyman.dsl.impl.TrelloPUTImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getTrelloPUT() - * @generated - */ - EClass TRELLO_PUT = eINSTANCE.getTrelloPUT(); - - /** - * The meta object literal for the 'Authtoken' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_PUT__AUTHTOKEN = eINSTANCE.getTrelloPUT_Authtoken(); - - /** - * The meta object literal for the 'Key' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_PUT__KEY = eINSTANCE.getTrelloPUT_Key(); - - /** - * The meta object literal for the 'Useraccount' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_PUT__USERACCOUNT = eINSTANCE.getTrelloPUT_Useraccount(); - - /** - * The meta object literal for the 'List' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_PUT__LIST = eINSTANCE.getTrelloPUT_List(); - - /** - * The meta object literal for the 'Source' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_PUT__SOURCE = eINSTANCE.getTrelloPUT_Source(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute TRELLO_PUT__VALUE = eINSTANCE.getTrelloPUT_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.FetchImpl Fetch}' class. - * - * - * @see in.handyman.dsl.impl.FetchImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getFetch() - * @generated - */ - EClass FETCH = eINSTANCE.getFetch(); - - /** - * The meta object literal for the 'Source' attribute feature. - * - * - * @generated - */ - EAttribute FETCH__SOURCE = eINSTANCE.getFetch_Source(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute FETCH__VALUE = eINSTANCE.getFetch_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.CallprocessImpl Callprocess}' class. - * - * - * @see in.handyman.dsl.impl.CallprocessImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getCallprocess() - * @generated - */ - EClass CALLPROCESS = eINSTANCE.getCallprocess(); - - /** - * The meta object literal for the 'Target' attribute feature. - * - * - * @generated - */ - EAttribute CALLPROCESS__TARGET = eINSTANCE.getCallprocess_Target(); - - /** - * The meta object literal for the 'Source' attribute feature. - * - * - * @generated - */ - EAttribute CALLPROCESS__SOURCE = eINSTANCE.getCallprocess_Source(); - - /** - * The meta object literal for the 'Datasource' attribute feature. - * - * - * @generated - */ - EAttribute CALLPROCESS__DATASOURCE = eINSTANCE.getCallprocess_Datasource(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute CALLPROCESS__VALUE = eINSTANCE.getCallprocess_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.ForkprocessImpl Forkprocess}' class. - * - * - * @see in.handyman.dsl.impl.ForkprocessImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getForkprocess() - * @generated - */ - EClass FORKPROCESS = eINSTANCE.getForkprocess(); - - /** - * The meta object literal for the 'Target' attribute feature. - * - * - * @generated - */ - EAttribute FORKPROCESS__TARGET = eINSTANCE.getForkprocess_Target(); - - /** - * The meta object literal for the 'Source' attribute feature. - * - * - * @generated - */ - EAttribute FORKPROCESS__SOURCE = eINSTANCE.getForkprocess_Source(); - - /** - * The meta object literal for the 'Datasource' attribute feature. - * - * - * @generated - */ - EAttribute FORKPROCESS__DATASOURCE = eINSTANCE.getForkprocess_Datasource(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute FORKPROCESS__VALUE = eINSTANCE.getForkprocess_Value(); - - /** - * The meta object literal for the 'Fork Batch Size' attribute feature. - * - * - * @generated - */ - EAttribute FORKPROCESS__FORK_BATCH_SIZE = eINSTANCE.getForkprocess_ForkBatchSize(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.UpdatedauditImpl Updatedaudit}' class. - * - * - * @see in.handyman.dsl.impl.UpdatedauditImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getUpdatedaudit() - * @generated - */ - EClass UPDATEDAUDIT = eINSTANCE.getUpdatedaudit(); - - /** - * The meta object literal for the 'Logsink' attribute feature. - * - * - * @generated - */ - EAttribute UPDATEDAUDIT__LOGSINK = eINSTANCE.getUpdatedaudit_Logsink(); - - /** - * The meta object literal for the 'Datasource' attribute feature. - * - * - * @generated - */ - EAttribute UPDATEDAUDIT__DATASOURCE = eINSTANCE.getUpdatedaudit_Datasource(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute UPDATEDAUDIT__VALUE = eINSTANCE.getUpdatedaudit_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.ClickSendSmsImpl Click Send Sms}' class. - * - * - * @see in.handyman.dsl.impl.ClickSendSmsImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getClickSendSms() - * @generated - */ - EClass CLICK_SEND_SMS = eINSTANCE.getClickSendSms(); - - /** - * The meta object literal for the 'Userid' attribute feature. - * - * - * @generated - */ - EAttribute CLICK_SEND_SMS__USERID = eINSTANCE.getClickSendSms_Userid(); - - /** - * The meta object literal for the 'Security Key' attribute feature. - * - * - * @generated - */ - EAttribute CLICK_SEND_SMS__SECURITY_KEY = eINSTANCE.getClickSendSms_SecurityKey(); - - /** - * The meta object literal for the 'Target' attribute feature. - * - * - * @generated - */ - EAttribute CLICK_SEND_SMS__TARGET = eINSTANCE.getClickSendSms_Target(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute CLICK_SEND_SMS__VALUE = eINSTANCE.getClickSendSms_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.SlackPUTImpl Slack PUT}' class. - * - * - * @see in.handyman.dsl.impl.SlackPUTImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getSlackPUT() - * @generated - */ - EClass SLACK_PUT = eINSTANCE.getSlackPUT(); - - /** - * The meta object literal for the 'Team' attribute feature. - * - * - * @generated - */ - EAttribute SLACK_PUT__TEAM = eINSTANCE.getSlackPUT_Team(); - - /** - * The meta object literal for the 'Channel' attribute feature. - * - * - * @generated - */ - EAttribute SLACK_PUT__CHANNEL = eINSTANCE.getSlackPUT_Channel(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute SLACK_PUT__VALUE = eINSTANCE.getSlackPUT_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.CopydataImpl Copydata}' class. - * - * - * @see in.handyman.dsl.impl.CopydataImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getCopydata() - * @generated - */ - EClass COPYDATA = eINSTANCE.getCopydata(); - - /** - * The meta object literal for the 'Source' attribute feature. - * - * - * @generated - */ - EAttribute COPYDATA__SOURCE = eINSTANCE.getCopydata_Source(); - - /** - * The meta object literal for the 'To' attribute feature. - * - * - * @generated - */ - EAttribute COPYDATA__TO = eINSTANCE.getCopydata_To(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute COPYDATA__VALUE = eINSTANCE.getCopydata_Value(); - - /** - * The meta object literal for the 'Write Thread Count' attribute feature. - * - * - * @generated - */ - EAttribute COPYDATA__WRITE_THREAD_COUNT = eINSTANCE.getCopydata_WriteThreadCount(); - - /** - * The meta object literal for the 'Fetch Batch Size' attribute feature. - * - * - * @generated - */ - EAttribute COPYDATA__FETCH_BATCH_SIZE = eINSTANCE.getCopydata_FetchBatchSize(); - - /** - * The meta object literal for the 'Write Batch Size' attribute feature. - * - * - * @generated - */ - EAttribute COPYDATA__WRITE_BATCH_SIZE = eINSTANCE.getCopydata_WriteBatchSize(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.WriteCsvImpl Write Csv}' class. - * - * - * @see in.handyman.dsl.impl.WriteCsvImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getWriteCsv() - * @generated - */ - EClass WRITE_CSV = eINSTANCE.getWriteCsv(); - - /** - * The meta object literal for the 'Source' attribute feature. - * - * - * @generated - */ - EAttribute WRITE_CSV__SOURCE = eINSTANCE.getWriteCsv_Source(); - - /** - * The meta object literal for the 'To' attribute feature. - * - * - * @generated - */ - EAttribute WRITE_CSV__TO = eINSTANCE.getWriteCsv_To(); - - /** - * The meta object literal for the 'Delim' attribute feature. - * - * - * @generated - */ - EAttribute WRITE_CSV__DELIM = eINSTANCE.getWriteCsv_Delim(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute WRITE_CSV__VALUE = eINSTANCE.getWriteCsv_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.LoadCsvImpl Load Csv}' class. - * - * - * @see in.handyman.dsl.impl.LoadCsvImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getLoadCsv() - * @generated - */ - EClass LOAD_CSV = eINSTANCE.getLoadCsv(); - - /** - * The meta object literal for the 'Source' attribute feature. - * - * - * @generated - */ - EAttribute LOAD_CSV__SOURCE = eINSTANCE.getLoadCsv_Source(); - - /** - * The meta object literal for the 'To' attribute feature. - * - * - * @generated - */ - EAttribute LOAD_CSV__TO = eINSTANCE.getLoadCsv_To(); - - /** - * The meta object literal for the 'Delim' attribute feature. - * - * - * @generated - */ - EAttribute LOAD_CSV__DELIM = eINSTANCE.getLoadCsv_Delim(); - - /** - * The meta object literal for the 'Fetch Batch Size' attribute feature. - * - * - * @generated - */ - EAttribute LOAD_CSV__FETCH_BATCH_SIZE = eINSTANCE.getLoadCsv_FetchBatchSize(); - - /** - * The meta object literal for the 'Write Batch Size' attribute feature. - * - * - * @generated - */ - EAttribute LOAD_CSV__WRITE_BATCH_SIZE = eINSTANCE.getLoadCsv_WriteBatchSize(); - - /** - * The meta object literal for the 'Value' attribute feature. - * - * - * @generated - */ - EAttribute LOAD_CSV__VALUE = eINSTANCE.getLoadCsv_Value(); - - /** - * The meta object literal for the 'Write Thread Count' attribute feature. - * - * - * @generated - */ - EAttribute LOAD_CSV__WRITE_THREAD_COUNT = eINSTANCE.getLoadCsv_WriteThreadCount(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.TransformImpl Transform}' class. - * - * - * @see in.handyman.dsl.impl.TransformImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getTransform() - * @generated - */ - EClass TRANSFORM = eINSTANCE.getTransform(); - - /** - * The meta object literal for the 'On' attribute feature. - * - * - * @generated - */ - EAttribute TRANSFORM__ON = eINSTANCE.getTransform_On(); - - /** - * The meta object literal for the 'Value' attribute list feature. - * - * - * @generated - */ - EAttribute TRANSFORM__VALUE = eINSTANCE.getTransform_Value(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.StartProcessImpl Start Process}' class. - * - * - * @see in.handyman.dsl.impl.StartProcessImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getStartProcess() - * @generated - */ - EClass START_PROCESS = eINSTANCE.getStartProcess(); - - /** - * The meta object literal for the 'Name' attribute feature. - * - * - * @generated - */ - EAttribute START_PROCESS__NAME = eINSTANCE.getStartProcess_Name(); - - /** - * The meta object literal for the 'Target' attribute feature. - * - * - * @generated - */ - EAttribute START_PROCESS__TARGET = eINSTANCE.getStartProcess_Target(); - - /** - * The meta object literal for the '{@link in.handyman.dsl.impl.ExpressionImpl Expression}' class. - * - * - * @see in.handyman.dsl.impl.ExpressionImpl - * @see in.handyman.dsl.impl.DslPackageImpl#getExpression() - * @generated - */ - EClass EXPRESSION = eINSTANCE.getExpression(); - - /** - * The meta object literal for the 'Lhs' attribute feature. - * - * - * @generated - */ - EAttribute EXPRESSION__LHS = eINSTANCE.getExpression_Lhs(); - - /** - * The meta object literal for the 'Operator' attribute feature. - * - * - * @generated - */ - EAttribute EXPRESSION__OPERATOR = eINSTANCE.getExpression_Operator(); - - /** - * The meta object literal for the 'Rhs' attribute feature. - * - * - * @generated - */ - EAttribute EXPRESSION__RHS = eINSTANCE.getExpression_Rhs(); - - } - -} //DslPackage diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/ExecJava.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/ExecJava.java deleted file mode 100644 index 530b1a7d..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/ExecJava.java +++ /dev/null @@ -1,105 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Exec Java'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.ExecJava#getClassFqn Class Fqn}
  • - *
  • {@link in.handyman.dsl.ExecJava#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.ExecJava#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getExecJava() - * @model - * @generated - */ -public interface ExecJava extends Action -{ - /** - * Returns the value of the 'Class Fqn' attribute. - * - *

- * If the meaning of the 'Class Fqn' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Class Fqn' attribute. - * @see #setClassFqn(String) - * @see in.handyman.dsl.DslPackage#getExecJava_ClassFqn() - * @model - * @generated - */ - String getClassFqn(); - - /** - * Sets the value of the '{@link in.handyman.dsl.ExecJava#getClassFqn Class Fqn}' attribute. - * - * - * @param value the new value of the 'Class Fqn' attribute. - * @see #getClassFqn() - * @generated - */ - void setClassFqn(String value); - - /** - * Returns the value of the 'Db Src' attribute. - * - *

- * If the meaning of the 'Db Src' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Db Src' attribute. - * @see #setDbSrc(String) - * @see in.handyman.dsl.DslPackage#getExecJava_DbSrc() - * @model - * @generated - */ - String getDbSrc(); - - /** - * Sets the value of the '{@link in.handyman.dsl.ExecJava#getDbSrc Db Src}' attribute. - * - * - * @param value the new value of the 'Db Src' attribute. - * @see #getDbSrc() - * @generated - */ - void setDbSrc(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getExecJava_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.ExecJava#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // ExecJava diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Expression.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Expression.java deleted file mode 100644 index 6cb78f52..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Expression.java +++ /dev/null @@ -1,106 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Expression'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Expression#getLhs Lhs}
  • - *
  • {@link in.handyman.dsl.Expression#getOperator Operator}
  • - *
  • {@link in.handyman.dsl.Expression#getRhs Rhs}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getExpression() - * @model - * @generated - */ -public interface Expression extends EObject -{ - /** - * Returns the value of the 'Lhs' attribute. - * - *

- * If the meaning of the 'Lhs' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Lhs' attribute. - * @see #setLhs(String) - * @see in.handyman.dsl.DslPackage#getExpression_Lhs() - * @model - * @generated - */ - String getLhs(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Expression#getLhs Lhs}' attribute. - * - * - * @param value the new value of the 'Lhs' attribute. - * @see #getLhs() - * @generated - */ - void setLhs(String value); - - /** - * Returns the value of the 'Operator' attribute. - * - *

- * If the meaning of the 'Operator' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Operator' attribute. - * @see #setOperator(String) - * @see in.handyman.dsl.DslPackage#getExpression_Operator() - * @model - * @generated - */ - String getOperator(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Expression#getOperator Operator}' attribute. - * - * - * @param value the new value of the 'Operator' attribute. - * @see #getOperator() - * @generated - */ - void setOperator(String value); - - /** - * Returns the value of the 'Rhs' attribute. - * - *

- * If the meaning of the 'Rhs' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Rhs' attribute. - * @see #setRhs(String) - * @see in.handyman.dsl.DslPackage#getExpression_Rhs() - * @model - * @generated - */ - String getRhs(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Expression#getRhs Rhs}' attribute. - * - * - * @param value the new value of the 'Rhs' attribute. - * @see #getRhs() - * @generated - */ - void setRhs(String value); - -} // Expression diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FBCLead.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FBCLead.java deleted file mode 100644 index 407b988d..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FBCLead.java +++ /dev/null @@ -1,186 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'FBC Lead'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.FBCLead#getAccessToken Access Token}
  • - *
  • {@link in.handyman.dsl.FBCLead#getAppSecret App Secret}
  • - *
  • {@link in.handyman.dsl.FBCLead#getAccountId Account Id}
  • - *
  • {@link in.handyman.dsl.FBCLead#getCampaignId Campaign Id}
  • - *
  • {@link in.handyman.dsl.FBCLead#getTarget Target}
  • - *
  • {@link in.handyman.dsl.FBCLead#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getFBCLead() - * @model - * @generated - */ -public interface FBCLead extends Action -{ - /** - * Returns the value of the 'Access Token' attribute. - * - *

- * If the meaning of the 'Access Token' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Access Token' attribute. - * @see #setAccessToken(String) - * @see in.handyman.dsl.DslPackage#getFBCLead_AccessToken() - * @model - * @generated - */ - String getAccessToken(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBCLead#getAccessToken Access Token}' attribute. - * - * - * @param value the new value of the 'Access Token' attribute. - * @see #getAccessToken() - * @generated - */ - void setAccessToken(String value); - - /** - * Returns the value of the 'App Secret' attribute. - * - *

- * If the meaning of the 'App Secret' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'App Secret' attribute. - * @see #setAppSecret(String) - * @see in.handyman.dsl.DslPackage#getFBCLead_AppSecret() - * @model - * @generated - */ - String getAppSecret(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBCLead#getAppSecret App Secret}' attribute. - * - * - * @param value the new value of the 'App Secret' attribute. - * @see #getAppSecret() - * @generated - */ - void setAppSecret(String value); - - /** - * Returns the value of the 'Account Id' attribute. - * - *

- * If the meaning of the 'Account Id' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Account Id' attribute. - * @see #setAccountId(String) - * @see in.handyman.dsl.DslPackage#getFBCLead_AccountId() - * @model - * @generated - */ - String getAccountId(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBCLead#getAccountId Account Id}' attribute. - * - * - * @param value the new value of the 'Account Id' attribute. - * @see #getAccountId() - * @generated - */ - void setAccountId(String value); - - /** - * Returns the value of the 'Campaign Id' attribute. - * - *

- * If the meaning of the 'Campaign Id' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Campaign Id' attribute. - * @see #setCampaignId(String) - * @see in.handyman.dsl.DslPackage#getFBCLead_CampaignId() - * @model - * @generated - */ - String getCampaignId(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBCLead#getCampaignId Campaign Id}' attribute. - * - * - * @param value the new value of the 'Campaign Id' attribute. - * @see #getCampaignId() - * @generated - */ - void setCampaignId(String value); - - /** - * Returns the value of the 'Target' attribute. - * - *

- * If the meaning of the 'Target' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Target' attribute. - * @see #setTarget(String) - * @see in.handyman.dsl.DslPackage#getFBCLead_Target() - * @model - * @generated - */ - String getTarget(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBCLead#getTarget Target}' attribute. - * - * - * @param value the new value of the 'Target' attribute. - * @see #getTarget() - * @generated - */ - void setTarget(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getFBCLead_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBCLead#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // FBCLead diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FBFormDownload.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FBFormDownload.java deleted file mode 100644 index 59e4bf7a..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FBFormDownload.java +++ /dev/null @@ -1,186 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'FB Form Download'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.FBFormDownload#getAccessToken Access Token}
  • - *
  • {@link in.handyman.dsl.FBFormDownload#getAppSecret App Secret}
  • - *
  • {@link in.handyman.dsl.FBFormDownload#getAccountId Account Id}
  • - *
  • {@link in.handyman.dsl.FBFormDownload#getFormId Form Id}
  • - *
  • {@link in.handyman.dsl.FBFormDownload#getTarget Target}
  • - *
  • {@link in.handyman.dsl.FBFormDownload#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getFBFormDownload() - * @model - * @generated - */ -public interface FBFormDownload extends Action -{ - /** - * Returns the value of the 'Access Token' attribute. - * - *

- * If the meaning of the 'Access Token' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Access Token' attribute. - * @see #setAccessToken(String) - * @see in.handyman.dsl.DslPackage#getFBFormDownload_AccessToken() - * @model - * @generated - */ - String getAccessToken(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBFormDownload#getAccessToken Access Token}' attribute. - * - * - * @param value the new value of the 'Access Token' attribute. - * @see #getAccessToken() - * @generated - */ - void setAccessToken(String value); - - /** - * Returns the value of the 'App Secret' attribute. - * - *

- * If the meaning of the 'App Secret' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'App Secret' attribute. - * @see #setAppSecret(String) - * @see in.handyman.dsl.DslPackage#getFBFormDownload_AppSecret() - * @model - * @generated - */ - String getAppSecret(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBFormDownload#getAppSecret App Secret}' attribute. - * - * - * @param value the new value of the 'App Secret' attribute. - * @see #getAppSecret() - * @generated - */ - void setAppSecret(String value); - - /** - * Returns the value of the 'Account Id' attribute. - * - *

- * If the meaning of the 'Account Id' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Account Id' attribute. - * @see #setAccountId(String) - * @see in.handyman.dsl.DslPackage#getFBFormDownload_AccountId() - * @model - * @generated - */ - String getAccountId(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBFormDownload#getAccountId Account Id}' attribute. - * - * - * @param value the new value of the 'Account Id' attribute. - * @see #getAccountId() - * @generated - */ - void setAccountId(String value); - - /** - * Returns the value of the 'Form Id' attribute. - * - *

- * If the meaning of the 'Form Id' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Form Id' attribute. - * @see #setFormId(String) - * @see in.handyman.dsl.DslPackage#getFBFormDownload_FormId() - * @model - * @generated - */ - String getFormId(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBFormDownload#getFormId Form Id}' attribute. - * - * - * @param value the new value of the 'Form Id' attribute. - * @see #getFormId() - * @generated - */ - void setFormId(String value); - - /** - * Returns the value of the 'Target' attribute. - * - *

- * If the meaning of the 'Target' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Target' attribute. - * @see #setTarget(String) - * @see in.handyman.dsl.DslPackage#getFBFormDownload_Target() - * @model - * @generated - */ - String getTarget(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBFormDownload#getTarget Target}' attribute. - * - * - * @param value the new value of the 'Target' attribute. - * @see #getTarget() - * @generated - */ - void setTarget(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getFBFormDownload_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FBFormDownload#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // FBFormDownload diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Fetch.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Fetch.java deleted file mode 100644 index 8b5fa1ee..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Fetch.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Fetch'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Fetch#getSource Source}
  • - *
  • {@link in.handyman.dsl.Fetch#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getFetch() - * @model - * @generated - */ -public interface Fetch extends Action -{ - /** - * Returns the value of the 'Source' attribute. - * - *

- * If the meaning of the 'Source' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Source' attribute. - * @see #setSource(String) - * @see in.handyman.dsl.DslPackage#getFetch_Source() - * @model - * @generated - */ - String getSource(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Fetch#getSource Source}' attribute. - * - * - * @param value the new value of the 'Source' attribute. - * @see #getSource() - * @generated - */ - void setSource(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getFetch_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Fetch#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // Fetch diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Finally.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Finally.java deleted file mode 100644 index d754e543..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Finally.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Finally'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Finally#getName Name}
  • - *
  • {@link in.handyman.dsl.Finally#getAction Action}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getFinally() - * @model - * @generated - */ -public interface Finally extends EObject -{ - /** - * Returns the value of the 'Name' attribute. - * - *

- * If the meaning of the 'Name' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see in.handyman.dsl.DslPackage#getFinally_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Finally#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - - /** - * Returns the value of the 'Action' containment reference list. - * The list contents are of type {@link in.handyman.dsl.Action}. - * - *

- * If the meaning of the 'Action' containment reference list isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Action' containment reference list. - * @see in.handyman.dsl.DslPackage#getFinally_Action() - * @model containment="true" - * @generated - */ - EList getAction(); - -} // Finally diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FirebaseDatabasePut.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FirebaseDatabasePut.java deleted file mode 100644 index 27fdf240..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FirebaseDatabasePut.java +++ /dev/null @@ -1,186 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Firebase Database Put'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.FirebaseDatabasePut#getUrl Url}
  • - *
  • {@link in.handyman.dsl.FirebaseDatabasePut#getFbjson Fbjson}
  • - *
  • {@link in.handyman.dsl.FirebaseDatabasePut#getGroupPath Group Path}
  • - *
  • {@link in.handyman.dsl.FirebaseDatabasePut#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.FirebaseDatabasePut#getClassFqn Class Fqn}
  • - *
  • {@link in.handyman.dsl.FirebaseDatabasePut#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getFirebaseDatabasePut() - * @model - * @generated - */ -public interface FirebaseDatabasePut extends Action -{ - /** - * Returns the value of the 'Url' attribute. - * - *

- * If the meaning of the 'Url' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Url' attribute. - * @see #setUrl(String) - * @see in.handyman.dsl.DslPackage#getFirebaseDatabasePut_Url() - * @model - * @generated - */ - String getUrl(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FirebaseDatabasePut#getUrl Url}' attribute. - * - * - * @param value the new value of the 'Url' attribute. - * @see #getUrl() - * @generated - */ - void setUrl(String value); - - /** - * Returns the value of the 'Fbjson' attribute. - * - *

- * If the meaning of the 'Fbjson' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Fbjson' attribute. - * @see #setFbjson(String) - * @see in.handyman.dsl.DslPackage#getFirebaseDatabasePut_Fbjson() - * @model - * @generated - */ - String getFbjson(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FirebaseDatabasePut#getFbjson Fbjson}' attribute. - * - * - * @param value the new value of the 'Fbjson' attribute. - * @see #getFbjson() - * @generated - */ - void setFbjson(String value); - - /** - * Returns the value of the 'Group Path' attribute. - * - *

- * If the meaning of the 'Group Path' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Group Path' attribute. - * @see #setGroupPath(String) - * @see in.handyman.dsl.DslPackage#getFirebaseDatabasePut_GroupPath() - * @model - * @generated - */ - String getGroupPath(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FirebaseDatabasePut#getGroupPath Group Path}' attribute. - * - * - * @param value the new value of the 'Group Path' attribute. - * @see #getGroupPath() - * @generated - */ - void setGroupPath(String value); - - /** - * Returns the value of the 'Db Src' attribute. - * - *

- * If the meaning of the 'Db Src' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Db Src' attribute. - * @see #setDbSrc(String) - * @see in.handyman.dsl.DslPackage#getFirebaseDatabasePut_DbSrc() - * @model - * @generated - */ - String getDbSrc(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FirebaseDatabasePut#getDbSrc Db Src}' attribute. - * - * - * @param value the new value of the 'Db Src' attribute. - * @see #getDbSrc() - * @generated - */ - void setDbSrc(String value); - - /** - * Returns the value of the 'Class Fqn' attribute. - * - *

- * If the meaning of the 'Class Fqn' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Class Fqn' attribute. - * @see #setClassFqn(String) - * @see in.handyman.dsl.DslPackage#getFirebaseDatabasePut_ClassFqn() - * @model - * @generated - */ - String getClassFqn(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FirebaseDatabasePut#getClassFqn Class Fqn}' attribute. - * - * - * @param value the new value of the 'Class Fqn' attribute. - * @see #getClassFqn() - * @generated - */ - void setClassFqn(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getFirebaseDatabasePut_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FirebaseDatabasePut#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // FirebaseDatabasePut diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FirebaseReactiveNotification.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FirebaseReactiveNotification.java deleted file mode 100644 index 762dc2ad..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/FirebaseReactiveNotification.java +++ /dev/null @@ -1,159 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Firebase Reactive Notification'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.FirebaseReactiveNotification#getUrl Url}
  • - *
  • {@link in.handyman.dsl.FirebaseReactiveNotification#getFbjson Fbjson}
  • - *
  • {@link in.handyman.dsl.FirebaseReactiveNotification#getGroupPath Group Path}
  • - *
  • {@link in.handyman.dsl.FirebaseReactiveNotification#getClassFqn Class Fqn}
  • - *
  • {@link in.handyman.dsl.FirebaseReactiveNotification#getDbSrc Db Src}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getFirebaseReactiveNotification() - * @model - * @generated - */ -public interface FirebaseReactiveNotification extends Action -{ - /** - * Returns the value of the 'Url' attribute. - * - *

- * If the meaning of the 'Url' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Url' attribute. - * @see #setUrl(String) - * @see in.handyman.dsl.DslPackage#getFirebaseReactiveNotification_Url() - * @model - * @generated - */ - String getUrl(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FirebaseReactiveNotification#getUrl Url}' attribute. - * - * - * @param value the new value of the 'Url' attribute. - * @see #getUrl() - * @generated - */ - void setUrl(String value); - - /** - * Returns the value of the 'Fbjson' attribute. - * - *

- * If the meaning of the 'Fbjson' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Fbjson' attribute. - * @see #setFbjson(String) - * @see in.handyman.dsl.DslPackage#getFirebaseReactiveNotification_Fbjson() - * @model - * @generated - */ - String getFbjson(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FirebaseReactiveNotification#getFbjson Fbjson}' attribute. - * - * - * @param value the new value of the 'Fbjson' attribute. - * @see #getFbjson() - * @generated - */ - void setFbjson(String value); - - /** - * Returns the value of the 'Group Path' attribute. - * - *

- * If the meaning of the 'Group Path' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Group Path' attribute. - * @see #setGroupPath(String) - * @see in.handyman.dsl.DslPackage#getFirebaseReactiveNotification_GroupPath() - * @model - * @generated - */ - String getGroupPath(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FirebaseReactiveNotification#getGroupPath Group Path}' attribute. - * - * - * @param value the new value of the 'Group Path' attribute. - * @see #getGroupPath() - * @generated - */ - void setGroupPath(String value); - - /** - * Returns the value of the 'Class Fqn' attribute. - * - *

- * If the meaning of the 'Class Fqn' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Class Fqn' attribute. - * @see #setClassFqn(String) - * @see in.handyman.dsl.DslPackage#getFirebaseReactiveNotification_ClassFqn() - * @model - * @generated - */ - String getClassFqn(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FirebaseReactiveNotification#getClassFqn Class Fqn}' attribute. - * - * - * @param value the new value of the 'Class Fqn' attribute. - * @see #getClassFqn() - * @generated - */ - void setClassFqn(String value); - - /** - * Returns the value of the 'Db Src' attribute. - * - *

- * If the meaning of the 'Db Src' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Db Src' attribute. - * @see #setDbSrc(String) - * @see in.handyman.dsl.DslPackage#getFirebaseReactiveNotification_DbSrc() - * @model - * @generated - */ - String getDbSrc(); - - /** - * Sets the value of the '{@link in.handyman.dsl.FirebaseReactiveNotification#getDbSrc Db Src}' attribute. - * - * - * @param value the new value of the 'Db Src' attribute. - * @see #getDbSrc() - * @generated - */ - void setDbSrc(String value); - -} // FirebaseReactiveNotification diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Forkprocess.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Forkprocess.java deleted file mode 100644 index 96f45806..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Forkprocess.java +++ /dev/null @@ -1,159 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Forkprocess'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Forkprocess#getTarget Target}
  • - *
  • {@link in.handyman.dsl.Forkprocess#getSource Source}
  • - *
  • {@link in.handyman.dsl.Forkprocess#getDatasource Datasource}
  • - *
  • {@link in.handyman.dsl.Forkprocess#getValue Value}
  • - *
  • {@link in.handyman.dsl.Forkprocess#getForkBatchSize Fork Batch Size}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getForkprocess() - * @model - * @generated - */ -public interface Forkprocess extends Action -{ - /** - * Returns the value of the 'Target' attribute. - * - *

- * If the meaning of the 'Target' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Target' attribute. - * @see #setTarget(String) - * @see in.handyman.dsl.DslPackage#getForkprocess_Target() - * @model - * @generated - */ - String getTarget(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Forkprocess#getTarget Target}' attribute. - * - * - * @param value the new value of the 'Target' attribute. - * @see #getTarget() - * @generated - */ - void setTarget(String value); - - /** - * Returns the value of the 'Source' attribute. - * - *

- * If the meaning of the 'Source' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Source' attribute. - * @see #setSource(String) - * @see in.handyman.dsl.DslPackage#getForkprocess_Source() - * @model - * @generated - */ - String getSource(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Forkprocess#getSource Source}' attribute. - * - * - * @param value the new value of the 'Source' attribute. - * @see #getSource() - * @generated - */ - void setSource(String value); - - /** - * Returns the value of the 'Datasource' attribute. - * - *

- * If the meaning of the 'Datasource' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Datasource' attribute. - * @see #setDatasource(String) - * @see in.handyman.dsl.DslPackage#getForkprocess_Datasource() - * @model - * @generated - */ - String getDatasource(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Forkprocess#getDatasource Datasource}' attribute. - * - * - * @param value the new value of the 'Datasource' attribute. - * @see #getDatasource() - * @generated - */ - void setDatasource(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getForkprocess_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Forkprocess#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - - /** - * Returns the value of the 'Fork Batch Size' attribute. - * - *

- * If the meaning of the 'Fork Batch Size' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Fork Batch Size' attribute. - * @see #setForkBatchSize(String) - * @see in.handyman.dsl.DslPackage#getForkprocess_ForkBatchSize() - * @model - * @generated - */ - String getForkBatchSize(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Forkprocess#getForkBatchSize Fork Batch Size}' attribute. - * - * - * @param value the new value of the 'Fork Batch Size' attribute. - * @see #getForkBatchSize() - * @generated - */ - void setForkBatchSize(String value); - -} // Forkprocess diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/GooglecalPUT.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/GooglecalPUT.java deleted file mode 100644 index 563ddf3b..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/GooglecalPUT.java +++ /dev/null @@ -1,213 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Googlecal PUT'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.GooglecalPUT#getAccount Account}
  • - *
  • {@link in.handyman.dsl.GooglecalPUT#getPrivateKey Private Key}
  • - *
  • {@link in.handyman.dsl.GooglecalPUT#getPtwelveFile Ptwelve File}
  • - *
  • {@link in.handyman.dsl.GooglecalPUT#getProject Project}
  • - *
  • {@link in.handyman.dsl.GooglecalPUT#getImpersonatedUser Impersonated User}
  • - *
  • {@link in.handyman.dsl.GooglecalPUT#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.GooglecalPUT#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getGooglecalPUT() - * @model - * @generated - */ -public interface GooglecalPUT extends Action -{ - /** - * Returns the value of the 'Account' attribute. - * - *

- * If the meaning of the 'Account' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Account' attribute. - * @see #setAccount(String) - * @see in.handyman.dsl.DslPackage#getGooglecalPUT_Account() - * @model - * @generated - */ - String getAccount(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecalPUT#getAccount Account}' attribute. - * - * - * @param value the new value of the 'Account' attribute. - * @see #getAccount() - * @generated - */ - void setAccount(String value); - - /** - * Returns the value of the 'Private Key' attribute. - * - *

- * If the meaning of the 'Private Key' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Private Key' attribute. - * @see #setPrivateKey(String) - * @see in.handyman.dsl.DslPackage#getGooglecalPUT_PrivateKey() - * @model - * @generated - */ - String getPrivateKey(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecalPUT#getPrivateKey Private Key}' attribute. - * - * - * @param value the new value of the 'Private Key' attribute. - * @see #getPrivateKey() - * @generated - */ - void setPrivateKey(String value); - - /** - * Returns the value of the 'Ptwelve File' attribute. - * - *

- * If the meaning of the 'Ptwelve File' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Ptwelve File' attribute. - * @see #setPtwelveFile(String) - * @see in.handyman.dsl.DslPackage#getGooglecalPUT_PtwelveFile() - * @model - * @generated - */ - String getPtwelveFile(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecalPUT#getPtwelveFile Ptwelve File}' attribute. - * - * - * @param value the new value of the 'Ptwelve File' attribute. - * @see #getPtwelveFile() - * @generated - */ - void setPtwelveFile(String value); - - /** - * Returns the value of the 'Project' attribute. - * - *

- * If the meaning of the 'Project' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Project' attribute. - * @see #setProject(String) - * @see in.handyman.dsl.DslPackage#getGooglecalPUT_Project() - * @model - * @generated - */ - String getProject(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecalPUT#getProject Project}' attribute. - * - * - * @param value the new value of the 'Project' attribute. - * @see #getProject() - * @generated - */ - void setProject(String value); - - /** - * Returns the value of the 'Impersonated User' attribute. - * - *

- * If the meaning of the 'Impersonated User' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Impersonated User' attribute. - * @see #setImpersonatedUser(String) - * @see in.handyman.dsl.DslPackage#getGooglecalPUT_ImpersonatedUser() - * @model - * @generated - */ - String getImpersonatedUser(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecalPUT#getImpersonatedUser Impersonated User}' attribute. - * - * - * @param value the new value of the 'Impersonated User' attribute. - * @see #getImpersonatedUser() - * @generated - */ - void setImpersonatedUser(String value); - - /** - * Returns the value of the 'Db Src' attribute. - * - *

- * If the meaning of the 'Db Src' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Db Src' attribute. - * @see #setDbSrc(String) - * @see in.handyman.dsl.DslPackage#getGooglecalPUT_DbSrc() - * @model - * @generated - */ - String getDbSrc(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecalPUT#getDbSrc Db Src}' attribute. - * - * - * @param value the new value of the 'Db Src' attribute. - * @see #getDbSrc() - * @generated - */ - void setDbSrc(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getGooglecalPUT_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecalPUT#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // GooglecalPUT diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/GooglecontactPUT.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/GooglecontactPUT.java deleted file mode 100644 index 6a8efcc9..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/GooglecontactPUT.java +++ /dev/null @@ -1,213 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Googlecontact PUT'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.GooglecontactPUT#getAccount Account}
  • - *
  • {@link in.handyman.dsl.GooglecontactPUT#getPrivateKey Private Key}
  • - *
  • {@link in.handyman.dsl.GooglecontactPUT#getPtwelveFile Ptwelve File}
  • - *
  • {@link in.handyman.dsl.GooglecontactPUT#getProject Project}
  • - *
  • {@link in.handyman.dsl.GooglecontactPUT#getImpersonatedUser Impersonated User}
  • - *
  • {@link in.handyman.dsl.GooglecontactPUT#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.GooglecontactPUT#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getGooglecontactPUT() - * @model - * @generated - */ -public interface GooglecontactPUT extends Action -{ - /** - * Returns the value of the 'Account' attribute. - * - *

- * If the meaning of the 'Account' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Account' attribute. - * @see #setAccount(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactPUT_Account() - * @model - * @generated - */ - String getAccount(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactPUT#getAccount Account}' attribute. - * - * - * @param value the new value of the 'Account' attribute. - * @see #getAccount() - * @generated - */ - void setAccount(String value); - - /** - * Returns the value of the 'Private Key' attribute. - * - *

- * If the meaning of the 'Private Key' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Private Key' attribute. - * @see #setPrivateKey(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactPUT_PrivateKey() - * @model - * @generated - */ - String getPrivateKey(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactPUT#getPrivateKey Private Key}' attribute. - * - * - * @param value the new value of the 'Private Key' attribute. - * @see #getPrivateKey() - * @generated - */ - void setPrivateKey(String value); - - /** - * Returns the value of the 'Ptwelve File' attribute. - * - *

- * If the meaning of the 'Ptwelve File' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Ptwelve File' attribute. - * @see #setPtwelveFile(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactPUT_PtwelveFile() - * @model - * @generated - */ - String getPtwelveFile(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactPUT#getPtwelveFile Ptwelve File}' attribute. - * - * - * @param value the new value of the 'Ptwelve File' attribute. - * @see #getPtwelveFile() - * @generated - */ - void setPtwelveFile(String value); - - /** - * Returns the value of the 'Project' attribute. - * - *

- * If the meaning of the 'Project' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Project' attribute. - * @see #setProject(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactPUT_Project() - * @model - * @generated - */ - String getProject(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactPUT#getProject Project}' attribute. - * - * - * @param value the new value of the 'Project' attribute. - * @see #getProject() - * @generated - */ - void setProject(String value); - - /** - * Returns the value of the 'Impersonated User' attribute. - * - *

- * If the meaning of the 'Impersonated User' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Impersonated User' attribute. - * @see #setImpersonatedUser(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactPUT_ImpersonatedUser() - * @model - * @generated - */ - String getImpersonatedUser(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactPUT#getImpersonatedUser Impersonated User}' attribute. - * - * - * @param value the new value of the 'Impersonated User' attribute. - * @see #getImpersonatedUser() - * @generated - */ - void setImpersonatedUser(String value); - - /** - * Returns the value of the 'Db Src' attribute. - * - *

- * If the meaning of the 'Db Src' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Db Src' attribute. - * @see #setDbSrc(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactPUT_DbSrc() - * @model - * @generated - */ - String getDbSrc(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactPUT#getDbSrc Db Src}' attribute. - * - * - * @param value the new value of the 'Db Src' attribute. - * @see #getDbSrc() - * @generated - */ - void setDbSrc(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactPUT_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactPUT#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // GooglecontactPUT diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/GooglecontactSelectAll.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/GooglecontactSelectAll.java deleted file mode 100644 index f2b12c75..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/GooglecontactSelectAll.java +++ /dev/null @@ -1,213 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Googlecontact Select All'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.GooglecontactSelectAll#getAccount Account}
  • - *
  • {@link in.handyman.dsl.GooglecontactSelectAll#getPrivateKey Private Key}
  • - *
  • {@link in.handyman.dsl.GooglecontactSelectAll#getPtwelveFile Ptwelve File}
  • - *
  • {@link in.handyman.dsl.GooglecontactSelectAll#getProject Project}
  • - *
  • {@link in.handyman.dsl.GooglecontactSelectAll#getImpersonatedUser Impersonated User}
  • - *
  • {@link in.handyman.dsl.GooglecontactSelectAll#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.GooglecontactSelectAll#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getGooglecontactSelectAll() - * @model - * @generated - */ -public interface GooglecontactSelectAll extends Action -{ - /** - * Returns the value of the 'Account' attribute. - * - *

- * If the meaning of the 'Account' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Account' attribute. - * @see #setAccount(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactSelectAll_Account() - * @model - * @generated - */ - String getAccount(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactSelectAll#getAccount Account}' attribute. - * - * - * @param value the new value of the 'Account' attribute. - * @see #getAccount() - * @generated - */ - void setAccount(String value); - - /** - * Returns the value of the 'Private Key' attribute. - * - *

- * If the meaning of the 'Private Key' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Private Key' attribute. - * @see #setPrivateKey(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactSelectAll_PrivateKey() - * @model - * @generated - */ - String getPrivateKey(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactSelectAll#getPrivateKey Private Key}' attribute. - * - * - * @param value the new value of the 'Private Key' attribute. - * @see #getPrivateKey() - * @generated - */ - void setPrivateKey(String value); - - /** - * Returns the value of the 'Ptwelve File' attribute. - * - *

- * If the meaning of the 'Ptwelve File' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Ptwelve File' attribute. - * @see #setPtwelveFile(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactSelectAll_PtwelveFile() - * @model - * @generated - */ - String getPtwelveFile(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactSelectAll#getPtwelveFile Ptwelve File}' attribute. - * - * - * @param value the new value of the 'Ptwelve File' attribute. - * @see #getPtwelveFile() - * @generated - */ - void setPtwelveFile(String value); - - /** - * Returns the value of the 'Project' attribute. - * - *

- * If the meaning of the 'Project' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Project' attribute. - * @see #setProject(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactSelectAll_Project() - * @model - * @generated - */ - String getProject(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactSelectAll#getProject Project}' attribute. - * - * - * @param value the new value of the 'Project' attribute. - * @see #getProject() - * @generated - */ - void setProject(String value); - - /** - * Returns the value of the 'Impersonated User' attribute. - * - *

- * If the meaning of the 'Impersonated User' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Impersonated User' attribute. - * @see #setImpersonatedUser(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactSelectAll_ImpersonatedUser() - * @model - * @generated - */ - String getImpersonatedUser(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactSelectAll#getImpersonatedUser Impersonated User}' attribute. - * - * - * @param value the new value of the 'Impersonated User' attribute. - * @see #getImpersonatedUser() - * @generated - */ - void setImpersonatedUser(String value); - - /** - * Returns the value of the 'Db Src' attribute. - * - *

- * If the meaning of the 'Db Src' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Db Src' attribute. - * @see #setDbSrc(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactSelectAll_DbSrc() - * @model - * @generated - */ - String getDbSrc(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactSelectAll#getDbSrc Db Src}' attribute. - * - * - * @param value the new value of the 'Db Src' attribute. - * @see #getDbSrc() - * @generated - */ - void setDbSrc(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getGooglecontactSelectAll_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.GooglecontactSelectAll#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // GooglecontactSelectAll diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/LoadCsv.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/LoadCsv.java deleted file mode 100644 index ca11cdb0..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/LoadCsv.java +++ /dev/null @@ -1,213 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Load Csv'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.LoadCsv#getSource Source}
  • - *
  • {@link in.handyman.dsl.LoadCsv#getTo To}
  • - *
  • {@link in.handyman.dsl.LoadCsv#getDelim Delim}
  • - *
  • {@link in.handyman.dsl.LoadCsv#getFetchBatchSize Fetch Batch Size}
  • - *
  • {@link in.handyman.dsl.LoadCsv#getWriteBatchSize Write Batch Size}
  • - *
  • {@link in.handyman.dsl.LoadCsv#getValue Value}
  • - *
  • {@link in.handyman.dsl.LoadCsv#getWriteThreadCount Write Thread Count}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getLoadCsv() - * @model - * @generated - */ -public interface LoadCsv extends Action -{ - /** - * Returns the value of the 'Source' attribute. - * - *

- * If the meaning of the 'Source' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Source' attribute. - * @see #setSource(String) - * @see in.handyman.dsl.DslPackage#getLoadCsv_Source() - * @model - * @generated - */ - String getSource(); - - /** - * Sets the value of the '{@link in.handyman.dsl.LoadCsv#getSource Source}' attribute. - * - * - * @param value the new value of the 'Source' attribute. - * @see #getSource() - * @generated - */ - void setSource(String value); - - /** - * Returns the value of the 'To' attribute. - * - *

- * If the meaning of the 'To' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'To' attribute. - * @see #setTo(String) - * @see in.handyman.dsl.DslPackage#getLoadCsv_To() - * @model - * @generated - */ - String getTo(); - - /** - * Sets the value of the '{@link in.handyman.dsl.LoadCsv#getTo To}' attribute. - * - * - * @param value the new value of the 'To' attribute. - * @see #getTo() - * @generated - */ - void setTo(String value); - - /** - * Returns the value of the 'Delim' attribute. - * - *

- * If the meaning of the 'Delim' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Delim' attribute. - * @see #setDelim(String) - * @see in.handyman.dsl.DslPackage#getLoadCsv_Delim() - * @model - * @generated - */ - String getDelim(); - - /** - * Sets the value of the '{@link in.handyman.dsl.LoadCsv#getDelim Delim}' attribute. - * - * - * @param value the new value of the 'Delim' attribute. - * @see #getDelim() - * @generated - */ - void setDelim(String value); - - /** - * Returns the value of the 'Fetch Batch Size' attribute. - * - *

- * If the meaning of the 'Fetch Batch Size' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Fetch Batch Size' attribute. - * @see #setFetchBatchSize(int) - * @see in.handyman.dsl.DslPackage#getLoadCsv_FetchBatchSize() - * @model - * @generated - */ - int getFetchBatchSize(); - - /** - * Sets the value of the '{@link in.handyman.dsl.LoadCsv#getFetchBatchSize Fetch Batch Size}' attribute. - * - * - * @param value the new value of the 'Fetch Batch Size' attribute. - * @see #getFetchBatchSize() - * @generated - */ - void setFetchBatchSize(int value); - - /** - * Returns the value of the 'Write Batch Size' attribute. - * - *

- * If the meaning of the 'Write Batch Size' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Write Batch Size' attribute. - * @see #setWriteBatchSize(int) - * @see in.handyman.dsl.DslPackage#getLoadCsv_WriteBatchSize() - * @model - * @generated - */ - int getWriteBatchSize(); - - /** - * Sets the value of the '{@link in.handyman.dsl.LoadCsv#getWriteBatchSize Write Batch Size}' attribute. - * - * - * @param value the new value of the 'Write Batch Size' attribute. - * @see #getWriteBatchSize() - * @generated - */ - void setWriteBatchSize(int value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getLoadCsv_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.LoadCsv#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - - /** - * Returns the value of the 'Write Thread Count' attribute. - * - *

- * If the meaning of the 'Write Thread Count' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Write Thread Count' attribute. - * @see #setWriteThreadCount(int) - * @see in.handyman.dsl.DslPackage#getLoadCsv_WriteThreadCount() - * @model - * @generated - */ - int getWriteThreadCount(); - - /** - * Sets the value of the '{@link in.handyman.dsl.LoadCsv#getWriteThreadCount Write Thread Count}' attribute. - * - * - * @param value the new value of the 'Write Thread Count' attribute. - * @see #getWriteThreadCount() - * @generated - */ - void setWriteThreadCount(int value); - -} // LoadCsv diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Process.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Process.java deleted file mode 100644 index 94f98bd8..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Process.java +++ /dev/null @@ -1,133 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Process'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Process#getName Name}
  • - *
  • {@link in.handyman.dsl.Process#getTry Try}
  • - *
  • {@link in.handyman.dsl.Process#getCatch Catch}
  • - *
  • {@link in.handyman.dsl.Process#getFinally Finally}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getProcess() - * @model - * @generated - */ -public interface Process extends EObject -{ - /** - * Returns the value of the 'Name' attribute. - * - *

- * If the meaning of the 'Name' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see in.handyman.dsl.DslPackage#getProcess_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Process#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - - /** - * Returns the value of the 'Try' containment reference. - * - *

- * If the meaning of the 'Try' containment reference isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Try' containment reference. - * @see #setTry(Try) - * @see in.handyman.dsl.DslPackage#getProcess_Try() - * @model containment="true" - * @generated - */ - Try getTry(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Process#getTry Try}' containment reference. - * - * - * @param value the new value of the 'Try' containment reference. - * @see #getTry() - * @generated - */ - void setTry(Try value); - - /** - * Returns the value of the 'Catch' containment reference. - * - *

- * If the meaning of the 'Catch' containment reference isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Catch' containment reference. - * @see #setCatch(Catch) - * @see in.handyman.dsl.DslPackage#getProcess_Catch() - * @model containment="true" - * @generated - */ - Catch getCatch(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Process#getCatch Catch}' containment reference. - * - * - * @param value the new value of the 'Catch' containment reference. - * @see #getCatch() - * @generated - */ - void setCatch(Catch value); - - /** - * Returns the value of the 'Finally' containment reference. - * - *

- * If the meaning of the 'Finally' containment reference isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Finally' containment reference. - * @see #setFinally(Finally) - * @see in.handyman.dsl.DslPackage#getProcess_Finally() - * @model containment="true" - * @generated - */ - Finally getFinally(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Process#getFinally Finally}' containment reference. - * - * - * @param value the new value of the 'Finally' containment reference. - * @see #getFinally() - * @generated - */ - void setFinally(Finally value); - -} // Process diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Rest.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Rest.java deleted file mode 100644 index 2e64386a..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Rest.java +++ /dev/null @@ -1,366 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.common.util.EList; - -/** - * - * A representation of the model object 'Rest'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Rest#getAuthtoken Authtoken}
  • - *
  • {@link in.handyman.dsl.Rest#getUrl Url}
  • - *
  • {@link in.handyman.dsl.Rest#getMethod Method}
  • - *
  • {@link in.handyman.dsl.Rest#getResourcedatafrom Resourcedatafrom}
  • - *
  • {@link in.handyman.dsl.Rest#getUrldata Urldata}
  • - *
  • {@link in.handyman.dsl.Rest#getHeaderdatafrom Headerdatafrom}
  • - *
  • {@link in.handyman.dsl.Rest#getHeaderdata Headerdata}
  • - *
  • {@link in.handyman.dsl.Rest#getPostdatafrom Postdatafrom}
  • - *
  • {@link in.handyman.dsl.Rest#getParentName Parent Name}
  • - *
  • {@link in.handyman.dsl.Rest#getParentdata Parentdata}
  • - *
  • {@link in.handyman.dsl.Rest#getParts Parts}
  • - *
  • {@link in.handyman.dsl.Rest#getAckdatato Ackdatato}
  • - *
  • {@link in.handyman.dsl.Rest#getAckdata Ackdata}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getRest() - * @model - * @generated - */ -public interface Rest extends Action -{ - /** - * Returns the value of the 'Authtoken' attribute. - * - *

- * If the meaning of the 'Authtoken' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Authtoken' attribute. - * @see #setAuthtoken(String) - * @see in.handyman.dsl.DslPackage#getRest_Authtoken() - * @model - * @generated - */ - String getAuthtoken(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getAuthtoken Authtoken}' attribute. - * - * - * @param value the new value of the 'Authtoken' attribute. - * @see #getAuthtoken() - * @generated - */ - void setAuthtoken(String value); - - /** - * Returns the value of the 'Url' attribute. - * - *

- * If the meaning of the 'Url' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Url' attribute. - * @see #setUrl(String) - * @see in.handyman.dsl.DslPackage#getRest_Url() - * @model - * @generated - */ - String getUrl(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getUrl Url}' attribute. - * - * - * @param value the new value of the 'Url' attribute. - * @see #getUrl() - * @generated - */ - void setUrl(String value); - - /** - * Returns the value of the 'Method' attribute. - * - *

- * If the meaning of the 'Method' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Method' attribute. - * @see #setMethod(String) - * @see in.handyman.dsl.DslPackage#getRest_Method() - * @model - * @generated - */ - String getMethod(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getMethod Method}' attribute. - * - * - * @param value the new value of the 'Method' attribute. - * @see #getMethod() - * @generated - */ - void setMethod(String value); - - /** - * Returns the value of the 'Resourcedatafrom' attribute. - * - *

- * If the meaning of the 'Resourcedatafrom' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Resourcedatafrom' attribute. - * @see #setResourcedatafrom(String) - * @see in.handyman.dsl.DslPackage#getRest_Resourcedatafrom() - * @model - * @generated - */ - String getResourcedatafrom(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getResourcedatafrom Resourcedatafrom}' attribute. - * - * - * @param value the new value of the 'Resourcedatafrom' attribute. - * @see #getResourcedatafrom() - * @generated - */ - void setResourcedatafrom(String value); - - /** - * Returns the value of the 'Urldata' attribute. - * - *

- * If the meaning of the 'Urldata' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Urldata' attribute. - * @see #setUrldata(String) - * @see in.handyman.dsl.DslPackage#getRest_Urldata() - * @model - * @generated - */ - String getUrldata(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getUrldata Urldata}' attribute. - * - * - * @param value the new value of the 'Urldata' attribute. - * @see #getUrldata() - * @generated - */ - void setUrldata(String value); - - /** - * Returns the value of the 'Headerdatafrom' attribute. - * - *

- * If the meaning of the 'Headerdatafrom' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Headerdatafrom' attribute. - * @see #setHeaderdatafrom(String) - * @see in.handyman.dsl.DslPackage#getRest_Headerdatafrom() - * @model - * @generated - */ - String getHeaderdatafrom(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getHeaderdatafrom Headerdatafrom}' attribute. - * - * - * @param value the new value of the 'Headerdatafrom' attribute. - * @see #getHeaderdatafrom() - * @generated - */ - void setHeaderdatafrom(String value); - - /** - * Returns the value of the 'Headerdata' attribute. - * - *

- * If the meaning of the 'Headerdata' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Headerdata' attribute. - * @see #setHeaderdata(String) - * @see in.handyman.dsl.DslPackage#getRest_Headerdata() - * @model - * @generated - */ - String getHeaderdata(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getHeaderdata Headerdata}' attribute. - * - * - * @param value the new value of the 'Headerdata' attribute. - * @see #getHeaderdata() - * @generated - */ - void setHeaderdata(String value); - - /** - * Returns the value of the 'Postdatafrom' attribute. - * - *

- * If the meaning of the 'Postdatafrom' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Postdatafrom' attribute. - * @see #setPostdatafrom(String) - * @see in.handyman.dsl.DslPackage#getRest_Postdatafrom() - * @model - * @generated - */ - String getPostdatafrom(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getPostdatafrom Postdatafrom}' attribute. - * - * - * @param value the new value of the 'Postdatafrom' attribute. - * @see #getPostdatafrom() - * @generated - */ - void setPostdatafrom(String value); - - /** - * Returns the value of the 'Parent Name' attribute. - * - *

- * If the meaning of the 'Parent Name' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Parent Name' attribute. - * @see #setParentName(String) - * @see in.handyman.dsl.DslPackage#getRest_ParentName() - * @model - * @generated - */ - String getParentName(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getParentName Parent Name}' attribute. - * - * - * @param value the new value of the 'Parent Name' attribute. - * @see #getParentName() - * @generated - */ - void setParentName(String value); - - /** - * Returns the value of the 'Parentdata' attribute. - * - *

- * If the meaning of the 'Parentdata' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Parentdata' attribute. - * @see #setParentdata(String) - * @see in.handyman.dsl.DslPackage#getRest_Parentdata() - * @model - * @generated - */ - String getParentdata(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getParentdata Parentdata}' attribute. - * - * - * @param value the new value of the 'Parentdata' attribute. - * @see #getParentdata() - * @generated - */ - void setParentdata(String value); - - /** - * Returns the value of the 'Parts' containment reference list. - * The list contents are of type {@link in.handyman.dsl.RestPart}. - * - *

- * If the meaning of the 'Parts' containment reference list isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Parts' containment reference list. - * @see in.handyman.dsl.DslPackage#getRest_Parts() - * @model containment="true" - * @generated - */ - EList getParts(); - - /** - * Returns the value of the 'Ackdatato' attribute. - * - *

- * If the meaning of the 'Ackdatato' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Ackdatato' attribute. - * @see #setAckdatato(String) - * @see in.handyman.dsl.DslPackage#getRest_Ackdatato() - * @model - * @generated - */ - String getAckdatato(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getAckdatato Ackdatato}' attribute. - * - * - * @param value the new value of the 'Ackdatato' attribute. - * @see #getAckdatato() - * @generated - */ - void setAckdatato(String value); - - /** - * Returns the value of the 'Ackdata' attribute. - * - *

- * If the meaning of the 'Ackdata' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Ackdata' attribute. - * @see #setAckdata(String) - * @see in.handyman.dsl.DslPackage#getRest_Ackdata() - * @model - * @generated - */ - String getAckdata(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Rest#getAckdata Ackdata}' attribute. - * - * - * @param value the new value of the 'Ackdata' attribute. - * @see #getAckdata() - * @generated - */ - void setAckdata(String value); - -} // Rest diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/RestPart.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/RestPart.java deleted file mode 100644 index 2daa8c29..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/RestPart.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Rest Part'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.RestPart#getPartName Part Name}
  • - *
  • {@link in.handyman.dsl.RestPart#getPartData Part Data}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getRestPart() - * @model - * @generated - */ -public interface RestPart extends EObject -{ - /** - * Returns the value of the 'Part Name' attribute. - * - *

- * If the meaning of the 'Part Name' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Part Name' attribute. - * @see #setPartName(String) - * @see in.handyman.dsl.DslPackage#getRestPart_PartName() - * @model - * @generated - */ - String getPartName(); - - /** - * Sets the value of the '{@link in.handyman.dsl.RestPart#getPartName Part Name}' attribute. - * - * - * @param value the new value of the 'Part Name' attribute. - * @see #getPartName() - * @generated - */ - void setPartName(String value); - - /** - * Returns the value of the 'Part Data' attribute. - * - *

- * If the meaning of the 'Part Data' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Part Data' attribute. - * @see #setPartData(String) - * @see in.handyman.dsl.DslPackage#getRestPart_PartData() - * @model - * @generated - */ - String getPartData(); - - /** - * Sets the value of the '{@link in.handyman.dsl.RestPart#getPartData Part Data}' attribute. - * - * - * @param value the new value of the 'Part Data' attribute. - * @see #getPartData() - * @generated - */ - void setPartData(String value); - -} // RestPart diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/SendMail.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/SendMail.java deleted file mode 100644 index 73301574..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/SendMail.java +++ /dev/null @@ -1,159 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Send Mail'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.SendMail#getPrivateKey Private Key}
  • - *
  • {@link in.handyman.dsl.SendMail#getImpersonatedUser Impersonated User}
  • - *
  • {@link in.handyman.dsl.SendMail#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.SendMail#getValue Value}
  • - *
  • {@link in.handyman.dsl.SendMail#getDryrunMail Dryrun Mail}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getSendMail() - * @model - * @generated - */ -public interface SendMail extends Action -{ - /** - * Returns the value of the 'Private Key' attribute. - * - *

- * If the meaning of the 'Private Key' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Private Key' attribute. - * @see #setPrivateKey(String) - * @see in.handyman.dsl.DslPackage#getSendMail_PrivateKey() - * @model - * @generated - */ - String getPrivateKey(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SendMail#getPrivateKey Private Key}' attribute. - * - * - * @param value the new value of the 'Private Key' attribute. - * @see #getPrivateKey() - * @generated - */ - void setPrivateKey(String value); - - /** - * Returns the value of the 'Impersonated User' attribute. - * - *

- * If the meaning of the 'Impersonated User' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Impersonated User' attribute. - * @see #setImpersonatedUser(String) - * @see in.handyman.dsl.DslPackage#getSendMail_ImpersonatedUser() - * @model - * @generated - */ - String getImpersonatedUser(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SendMail#getImpersonatedUser Impersonated User}' attribute. - * - * - * @param value the new value of the 'Impersonated User' attribute. - * @see #getImpersonatedUser() - * @generated - */ - void setImpersonatedUser(String value); - - /** - * Returns the value of the 'Db Src' attribute. - * - *

- * If the meaning of the 'Db Src' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Db Src' attribute. - * @see #setDbSrc(String) - * @see in.handyman.dsl.DslPackage#getSendMail_DbSrc() - * @model - * @generated - */ - String getDbSrc(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SendMail#getDbSrc Db Src}' attribute. - * - * - * @param value the new value of the 'Db Src' attribute. - * @see #getDbSrc() - * @generated - */ - void setDbSrc(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getSendMail_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SendMail#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - - /** - * Returns the value of the 'Dryrun Mail' attribute. - * - *

- * If the meaning of the 'Dryrun Mail' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Dryrun Mail' attribute. - * @see #setDryrunMail(String) - * @see in.handyman.dsl.DslPackage#getSendMail_DryrunMail() - * @model - * @generated - */ - String getDryrunMail(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SendMail#getDryrunMail Dryrun Mail}' attribute. - * - * - * @param value the new value of the 'Dryrun Mail' attribute. - * @see #getDryrunMail() - * @generated - */ - void setDryrunMail(String value); - -} // SendMail diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/SlackPUT.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/SlackPUT.java deleted file mode 100644 index c1d227cd..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/SlackPUT.java +++ /dev/null @@ -1,105 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Slack PUT'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.SlackPUT#getTeam Team}
  • - *
  • {@link in.handyman.dsl.SlackPUT#getChannel Channel}
  • - *
  • {@link in.handyman.dsl.SlackPUT#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getSlackPUT() - * @model - * @generated - */ -public interface SlackPUT extends Action -{ - /** - * Returns the value of the 'Team' attribute. - * - *

- * If the meaning of the 'Team' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Team' attribute. - * @see #setTeam(String) - * @see in.handyman.dsl.DslPackage#getSlackPUT_Team() - * @model - * @generated - */ - String getTeam(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SlackPUT#getTeam Team}' attribute. - * - * - * @param value the new value of the 'Team' attribute. - * @see #getTeam() - * @generated - */ - void setTeam(String value); - - /** - * Returns the value of the 'Channel' attribute. - * - *

- * If the meaning of the 'Channel' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Channel' attribute. - * @see #setChannel(String) - * @see in.handyman.dsl.DslPackage#getSlackPUT_Channel() - * @model - * @generated - */ - String getChannel(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SlackPUT#getChannel Channel}' attribute. - * - * - * @param value the new value of the 'Channel' attribute. - * @see #getChannel() - * @generated - */ - void setChannel(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getSlackPUT_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SlackPUT#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // SlackPUT diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/SmsLeadSms.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/SmsLeadSms.java deleted file mode 100644 index 375e3d5a..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/SmsLeadSms.java +++ /dev/null @@ -1,213 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Sms Lead Sms'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.SmsLeadSms#getUrl Url}
  • - *
  • {@link in.handyman.dsl.SmsLeadSms#getSender Sender}
  • - *
  • {@link in.handyman.dsl.SmsLeadSms#getAccount Account}
  • - *
  • {@link in.handyman.dsl.SmsLeadSms#getPrivateKey Private Key}
  • - *
  • {@link in.handyman.dsl.SmsLeadSms#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.SmsLeadSms#getValue Value}
  • - *
  • {@link in.handyman.dsl.SmsLeadSms#getDryrunNumber Dryrun Number}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getSmsLeadSms() - * @model - * @generated - */ -public interface SmsLeadSms extends Action -{ - /** - * Returns the value of the 'Url' attribute. - * - *

- * If the meaning of the 'Url' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Url' attribute. - * @see #setUrl(String) - * @see in.handyman.dsl.DslPackage#getSmsLeadSms_Url() - * @model - * @generated - */ - String getUrl(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SmsLeadSms#getUrl Url}' attribute. - * - * - * @param value the new value of the 'Url' attribute. - * @see #getUrl() - * @generated - */ - void setUrl(String value); - - /** - * Returns the value of the 'Sender' attribute. - * - *

- * If the meaning of the 'Sender' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Sender' attribute. - * @see #setSender(String) - * @see in.handyman.dsl.DslPackage#getSmsLeadSms_Sender() - * @model - * @generated - */ - String getSender(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SmsLeadSms#getSender Sender}' attribute. - * - * - * @param value the new value of the 'Sender' attribute. - * @see #getSender() - * @generated - */ - void setSender(String value); - - /** - * Returns the value of the 'Account' attribute. - * - *

- * If the meaning of the 'Account' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Account' attribute. - * @see #setAccount(String) - * @see in.handyman.dsl.DslPackage#getSmsLeadSms_Account() - * @model - * @generated - */ - String getAccount(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SmsLeadSms#getAccount Account}' attribute. - * - * - * @param value the new value of the 'Account' attribute. - * @see #getAccount() - * @generated - */ - void setAccount(String value); - - /** - * Returns the value of the 'Private Key' attribute. - * - *

- * If the meaning of the 'Private Key' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Private Key' attribute. - * @see #setPrivateKey(String) - * @see in.handyman.dsl.DslPackage#getSmsLeadSms_PrivateKey() - * @model - * @generated - */ - String getPrivateKey(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SmsLeadSms#getPrivateKey Private Key}' attribute. - * - * - * @param value the new value of the 'Private Key' attribute. - * @see #getPrivateKey() - * @generated - */ - void setPrivateKey(String value); - - /** - * Returns the value of the 'Db Src' attribute. - * - *

- * If the meaning of the 'Db Src' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Db Src' attribute. - * @see #setDbSrc(String) - * @see in.handyman.dsl.DslPackage#getSmsLeadSms_DbSrc() - * @model - * @generated - */ - String getDbSrc(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SmsLeadSms#getDbSrc Db Src}' attribute. - * - * - * @param value the new value of the 'Db Src' attribute. - * @see #getDbSrc() - * @generated - */ - void setDbSrc(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getSmsLeadSms_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SmsLeadSms#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - - /** - * Returns the value of the 'Dryrun Number' attribute. - * - *

- * If the meaning of the 'Dryrun Number' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Dryrun Number' attribute. - * @see #setDryrunNumber(String) - * @see in.handyman.dsl.DslPackage#getSmsLeadSms_DryrunNumber() - * @model - * @generated - */ - String getDryrunNumber(); - - /** - * Sets the value of the '{@link in.handyman.dsl.SmsLeadSms#getDryrunNumber Dryrun Number}' attribute. - * - * - * @param value the new value of the 'Dryrun Number' attribute. - * @see #getDryrunNumber() - * @generated - */ - void setDryrunNumber(String value); - -} // SmsLeadSms diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Spawnprocess.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Spawnprocess.java deleted file mode 100644 index def0259a..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Spawnprocess.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Spawnprocess'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Spawnprocess#getTarget Target}
  • - *
  • {@link in.handyman.dsl.Spawnprocess#getSource Source}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getSpawnprocess() - * @model - * @generated - */ -public interface Spawnprocess extends Action -{ - /** - * Returns the value of the 'Target' attribute. - * - *

- * If the meaning of the 'Target' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Target' attribute. - * @see #setTarget(String) - * @see in.handyman.dsl.DslPackage#getSpawnprocess_Target() - * @model - * @generated - */ - String getTarget(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Spawnprocess#getTarget Target}' attribute. - * - * - * @param value the new value of the 'Target' attribute. - * @see #getTarget() - * @generated - */ - void setTarget(String value); - - /** - * Returns the value of the 'Source' attribute. - * - *

- * If the meaning of the 'Source' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Source' attribute. - * @see #setSource(String) - * @see in.handyman.dsl.DslPackage#getSpawnprocess_Source() - * @model - * @generated - */ - String getSource(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Spawnprocess#getSource Source}' attribute. - * - * - * @param value the new value of the 'Source' attribute. - * @see #getSource() - * @generated - */ - void setSource(String value); - -} // Spawnprocess diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/StartProcess.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/StartProcess.java deleted file mode 100644 index e1134c60..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/StartProcess.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Start Process'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.StartProcess#getName Name}
  • - *
  • {@link in.handyman.dsl.StartProcess#getTarget Target}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getStartProcess() - * @model - * @generated - */ -public interface StartProcess extends EObject -{ - /** - * Returns the value of the 'Name' attribute. - * - *

- * If the meaning of the 'Name' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see in.handyman.dsl.DslPackage#getStartProcess_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link in.handyman.dsl.StartProcess#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - - /** - * Returns the value of the 'Target' attribute. - * - *

- * If the meaning of the 'Target' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Target' attribute. - * @see #setTarget(String) - * @see in.handyman.dsl.DslPackage#getStartProcess_Target() - * @model - * @generated - */ - String getTarget(); - - /** - * Sets the value of the '{@link in.handyman.dsl.StartProcess#getTarget Target}' attribute. - * - * - * @param value the new value of the 'Target' attribute. - * @see #getTarget() - * @generated - */ - void setTarget(String value); - -} // StartProcess diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Transform.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Transform.java deleted file mode 100644 index f70d393c..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Transform.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.common.util.EList; - -/** - * - * A representation of the model object 'Transform'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Transform#getOn On}
  • - *
  • {@link in.handyman.dsl.Transform#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getTransform() - * @model - * @generated - */ -public interface Transform extends Action -{ - /** - * Returns the value of the 'On' attribute. - * - *

- * If the meaning of the 'On' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'On' attribute. - * @see #setOn(String) - * @see in.handyman.dsl.DslPackage#getTransform_On() - * @model - * @generated - */ - String getOn(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Transform#getOn On}' attribute. - * - * - * @param value the new value of the 'On' attribute. - * @see #getOn() - * @generated - */ - void setOn(String value); - - /** - * Returns the value of the 'Value' attribute list. - * The list contents are of type {@link java.lang.String}. - * - *

- * If the meaning of the 'Value' attribute list isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute list. - * @see in.handyman.dsl.DslPackage#getTransform_Value() - * @model unique="false" - * @generated - */ - EList getValue(); - -} // Transform diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/TrelloGET.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/TrelloGET.java deleted file mode 100644 index 25512882..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/TrelloGET.java +++ /dev/null @@ -1,186 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Trello GET'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.TrelloGET#getAuthtoken Authtoken}
  • - *
  • {@link in.handyman.dsl.TrelloGET#getKey Key}
  • - *
  • {@link in.handyman.dsl.TrelloGET#getUseraccount Useraccount}
  • - *
  • {@link in.handyman.dsl.TrelloGET#getBoard Board}
  • - *
  • {@link in.handyman.dsl.TrelloGET#getTarget Target}
  • - *
  • {@link in.handyman.dsl.TrelloGET#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getTrelloGET() - * @model - * @generated - */ -public interface TrelloGET extends Action -{ - /** - * Returns the value of the 'Authtoken' attribute. - * - *

- * If the meaning of the 'Authtoken' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Authtoken' attribute. - * @see #setAuthtoken(String) - * @see in.handyman.dsl.DslPackage#getTrelloGET_Authtoken() - * @model - * @generated - */ - String getAuthtoken(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloGET#getAuthtoken Authtoken}' attribute. - * - * - * @param value the new value of the 'Authtoken' attribute. - * @see #getAuthtoken() - * @generated - */ - void setAuthtoken(String value); - - /** - * Returns the value of the 'Key' attribute. - * - *

- * If the meaning of the 'Key' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Key' attribute. - * @see #setKey(String) - * @see in.handyman.dsl.DslPackage#getTrelloGET_Key() - * @model - * @generated - */ - String getKey(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloGET#getKey Key}' attribute. - * - * - * @param value the new value of the 'Key' attribute. - * @see #getKey() - * @generated - */ - void setKey(String value); - - /** - * Returns the value of the 'Useraccount' attribute. - * - *

- * If the meaning of the 'Useraccount' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Useraccount' attribute. - * @see #setUseraccount(String) - * @see in.handyman.dsl.DslPackage#getTrelloGET_Useraccount() - * @model - * @generated - */ - String getUseraccount(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloGET#getUseraccount Useraccount}' attribute. - * - * - * @param value the new value of the 'Useraccount' attribute. - * @see #getUseraccount() - * @generated - */ - void setUseraccount(String value); - - /** - * Returns the value of the 'Board' attribute. - * - *

- * If the meaning of the 'Board' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Board' attribute. - * @see #setBoard(String) - * @see in.handyman.dsl.DslPackage#getTrelloGET_Board() - * @model - * @generated - */ - String getBoard(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloGET#getBoard Board}' attribute. - * - * - * @param value the new value of the 'Board' attribute. - * @see #getBoard() - * @generated - */ - void setBoard(String value); - - /** - * Returns the value of the 'Target' attribute. - * - *

- * If the meaning of the 'Target' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Target' attribute. - * @see #setTarget(String) - * @see in.handyman.dsl.DslPackage#getTrelloGET_Target() - * @model - * @generated - */ - String getTarget(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloGET#getTarget Target}' attribute. - * - * - * @param value the new value of the 'Target' attribute. - * @see #getTarget() - * @generated - */ - void setTarget(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getTrelloGET_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloGET#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // TrelloGET diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/TrelloPUT.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/TrelloPUT.java deleted file mode 100644 index 8e3d798e..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/TrelloPUT.java +++ /dev/null @@ -1,186 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Trello PUT'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.TrelloPUT#getAuthtoken Authtoken}
  • - *
  • {@link in.handyman.dsl.TrelloPUT#getKey Key}
  • - *
  • {@link in.handyman.dsl.TrelloPUT#getUseraccount Useraccount}
  • - *
  • {@link in.handyman.dsl.TrelloPUT#getList List}
  • - *
  • {@link in.handyman.dsl.TrelloPUT#getSource Source}
  • - *
  • {@link in.handyman.dsl.TrelloPUT#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getTrelloPUT() - * @model - * @generated - */ -public interface TrelloPUT extends Action -{ - /** - * Returns the value of the 'Authtoken' attribute. - * - *

- * If the meaning of the 'Authtoken' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Authtoken' attribute. - * @see #setAuthtoken(String) - * @see in.handyman.dsl.DslPackage#getTrelloPUT_Authtoken() - * @model - * @generated - */ - String getAuthtoken(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloPUT#getAuthtoken Authtoken}' attribute. - * - * - * @param value the new value of the 'Authtoken' attribute. - * @see #getAuthtoken() - * @generated - */ - void setAuthtoken(String value); - - /** - * Returns the value of the 'Key' attribute. - * - *

- * If the meaning of the 'Key' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Key' attribute. - * @see #setKey(String) - * @see in.handyman.dsl.DslPackage#getTrelloPUT_Key() - * @model - * @generated - */ - String getKey(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloPUT#getKey Key}' attribute. - * - * - * @param value the new value of the 'Key' attribute. - * @see #getKey() - * @generated - */ - void setKey(String value); - - /** - * Returns the value of the 'Useraccount' attribute. - * - *

- * If the meaning of the 'Useraccount' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Useraccount' attribute. - * @see #setUseraccount(String) - * @see in.handyman.dsl.DslPackage#getTrelloPUT_Useraccount() - * @model - * @generated - */ - String getUseraccount(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloPUT#getUseraccount Useraccount}' attribute. - * - * - * @param value the new value of the 'Useraccount' attribute. - * @see #getUseraccount() - * @generated - */ - void setUseraccount(String value); - - /** - * Returns the value of the 'List' attribute. - * - *

- * If the meaning of the 'List' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'List' attribute. - * @see #setList(String) - * @see in.handyman.dsl.DslPackage#getTrelloPUT_List() - * @model - * @generated - */ - String getList(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloPUT#getList List}' attribute. - * - * - * @param value the new value of the 'List' attribute. - * @see #getList() - * @generated - */ - void setList(String value); - - /** - * Returns the value of the 'Source' attribute. - * - *

- * If the meaning of the 'Source' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Source' attribute. - * @see #setSource(String) - * @see in.handyman.dsl.DslPackage#getTrelloPUT_Source() - * @model - * @generated - */ - String getSource(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloPUT#getSource Source}' attribute. - * - * - * @param value the new value of the 'Source' attribute. - * @see #getSource() - * @generated - */ - void setSource(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getTrelloPUT_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.TrelloPUT#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // TrelloPUT diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Try.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Try.java deleted file mode 100644 index d196dbfe..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Try.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Try'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Try#getName Name}
  • - *
  • {@link in.handyman.dsl.Try#getAction Action}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getTry() - * @model - * @generated - */ -public interface Try extends EObject -{ - /** - * Returns the value of the 'Name' attribute. - * - *

- * If the meaning of the 'Name' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see in.handyman.dsl.DslPackage#getTry_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Try#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - - /** - * Returns the value of the 'Action' containment reference list. - * The list contents are of type {@link in.handyman.dsl.Action}. - * - *

- * If the meaning of the 'Action' containment reference list isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Action' containment reference list. - * @see in.handyman.dsl.DslPackage#getTry_Action() - * @model containment="true" - * @generated - */ - EList getAction(); - -} // Try diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Updatedaudit.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Updatedaudit.java deleted file mode 100644 index f90520f1..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/Updatedaudit.java +++ /dev/null @@ -1,105 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Updatedaudit'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.Updatedaudit#getLogsink Logsink}
  • - *
  • {@link in.handyman.dsl.Updatedaudit#getDatasource Datasource}
  • - *
  • {@link in.handyman.dsl.Updatedaudit#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getUpdatedaudit() - * @model - * @generated - */ -public interface Updatedaudit extends Action -{ - /** - * Returns the value of the 'Logsink' attribute. - * - *

- * If the meaning of the 'Logsink' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Logsink' attribute. - * @see #setLogsink(String) - * @see in.handyman.dsl.DslPackage#getUpdatedaudit_Logsink() - * @model - * @generated - */ - String getLogsink(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Updatedaudit#getLogsink Logsink}' attribute. - * - * - * @param value the new value of the 'Logsink' attribute. - * @see #getLogsink() - * @generated - */ - void setLogsink(String value); - - /** - * Returns the value of the 'Datasource' attribute. - * - *

- * If the meaning of the 'Datasource' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Datasource' attribute. - * @see #setDatasource(String) - * @see in.handyman.dsl.DslPackage#getUpdatedaudit_Datasource() - * @model - * @generated - */ - String getDatasource(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Updatedaudit#getDatasource Datasource}' attribute. - * - * - * @param value the new value of the 'Datasource' attribute. - * @see #getDatasource() - * @generated - */ - void setDatasource(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getUpdatedaudit_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.Updatedaudit#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // Updatedaudit diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/WriteCsv.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/WriteCsv.java deleted file mode 100644 index f2868f65..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/WriteCsv.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl; - - -/** - * - * A representation of the model object 'Write Csv'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link in.handyman.dsl.WriteCsv#getSource Source}
  • - *
  • {@link in.handyman.dsl.WriteCsv#getTo To}
  • - *
  • {@link in.handyman.dsl.WriteCsv#getDelim Delim}
  • - *
  • {@link in.handyman.dsl.WriteCsv#getValue Value}
  • - *
- * - * @see in.handyman.dsl.DslPackage#getWriteCsv() - * @model - * @generated - */ -public interface WriteCsv extends Action -{ - /** - * Returns the value of the 'Source' attribute. - * - *

- * If the meaning of the 'Source' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Source' attribute. - * @see #setSource(String) - * @see in.handyman.dsl.DslPackage#getWriteCsv_Source() - * @model - * @generated - */ - String getSource(); - - /** - * Sets the value of the '{@link in.handyman.dsl.WriteCsv#getSource Source}' attribute. - * - * - * @param value the new value of the 'Source' attribute. - * @see #getSource() - * @generated - */ - void setSource(String value); - - /** - * Returns the value of the 'To' attribute. - * - *

- * If the meaning of the 'To' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'To' attribute. - * @see #setTo(String) - * @see in.handyman.dsl.DslPackage#getWriteCsv_To() - * @model - * @generated - */ - String getTo(); - - /** - * Sets the value of the '{@link in.handyman.dsl.WriteCsv#getTo To}' attribute. - * - * - * @param value the new value of the 'To' attribute. - * @see #getTo() - * @generated - */ - void setTo(String value); - - /** - * Returns the value of the 'Delim' attribute. - * - *

- * If the meaning of the 'Delim' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Delim' attribute. - * @see #setDelim(String) - * @see in.handyman.dsl.DslPackage#getWriteCsv_Delim() - * @model - * @generated - */ - String getDelim(); - - /** - * Sets the value of the '{@link in.handyman.dsl.WriteCsv#getDelim Delim}' attribute. - * - * - * @param value the new value of the 'Delim' attribute. - * @see #getDelim() - * @generated - */ - void setDelim(String value); - - /** - * Returns the value of the 'Value' attribute. - * - *

- * If the meaning of the 'Value' attribute isn't clear, - * there really should be more of a description here... - *

- * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see in.handyman.dsl.DslPackage#getWriteCsv_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link in.handyman.dsl.WriteCsv#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // WriteCsv diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/AbortImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/AbortImpl.java deleted file mode 100644 index e0b5f555..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/AbortImpl.java +++ /dev/null @@ -1,177 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Abort; -import in.handyman.dsl.DslPackage; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Abort'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.AbortImpl#getValue Value}
  • - *
- * - * @generated - */ -public class AbortImpl extends ActionImpl implements Abort -{ - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected AbortImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.ABORT; - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.ABORT__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.ABORT__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.ABORT__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.ABORT__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.ABORT__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //AbortImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ActionImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ActionImpl.java deleted file mode 100644 index 24835473..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ActionImpl.java +++ /dev/null @@ -1,266 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Action; -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.Expression; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -/** - * - * An implementation of the model object 'Action'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.ActionImpl#getName Name}
  • - *
  • {@link in.handyman.dsl.impl.ActionImpl#getCondition Condition}
  • - *
- * - * @generated - */ -public class ActionImpl extends MinimalEObjectImpl.Container implements Action -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * The cached value of the '{@link #getCondition() Condition}' containment reference. - * - * - * @see #getCondition() - * @generated - * @ordered - */ - protected Expression condition; - - /** - * - * - * @generated - */ - protected ActionImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.ACTION; - } - - /** - * - * - * @generated - */ - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.ACTION__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - public Expression getCondition() - { - return condition; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetCondition(Expression newCondition, NotificationChain msgs) - { - Expression oldCondition = condition; - condition = newCondition; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DslPackage.ACTION__CONDITION, oldCondition, newCondition); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - public void setCondition(Expression newCondition) - { - if (newCondition != condition) - { - NotificationChain msgs = null; - if (condition != null) - msgs = ((InternalEObject)condition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DslPackage.ACTION__CONDITION, null, msgs); - if (newCondition != null) - msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DslPackage.ACTION__CONDITION, null, msgs); - msgs = basicSetCondition(newCondition, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.ACTION__CONDITION, newCondition, newCondition)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case DslPackage.ACTION__CONDITION: - return basicSetCondition(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.ACTION__NAME: - return getName(); - case DslPackage.ACTION__CONDITION: - return getCondition(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.ACTION__NAME: - setName((String)newValue); - return; - case DslPackage.ACTION__CONDITION: - setCondition((Expression)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.ACTION__NAME: - setName(NAME_EDEFAULT); - return; - case DslPackage.ACTION__CONDITION: - setCondition((Expression)null); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.ACTION__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case DslPackage.ACTION__CONDITION: - return condition != null; - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //ActionImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/CallprocessImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/CallprocessImpl.java deleted file mode 100644 index 952ea69f..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/CallprocessImpl.java +++ /dev/null @@ -1,345 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Callprocess; -import in.handyman.dsl.DslPackage; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Callprocess'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.CallprocessImpl#getTarget Target}
  • - *
  • {@link in.handyman.dsl.impl.CallprocessImpl#getSource Source}
  • - *
  • {@link in.handyman.dsl.impl.CallprocessImpl#getDatasource Datasource}
  • - *
  • {@link in.handyman.dsl.impl.CallprocessImpl#getValue Value}
  • - *
- * - * @generated - */ -public class CallprocessImpl extends ActionImpl implements Callprocess -{ - /** - * The default value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected static final String TARGET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected String target = TARGET_EDEFAULT; - - /** - * The default value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected static final String SOURCE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected String source = SOURCE_EDEFAULT; - - /** - * The default value of the '{@link #getDatasource() Datasource}' attribute. - * - * - * @see #getDatasource() - * @generated - * @ordered - */ - protected static final String DATASOURCE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDatasource() Datasource}' attribute. - * - * - * @see #getDatasource() - * @generated - * @ordered - */ - protected String datasource = DATASOURCE_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected CallprocessImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.CALLPROCESS; - } - - /** - * - * - * @generated - */ - public String getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public void setTarget(String newTarget) - { - String oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.CALLPROCESS__TARGET, oldTarget, target)); - } - - /** - * - * - * @generated - */ - public String getSource() - { - return source; - } - - /** - * - * - * @generated - */ - public void setSource(String newSource) - { - String oldSource = source; - source = newSource; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.CALLPROCESS__SOURCE, oldSource, source)); - } - - /** - * - * - * @generated - */ - public String getDatasource() - { - return datasource; - } - - /** - * - * - * @generated - */ - public void setDatasource(String newDatasource) - { - String oldDatasource = datasource; - datasource = newDatasource; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.CALLPROCESS__DATASOURCE, oldDatasource, datasource)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.CALLPROCESS__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.CALLPROCESS__TARGET: - return getTarget(); - case DslPackage.CALLPROCESS__SOURCE: - return getSource(); - case DslPackage.CALLPROCESS__DATASOURCE: - return getDatasource(); - case DslPackage.CALLPROCESS__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.CALLPROCESS__TARGET: - setTarget((String)newValue); - return; - case DslPackage.CALLPROCESS__SOURCE: - setSource((String)newValue); - return; - case DslPackage.CALLPROCESS__DATASOURCE: - setDatasource((String)newValue); - return; - case DslPackage.CALLPROCESS__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.CALLPROCESS__TARGET: - setTarget(TARGET_EDEFAULT); - return; - case DslPackage.CALLPROCESS__SOURCE: - setSource(SOURCE_EDEFAULT); - return; - case DslPackage.CALLPROCESS__DATASOURCE: - setDatasource(DATASOURCE_EDEFAULT); - return; - case DslPackage.CALLPROCESS__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.CALLPROCESS__TARGET: - return TARGET_EDEFAULT == null ? target != null : !TARGET_EDEFAULT.equals(target); - case DslPackage.CALLPROCESS__SOURCE: - return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); - case DslPackage.CALLPROCESS__DATASOURCE: - return DATASOURCE_EDEFAULT == null ? datasource != null : !DATASOURCE_EDEFAULT.equals(datasource); - case DslPackage.CALLPROCESS__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (target: "); - result.append(target); - result.append(", source: "); - result.append(source); - result.append(", datasource: "); - result.append(datasource); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //CallprocessImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/CatchImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/CatchImpl.java deleted file mode 100644 index 1c97c003..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/CatchImpl.java +++ /dev/null @@ -1,241 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Action; -import in.handyman.dsl.Catch; -import in.handyman.dsl.DslPackage; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -/** - * - * An implementation of the model object 'Catch'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.CatchImpl#getName Name}
  • - *
  • {@link in.handyman.dsl.impl.CatchImpl#getAction Action}
  • - *
- * - * @generated - */ -public class CatchImpl extends MinimalEObjectImpl.Container implements Catch -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * The cached value of the '{@link #getAction() Action}' containment reference list. - * - * - * @see #getAction() - * @generated - * @ordered - */ - protected EList action; - - /** - * - * - * @generated - */ - protected CatchImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.CATCH; - } - - /** - * - * - * @generated - */ - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.CATCH__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - public EList getAction() - { - if (action == null) - { - action = new EObjectContainmentEList(Action.class, this, DslPackage.CATCH__ACTION); - } - return action; - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case DslPackage.CATCH__ACTION: - return ((InternalEList)getAction()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.CATCH__NAME: - return getName(); - case DslPackage.CATCH__ACTION: - return getAction(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.CATCH__NAME: - setName((String)newValue); - return; - case DslPackage.CATCH__ACTION: - getAction().clear(); - getAction().addAll((Collection)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.CATCH__NAME: - setName(NAME_EDEFAULT); - return; - case DslPackage.CATCH__ACTION: - getAction().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.CATCH__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case DslPackage.CATCH__ACTION: - return action != null && !action.isEmpty(); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //CatchImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ClickSendSmsImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ClickSendSmsImpl.java deleted file mode 100644 index e99bee07..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ClickSendSmsImpl.java +++ /dev/null @@ -1,345 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.ClickSendSms; -import in.handyman.dsl.DslPackage; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Click Send Sms'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.ClickSendSmsImpl#getUserid Userid}
  • - *
  • {@link in.handyman.dsl.impl.ClickSendSmsImpl#getSecurityKey Security Key}
  • - *
  • {@link in.handyman.dsl.impl.ClickSendSmsImpl#getTarget Target}
  • - *
  • {@link in.handyman.dsl.impl.ClickSendSmsImpl#getValue Value}
  • - *
- * - * @generated - */ -public class ClickSendSmsImpl extends ActionImpl implements ClickSendSms -{ - /** - * The default value of the '{@link #getUserid() Userid}' attribute. - * - * - * @see #getUserid() - * @generated - * @ordered - */ - protected static final String USERID_EDEFAULT = null; - - /** - * The cached value of the '{@link #getUserid() Userid}' attribute. - * - * - * @see #getUserid() - * @generated - * @ordered - */ - protected String userid = USERID_EDEFAULT; - - /** - * The default value of the '{@link #getSecurityKey() Security Key}' attribute. - * - * - * @see #getSecurityKey() - * @generated - * @ordered - */ - protected static final String SECURITY_KEY_EDEFAULT = null; - - /** - * The cached value of the '{@link #getSecurityKey() Security Key}' attribute. - * - * - * @see #getSecurityKey() - * @generated - * @ordered - */ - protected String securityKey = SECURITY_KEY_EDEFAULT; - - /** - * The default value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected static final String TARGET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected String target = TARGET_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected ClickSendSmsImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.CLICK_SEND_SMS; - } - - /** - * - * - * @generated - */ - public String getUserid() - { - return userid; - } - - /** - * - * - * @generated - */ - public void setUserid(String newUserid) - { - String oldUserid = userid; - userid = newUserid; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.CLICK_SEND_SMS__USERID, oldUserid, userid)); - } - - /** - * - * - * @generated - */ - public String getSecurityKey() - { - return securityKey; - } - - /** - * - * - * @generated - */ - public void setSecurityKey(String newSecurityKey) - { - String oldSecurityKey = securityKey; - securityKey = newSecurityKey; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.CLICK_SEND_SMS__SECURITY_KEY, oldSecurityKey, securityKey)); - } - - /** - * - * - * @generated - */ - public String getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public void setTarget(String newTarget) - { - String oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.CLICK_SEND_SMS__TARGET, oldTarget, target)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.CLICK_SEND_SMS__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.CLICK_SEND_SMS__USERID: - return getUserid(); - case DslPackage.CLICK_SEND_SMS__SECURITY_KEY: - return getSecurityKey(); - case DslPackage.CLICK_SEND_SMS__TARGET: - return getTarget(); - case DslPackage.CLICK_SEND_SMS__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.CLICK_SEND_SMS__USERID: - setUserid((String)newValue); - return; - case DslPackage.CLICK_SEND_SMS__SECURITY_KEY: - setSecurityKey((String)newValue); - return; - case DslPackage.CLICK_SEND_SMS__TARGET: - setTarget((String)newValue); - return; - case DslPackage.CLICK_SEND_SMS__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.CLICK_SEND_SMS__USERID: - setUserid(USERID_EDEFAULT); - return; - case DslPackage.CLICK_SEND_SMS__SECURITY_KEY: - setSecurityKey(SECURITY_KEY_EDEFAULT); - return; - case DslPackage.CLICK_SEND_SMS__TARGET: - setTarget(TARGET_EDEFAULT); - return; - case DslPackage.CLICK_SEND_SMS__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.CLICK_SEND_SMS__USERID: - return USERID_EDEFAULT == null ? userid != null : !USERID_EDEFAULT.equals(userid); - case DslPackage.CLICK_SEND_SMS__SECURITY_KEY: - return SECURITY_KEY_EDEFAULT == null ? securityKey != null : !SECURITY_KEY_EDEFAULT.equals(securityKey); - case DslPackage.CLICK_SEND_SMS__TARGET: - return TARGET_EDEFAULT == null ? target != null : !TARGET_EDEFAULT.equals(target); - case DslPackage.CLICK_SEND_SMS__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (userid: "); - result.append(userid); - result.append(", securityKey: "); - result.append(securityKey); - result.append(", target: "); - result.append(target); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //ClickSendSmsImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/CopydataImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/CopydataImpl.java deleted file mode 100644 index 65f4d505..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/CopydataImpl.java +++ /dev/null @@ -1,457 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Copydata; -import in.handyman.dsl.DslPackage; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Copydata'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.CopydataImpl#getSource Source}
  • - *
  • {@link in.handyman.dsl.impl.CopydataImpl#getTo To}
  • - *
  • {@link in.handyman.dsl.impl.CopydataImpl#getValue Value}
  • - *
  • {@link in.handyman.dsl.impl.CopydataImpl#getWriteThreadCount Write Thread Count}
  • - *
  • {@link in.handyman.dsl.impl.CopydataImpl#getFetchBatchSize Fetch Batch Size}
  • - *
  • {@link in.handyman.dsl.impl.CopydataImpl#getWriteBatchSize Write Batch Size}
  • - *
- * - * @generated - */ -public class CopydataImpl extends ActionImpl implements Copydata -{ - /** - * The default value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected static final String SOURCE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected String source = SOURCE_EDEFAULT; - - /** - * The default value of the '{@link #getTo() To}' attribute. - * - * - * @see #getTo() - * @generated - * @ordered - */ - protected static final String TO_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTo() To}' attribute. - * - * - * @see #getTo() - * @generated - * @ordered - */ - protected String to = TO_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * The default value of the '{@link #getWriteThreadCount() Write Thread Count}' attribute. - * - * - * @see #getWriteThreadCount() - * @generated - * @ordered - */ - protected static final String WRITE_THREAD_COUNT_EDEFAULT = null; - - /** - * The cached value of the '{@link #getWriteThreadCount() Write Thread Count}' attribute. - * - * - * @see #getWriteThreadCount() - * @generated - * @ordered - */ - protected String writeThreadCount = WRITE_THREAD_COUNT_EDEFAULT; - - /** - * The default value of the '{@link #getFetchBatchSize() Fetch Batch Size}' attribute. - * - * - * @see #getFetchBatchSize() - * @generated - * @ordered - */ - protected static final String FETCH_BATCH_SIZE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getFetchBatchSize() Fetch Batch Size}' attribute. - * - * - * @see #getFetchBatchSize() - * @generated - * @ordered - */ - protected String fetchBatchSize = FETCH_BATCH_SIZE_EDEFAULT; - - /** - * The default value of the '{@link #getWriteBatchSize() Write Batch Size}' attribute. - * - * - * @see #getWriteBatchSize() - * @generated - * @ordered - */ - protected static final String WRITE_BATCH_SIZE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getWriteBatchSize() Write Batch Size}' attribute. - * - * - * @see #getWriteBatchSize() - * @generated - * @ordered - */ - protected String writeBatchSize = WRITE_BATCH_SIZE_EDEFAULT; - - /** - * - * - * @generated - */ - protected CopydataImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.COPYDATA; - } - - /** - * - * - * @generated - */ - public String getSource() - { - return source; - } - - /** - * - * - * @generated - */ - public void setSource(String newSource) - { - String oldSource = source; - source = newSource; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.COPYDATA__SOURCE, oldSource, source)); - } - - /** - * - * - * @generated - */ - public String getTo() - { - return to; - } - - /** - * - * - * @generated - */ - public void setTo(String newTo) - { - String oldTo = to; - to = newTo; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.COPYDATA__TO, oldTo, to)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.COPYDATA__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - public String getWriteThreadCount() - { - return writeThreadCount; - } - - /** - * - * - * @generated - */ - public void setWriteThreadCount(String newWriteThreadCount) - { - String oldWriteThreadCount = writeThreadCount; - writeThreadCount = newWriteThreadCount; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.COPYDATA__WRITE_THREAD_COUNT, oldWriteThreadCount, writeThreadCount)); - } - - /** - * - * - * @generated - */ - public String getFetchBatchSize() - { - return fetchBatchSize; - } - - /** - * - * - * @generated - */ - public void setFetchBatchSize(String newFetchBatchSize) - { - String oldFetchBatchSize = fetchBatchSize; - fetchBatchSize = newFetchBatchSize; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.COPYDATA__FETCH_BATCH_SIZE, oldFetchBatchSize, fetchBatchSize)); - } - - /** - * - * - * @generated - */ - public String getWriteBatchSize() - { - return writeBatchSize; - } - - /** - * - * - * @generated - */ - public void setWriteBatchSize(String newWriteBatchSize) - { - String oldWriteBatchSize = writeBatchSize; - writeBatchSize = newWriteBatchSize; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.COPYDATA__WRITE_BATCH_SIZE, oldWriteBatchSize, writeBatchSize)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.COPYDATA__SOURCE: - return getSource(); - case DslPackage.COPYDATA__TO: - return getTo(); - case DslPackage.COPYDATA__VALUE: - return getValue(); - case DslPackage.COPYDATA__WRITE_THREAD_COUNT: - return getWriteThreadCount(); - case DslPackage.COPYDATA__FETCH_BATCH_SIZE: - return getFetchBatchSize(); - case DslPackage.COPYDATA__WRITE_BATCH_SIZE: - return getWriteBatchSize(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.COPYDATA__SOURCE: - setSource((String)newValue); - return; - case DslPackage.COPYDATA__TO: - setTo((String)newValue); - return; - case DslPackage.COPYDATA__VALUE: - setValue((String)newValue); - return; - case DslPackage.COPYDATA__WRITE_THREAD_COUNT: - setWriteThreadCount((String)newValue); - return; - case DslPackage.COPYDATA__FETCH_BATCH_SIZE: - setFetchBatchSize((String)newValue); - return; - case DslPackage.COPYDATA__WRITE_BATCH_SIZE: - setWriteBatchSize((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.COPYDATA__SOURCE: - setSource(SOURCE_EDEFAULT); - return; - case DslPackage.COPYDATA__TO: - setTo(TO_EDEFAULT); - return; - case DslPackage.COPYDATA__VALUE: - setValue(VALUE_EDEFAULT); - return; - case DslPackage.COPYDATA__WRITE_THREAD_COUNT: - setWriteThreadCount(WRITE_THREAD_COUNT_EDEFAULT); - return; - case DslPackage.COPYDATA__FETCH_BATCH_SIZE: - setFetchBatchSize(FETCH_BATCH_SIZE_EDEFAULT); - return; - case DslPackage.COPYDATA__WRITE_BATCH_SIZE: - setWriteBatchSize(WRITE_BATCH_SIZE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.COPYDATA__SOURCE: - return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); - case DslPackage.COPYDATA__TO: - return TO_EDEFAULT == null ? to != null : !TO_EDEFAULT.equals(to); - case DslPackage.COPYDATA__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - case DslPackage.COPYDATA__WRITE_THREAD_COUNT: - return WRITE_THREAD_COUNT_EDEFAULT == null ? writeThreadCount != null : !WRITE_THREAD_COUNT_EDEFAULT.equals(writeThreadCount); - case DslPackage.COPYDATA__FETCH_BATCH_SIZE: - return FETCH_BATCH_SIZE_EDEFAULT == null ? fetchBatchSize != null : !FETCH_BATCH_SIZE_EDEFAULT.equals(fetchBatchSize); - case DslPackage.COPYDATA__WRITE_BATCH_SIZE: - return WRITE_BATCH_SIZE_EDEFAULT == null ? writeBatchSize != null : !WRITE_BATCH_SIZE_EDEFAULT.equals(writeBatchSize); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (source: "); - result.append(source); - result.append(", to: "); - result.append(to); - result.append(", value: "); - result.append(value); - result.append(", writeThreadCount: "); - result.append(writeThreadCount); - result.append(", fetchBatchSize: "); - result.append(fetchBatchSize); - result.append(", writeBatchSize: "); - result.append(writeBatchSize); - result.append(')'); - return result.toString(); - } - -} //CopydataImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DoglegImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DoglegImpl.java deleted file mode 100644 index 63c9ca59..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DoglegImpl.java +++ /dev/null @@ -1,240 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Dogleg; -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.StartProcess; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -/** - * - * An implementation of the model object 'Dogleg'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.DoglegImpl#getInheritContext Inherit Context}
  • - *
  • {@link in.handyman.dsl.impl.DoglegImpl#getProcessList Process List}
  • - *
- * - * @generated - */ -public class DoglegImpl extends ActionImpl implements Dogleg -{ - /** - * The default value of the '{@link #getInheritContext() Inherit Context}' attribute. - * - * - * @see #getInheritContext() - * @generated - * @ordered - */ - protected static final String INHERIT_CONTEXT_EDEFAULT = null; - - /** - * The cached value of the '{@link #getInheritContext() Inherit Context}' attribute. - * - * - * @see #getInheritContext() - * @generated - * @ordered - */ - protected String inheritContext = INHERIT_CONTEXT_EDEFAULT; - - /** - * The cached value of the '{@link #getProcessList() Process List}' containment reference list. - * - * - * @see #getProcessList() - * @generated - * @ordered - */ - protected EList processList; - - /** - * - * - * @generated - */ - protected DoglegImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.DOGLEG; - } - - /** - * - * - * @generated - */ - public String getInheritContext() - { - return inheritContext; - } - - /** - * - * - * @generated - */ - public void setInheritContext(String newInheritContext) - { - String oldInheritContext = inheritContext; - inheritContext = newInheritContext; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.DOGLEG__INHERIT_CONTEXT, oldInheritContext, inheritContext)); - } - - /** - * - * - * @generated - */ - public EList getProcessList() - { - if (processList == null) - { - processList = new EObjectContainmentEList(StartProcess.class, this, DslPackage.DOGLEG__PROCESS_LIST); - } - return processList; - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case DslPackage.DOGLEG__PROCESS_LIST: - return ((InternalEList)getProcessList()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.DOGLEG__INHERIT_CONTEXT: - return getInheritContext(); - case DslPackage.DOGLEG__PROCESS_LIST: - return getProcessList(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.DOGLEG__INHERIT_CONTEXT: - setInheritContext((String)newValue); - return; - case DslPackage.DOGLEG__PROCESS_LIST: - getProcessList().clear(); - getProcessList().addAll((Collection)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.DOGLEG__INHERIT_CONTEXT: - setInheritContext(INHERIT_CONTEXT_EDEFAULT); - return; - case DslPackage.DOGLEG__PROCESS_LIST: - getProcessList().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.DOGLEG__INHERIT_CONTEXT: - return INHERIT_CONTEXT_EDEFAULT == null ? inheritContext != null : !INHERIT_CONTEXT_EDEFAULT.equals(inheritContext); - case DslPackage.DOGLEG__PROCESS_LIST: - return processList != null && !processList.isEmpty(); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (inheritContext: "); - result.append(inheritContext); - result.append(')'); - return result.toString(); - } - -} //DoglegImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DoozleImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DoozleImpl.java deleted file mode 100644 index 120a5f89..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DoozleImpl.java +++ /dev/null @@ -1,289 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Doozle; -import in.handyman.dsl.DslPackage; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Doozle'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.DoozleImpl#getTarget Target}
  • - *
  • {@link in.handyman.dsl.impl.DoozleImpl#getOn On}
  • - *
  • {@link in.handyman.dsl.impl.DoozleImpl#getValue Value}
  • - *
- * - * @generated - */ -public class DoozleImpl extends ActionImpl implements Doozle -{ - /** - * The default value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected static final String TARGET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected String target = TARGET_EDEFAULT; - - /** - * The default value of the '{@link #getOn() On}' attribute. - * - * - * @see #getOn() - * @generated - * @ordered - */ - protected static final String ON_EDEFAULT = null; - - /** - * The cached value of the '{@link #getOn() On}' attribute. - * - * - * @see #getOn() - * @generated - * @ordered - */ - protected String on = ON_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected DoozleImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.DOOZLE; - } - - /** - * - * - * @generated - */ - public String getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public void setTarget(String newTarget) - { - String oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.DOOZLE__TARGET, oldTarget, target)); - } - - /** - * - * - * @generated - */ - public String getOn() - { - return on; - } - - /** - * - * - * @generated - */ - public void setOn(String newOn) - { - String oldOn = on; - on = newOn; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.DOOZLE__ON, oldOn, on)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.DOOZLE__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.DOOZLE__TARGET: - return getTarget(); - case DslPackage.DOOZLE__ON: - return getOn(); - case DslPackage.DOOZLE__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.DOOZLE__TARGET: - setTarget((String)newValue); - return; - case DslPackage.DOOZLE__ON: - setOn((String)newValue); - return; - case DslPackage.DOOZLE__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.DOOZLE__TARGET: - setTarget(TARGET_EDEFAULT); - return; - case DslPackage.DOOZLE__ON: - setOn(ON_EDEFAULT); - return; - case DslPackage.DOOZLE__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.DOOZLE__TARGET: - return TARGET_EDEFAULT == null ? target != null : !TARGET_EDEFAULT.equals(target); - case DslPackage.DOOZLE__ON: - return ON_EDEFAULT == null ? on != null : !ON_EDEFAULT.equals(on); - case DslPackage.DOOZLE__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (target: "); - result.append(target); - result.append(", on: "); - result.append(on); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //DoozleImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DropfileImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DropfileImpl.java deleted file mode 100644 index dd9ec047..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DropfileImpl.java +++ /dev/null @@ -1,177 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Dropfile; -import in.handyman.dsl.DslPackage; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Dropfile'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.DropfileImpl#getTarget Target}
  • - *
- * - * @generated - */ -public class DropfileImpl extends ActionImpl implements Dropfile -{ - /** - * The default value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected static final String TARGET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected String target = TARGET_EDEFAULT; - - /** - * - * - * @generated - */ - protected DropfileImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.DROPFILE; - } - - /** - * - * - * @generated - */ - public String getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public void setTarget(String newTarget) - { - String oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.DROPFILE__TARGET, oldTarget, target)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.DROPFILE__TARGET: - return getTarget(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.DROPFILE__TARGET: - setTarget((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.DROPFILE__TARGET: - setTarget(TARGET_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.DROPFILE__TARGET: - return TARGET_EDEFAULT == null ? target != null : !TARGET_EDEFAULT.equals(target); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (target: "); - result.append(target); - result.append(')'); - return result.toString(); - } - -} //DropfileImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DslFactoryImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DslFactoryImpl.java deleted file mode 100644 index e4bdd71b..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DslFactoryImpl.java +++ /dev/null @@ -1,563 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Abort; -import in.handyman.dsl.Action; -import in.handyman.dsl.Callprocess; -import in.handyman.dsl.Catch; -import in.handyman.dsl.ClickSendSms; -import in.handyman.dsl.Copydata; -import in.handyman.dsl.Dogleg; -import in.handyman.dsl.Doozle; -import in.handyman.dsl.Dropfile; -import in.handyman.dsl.DslFactory; -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.ExecJava; -import in.handyman.dsl.Expression; -import in.handyman.dsl.FBCLead; -import in.handyman.dsl.FBFormDownload; -import in.handyman.dsl.Fetch; -import in.handyman.dsl.Finally; -import in.handyman.dsl.FirebaseDatabasePut; -import in.handyman.dsl.FirebaseReactiveNotification; -import in.handyman.dsl.Forkprocess; -import in.handyman.dsl.GooglecalPUT; -import in.handyman.dsl.GooglecontactPUT; -import in.handyman.dsl.GooglecontactSelectAll; -import in.handyman.dsl.LoadCsv; -import in.handyman.dsl.Rest; -import in.handyman.dsl.RestPart; -import in.handyman.dsl.SendMail; -import in.handyman.dsl.SlackPUT; -import in.handyman.dsl.SmsLeadSms; -import in.handyman.dsl.Spawnprocess; -import in.handyman.dsl.StartProcess; -import in.handyman.dsl.Transform; -import in.handyman.dsl.TrelloGET; -import in.handyman.dsl.TrelloPUT; -import in.handyman.dsl.Try; -import in.handyman.dsl.Updatedaudit; -import in.handyman.dsl.WriteCsv; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EPackage; - -import org.eclipse.emf.ecore.impl.EFactoryImpl; - -import org.eclipse.emf.ecore.plugin.EcorePlugin; - -/** - * - * An implementation of the model Factory. - * - * @generated - */ -public class DslFactoryImpl extends EFactoryImpl implements DslFactory -{ - /** - * Creates the default factory implementation. - * - * - * @generated - */ - public static DslFactory init() - { - try - { - DslFactory theDslFactory = (DslFactory)EPackage.Registry.INSTANCE.getEFactory(DslPackage.eNS_URI); - if (theDslFactory != null) - { - return theDslFactory; - } - } - catch (Exception exception) - { - EcorePlugin.INSTANCE.log(exception); - } - return new DslFactoryImpl(); - } - - /** - * Creates an instance of the factory. - * - * - * @generated - */ - public DslFactoryImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - public EObject create(EClass eClass) - { - switch (eClass.getClassifierID()) - { - case DslPackage.PROCESS: return createProcess(); - case DslPackage.TRY: return createTry(); - case DslPackage.FINALLY: return createFinally(); - case DslPackage.CATCH: return createCatch(); - case DslPackage.ACTION: return createAction(); - case DslPackage.SPAWNPROCESS: return createSpawnprocess(); - case DslPackage.DOGLEG: return createDogleg(); - case DslPackage.EXEC_JAVA: return createExecJava(); - case DslPackage.FIREBASE_DATABASE_PUT: return createFirebaseDatabasePut(); - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION: return createFirebaseReactiveNotification(); - case DslPackage.SMS_LEAD_SMS: return createSmsLeadSms(); - case DslPackage.ABORT: return createAbort(); - case DslPackage.GOOGLECONTACT_SELECT_ALL: return createGooglecontactSelectAll(); - case DslPackage.SEND_MAIL: return createSendMail(); - case DslPackage.GOOGLECONTACT_PUT: return createGooglecontactPUT(); - case DslPackage.GOOGLECAL_PUT: return createGooglecalPUT(); - case DslPackage.FBC_LEAD: return createFBCLead(); - case DslPackage.FB_FORM_DOWNLOAD: return createFBFormDownload(); - case DslPackage.DROPFILE: return createDropfile(); - case DslPackage.DOOZLE: return createDoozle(); - case DslPackage.REST: return createRest(); - case DslPackage.REST_PART: return createRestPart(); - case DslPackage.TRELLO_GET: return createTrelloGET(); - case DslPackage.TRELLO_PUT: return createTrelloPUT(); - case DslPackage.FETCH: return createFetch(); - case DslPackage.CALLPROCESS: return createCallprocess(); - case DslPackage.FORKPROCESS: return createForkprocess(); - case DslPackage.UPDATEDAUDIT: return createUpdatedaudit(); - case DslPackage.CLICK_SEND_SMS: return createClickSendSms(); - case DslPackage.SLACK_PUT: return createSlackPUT(); - case DslPackage.COPYDATA: return createCopydata(); - case DslPackage.WRITE_CSV: return createWriteCsv(); - case DslPackage.LOAD_CSV: return createLoadCsv(); - case DslPackage.TRANSFORM: return createTransform(); - case DslPackage.START_PROCESS: return createStartProcess(); - case DslPackage.EXPRESSION: return createExpression(); - default: - throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); - } - } - - /** - * - * - * @generated - */ - public in.handyman.dsl.Process createProcess() - { - ProcessImpl process = new ProcessImpl(); - return process; - } - - /** - * - * - * @generated - */ - public Try createTry() - { - TryImpl try_ = new TryImpl(); - return try_; - } - - /** - * - * - * @generated - */ - public Finally createFinally() - { - FinallyImpl finally_ = new FinallyImpl(); - return finally_; - } - - /** - * - * - * @generated - */ - public Catch createCatch() - { - CatchImpl catch_ = new CatchImpl(); - return catch_; - } - - /** - * - * - * @generated - */ - public Action createAction() - { - ActionImpl action = new ActionImpl(); - return action; - } - - /** - * - * - * @generated - */ - public Spawnprocess createSpawnprocess() - { - SpawnprocessImpl spawnprocess = new SpawnprocessImpl(); - return spawnprocess; - } - - /** - * - * - * @generated - */ - public Dogleg createDogleg() - { - DoglegImpl dogleg = new DoglegImpl(); - return dogleg; - } - - /** - * - * - * @generated - */ - public ExecJava createExecJava() - { - ExecJavaImpl execJava = new ExecJavaImpl(); - return execJava; - } - - /** - * - * - * @generated - */ - public FirebaseDatabasePut createFirebaseDatabasePut() - { - FirebaseDatabasePutImpl firebaseDatabasePut = new FirebaseDatabasePutImpl(); - return firebaseDatabasePut; - } - - /** - * - * - * @generated - */ - public FirebaseReactiveNotification createFirebaseReactiveNotification() - { - FirebaseReactiveNotificationImpl firebaseReactiveNotification = new FirebaseReactiveNotificationImpl(); - return firebaseReactiveNotification; - } - - /** - * - * - * @generated - */ - public SmsLeadSms createSmsLeadSms() - { - SmsLeadSmsImpl smsLeadSms = new SmsLeadSmsImpl(); - return smsLeadSms; - } - - /** - * - * - * @generated - */ - public Abort createAbort() - { - AbortImpl abort = new AbortImpl(); - return abort; - } - - /** - * - * - * @generated - */ - public GooglecontactSelectAll createGooglecontactSelectAll() - { - GooglecontactSelectAllImpl googlecontactSelectAll = new GooglecontactSelectAllImpl(); - return googlecontactSelectAll; - } - - /** - * - * - * @generated - */ - public SendMail createSendMail() - { - SendMailImpl sendMail = new SendMailImpl(); - return sendMail; - } - - /** - * - * - * @generated - */ - public GooglecontactPUT createGooglecontactPUT() - { - GooglecontactPUTImpl googlecontactPUT = new GooglecontactPUTImpl(); - return googlecontactPUT; - } - - /** - * - * - * @generated - */ - public GooglecalPUT createGooglecalPUT() - { - GooglecalPUTImpl googlecalPUT = new GooglecalPUTImpl(); - return googlecalPUT; - } - - /** - * - * - * @generated - */ - public FBCLead createFBCLead() - { - FBCLeadImpl fbcLead = new FBCLeadImpl(); - return fbcLead; - } - - /** - * - * - * @generated - */ - public FBFormDownload createFBFormDownload() - { - FBFormDownloadImpl fbFormDownload = new FBFormDownloadImpl(); - return fbFormDownload; - } - - /** - * - * - * @generated - */ - public Dropfile createDropfile() - { - DropfileImpl dropfile = new DropfileImpl(); - return dropfile; - } - - /** - * - * - * @generated - */ - public Doozle createDoozle() - { - DoozleImpl doozle = new DoozleImpl(); - return doozle; - } - - /** - * - * - * @generated - */ - public Rest createRest() - { - RestImpl rest = new RestImpl(); - return rest; - } - - /** - * - * - * @generated - */ - public RestPart createRestPart() - { - RestPartImpl restPart = new RestPartImpl(); - return restPart; - } - - /** - * - * - * @generated - */ - public TrelloGET createTrelloGET() - { - TrelloGETImpl trelloGET = new TrelloGETImpl(); - return trelloGET; - } - - /** - * - * - * @generated - */ - public TrelloPUT createTrelloPUT() - { - TrelloPUTImpl trelloPUT = new TrelloPUTImpl(); - return trelloPUT; - } - - /** - * - * - * @generated - */ - public Fetch createFetch() - { - FetchImpl fetch = new FetchImpl(); - return fetch; - } - - /** - * - * - * @generated - */ - public Callprocess createCallprocess() - { - CallprocessImpl callprocess = new CallprocessImpl(); - return callprocess; - } - - /** - * - * - * @generated - */ - public Forkprocess createForkprocess() - { - ForkprocessImpl forkprocess = new ForkprocessImpl(); - return forkprocess; - } - - /** - * - * - * @generated - */ - public Updatedaudit createUpdatedaudit() - { - UpdatedauditImpl updatedaudit = new UpdatedauditImpl(); - return updatedaudit; - } - - /** - * - * - * @generated - */ - public ClickSendSms createClickSendSms() - { - ClickSendSmsImpl clickSendSms = new ClickSendSmsImpl(); - return clickSendSms; - } - - /** - * - * - * @generated - */ - public SlackPUT createSlackPUT() - { - SlackPUTImpl slackPUT = new SlackPUTImpl(); - return slackPUT; - } - - /** - * - * - * @generated - */ - public Copydata createCopydata() - { - CopydataImpl copydata = new CopydataImpl(); - return copydata; - } - - /** - * - * - * @generated - */ - public WriteCsv createWriteCsv() - { - WriteCsvImpl writeCsv = new WriteCsvImpl(); - return writeCsv; - } - - /** - * - * - * @generated - */ - public LoadCsv createLoadCsv() - { - LoadCsvImpl loadCsv = new LoadCsvImpl(); - return loadCsv; - } - - /** - * - * - * @generated - */ - public Transform createTransform() - { - TransformImpl transform = new TransformImpl(); - return transform; - } - - /** - * - * - * @generated - */ - public StartProcess createStartProcess() - { - StartProcessImpl startProcess = new StartProcessImpl(); - return startProcess; - } - - /** - * - * - * @generated - */ - public Expression createExpression() - { - ExpressionImpl expression = new ExpressionImpl(); - return expression; - } - - /** - * - * - * @generated - */ - public DslPackage getDslPackage() - { - return (DslPackage)getEPackage(); - } - - /** - * - * - * @deprecated - * @generated - */ - @Deprecated - public static DslPackage getPackage() - { - return DslPackage.eINSTANCE; - } - -} //DslFactoryImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DslPackageImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DslPackageImpl.java deleted file mode 100644 index 364becb8..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/DslPackageImpl.java +++ /dev/null @@ -1,2796 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Abort; -import in.handyman.dsl.Action; -import in.handyman.dsl.Callprocess; -import in.handyman.dsl.Catch; -import in.handyman.dsl.ClickSendSms; -import in.handyman.dsl.Copydata; -import in.handyman.dsl.Dogleg; -import in.handyman.dsl.Doozle; -import in.handyman.dsl.Dropfile; -import in.handyman.dsl.DslFactory; -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.ExecJava; -import in.handyman.dsl.Expression; -import in.handyman.dsl.FBCLead; -import in.handyman.dsl.FBFormDownload; -import in.handyman.dsl.Fetch; -import in.handyman.dsl.Finally; -import in.handyman.dsl.FirebaseDatabasePut; -import in.handyman.dsl.FirebaseReactiveNotification; -import in.handyman.dsl.Forkprocess; -import in.handyman.dsl.GooglecalPUT; -import in.handyman.dsl.GooglecontactPUT; -import in.handyman.dsl.GooglecontactSelectAll; -import in.handyman.dsl.LoadCsv; -import in.handyman.dsl.Rest; -import in.handyman.dsl.RestPart; -import in.handyman.dsl.SendMail; -import in.handyman.dsl.SlackPUT; -import in.handyman.dsl.SmsLeadSms; -import in.handyman.dsl.Spawnprocess; -import in.handyman.dsl.StartProcess; -import in.handyman.dsl.Transform; -import in.handyman.dsl.TrelloGET; -import in.handyman.dsl.TrelloPUT; -import in.handyman.dsl.Try; -import in.handyman.dsl.Updatedaudit; -import in.handyman.dsl.WriteCsv; - -import org.eclipse.emf.ecore.EAttribute; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.EReference; - -import org.eclipse.emf.ecore.impl.EPackageImpl; - -/** - * - * An implementation of the model Package. - * - * @generated - */ -public class DslPackageImpl extends EPackageImpl implements DslPackage -{ - /** - * - * - * @generated - */ - private EClass processEClass = null; - - /** - * - * - * @generated - */ - private EClass tryEClass = null; - - /** - * - * - * @generated - */ - private EClass finallyEClass = null; - - /** - * - * - * @generated - */ - private EClass catchEClass = null; - - /** - * - * - * @generated - */ - private EClass actionEClass = null; - - /** - * - * - * @generated - */ - private EClass spawnprocessEClass = null; - - /** - * - * - * @generated - */ - private EClass doglegEClass = null; - - /** - * - * - * @generated - */ - private EClass execJavaEClass = null; - - /** - * - * - * @generated - */ - private EClass firebaseDatabasePutEClass = null; - - /** - * - * - * @generated - */ - private EClass firebaseReactiveNotificationEClass = null; - - /** - * - * - * @generated - */ - private EClass smsLeadSmsEClass = null; - - /** - * - * - * @generated - */ - private EClass abortEClass = null; - - /** - * - * - * @generated - */ - private EClass googlecontactSelectAllEClass = null; - - /** - * - * - * @generated - */ - private EClass sendMailEClass = null; - - /** - * - * - * @generated - */ - private EClass googlecontactPUTEClass = null; - - /** - * - * - * @generated - */ - private EClass googlecalPUTEClass = null; - - /** - * - * - * @generated - */ - private EClass fbcLeadEClass = null; - - /** - * - * - * @generated - */ - private EClass fbFormDownloadEClass = null; - - /** - * - * - * @generated - */ - private EClass dropfileEClass = null; - - /** - * - * - * @generated - */ - private EClass doozleEClass = null; - - /** - * - * - * @generated - */ - private EClass restEClass = null; - - /** - * - * - * @generated - */ - private EClass restPartEClass = null; - - /** - * - * - * @generated - */ - private EClass trelloGETEClass = null; - - /** - * - * - * @generated - */ - private EClass trelloPUTEClass = null; - - /** - * - * - * @generated - */ - private EClass fetchEClass = null; - - /** - * - * - * @generated - */ - private EClass callprocessEClass = null; - - /** - * - * - * @generated - */ - private EClass forkprocessEClass = null; - - /** - * - * - * @generated - */ - private EClass updatedauditEClass = null; - - /** - * - * - * @generated - */ - private EClass clickSendSmsEClass = null; - - /** - * - * - * @generated - */ - private EClass slackPUTEClass = null; - - /** - * - * - * @generated - */ - private EClass copydataEClass = null; - - /** - * - * - * @generated - */ - private EClass writeCsvEClass = null; - - /** - * - * - * @generated - */ - private EClass loadCsvEClass = null; - - /** - * - * - * @generated - */ - private EClass transformEClass = null; - - /** - * - * - * @generated - */ - private EClass startProcessEClass = null; - - /** - * - * - * @generated - */ - private EClass expressionEClass = null; - - /** - * Creates an instance of the model Package, registered with - * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package - * package URI value. - *

Note: the correct way to create the package is via the static - * factory method {@link #init init()}, which also performs - * initialization of the package, or returns the registered package, - * if one already exists. - * - * - * @see org.eclipse.emf.ecore.EPackage.Registry - * @see in.handyman.dsl.DslPackage#eNS_URI - * @see #init() - * @generated - */ - private DslPackageImpl() - { - super(eNS_URI, DslFactory.eINSTANCE); - } - - /** - * - * - * @generated - */ - private static boolean isInited = false; - - /** - * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. - * - *

This method is used to initialize {@link DslPackage#eINSTANCE} when that field is accessed. - * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. - * - * - * @see #eNS_URI - * @see #createPackageContents() - * @see #initializePackageContents() - * @generated - */ - public static DslPackage init() - { - if (isInited) return (DslPackage)EPackage.Registry.INSTANCE.getEPackage(DslPackage.eNS_URI); - - // Obtain or create and register package - DslPackageImpl theDslPackage = (DslPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof DslPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new DslPackageImpl()); - - isInited = true; - - // Create package meta-data objects - theDslPackage.createPackageContents(); - - // Initialize created meta-data - theDslPackage.initializePackageContents(); - - // Mark meta-data to indicate it can't be changed - theDslPackage.freeze(); - - - // Update the registry and return the package - EPackage.Registry.INSTANCE.put(DslPackage.eNS_URI, theDslPackage); - return theDslPackage; - } - - /** - * - * - * @generated - */ - public EClass getProcess() - { - return processEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getProcess_Name() - { - return (EAttribute)processEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EReference getProcess_Try() - { - return (EReference)processEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EReference getProcess_Catch() - { - return (EReference)processEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EReference getProcess_Finally() - { - return (EReference)processEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EClass getTry() - { - return tryEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getTry_Name() - { - return (EAttribute)tryEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EReference getTry_Action() - { - return (EReference)tryEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EClass getFinally() - { - return finallyEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getFinally_Name() - { - return (EAttribute)finallyEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EReference getFinally_Action() - { - return (EReference)finallyEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EClass getCatch() - { - return catchEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getCatch_Name() - { - return (EAttribute)catchEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EReference getCatch_Action() - { - return (EReference)catchEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EClass getAction() - { - return actionEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getAction_Name() - { - return (EAttribute)actionEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EReference getAction_Condition() - { - return (EReference)actionEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EClass getSpawnprocess() - { - return spawnprocessEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getSpawnprocess_Target() - { - return (EAttribute)spawnprocessEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getSpawnprocess_Source() - { - return (EAttribute)spawnprocessEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EClass getDogleg() - { - return doglegEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getDogleg_InheritContext() - { - return (EAttribute)doglegEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EReference getDogleg_ProcessList() - { - return (EReference)doglegEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EClass getExecJava() - { - return execJavaEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getExecJava_ClassFqn() - { - return (EAttribute)execJavaEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getExecJava_DbSrc() - { - return (EAttribute)execJavaEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getExecJava_Value() - { - return (EAttribute)execJavaEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EClass getFirebaseDatabasePut() - { - return firebaseDatabasePutEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getFirebaseDatabasePut_Url() - { - return (EAttribute)firebaseDatabasePutEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getFirebaseDatabasePut_Fbjson() - { - return (EAttribute)firebaseDatabasePutEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getFirebaseDatabasePut_GroupPath() - { - return (EAttribute)firebaseDatabasePutEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getFirebaseDatabasePut_DbSrc() - { - return (EAttribute)firebaseDatabasePutEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getFirebaseDatabasePut_ClassFqn() - { - return (EAttribute)firebaseDatabasePutEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getFirebaseDatabasePut_Value() - { - return (EAttribute)firebaseDatabasePutEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EClass getFirebaseReactiveNotification() - { - return firebaseReactiveNotificationEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getFirebaseReactiveNotification_Url() - { - return (EAttribute)firebaseReactiveNotificationEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getFirebaseReactiveNotification_Fbjson() - { - return (EAttribute)firebaseReactiveNotificationEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getFirebaseReactiveNotification_GroupPath() - { - return (EAttribute)firebaseReactiveNotificationEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getFirebaseReactiveNotification_ClassFqn() - { - return (EAttribute)firebaseReactiveNotificationEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getFirebaseReactiveNotification_DbSrc() - { - return (EAttribute)firebaseReactiveNotificationEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EClass getSmsLeadSms() - { - return smsLeadSmsEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getSmsLeadSms_Url() - { - return (EAttribute)smsLeadSmsEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getSmsLeadSms_Sender() - { - return (EAttribute)smsLeadSmsEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getSmsLeadSms_Account() - { - return (EAttribute)smsLeadSmsEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getSmsLeadSms_PrivateKey() - { - return (EAttribute)smsLeadSmsEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getSmsLeadSms_DbSrc() - { - return (EAttribute)smsLeadSmsEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getSmsLeadSms_Value() - { - return (EAttribute)smsLeadSmsEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EAttribute getSmsLeadSms_DryrunNumber() - { - return (EAttribute)smsLeadSmsEClass.getEStructuralFeatures().get(6); - } - - /** - * - * - * @generated - */ - public EClass getAbort() - { - return abortEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getAbort_Value() - { - return (EAttribute)abortEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EClass getGooglecontactSelectAll() - { - return googlecontactSelectAllEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactSelectAll_Account() - { - return (EAttribute)googlecontactSelectAllEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactSelectAll_PrivateKey() - { - return (EAttribute)googlecontactSelectAllEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactSelectAll_PtwelveFile() - { - return (EAttribute)googlecontactSelectAllEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactSelectAll_Project() - { - return (EAttribute)googlecontactSelectAllEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactSelectAll_ImpersonatedUser() - { - return (EAttribute)googlecontactSelectAllEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactSelectAll_DbSrc() - { - return (EAttribute)googlecontactSelectAllEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactSelectAll_Value() - { - return (EAttribute)googlecontactSelectAllEClass.getEStructuralFeatures().get(6); - } - - /** - * - * - * @generated - */ - public EClass getSendMail() - { - return sendMailEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getSendMail_PrivateKey() - { - return (EAttribute)sendMailEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getSendMail_ImpersonatedUser() - { - return (EAttribute)sendMailEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getSendMail_DbSrc() - { - return (EAttribute)sendMailEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getSendMail_Value() - { - return (EAttribute)sendMailEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getSendMail_DryrunMail() - { - return (EAttribute)sendMailEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EClass getGooglecontactPUT() - { - return googlecontactPUTEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactPUT_Account() - { - return (EAttribute)googlecontactPUTEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactPUT_PrivateKey() - { - return (EAttribute)googlecontactPUTEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactPUT_PtwelveFile() - { - return (EAttribute)googlecontactPUTEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactPUT_Project() - { - return (EAttribute)googlecontactPUTEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactPUT_ImpersonatedUser() - { - return (EAttribute)googlecontactPUTEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactPUT_DbSrc() - { - return (EAttribute)googlecontactPUTEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecontactPUT_Value() - { - return (EAttribute)googlecontactPUTEClass.getEStructuralFeatures().get(6); - } - - /** - * - * - * @generated - */ - public EClass getGooglecalPUT() - { - return googlecalPUTEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecalPUT_Account() - { - return (EAttribute)googlecalPUTEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecalPUT_PrivateKey() - { - return (EAttribute)googlecalPUTEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecalPUT_PtwelveFile() - { - return (EAttribute)googlecalPUTEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecalPUT_Project() - { - return (EAttribute)googlecalPUTEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecalPUT_ImpersonatedUser() - { - return (EAttribute)googlecalPUTEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecalPUT_DbSrc() - { - return (EAttribute)googlecalPUTEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EAttribute getGooglecalPUT_Value() - { - return (EAttribute)googlecalPUTEClass.getEStructuralFeatures().get(6); - } - - /** - * - * - * @generated - */ - public EClass getFBCLead() - { - return fbcLeadEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getFBCLead_AccessToken() - { - return (EAttribute)fbcLeadEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getFBCLead_AppSecret() - { - return (EAttribute)fbcLeadEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getFBCLead_AccountId() - { - return (EAttribute)fbcLeadEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getFBCLead_CampaignId() - { - return (EAttribute)fbcLeadEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getFBCLead_Target() - { - return (EAttribute)fbcLeadEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getFBCLead_Value() - { - return (EAttribute)fbcLeadEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EClass getFBFormDownload() - { - return fbFormDownloadEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getFBFormDownload_AccessToken() - { - return (EAttribute)fbFormDownloadEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getFBFormDownload_AppSecret() - { - return (EAttribute)fbFormDownloadEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getFBFormDownload_AccountId() - { - return (EAttribute)fbFormDownloadEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getFBFormDownload_FormId() - { - return (EAttribute)fbFormDownloadEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getFBFormDownload_Target() - { - return (EAttribute)fbFormDownloadEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getFBFormDownload_Value() - { - return (EAttribute)fbFormDownloadEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EClass getDropfile() - { - return dropfileEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getDropfile_Target() - { - return (EAttribute)dropfileEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EClass getDoozle() - { - return doozleEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getDoozle_Target() - { - return (EAttribute)doozleEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getDoozle_On() - { - return (EAttribute)doozleEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getDoozle_Value() - { - return (EAttribute)doozleEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EClass getRest() - { - return restEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getRest_Authtoken() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getRest_Url() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getRest_Method() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getRest_Resourcedatafrom() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getRest_Urldata() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getRest_Headerdatafrom() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EAttribute getRest_Headerdata() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(6); - } - - /** - * - * - * @generated - */ - public EAttribute getRest_Postdatafrom() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(7); - } - - /** - * - * - * @generated - */ - public EAttribute getRest_ParentName() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(8); - } - - /** - * - * - * @generated - */ - public EAttribute getRest_Parentdata() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(9); - } - - /** - * - * - * @generated - */ - public EReference getRest_Parts() - { - return (EReference)restEClass.getEStructuralFeatures().get(10); - } - - /** - * - * - * @generated - */ - public EAttribute getRest_Ackdatato() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(11); - } - - /** - * - * - * @generated - */ - public EAttribute getRest_Ackdata() - { - return (EAttribute)restEClass.getEStructuralFeatures().get(12); - } - - /** - * - * - * @generated - */ - public EClass getRestPart() - { - return restPartEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getRestPart_PartName() - { - return (EAttribute)restPartEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getRestPart_PartData() - { - return (EAttribute)restPartEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EClass getTrelloGET() - { - return trelloGETEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloGET_Authtoken() - { - return (EAttribute)trelloGETEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloGET_Key() - { - return (EAttribute)trelloGETEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloGET_Useraccount() - { - return (EAttribute)trelloGETEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloGET_Board() - { - return (EAttribute)trelloGETEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloGET_Target() - { - return (EAttribute)trelloGETEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloGET_Value() - { - return (EAttribute)trelloGETEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EClass getTrelloPUT() - { - return trelloPUTEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloPUT_Authtoken() - { - return (EAttribute)trelloPUTEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloPUT_Key() - { - return (EAttribute)trelloPUTEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloPUT_Useraccount() - { - return (EAttribute)trelloPUTEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloPUT_List() - { - return (EAttribute)trelloPUTEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloPUT_Source() - { - return (EAttribute)trelloPUTEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getTrelloPUT_Value() - { - return (EAttribute)trelloPUTEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EClass getFetch() - { - return fetchEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getFetch_Source() - { - return (EAttribute)fetchEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getFetch_Value() - { - return (EAttribute)fetchEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EClass getCallprocess() - { - return callprocessEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getCallprocess_Target() - { - return (EAttribute)callprocessEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getCallprocess_Source() - { - return (EAttribute)callprocessEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getCallprocess_Datasource() - { - return (EAttribute)callprocessEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getCallprocess_Value() - { - return (EAttribute)callprocessEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EClass getForkprocess() - { - return forkprocessEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getForkprocess_Target() - { - return (EAttribute)forkprocessEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getForkprocess_Source() - { - return (EAttribute)forkprocessEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getForkprocess_Datasource() - { - return (EAttribute)forkprocessEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getForkprocess_Value() - { - return (EAttribute)forkprocessEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getForkprocess_ForkBatchSize() - { - return (EAttribute)forkprocessEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EClass getUpdatedaudit() - { - return updatedauditEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getUpdatedaudit_Logsink() - { - return (EAttribute)updatedauditEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getUpdatedaudit_Datasource() - { - return (EAttribute)updatedauditEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getUpdatedaudit_Value() - { - return (EAttribute)updatedauditEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EClass getClickSendSms() - { - return clickSendSmsEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getClickSendSms_Userid() - { - return (EAttribute)clickSendSmsEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getClickSendSms_SecurityKey() - { - return (EAttribute)clickSendSmsEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getClickSendSms_Target() - { - return (EAttribute)clickSendSmsEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getClickSendSms_Value() - { - return (EAttribute)clickSendSmsEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EClass getSlackPUT() - { - return slackPUTEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getSlackPUT_Team() - { - return (EAttribute)slackPUTEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getSlackPUT_Channel() - { - return (EAttribute)slackPUTEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getSlackPUT_Value() - { - return (EAttribute)slackPUTEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EClass getCopydata() - { - return copydataEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getCopydata_Source() - { - return (EAttribute)copydataEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getCopydata_To() - { - return (EAttribute)copydataEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getCopydata_Value() - { - return (EAttribute)copydataEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getCopydata_WriteThreadCount() - { - return (EAttribute)copydataEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getCopydata_FetchBatchSize() - { - return (EAttribute)copydataEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getCopydata_WriteBatchSize() - { - return (EAttribute)copydataEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EClass getWriteCsv() - { - return writeCsvEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getWriteCsv_Source() - { - return (EAttribute)writeCsvEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getWriteCsv_To() - { - return (EAttribute)writeCsvEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getWriteCsv_Delim() - { - return (EAttribute)writeCsvEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getWriteCsv_Value() - { - return (EAttribute)writeCsvEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EClass getLoadCsv() - { - return loadCsvEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getLoadCsv_Source() - { - return (EAttribute)loadCsvEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getLoadCsv_To() - { - return (EAttribute)loadCsvEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getLoadCsv_Delim() - { - return (EAttribute)loadCsvEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public EAttribute getLoadCsv_FetchBatchSize() - { - return (EAttribute)loadCsvEClass.getEStructuralFeatures().get(3); - } - - /** - * - * - * @generated - */ - public EAttribute getLoadCsv_WriteBatchSize() - { - return (EAttribute)loadCsvEClass.getEStructuralFeatures().get(4); - } - - /** - * - * - * @generated - */ - public EAttribute getLoadCsv_Value() - { - return (EAttribute)loadCsvEClass.getEStructuralFeatures().get(5); - } - - /** - * - * - * @generated - */ - public EAttribute getLoadCsv_WriteThreadCount() - { - return (EAttribute)loadCsvEClass.getEStructuralFeatures().get(6); - } - - /** - * - * - * @generated - */ - public EClass getTransform() - { - return transformEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getTransform_On() - { - return (EAttribute)transformEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getTransform_Value() - { - return (EAttribute)transformEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EClass getStartProcess() - { - return startProcessEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getStartProcess_Name() - { - return (EAttribute)startProcessEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getStartProcess_Target() - { - return (EAttribute)startProcessEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EClass getExpression() - { - return expressionEClass; - } - - /** - * - * - * @generated - */ - public EAttribute getExpression_Lhs() - { - return (EAttribute)expressionEClass.getEStructuralFeatures().get(0); - } - - /** - * - * - * @generated - */ - public EAttribute getExpression_Operator() - { - return (EAttribute)expressionEClass.getEStructuralFeatures().get(1); - } - - /** - * - * - * @generated - */ - public EAttribute getExpression_Rhs() - { - return (EAttribute)expressionEClass.getEStructuralFeatures().get(2); - } - - /** - * - * - * @generated - */ - public DslFactory getDslFactory() - { - return (DslFactory)getEFactoryInstance(); - } - - /** - * - * - * @generated - */ - private boolean isCreated = false; - - /** - * Creates the meta-model objects for the package. This method is - * guarded to have no affect on any invocation but its first. - * - * - * @generated - */ - public void createPackageContents() - { - if (isCreated) return; - isCreated = true; - - // Create classes and their features - processEClass = createEClass(PROCESS); - createEAttribute(processEClass, PROCESS__NAME); - createEReference(processEClass, PROCESS__TRY); - createEReference(processEClass, PROCESS__CATCH); - createEReference(processEClass, PROCESS__FINALLY); - - tryEClass = createEClass(TRY); - createEAttribute(tryEClass, TRY__NAME); - createEReference(tryEClass, TRY__ACTION); - - finallyEClass = createEClass(FINALLY); - createEAttribute(finallyEClass, FINALLY__NAME); - createEReference(finallyEClass, FINALLY__ACTION); - - catchEClass = createEClass(CATCH); - createEAttribute(catchEClass, CATCH__NAME); - createEReference(catchEClass, CATCH__ACTION); - - actionEClass = createEClass(ACTION); - createEAttribute(actionEClass, ACTION__NAME); - createEReference(actionEClass, ACTION__CONDITION); - - spawnprocessEClass = createEClass(SPAWNPROCESS); - createEAttribute(spawnprocessEClass, SPAWNPROCESS__TARGET); - createEAttribute(spawnprocessEClass, SPAWNPROCESS__SOURCE); - - doglegEClass = createEClass(DOGLEG); - createEAttribute(doglegEClass, DOGLEG__INHERIT_CONTEXT); - createEReference(doglegEClass, DOGLEG__PROCESS_LIST); - - execJavaEClass = createEClass(EXEC_JAVA); - createEAttribute(execJavaEClass, EXEC_JAVA__CLASS_FQN); - createEAttribute(execJavaEClass, EXEC_JAVA__DB_SRC); - createEAttribute(execJavaEClass, EXEC_JAVA__VALUE); - - firebaseDatabasePutEClass = createEClass(FIREBASE_DATABASE_PUT); - createEAttribute(firebaseDatabasePutEClass, FIREBASE_DATABASE_PUT__URL); - createEAttribute(firebaseDatabasePutEClass, FIREBASE_DATABASE_PUT__FBJSON); - createEAttribute(firebaseDatabasePutEClass, FIREBASE_DATABASE_PUT__GROUP_PATH); - createEAttribute(firebaseDatabasePutEClass, FIREBASE_DATABASE_PUT__DB_SRC); - createEAttribute(firebaseDatabasePutEClass, FIREBASE_DATABASE_PUT__CLASS_FQN); - createEAttribute(firebaseDatabasePutEClass, FIREBASE_DATABASE_PUT__VALUE); - - firebaseReactiveNotificationEClass = createEClass(FIREBASE_REACTIVE_NOTIFICATION); - createEAttribute(firebaseReactiveNotificationEClass, FIREBASE_REACTIVE_NOTIFICATION__URL); - createEAttribute(firebaseReactiveNotificationEClass, FIREBASE_REACTIVE_NOTIFICATION__FBJSON); - createEAttribute(firebaseReactiveNotificationEClass, FIREBASE_REACTIVE_NOTIFICATION__GROUP_PATH); - createEAttribute(firebaseReactiveNotificationEClass, FIREBASE_REACTIVE_NOTIFICATION__CLASS_FQN); - createEAttribute(firebaseReactiveNotificationEClass, FIREBASE_REACTIVE_NOTIFICATION__DB_SRC); - - smsLeadSmsEClass = createEClass(SMS_LEAD_SMS); - createEAttribute(smsLeadSmsEClass, SMS_LEAD_SMS__URL); - createEAttribute(smsLeadSmsEClass, SMS_LEAD_SMS__SENDER); - createEAttribute(smsLeadSmsEClass, SMS_LEAD_SMS__ACCOUNT); - createEAttribute(smsLeadSmsEClass, SMS_LEAD_SMS__PRIVATE_KEY); - createEAttribute(smsLeadSmsEClass, SMS_LEAD_SMS__DB_SRC); - createEAttribute(smsLeadSmsEClass, SMS_LEAD_SMS__VALUE); - createEAttribute(smsLeadSmsEClass, SMS_LEAD_SMS__DRYRUN_NUMBER); - - abortEClass = createEClass(ABORT); - createEAttribute(abortEClass, ABORT__VALUE); - - googlecontactSelectAllEClass = createEClass(GOOGLECONTACT_SELECT_ALL); - createEAttribute(googlecontactSelectAllEClass, GOOGLECONTACT_SELECT_ALL__ACCOUNT); - createEAttribute(googlecontactSelectAllEClass, GOOGLECONTACT_SELECT_ALL__PRIVATE_KEY); - createEAttribute(googlecontactSelectAllEClass, GOOGLECONTACT_SELECT_ALL__PTWELVE_FILE); - createEAttribute(googlecontactSelectAllEClass, GOOGLECONTACT_SELECT_ALL__PROJECT); - createEAttribute(googlecontactSelectAllEClass, GOOGLECONTACT_SELECT_ALL__IMPERSONATED_USER); - createEAttribute(googlecontactSelectAllEClass, GOOGLECONTACT_SELECT_ALL__DB_SRC); - createEAttribute(googlecontactSelectAllEClass, GOOGLECONTACT_SELECT_ALL__VALUE); - - sendMailEClass = createEClass(SEND_MAIL); - createEAttribute(sendMailEClass, SEND_MAIL__PRIVATE_KEY); - createEAttribute(sendMailEClass, SEND_MAIL__IMPERSONATED_USER); - createEAttribute(sendMailEClass, SEND_MAIL__DB_SRC); - createEAttribute(sendMailEClass, SEND_MAIL__VALUE); - createEAttribute(sendMailEClass, SEND_MAIL__DRYRUN_MAIL); - - googlecontactPUTEClass = createEClass(GOOGLECONTACT_PUT); - createEAttribute(googlecontactPUTEClass, GOOGLECONTACT_PUT__ACCOUNT); - createEAttribute(googlecontactPUTEClass, GOOGLECONTACT_PUT__PRIVATE_KEY); - createEAttribute(googlecontactPUTEClass, GOOGLECONTACT_PUT__PTWELVE_FILE); - createEAttribute(googlecontactPUTEClass, GOOGLECONTACT_PUT__PROJECT); - createEAttribute(googlecontactPUTEClass, GOOGLECONTACT_PUT__IMPERSONATED_USER); - createEAttribute(googlecontactPUTEClass, GOOGLECONTACT_PUT__DB_SRC); - createEAttribute(googlecontactPUTEClass, GOOGLECONTACT_PUT__VALUE); - - googlecalPUTEClass = createEClass(GOOGLECAL_PUT); - createEAttribute(googlecalPUTEClass, GOOGLECAL_PUT__ACCOUNT); - createEAttribute(googlecalPUTEClass, GOOGLECAL_PUT__PRIVATE_KEY); - createEAttribute(googlecalPUTEClass, GOOGLECAL_PUT__PTWELVE_FILE); - createEAttribute(googlecalPUTEClass, GOOGLECAL_PUT__PROJECT); - createEAttribute(googlecalPUTEClass, GOOGLECAL_PUT__IMPERSONATED_USER); - createEAttribute(googlecalPUTEClass, GOOGLECAL_PUT__DB_SRC); - createEAttribute(googlecalPUTEClass, GOOGLECAL_PUT__VALUE); - - fbcLeadEClass = createEClass(FBC_LEAD); - createEAttribute(fbcLeadEClass, FBC_LEAD__ACCESS_TOKEN); - createEAttribute(fbcLeadEClass, FBC_LEAD__APP_SECRET); - createEAttribute(fbcLeadEClass, FBC_LEAD__ACCOUNT_ID); - createEAttribute(fbcLeadEClass, FBC_LEAD__CAMPAIGN_ID); - createEAttribute(fbcLeadEClass, FBC_LEAD__TARGET); - createEAttribute(fbcLeadEClass, FBC_LEAD__VALUE); - - fbFormDownloadEClass = createEClass(FB_FORM_DOWNLOAD); - createEAttribute(fbFormDownloadEClass, FB_FORM_DOWNLOAD__ACCESS_TOKEN); - createEAttribute(fbFormDownloadEClass, FB_FORM_DOWNLOAD__APP_SECRET); - createEAttribute(fbFormDownloadEClass, FB_FORM_DOWNLOAD__ACCOUNT_ID); - createEAttribute(fbFormDownloadEClass, FB_FORM_DOWNLOAD__FORM_ID); - createEAttribute(fbFormDownloadEClass, FB_FORM_DOWNLOAD__TARGET); - createEAttribute(fbFormDownloadEClass, FB_FORM_DOWNLOAD__VALUE); - - dropfileEClass = createEClass(DROPFILE); - createEAttribute(dropfileEClass, DROPFILE__TARGET); - - doozleEClass = createEClass(DOOZLE); - createEAttribute(doozleEClass, DOOZLE__TARGET); - createEAttribute(doozleEClass, DOOZLE__ON); - createEAttribute(doozleEClass, DOOZLE__VALUE); - - restEClass = createEClass(REST); - createEAttribute(restEClass, REST__AUTHTOKEN); - createEAttribute(restEClass, REST__URL); - createEAttribute(restEClass, REST__METHOD); - createEAttribute(restEClass, REST__RESOURCEDATAFROM); - createEAttribute(restEClass, REST__URLDATA); - createEAttribute(restEClass, REST__HEADERDATAFROM); - createEAttribute(restEClass, REST__HEADERDATA); - createEAttribute(restEClass, REST__POSTDATAFROM); - createEAttribute(restEClass, REST__PARENT_NAME); - createEAttribute(restEClass, REST__PARENTDATA); - createEReference(restEClass, REST__PARTS); - createEAttribute(restEClass, REST__ACKDATATO); - createEAttribute(restEClass, REST__ACKDATA); - - restPartEClass = createEClass(REST_PART); - createEAttribute(restPartEClass, REST_PART__PART_NAME); - createEAttribute(restPartEClass, REST_PART__PART_DATA); - - trelloGETEClass = createEClass(TRELLO_GET); - createEAttribute(trelloGETEClass, TRELLO_GET__AUTHTOKEN); - createEAttribute(trelloGETEClass, TRELLO_GET__KEY); - createEAttribute(trelloGETEClass, TRELLO_GET__USERACCOUNT); - createEAttribute(trelloGETEClass, TRELLO_GET__BOARD); - createEAttribute(trelloGETEClass, TRELLO_GET__TARGET); - createEAttribute(trelloGETEClass, TRELLO_GET__VALUE); - - trelloPUTEClass = createEClass(TRELLO_PUT); - createEAttribute(trelloPUTEClass, TRELLO_PUT__AUTHTOKEN); - createEAttribute(trelloPUTEClass, TRELLO_PUT__KEY); - createEAttribute(trelloPUTEClass, TRELLO_PUT__USERACCOUNT); - createEAttribute(trelloPUTEClass, TRELLO_PUT__LIST); - createEAttribute(trelloPUTEClass, TRELLO_PUT__SOURCE); - createEAttribute(trelloPUTEClass, TRELLO_PUT__VALUE); - - fetchEClass = createEClass(FETCH); - createEAttribute(fetchEClass, FETCH__SOURCE); - createEAttribute(fetchEClass, FETCH__VALUE); - - callprocessEClass = createEClass(CALLPROCESS); - createEAttribute(callprocessEClass, CALLPROCESS__TARGET); - createEAttribute(callprocessEClass, CALLPROCESS__SOURCE); - createEAttribute(callprocessEClass, CALLPROCESS__DATASOURCE); - createEAttribute(callprocessEClass, CALLPROCESS__VALUE); - - forkprocessEClass = createEClass(FORKPROCESS); - createEAttribute(forkprocessEClass, FORKPROCESS__TARGET); - createEAttribute(forkprocessEClass, FORKPROCESS__SOURCE); - createEAttribute(forkprocessEClass, FORKPROCESS__DATASOURCE); - createEAttribute(forkprocessEClass, FORKPROCESS__VALUE); - createEAttribute(forkprocessEClass, FORKPROCESS__FORK_BATCH_SIZE); - - updatedauditEClass = createEClass(UPDATEDAUDIT); - createEAttribute(updatedauditEClass, UPDATEDAUDIT__LOGSINK); - createEAttribute(updatedauditEClass, UPDATEDAUDIT__DATASOURCE); - createEAttribute(updatedauditEClass, UPDATEDAUDIT__VALUE); - - clickSendSmsEClass = createEClass(CLICK_SEND_SMS); - createEAttribute(clickSendSmsEClass, CLICK_SEND_SMS__USERID); - createEAttribute(clickSendSmsEClass, CLICK_SEND_SMS__SECURITY_KEY); - createEAttribute(clickSendSmsEClass, CLICK_SEND_SMS__TARGET); - createEAttribute(clickSendSmsEClass, CLICK_SEND_SMS__VALUE); - - slackPUTEClass = createEClass(SLACK_PUT); - createEAttribute(slackPUTEClass, SLACK_PUT__TEAM); - createEAttribute(slackPUTEClass, SLACK_PUT__CHANNEL); - createEAttribute(slackPUTEClass, SLACK_PUT__VALUE); - - copydataEClass = createEClass(COPYDATA); - createEAttribute(copydataEClass, COPYDATA__SOURCE); - createEAttribute(copydataEClass, COPYDATA__TO); - createEAttribute(copydataEClass, COPYDATA__VALUE); - createEAttribute(copydataEClass, COPYDATA__WRITE_THREAD_COUNT); - createEAttribute(copydataEClass, COPYDATA__FETCH_BATCH_SIZE); - createEAttribute(copydataEClass, COPYDATA__WRITE_BATCH_SIZE); - - writeCsvEClass = createEClass(WRITE_CSV); - createEAttribute(writeCsvEClass, WRITE_CSV__SOURCE); - createEAttribute(writeCsvEClass, WRITE_CSV__TO); - createEAttribute(writeCsvEClass, WRITE_CSV__DELIM); - createEAttribute(writeCsvEClass, WRITE_CSV__VALUE); - - loadCsvEClass = createEClass(LOAD_CSV); - createEAttribute(loadCsvEClass, LOAD_CSV__SOURCE); - createEAttribute(loadCsvEClass, LOAD_CSV__TO); - createEAttribute(loadCsvEClass, LOAD_CSV__DELIM); - createEAttribute(loadCsvEClass, LOAD_CSV__FETCH_BATCH_SIZE); - createEAttribute(loadCsvEClass, LOAD_CSV__WRITE_BATCH_SIZE); - createEAttribute(loadCsvEClass, LOAD_CSV__VALUE); - createEAttribute(loadCsvEClass, LOAD_CSV__WRITE_THREAD_COUNT); - - transformEClass = createEClass(TRANSFORM); - createEAttribute(transformEClass, TRANSFORM__ON); - createEAttribute(transformEClass, TRANSFORM__VALUE); - - startProcessEClass = createEClass(START_PROCESS); - createEAttribute(startProcessEClass, START_PROCESS__NAME); - createEAttribute(startProcessEClass, START_PROCESS__TARGET); - - expressionEClass = createEClass(EXPRESSION); - createEAttribute(expressionEClass, EXPRESSION__LHS); - createEAttribute(expressionEClass, EXPRESSION__OPERATOR); - createEAttribute(expressionEClass, EXPRESSION__RHS); - } - - /** - * - * - * @generated - */ - private boolean isInitialized = false; - - /** - * Complete the initialization of the package and its meta-model. This - * method is guarded to have no affect on any invocation but its first. - * - * - * @generated - */ - public void initializePackageContents() - { - if (isInitialized) return; - isInitialized = true; - - // Initialize package - setName(eNAME); - setNsPrefix(eNS_PREFIX); - setNsURI(eNS_URI); - - // Create type parameters - - // Set bounds for type parameters - - // Add supertypes to classes - spawnprocessEClass.getESuperTypes().add(this.getAction()); - doglegEClass.getESuperTypes().add(this.getAction()); - execJavaEClass.getESuperTypes().add(this.getAction()); - firebaseDatabasePutEClass.getESuperTypes().add(this.getAction()); - firebaseReactiveNotificationEClass.getESuperTypes().add(this.getAction()); - smsLeadSmsEClass.getESuperTypes().add(this.getAction()); - abortEClass.getESuperTypes().add(this.getAction()); - googlecontactSelectAllEClass.getESuperTypes().add(this.getAction()); - sendMailEClass.getESuperTypes().add(this.getAction()); - googlecontactPUTEClass.getESuperTypes().add(this.getAction()); - googlecalPUTEClass.getESuperTypes().add(this.getAction()); - fbcLeadEClass.getESuperTypes().add(this.getAction()); - fbFormDownloadEClass.getESuperTypes().add(this.getAction()); - dropfileEClass.getESuperTypes().add(this.getAction()); - doozleEClass.getESuperTypes().add(this.getAction()); - restEClass.getESuperTypes().add(this.getAction()); - trelloGETEClass.getESuperTypes().add(this.getAction()); - trelloPUTEClass.getESuperTypes().add(this.getAction()); - fetchEClass.getESuperTypes().add(this.getAction()); - callprocessEClass.getESuperTypes().add(this.getAction()); - forkprocessEClass.getESuperTypes().add(this.getAction()); - updatedauditEClass.getESuperTypes().add(this.getAction()); - clickSendSmsEClass.getESuperTypes().add(this.getAction()); - slackPUTEClass.getESuperTypes().add(this.getAction()); - copydataEClass.getESuperTypes().add(this.getAction()); - writeCsvEClass.getESuperTypes().add(this.getAction()); - loadCsvEClass.getESuperTypes().add(this.getAction()); - transformEClass.getESuperTypes().add(this.getAction()); - - // Initialize classes and features; add operations and parameters - initEClass(processEClass, in.handyman.dsl.Process.class, "Process", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getProcess_Name(), ecorePackage.getEString(), "name", null, 0, 1, in.handyman.dsl.Process.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getProcess_Try(), this.getTry(), null, "try", null, 0, 1, in.handyman.dsl.Process.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getProcess_Catch(), this.getCatch(), null, "catch", null, 0, 1, in.handyman.dsl.Process.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getProcess_Finally(), this.getFinally(), null, "finally", null, 0, 1, in.handyman.dsl.Process.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(tryEClass, Try.class, "Try", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getTry_Name(), ecorePackage.getEString(), "name", null, 0, 1, Try.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getTry_Action(), this.getAction(), null, "action", null, 0, -1, Try.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(finallyEClass, Finally.class, "Finally", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getFinally_Name(), ecorePackage.getEString(), "name", null, 0, 1, Finally.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getFinally_Action(), this.getAction(), null, "action", null, 0, -1, Finally.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(catchEClass, Catch.class, "Catch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getCatch_Name(), ecorePackage.getEString(), "name", null, 0, 1, Catch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getCatch_Action(), this.getAction(), null, "action", null, 0, -1, Catch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(actionEClass, Action.class, "Action", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getAction_Name(), ecorePackage.getEString(), "name", null, 0, 1, Action.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getAction_Condition(), this.getExpression(), null, "condition", null, 0, 1, Action.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(spawnprocessEClass, Spawnprocess.class, "Spawnprocess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getSpawnprocess_Target(), ecorePackage.getEString(), "target", null, 0, 1, Spawnprocess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSpawnprocess_Source(), ecorePackage.getEString(), "source", null, 0, 1, Spawnprocess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(doglegEClass, Dogleg.class, "Dogleg", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getDogleg_InheritContext(), ecorePackage.getEString(), "inheritContext", null, 0, 1, Dogleg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getDogleg_ProcessList(), this.getStartProcess(), null, "processList", null, 0, -1, Dogleg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(execJavaEClass, ExecJava.class, "ExecJava", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getExecJava_ClassFqn(), ecorePackage.getEString(), "classFqn", null, 0, 1, ExecJava.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getExecJava_DbSrc(), ecorePackage.getEString(), "dbSrc", null, 0, 1, ExecJava.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getExecJava_Value(), ecorePackage.getEString(), "value", null, 0, 1, ExecJava.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(firebaseDatabasePutEClass, FirebaseDatabasePut.class, "FirebaseDatabasePut", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getFirebaseDatabasePut_Url(), ecorePackage.getEString(), "url", null, 0, 1, FirebaseDatabasePut.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFirebaseDatabasePut_Fbjson(), ecorePackage.getEString(), "fbjson", null, 0, 1, FirebaseDatabasePut.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFirebaseDatabasePut_GroupPath(), ecorePackage.getEString(), "groupPath", null, 0, 1, FirebaseDatabasePut.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFirebaseDatabasePut_DbSrc(), ecorePackage.getEString(), "dbSrc", null, 0, 1, FirebaseDatabasePut.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFirebaseDatabasePut_ClassFqn(), ecorePackage.getEString(), "classFqn", null, 0, 1, FirebaseDatabasePut.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFirebaseDatabasePut_Value(), ecorePackage.getEString(), "value", null, 0, 1, FirebaseDatabasePut.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(firebaseReactiveNotificationEClass, FirebaseReactiveNotification.class, "FirebaseReactiveNotification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getFirebaseReactiveNotification_Url(), ecorePackage.getEString(), "url", null, 0, 1, FirebaseReactiveNotification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFirebaseReactiveNotification_Fbjson(), ecorePackage.getEString(), "fbjson", null, 0, 1, FirebaseReactiveNotification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFirebaseReactiveNotification_GroupPath(), ecorePackage.getEString(), "groupPath", null, 0, 1, FirebaseReactiveNotification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFirebaseReactiveNotification_ClassFqn(), ecorePackage.getEString(), "classFqn", null, 0, 1, FirebaseReactiveNotification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFirebaseReactiveNotification_DbSrc(), ecorePackage.getEString(), "dbSrc", null, 0, 1, FirebaseReactiveNotification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(smsLeadSmsEClass, SmsLeadSms.class, "SmsLeadSms", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getSmsLeadSms_Url(), ecorePackage.getEString(), "url", null, 0, 1, SmsLeadSms.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSmsLeadSms_Sender(), ecorePackage.getEString(), "sender", null, 0, 1, SmsLeadSms.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSmsLeadSms_Account(), ecorePackage.getEString(), "account", null, 0, 1, SmsLeadSms.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSmsLeadSms_PrivateKey(), ecorePackage.getEString(), "privateKey", null, 0, 1, SmsLeadSms.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSmsLeadSms_DbSrc(), ecorePackage.getEString(), "dbSrc", null, 0, 1, SmsLeadSms.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSmsLeadSms_Value(), ecorePackage.getEString(), "value", null, 0, 1, SmsLeadSms.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSmsLeadSms_DryrunNumber(), ecorePackage.getEString(), "dryrunNumber", null, 0, 1, SmsLeadSms.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(abortEClass, Abort.class, "Abort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getAbort_Value(), ecorePackage.getEString(), "value", null, 0, 1, Abort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(googlecontactSelectAllEClass, GooglecontactSelectAll.class, "GooglecontactSelectAll", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getGooglecontactSelectAll_Account(), ecorePackage.getEString(), "account", null, 0, 1, GooglecontactSelectAll.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactSelectAll_PrivateKey(), ecorePackage.getEString(), "privateKey", null, 0, 1, GooglecontactSelectAll.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactSelectAll_PtwelveFile(), ecorePackage.getEString(), "ptwelveFile", null, 0, 1, GooglecontactSelectAll.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactSelectAll_Project(), ecorePackage.getEString(), "project", null, 0, 1, GooglecontactSelectAll.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactSelectAll_ImpersonatedUser(), ecorePackage.getEString(), "impersonatedUser", null, 0, 1, GooglecontactSelectAll.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactSelectAll_DbSrc(), ecorePackage.getEString(), "dbSrc", null, 0, 1, GooglecontactSelectAll.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactSelectAll_Value(), ecorePackage.getEString(), "value", null, 0, 1, GooglecontactSelectAll.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(sendMailEClass, SendMail.class, "SendMail", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getSendMail_PrivateKey(), ecorePackage.getEString(), "privateKey", null, 0, 1, SendMail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSendMail_ImpersonatedUser(), ecorePackage.getEString(), "impersonatedUser", null, 0, 1, SendMail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSendMail_DbSrc(), ecorePackage.getEString(), "dbSrc", null, 0, 1, SendMail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSendMail_Value(), ecorePackage.getEString(), "value", null, 0, 1, SendMail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSendMail_DryrunMail(), ecorePackage.getEString(), "dryrunMail", null, 0, 1, SendMail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(googlecontactPUTEClass, GooglecontactPUT.class, "GooglecontactPUT", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getGooglecontactPUT_Account(), ecorePackage.getEString(), "account", null, 0, 1, GooglecontactPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactPUT_PrivateKey(), ecorePackage.getEString(), "privateKey", null, 0, 1, GooglecontactPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactPUT_PtwelveFile(), ecorePackage.getEString(), "ptwelveFile", null, 0, 1, GooglecontactPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactPUT_Project(), ecorePackage.getEString(), "project", null, 0, 1, GooglecontactPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactPUT_ImpersonatedUser(), ecorePackage.getEString(), "impersonatedUser", null, 0, 1, GooglecontactPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactPUT_DbSrc(), ecorePackage.getEString(), "dbSrc", null, 0, 1, GooglecontactPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecontactPUT_Value(), ecorePackage.getEString(), "value", null, 0, 1, GooglecontactPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(googlecalPUTEClass, GooglecalPUT.class, "GooglecalPUT", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getGooglecalPUT_Account(), ecorePackage.getEString(), "account", null, 0, 1, GooglecalPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecalPUT_PrivateKey(), ecorePackage.getEString(), "privateKey", null, 0, 1, GooglecalPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecalPUT_PtwelveFile(), ecorePackage.getEString(), "ptwelveFile", null, 0, 1, GooglecalPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecalPUT_Project(), ecorePackage.getEString(), "project", null, 0, 1, GooglecalPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecalPUT_ImpersonatedUser(), ecorePackage.getEString(), "impersonatedUser", null, 0, 1, GooglecalPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecalPUT_DbSrc(), ecorePackage.getEString(), "dbSrc", null, 0, 1, GooglecalPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGooglecalPUT_Value(), ecorePackage.getEString(), "value", null, 0, 1, GooglecalPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(fbcLeadEClass, FBCLead.class, "FBCLead", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getFBCLead_AccessToken(), ecorePackage.getEString(), "accessToken", null, 0, 1, FBCLead.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFBCLead_AppSecret(), ecorePackage.getEString(), "appSecret", null, 0, 1, FBCLead.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFBCLead_AccountId(), ecorePackage.getEString(), "accountId", null, 0, 1, FBCLead.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFBCLead_CampaignId(), ecorePackage.getEString(), "campaignId", null, 0, 1, FBCLead.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFBCLead_Target(), ecorePackage.getEString(), "target", null, 0, 1, FBCLead.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFBCLead_Value(), ecorePackage.getEString(), "value", null, 0, 1, FBCLead.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(fbFormDownloadEClass, FBFormDownload.class, "FBFormDownload", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getFBFormDownload_AccessToken(), ecorePackage.getEString(), "accessToken", null, 0, 1, FBFormDownload.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFBFormDownload_AppSecret(), ecorePackage.getEString(), "appSecret", null, 0, 1, FBFormDownload.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFBFormDownload_AccountId(), ecorePackage.getEString(), "accountId", null, 0, 1, FBFormDownload.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFBFormDownload_FormId(), ecorePackage.getEString(), "formId", null, 0, 1, FBFormDownload.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFBFormDownload_Target(), ecorePackage.getEString(), "target", null, 0, 1, FBFormDownload.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFBFormDownload_Value(), ecorePackage.getEString(), "value", null, 0, 1, FBFormDownload.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(dropfileEClass, Dropfile.class, "Dropfile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getDropfile_Target(), ecorePackage.getEString(), "target", null, 0, 1, Dropfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(doozleEClass, Doozle.class, "Doozle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getDoozle_Target(), ecorePackage.getEString(), "target", null, 0, 1, Doozle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getDoozle_On(), ecorePackage.getEString(), "on", null, 0, 1, Doozle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getDoozle_Value(), ecorePackage.getEString(), "value", null, 0, 1, Doozle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(restEClass, Rest.class, "Rest", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getRest_Authtoken(), ecorePackage.getEString(), "authtoken", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRest_Url(), ecorePackage.getEString(), "url", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRest_Method(), ecorePackage.getEString(), "method", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRest_Resourcedatafrom(), ecorePackage.getEString(), "resourcedatafrom", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRest_Urldata(), ecorePackage.getEString(), "urldata", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRest_Headerdatafrom(), ecorePackage.getEString(), "headerdatafrom", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRest_Headerdata(), ecorePackage.getEString(), "headerdata", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRest_Postdatafrom(), ecorePackage.getEString(), "postdatafrom", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRest_ParentName(), ecorePackage.getEString(), "parentName", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRest_Parentdata(), ecorePackage.getEString(), "parentdata", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getRest_Parts(), this.getRestPart(), null, "parts", null, 0, -1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRest_Ackdatato(), ecorePackage.getEString(), "ackdatato", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRest_Ackdata(), ecorePackage.getEString(), "ackdata", null, 0, 1, Rest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(restPartEClass, RestPart.class, "RestPart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getRestPart_PartName(), ecorePackage.getEString(), "partName", null, 0, 1, RestPart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRestPart_PartData(), ecorePackage.getEString(), "partData", null, 0, 1, RestPart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(trelloGETEClass, TrelloGET.class, "TrelloGET", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getTrelloGET_Authtoken(), ecorePackage.getEString(), "authtoken", null, 0, 1, TrelloGET.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getTrelloGET_Key(), ecorePackage.getEString(), "key", null, 0, 1, TrelloGET.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getTrelloGET_Useraccount(), ecorePackage.getEString(), "useraccount", null, 0, 1, TrelloGET.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getTrelloGET_Board(), ecorePackage.getEString(), "board", null, 0, 1, TrelloGET.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getTrelloGET_Target(), ecorePackage.getEString(), "target", null, 0, 1, TrelloGET.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getTrelloGET_Value(), ecorePackage.getEString(), "value", null, 0, 1, TrelloGET.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(trelloPUTEClass, TrelloPUT.class, "TrelloPUT", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getTrelloPUT_Authtoken(), ecorePackage.getEString(), "authtoken", null, 0, 1, TrelloPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getTrelloPUT_Key(), ecorePackage.getEString(), "key", null, 0, 1, TrelloPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getTrelloPUT_Useraccount(), ecorePackage.getEString(), "useraccount", null, 0, 1, TrelloPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getTrelloPUT_List(), ecorePackage.getEString(), "list", null, 0, 1, TrelloPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getTrelloPUT_Source(), ecorePackage.getEString(), "source", null, 0, 1, TrelloPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getTrelloPUT_Value(), ecorePackage.getEString(), "value", null, 0, 1, TrelloPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(fetchEClass, Fetch.class, "Fetch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getFetch_Source(), ecorePackage.getEString(), "source", null, 0, 1, Fetch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getFetch_Value(), ecorePackage.getEString(), "value", null, 0, 1, Fetch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(callprocessEClass, Callprocess.class, "Callprocess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getCallprocess_Target(), ecorePackage.getEString(), "target", null, 0, 1, Callprocess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getCallprocess_Source(), ecorePackage.getEString(), "source", null, 0, 1, Callprocess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getCallprocess_Datasource(), ecorePackage.getEString(), "datasource", null, 0, 1, Callprocess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getCallprocess_Value(), ecorePackage.getEString(), "value", null, 0, 1, Callprocess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(forkprocessEClass, Forkprocess.class, "Forkprocess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getForkprocess_Target(), ecorePackage.getEString(), "target", null, 0, 1, Forkprocess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getForkprocess_Source(), ecorePackage.getEString(), "source", null, 0, 1, Forkprocess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getForkprocess_Datasource(), ecorePackage.getEString(), "datasource", null, 0, 1, Forkprocess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getForkprocess_Value(), ecorePackage.getEString(), "value", null, 0, 1, Forkprocess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getForkprocess_ForkBatchSize(), ecorePackage.getEString(), "forkBatchSize", null, 0, 1, Forkprocess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(updatedauditEClass, Updatedaudit.class, "Updatedaudit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getUpdatedaudit_Logsink(), ecorePackage.getEString(), "logsink", null, 0, 1, Updatedaudit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getUpdatedaudit_Datasource(), ecorePackage.getEString(), "datasource", null, 0, 1, Updatedaudit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getUpdatedaudit_Value(), ecorePackage.getEString(), "value", null, 0, 1, Updatedaudit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(clickSendSmsEClass, ClickSendSms.class, "ClickSendSms", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getClickSendSms_Userid(), ecorePackage.getEString(), "userid", null, 0, 1, ClickSendSms.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getClickSendSms_SecurityKey(), ecorePackage.getEString(), "securityKey", null, 0, 1, ClickSendSms.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getClickSendSms_Target(), ecorePackage.getEString(), "target", null, 0, 1, ClickSendSms.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getClickSendSms_Value(), ecorePackage.getEString(), "value", null, 0, 1, ClickSendSms.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(slackPUTEClass, SlackPUT.class, "SlackPUT", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getSlackPUT_Team(), ecorePackage.getEString(), "team", null, 0, 1, SlackPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSlackPUT_Channel(), ecorePackage.getEString(), "channel", null, 0, 1, SlackPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getSlackPUT_Value(), ecorePackage.getEString(), "value", null, 0, 1, SlackPUT.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(copydataEClass, Copydata.class, "Copydata", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getCopydata_Source(), ecorePackage.getEString(), "source", null, 0, 1, Copydata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getCopydata_To(), ecorePackage.getEString(), "to", null, 0, 1, Copydata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getCopydata_Value(), ecorePackage.getEString(), "value", null, 0, 1, Copydata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getCopydata_WriteThreadCount(), ecorePackage.getEString(), "writeThreadCount", null, 0, 1, Copydata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getCopydata_FetchBatchSize(), ecorePackage.getEString(), "fetchBatchSize", null, 0, 1, Copydata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getCopydata_WriteBatchSize(), ecorePackage.getEString(), "writeBatchSize", null, 0, 1, Copydata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(writeCsvEClass, WriteCsv.class, "WriteCsv", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getWriteCsv_Source(), ecorePackage.getEString(), "source", null, 0, 1, WriteCsv.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getWriteCsv_To(), ecorePackage.getEString(), "to", null, 0, 1, WriteCsv.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getWriteCsv_Delim(), ecorePackage.getEString(), "delim", null, 0, 1, WriteCsv.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getWriteCsv_Value(), ecorePackage.getEString(), "value", null, 0, 1, WriteCsv.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(loadCsvEClass, LoadCsv.class, "LoadCsv", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getLoadCsv_Source(), ecorePackage.getEString(), "source", null, 0, 1, LoadCsv.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getLoadCsv_To(), ecorePackage.getEString(), "to", null, 0, 1, LoadCsv.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getLoadCsv_Delim(), ecorePackage.getEString(), "delim", null, 0, 1, LoadCsv.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getLoadCsv_FetchBatchSize(), ecorePackage.getEInt(), "fetchBatchSize", null, 0, 1, LoadCsv.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getLoadCsv_WriteBatchSize(), ecorePackage.getEInt(), "writeBatchSize", null, 0, 1, LoadCsv.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getLoadCsv_Value(), ecorePackage.getEString(), "value", null, 0, 1, LoadCsv.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getLoadCsv_WriteThreadCount(), ecorePackage.getEInt(), "writeThreadCount", null, 0, 1, LoadCsv.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(transformEClass, Transform.class, "Transform", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getTransform_On(), ecorePackage.getEString(), "on", null, 0, 1, Transform.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getTransform_Value(), ecorePackage.getEString(), "value", null, 0, -1, Transform.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(startProcessEClass, StartProcess.class, "StartProcess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getStartProcess_Name(), ecorePackage.getEString(), "name", null, 0, 1, StartProcess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getStartProcess_Target(), ecorePackage.getEString(), "target", null, 0, 1, StartProcess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(expressionEClass, Expression.class, "Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getExpression_Lhs(), ecorePackage.getEString(), "lhs", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getExpression_Operator(), ecorePackage.getEString(), "operator", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getExpression_Rhs(), ecorePackage.getEString(), "rhs", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - // Create resource - createResource(eNS_URI); - } - -} //DslPackageImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ExecJavaImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ExecJavaImpl.java deleted file mode 100644 index c7250c02..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ExecJavaImpl.java +++ /dev/null @@ -1,289 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.ExecJava; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Exec Java'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.ExecJavaImpl#getClassFqn Class Fqn}
  • - *
  • {@link in.handyman.dsl.impl.ExecJavaImpl#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.impl.ExecJavaImpl#getValue Value}
  • - *
- * - * @generated - */ -public class ExecJavaImpl extends ActionImpl implements ExecJava -{ - /** - * The default value of the '{@link #getClassFqn() Class Fqn}' attribute. - * - * - * @see #getClassFqn() - * @generated - * @ordered - */ - protected static final String CLASS_FQN_EDEFAULT = null; - - /** - * The cached value of the '{@link #getClassFqn() Class Fqn}' attribute. - * - * - * @see #getClassFqn() - * @generated - * @ordered - */ - protected String classFqn = CLASS_FQN_EDEFAULT; - - /** - * The default value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected static final String DB_SRC_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected String dbSrc = DB_SRC_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected ExecJavaImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.EXEC_JAVA; - } - - /** - * - * - * @generated - */ - public String getClassFqn() - { - return classFqn; - } - - /** - * - * - * @generated - */ - public void setClassFqn(String newClassFqn) - { - String oldClassFqn = classFqn; - classFqn = newClassFqn; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.EXEC_JAVA__CLASS_FQN, oldClassFqn, classFqn)); - } - - /** - * - * - * @generated - */ - public String getDbSrc() - { - return dbSrc; - } - - /** - * - * - * @generated - */ - public void setDbSrc(String newDbSrc) - { - String oldDbSrc = dbSrc; - dbSrc = newDbSrc; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.EXEC_JAVA__DB_SRC, oldDbSrc, dbSrc)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.EXEC_JAVA__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.EXEC_JAVA__CLASS_FQN: - return getClassFqn(); - case DslPackage.EXEC_JAVA__DB_SRC: - return getDbSrc(); - case DslPackage.EXEC_JAVA__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.EXEC_JAVA__CLASS_FQN: - setClassFqn((String)newValue); - return; - case DslPackage.EXEC_JAVA__DB_SRC: - setDbSrc((String)newValue); - return; - case DslPackage.EXEC_JAVA__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.EXEC_JAVA__CLASS_FQN: - setClassFqn(CLASS_FQN_EDEFAULT); - return; - case DslPackage.EXEC_JAVA__DB_SRC: - setDbSrc(DB_SRC_EDEFAULT); - return; - case DslPackage.EXEC_JAVA__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.EXEC_JAVA__CLASS_FQN: - return CLASS_FQN_EDEFAULT == null ? classFqn != null : !CLASS_FQN_EDEFAULT.equals(classFqn); - case DslPackage.EXEC_JAVA__DB_SRC: - return DB_SRC_EDEFAULT == null ? dbSrc != null : !DB_SRC_EDEFAULT.equals(dbSrc); - case DslPackage.EXEC_JAVA__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (classFqn: "); - result.append(classFqn); - result.append(", dbSrc: "); - result.append(dbSrc); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //ExecJavaImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ExpressionImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ExpressionImpl.java deleted file mode 100644 index 409fe932..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ExpressionImpl.java +++ /dev/null @@ -1,290 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.Expression; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -/** - * - * An implementation of the model object 'Expression'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.ExpressionImpl#getLhs Lhs}
  • - *
  • {@link in.handyman.dsl.impl.ExpressionImpl#getOperator Operator}
  • - *
  • {@link in.handyman.dsl.impl.ExpressionImpl#getRhs Rhs}
  • - *
- * - * @generated - */ -public class ExpressionImpl extends MinimalEObjectImpl.Container implements Expression -{ - /** - * The default value of the '{@link #getLhs() Lhs}' attribute. - * - * - * @see #getLhs() - * @generated - * @ordered - */ - protected static final String LHS_EDEFAULT = null; - - /** - * The cached value of the '{@link #getLhs() Lhs}' attribute. - * - * - * @see #getLhs() - * @generated - * @ordered - */ - protected String lhs = LHS_EDEFAULT; - - /** - * The default value of the '{@link #getOperator() Operator}' attribute. - * - * - * @see #getOperator() - * @generated - * @ordered - */ - protected static final String OPERATOR_EDEFAULT = null; - - /** - * The cached value of the '{@link #getOperator() Operator}' attribute. - * - * - * @see #getOperator() - * @generated - * @ordered - */ - protected String operator = OPERATOR_EDEFAULT; - - /** - * The default value of the '{@link #getRhs() Rhs}' attribute. - * - * - * @see #getRhs() - * @generated - * @ordered - */ - protected static final String RHS_EDEFAULT = null; - - /** - * The cached value of the '{@link #getRhs() Rhs}' attribute. - * - * - * @see #getRhs() - * @generated - * @ordered - */ - protected String rhs = RHS_EDEFAULT; - - /** - * - * - * @generated - */ - protected ExpressionImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.EXPRESSION; - } - - /** - * - * - * @generated - */ - public String getLhs() - { - return lhs; - } - - /** - * - * - * @generated - */ - public void setLhs(String newLhs) - { - String oldLhs = lhs; - lhs = newLhs; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.EXPRESSION__LHS, oldLhs, lhs)); - } - - /** - * - * - * @generated - */ - public String getOperator() - { - return operator; - } - - /** - * - * - * @generated - */ - public void setOperator(String newOperator) - { - String oldOperator = operator; - operator = newOperator; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.EXPRESSION__OPERATOR, oldOperator, operator)); - } - - /** - * - * - * @generated - */ - public String getRhs() - { - return rhs; - } - - /** - * - * - * @generated - */ - public void setRhs(String newRhs) - { - String oldRhs = rhs; - rhs = newRhs; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.EXPRESSION__RHS, oldRhs, rhs)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.EXPRESSION__LHS: - return getLhs(); - case DslPackage.EXPRESSION__OPERATOR: - return getOperator(); - case DslPackage.EXPRESSION__RHS: - return getRhs(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.EXPRESSION__LHS: - setLhs((String)newValue); - return; - case DslPackage.EXPRESSION__OPERATOR: - setOperator((String)newValue); - return; - case DslPackage.EXPRESSION__RHS: - setRhs((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.EXPRESSION__LHS: - setLhs(LHS_EDEFAULT); - return; - case DslPackage.EXPRESSION__OPERATOR: - setOperator(OPERATOR_EDEFAULT); - return; - case DslPackage.EXPRESSION__RHS: - setRhs(RHS_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.EXPRESSION__LHS: - return LHS_EDEFAULT == null ? lhs != null : !LHS_EDEFAULT.equals(lhs); - case DslPackage.EXPRESSION__OPERATOR: - return OPERATOR_EDEFAULT == null ? operator != null : !OPERATOR_EDEFAULT.equals(operator); - case DslPackage.EXPRESSION__RHS: - return RHS_EDEFAULT == null ? rhs != null : !RHS_EDEFAULT.equals(rhs); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (lhs: "); - result.append(lhs); - result.append(", operator: "); - result.append(operator); - result.append(", rhs: "); - result.append(rhs); - result.append(')'); - return result.toString(); - } - -} //ExpressionImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FBCLeadImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FBCLeadImpl.java deleted file mode 100644 index 9de3ce4d..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FBCLeadImpl.java +++ /dev/null @@ -1,457 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.FBCLead; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'FBC Lead'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.FBCLeadImpl#getAccessToken Access Token}
  • - *
  • {@link in.handyman.dsl.impl.FBCLeadImpl#getAppSecret App Secret}
  • - *
  • {@link in.handyman.dsl.impl.FBCLeadImpl#getAccountId Account Id}
  • - *
  • {@link in.handyman.dsl.impl.FBCLeadImpl#getCampaignId Campaign Id}
  • - *
  • {@link in.handyman.dsl.impl.FBCLeadImpl#getTarget Target}
  • - *
  • {@link in.handyman.dsl.impl.FBCLeadImpl#getValue Value}
  • - *
- * - * @generated - */ -public class FBCLeadImpl extends ActionImpl implements FBCLead -{ - /** - * The default value of the '{@link #getAccessToken() Access Token}' attribute. - * - * - * @see #getAccessToken() - * @generated - * @ordered - */ - protected static final String ACCESS_TOKEN_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAccessToken() Access Token}' attribute. - * - * - * @see #getAccessToken() - * @generated - * @ordered - */ - protected String accessToken = ACCESS_TOKEN_EDEFAULT; - - /** - * The default value of the '{@link #getAppSecret() App Secret}' attribute. - * - * - * @see #getAppSecret() - * @generated - * @ordered - */ - protected static final String APP_SECRET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAppSecret() App Secret}' attribute. - * - * - * @see #getAppSecret() - * @generated - * @ordered - */ - protected String appSecret = APP_SECRET_EDEFAULT; - - /** - * The default value of the '{@link #getAccountId() Account Id}' attribute. - * - * - * @see #getAccountId() - * @generated - * @ordered - */ - protected static final String ACCOUNT_ID_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAccountId() Account Id}' attribute. - * - * - * @see #getAccountId() - * @generated - * @ordered - */ - protected String accountId = ACCOUNT_ID_EDEFAULT; - - /** - * The default value of the '{@link #getCampaignId() Campaign Id}' attribute. - * - * - * @see #getCampaignId() - * @generated - * @ordered - */ - protected static final String CAMPAIGN_ID_EDEFAULT = null; - - /** - * The cached value of the '{@link #getCampaignId() Campaign Id}' attribute. - * - * - * @see #getCampaignId() - * @generated - * @ordered - */ - protected String campaignId = CAMPAIGN_ID_EDEFAULT; - - /** - * The default value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected static final String TARGET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected String target = TARGET_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected FBCLeadImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.FBC_LEAD; - } - - /** - * - * - * @generated - */ - public String getAccessToken() - { - return accessToken; - } - - /** - * - * - * @generated - */ - public void setAccessToken(String newAccessToken) - { - String oldAccessToken = accessToken; - accessToken = newAccessToken; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FBC_LEAD__ACCESS_TOKEN, oldAccessToken, accessToken)); - } - - /** - * - * - * @generated - */ - public String getAppSecret() - { - return appSecret; - } - - /** - * - * - * @generated - */ - public void setAppSecret(String newAppSecret) - { - String oldAppSecret = appSecret; - appSecret = newAppSecret; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FBC_LEAD__APP_SECRET, oldAppSecret, appSecret)); - } - - /** - * - * - * @generated - */ - public String getAccountId() - { - return accountId; - } - - /** - * - * - * @generated - */ - public void setAccountId(String newAccountId) - { - String oldAccountId = accountId; - accountId = newAccountId; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FBC_LEAD__ACCOUNT_ID, oldAccountId, accountId)); - } - - /** - * - * - * @generated - */ - public String getCampaignId() - { - return campaignId; - } - - /** - * - * - * @generated - */ - public void setCampaignId(String newCampaignId) - { - String oldCampaignId = campaignId; - campaignId = newCampaignId; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FBC_LEAD__CAMPAIGN_ID, oldCampaignId, campaignId)); - } - - /** - * - * - * @generated - */ - public String getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public void setTarget(String newTarget) - { - String oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FBC_LEAD__TARGET, oldTarget, target)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FBC_LEAD__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.FBC_LEAD__ACCESS_TOKEN: - return getAccessToken(); - case DslPackage.FBC_LEAD__APP_SECRET: - return getAppSecret(); - case DslPackage.FBC_LEAD__ACCOUNT_ID: - return getAccountId(); - case DslPackage.FBC_LEAD__CAMPAIGN_ID: - return getCampaignId(); - case DslPackage.FBC_LEAD__TARGET: - return getTarget(); - case DslPackage.FBC_LEAD__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.FBC_LEAD__ACCESS_TOKEN: - setAccessToken((String)newValue); - return; - case DslPackage.FBC_LEAD__APP_SECRET: - setAppSecret((String)newValue); - return; - case DslPackage.FBC_LEAD__ACCOUNT_ID: - setAccountId((String)newValue); - return; - case DslPackage.FBC_LEAD__CAMPAIGN_ID: - setCampaignId((String)newValue); - return; - case DslPackage.FBC_LEAD__TARGET: - setTarget((String)newValue); - return; - case DslPackage.FBC_LEAD__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.FBC_LEAD__ACCESS_TOKEN: - setAccessToken(ACCESS_TOKEN_EDEFAULT); - return; - case DslPackage.FBC_LEAD__APP_SECRET: - setAppSecret(APP_SECRET_EDEFAULT); - return; - case DslPackage.FBC_LEAD__ACCOUNT_ID: - setAccountId(ACCOUNT_ID_EDEFAULT); - return; - case DslPackage.FBC_LEAD__CAMPAIGN_ID: - setCampaignId(CAMPAIGN_ID_EDEFAULT); - return; - case DslPackage.FBC_LEAD__TARGET: - setTarget(TARGET_EDEFAULT); - return; - case DslPackage.FBC_LEAD__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.FBC_LEAD__ACCESS_TOKEN: - return ACCESS_TOKEN_EDEFAULT == null ? accessToken != null : !ACCESS_TOKEN_EDEFAULT.equals(accessToken); - case DslPackage.FBC_LEAD__APP_SECRET: - return APP_SECRET_EDEFAULT == null ? appSecret != null : !APP_SECRET_EDEFAULT.equals(appSecret); - case DslPackage.FBC_LEAD__ACCOUNT_ID: - return ACCOUNT_ID_EDEFAULT == null ? accountId != null : !ACCOUNT_ID_EDEFAULT.equals(accountId); - case DslPackage.FBC_LEAD__CAMPAIGN_ID: - return CAMPAIGN_ID_EDEFAULT == null ? campaignId != null : !CAMPAIGN_ID_EDEFAULT.equals(campaignId); - case DslPackage.FBC_LEAD__TARGET: - return TARGET_EDEFAULT == null ? target != null : !TARGET_EDEFAULT.equals(target); - case DslPackage.FBC_LEAD__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (accessToken: "); - result.append(accessToken); - result.append(", appSecret: "); - result.append(appSecret); - result.append(", accountId: "); - result.append(accountId); - result.append(", campaignId: "); - result.append(campaignId); - result.append(", target: "); - result.append(target); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //FBCLeadImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FBFormDownloadImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FBFormDownloadImpl.java deleted file mode 100644 index dd4d0221..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FBFormDownloadImpl.java +++ /dev/null @@ -1,457 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.FBFormDownload; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'FB Form Download'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.FBFormDownloadImpl#getAccessToken Access Token}
  • - *
  • {@link in.handyman.dsl.impl.FBFormDownloadImpl#getAppSecret App Secret}
  • - *
  • {@link in.handyman.dsl.impl.FBFormDownloadImpl#getAccountId Account Id}
  • - *
  • {@link in.handyman.dsl.impl.FBFormDownloadImpl#getFormId Form Id}
  • - *
  • {@link in.handyman.dsl.impl.FBFormDownloadImpl#getTarget Target}
  • - *
  • {@link in.handyman.dsl.impl.FBFormDownloadImpl#getValue Value}
  • - *
- * - * @generated - */ -public class FBFormDownloadImpl extends ActionImpl implements FBFormDownload -{ - /** - * The default value of the '{@link #getAccessToken() Access Token}' attribute. - * - * - * @see #getAccessToken() - * @generated - * @ordered - */ - protected static final String ACCESS_TOKEN_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAccessToken() Access Token}' attribute. - * - * - * @see #getAccessToken() - * @generated - * @ordered - */ - protected String accessToken = ACCESS_TOKEN_EDEFAULT; - - /** - * The default value of the '{@link #getAppSecret() App Secret}' attribute. - * - * - * @see #getAppSecret() - * @generated - * @ordered - */ - protected static final String APP_SECRET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAppSecret() App Secret}' attribute. - * - * - * @see #getAppSecret() - * @generated - * @ordered - */ - protected String appSecret = APP_SECRET_EDEFAULT; - - /** - * The default value of the '{@link #getAccountId() Account Id}' attribute. - * - * - * @see #getAccountId() - * @generated - * @ordered - */ - protected static final String ACCOUNT_ID_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAccountId() Account Id}' attribute. - * - * - * @see #getAccountId() - * @generated - * @ordered - */ - protected String accountId = ACCOUNT_ID_EDEFAULT; - - /** - * The default value of the '{@link #getFormId() Form Id}' attribute. - * - * - * @see #getFormId() - * @generated - * @ordered - */ - protected static final String FORM_ID_EDEFAULT = null; - - /** - * The cached value of the '{@link #getFormId() Form Id}' attribute. - * - * - * @see #getFormId() - * @generated - * @ordered - */ - protected String formId = FORM_ID_EDEFAULT; - - /** - * The default value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected static final String TARGET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected String target = TARGET_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected FBFormDownloadImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.FB_FORM_DOWNLOAD; - } - - /** - * - * - * @generated - */ - public String getAccessToken() - { - return accessToken; - } - - /** - * - * - * @generated - */ - public void setAccessToken(String newAccessToken) - { - String oldAccessToken = accessToken; - accessToken = newAccessToken; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FB_FORM_DOWNLOAD__ACCESS_TOKEN, oldAccessToken, accessToken)); - } - - /** - * - * - * @generated - */ - public String getAppSecret() - { - return appSecret; - } - - /** - * - * - * @generated - */ - public void setAppSecret(String newAppSecret) - { - String oldAppSecret = appSecret; - appSecret = newAppSecret; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FB_FORM_DOWNLOAD__APP_SECRET, oldAppSecret, appSecret)); - } - - /** - * - * - * @generated - */ - public String getAccountId() - { - return accountId; - } - - /** - * - * - * @generated - */ - public void setAccountId(String newAccountId) - { - String oldAccountId = accountId; - accountId = newAccountId; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FB_FORM_DOWNLOAD__ACCOUNT_ID, oldAccountId, accountId)); - } - - /** - * - * - * @generated - */ - public String getFormId() - { - return formId; - } - - /** - * - * - * @generated - */ - public void setFormId(String newFormId) - { - String oldFormId = formId; - formId = newFormId; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FB_FORM_DOWNLOAD__FORM_ID, oldFormId, formId)); - } - - /** - * - * - * @generated - */ - public String getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public void setTarget(String newTarget) - { - String oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FB_FORM_DOWNLOAD__TARGET, oldTarget, target)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FB_FORM_DOWNLOAD__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.FB_FORM_DOWNLOAD__ACCESS_TOKEN: - return getAccessToken(); - case DslPackage.FB_FORM_DOWNLOAD__APP_SECRET: - return getAppSecret(); - case DslPackage.FB_FORM_DOWNLOAD__ACCOUNT_ID: - return getAccountId(); - case DslPackage.FB_FORM_DOWNLOAD__FORM_ID: - return getFormId(); - case DslPackage.FB_FORM_DOWNLOAD__TARGET: - return getTarget(); - case DslPackage.FB_FORM_DOWNLOAD__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.FB_FORM_DOWNLOAD__ACCESS_TOKEN: - setAccessToken((String)newValue); - return; - case DslPackage.FB_FORM_DOWNLOAD__APP_SECRET: - setAppSecret((String)newValue); - return; - case DslPackage.FB_FORM_DOWNLOAD__ACCOUNT_ID: - setAccountId((String)newValue); - return; - case DslPackage.FB_FORM_DOWNLOAD__FORM_ID: - setFormId((String)newValue); - return; - case DslPackage.FB_FORM_DOWNLOAD__TARGET: - setTarget((String)newValue); - return; - case DslPackage.FB_FORM_DOWNLOAD__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.FB_FORM_DOWNLOAD__ACCESS_TOKEN: - setAccessToken(ACCESS_TOKEN_EDEFAULT); - return; - case DslPackage.FB_FORM_DOWNLOAD__APP_SECRET: - setAppSecret(APP_SECRET_EDEFAULT); - return; - case DslPackage.FB_FORM_DOWNLOAD__ACCOUNT_ID: - setAccountId(ACCOUNT_ID_EDEFAULT); - return; - case DslPackage.FB_FORM_DOWNLOAD__FORM_ID: - setFormId(FORM_ID_EDEFAULT); - return; - case DslPackage.FB_FORM_DOWNLOAD__TARGET: - setTarget(TARGET_EDEFAULT); - return; - case DslPackage.FB_FORM_DOWNLOAD__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.FB_FORM_DOWNLOAD__ACCESS_TOKEN: - return ACCESS_TOKEN_EDEFAULT == null ? accessToken != null : !ACCESS_TOKEN_EDEFAULT.equals(accessToken); - case DslPackage.FB_FORM_DOWNLOAD__APP_SECRET: - return APP_SECRET_EDEFAULT == null ? appSecret != null : !APP_SECRET_EDEFAULT.equals(appSecret); - case DslPackage.FB_FORM_DOWNLOAD__ACCOUNT_ID: - return ACCOUNT_ID_EDEFAULT == null ? accountId != null : !ACCOUNT_ID_EDEFAULT.equals(accountId); - case DslPackage.FB_FORM_DOWNLOAD__FORM_ID: - return FORM_ID_EDEFAULT == null ? formId != null : !FORM_ID_EDEFAULT.equals(formId); - case DslPackage.FB_FORM_DOWNLOAD__TARGET: - return TARGET_EDEFAULT == null ? target != null : !TARGET_EDEFAULT.equals(target); - case DslPackage.FB_FORM_DOWNLOAD__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (accessToken: "); - result.append(accessToken); - result.append(", appSecret: "); - result.append(appSecret); - result.append(", accountId: "); - result.append(accountId); - result.append(", formId: "); - result.append(formId); - result.append(", target: "); - result.append(target); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //FBFormDownloadImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FetchImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FetchImpl.java deleted file mode 100644 index 1bb7c1c5..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FetchImpl.java +++ /dev/null @@ -1,233 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.Fetch; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Fetch'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.FetchImpl#getSource Source}
  • - *
  • {@link in.handyman.dsl.impl.FetchImpl#getValue Value}
  • - *
- * - * @generated - */ -public class FetchImpl extends ActionImpl implements Fetch -{ - /** - * The default value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected static final String SOURCE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected String source = SOURCE_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected FetchImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.FETCH; - } - - /** - * - * - * @generated - */ - public String getSource() - { - return source; - } - - /** - * - * - * @generated - */ - public void setSource(String newSource) - { - String oldSource = source; - source = newSource; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FETCH__SOURCE, oldSource, source)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FETCH__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.FETCH__SOURCE: - return getSource(); - case DslPackage.FETCH__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.FETCH__SOURCE: - setSource((String)newValue); - return; - case DslPackage.FETCH__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.FETCH__SOURCE: - setSource(SOURCE_EDEFAULT); - return; - case DslPackage.FETCH__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.FETCH__SOURCE: - return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); - case DslPackage.FETCH__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (source: "); - result.append(source); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //FetchImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FinallyImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FinallyImpl.java deleted file mode 100644 index 8b4cc9fa..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FinallyImpl.java +++ /dev/null @@ -1,241 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Action; -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.Finally; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -/** - * - * An implementation of the model object 'Finally'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.FinallyImpl#getName Name}
  • - *
  • {@link in.handyman.dsl.impl.FinallyImpl#getAction Action}
  • - *
- * - * @generated - */ -public class FinallyImpl extends MinimalEObjectImpl.Container implements Finally -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * The cached value of the '{@link #getAction() Action}' containment reference list. - * - * - * @see #getAction() - * @generated - * @ordered - */ - protected EList action; - - /** - * - * - * @generated - */ - protected FinallyImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.FINALLY; - } - - /** - * - * - * @generated - */ - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FINALLY__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - public EList getAction() - { - if (action == null) - { - action = new EObjectContainmentEList(Action.class, this, DslPackage.FINALLY__ACTION); - } - return action; - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case DslPackage.FINALLY__ACTION: - return ((InternalEList)getAction()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.FINALLY__NAME: - return getName(); - case DslPackage.FINALLY__ACTION: - return getAction(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.FINALLY__NAME: - setName((String)newValue); - return; - case DslPackage.FINALLY__ACTION: - getAction().clear(); - getAction().addAll((Collection)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.FINALLY__NAME: - setName(NAME_EDEFAULT); - return; - case DslPackage.FINALLY__ACTION: - getAction().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.FINALLY__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case DslPackage.FINALLY__ACTION: - return action != null && !action.isEmpty(); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //FinallyImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FirebaseDatabasePutImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FirebaseDatabasePutImpl.java deleted file mode 100644 index aac2eea4..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FirebaseDatabasePutImpl.java +++ /dev/null @@ -1,457 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.FirebaseDatabasePut; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Firebase Database Put'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.FirebaseDatabasePutImpl#getUrl Url}
  • - *
  • {@link in.handyman.dsl.impl.FirebaseDatabasePutImpl#getFbjson Fbjson}
  • - *
  • {@link in.handyman.dsl.impl.FirebaseDatabasePutImpl#getGroupPath Group Path}
  • - *
  • {@link in.handyman.dsl.impl.FirebaseDatabasePutImpl#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.impl.FirebaseDatabasePutImpl#getClassFqn Class Fqn}
  • - *
  • {@link in.handyman.dsl.impl.FirebaseDatabasePutImpl#getValue Value}
  • - *
- * - * @generated - */ -public class FirebaseDatabasePutImpl extends ActionImpl implements FirebaseDatabasePut -{ - /** - * The default value of the '{@link #getUrl() Url}' attribute. - * - * - * @see #getUrl() - * @generated - * @ordered - */ - protected static final String URL_EDEFAULT = null; - - /** - * The cached value of the '{@link #getUrl() Url}' attribute. - * - * - * @see #getUrl() - * @generated - * @ordered - */ - protected String url = URL_EDEFAULT; - - /** - * The default value of the '{@link #getFbjson() Fbjson}' attribute. - * - * - * @see #getFbjson() - * @generated - * @ordered - */ - protected static final String FBJSON_EDEFAULT = null; - - /** - * The cached value of the '{@link #getFbjson() Fbjson}' attribute. - * - * - * @see #getFbjson() - * @generated - * @ordered - */ - protected String fbjson = FBJSON_EDEFAULT; - - /** - * The default value of the '{@link #getGroupPath() Group Path}' attribute. - * - * - * @see #getGroupPath() - * @generated - * @ordered - */ - protected static final String GROUP_PATH_EDEFAULT = null; - - /** - * The cached value of the '{@link #getGroupPath() Group Path}' attribute. - * - * - * @see #getGroupPath() - * @generated - * @ordered - */ - protected String groupPath = GROUP_PATH_EDEFAULT; - - /** - * The default value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected static final String DB_SRC_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected String dbSrc = DB_SRC_EDEFAULT; - - /** - * The default value of the '{@link #getClassFqn() Class Fqn}' attribute. - * - * - * @see #getClassFqn() - * @generated - * @ordered - */ - protected static final String CLASS_FQN_EDEFAULT = null; - - /** - * The cached value of the '{@link #getClassFqn() Class Fqn}' attribute. - * - * - * @see #getClassFqn() - * @generated - * @ordered - */ - protected String classFqn = CLASS_FQN_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected FirebaseDatabasePutImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.FIREBASE_DATABASE_PUT; - } - - /** - * - * - * @generated - */ - public String getUrl() - { - return url; - } - - /** - * - * - * @generated - */ - public void setUrl(String newUrl) - { - String oldUrl = url; - url = newUrl; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FIREBASE_DATABASE_PUT__URL, oldUrl, url)); - } - - /** - * - * - * @generated - */ - public String getFbjson() - { - return fbjson; - } - - /** - * - * - * @generated - */ - public void setFbjson(String newFbjson) - { - String oldFbjson = fbjson; - fbjson = newFbjson; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FIREBASE_DATABASE_PUT__FBJSON, oldFbjson, fbjson)); - } - - /** - * - * - * @generated - */ - public String getGroupPath() - { - return groupPath; - } - - /** - * - * - * @generated - */ - public void setGroupPath(String newGroupPath) - { - String oldGroupPath = groupPath; - groupPath = newGroupPath; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FIREBASE_DATABASE_PUT__GROUP_PATH, oldGroupPath, groupPath)); - } - - /** - * - * - * @generated - */ - public String getDbSrc() - { - return dbSrc; - } - - /** - * - * - * @generated - */ - public void setDbSrc(String newDbSrc) - { - String oldDbSrc = dbSrc; - dbSrc = newDbSrc; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FIREBASE_DATABASE_PUT__DB_SRC, oldDbSrc, dbSrc)); - } - - /** - * - * - * @generated - */ - public String getClassFqn() - { - return classFqn; - } - - /** - * - * - * @generated - */ - public void setClassFqn(String newClassFqn) - { - String oldClassFqn = classFqn; - classFqn = newClassFqn; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FIREBASE_DATABASE_PUT__CLASS_FQN, oldClassFqn, classFqn)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FIREBASE_DATABASE_PUT__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.FIREBASE_DATABASE_PUT__URL: - return getUrl(); - case DslPackage.FIREBASE_DATABASE_PUT__FBJSON: - return getFbjson(); - case DslPackage.FIREBASE_DATABASE_PUT__GROUP_PATH: - return getGroupPath(); - case DslPackage.FIREBASE_DATABASE_PUT__DB_SRC: - return getDbSrc(); - case DslPackage.FIREBASE_DATABASE_PUT__CLASS_FQN: - return getClassFqn(); - case DslPackage.FIREBASE_DATABASE_PUT__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.FIREBASE_DATABASE_PUT__URL: - setUrl((String)newValue); - return; - case DslPackage.FIREBASE_DATABASE_PUT__FBJSON: - setFbjson((String)newValue); - return; - case DslPackage.FIREBASE_DATABASE_PUT__GROUP_PATH: - setGroupPath((String)newValue); - return; - case DslPackage.FIREBASE_DATABASE_PUT__DB_SRC: - setDbSrc((String)newValue); - return; - case DslPackage.FIREBASE_DATABASE_PUT__CLASS_FQN: - setClassFqn((String)newValue); - return; - case DslPackage.FIREBASE_DATABASE_PUT__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.FIREBASE_DATABASE_PUT__URL: - setUrl(URL_EDEFAULT); - return; - case DslPackage.FIREBASE_DATABASE_PUT__FBJSON: - setFbjson(FBJSON_EDEFAULT); - return; - case DslPackage.FIREBASE_DATABASE_PUT__GROUP_PATH: - setGroupPath(GROUP_PATH_EDEFAULT); - return; - case DslPackage.FIREBASE_DATABASE_PUT__DB_SRC: - setDbSrc(DB_SRC_EDEFAULT); - return; - case DslPackage.FIREBASE_DATABASE_PUT__CLASS_FQN: - setClassFqn(CLASS_FQN_EDEFAULT); - return; - case DslPackage.FIREBASE_DATABASE_PUT__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.FIREBASE_DATABASE_PUT__URL: - return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url); - case DslPackage.FIREBASE_DATABASE_PUT__FBJSON: - return FBJSON_EDEFAULT == null ? fbjson != null : !FBJSON_EDEFAULT.equals(fbjson); - case DslPackage.FIREBASE_DATABASE_PUT__GROUP_PATH: - return GROUP_PATH_EDEFAULT == null ? groupPath != null : !GROUP_PATH_EDEFAULT.equals(groupPath); - case DslPackage.FIREBASE_DATABASE_PUT__DB_SRC: - return DB_SRC_EDEFAULT == null ? dbSrc != null : !DB_SRC_EDEFAULT.equals(dbSrc); - case DslPackage.FIREBASE_DATABASE_PUT__CLASS_FQN: - return CLASS_FQN_EDEFAULT == null ? classFqn != null : !CLASS_FQN_EDEFAULT.equals(classFqn); - case DslPackage.FIREBASE_DATABASE_PUT__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (url: "); - result.append(url); - result.append(", fbjson: "); - result.append(fbjson); - result.append(", groupPath: "); - result.append(groupPath); - result.append(", dbSrc: "); - result.append(dbSrc); - result.append(", classFqn: "); - result.append(classFqn); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //FirebaseDatabasePutImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FirebaseReactiveNotificationImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FirebaseReactiveNotificationImpl.java deleted file mode 100644 index 38e717bd..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/FirebaseReactiveNotificationImpl.java +++ /dev/null @@ -1,401 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.FirebaseReactiveNotification; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Firebase Reactive Notification'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.FirebaseReactiveNotificationImpl#getUrl Url}
  • - *
  • {@link in.handyman.dsl.impl.FirebaseReactiveNotificationImpl#getFbjson Fbjson}
  • - *
  • {@link in.handyman.dsl.impl.FirebaseReactiveNotificationImpl#getGroupPath Group Path}
  • - *
  • {@link in.handyman.dsl.impl.FirebaseReactiveNotificationImpl#getClassFqn Class Fqn}
  • - *
  • {@link in.handyman.dsl.impl.FirebaseReactiveNotificationImpl#getDbSrc Db Src}
  • - *
- * - * @generated - */ -public class FirebaseReactiveNotificationImpl extends ActionImpl implements FirebaseReactiveNotification -{ - /** - * The default value of the '{@link #getUrl() Url}' attribute. - * - * - * @see #getUrl() - * @generated - * @ordered - */ - protected static final String URL_EDEFAULT = null; - - /** - * The cached value of the '{@link #getUrl() Url}' attribute. - * - * - * @see #getUrl() - * @generated - * @ordered - */ - protected String url = URL_EDEFAULT; - - /** - * The default value of the '{@link #getFbjson() Fbjson}' attribute. - * - * - * @see #getFbjson() - * @generated - * @ordered - */ - protected static final String FBJSON_EDEFAULT = null; - - /** - * The cached value of the '{@link #getFbjson() Fbjson}' attribute. - * - * - * @see #getFbjson() - * @generated - * @ordered - */ - protected String fbjson = FBJSON_EDEFAULT; - - /** - * The default value of the '{@link #getGroupPath() Group Path}' attribute. - * - * - * @see #getGroupPath() - * @generated - * @ordered - */ - protected static final String GROUP_PATH_EDEFAULT = null; - - /** - * The cached value of the '{@link #getGroupPath() Group Path}' attribute. - * - * - * @see #getGroupPath() - * @generated - * @ordered - */ - protected String groupPath = GROUP_PATH_EDEFAULT; - - /** - * The default value of the '{@link #getClassFqn() Class Fqn}' attribute. - * - * - * @see #getClassFqn() - * @generated - * @ordered - */ - protected static final String CLASS_FQN_EDEFAULT = null; - - /** - * The cached value of the '{@link #getClassFqn() Class Fqn}' attribute. - * - * - * @see #getClassFqn() - * @generated - * @ordered - */ - protected String classFqn = CLASS_FQN_EDEFAULT; - - /** - * The default value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected static final String DB_SRC_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected String dbSrc = DB_SRC_EDEFAULT; - - /** - * - * - * @generated - */ - protected FirebaseReactiveNotificationImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.FIREBASE_REACTIVE_NOTIFICATION; - } - - /** - * - * - * @generated - */ - public String getUrl() - { - return url; - } - - /** - * - * - * @generated - */ - public void setUrl(String newUrl) - { - String oldUrl = url; - url = newUrl; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FIREBASE_REACTIVE_NOTIFICATION__URL, oldUrl, url)); - } - - /** - * - * - * @generated - */ - public String getFbjson() - { - return fbjson; - } - - /** - * - * - * @generated - */ - public void setFbjson(String newFbjson) - { - String oldFbjson = fbjson; - fbjson = newFbjson; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FIREBASE_REACTIVE_NOTIFICATION__FBJSON, oldFbjson, fbjson)); - } - - /** - * - * - * @generated - */ - public String getGroupPath() - { - return groupPath; - } - - /** - * - * - * @generated - */ - public void setGroupPath(String newGroupPath) - { - String oldGroupPath = groupPath; - groupPath = newGroupPath; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FIREBASE_REACTIVE_NOTIFICATION__GROUP_PATH, oldGroupPath, groupPath)); - } - - /** - * - * - * @generated - */ - public String getClassFqn() - { - return classFqn; - } - - /** - * - * - * @generated - */ - public void setClassFqn(String newClassFqn) - { - String oldClassFqn = classFqn; - classFqn = newClassFqn; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FIREBASE_REACTIVE_NOTIFICATION__CLASS_FQN, oldClassFqn, classFqn)); - } - - /** - * - * - * @generated - */ - public String getDbSrc() - { - return dbSrc; - } - - /** - * - * - * @generated - */ - public void setDbSrc(String newDbSrc) - { - String oldDbSrc = dbSrc; - dbSrc = newDbSrc; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FIREBASE_REACTIVE_NOTIFICATION__DB_SRC, oldDbSrc, dbSrc)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__URL: - return getUrl(); - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__FBJSON: - return getFbjson(); - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__GROUP_PATH: - return getGroupPath(); - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__CLASS_FQN: - return getClassFqn(); - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__DB_SRC: - return getDbSrc(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__URL: - setUrl((String)newValue); - return; - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__FBJSON: - setFbjson((String)newValue); - return; - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__GROUP_PATH: - setGroupPath((String)newValue); - return; - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__CLASS_FQN: - setClassFqn((String)newValue); - return; - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__DB_SRC: - setDbSrc((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__URL: - setUrl(URL_EDEFAULT); - return; - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__FBJSON: - setFbjson(FBJSON_EDEFAULT); - return; - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__GROUP_PATH: - setGroupPath(GROUP_PATH_EDEFAULT); - return; - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__CLASS_FQN: - setClassFqn(CLASS_FQN_EDEFAULT); - return; - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__DB_SRC: - setDbSrc(DB_SRC_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__URL: - return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url); - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__FBJSON: - return FBJSON_EDEFAULT == null ? fbjson != null : !FBJSON_EDEFAULT.equals(fbjson); - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__GROUP_PATH: - return GROUP_PATH_EDEFAULT == null ? groupPath != null : !GROUP_PATH_EDEFAULT.equals(groupPath); - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__CLASS_FQN: - return CLASS_FQN_EDEFAULT == null ? classFqn != null : !CLASS_FQN_EDEFAULT.equals(classFqn); - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION__DB_SRC: - return DB_SRC_EDEFAULT == null ? dbSrc != null : !DB_SRC_EDEFAULT.equals(dbSrc); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (url: "); - result.append(url); - result.append(", fbjson: "); - result.append(fbjson); - result.append(", groupPath: "); - result.append(groupPath); - result.append(", classFqn: "); - result.append(classFqn); - result.append(", dbSrc: "); - result.append(dbSrc); - result.append(')'); - return result.toString(); - } - -} //FirebaseReactiveNotificationImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ForkprocessImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ForkprocessImpl.java deleted file mode 100644 index 9b304160..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ForkprocessImpl.java +++ /dev/null @@ -1,401 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.Forkprocess; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Forkprocess'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.ForkprocessImpl#getTarget Target}
  • - *
  • {@link in.handyman.dsl.impl.ForkprocessImpl#getSource Source}
  • - *
  • {@link in.handyman.dsl.impl.ForkprocessImpl#getDatasource Datasource}
  • - *
  • {@link in.handyman.dsl.impl.ForkprocessImpl#getValue Value}
  • - *
  • {@link in.handyman.dsl.impl.ForkprocessImpl#getForkBatchSize Fork Batch Size}
  • - *
- * - * @generated - */ -public class ForkprocessImpl extends ActionImpl implements Forkprocess -{ - /** - * The default value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected static final String TARGET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected String target = TARGET_EDEFAULT; - - /** - * The default value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected static final String SOURCE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected String source = SOURCE_EDEFAULT; - - /** - * The default value of the '{@link #getDatasource() Datasource}' attribute. - * - * - * @see #getDatasource() - * @generated - * @ordered - */ - protected static final String DATASOURCE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDatasource() Datasource}' attribute. - * - * - * @see #getDatasource() - * @generated - * @ordered - */ - protected String datasource = DATASOURCE_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * The default value of the '{@link #getForkBatchSize() Fork Batch Size}' attribute. - * - * - * @see #getForkBatchSize() - * @generated - * @ordered - */ - protected static final String FORK_BATCH_SIZE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getForkBatchSize() Fork Batch Size}' attribute. - * - * - * @see #getForkBatchSize() - * @generated - * @ordered - */ - protected String forkBatchSize = FORK_BATCH_SIZE_EDEFAULT; - - /** - * - * - * @generated - */ - protected ForkprocessImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.FORKPROCESS; - } - - /** - * - * - * @generated - */ - public String getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public void setTarget(String newTarget) - { - String oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FORKPROCESS__TARGET, oldTarget, target)); - } - - /** - * - * - * @generated - */ - public String getSource() - { - return source; - } - - /** - * - * - * @generated - */ - public void setSource(String newSource) - { - String oldSource = source; - source = newSource; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FORKPROCESS__SOURCE, oldSource, source)); - } - - /** - * - * - * @generated - */ - public String getDatasource() - { - return datasource; - } - - /** - * - * - * @generated - */ - public void setDatasource(String newDatasource) - { - String oldDatasource = datasource; - datasource = newDatasource; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FORKPROCESS__DATASOURCE, oldDatasource, datasource)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FORKPROCESS__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - public String getForkBatchSize() - { - return forkBatchSize; - } - - /** - * - * - * @generated - */ - public void setForkBatchSize(String newForkBatchSize) - { - String oldForkBatchSize = forkBatchSize; - forkBatchSize = newForkBatchSize; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.FORKPROCESS__FORK_BATCH_SIZE, oldForkBatchSize, forkBatchSize)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.FORKPROCESS__TARGET: - return getTarget(); - case DslPackage.FORKPROCESS__SOURCE: - return getSource(); - case DslPackage.FORKPROCESS__DATASOURCE: - return getDatasource(); - case DslPackage.FORKPROCESS__VALUE: - return getValue(); - case DslPackage.FORKPROCESS__FORK_BATCH_SIZE: - return getForkBatchSize(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.FORKPROCESS__TARGET: - setTarget((String)newValue); - return; - case DslPackage.FORKPROCESS__SOURCE: - setSource((String)newValue); - return; - case DslPackage.FORKPROCESS__DATASOURCE: - setDatasource((String)newValue); - return; - case DslPackage.FORKPROCESS__VALUE: - setValue((String)newValue); - return; - case DslPackage.FORKPROCESS__FORK_BATCH_SIZE: - setForkBatchSize((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.FORKPROCESS__TARGET: - setTarget(TARGET_EDEFAULT); - return; - case DslPackage.FORKPROCESS__SOURCE: - setSource(SOURCE_EDEFAULT); - return; - case DslPackage.FORKPROCESS__DATASOURCE: - setDatasource(DATASOURCE_EDEFAULT); - return; - case DslPackage.FORKPROCESS__VALUE: - setValue(VALUE_EDEFAULT); - return; - case DslPackage.FORKPROCESS__FORK_BATCH_SIZE: - setForkBatchSize(FORK_BATCH_SIZE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.FORKPROCESS__TARGET: - return TARGET_EDEFAULT == null ? target != null : !TARGET_EDEFAULT.equals(target); - case DslPackage.FORKPROCESS__SOURCE: - return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); - case DslPackage.FORKPROCESS__DATASOURCE: - return DATASOURCE_EDEFAULT == null ? datasource != null : !DATASOURCE_EDEFAULT.equals(datasource); - case DslPackage.FORKPROCESS__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - case DslPackage.FORKPROCESS__FORK_BATCH_SIZE: - return FORK_BATCH_SIZE_EDEFAULT == null ? forkBatchSize != null : !FORK_BATCH_SIZE_EDEFAULT.equals(forkBatchSize); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (target: "); - result.append(target); - result.append(", source: "); - result.append(source); - result.append(", datasource: "); - result.append(datasource); - result.append(", value: "); - result.append(value); - result.append(", forkBatchSize: "); - result.append(forkBatchSize); - result.append(')'); - return result.toString(); - } - -} //ForkprocessImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/GooglecalPUTImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/GooglecalPUTImpl.java deleted file mode 100644 index efc0ff68..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/GooglecalPUTImpl.java +++ /dev/null @@ -1,513 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.GooglecalPUT; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Googlecal PUT'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.GooglecalPUTImpl#getAccount Account}
  • - *
  • {@link in.handyman.dsl.impl.GooglecalPUTImpl#getPrivateKey Private Key}
  • - *
  • {@link in.handyman.dsl.impl.GooglecalPUTImpl#getPtwelveFile Ptwelve File}
  • - *
  • {@link in.handyman.dsl.impl.GooglecalPUTImpl#getProject Project}
  • - *
  • {@link in.handyman.dsl.impl.GooglecalPUTImpl#getImpersonatedUser Impersonated User}
  • - *
  • {@link in.handyman.dsl.impl.GooglecalPUTImpl#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.impl.GooglecalPUTImpl#getValue Value}
  • - *
- * - * @generated - */ -public class GooglecalPUTImpl extends ActionImpl implements GooglecalPUT -{ - /** - * The default value of the '{@link #getAccount() Account}' attribute. - * - * - * @see #getAccount() - * @generated - * @ordered - */ - protected static final String ACCOUNT_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAccount() Account}' attribute. - * - * - * @see #getAccount() - * @generated - * @ordered - */ - protected String account = ACCOUNT_EDEFAULT; - - /** - * The default value of the '{@link #getPrivateKey() Private Key}' attribute. - * - * - * @see #getPrivateKey() - * @generated - * @ordered - */ - protected static final String PRIVATE_KEY_EDEFAULT = null; - - /** - * The cached value of the '{@link #getPrivateKey() Private Key}' attribute. - * - * - * @see #getPrivateKey() - * @generated - * @ordered - */ - protected String privateKey = PRIVATE_KEY_EDEFAULT; - - /** - * The default value of the '{@link #getPtwelveFile() Ptwelve File}' attribute. - * - * - * @see #getPtwelveFile() - * @generated - * @ordered - */ - protected static final String PTWELVE_FILE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getPtwelveFile() Ptwelve File}' attribute. - * - * - * @see #getPtwelveFile() - * @generated - * @ordered - */ - protected String ptwelveFile = PTWELVE_FILE_EDEFAULT; - - /** - * The default value of the '{@link #getProject() Project}' attribute. - * - * - * @see #getProject() - * @generated - * @ordered - */ - protected static final String PROJECT_EDEFAULT = null; - - /** - * The cached value of the '{@link #getProject() Project}' attribute. - * - * - * @see #getProject() - * @generated - * @ordered - */ - protected String project = PROJECT_EDEFAULT; - - /** - * The default value of the '{@link #getImpersonatedUser() Impersonated User}' attribute. - * - * - * @see #getImpersonatedUser() - * @generated - * @ordered - */ - protected static final String IMPERSONATED_USER_EDEFAULT = null; - - /** - * The cached value of the '{@link #getImpersonatedUser() Impersonated User}' attribute. - * - * - * @see #getImpersonatedUser() - * @generated - * @ordered - */ - protected String impersonatedUser = IMPERSONATED_USER_EDEFAULT; - - /** - * The default value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected static final String DB_SRC_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected String dbSrc = DB_SRC_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected GooglecalPUTImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.GOOGLECAL_PUT; - } - - /** - * - * - * @generated - */ - public String getAccount() - { - return account; - } - - /** - * - * - * @generated - */ - public void setAccount(String newAccount) - { - String oldAccount = account; - account = newAccount; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECAL_PUT__ACCOUNT, oldAccount, account)); - } - - /** - * - * - * @generated - */ - public String getPrivateKey() - { - return privateKey; - } - - /** - * - * - * @generated - */ - public void setPrivateKey(String newPrivateKey) - { - String oldPrivateKey = privateKey; - privateKey = newPrivateKey; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECAL_PUT__PRIVATE_KEY, oldPrivateKey, privateKey)); - } - - /** - * - * - * @generated - */ - public String getPtwelveFile() - { - return ptwelveFile; - } - - /** - * - * - * @generated - */ - public void setPtwelveFile(String newPtwelveFile) - { - String oldPtwelveFile = ptwelveFile; - ptwelveFile = newPtwelveFile; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECAL_PUT__PTWELVE_FILE, oldPtwelveFile, ptwelveFile)); - } - - /** - * - * - * @generated - */ - public String getProject() - { - return project; - } - - /** - * - * - * @generated - */ - public void setProject(String newProject) - { - String oldProject = project; - project = newProject; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECAL_PUT__PROJECT, oldProject, project)); - } - - /** - * - * - * @generated - */ - public String getImpersonatedUser() - { - return impersonatedUser; - } - - /** - * - * - * @generated - */ - public void setImpersonatedUser(String newImpersonatedUser) - { - String oldImpersonatedUser = impersonatedUser; - impersonatedUser = newImpersonatedUser; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECAL_PUT__IMPERSONATED_USER, oldImpersonatedUser, impersonatedUser)); - } - - /** - * - * - * @generated - */ - public String getDbSrc() - { - return dbSrc; - } - - /** - * - * - * @generated - */ - public void setDbSrc(String newDbSrc) - { - String oldDbSrc = dbSrc; - dbSrc = newDbSrc; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECAL_PUT__DB_SRC, oldDbSrc, dbSrc)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECAL_PUT__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.GOOGLECAL_PUT__ACCOUNT: - return getAccount(); - case DslPackage.GOOGLECAL_PUT__PRIVATE_KEY: - return getPrivateKey(); - case DslPackage.GOOGLECAL_PUT__PTWELVE_FILE: - return getPtwelveFile(); - case DslPackage.GOOGLECAL_PUT__PROJECT: - return getProject(); - case DslPackage.GOOGLECAL_PUT__IMPERSONATED_USER: - return getImpersonatedUser(); - case DslPackage.GOOGLECAL_PUT__DB_SRC: - return getDbSrc(); - case DslPackage.GOOGLECAL_PUT__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.GOOGLECAL_PUT__ACCOUNT: - setAccount((String)newValue); - return; - case DslPackage.GOOGLECAL_PUT__PRIVATE_KEY: - setPrivateKey((String)newValue); - return; - case DslPackage.GOOGLECAL_PUT__PTWELVE_FILE: - setPtwelveFile((String)newValue); - return; - case DslPackage.GOOGLECAL_PUT__PROJECT: - setProject((String)newValue); - return; - case DslPackage.GOOGLECAL_PUT__IMPERSONATED_USER: - setImpersonatedUser((String)newValue); - return; - case DslPackage.GOOGLECAL_PUT__DB_SRC: - setDbSrc((String)newValue); - return; - case DslPackage.GOOGLECAL_PUT__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.GOOGLECAL_PUT__ACCOUNT: - setAccount(ACCOUNT_EDEFAULT); - return; - case DslPackage.GOOGLECAL_PUT__PRIVATE_KEY: - setPrivateKey(PRIVATE_KEY_EDEFAULT); - return; - case DslPackage.GOOGLECAL_PUT__PTWELVE_FILE: - setPtwelveFile(PTWELVE_FILE_EDEFAULT); - return; - case DslPackage.GOOGLECAL_PUT__PROJECT: - setProject(PROJECT_EDEFAULT); - return; - case DslPackage.GOOGLECAL_PUT__IMPERSONATED_USER: - setImpersonatedUser(IMPERSONATED_USER_EDEFAULT); - return; - case DslPackage.GOOGLECAL_PUT__DB_SRC: - setDbSrc(DB_SRC_EDEFAULT); - return; - case DslPackage.GOOGLECAL_PUT__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.GOOGLECAL_PUT__ACCOUNT: - return ACCOUNT_EDEFAULT == null ? account != null : !ACCOUNT_EDEFAULT.equals(account); - case DslPackage.GOOGLECAL_PUT__PRIVATE_KEY: - return PRIVATE_KEY_EDEFAULT == null ? privateKey != null : !PRIVATE_KEY_EDEFAULT.equals(privateKey); - case DslPackage.GOOGLECAL_PUT__PTWELVE_FILE: - return PTWELVE_FILE_EDEFAULT == null ? ptwelveFile != null : !PTWELVE_FILE_EDEFAULT.equals(ptwelveFile); - case DslPackage.GOOGLECAL_PUT__PROJECT: - return PROJECT_EDEFAULT == null ? project != null : !PROJECT_EDEFAULT.equals(project); - case DslPackage.GOOGLECAL_PUT__IMPERSONATED_USER: - return IMPERSONATED_USER_EDEFAULT == null ? impersonatedUser != null : !IMPERSONATED_USER_EDEFAULT.equals(impersonatedUser); - case DslPackage.GOOGLECAL_PUT__DB_SRC: - return DB_SRC_EDEFAULT == null ? dbSrc != null : !DB_SRC_EDEFAULT.equals(dbSrc); - case DslPackage.GOOGLECAL_PUT__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (account: "); - result.append(account); - result.append(", privateKey: "); - result.append(privateKey); - result.append(", ptwelveFile: "); - result.append(ptwelveFile); - result.append(", project: "); - result.append(project); - result.append(", impersonatedUser: "); - result.append(impersonatedUser); - result.append(", dbSrc: "); - result.append(dbSrc); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //GooglecalPUTImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/GooglecontactPUTImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/GooglecontactPUTImpl.java deleted file mode 100644 index 2c0dbd3f..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/GooglecontactPUTImpl.java +++ /dev/null @@ -1,513 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.GooglecontactPUT; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Googlecontact PUT'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.GooglecontactPUTImpl#getAccount Account}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactPUTImpl#getPrivateKey Private Key}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactPUTImpl#getPtwelveFile Ptwelve File}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactPUTImpl#getProject Project}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactPUTImpl#getImpersonatedUser Impersonated User}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactPUTImpl#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactPUTImpl#getValue Value}
  • - *
- * - * @generated - */ -public class GooglecontactPUTImpl extends ActionImpl implements GooglecontactPUT -{ - /** - * The default value of the '{@link #getAccount() Account}' attribute. - * - * - * @see #getAccount() - * @generated - * @ordered - */ - protected static final String ACCOUNT_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAccount() Account}' attribute. - * - * - * @see #getAccount() - * @generated - * @ordered - */ - protected String account = ACCOUNT_EDEFAULT; - - /** - * The default value of the '{@link #getPrivateKey() Private Key}' attribute. - * - * - * @see #getPrivateKey() - * @generated - * @ordered - */ - protected static final String PRIVATE_KEY_EDEFAULT = null; - - /** - * The cached value of the '{@link #getPrivateKey() Private Key}' attribute. - * - * - * @see #getPrivateKey() - * @generated - * @ordered - */ - protected String privateKey = PRIVATE_KEY_EDEFAULT; - - /** - * The default value of the '{@link #getPtwelveFile() Ptwelve File}' attribute. - * - * - * @see #getPtwelveFile() - * @generated - * @ordered - */ - protected static final String PTWELVE_FILE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getPtwelveFile() Ptwelve File}' attribute. - * - * - * @see #getPtwelveFile() - * @generated - * @ordered - */ - protected String ptwelveFile = PTWELVE_FILE_EDEFAULT; - - /** - * The default value of the '{@link #getProject() Project}' attribute. - * - * - * @see #getProject() - * @generated - * @ordered - */ - protected static final String PROJECT_EDEFAULT = null; - - /** - * The cached value of the '{@link #getProject() Project}' attribute. - * - * - * @see #getProject() - * @generated - * @ordered - */ - protected String project = PROJECT_EDEFAULT; - - /** - * The default value of the '{@link #getImpersonatedUser() Impersonated User}' attribute. - * - * - * @see #getImpersonatedUser() - * @generated - * @ordered - */ - protected static final String IMPERSONATED_USER_EDEFAULT = null; - - /** - * The cached value of the '{@link #getImpersonatedUser() Impersonated User}' attribute. - * - * - * @see #getImpersonatedUser() - * @generated - * @ordered - */ - protected String impersonatedUser = IMPERSONATED_USER_EDEFAULT; - - /** - * The default value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected static final String DB_SRC_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected String dbSrc = DB_SRC_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected GooglecontactPUTImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.GOOGLECONTACT_PUT; - } - - /** - * - * - * @generated - */ - public String getAccount() - { - return account; - } - - /** - * - * - * @generated - */ - public void setAccount(String newAccount) - { - String oldAccount = account; - account = newAccount; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_PUT__ACCOUNT, oldAccount, account)); - } - - /** - * - * - * @generated - */ - public String getPrivateKey() - { - return privateKey; - } - - /** - * - * - * @generated - */ - public void setPrivateKey(String newPrivateKey) - { - String oldPrivateKey = privateKey; - privateKey = newPrivateKey; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_PUT__PRIVATE_KEY, oldPrivateKey, privateKey)); - } - - /** - * - * - * @generated - */ - public String getPtwelveFile() - { - return ptwelveFile; - } - - /** - * - * - * @generated - */ - public void setPtwelveFile(String newPtwelveFile) - { - String oldPtwelveFile = ptwelveFile; - ptwelveFile = newPtwelveFile; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_PUT__PTWELVE_FILE, oldPtwelveFile, ptwelveFile)); - } - - /** - * - * - * @generated - */ - public String getProject() - { - return project; - } - - /** - * - * - * @generated - */ - public void setProject(String newProject) - { - String oldProject = project; - project = newProject; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_PUT__PROJECT, oldProject, project)); - } - - /** - * - * - * @generated - */ - public String getImpersonatedUser() - { - return impersonatedUser; - } - - /** - * - * - * @generated - */ - public void setImpersonatedUser(String newImpersonatedUser) - { - String oldImpersonatedUser = impersonatedUser; - impersonatedUser = newImpersonatedUser; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_PUT__IMPERSONATED_USER, oldImpersonatedUser, impersonatedUser)); - } - - /** - * - * - * @generated - */ - public String getDbSrc() - { - return dbSrc; - } - - /** - * - * - * @generated - */ - public void setDbSrc(String newDbSrc) - { - String oldDbSrc = dbSrc; - dbSrc = newDbSrc; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_PUT__DB_SRC, oldDbSrc, dbSrc)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_PUT__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.GOOGLECONTACT_PUT__ACCOUNT: - return getAccount(); - case DslPackage.GOOGLECONTACT_PUT__PRIVATE_KEY: - return getPrivateKey(); - case DslPackage.GOOGLECONTACT_PUT__PTWELVE_FILE: - return getPtwelveFile(); - case DslPackage.GOOGLECONTACT_PUT__PROJECT: - return getProject(); - case DslPackage.GOOGLECONTACT_PUT__IMPERSONATED_USER: - return getImpersonatedUser(); - case DslPackage.GOOGLECONTACT_PUT__DB_SRC: - return getDbSrc(); - case DslPackage.GOOGLECONTACT_PUT__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.GOOGLECONTACT_PUT__ACCOUNT: - setAccount((String)newValue); - return; - case DslPackage.GOOGLECONTACT_PUT__PRIVATE_KEY: - setPrivateKey((String)newValue); - return; - case DslPackage.GOOGLECONTACT_PUT__PTWELVE_FILE: - setPtwelveFile((String)newValue); - return; - case DslPackage.GOOGLECONTACT_PUT__PROJECT: - setProject((String)newValue); - return; - case DslPackage.GOOGLECONTACT_PUT__IMPERSONATED_USER: - setImpersonatedUser((String)newValue); - return; - case DslPackage.GOOGLECONTACT_PUT__DB_SRC: - setDbSrc((String)newValue); - return; - case DslPackage.GOOGLECONTACT_PUT__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.GOOGLECONTACT_PUT__ACCOUNT: - setAccount(ACCOUNT_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_PUT__PRIVATE_KEY: - setPrivateKey(PRIVATE_KEY_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_PUT__PTWELVE_FILE: - setPtwelveFile(PTWELVE_FILE_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_PUT__PROJECT: - setProject(PROJECT_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_PUT__IMPERSONATED_USER: - setImpersonatedUser(IMPERSONATED_USER_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_PUT__DB_SRC: - setDbSrc(DB_SRC_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_PUT__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.GOOGLECONTACT_PUT__ACCOUNT: - return ACCOUNT_EDEFAULT == null ? account != null : !ACCOUNT_EDEFAULT.equals(account); - case DslPackage.GOOGLECONTACT_PUT__PRIVATE_KEY: - return PRIVATE_KEY_EDEFAULT == null ? privateKey != null : !PRIVATE_KEY_EDEFAULT.equals(privateKey); - case DslPackage.GOOGLECONTACT_PUT__PTWELVE_FILE: - return PTWELVE_FILE_EDEFAULT == null ? ptwelveFile != null : !PTWELVE_FILE_EDEFAULT.equals(ptwelveFile); - case DslPackage.GOOGLECONTACT_PUT__PROJECT: - return PROJECT_EDEFAULT == null ? project != null : !PROJECT_EDEFAULT.equals(project); - case DslPackage.GOOGLECONTACT_PUT__IMPERSONATED_USER: - return IMPERSONATED_USER_EDEFAULT == null ? impersonatedUser != null : !IMPERSONATED_USER_EDEFAULT.equals(impersonatedUser); - case DslPackage.GOOGLECONTACT_PUT__DB_SRC: - return DB_SRC_EDEFAULT == null ? dbSrc != null : !DB_SRC_EDEFAULT.equals(dbSrc); - case DslPackage.GOOGLECONTACT_PUT__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (account: "); - result.append(account); - result.append(", privateKey: "); - result.append(privateKey); - result.append(", ptwelveFile: "); - result.append(ptwelveFile); - result.append(", project: "); - result.append(project); - result.append(", impersonatedUser: "); - result.append(impersonatedUser); - result.append(", dbSrc: "); - result.append(dbSrc); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //GooglecontactPUTImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/GooglecontactSelectAllImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/GooglecontactSelectAllImpl.java deleted file mode 100644 index 3c42ced9..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/GooglecontactSelectAllImpl.java +++ /dev/null @@ -1,513 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.GooglecontactSelectAll; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Googlecontact Select All'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.GooglecontactSelectAllImpl#getAccount Account}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactSelectAllImpl#getPrivateKey Private Key}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactSelectAllImpl#getPtwelveFile Ptwelve File}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactSelectAllImpl#getProject Project}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactSelectAllImpl#getImpersonatedUser Impersonated User}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactSelectAllImpl#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.impl.GooglecontactSelectAllImpl#getValue Value}
  • - *
- * - * @generated - */ -public class GooglecontactSelectAllImpl extends ActionImpl implements GooglecontactSelectAll -{ - /** - * The default value of the '{@link #getAccount() Account}' attribute. - * - * - * @see #getAccount() - * @generated - * @ordered - */ - protected static final String ACCOUNT_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAccount() Account}' attribute. - * - * - * @see #getAccount() - * @generated - * @ordered - */ - protected String account = ACCOUNT_EDEFAULT; - - /** - * The default value of the '{@link #getPrivateKey() Private Key}' attribute. - * - * - * @see #getPrivateKey() - * @generated - * @ordered - */ - protected static final String PRIVATE_KEY_EDEFAULT = null; - - /** - * The cached value of the '{@link #getPrivateKey() Private Key}' attribute. - * - * - * @see #getPrivateKey() - * @generated - * @ordered - */ - protected String privateKey = PRIVATE_KEY_EDEFAULT; - - /** - * The default value of the '{@link #getPtwelveFile() Ptwelve File}' attribute. - * - * - * @see #getPtwelveFile() - * @generated - * @ordered - */ - protected static final String PTWELVE_FILE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getPtwelveFile() Ptwelve File}' attribute. - * - * - * @see #getPtwelveFile() - * @generated - * @ordered - */ - protected String ptwelveFile = PTWELVE_FILE_EDEFAULT; - - /** - * The default value of the '{@link #getProject() Project}' attribute. - * - * - * @see #getProject() - * @generated - * @ordered - */ - protected static final String PROJECT_EDEFAULT = null; - - /** - * The cached value of the '{@link #getProject() Project}' attribute. - * - * - * @see #getProject() - * @generated - * @ordered - */ - protected String project = PROJECT_EDEFAULT; - - /** - * The default value of the '{@link #getImpersonatedUser() Impersonated User}' attribute. - * - * - * @see #getImpersonatedUser() - * @generated - * @ordered - */ - protected static final String IMPERSONATED_USER_EDEFAULT = null; - - /** - * The cached value of the '{@link #getImpersonatedUser() Impersonated User}' attribute. - * - * - * @see #getImpersonatedUser() - * @generated - * @ordered - */ - protected String impersonatedUser = IMPERSONATED_USER_EDEFAULT; - - /** - * The default value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected static final String DB_SRC_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected String dbSrc = DB_SRC_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected GooglecontactSelectAllImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.GOOGLECONTACT_SELECT_ALL; - } - - /** - * - * - * @generated - */ - public String getAccount() - { - return account; - } - - /** - * - * - * @generated - */ - public void setAccount(String newAccount) - { - String oldAccount = account; - account = newAccount; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_SELECT_ALL__ACCOUNT, oldAccount, account)); - } - - /** - * - * - * @generated - */ - public String getPrivateKey() - { - return privateKey; - } - - /** - * - * - * @generated - */ - public void setPrivateKey(String newPrivateKey) - { - String oldPrivateKey = privateKey; - privateKey = newPrivateKey; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_SELECT_ALL__PRIVATE_KEY, oldPrivateKey, privateKey)); - } - - /** - * - * - * @generated - */ - public String getPtwelveFile() - { - return ptwelveFile; - } - - /** - * - * - * @generated - */ - public void setPtwelveFile(String newPtwelveFile) - { - String oldPtwelveFile = ptwelveFile; - ptwelveFile = newPtwelveFile; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_SELECT_ALL__PTWELVE_FILE, oldPtwelveFile, ptwelveFile)); - } - - /** - * - * - * @generated - */ - public String getProject() - { - return project; - } - - /** - * - * - * @generated - */ - public void setProject(String newProject) - { - String oldProject = project; - project = newProject; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_SELECT_ALL__PROJECT, oldProject, project)); - } - - /** - * - * - * @generated - */ - public String getImpersonatedUser() - { - return impersonatedUser; - } - - /** - * - * - * @generated - */ - public void setImpersonatedUser(String newImpersonatedUser) - { - String oldImpersonatedUser = impersonatedUser; - impersonatedUser = newImpersonatedUser; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_SELECT_ALL__IMPERSONATED_USER, oldImpersonatedUser, impersonatedUser)); - } - - /** - * - * - * @generated - */ - public String getDbSrc() - { - return dbSrc; - } - - /** - * - * - * @generated - */ - public void setDbSrc(String newDbSrc) - { - String oldDbSrc = dbSrc; - dbSrc = newDbSrc; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_SELECT_ALL__DB_SRC, oldDbSrc, dbSrc)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.GOOGLECONTACT_SELECT_ALL__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.GOOGLECONTACT_SELECT_ALL__ACCOUNT: - return getAccount(); - case DslPackage.GOOGLECONTACT_SELECT_ALL__PRIVATE_KEY: - return getPrivateKey(); - case DslPackage.GOOGLECONTACT_SELECT_ALL__PTWELVE_FILE: - return getPtwelveFile(); - case DslPackage.GOOGLECONTACT_SELECT_ALL__PROJECT: - return getProject(); - case DslPackage.GOOGLECONTACT_SELECT_ALL__IMPERSONATED_USER: - return getImpersonatedUser(); - case DslPackage.GOOGLECONTACT_SELECT_ALL__DB_SRC: - return getDbSrc(); - case DslPackage.GOOGLECONTACT_SELECT_ALL__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.GOOGLECONTACT_SELECT_ALL__ACCOUNT: - setAccount((String)newValue); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__PRIVATE_KEY: - setPrivateKey((String)newValue); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__PTWELVE_FILE: - setPtwelveFile((String)newValue); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__PROJECT: - setProject((String)newValue); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__IMPERSONATED_USER: - setImpersonatedUser((String)newValue); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__DB_SRC: - setDbSrc((String)newValue); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.GOOGLECONTACT_SELECT_ALL__ACCOUNT: - setAccount(ACCOUNT_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__PRIVATE_KEY: - setPrivateKey(PRIVATE_KEY_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__PTWELVE_FILE: - setPtwelveFile(PTWELVE_FILE_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__PROJECT: - setProject(PROJECT_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__IMPERSONATED_USER: - setImpersonatedUser(IMPERSONATED_USER_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__DB_SRC: - setDbSrc(DB_SRC_EDEFAULT); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.GOOGLECONTACT_SELECT_ALL__ACCOUNT: - return ACCOUNT_EDEFAULT == null ? account != null : !ACCOUNT_EDEFAULT.equals(account); - case DslPackage.GOOGLECONTACT_SELECT_ALL__PRIVATE_KEY: - return PRIVATE_KEY_EDEFAULT == null ? privateKey != null : !PRIVATE_KEY_EDEFAULT.equals(privateKey); - case DslPackage.GOOGLECONTACT_SELECT_ALL__PTWELVE_FILE: - return PTWELVE_FILE_EDEFAULT == null ? ptwelveFile != null : !PTWELVE_FILE_EDEFAULT.equals(ptwelveFile); - case DslPackage.GOOGLECONTACT_SELECT_ALL__PROJECT: - return PROJECT_EDEFAULT == null ? project != null : !PROJECT_EDEFAULT.equals(project); - case DslPackage.GOOGLECONTACT_SELECT_ALL__IMPERSONATED_USER: - return IMPERSONATED_USER_EDEFAULT == null ? impersonatedUser != null : !IMPERSONATED_USER_EDEFAULT.equals(impersonatedUser); - case DslPackage.GOOGLECONTACT_SELECT_ALL__DB_SRC: - return DB_SRC_EDEFAULT == null ? dbSrc != null : !DB_SRC_EDEFAULT.equals(dbSrc); - case DslPackage.GOOGLECONTACT_SELECT_ALL__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (account: "); - result.append(account); - result.append(", privateKey: "); - result.append(privateKey); - result.append(", ptwelveFile: "); - result.append(ptwelveFile); - result.append(", project: "); - result.append(project); - result.append(", impersonatedUser: "); - result.append(impersonatedUser); - result.append(", dbSrc: "); - result.append(dbSrc); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //GooglecontactSelectAllImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/LoadCsvImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/LoadCsvImpl.java deleted file mode 100644 index d35ad32f..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/LoadCsvImpl.java +++ /dev/null @@ -1,513 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.LoadCsv; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Load Csv'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.LoadCsvImpl#getSource Source}
  • - *
  • {@link in.handyman.dsl.impl.LoadCsvImpl#getTo To}
  • - *
  • {@link in.handyman.dsl.impl.LoadCsvImpl#getDelim Delim}
  • - *
  • {@link in.handyman.dsl.impl.LoadCsvImpl#getFetchBatchSize Fetch Batch Size}
  • - *
  • {@link in.handyman.dsl.impl.LoadCsvImpl#getWriteBatchSize Write Batch Size}
  • - *
  • {@link in.handyman.dsl.impl.LoadCsvImpl#getValue Value}
  • - *
  • {@link in.handyman.dsl.impl.LoadCsvImpl#getWriteThreadCount Write Thread Count}
  • - *
- * - * @generated - */ -public class LoadCsvImpl extends ActionImpl implements LoadCsv -{ - /** - * The default value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected static final String SOURCE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected String source = SOURCE_EDEFAULT; - - /** - * The default value of the '{@link #getTo() To}' attribute. - * - * - * @see #getTo() - * @generated - * @ordered - */ - protected static final String TO_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTo() To}' attribute. - * - * - * @see #getTo() - * @generated - * @ordered - */ - protected String to = TO_EDEFAULT; - - /** - * The default value of the '{@link #getDelim() Delim}' attribute. - * - * - * @see #getDelim() - * @generated - * @ordered - */ - protected static final String DELIM_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDelim() Delim}' attribute. - * - * - * @see #getDelim() - * @generated - * @ordered - */ - protected String delim = DELIM_EDEFAULT; - - /** - * The default value of the '{@link #getFetchBatchSize() Fetch Batch Size}' attribute. - * - * - * @see #getFetchBatchSize() - * @generated - * @ordered - */ - protected static final int FETCH_BATCH_SIZE_EDEFAULT = 0; - - /** - * The cached value of the '{@link #getFetchBatchSize() Fetch Batch Size}' attribute. - * - * - * @see #getFetchBatchSize() - * @generated - * @ordered - */ - protected int fetchBatchSize = FETCH_BATCH_SIZE_EDEFAULT; - - /** - * The default value of the '{@link #getWriteBatchSize() Write Batch Size}' attribute. - * - * - * @see #getWriteBatchSize() - * @generated - * @ordered - */ - protected static final int WRITE_BATCH_SIZE_EDEFAULT = 0; - - /** - * The cached value of the '{@link #getWriteBatchSize() Write Batch Size}' attribute. - * - * - * @see #getWriteBatchSize() - * @generated - * @ordered - */ - protected int writeBatchSize = WRITE_BATCH_SIZE_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * The default value of the '{@link #getWriteThreadCount() Write Thread Count}' attribute. - * - * - * @see #getWriteThreadCount() - * @generated - * @ordered - */ - protected static final int WRITE_THREAD_COUNT_EDEFAULT = 0; - - /** - * The cached value of the '{@link #getWriteThreadCount() Write Thread Count}' attribute. - * - * - * @see #getWriteThreadCount() - * @generated - * @ordered - */ - protected int writeThreadCount = WRITE_THREAD_COUNT_EDEFAULT; - - /** - * - * - * @generated - */ - protected LoadCsvImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.LOAD_CSV; - } - - /** - * - * - * @generated - */ - public String getSource() - { - return source; - } - - /** - * - * - * @generated - */ - public void setSource(String newSource) - { - String oldSource = source; - source = newSource; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.LOAD_CSV__SOURCE, oldSource, source)); - } - - /** - * - * - * @generated - */ - public String getTo() - { - return to; - } - - /** - * - * - * @generated - */ - public void setTo(String newTo) - { - String oldTo = to; - to = newTo; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.LOAD_CSV__TO, oldTo, to)); - } - - /** - * - * - * @generated - */ - public String getDelim() - { - return delim; - } - - /** - * - * - * @generated - */ - public void setDelim(String newDelim) - { - String oldDelim = delim; - delim = newDelim; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.LOAD_CSV__DELIM, oldDelim, delim)); - } - - /** - * - * - * @generated - */ - public int getFetchBatchSize() - { - return fetchBatchSize; - } - - /** - * - * - * @generated - */ - public void setFetchBatchSize(int newFetchBatchSize) - { - int oldFetchBatchSize = fetchBatchSize; - fetchBatchSize = newFetchBatchSize; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.LOAD_CSV__FETCH_BATCH_SIZE, oldFetchBatchSize, fetchBatchSize)); - } - - /** - * - * - * @generated - */ - public int getWriteBatchSize() - { - return writeBatchSize; - } - - /** - * - * - * @generated - */ - public void setWriteBatchSize(int newWriteBatchSize) - { - int oldWriteBatchSize = writeBatchSize; - writeBatchSize = newWriteBatchSize; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.LOAD_CSV__WRITE_BATCH_SIZE, oldWriteBatchSize, writeBatchSize)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.LOAD_CSV__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - public int getWriteThreadCount() - { - return writeThreadCount; - } - - /** - * - * - * @generated - */ - public void setWriteThreadCount(int newWriteThreadCount) - { - int oldWriteThreadCount = writeThreadCount; - writeThreadCount = newWriteThreadCount; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.LOAD_CSV__WRITE_THREAD_COUNT, oldWriteThreadCount, writeThreadCount)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.LOAD_CSV__SOURCE: - return getSource(); - case DslPackage.LOAD_CSV__TO: - return getTo(); - case DslPackage.LOAD_CSV__DELIM: - return getDelim(); - case DslPackage.LOAD_CSV__FETCH_BATCH_SIZE: - return getFetchBatchSize(); - case DslPackage.LOAD_CSV__WRITE_BATCH_SIZE: - return getWriteBatchSize(); - case DslPackage.LOAD_CSV__VALUE: - return getValue(); - case DslPackage.LOAD_CSV__WRITE_THREAD_COUNT: - return getWriteThreadCount(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.LOAD_CSV__SOURCE: - setSource((String)newValue); - return; - case DslPackage.LOAD_CSV__TO: - setTo((String)newValue); - return; - case DslPackage.LOAD_CSV__DELIM: - setDelim((String)newValue); - return; - case DslPackage.LOAD_CSV__FETCH_BATCH_SIZE: - setFetchBatchSize((Integer)newValue); - return; - case DslPackage.LOAD_CSV__WRITE_BATCH_SIZE: - setWriteBatchSize((Integer)newValue); - return; - case DslPackage.LOAD_CSV__VALUE: - setValue((String)newValue); - return; - case DslPackage.LOAD_CSV__WRITE_THREAD_COUNT: - setWriteThreadCount((Integer)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.LOAD_CSV__SOURCE: - setSource(SOURCE_EDEFAULT); - return; - case DslPackage.LOAD_CSV__TO: - setTo(TO_EDEFAULT); - return; - case DslPackage.LOAD_CSV__DELIM: - setDelim(DELIM_EDEFAULT); - return; - case DslPackage.LOAD_CSV__FETCH_BATCH_SIZE: - setFetchBatchSize(FETCH_BATCH_SIZE_EDEFAULT); - return; - case DslPackage.LOAD_CSV__WRITE_BATCH_SIZE: - setWriteBatchSize(WRITE_BATCH_SIZE_EDEFAULT); - return; - case DslPackage.LOAD_CSV__VALUE: - setValue(VALUE_EDEFAULT); - return; - case DslPackage.LOAD_CSV__WRITE_THREAD_COUNT: - setWriteThreadCount(WRITE_THREAD_COUNT_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.LOAD_CSV__SOURCE: - return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); - case DslPackage.LOAD_CSV__TO: - return TO_EDEFAULT == null ? to != null : !TO_EDEFAULT.equals(to); - case DslPackage.LOAD_CSV__DELIM: - return DELIM_EDEFAULT == null ? delim != null : !DELIM_EDEFAULT.equals(delim); - case DslPackage.LOAD_CSV__FETCH_BATCH_SIZE: - return fetchBatchSize != FETCH_BATCH_SIZE_EDEFAULT; - case DslPackage.LOAD_CSV__WRITE_BATCH_SIZE: - return writeBatchSize != WRITE_BATCH_SIZE_EDEFAULT; - case DslPackage.LOAD_CSV__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - case DslPackage.LOAD_CSV__WRITE_THREAD_COUNT: - return writeThreadCount != WRITE_THREAD_COUNT_EDEFAULT; - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (source: "); - result.append(source); - result.append(", to: "); - result.append(to); - result.append(", delim: "); - result.append(delim); - result.append(", fetchBatchSize: "); - result.append(fetchBatchSize); - result.append(", writeBatchSize: "); - result.append(writeBatchSize); - result.append(", value: "); - result.append(value); - result.append(", writeThreadCount: "); - result.append(writeThreadCount); - result.append(')'); - return result.toString(); - } - -} //LoadCsvImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ProcessImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ProcessImpl.java deleted file mode 100644 index 30b6109a..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/ProcessImpl.java +++ /dev/null @@ -1,409 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Catch; -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.Finally; -import in.handyman.dsl.Try; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -/** - * - * An implementation of the model object 'Process'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.ProcessImpl#getName Name}
  • - *
  • {@link in.handyman.dsl.impl.ProcessImpl#getTry Try}
  • - *
  • {@link in.handyman.dsl.impl.ProcessImpl#getCatch Catch}
  • - *
  • {@link in.handyman.dsl.impl.ProcessImpl#getFinally Finally}
  • - *
- * - * @generated - */ -public class ProcessImpl extends MinimalEObjectImpl.Container implements in.handyman.dsl.Process -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * The cached value of the '{@link #getTry() Try}' containment reference. - * - * - * @see #getTry() - * @generated - * @ordered - */ - protected Try try_; - - /** - * The cached value of the '{@link #getCatch() Catch}' containment reference. - * - * - * @see #getCatch() - * @generated - * @ordered - */ - protected Catch catch_; - - /** - * The cached value of the '{@link #getFinally() Finally}' containment reference. - * - * - * @see #getFinally() - * @generated - * @ordered - */ - protected Finally finally_; - - /** - * - * - * @generated - */ - protected ProcessImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.PROCESS; - } - - /** - * - * - * @generated - */ - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.PROCESS__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - public Try getTry() - { - return try_; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetTry(Try newTry, NotificationChain msgs) - { - Try oldTry = try_; - try_ = newTry; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DslPackage.PROCESS__TRY, oldTry, newTry); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - public void setTry(Try newTry) - { - if (newTry != try_) - { - NotificationChain msgs = null; - if (try_ != null) - msgs = ((InternalEObject)try_).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DslPackage.PROCESS__TRY, null, msgs); - if (newTry != null) - msgs = ((InternalEObject)newTry).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DslPackage.PROCESS__TRY, null, msgs); - msgs = basicSetTry(newTry, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.PROCESS__TRY, newTry, newTry)); - } - - /** - * - * - * @generated - */ - public Catch getCatch() - { - return catch_; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetCatch(Catch newCatch, NotificationChain msgs) - { - Catch oldCatch = catch_; - catch_ = newCatch; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DslPackage.PROCESS__CATCH, oldCatch, newCatch); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - public void setCatch(Catch newCatch) - { - if (newCatch != catch_) - { - NotificationChain msgs = null; - if (catch_ != null) - msgs = ((InternalEObject)catch_).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DslPackage.PROCESS__CATCH, null, msgs); - if (newCatch != null) - msgs = ((InternalEObject)newCatch).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DslPackage.PROCESS__CATCH, null, msgs); - msgs = basicSetCatch(newCatch, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.PROCESS__CATCH, newCatch, newCatch)); - } - - /** - * - * - * @generated - */ - public Finally getFinally() - { - return finally_; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetFinally(Finally newFinally, NotificationChain msgs) - { - Finally oldFinally = finally_; - finally_ = newFinally; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DslPackage.PROCESS__FINALLY, oldFinally, newFinally); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - public void setFinally(Finally newFinally) - { - if (newFinally != finally_) - { - NotificationChain msgs = null; - if (finally_ != null) - msgs = ((InternalEObject)finally_).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DslPackage.PROCESS__FINALLY, null, msgs); - if (newFinally != null) - msgs = ((InternalEObject)newFinally).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DslPackage.PROCESS__FINALLY, null, msgs); - msgs = basicSetFinally(newFinally, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.PROCESS__FINALLY, newFinally, newFinally)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case DslPackage.PROCESS__TRY: - return basicSetTry(null, msgs); - case DslPackage.PROCESS__CATCH: - return basicSetCatch(null, msgs); - case DslPackage.PROCESS__FINALLY: - return basicSetFinally(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.PROCESS__NAME: - return getName(); - case DslPackage.PROCESS__TRY: - return getTry(); - case DslPackage.PROCESS__CATCH: - return getCatch(); - case DslPackage.PROCESS__FINALLY: - return getFinally(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.PROCESS__NAME: - setName((String)newValue); - return; - case DslPackage.PROCESS__TRY: - setTry((Try)newValue); - return; - case DslPackage.PROCESS__CATCH: - setCatch((Catch)newValue); - return; - case DslPackage.PROCESS__FINALLY: - setFinally((Finally)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.PROCESS__NAME: - setName(NAME_EDEFAULT); - return; - case DslPackage.PROCESS__TRY: - setTry((Try)null); - return; - case DslPackage.PROCESS__CATCH: - setCatch((Catch)null); - return; - case DslPackage.PROCESS__FINALLY: - setFinally((Finally)null); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.PROCESS__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case DslPackage.PROCESS__TRY: - return try_ != null; - case DslPackage.PROCESS__CATCH: - return catch_ != null; - case DslPackage.PROCESS__FINALLY: - return finally_ != null; - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //ProcessImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/RestImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/RestImpl.java deleted file mode 100644 index 0c06e509..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/RestImpl.java +++ /dev/null @@ -1,856 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.Rest; -import in.handyman.dsl.RestPart; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -/** - * - * An implementation of the model object 'Rest'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.RestImpl#getAuthtoken Authtoken}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getUrl Url}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getMethod Method}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getResourcedatafrom Resourcedatafrom}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getUrldata Urldata}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getHeaderdatafrom Headerdatafrom}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getHeaderdata Headerdata}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getPostdatafrom Postdatafrom}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getParentName Parent Name}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getParentdata Parentdata}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getParts Parts}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getAckdatato Ackdatato}
  • - *
  • {@link in.handyman.dsl.impl.RestImpl#getAckdata Ackdata}
  • - *
- * - * @generated - */ -public class RestImpl extends ActionImpl implements Rest -{ - /** - * The default value of the '{@link #getAuthtoken() Authtoken}' attribute. - * - * - * @see #getAuthtoken() - * @generated - * @ordered - */ - protected static final String AUTHTOKEN_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAuthtoken() Authtoken}' attribute. - * - * - * @see #getAuthtoken() - * @generated - * @ordered - */ - protected String authtoken = AUTHTOKEN_EDEFAULT; - - /** - * The default value of the '{@link #getUrl() Url}' attribute. - * - * - * @see #getUrl() - * @generated - * @ordered - */ - protected static final String URL_EDEFAULT = null; - - /** - * The cached value of the '{@link #getUrl() Url}' attribute. - * - * - * @see #getUrl() - * @generated - * @ordered - */ - protected String url = URL_EDEFAULT; - - /** - * The default value of the '{@link #getMethod() Method}' attribute. - * - * - * @see #getMethod() - * @generated - * @ordered - */ - protected static final String METHOD_EDEFAULT = null; - - /** - * The cached value of the '{@link #getMethod() Method}' attribute. - * - * - * @see #getMethod() - * @generated - * @ordered - */ - protected String method = METHOD_EDEFAULT; - - /** - * The default value of the '{@link #getResourcedatafrom() Resourcedatafrom}' attribute. - * - * - * @see #getResourcedatafrom() - * @generated - * @ordered - */ - protected static final String RESOURCEDATAFROM_EDEFAULT = null; - - /** - * The cached value of the '{@link #getResourcedatafrom() Resourcedatafrom}' attribute. - * - * - * @see #getResourcedatafrom() - * @generated - * @ordered - */ - protected String resourcedatafrom = RESOURCEDATAFROM_EDEFAULT; - - /** - * The default value of the '{@link #getUrldata() Urldata}' attribute. - * - * - * @see #getUrldata() - * @generated - * @ordered - */ - protected static final String URLDATA_EDEFAULT = null; - - /** - * The cached value of the '{@link #getUrldata() Urldata}' attribute. - * - * - * @see #getUrldata() - * @generated - * @ordered - */ - protected String urldata = URLDATA_EDEFAULT; - - /** - * The default value of the '{@link #getHeaderdatafrom() Headerdatafrom}' attribute. - * - * - * @see #getHeaderdatafrom() - * @generated - * @ordered - */ - protected static final String HEADERDATAFROM_EDEFAULT = null; - - /** - * The cached value of the '{@link #getHeaderdatafrom() Headerdatafrom}' attribute. - * - * - * @see #getHeaderdatafrom() - * @generated - * @ordered - */ - protected String headerdatafrom = HEADERDATAFROM_EDEFAULT; - - /** - * The default value of the '{@link #getHeaderdata() Headerdata}' attribute. - * - * - * @see #getHeaderdata() - * @generated - * @ordered - */ - protected static final String HEADERDATA_EDEFAULT = null; - - /** - * The cached value of the '{@link #getHeaderdata() Headerdata}' attribute. - * - * - * @see #getHeaderdata() - * @generated - * @ordered - */ - protected String headerdata = HEADERDATA_EDEFAULT; - - /** - * The default value of the '{@link #getPostdatafrom() Postdatafrom}' attribute. - * - * - * @see #getPostdatafrom() - * @generated - * @ordered - */ - protected static final String POSTDATAFROM_EDEFAULT = null; - - /** - * The cached value of the '{@link #getPostdatafrom() Postdatafrom}' attribute. - * - * - * @see #getPostdatafrom() - * @generated - * @ordered - */ - protected String postdatafrom = POSTDATAFROM_EDEFAULT; - - /** - * The default value of the '{@link #getParentName() Parent Name}' attribute. - * - * - * @see #getParentName() - * @generated - * @ordered - */ - protected static final String PARENT_NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getParentName() Parent Name}' attribute. - * - * - * @see #getParentName() - * @generated - * @ordered - */ - protected String parentName = PARENT_NAME_EDEFAULT; - - /** - * The default value of the '{@link #getParentdata() Parentdata}' attribute. - * - * - * @see #getParentdata() - * @generated - * @ordered - */ - protected static final String PARENTDATA_EDEFAULT = null; - - /** - * The cached value of the '{@link #getParentdata() Parentdata}' attribute. - * - * - * @see #getParentdata() - * @generated - * @ordered - */ - protected String parentdata = PARENTDATA_EDEFAULT; - - /** - * The cached value of the '{@link #getParts() Parts}' containment reference list. - * - * - * @see #getParts() - * @generated - * @ordered - */ - protected EList parts; - - /** - * The default value of the '{@link #getAckdatato() Ackdatato}' attribute. - * - * - * @see #getAckdatato() - * @generated - * @ordered - */ - protected static final String ACKDATATO_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAckdatato() Ackdatato}' attribute. - * - * - * @see #getAckdatato() - * @generated - * @ordered - */ - protected String ackdatato = ACKDATATO_EDEFAULT; - - /** - * The default value of the '{@link #getAckdata() Ackdata}' attribute. - * - * - * @see #getAckdata() - * @generated - * @ordered - */ - protected static final String ACKDATA_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAckdata() Ackdata}' attribute. - * - * - * @see #getAckdata() - * @generated - * @ordered - */ - protected String ackdata = ACKDATA_EDEFAULT; - - /** - * - * - * @generated - */ - protected RestImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.REST; - } - - /** - * - * - * @generated - */ - public String getAuthtoken() - { - return authtoken; - } - - /** - * - * - * @generated - */ - public void setAuthtoken(String newAuthtoken) - { - String oldAuthtoken = authtoken; - authtoken = newAuthtoken; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__AUTHTOKEN, oldAuthtoken, authtoken)); - } - - /** - * - * - * @generated - */ - public String getUrl() - { - return url; - } - - /** - * - * - * @generated - */ - public void setUrl(String newUrl) - { - String oldUrl = url; - url = newUrl; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__URL, oldUrl, url)); - } - - /** - * - * - * @generated - */ - public String getMethod() - { - return method; - } - - /** - * - * - * @generated - */ - public void setMethod(String newMethod) - { - String oldMethod = method; - method = newMethod; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__METHOD, oldMethod, method)); - } - - /** - * - * - * @generated - */ - public String getResourcedatafrom() - { - return resourcedatafrom; - } - - /** - * - * - * @generated - */ - public void setResourcedatafrom(String newResourcedatafrom) - { - String oldResourcedatafrom = resourcedatafrom; - resourcedatafrom = newResourcedatafrom; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__RESOURCEDATAFROM, oldResourcedatafrom, resourcedatafrom)); - } - - /** - * - * - * @generated - */ - public String getUrldata() - { - return urldata; - } - - /** - * - * - * @generated - */ - public void setUrldata(String newUrldata) - { - String oldUrldata = urldata; - urldata = newUrldata; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__URLDATA, oldUrldata, urldata)); - } - - /** - * - * - * @generated - */ - public String getHeaderdatafrom() - { - return headerdatafrom; - } - - /** - * - * - * @generated - */ - public void setHeaderdatafrom(String newHeaderdatafrom) - { - String oldHeaderdatafrom = headerdatafrom; - headerdatafrom = newHeaderdatafrom; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__HEADERDATAFROM, oldHeaderdatafrom, headerdatafrom)); - } - - /** - * - * - * @generated - */ - public String getHeaderdata() - { - return headerdata; - } - - /** - * - * - * @generated - */ - public void setHeaderdata(String newHeaderdata) - { - String oldHeaderdata = headerdata; - headerdata = newHeaderdata; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__HEADERDATA, oldHeaderdata, headerdata)); - } - - /** - * - * - * @generated - */ - public String getPostdatafrom() - { - return postdatafrom; - } - - /** - * - * - * @generated - */ - public void setPostdatafrom(String newPostdatafrom) - { - String oldPostdatafrom = postdatafrom; - postdatafrom = newPostdatafrom; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__POSTDATAFROM, oldPostdatafrom, postdatafrom)); - } - - /** - * - * - * @generated - */ - public String getParentName() - { - return parentName; - } - - /** - * - * - * @generated - */ - public void setParentName(String newParentName) - { - String oldParentName = parentName; - parentName = newParentName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__PARENT_NAME, oldParentName, parentName)); - } - - /** - * - * - * @generated - */ - public String getParentdata() - { - return parentdata; - } - - /** - * - * - * @generated - */ - public void setParentdata(String newParentdata) - { - String oldParentdata = parentdata; - parentdata = newParentdata; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__PARENTDATA, oldParentdata, parentdata)); - } - - /** - * - * - * @generated - */ - public EList getParts() - { - if (parts == null) - { - parts = new EObjectContainmentEList(RestPart.class, this, DslPackage.REST__PARTS); - } - return parts; - } - - /** - * - * - * @generated - */ - public String getAckdatato() - { - return ackdatato; - } - - /** - * - * - * @generated - */ - public void setAckdatato(String newAckdatato) - { - String oldAckdatato = ackdatato; - ackdatato = newAckdatato; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__ACKDATATO, oldAckdatato, ackdatato)); - } - - /** - * - * - * @generated - */ - public String getAckdata() - { - return ackdata; - } - - /** - * - * - * @generated - */ - public void setAckdata(String newAckdata) - { - String oldAckdata = ackdata; - ackdata = newAckdata; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST__ACKDATA, oldAckdata, ackdata)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case DslPackage.REST__PARTS: - return ((InternalEList)getParts()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.REST__AUTHTOKEN: - return getAuthtoken(); - case DslPackage.REST__URL: - return getUrl(); - case DslPackage.REST__METHOD: - return getMethod(); - case DslPackage.REST__RESOURCEDATAFROM: - return getResourcedatafrom(); - case DslPackage.REST__URLDATA: - return getUrldata(); - case DslPackage.REST__HEADERDATAFROM: - return getHeaderdatafrom(); - case DslPackage.REST__HEADERDATA: - return getHeaderdata(); - case DslPackage.REST__POSTDATAFROM: - return getPostdatafrom(); - case DslPackage.REST__PARENT_NAME: - return getParentName(); - case DslPackage.REST__PARENTDATA: - return getParentdata(); - case DslPackage.REST__PARTS: - return getParts(); - case DslPackage.REST__ACKDATATO: - return getAckdatato(); - case DslPackage.REST__ACKDATA: - return getAckdata(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.REST__AUTHTOKEN: - setAuthtoken((String)newValue); - return; - case DslPackage.REST__URL: - setUrl((String)newValue); - return; - case DslPackage.REST__METHOD: - setMethod((String)newValue); - return; - case DslPackage.REST__RESOURCEDATAFROM: - setResourcedatafrom((String)newValue); - return; - case DslPackage.REST__URLDATA: - setUrldata((String)newValue); - return; - case DslPackage.REST__HEADERDATAFROM: - setHeaderdatafrom((String)newValue); - return; - case DslPackage.REST__HEADERDATA: - setHeaderdata((String)newValue); - return; - case DslPackage.REST__POSTDATAFROM: - setPostdatafrom((String)newValue); - return; - case DslPackage.REST__PARENT_NAME: - setParentName((String)newValue); - return; - case DslPackage.REST__PARENTDATA: - setParentdata((String)newValue); - return; - case DslPackage.REST__PARTS: - getParts().clear(); - getParts().addAll((Collection)newValue); - return; - case DslPackage.REST__ACKDATATO: - setAckdatato((String)newValue); - return; - case DslPackage.REST__ACKDATA: - setAckdata((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.REST__AUTHTOKEN: - setAuthtoken(AUTHTOKEN_EDEFAULT); - return; - case DslPackage.REST__URL: - setUrl(URL_EDEFAULT); - return; - case DslPackage.REST__METHOD: - setMethod(METHOD_EDEFAULT); - return; - case DslPackage.REST__RESOURCEDATAFROM: - setResourcedatafrom(RESOURCEDATAFROM_EDEFAULT); - return; - case DslPackage.REST__URLDATA: - setUrldata(URLDATA_EDEFAULT); - return; - case DslPackage.REST__HEADERDATAFROM: - setHeaderdatafrom(HEADERDATAFROM_EDEFAULT); - return; - case DslPackage.REST__HEADERDATA: - setHeaderdata(HEADERDATA_EDEFAULT); - return; - case DslPackage.REST__POSTDATAFROM: - setPostdatafrom(POSTDATAFROM_EDEFAULT); - return; - case DslPackage.REST__PARENT_NAME: - setParentName(PARENT_NAME_EDEFAULT); - return; - case DslPackage.REST__PARENTDATA: - setParentdata(PARENTDATA_EDEFAULT); - return; - case DslPackage.REST__PARTS: - getParts().clear(); - return; - case DslPackage.REST__ACKDATATO: - setAckdatato(ACKDATATO_EDEFAULT); - return; - case DslPackage.REST__ACKDATA: - setAckdata(ACKDATA_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.REST__AUTHTOKEN: - return AUTHTOKEN_EDEFAULT == null ? authtoken != null : !AUTHTOKEN_EDEFAULT.equals(authtoken); - case DslPackage.REST__URL: - return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url); - case DslPackage.REST__METHOD: - return METHOD_EDEFAULT == null ? method != null : !METHOD_EDEFAULT.equals(method); - case DslPackage.REST__RESOURCEDATAFROM: - return RESOURCEDATAFROM_EDEFAULT == null ? resourcedatafrom != null : !RESOURCEDATAFROM_EDEFAULT.equals(resourcedatafrom); - case DslPackage.REST__URLDATA: - return URLDATA_EDEFAULT == null ? urldata != null : !URLDATA_EDEFAULT.equals(urldata); - case DslPackage.REST__HEADERDATAFROM: - return HEADERDATAFROM_EDEFAULT == null ? headerdatafrom != null : !HEADERDATAFROM_EDEFAULT.equals(headerdatafrom); - case DslPackage.REST__HEADERDATA: - return HEADERDATA_EDEFAULT == null ? headerdata != null : !HEADERDATA_EDEFAULT.equals(headerdata); - case DslPackage.REST__POSTDATAFROM: - return POSTDATAFROM_EDEFAULT == null ? postdatafrom != null : !POSTDATAFROM_EDEFAULT.equals(postdatafrom); - case DslPackage.REST__PARENT_NAME: - return PARENT_NAME_EDEFAULT == null ? parentName != null : !PARENT_NAME_EDEFAULT.equals(parentName); - case DslPackage.REST__PARENTDATA: - return PARENTDATA_EDEFAULT == null ? parentdata != null : !PARENTDATA_EDEFAULT.equals(parentdata); - case DslPackage.REST__PARTS: - return parts != null && !parts.isEmpty(); - case DslPackage.REST__ACKDATATO: - return ACKDATATO_EDEFAULT == null ? ackdatato != null : !ACKDATATO_EDEFAULT.equals(ackdatato); - case DslPackage.REST__ACKDATA: - return ACKDATA_EDEFAULT == null ? ackdata != null : !ACKDATA_EDEFAULT.equals(ackdata); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (authtoken: "); - result.append(authtoken); - result.append(", url: "); - result.append(url); - result.append(", method: "); - result.append(method); - result.append(", resourcedatafrom: "); - result.append(resourcedatafrom); - result.append(", urldata: "); - result.append(urldata); - result.append(", headerdatafrom: "); - result.append(headerdatafrom); - result.append(", headerdata: "); - result.append(headerdata); - result.append(", postdatafrom: "); - result.append(postdatafrom); - result.append(", parentName: "); - result.append(parentName); - result.append(", parentdata: "); - result.append(parentdata); - result.append(", ackdatato: "); - result.append(ackdatato); - result.append(", ackdata: "); - result.append(ackdata); - result.append(')'); - return result.toString(); - } - -} //RestImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/RestPartImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/RestPartImpl.java deleted file mode 100644 index 4940a3bd..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/RestPartImpl.java +++ /dev/null @@ -1,234 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.RestPart; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -/** - * - * An implementation of the model object 'Rest Part'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.RestPartImpl#getPartName Part Name}
  • - *
  • {@link in.handyman.dsl.impl.RestPartImpl#getPartData Part Data}
  • - *
- * - * @generated - */ -public class RestPartImpl extends MinimalEObjectImpl.Container implements RestPart -{ - /** - * The default value of the '{@link #getPartName() Part Name}' attribute. - * - * - * @see #getPartName() - * @generated - * @ordered - */ - protected static final String PART_NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getPartName() Part Name}' attribute. - * - * - * @see #getPartName() - * @generated - * @ordered - */ - protected String partName = PART_NAME_EDEFAULT; - - /** - * The default value of the '{@link #getPartData() Part Data}' attribute. - * - * - * @see #getPartData() - * @generated - * @ordered - */ - protected static final String PART_DATA_EDEFAULT = null; - - /** - * The cached value of the '{@link #getPartData() Part Data}' attribute. - * - * - * @see #getPartData() - * @generated - * @ordered - */ - protected String partData = PART_DATA_EDEFAULT; - - /** - * - * - * @generated - */ - protected RestPartImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.REST_PART; - } - - /** - * - * - * @generated - */ - public String getPartName() - { - return partName; - } - - /** - * - * - * @generated - */ - public void setPartName(String newPartName) - { - String oldPartName = partName; - partName = newPartName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST_PART__PART_NAME, oldPartName, partName)); - } - - /** - * - * - * @generated - */ - public String getPartData() - { - return partData; - } - - /** - * - * - * @generated - */ - public void setPartData(String newPartData) - { - String oldPartData = partData; - partData = newPartData; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.REST_PART__PART_DATA, oldPartData, partData)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.REST_PART__PART_NAME: - return getPartName(); - case DslPackage.REST_PART__PART_DATA: - return getPartData(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.REST_PART__PART_NAME: - setPartName((String)newValue); - return; - case DslPackage.REST_PART__PART_DATA: - setPartData((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.REST_PART__PART_NAME: - setPartName(PART_NAME_EDEFAULT); - return; - case DslPackage.REST_PART__PART_DATA: - setPartData(PART_DATA_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.REST_PART__PART_NAME: - return PART_NAME_EDEFAULT == null ? partName != null : !PART_NAME_EDEFAULT.equals(partName); - case DslPackage.REST_PART__PART_DATA: - return PART_DATA_EDEFAULT == null ? partData != null : !PART_DATA_EDEFAULT.equals(partData); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (partName: "); - result.append(partName); - result.append(", partData: "); - result.append(partData); - result.append(')'); - return result.toString(); - } - -} //RestPartImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SendMailImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SendMailImpl.java deleted file mode 100644 index 73bc472b..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SendMailImpl.java +++ /dev/null @@ -1,401 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.SendMail; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Send Mail'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.SendMailImpl#getPrivateKey Private Key}
  • - *
  • {@link in.handyman.dsl.impl.SendMailImpl#getImpersonatedUser Impersonated User}
  • - *
  • {@link in.handyman.dsl.impl.SendMailImpl#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.impl.SendMailImpl#getValue Value}
  • - *
  • {@link in.handyman.dsl.impl.SendMailImpl#getDryrunMail Dryrun Mail}
  • - *
- * - * @generated - */ -public class SendMailImpl extends ActionImpl implements SendMail -{ - /** - * The default value of the '{@link #getPrivateKey() Private Key}' attribute. - * - * - * @see #getPrivateKey() - * @generated - * @ordered - */ - protected static final String PRIVATE_KEY_EDEFAULT = null; - - /** - * The cached value of the '{@link #getPrivateKey() Private Key}' attribute. - * - * - * @see #getPrivateKey() - * @generated - * @ordered - */ - protected String privateKey = PRIVATE_KEY_EDEFAULT; - - /** - * The default value of the '{@link #getImpersonatedUser() Impersonated User}' attribute. - * - * - * @see #getImpersonatedUser() - * @generated - * @ordered - */ - protected static final String IMPERSONATED_USER_EDEFAULT = null; - - /** - * The cached value of the '{@link #getImpersonatedUser() Impersonated User}' attribute. - * - * - * @see #getImpersonatedUser() - * @generated - * @ordered - */ - protected String impersonatedUser = IMPERSONATED_USER_EDEFAULT; - - /** - * The default value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected static final String DB_SRC_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected String dbSrc = DB_SRC_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * The default value of the '{@link #getDryrunMail() Dryrun Mail}' attribute. - * - * - * @see #getDryrunMail() - * @generated - * @ordered - */ - protected static final String DRYRUN_MAIL_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDryrunMail() Dryrun Mail}' attribute. - * - * - * @see #getDryrunMail() - * @generated - * @ordered - */ - protected String dryrunMail = DRYRUN_MAIL_EDEFAULT; - - /** - * - * - * @generated - */ - protected SendMailImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.SEND_MAIL; - } - - /** - * - * - * @generated - */ - public String getPrivateKey() - { - return privateKey; - } - - /** - * - * - * @generated - */ - public void setPrivateKey(String newPrivateKey) - { - String oldPrivateKey = privateKey; - privateKey = newPrivateKey; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SEND_MAIL__PRIVATE_KEY, oldPrivateKey, privateKey)); - } - - /** - * - * - * @generated - */ - public String getImpersonatedUser() - { - return impersonatedUser; - } - - /** - * - * - * @generated - */ - public void setImpersonatedUser(String newImpersonatedUser) - { - String oldImpersonatedUser = impersonatedUser; - impersonatedUser = newImpersonatedUser; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SEND_MAIL__IMPERSONATED_USER, oldImpersonatedUser, impersonatedUser)); - } - - /** - * - * - * @generated - */ - public String getDbSrc() - { - return dbSrc; - } - - /** - * - * - * @generated - */ - public void setDbSrc(String newDbSrc) - { - String oldDbSrc = dbSrc; - dbSrc = newDbSrc; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SEND_MAIL__DB_SRC, oldDbSrc, dbSrc)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SEND_MAIL__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - public String getDryrunMail() - { - return dryrunMail; - } - - /** - * - * - * @generated - */ - public void setDryrunMail(String newDryrunMail) - { - String oldDryrunMail = dryrunMail; - dryrunMail = newDryrunMail; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SEND_MAIL__DRYRUN_MAIL, oldDryrunMail, dryrunMail)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.SEND_MAIL__PRIVATE_KEY: - return getPrivateKey(); - case DslPackage.SEND_MAIL__IMPERSONATED_USER: - return getImpersonatedUser(); - case DslPackage.SEND_MAIL__DB_SRC: - return getDbSrc(); - case DslPackage.SEND_MAIL__VALUE: - return getValue(); - case DslPackage.SEND_MAIL__DRYRUN_MAIL: - return getDryrunMail(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.SEND_MAIL__PRIVATE_KEY: - setPrivateKey((String)newValue); - return; - case DslPackage.SEND_MAIL__IMPERSONATED_USER: - setImpersonatedUser((String)newValue); - return; - case DslPackage.SEND_MAIL__DB_SRC: - setDbSrc((String)newValue); - return; - case DslPackage.SEND_MAIL__VALUE: - setValue((String)newValue); - return; - case DslPackage.SEND_MAIL__DRYRUN_MAIL: - setDryrunMail((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.SEND_MAIL__PRIVATE_KEY: - setPrivateKey(PRIVATE_KEY_EDEFAULT); - return; - case DslPackage.SEND_MAIL__IMPERSONATED_USER: - setImpersonatedUser(IMPERSONATED_USER_EDEFAULT); - return; - case DslPackage.SEND_MAIL__DB_SRC: - setDbSrc(DB_SRC_EDEFAULT); - return; - case DslPackage.SEND_MAIL__VALUE: - setValue(VALUE_EDEFAULT); - return; - case DslPackage.SEND_MAIL__DRYRUN_MAIL: - setDryrunMail(DRYRUN_MAIL_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.SEND_MAIL__PRIVATE_KEY: - return PRIVATE_KEY_EDEFAULT == null ? privateKey != null : !PRIVATE_KEY_EDEFAULT.equals(privateKey); - case DslPackage.SEND_MAIL__IMPERSONATED_USER: - return IMPERSONATED_USER_EDEFAULT == null ? impersonatedUser != null : !IMPERSONATED_USER_EDEFAULT.equals(impersonatedUser); - case DslPackage.SEND_MAIL__DB_SRC: - return DB_SRC_EDEFAULT == null ? dbSrc != null : !DB_SRC_EDEFAULT.equals(dbSrc); - case DslPackage.SEND_MAIL__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - case DslPackage.SEND_MAIL__DRYRUN_MAIL: - return DRYRUN_MAIL_EDEFAULT == null ? dryrunMail != null : !DRYRUN_MAIL_EDEFAULT.equals(dryrunMail); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (privateKey: "); - result.append(privateKey); - result.append(", impersonatedUser: "); - result.append(impersonatedUser); - result.append(", dbSrc: "); - result.append(dbSrc); - result.append(", value: "); - result.append(value); - result.append(", dryrunMail: "); - result.append(dryrunMail); - result.append(')'); - return result.toString(); - } - -} //SendMailImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SlackPUTImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SlackPUTImpl.java deleted file mode 100644 index 1ed622a8..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SlackPUTImpl.java +++ /dev/null @@ -1,289 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.SlackPUT; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Slack PUT'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.SlackPUTImpl#getTeam Team}
  • - *
  • {@link in.handyman.dsl.impl.SlackPUTImpl#getChannel Channel}
  • - *
  • {@link in.handyman.dsl.impl.SlackPUTImpl#getValue Value}
  • - *
- * - * @generated - */ -public class SlackPUTImpl extends ActionImpl implements SlackPUT -{ - /** - * The default value of the '{@link #getTeam() Team}' attribute. - * - * - * @see #getTeam() - * @generated - * @ordered - */ - protected static final String TEAM_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTeam() Team}' attribute. - * - * - * @see #getTeam() - * @generated - * @ordered - */ - protected String team = TEAM_EDEFAULT; - - /** - * The default value of the '{@link #getChannel() Channel}' attribute. - * - * - * @see #getChannel() - * @generated - * @ordered - */ - protected static final String CHANNEL_EDEFAULT = null; - - /** - * The cached value of the '{@link #getChannel() Channel}' attribute. - * - * - * @see #getChannel() - * @generated - * @ordered - */ - protected String channel = CHANNEL_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected SlackPUTImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.SLACK_PUT; - } - - /** - * - * - * @generated - */ - public String getTeam() - { - return team; - } - - /** - * - * - * @generated - */ - public void setTeam(String newTeam) - { - String oldTeam = team; - team = newTeam; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SLACK_PUT__TEAM, oldTeam, team)); - } - - /** - * - * - * @generated - */ - public String getChannel() - { - return channel; - } - - /** - * - * - * @generated - */ - public void setChannel(String newChannel) - { - String oldChannel = channel; - channel = newChannel; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SLACK_PUT__CHANNEL, oldChannel, channel)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SLACK_PUT__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.SLACK_PUT__TEAM: - return getTeam(); - case DslPackage.SLACK_PUT__CHANNEL: - return getChannel(); - case DslPackage.SLACK_PUT__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.SLACK_PUT__TEAM: - setTeam((String)newValue); - return; - case DslPackage.SLACK_PUT__CHANNEL: - setChannel((String)newValue); - return; - case DslPackage.SLACK_PUT__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.SLACK_PUT__TEAM: - setTeam(TEAM_EDEFAULT); - return; - case DslPackage.SLACK_PUT__CHANNEL: - setChannel(CHANNEL_EDEFAULT); - return; - case DslPackage.SLACK_PUT__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.SLACK_PUT__TEAM: - return TEAM_EDEFAULT == null ? team != null : !TEAM_EDEFAULT.equals(team); - case DslPackage.SLACK_PUT__CHANNEL: - return CHANNEL_EDEFAULT == null ? channel != null : !CHANNEL_EDEFAULT.equals(channel); - case DslPackage.SLACK_PUT__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (team: "); - result.append(team); - result.append(", channel: "); - result.append(channel); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //SlackPUTImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SmsLeadSmsImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SmsLeadSmsImpl.java deleted file mode 100644 index e3b122fc..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SmsLeadSmsImpl.java +++ /dev/null @@ -1,513 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.SmsLeadSms; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Sms Lead Sms'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.SmsLeadSmsImpl#getUrl Url}
  • - *
  • {@link in.handyman.dsl.impl.SmsLeadSmsImpl#getSender Sender}
  • - *
  • {@link in.handyman.dsl.impl.SmsLeadSmsImpl#getAccount Account}
  • - *
  • {@link in.handyman.dsl.impl.SmsLeadSmsImpl#getPrivateKey Private Key}
  • - *
  • {@link in.handyman.dsl.impl.SmsLeadSmsImpl#getDbSrc Db Src}
  • - *
  • {@link in.handyman.dsl.impl.SmsLeadSmsImpl#getValue Value}
  • - *
  • {@link in.handyman.dsl.impl.SmsLeadSmsImpl#getDryrunNumber Dryrun Number}
  • - *
- * - * @generated - */ -public class SmsLeadSmsImpl extends ActionImpl implements SmsLeadSms -{ - /** - * The default value of the '{@link #getUrl() Url}' attribute. - * - * - * @see #getUrl() - * @generated - * @ordered - */ - protected static final String URL_EDEFAULT = null; - - /** - * The cached value of the '{@link #getUrl() Url}' attribute. - * - * - * @see #getUrl() - * @generated - * @ordered - */ - protected String url = URL_EDEFAULT; - - /** - * The default value of the '{@link #getSender() Sender}' attribute. - * - * - * @see #getSender() - * @generated - * @ordered - */ - protected static final String SENDER_EDEFAULT = null; - - /** - * The cached value of the '{@link #getSender() Sender}' attribute. - * - * - * @see #getSender() - * @generated - * @ordered - */ - protected String sender = SENDER_EDEFAULT; - - /** - * The default value of the '{@link #getAccount() Account}' attribute. - * - * - * @see #getAccount() - * @generated - * @ordered - */ - protected static final String ACCOUNT_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAccount() Account}' attribute. - * - * - * @see #getAccount() - * @generated - * @ordered - */ - protected String account = ACCOUNT_EDEFAULT; - - /** - * The default value of the '{@link #getPrivateKey() Private Key}' attribute. - * - * - * @see #getPrivateKey() - * @generated - * @ordered - */ - protected static final String PRIVATE_KEY_EDEFAULT = null; - - /** - * The cached value of the '{@link #getPrivateKey() Private Key}' attribute. - * - * - * @see #getPrivateKey() - * @generated - * @ordered - */ - protected String privateKey = PRIVATE_KEY_EDEFAULT; - - /** - * The default value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected static final String DB_SRC_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDbSrc() Db Src}' attribute. - * - * - * @see #getDbSrc() - * @generated - * @ordered - */ - protected String dbSrc = DB_SRC_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * The default value of the '{@link #getDryrunNumber() Dryrun Number}' attribute. - * - * - * @see #getDryrunNumber() - * @generated - * @ordered - */ - protected static final String DRYRUN_NUMBER_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDryrunNumber() Dryrun Number}' attribute. - * - * - * @see #getDryrunNumber() - * @generated - * @ordered - */ - protected String dryrunNumber = DRYRUN_NUMBER_EDEFAULT; - - /** - * - * - * @generated - */ - protected SmsLeadSmsImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.SMS_LEAD_SMS; - } - - /** - * - * - * @generated - */ - public String getUrl() - { - return url; - } - - /** - * - * - * @generated - */ - public void setUrl(String newUrl) - { - String oldUrl = url; - url = newUrl; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SMS_LEAD_SMS__URL, oldUrl, url)); - } - - /** - * - * - * @generated - */ - public String getSender() - { - return sender; - } - - /** - * - * - * @generated - */ - public void setSender(String newSender) - { - String oldSender = sender; - sender = newSender; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SMS_LEAD_SMS__SENDER, oldSender, sender)); - } - - /** - * - * - * @generated - */ - public String getAccount() - { - return account; - } - - /** - * - * - * @generated - */ - public void setAccount(String newAccount) - { - String oldAccount = account; - account = newAccount; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SMS_LEAD_SMS__ACCOUNT, oldAccount, account)); - } - - /** - * - * - * @generated - */ - public String getPrivateKey() - { - return privateKey; - } - - /** - * - * - * @generated - */ - public void setPrivateKey(String newPrivateKey) - { - String oldPrivateKey = privateKey; - privateKey = newPrivateKey; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SMS_LEAD_SMS__PRIVATE_KEY, oldPrivateKey, privateKey)); - } - - /** - * - * - * @generated - */ - public String getDbSrc() - { - return dbSrc; - } - - /** - * - * - * @generated - */ - public void setDbSrc(String newDbSrc) - { - String oldDbSrc = dbSrc; - dbSrc = newDbSrc; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SMS_LEAD_SMS__DB_SRC, oldDbSrc, dbSrc)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SMS_LEAD_SMS__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - public String getDryrunNumber() - { - return dryrunNumber; - } - - /** - * - * - * @generated - */ - public void setDryrunNumber(String newDryrunNumber) - { - String oldDryrunNumber = dryrunNumber; - dryrunNumber = newDryrunNumber; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SMS_LEAD_SMS__DRYRUN_NUMBER, oldDryrunNumber, dryrunNumber)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.SMS_LEAD_SMS__URL: - return getUrl(); - case DslPackage.SMS_LEAD_SMS__SENDER: - return getSender(); - case DslPackage.SMS_LEAD_SMS__ACCOUNT: - return getAccount(); - case DslPackage.SMS_LEAD_SMS__PRIVATE_KEY: - return getPrivateKey(); - case DslPackage.SMS_LEAD_SMS__DB_SRC: - return getDbSrc(); - case DslPackage.SMS_LEAD_SMS__VALUE: - return getValue(); - case DslPackage.SMS_LEAD_SMS__DRYRUN_NUMBER: - return getDryrunNumber(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.SMS_LEAD_SMS__URL: - setUrl((String)newValue); - return; - case DslPackage.SMS_LEAD_SMS__SENDER: - setSender((String)newValue); - return; - case DslPackage.SMS_LEAD_SMS__ACCOUNT: - setAccount((String)newValue); - return; - case DslPackage.SMS_LEAD_SMS__PRIVATE_KEY: - setPrivateKey((String)newValue); - return; - case DslPackage.SMS_LEAD_SMS__DB_SRC: - setDbSrc((String)newValue); - return; - case DslPackage.SMS_LEAD_SMS__VALUE: - setValue((String)newValue); - return; - case DslPackage.SMS_LEAD_SMS__DRYRUN_NUMBER: - setDryrunNumber((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.SMS_LEAD_SMS__URL: - setUrl(URL_EDEFAULT); - return; - case DslPackage.SMS_LEAD_SMS__SENDER: - setSender(SENDER_EDEFAULT); - return; - case DslPackage.SMS_LEAD_SMS__ACCOUNT: - setAccount(ACCOUNT_EDEFAULT); - return; - case DslPackage.SMS_LEAD_SMS__PRIVATE_KEY: - setPrivateKey(PRIVATE_KEY_EDEFAULT); - return; - case DslPackage.SMS_LEAD_SMS__DB_SRC: - setDbSrc(DB_SRC_EDEFAULT); - return; - case DslPackage.SMS_LEAD_SMS__VALUE: - setValue(VALUE_EDEFAULT); - return; - case DslPackage.SMS_LEAD_SMS__DRYRUN_NUMBER: - setDryrunNumber(DRYRUN_NUMBER_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.SMS_LEAD_SMS__URL: - return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url); - case DslPackage.SMS_LEAD_SMS__SENDER: - return SENDER_EDEFAULT == null ? sender != null : !SENDER_EDEFAULT.equals(sender); - case DslPackage.SMS_LEAD_SMS__ACCOUNT: - return ACCOUNT_EDEFAULT == null ? account != null : !ACCOUNT_EDEFAULT.equals(account); - case DslPackage.SMS_LEAD_SMS__PRIVATE_KEY: - return PRIVATE_KEY_EDEFAULT == null ? privateKey != null : !PRIVATE_KEY_EDEFAULT.equals(privateKey); - case DslPackage.SMS_LEAD_SMS__DB_SRC: - return DB_SRC_EDEFAULT == null ? dbSrc != null : !DB_SRC_EDEFAULT.equals(dbSrc); - case DslPackage.SMS_LEAD_SMS__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - case DslPackage.SMS_LEAD_SMS__DRYRUN_NUMBER: - return DRYRUN_NUMBER_EDEFAULT == null ? dryrunNumber != null : !DRYRUN_NUMBER_EDEFAULT.equals(dryrunNumber); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (url: "); - result.append(url); - result.append(", sender: "); - result.append(sender); - result.append(", account: "); - result.append(account); - result.append(", privateKey: "); - result.append(privateKey); - result.append(", dbSrc: "); - result.append(dbSrc); - result.append(", value: "); - result.append(value); - result.append(", dryrunNumber: "); - result.append(dryrunNumber); - result.append(')'); - return result.toString(); - } - -} //SmsLeadSmsImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SpawnprocessImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SpawnprocessImpl.java deleted file mode 100644 index 07ca017d..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/SpawnprocessImpl.java +++ /dev/null @@ -1,233 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.Spawnprocess; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Spawnprocess'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.SpawnprocessImpl#getTarget Target}
  • - *
  • {@link in.handyman.dsl.impl.SpawnprocessImpl#getSource Source}
  • - *
- * - * @generated - */ -public class SpawnprocessImpl extends ActionImpl implements Spawnprocess -{ - /** - * The default value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected static final String TARGET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected String target = TARGET_EDEFAULT; - - /** - * The default value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected static final String SOURCE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected String source = SOURCE_EDEFAULT; - - /** - * - * - * @generated - */ - protected SpawnprocessImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.SPAWNPROCESS; - } - - /** - * - * - * @generated - */ - public String getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public void setTarget(String newTarget) - { - String oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SPAWNPROCESS__TARGET, oldTarget, target)); - } - - /** - * - * - * @generated - */ - public String getSource() - { - return source; - } - - /** - * - * - * @generated - */ - public void setSource(String newSource) - { - String oldSource = source; - source = newSource; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.SPAWNPROCESS__SOURCE, oldSource, source)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.SPAWNPROCESS__TARGET: - return getTarget(); - case DslPackage.SPAWNPROCESS__SOURCE: - return getSource(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.SPAWNPROCESS__TARGET: - setTarget((String)newValue); - return; - case DslPackage.SPAWNPROCESS__SOURCE: - setSource((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.SPAWNPROCESS__TARGET: - setTarget(TARGET_EDEFAULT); - return; - case DslPackage.SPAWNPROCESS__SOURCE: - setSource(SOURCE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.SPAWNPROCESS__TARGET: - return TARGET_EDEFAULT == null ? target != null : !TARGET_EDEFAULT.equals(target); - case DslPackage.SPAWNPROCESS__SOURCE: - return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (target: "); - result.append(target); - result.append(", source: "); - result.append(source); - result.append(')'); - return result.toString(); - } - -} //SpawnprocessImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/StartProcessImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/StartProcessImpl.java deleted file mode 100644 index e2cf2411..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/StartProcessImpl.java +++ /dev/null @@ -1,234 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.StartProcess; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -/** - * - * An implementation of the model object 'Start Process'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.StartProcessImpl#getName Name}
  • - *
  • {@link in.handyman.dsl.impl.StartProcessImpl#getTarget Target}
  • - *
- * - * @generated - */ -public class StartProcessImpl extends MinimalEObjectImpl.Container implements StartProcess -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * The default value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected static final String TARGET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected String target = TARGET_EDEFAULT; - - /** - * - * - * @generated - */ - protected StartProcessImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.START_PROCESS; - } - - /** - * - * - * @generated - */ - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.START_PROCESS__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - public String getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public void setTarget(String newTarget) - { - String oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.START_PROCESS__TARGET, oldTarget, target)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.START_PROCESS__NAME: - return getName(); - case DslPackage.START_PROCESS__TARGET: - return getTarget(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.START_PROCESS__NAME: - setName((String)newValue); - return; - case DslPackage.START_PROCESS__TARGET: - setTarget((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.START_PROCESS__NAME: - setName(NAME_EDEFAULT); - return; - case DslPackage.START_PROCESS__TARGET: - setTarget(TARGET_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.START_PROCESS__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case DslPackage.START_PROCESS__TARGET: - return TARGET_EDEFAULT == null ? target != null : !TARGET_EDEFAULT.equals(target); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(", target: "); - result.append(target); - result.append(')'); - return result.toString(); - } - -} //StartProcessImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TransformImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TransformImpl.java deleted file mode 100644 index a6e68f0a..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TransformImpl.java +++ /dev/null @@ -1,222 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.Transform; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.emf.ecore.util.EDataTypeEList; - -/** - * - * An implementation of the model object 'Transform'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.TransformImpl#getOn On}
  • - *
  • {@link in.handyman.dsl.impl.TransformImpl#getValue Value}
  • - *
- * - * @generated - */ -public class TransformImpl extends ActionImpl implements Transform -{ - /** - * The default value of the '{@link #getOn() On}' attribute. - * - * - * @see #getOn() - * @generated - * @ordered - */ - protected static final String ON_EDEFAULT = null; - - /** - * The cached value of the '{@link #getOn() On}' attribute. - * - * - * @see #getOn() - * @generated - * @ordered - */ - protected String on = ON_EDEFAULT; - - /** - * The cached value of the '{@link #getValue() Value}' attribute list. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected EList value; - - /** - * - * - * @generated - */ - protected TransformImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.TRANSFORM; - } - - /** - * - * - * @generated - */ - public String getOn() - { - return on; - } - - /** - * - * - * @generated - */ - public void setOn(String newOn) - { - String oldOn = on; - on = newOn; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRANSFORM__ON, oldOn, on)); - } - - /** - * - * - * @generated - */ - public EList getValue() - { - if (value == null) - { - value = new EDataTypeEList(String.class, this, DslPackage.TRANSFORM__VALUE); - } - return value; - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.TRANSFORM__ON: - return getOn(); - case DslPackage.TRANSFORM__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.TRANSFORM__ON: - setOn((String)newValue); - return; - case DslPackage.TRANSFORM__VALUE: - getValue().clear(); - getValue().addAll((Collection)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.TRANSFORM__ON: - setOn(ON_EDEFAULT); - return; - case DslPackage.TRANSFORM__VALUE: - getValue().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.TRANSFORM__ON: - return ON_EDEFAULT == null ? on != null : !ON_EDEFAULT.equals(on); - case DslPackage.TRANSFORM__VALUE: - return value != null && !value.isEmpty(); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (on: "); - result.append(on); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //TransformImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TrelloGETImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TrelloGETImpl.java deleted file mode 100644 index dba7de62..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TrelloGETImpl.java +++ /dev/null @@ -1,457 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.TrelloGET; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Trello GET'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.TrelloGETImpl#getAuthtoken Authtoken}
  • - *
  • {@link in.handyman.dsl.impl.TrelloGETImpl#getKey Key}
  • - *
  • {@link in.handyman.dsl.impl.TrelloGETImpl#getUseraccount Useraccount}
  • - *
  • {@link in.handyman.dsl.impl.TrelloGETImpl#getBoard Board}
  • - *
  • {@link in.handyman.dsl.impl.TrelloGETImpl#getTarget Target}
  • - *
  • {@link in.handyman.dsl.impl.TrelloGETImpl#getValue Value}
  • - *
- * - * @generated - */ -public class TrelloGETImpl extends ActionImpl implements TrelloGET -{ - /** - * The default value of the '{@link #getAuthtoken() Authtoken}' attribute. - * - * - * @see #getAuthtoken() - * @generated - * @ordered - */ - protected static final String AUTHTOKEN_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAuthtoken() Authtoken}' attribute. - * - * - * @see #getAuthtoken() - * @generated - * @ordered - */ - protected String authtoken = AUTHTOKEN_EDEFAULT; - - /** - * The default value of the '{@link #getKey() Key}' attribute. - * - * - * @see #getKey() - * @generated - * @ordered - */ - protected static final String KEY_EDEFAULT = null; - - /** - * The cached value of the '{@link #getKey() Key}' attribute. - * - * - * @see #getKey() - * @generated - * @ordered - */ - protected String key = KEY_EDEFAULT; - - /** - * The default value of the '{@link #getUseraccount() Useraccount}' attribute. - * - * - * @see #getUseraccount() - * @generated - * @ordered - */ - protected static final String USERACCOUNT_EDEFAULT = null; - - /** - * The cached value of the '{@link #getUseraccount() Useraccount}' attribute. - * - * - * @see #getUseraccount() - * @generated - * @ordered - */ - protected String useraccount = USERACCOUNT_EDEFAULT; - - /** - * The default value of the '{@link #getBoard() Board}' attribute. - * - * - * @see #getBoard() - * @generated - * @ordered - */ - protected static final String BOARD_EDEFAULT = null; - - /** - * The cached value of the '{@link #getBoard() Board}' attribute. - * - * - * @see #getBoard() - * @generated - * @ordered - */ - protected String board = BOARD_EDEFAULT; - - /** - * The default value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected static final String TARGET_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTarget() Target}' attribute. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected String target = TARGET_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected TrelloGETImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.TRELLO_GET; - } - - /** - * - * - * @generated - */ - public String getAuthtoken() - { - return authtoken; - } - - /** - * - * - * @generated - */ - public void setAuthtoken(String newAuthtoken) - { - String oldAuthtoken = authtoken; - authtoken = newAuthtoken; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_GET__AUTHTOKEN, oldAuthtoken, authtoken)); - } - - /** - * - * - * @generated - */ - public String getKey() - { - return key; - } - - /** - * - * - * @generated - */ - public void setKey(String newKey) - { - String oldKey = key; - key = newKey; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_GET__KEY, oldKey, key)); - } - - /** - * - * - * @generated - */ - public String getUseraccount() - { - return useraccount; - } - - /** - * - * - * @generated - */ - public void setUseraccount(String newUseraccount) - { - String oldUseraccount = useraccount; - useraccount = newUseraccount; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_GET__USERACCOUNT, oldUseraccount, useraccount)); - } - - /** - * - * - * @generated - */ - public String getBoard() - { - return board; - } - - /** - * - * - * @generated - */ - public void setBoard(String newBoard) - { - String oldBoard = board; - board = newBoard; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_GET__BOARD, oldBoard, board)); - } - - /** - * - * - * @generated - */ - public String getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public void setTarget(String newTarget) - { - String oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_GET__TARGET, oldTarget, target)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_GET__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.TRELLO_GET__AUTHTOKEN: - return getAuthtoken(); - case DslPackage.TRELLO_GET__KEY: - return getKey(); - case DslPackage.TRELLO_GET__USERACCOUNT: - return getUseraccount(); - case DslPackage.TRELLO_GET__BOARD: - return getBoard(); - case DslPackage.TRELLO_GET__TARGET: - return getTarget(); - case DslPackage.TRELLO_GET__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.TRELLO_GET__AUTHTOKEN: - setAuthtoken((String)newValue); - return; - case DslPackage.TRELLO_GET__KEY: - setKey((String)newValue); - return; - case DslPackage.TRELLO_GET__USERACCOUNT: - setUseraccount((String)newValue); - return; - case DslPackage.TRELLO_GET__BOARD: - setBoard((String)newValue); - return; - case DslPackage.TRELLO_GET__TARGET: - setTarget((String)newValue); - return; - case DslPackage.TRELLO_GET__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.TRELLO_GET__AUTHTOKEN: - setAuthtoken(AUTHTOKEN_EDEFAULT); - return; - case DslPackage.TRELLO_GET__KEY: - setKey(KEY_EDEFAULT); - return; - case DslPackage.TRELLO_GET__USERACCOUNT: - setUseraccount(USERACCOUNT_EDEFAULT); - return; - case DslPackage.TRELLO_GET__BOARD: - setBoard(BOARD_EDEFAULT); - return; - case DslPackage.TRELLO_GET__TARGET: - setTarget(TARGET_EDEFAULT); - return; - case DslPackage.TRELLO_GET__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.TRELLO_GET__AUTHTOKEN: - return AUTHTOKEN_EDEFAULT == null ? authtoken != null : !AUTHTOKEN_EDEFAULT.equals(authtoken); - case DslPackage.TRELLO_GET__KEY: - return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key); - case DslPackage.TRELLO_GET__USERACCOUNT: - return USERACCOUNT_EDEFAULT == null ? useraccount != null : !USERACCOUNT_EDEFAULT.equals(useraccount); - case DslPackage.TRELLO_GET__BOARD: - return BOARD_EDEFAULT == null ? board != null : !BOARD_EDEFAULT.equals(board); - case DslPackage.TRELLO_GET__TARGET: - return TARGET_EDEFAULT == null ? target != null : !TARGET_EDEFAULT.equals(target); - case DslPackage.TRELLO_GET__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (authtoken: "); - result.append(authtoken); - result.append(", key: "); - result.append(key); - result.append(", useraccount: "); - result.append(useraccount); - result.append(", board: "); - result.append(board); - result.append(", target: "); - result.append(target); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //TrelloGETImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TrelloPUTImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TrelloPUTImpl.java deleted file mode 100644 index f53c44a2..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TrelloPUTImpl.java +++ /dev/null @@ -1,457 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.TrelloPUT; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Trello PUT'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.TrelloPUTImpl#getAuthtoken Authtoken}
  • - *
  • {@link in.handyman.dsl.impl.TrelloPUTImpl#getKey Key}
  • - *
  • {@link in.handyman.dsl.impl.TrelloPUTImpl#getUseraccount Useraccount}
  • - *
  • {@link in.handyman.dsl.impl.TrelloPUTImpl#getList List}
  • - *
  • {@link in.handyman.dsl.impl.TrelloPUTImpl#getSource Source}
  • - *
  • {@link in.handyman.dsl.impl.TrelloPUTImpl#getValue Value}
  • - *
- * - * @generated - */ -public class TrelloPUTImpl extends ActionImpl implements TrelloPUT -{ - /** - * The default value of the '{@link #getAuthtoken() Authtoken}' attribute. - * - * - * @see #getAuthtoken() - * @generated - * @ordered - */ - protected static final String AUTHTOKEN_EDEFAULT = null; - - /** - * The cached value of the '{@link #getAuthtoken() Authtoken}' attribute. - * - * - * @see #getAuthtoken() - * @generated - * @ordered - */ - protected String authtoken = AUTHTOKEN_EDEFAULT; - - /** - * The default value of the '{@link #getKey() Key}' attribute. - * - * - * @see #getKey() - * @generated - * @ordered - */ - protected static final String KEY_EDEFAULT = null; - - /** - * The cached value of the '{@link #getKey() Key}' attribute. - * - * - * @see #getKey() - * @generated - * @ordered - */ - protected String key = KEY_EDEFAULT; - - /** - * The default value of the '{@link #getUseraccount() Useraccount}' attribute. - * - * - * @see #getUseraccount() - * @generated - * @ordered - */ - protected static final String USERACCOUNT_EDEFAULT = null; - - /** - * The cached value of the '{@link #getUseraccount() Useraccount}' attribute. - * - * - * @see #getUseraccount() - * @generated - * @ordered - */ - protected String useraccount = USERACCOUNT_EDEFAULT; - - /** - * The default value of the '{@link #getList() List}' attribute. - * - * - * @see #getList() - * @generated - * @ordered - */ - protected static final String LIST_EDEFAULT = null; - - /** - * The cached value of the '{@link #getList() List}' attribute. - * - * - * @see #getList() - * @generated - * @ordered - */ - protected String list = LIST_EDEFAULT; - - /** - * The default value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected static final String SOURCE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected String source = SOURCE_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected TrelloPUTImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.TRELLO_PUT; - } - - /** - * - * - * @generated - */ - public String getAuthtoken() - { - return authtoken; - } - - /** - * - * - * @generated - */ - public void setAuthtoken(String newAuthtoken) - { - String oldAuthtoken = authtoken; - authtoken = newAuthtoken; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_PUT__AUTHTOKEN, oldAuthtoken, authtoken)); - } - - /** - * - * - * @generated - */ - public String getKey() - { - return key; - } - - /** - * - * - * @generated - */ - public void setKey(String newKey) - { - String oldKey = key; - key = newKey; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_PUT__KEY, oldKey, key)); - } - - /** - * - * - * @generated - */ - public String getUseraccount() - { - return useraccount; - } - - /** - * - * - * @generated - */ - public void setUseraccount(String newUseraccount) - { - String oldUseraccount = useraccount; - useraccount = newUseraccount; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_PUT__USERACCOUNT, oldUseraccount, useraccount)); - } - - /** - * - * - * @generated - */ - public String getList() - { - return list; - } - - /** - * - * - * @generated - */ - public void setList(String newList) - { - String oldList = list; - list = newList; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_PUT__LIST, oldList, list)); - } - - /** - * - * - * @generated - */ - public String getSource() - { - return source; - } - - /** - * - * - * @generated - */ - public void setSource(String newSource) - { - String oldSource = source; - source = newSource; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_PUT__SOURCE, oldSource, source)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRELLO_PUT__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.TRELLO_PUT__AUTHTOKEN: - return getAuthtoken(); - case DslPackage.TRELLO_PUT__KEY: - return getKey(); - case DslPackage.TRELLO_PUT__USERACCOUNT: - return getUseraccount(); - case DslPackage.TRELLO_PUT__LIST: - return getList(); - case DslPackage.TRELLO_PUT__SOURCE: - return getSource(); - case DslPackage.TRELLO_PUT__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.TRELLO_PUT__AUTHTOKEN: - setAuthtoken((String)newValue); - return; - case DslPackage.TRELLO_PUT__KEY: - setKey((String)newValue); - return; - case DslPackage.TRELLO_PUT__USERACCOUNT: - setUseraccount((String)newValue); - return; - case DslPackage.TRELLO_PUT__LIST: - setList((String)newValue); - return; - case DslPackage.TRELLO_PUT__SOURCE: - setSource((String)newValue); - return; - case DslPackage.TRELLO_PUT__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.TRELLO_PUT__AUTHTOKEN: - setAuthtoken(AUTHTOKEN_EDEFAULT); - return; - case DslPackage.TRELLO_PUT__KEY: - setKey(KEY_EDEFAULT); - return; - case DslPackage.TRELLO_PUT__USERACCOUNT: - setUseraccount(USERACCOUNT_EDEFAULT); - return; - case DslPackage.TRELLO_PUT__LIST: - setList(LIST_EDEFAULT); - return; - case DslPackage.TRELLO_PUT__SOURCE: - setSource(SOURCE_EDEFAULT); - return; - case DslPackage.TRELLO_PUT__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.TRELLO_PUT__AUTHTOKEN: - return AUTHTOKEN_EDEFAULT == null ? authtoken != null : !AUTHTOKEN_EDEFAULT.equals(authtoken); - case DslPackage.TRELLO_PUT__KEY: - return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key); - case DslPackage.TRELLO_PUT__USERACCOUNT: - return USERACCOUNT_EDEFAULT == null ? useraccount != null : !USERACCOUNT_EDEFAULT.equals(useraccount); - case DslPackage.TRELLO_PUT__LIST: - return LIST_EDEFAULT == null ? list != null : !LIST_EDEFAULT.equals(list); - case DslPackage.TRELLO_PUT__SOURCE: - return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); - case DslPackage.TRELLO_PUT__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (authtoken: "); - result.append(authtoken); - result.append(", key: "); - result.append(key); - result.append(", useraccount: "); - result.append(useraccount); - result.append(", list: "); - result.append(list); - result.append(", source: "); - result.append(source); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //TrelloPUTImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TryImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TryImpl.java deleted file mode 100644 index 759e849a..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/TryImpl.java +++ /dev/null @@ -1,241 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.Action; -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.Try; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -/** - * - * An implementation of the model object 'Try'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.TryImpl#getName Name}
  • - *
  • {@link in.handyman.dsl.impl.TryImpl#getAction Action}
  • - *
- * - * @generated - */ -public class TryImpl extends MinimalEObjectImpl.Container implements Try -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * The cached value of the '{@link #getAction() Action}' containment reference list. - * - * - * @see #getAction() - * @generated - * @ordered - */ - protected EList action; - - /** - * - * - * @generated - */ - protected TryImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.TRY; - } - - /** - * - * - * @generated - */ - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.TRY__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - public EList getAction() - { - if (action == null) - { - action = new EObjectContainmentEList(Action.class, this, DslPackage.TRY__ACTION); - } - return action; - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case DslPackage.TRY__ACTION: - return ((InternalEList)getAction()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.TRY__NAME: - return getName(); - case DslPackage.TRY__ACTION: - return getAction(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.TRY__NAME: - setName((String)newValue); - return; - case DslPackage.TRY__ACTION: - getAction().clear(); - getAction().addAll((Collection)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.TRY__NAME: - setName(NAME_EDEFAULT); - return; - case DslPackage.TRY__ACTION: - getAction().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.TRY__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case DslPackage.TRY__ACTION: - return action != null && !action.isEmpty(); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //TryImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/UpdatedauditImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/UpdatedauditImpl.java deleted file mode 100644 index 293851f1..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/UpdatedauditImpl.java +++ /dev/null @@ -1,289 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.Updatedaudit; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Updatedaudit'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.UpdatedauditImpl#getLogsink Logsink}
  • - *
  • {@link in.handyman.dsl.impl.UpdatedauditImpl#getDatasource Datasource}
  • - *
  • {@link in.handyman.dsl.impl.UpdatedauditImpl#getValue Value}
  • - *
- * - * @generated - */ -public class UpdatedauditImpl extends ActionImpl implements Updatedaudit -{ - /** - * The default value of the '{@link #getLogsink() Logsink}' attribute. - * - * - * @see #getLogsink() - * @generated - * @ordered - */ - protected static final String LOGSINK_EDEFAULT = null; - - /** - * The cached value of the '{@link #getLogsink() Logsink}' attribute. - * - * - * @see #getLogsink() - * @generated - * @ordered - */ - protected String logsink = LOGSINK_EDEFAULT; - - /** - * The default value of the '{@link #getDatasource() Datasource}' attribute. - * - * - * @see #getDatasource() - * @generated - * @ordered - */ - protected static final String DATASOURCE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDatasource() Datasource}' attribute. - * - * - * @see #getDatasource() - * @generated - * @ordered - */ - protected String datasource = DATASOURCE_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected UpdatedauditImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.UPDATEDAUDIT; - } - - /** - * - * - * @generated - */ - public String getLogsink() - { - return logsink; - } - - /** - * - * - * @generated - */ - public void setLogsink(String newLogsink) - { - String oldLogsink = logsink; - logsink = newLogsink; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.UPDATEDAUDIT__LOGSINK, oldLogsink, logsink)); - } - - /** - * - * - * @generated - */ - public String getDatasource() - { - return datasource; - } - - /** - * - * - * @generated - */ - public void setDatasource(String newDatasource) - { - String oldDatasource = datasource; - datasource = newDatasource; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.UPDATEDAUDIT__DATASOURCE, oldDatasource, datasource)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.UPDATEDAUDIT__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.UPDATEDAUDIT__LOGSINK: - return getLogsink(); - case DslPackage.UPDATEDAUDIT__DATASOURCE: - return getDatasource(); - case DslPackage.UPDATEDAUDIT__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.UPDATEDAUDIT__LOGSINK: - setLogsink((String)newValue); - return; - case DslPackage.UPDATEDAUDIT__DATASOURCE: - setDatasource((String)newValue); - return; - case DslPackage.UPDATEDAUDIT__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.UPDATEDAUDIT__LOGSINK: - setLogsink(LOGSINK_EDEFAULT); - return; - case DslPackage.UPDATEDAUDIT__DATASOURCE: - setDatasource(DATASOURCE_EDEFAULT); - return; - case DslPackage.UPDATEDAUDIT__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.UPDATEDAUDIT__LOGSINK: - return LOGSINK_EDEFAULT == null ? logsink != null : !LOGSINK_EDEFAULT.equals(logsink); - case DslPackage.UPDATEDAUDIT__DATASOURCE: - return DATASOURCE_EDEFAULT == null ? datasource != null : !DATASOURCE_EDEFAULT.equals(datasource); - case DslPackage.UPDATEDAUDIT__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (logsink: "); - result.append(logsink); - result.append(", datasource: "); - result.append(datasource); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //UpdatedauditImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/WriteCsvImpl.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/WriteCsvImpl.java deleted file mode 100644 index 72f44572..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/impl/WriteCsvImpl.java +++ /dev/null @@ -1,345 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.impl; - -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.WriteCsv; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Write Csv'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link in.handyman.dsl.impl.WriteCsvImpl#getSource Source}
  • - *
  • {@link in.handyman.dsl.impl.WriteCsvImpl#getTo To}
  • - *
  • {@link in.handyman.dsl.impl.WriteCsvImpl#getDelim Delim}
  • - *
  • {@link in.handyman.dsl.impl.WriteCsvImpl#getValue Value}
  • - *
- * - * @generated - */ -public class WriteCsvImpl extends ActionImpl implements WriteCsv -{ - /** - * The default value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected static final String SOURCE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getSource() Source}' attribute. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected String source = SOURCE_EDEFAULT; - - /** - * The default value of the '{@link #getTo() To}' attribute. - * - * - * @see #getTo() - * @generated - * @ordered - */ - protected static final String TO_EDEFAULT = null; - - /** - * The cached value of the '{@link #getTo() To}' attribute. - * - * - * @see #getTo() - * @generated - * @ordered - */ - protected String to = TO_EDEFAULT; - - /** - * The default value of the '{@link #getDelim() Delim}' attribute. - * - * - * @see #getDelim() - * @generated - * @ordered - */ - protected static final String DELIM_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDelim() Delim}' attribute. - * - * - * @see #getDelim() - * @generated - * @ordered - */ - protected String delim = DELIM_EDEFAULT; - - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected WriteCsvImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return DslPackage.Literals.WRITE_CSV; - } - - /** - * - * - * @generated - */ - public String getSource() - { - return source; - } - - /** - * - * - * @generated - */ - public void setSource(String newSource) - { - String oldSource = source; - source = newSource; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.WRITE_CSV__SOURCE, oldSource, source)); - } - - /** - * - * - * @generated - */ - public String getTo() - { - return to; - } - - /** - * - * - * @generated - */ - public void setTo(String newTo) - { - String oldTo = to; - to = newTo; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.WRITE_CSV__TO, oldTo, to)); - } - - /** - * - * - * @generated - */ - public String getDelim() - { - return delim; - } - - /** - * - * - * @generated - */ - public void setDelim(String newDelim) - { - String oldDelim = delim; - delim = newDelim; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.WRITE_CSV__DELIM, oldDelim, delim)); - } - - /** - * - * - * @generated - */ - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, DslPackage.WRITE_CSV__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case DslPackage.WRITE_CSV__SOURCE: - return getSource(); - case DslPackage.WRITE_CSV__TO: - return getTo(); - case DslPackage.WRITE_CSV__DELIM: - return getDelim(); - case DslPackage.WRITE_CSV__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case DslPackage.WRITE_CSV__SOURCE: - setSource((String)newValue); - return; - case DslPackage.WRITE_CSV__TO: - setTo((String)newValue); - return; - case DslPackage.WRITE_CSV__DELIM: - setDelim((String)newValue); - return; - case DslPackage.WRITE_CSV__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case DslPackage.WRITE_CSV__SOURCE: - setSource(SOURCE_EDEFAULT); - return; - case DslPackage.WRITE_CSV__TO: - setTo(TO_EDEFAULT); - return; - case DslPackage.WRITE_CSV__DELIM: - setDelim(DELIM_EDEFAULT); - return; - case DslPackage.WRITE_CSV__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case DslPackage.WRITE_CSV__SOURCE: - return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); - case DslPackage.WRITE_CSV__TO: - return TO_EDEFAULT == null ? to != null : !TO_EDEFAULT.equals(to); - case DslPackage.WRITE_CSV__DELIM: - return DELIM_EDEFAULT == null ? delim != null : !DELIM_EDEFAULT.equals(delim); - case DslPackage.WRITE_CSV__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (source: "); - result.append(source); - result.append(", to: "); - result.append(to); - result.append(", delim: "); - result.append(delim); - result.append(", value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //WriteCsvImpl diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/util/DslAdapterFactory.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/util/DslAdapterFactory.java deleted file mode 100644 index 3eb6dc80..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/util/DslAdapterFactory.java +++ /dev/null @@ -1,868 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.util; - -import in.handyman.dsl.Abort; -import in.handyman.dsl.Action; -import in.handyman.dsl.Callprocess; -import in.handyman.dsl.Catch; -import in.handyman.dsl.ClickSendSms; -import in.handyman.dsl.Copydata; -import in.handyman.dsl.Dogleg; -import in.handyman.dsl.Doozle; -import in.handyman.dsl.Dropfile; -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.ExecJava; -import in.handyman.dsl.Expression; -import in.handyman.dsl.FBCLead; -import in.handyman.dsl.FBFormDownload; -import in.handyman.dsl.Fetch; -import in.handyman.dsl.Finally; -import in.handyman.dsl.FirebaseDatabasePut; -import in.handyman.dsl.FirebaseReactiveNotification; -import in.handyman.dsl.Forkprocess; -import in.handyman.dsl.GooglecalPUT; -import in.handyman.dsl.GooglecontactPUT; -import in.handyman.dsl.GooglecontactSelectAll; -import in.handyman.dsl.LoadCsv; -import in.handyman.dsl.Rest; -import in.handyman.dsl.RestPart; -import in.handyman.dsl.SendMail; -import in.handyman.dsl.SlackPUT; -import in.handyman.dsl.SmsLeadSms; -import in.handyman.dsl.Spawnprocess; -import in.handyman.dsl.StartProcess; -import in.handyman.dsl.Transform; -import in.handyman.dsl.TrelloGET; -import in.handyman.dsl.TrelloPUT; -import in.handyman.dsl.Try; -import in.handyman.dsl.Updatedaudit; -import in.handyman.dsl.WriteCsv; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.emf.common.notify.Notifier; - -import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * The Adapter Factory for the model. - * It provides an adapter createXXX method for each class of the model. - * - * @see in.handyman.dsl.DslPackage - * @generated - */ -public class DslAdapterFactory extends AdapterFactoryImpl -{ - /** - * The cached model package. - * - * - * @generated - */ - protected static DslPackage modelPackage; - - /** - * Creates an instance of the adapter factory. - * - * - * @generated - */ - public DslAdapterFactory() - { - if (modelPackage == null) - { - modelPackage = DslPackage.eINSTANCE; - } - } - - /** - * Returns whether this factory is applicable for the type of the object. - * - * This implementation returns true if the object is either the model's package or is an instance object of the model. - * - * @return whether this factory is applicable for the type of the object. - * @generated - */ - @Override - public boolean isFactoryForType(Object object) - { - if (object == modelPackage) - { - return true; - } - if (object instanceof EObject) - { - return ((EObject)object).eClass().getEPackage() == modelPackage; - } - return false; - } - - /** - * The switch that delegates to the createXXX methods. - * - * - * @generated - */ - protected DslSwitch modelSwitch = - new DslSwitch() - { - @Override - public Adapter caseProcess(in.handyman.dsl.Process object) - { - return createProcessAdapter(); - } - @Override - public Adapter caseTry(Try object) - { - return createTryAdapter(); - } - @Override - public Adapter caseFinally(Finally object) - { - return createFinallyAdapter(); - } - @Override - public Adapter caseCatch(Catch object) - { - return createCatchAdapter(); - } - @Override - public Adapter caseAction(Action object) - { - return createActionAdapter(); - } - @Override - public Adapter caseSpawnprocess(Spawnprocess object) - { - return createSpawnprocessAdapter(); - } - @Override - public Adapter caseDogleg(Dogleg object) - { - return createDoglegAdapter(); - } - @Override - public Adapter caseExecJava(ExecJava object) - { - return createExecJavaAdapter(); - } - @Override - public Adapter caseFirebaseDatabasePut(FirebaseDatabasePut object) - { - return createFirebaseDatabasePutAdapter(); - } - @Override - public Adapter caseFirebaseReactiveNotification(FirebaseReactiveNotification object) - { - return createFirebaseReactiveNotificationAdapter(); - } - @Override - public Adapter caseSmsLeadSms(SmsLeadSms object) - { - return createSmsLeadSmsAdapter(); - } - @Override - public Adapter caseAbort(Abort object) - { - return createAbortAdapter(); - } - @Override - public Adapter caseGooglecontactSelectAll(GooglecontactSelectAll object) - { - return createGooglecontactSelectAllAdapter(); - } - @Override - public Adapter caseSendMail(SendMail object) - { - return createSendMailAdapter(); - } - @Override - public Adapter caseGooglecontactPUT(GooglecontactPUT object) - { - return createGooglecontactPUTAdapter(); - } - @Override - public Adapter caseGooglecalPUT(GooglecalPUT object) - { - return createGooglecalPUTAdapter(); - } - @Override - public Adapter caseFBCLead(FBCLead object) - { - return createFBCLeadAdapter(); - } - @Override - public Adapter caseFBFormDownload(FBFormDownload object) - { - return createFBFormDownloadAdapter(); - } - @Override - public Adapter caseDropfile(Dropfile object) - { - return createDropfileAdapter(); - } - @Override - public Adapter caseDoozle(Doozle object) - { - return createDoozleAdapter(); - } - @Override - public Adapter caseRest(Rest object) - { - return createRestAdapter(); - } - @Override - public Adapter caseRestPart(RestPart object) - { - return createRestPartAdapter(); - } - @Override - public Adapter caseTrelloGET(TrelloGET object) - { - return createTrelloGETAdapter(); - } - @Override - public Adapter caseTrelloPUT(TrelloPUT object) - { - return createTrelloPUTAdapter(); - } - @Override - public Adapter caseFetch(Fetch object) - { - return createFetchAdapter(); - } - @Override - public Adapter caseCallprocess(Callprocess object) - { - return createCallprocessAdapter(); - } - @Override - public Adapter caseForkprocess(Forkprocess object) - { - return createForkprocessAdapter(); - } - @Override - public Adapter caseUpdatedaudit(Updatedaudit object) - { - return createUpdatedauditAdapter(); - } - @Override - public Adapter caseClickSendSms(ClickSendSms object) - { - return createClickSendSmsAdapter(); - } - @Override - public Adapter caseSlackPUT(SlackPUT object) - { - return createSlackPUTAdapter(); - } - @Override - public Adapter caseCopydata(Copydata object) - { - return createCopydataAdapter(); - } - @Override - public Adapter caseWriteCsv(WriteCsv object) - { - return createWriteCsvAdapter(); - } - @Override - public Adapter caseLoadCsv(LoadCsv object) - { - return createLoadCsvAdapter(); - } - @Override - public Adapter caseTransform(Transform object) - { - return createTransformAdapter(); - } - @Override - public Adapter caseStartProcess(StartProcess object) - { - return createStartProcessAdapter(); - } - @Override - public Adapter caseExpression(Expression object) - { - return createExpressionAdapter(); - } - @Override - public Adapter defaultCase(EObject object) - { - return createEObjectAdapter(); - } - }; - - /** - * Creates an adapter for the target. - * - * - * @param target the object to adapt. - * @return the adapter for the target. - * @generated - */ - @Override - public Adapter createAdapter(Notifier target) - { - return modelSwitch.doSwitch((EObject)target); - } - - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Process Process}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Process - * @generated - */ - public Adapter createProcessAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Try Try}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Try - * @generated - */ - public Adapter createTryAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Finally Finally}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Finally - * @generated - */ - public Adapter createFinallyAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Catch Catch}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Catch - * @generated - */ - public Adapter createCatchAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Action Action}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Action - * @generated - */ - public Adapter createActionAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Spawnprocess Spawnprocess}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Spawnprocess - * @generated - */ - public Adapter createSpawnprocessAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Dogleg Dogleg}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Dogleg - * @generated - */ - public Adapter createDoglegAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.ExecJava Exec Java}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.ExecJava - * @generated - */ - public Adapter createExecJavaAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.FirebaseDatabasePut Firebase Database Put}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.FirebaseDatabasePut - * @generated - */ - public Adapter createFirebaseDatabasePutAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.FirebaseReactiveNotification Firebase Reactive Notification}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.FirebaseReactiveNotification - * @generated - */ - public Adapter createFirebaseReactiveNotificationAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.SmsLeadSms Sms Lead Sms}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.SmsLeadSms - * @generated - */ - public Adapter createSmsLeadSmsAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Abort Abort}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Abort - * @generated - */ - public Adapter createAbortAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.GooglecontactSelectAll Googlecontact Select All}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.GooglecontactSelectAll - * @generated - */ - public Adapter createGooglecontactSelectAllAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.SendMail Send Mail}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.SendMail - * @generated - */ - public Adapter createSendMailAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.GooglecontactPUT Googlecontact PUT}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.GooglecontactPUT - * @generated - */ - public Adapter createGooglecontactPUTAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.GooglecalPUT Googlecal PUT}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.GooglecalPUT - * @generated - */ - public Adapter createGooglecalPUTAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.FBCLead FBC Lead}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.FBCLead - * @generated - */ - public Adapter createFBCLeadAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.FBFormDownload FB Form Download}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.FBFormDownload - * @generated - */ - public Adapter createFBFormDownloadAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Dropfile Dropfile}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Dropfile - * @generated - */ - public Adapter createDropfileAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Doozle Doozle}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Doozle - * @generated - */ - public Adapter createDoozleAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Rest Rest}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Rest - * @generated - */ - public Adapter createRestAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.RestPart Rest Part}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.RestPart - * @generated - */ - public Adapter createRestPartAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.TrelloGET Trello GET}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.TrelloGET - * @generated - */ - public Adapter createTrelloGETAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.TrelloPUT Trello PUT}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.TrelloPUT - * @generated - */ - public Adapter createTrelloPUTAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Fetch Fetch}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Fetch - * @generated - */ - public Adapter createFetchAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Callprocess Callprocess}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Callprocess - * @generated - */ - public Adapter createCallprocessAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Forkprocess Forkprocess}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Forkprocess - * @generated - */ - public Adapter createForkprocessAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Updatedaudit Updatedaudit}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Updatedaudit - * @generated - */ - public Adapter createUpdatedauditAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.ClickSendSms Click Send Sms}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.ClickSendSms - * @generated - */ - public Adapter createClickSendSmsAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.SlackPUT Slack PUT}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.SlackPUT - * @generated - */ - public Adapter createSlackPUTAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Copydata Copydata}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Copydata - * @generated - */ - public Adapter createCopydataAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.WriteCsv Write Csv}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.WriteCsv - * @generated - */ - public Adapter createWriteCsvAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.LoadCsv Load Csv}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.LoadCsv - * @generated - */ - public Adapter createLoadCsvAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Transform Transform}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Transform - * @generated - */ - public Adapter createTransformAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.StartProcess Start Process}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.StartProcess - * @generated - */ - public Adapter createStartProcessAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link in.handyman.dsl.Expression Expression}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see in.handyman.dsl.Expression - * @generated - */ - public Adapter createExpressionAdapter() - { - return null; - } - - /** - * Creates a new adapter for the default case. - * - * This default implementation returns null. - * - * @return the new adapter. - * @generated - */ - public Adapter createEObjectAdapter() - { - return null; - } - -} //DslAdapterFactory diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/util/DslSwitch.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/util/DslSwitch.java deleted file mode 100644 index 80143987..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/dsl/util/DslSwitch.java +++ /dev/null @@ -1,988 +0,0 @@ -/** - * generated by Xtext 2.16.0 - */ -package in.handyman.dsl.util; - -import in.handyman.dsl.Abort; -import in.handyman.dsl.Action; -import in.handyman.dsl.Callprocess; -import in.handyman.dsl.Catch; -import in.handyman.dsl.ClickSendSms; -import in.handyman.dsl.Copydata; -import in.handyman.dsl.Dogleg; -import in.handyman.dsl.Doozle; -import in.handyman.dsl.Dropfile; -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.ExecJava; -import in.handyman.dsl.Expression; -import in.handyman.dsl.FBCLead; -import in.handyman.dsl.FBFormDownload; -import in.handyman.dsl.Fetch; -import in.handyman.dsl.Finally; -import in.handyman.dsl.FirebaseDatabasePut; -import in.handyman.dsl.FirebaseReactiveNotification; -import in.handyman.dsl.Forkprocess; -import in.handyman.dsl.GooglecalPUT; -import in.handyman.dsl.GooglecontactPUT; -import in.handyman.dsl.GooglecontactSelectAll; -import in.handyman.dsl.LoadCsv; -import in.handyman.dsl.Rest; -import in.handyman.dsl.RestPart; -import in.handyman.dsl.SendMail; -import in.handyman.dsl.SlackPUT; -import in.handyman.dsl.SmsLeadSms; -import in.handyman.dsl.Spawnprocess; -import in.handyman.dsl.StartProcess; -import in.handyman.dsl.Transform; -import in.handyman.dsl.TrelloGET; -import in.handyman.dsl.TrelloPUT; -import in.handyman.dsl.Try; -import in.handyman.dsl.Updatedaudit; -import in.handyman.dsl.WriteCsv; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EPackage; - -import org.eclipse.emf.ecore.util.Switch; - -/** - * - * The Switch for the model's inheritance hierarchy. - * It supports the call {@link #doSwitch(EObject) doSwitch(object)} - * to invoke the caseXXX method for each class of the model, - * starting with the actual class of the object - * and proceeding up the inheritance hierarchy - * until a non-null result is returned, - * which is the result of the switch. - * - * @see in.handyman.dsl.DslPackage - * @generated - */ -public class DslSwitch extends Switch -{ - /** - * The cached model package - * - * - * @generated - */ - protected static DslPackage modelPackage; - - /** - * Creates an instance of the switch. - * - * - * @generated - */ - public DslSwitch() - { - if (modelPackage == null) - { - modelPackage = DslPackage.eINSTANCE; - } - } - - /** - * Checks whether this is a switch for the given package. - * - * - * @param ePackage the package in question. - * @return whether this is a switch for the given package. - * @generated - */ - @Override - protected boolean isSwitchFor(EPackage ePackage) - { - return ePackage == modelPackage; - } - - /** - * Calls caseXXX for each class of the model until one returns a non null result; it yields that result. - * - * - * @return the first non-null result returned by a caseXXX call. - * @generated - */ - @Override - protected T doSwitch(int classifierID, EObject theEObject) - { - switch (classifierID) - { - case DslPackage.PROCESS: - { - in.handyman.dsl.Process process = (in.handyman.dsl.Process)theEObject; - T result = caseProcess(process); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.TRY: - { - Try try_ = (Try)theEObject; - T result = caseTry(try_); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.FINALLY: - { - Finally finally_ = (Finally)theEObject; - T result = caseFinally(finally_); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.CATCH: - { - Catch catch_ = (Catch)theEObject; - T result = caseCatch(catch_); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.ACTION: - { - Action action = (Action)theEObject; - T result = caseAction(action); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.SPAWNPROCESS: - { - Spawnprocess spawnprocess = (Spawnprocess)theEObject; - T result = caseSpawnprocess(spawnprocess); - if (result == null) result = caseAction(spawnprocess); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.DOGLEG: - { - Dogleg dogleg = (Dogleg)theEObject; - T result = caseDogleg(dogleg); - if (result == null) result = caseAction(dogleg); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.EXEC_JAVA: - { - ExecJava execJava = (ExecJava)theEObject; - T result = caseExecJava(execJava); - if (result == null) result = caseAction(execJava); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.FIREBASE_DATABASE_PUT: - { - FirebaseDatabasePut firebaseDatabasePut = (FirebaseDatabasePut)theEObject; - T result = caseFirebaseDatabasePut(firebaseDatabasePut); - if (result == null) result = caseAction(firebaseDatabasePut); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION: - { - FirebaseReactiveNotification firebaseReactiveNotification = (FirebaseReactiveNotification)theEObject; - T result = caseFirebaseReactiveNotification(firebaseReactiveNotification); - if (result == null) result = caseAction(firebaseReactiveNotification); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.SMS_LEAD_SMS: - { - SmsLeadSms smsLeadSms = (SmsLeadSms)theEObject; - T result = caseSmsLeadSms(smsLeadSms); - if (result == null) result = caseAction(smsLeadSms); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.ABORT: - { - Abort abort = (Abort)theEObject; - T result = caseAbort(abort); - if (result == null) result = caseAction(abort); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.GOOGLECONTACT_SELECT_ALL: - { - GooglecontactSelectAll googlecontactSelectAll = (GooglecontactSelectAll)theEObject; - T result = caseGooglecontactSelectAll(googlecontactSelectAll); - if (result == null) result = caseAction(googlecontactSelectAll); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.SEND_MAIL: - { - SendMail sendMail = (SendMail)theEObject; - T result = caseSendMail(sendMail); - if (result == null) result = caseAction(sendMail); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.GOOGLECONTACT_PUT: - { - GooglecontactPUT googlecontactPUT = (GooglecontactPUT)theEObject; - T result = caseGooglecontactPUT(googlecontactPUT); - if (result == null) result = caseAction(googlecontactPUT); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.GOOGLECAL_PUT: - { - GooglecalPUT googlecalPUT = (GooglecalPUT)theEObject; - T result = caseGooglecalPUT(googlecalPUT); - if (result == null) result = caseAction(googlecalPUT); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.FBC_LEAD: - { - FBCLead fbcLead = (FBCLead)theEObject; - T result = caseFBCLead(fbcLead); - if (result == null) result = caseAction(fbcLead); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.FB_FORM_DOWNLOAD: - { - FBFormDownload fbFormDownload = (FBFormDownload)theEObject; - T result = caseFBFormDownload(fbFormDownload); - if (result == null) result = caseAction(fbFormDownload); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.DROPFILE: - { - Dropfile dropfile = (Dropfile)theEObject; - T result = caseDropfile(dropfile); - if (result == null) result = caseAction(dropfile); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.DOOZLE: - { - Doozle doozle = (Doozle)theEObject; - T result = caseDoozle(doozle); - if (result == null) result = caseAction(doozle); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.REST: - { - Rest rest = (Rest)theEObject; - T result = caseRest(rest); - if (result == null) result = caseAction(rest); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.REST_PART: - { - RestPart restPart = (RestPart)theEObject; - T result = caseRestPart(restPart); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.TRELLO_GET: - { - TrelloGET trelloGET = (TrelloGET)theEObject; - T result = caseTrelloGET(trelloGET); - if (result == null) result = caseAction(trelloGET); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.TRELLO_PUT: - { - TrelloPUT trelloPUT = (TrelloPUT)theEObject; - T result = caseTrelloPUT(trelloPUT); - if (result == null) result = caseAction(trelloPUT); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.FETCH: - { - Fetch fetch = (Fetch)theEObject; - T result = caseFetch(fetch); - if (result == null) result = caseAction(fetch); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.CALLPROCESS: - { - Callprocess callprocess = (Callprocess)theEObject; - T result = caseCallprocess(callprocess); - if (result == null) result = caseAction(callprocess); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.FORKPROCESS: - { - Forkprocess forkprocess = (Forkprocess)theEObject; - T result = caseForkprocess(forkprocess); - if (result == null) result = caseAction(forkprocess); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.UPDATEDAUDIT: - { - Updatedaudit updatedaudit = (Updatedaudit)theEObject; - T result = caseUpdatedaudit(updatedaudit); - if (result == null) result = caseAction(updatedaudit); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.CLICK_SEND_SMS: - { - ClickSendSms clickSendSms = (ClickSendSms)theEObject; - T result = caseClickSendSms(clickSendSms); - if (result == null) result = caseAction(clickSendSms); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.SLACK_PUT: - { - SlackPUT slackPUT = (SlackPUT)theEObject; - T result = caseSlackPUT(slackPUT); - if (result == null) result = caseAction(slackPUT); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.COPYDATA: - { - Copydata copydata = (Copydata)theEObject; - T result = caseCopydata(copydata); - if (result == null) result = caseAction(copydata); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.WRITE_CSV: - { - WriteCsv writeCsv = (WriteCsv)theEObject; - T result = caseWriteCsv(writeCsv); - if (result == null) result = caseAction(writeCsv); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.LOAD_CSV: - { - LoadCsv loadCsv = (LoadCsv)theEObject; - T result = caseLoadCsv(loadCsv); - if (result == null) result = caseAction(loadCsv); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.TRANSFORM: - { - Transform transform = (Transform)theEObject; - T result = caseTransform(transform); - if (result == null) result = caseAction(transform); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.START_PROCESS: - { - StartProcess startProcess = (StartProcess)theEObject; - T result = caseStartProcess(startProcess); - if (result == null) result = defaultCase(theEObject); - return result; - } - case DslPackage.EXPRESSION: - { - Expression expression = (Expression)theEObject; - T result = caseExpression(expression); - if (result == null) result = defaultCase(theEObject); - return result; - } - default: return defaultCase(theEObject); - } - } - - /** - * Returns the result of interpreting the object as an instance of 'Process'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Process'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseProcess(in.handyman.dsl.Process object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Try'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Try'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseTry(Try object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Finally'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Finally'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseFinally(Finally object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Catch'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Catch'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseCatch(Catch object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Action'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Action'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseAction(Action object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Spawnprocess'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Spawnprocess'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseSpawnprocess(Spawnprocess object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Dogleg'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Dogleg'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseDogleg(Dogleg object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Exec Java'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Exec Java'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseExecJava(ExecJava object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Firebase Database Put'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Firebase Database Put'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseFirebaseDatabasePut(FirebaseDatabasePut object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Firebase Reactive Notification'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Firebase Reactive Notification'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseFirebaseReactiveNotification(FirebaseReactiveNotification object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Sms Lead Sms'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Sms Lead Sms'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseSmsLeadSms(SmsLeadSms object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Abort'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Abort'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseAbort(Abort object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Googlecontact Select All'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Googlecontact Select All'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseGooglecontactSelectAll(GooglecontactSelectAll object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Send Mail'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Send Mail'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseSendMail(SendMail object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Googlecontact PUT'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Googlecontact PUT'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseGooglecontactPUT(GooglecontactPUT object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Googlecal PUT'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Googlecal PUT'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseGooglecalPUT(GooglecalPUT object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'FBC Lead'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'FBC Lead'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseFBCLead(FBCLead object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'FB Form Download'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'FB Form Download'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseFBFormDownload(FBFormDownload object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Dropfile'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Dropfile'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseDropfile(Dropfile object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Doozle'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Doozle'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseDoozle(Doozle object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Rest'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Rest'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseRest(Rest object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Rest Part'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Rest Part'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseRestPart(RestPart object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Trello GET'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Trello GET'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseTrelloGET(TrelloGET object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Trello PUT'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Trello PUT'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseTrelloPUT(TrelloPUT object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Fetch'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Fetch'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseFetch(Fetch object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Callprocess'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Callprocess'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseCallprocess(Callprocess object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Forkprocess'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Forkprocess'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseForkprocess(Forkprocess object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Updatedaudit'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Updatedaudit'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseUpdatedaudit(Updatedaudit object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Click Send Sms'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Click Send Sms'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseClickSendSms(ClickSendSms object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Slack PUT'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Slack PUT'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseSlackPUT(SlackPUT object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Copydata'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Copydata'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseCopydata(Copydata object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Write Csv'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Write Csv'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseWriteCsv(WriteCsv object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Load Csv'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Load Csv'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseLoadCsv(LoadCsv object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Transform'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Transform'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseTransform(Transform object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Start Process'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Start Process'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseStartProcess(StartProcess object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Expression'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Expression'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseExpression(Expression object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'EObject'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch, but this is the last case anyway. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'EObject'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) - * @generated - */ - @Override - public T defaultCase(EObject object) - { - return null; - } - -} //DslSwitch diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/DslAntlrTokenFileProvider.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/DslAntlrTokenFileProvider.java deleted file mode 100644 index f5b12251..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/DslAntlrTokenFileProvider.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman.parser.antlr; - -import java.io.InputStream; -import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; - -public class DslAntlrTokenFileProvider implements IAntlrTokenFileProvider { - - @Override - public InputStream getAntlrTokenFile() { - ClassLoader classLoader = getClass().getClassLoader(); - return classLoader.getResourceAsStream("in/handyman/parser/antlr/internal/InternalDsl.tokens"); - } -} diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/DslParser.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/DslParser.java deleted file mode 100644 index f1579b06..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/DslParser.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman.parser.antlr; - -import com.google.inject.Inject; -import in.handyman.parser.antlr.internal.InternalDslParser; -import in.handyman.services.DslGrammarAccess; -import org.eclipse.xtext.parser.antlr.AbstractAntlrParser; -import org.eclipse.xtext.parser.antlr.XtextTokenStream; - -public class DslParser extends AbstractAntlrParser { - - @Inject - private DslGrammarAccess grammarAccess; - - @Override - protected void setInitialHiddenTokens(XtextTokenStream tokenStream) { - tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT"); - } - - - @Override - protected InternalDslParser createParser(XtextTokenStream stream) { - return new InternalDslParser(stream, getGrammarAccess()); - } - - @Override - protected String getDefaultRuleName() { - return "Process"; - } - - public DslGrammarAccess getGrammarAccess() { - return this.grammarAccess; - } - - public void setGrammarAccess(DslGrammarAccess grammarAccess) { - this.grammarAccess = grammarAccess; - } -} diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDsl.g b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDsl.g deleted file mode 100644 index ea316bba..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDsl.g +++ /dev/null @@ -1,6047 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -grammar InternalDsl; - -options { - superClass=AbstractInternalAntlrParser; -} - -@lexer::header { -package in.handyman.parser.antlr.internal; - -// Hack: Use our own Lexer superclass by means of import. -// Currently there is no other way to specify the superclass for the lexer. -import org.eclipse.xtext.parser.antlr.Lexer; -} - -@parser::header { -package in.handyman.parser.antlr.internal; - -import org.eclipse.xtext.*; -import org.eclipse.xtext.parser.*; -import org.eclipse.xtext.parser.impl.*; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; -import org.eclipse.xtext.parser.antlr.XtextTokenStream; -import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; -import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken; -import in.handyman.services.DslGrammarAccess; - -} - -@parser::members { - - private DslGrammarAccess grammarAccess; - - public InternalDslParser(TokenStream input, DslGrammarAccess grammarAccess) { - this(input); - this.grammarAccess = grammarAccess; - registerRules(grammarAccess.getGrammar()); - } - - @Override - protected String getFirstRuleName() { - return "Process"; - } - - @Override - protected DslGrammarAccess getGrammarAccess() { - return grammarAccess; - } - -} - -@rulecatch { - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } -} - -// Entry rule entryRuleProcess -entryRuleProcess returns [EObject current=null]: - { newCompositeNode(grammarAccess.getProcessRule()); } - iv_ruleProcess=ruleProcess - { $current=$iv_ruleProcess.current; } - EOF; - -// Rule Process -ruleProcess returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='process' - { - newLeafNode(otherlv_0, grammarAccess.getProcessAccess().getProcessKeyword_0()); - } - ( - ( - lv_name_1_0=RULE_STRING - { - newLeafNode(lv_name_1_0, grammarAccess.getProcessAccess().getNameSTRINGTerminalRuleCall_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getProcessRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_2='{' - { - newLeafNode(otherlv_2, grammarAccess.getProcessAccess().getLeftCurlyBracketKeyword_2()); - } - ( - ( - { - newCompositeNode(grammarAccess.getProcessAccess().getTryTryParserRuleCall_3_0()); - } - lv_try_3_0=ruleTry - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getProcessRule()); - } - set( - $current, - "try", - lv_try_3_0, - "in.handyman.Dsl.Try"); - afterParserOrEnumRuleCall(); - } - ) - ) - ( - ( - { - newCompositeNode(grammarAccess.getProcessAccess().getCatchCatchParserRuleCall_4_0()); - } - lv_catch_4_0=ruleCatch - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getProcessRule()); - } - set( - $current, - "catch", - lv_catch_4_0, - "in.handyman.Dsl.Catch"); - afterParserOrEnumRuleCall(); - } - ) - ) - ( - ( - { - newCompositeNode(grammarAccess.getProcessAccess().getFinallyFinallyParserRuleCall_5_0()); - } - lv_finally_5_0=ruleFinally - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getProcessRule()); - } - set( - $current, - "finally", - lv_finally_5_0, - "in.handyman.Dsl.Finally"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_6='}' - { - newLeafNode(otherlv_6, grammarAccess.getProcessAccess().getRightCurlyBracketKeyword_6()); - } - ) -; - -// Entry rule entryRuleTry -entryRuleTry returns [EObject current=null]: - { newCompositeNode(grammarAccess.getTryRule()); } - iv_ruleTry=ruleTry - { $current=$iv_ruleTry.current; } - EOF; - -// Rule Try -ruleTry returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='try' - { - newLeafNode(otherlv_0, grammarAccess.getTryAccess().getTryKeyword_0()); - } - ( - ( - lv_name_1_0=RULE_ID - { - newLeafNode(lv_name_1_0, grammarAccess.getTryAccess().getNameIDTerminalRuleCall_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTryRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.ID"); - } - ) - ) - otherlv_2='{' - { - newLeafNode(otherlv_2, grammarAccess.getTryAccess().getLeftCurlyBracketKeyword_2()); - } - ( - ( - { - newCompositeNode(grammarAccess.getTryAccess().getActionActionParserRuleCall_3_0()); - } - lv_action_3_0=ruleAction - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getTryRule()); - } - add( - $current, - "action", - lv_action_3_0, - "in.handyman.Dsl.Action"); - afterParserOrEnumRuleCall(); - } - ) - )* - otherlv_4='}' - { - newLeafNode(otherlv_4, grammarAccess.getTryAccess().getRightCurlyBracketKeyword_4()); - } - ) -; - -// Entry rule entryRuleFinally -entryRuleFinally returns [EObject current=null]: - { newCompositeNode(grammarAccess.getFinallyRule()); } - iv_ruleFinally=ruleFinally - { $current=$iv_ruleFinally.current; } - EOF; - -// Rule Finally -ruleFinally returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='finally' - { - newLeafNode(otherlv_0, grammarAccess.getFinallyAccess().getFinallyKeyword_0()); - } - ( - ( - lv_name_1_0=RULE_ID - { - newLeafNode(lv_name_1_0, grammarAccess.getFinallyAccess().getNameIDTerminalRuleCall_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFinallyRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.ID"); - } - ) - ) - otherlv_2='{' - { - newLeafNode(otherlv_2, grammarAccess.getFinallyAccess().getLeftCurlyBracketKeyword_2()); - } - ( - ( - { - newCompositeNode(grammarAccess.getFinallyAccess().getActionActionParserRuleCall_3_0()); - } - lv_action_3_0=ruleAction - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getFinallyRule()); - } - add( - $current, - "action", - lv_action_3_0, - "in.handyman.Dsl.Action"); - afterParserOrEnumRuleCall(); - } - ) - )* - otherlv_4='}' - { - newLeafNode(otherlv_4, grammarAccess.getFinallyAccess().getRightCurlyBracketKeyword_4()); - } - ) -; - -// Entry rule entryRuleCatch -entryRuleCatch returns [EObject current=null]: - { newCompositeNode(grammarAccess.getCatchRule()); } - iv_ruleCatch=ruleCatch - { $current=$iv_ruleCatch.current; } - EOF; - -// Rule Catch -ruleCatch returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='catch' - { - newLeafNode(otherlv_0, grammarAccess.getCatchAccess().getCatchKeyword_0()); - } - ( - ( - lv_name_1_0=RULE_ID - { - newLeafNode(lv_name_1_0, grammarAccess.getCatchAccess().getNameIDTerminalRuleCall_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCatchRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.ID"); - } - ) - ) - otherlv_2='{' - { - newLeafNode(otherlv_2, grammarAccess.getCatchAccess().getLeftCurlyBracketKeyword_2()); - } - ( - ( - { - newCompositeNode(grammarAccess.getCatchAccess().getActionActionParserRuleCall_3_0()); - } - lv_action_3_0=ruleAction - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getCatchRule()); - } - add( - $current, - "action", - lv_action_3_0, - "in.handyman.Dsl.Action"); - afterParserOrEnumRuleCall(); - } - ) - )* - otherlv_4='}' - { - newLeafNode(otherlv_4, grammarAccess.getCatchAccess().getRightCurlyBracketKeyword_4()); - } - ) -; - -// Entry rule entryRuleAction -entryRuleAction returns [EObject current=null]: - { newCompositeNode(grammarAccess.getActionRule()); } - iv_ruleAction=ruleAction - { $current=$iv_ruleAction.current; } - EOF; - -// Rule Action -ruleAction returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - { - newCompositeNode(grammarAccess.getActionAccess().getCopydataParserRuleCall_0()); - } - this_Copydata_0=ruleCopydata - { - $current = $this_Copydata_0.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getLoadCsvParserRuleCall_1()); - } - this_LoadCsv_1=ruleLoadCsv - { - $current = $this_LoadCsv_1.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getWriteCsvParserRuleCall_2()); - } - this_WriteCsv_2=ruleWriteCsv - { - $current = $this_WriteCsv_2.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getTransformParserRuleCall_3()); - } - this_Transform_3=ruleTransform - { - $current = $this_Transform_3.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getGooglecalPUTParserRuleCall_4()); - } - this_GooglecalPUT_4=ruleGooglecalPUT - { - $current = $this_GooglecalPUT_4.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getSlackPUTParserRuleCall_5()); - } - this_SlackPUT_5=ruleSlackPUT - { - $current = $this_SlackPUT_5.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getClickSendSmsParserRuleCall_6()); - } - this_ClickSendSms_6=ruleClickSendSms - { - $current = $this_ClickSendSms_6.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getUpdatedauditParserRuleCall_7()); - } - this_Updatedaudit_7=ruleUpdatedaudit - { - $current = $this_Updatedaudit_7.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getCallprocessParserRuleCall_8()); - } - this_Callprocess_8=ruleCallprocess - { - $current = $this_Callprocess_8.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getForkprocessParserRuleCall_9()); - } - this_Forkprocess_9=ruleForkprocess - { - $current = $this_Forkprocess_9.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getFetchParserRuleCall_10()); - } - this_Fetch_10=ruleFetch - { - $current = $this_Fetch_10.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getTrelloPUTParserRuleCall_11()); - } - this_TrelloPUT_11=ruleTrelloPUT - { - $current = $this_TrelloPUT_11.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getTrelloGETParserRuleCall_12()); - } - this_TrelloGET_12=ruleTrelloGET - { - $current = $this_TrelloGET_12.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getRestParserRuleCall_13()); - } - this_Rest_13=ruleRest - { - $current = $this_Rest_13.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getDoozleParserRuleCall_14()); - } - this_Doozle_14=ruleDoozle - { - $current = $this_Doozle_14.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getDropfileParserRuleCall_15()); - } - this_Dropfile_15=ruleDropfile - { - $current = $this_Dropfile_15.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getFBCLeadParserRuleCall_16()); - } - this_FBCLead_16=ruleFBCLead - { - $current = $this_FBCLead_16.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getFBFormDownloadParserRuleCall_17()); - } - this_FBFormDownload_17=ruleFBFormDownload - { - $current = $this_FBFormDownload_17.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getSendMailParserRuleCall_18()); - } - this_SendMail_18=ruleSendMail - { - $current = $this_SendMail_18.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getGooglecontactPUTParserRuleCall_19()); - } - this_GooglecontactPUT_19=ruleGooglecontactPUT - { - $current = $this_GooglecontactPUT_19.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getGooglecontactSelectAllParserRuleCall_20()); - } - this_GooglecontactSelectAll_20=ruleGooglecontactSelectAll - { - $current = $this_GooglecontactSelectAll_20.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getAbortParserRuleCall_21()); - } - this_Abort_21=ruleAbort - { - $current = $this_Abort_21.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getSmsLeadSmsParserRuleCall_22()); - } - this_SmsLeadSms_22=ruleSmsLeadSms - { - $current = $this_SmsLeadSms_22.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getFirebaseReactiveNotificationParserRuleCall_23()); - } - this_FirebaseReactiveNotification_23=ruleFirebaseReactiveNotification - { - $current = $this_FirebaseReactiveNotification_23.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getFirebaseDatabasePutParserRuleCall_24()); - } - this_FirebaseDatabasePut_24=ruleFirebaseDatabasePut - { - $current = $this_FirebaseDatabasePut_24.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getExecJavaParserRuleCall_25()); - } - this_ExecJava_25=ruleExecJava - { - $current = $this_ExecJava_25.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getDoglegParserRuleCall_26()); - } - this_Dogleg_26=ruleDogleg - { - $current = $this_Dogleg_26.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getActionAccess().getSpawnprocessParserRuleCall_27()); - } - this_Spawnprocess_27=ruleSpawnprocess - { - $current = $this_Spawnprocess_27.current; - afterParserOrEnumRuleCall(); - } - ) -; - -// Entry rule entryRuleSpawnprocess -entryRuleSpawnprocess returns [EObject current=null]: - { newCompositeNode(grammarAccess.getSpawnprocessRule()); } - iv_ruleSpawnprocess=ruleSpawnprocess - { $current=$iv_ruleSpawnprocess.current; } - EOF; - -// Rule Spawnprocess -ruleSpawnprocess returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='spawn' - { - newLeafNode(otherlv_0, grammarAccess.getSpawnprocessAccess().getSpawnKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getSpawnprocessAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getSpawnprocessAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSpawnprocessRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='with-target' - { - newLeafNode(otherlv_3, grammarAccess.getSpawnprocessAccess().getWithTargetKeyword_3()); - } - ( - ( - lv_target_4_0=RULE_STRING - { - newLeafNode(lv_target_4_0, grammarAccess.getSpawnprocessAccess().getTargetSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSpawnprocessRule()); - } - setWithLastConsumed( - $current, - "target", - lv_target_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='from-file' - { - newLeafNode(otherlv_5, grammarAccess.getSpawnprocessAccess().getFromFileKeyword_5()); - } - ( - ( - lv_source_6_0=RULE_STRING - { - newLeafNode(lv_source_6_0, grammarAccess.getSpawnprocessAccess().getSourceSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSpawnprocessRule()); - } - setWithLastConsumed( - $current, - "source", - lv_source_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='on-condition' - { - newLeafNode(otherlv_7, grammarAccess.getSpawnprocessAccess().getOnConditionKeyword_7()); - } - ( - ( - { - newCompositeNode(grammarAccess.getSpawnprocessAccess().getConditionExpressionParserRuleCall_8_0()); - } - lv_condition_8_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getSpawnprocessRule()); - } - set( - $current, - "condition", - lv_condition_8_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleDogleg -entryRuleDogleg returns [EObject current=null]: - { newCompositeNode(grammarAccess.getDoglegRule()); } - iv_ruleDogleg=ruleDogleg - { $current=$iv_ruleDogleg.current; } - EOF; - -// Rule Dogleg -ruleDogleg returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='dogleg' - { - newLeafNode(otherlv_0, grammarAccess.getDoglegAccess().getDoglegKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getDoglegAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getDoglegAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getDoglegRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='use-parent-context' - { - newLeafNode(otherlv_3, grammarAccess.getDoglegAccess().getUseParentContextKeyword_3()); - } - ( - ( - lv_inheritContext_4_0=RULE_STRING - { - newLeafNode(lv_inheritContext_4_0, grammarAccess.getDoglegAccess().getInheritContextSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getDoglegRule()); - } - setWithLastConsumed( - $current, - "inheritContext", - lv_inheritContext_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='using' - { - newLeafNode(otherlv_5, grammarAccess.getDoglegAccess().getUsingKeyword_5()); - } - otherlv_6='{' - { - newLeafNode(otherlv_6, grammarAccess.getDoglegAccess().getLeftCurlyBracketKeyword_6()); - } - ( - ( - { - newCompositeNode(grammarAccess.getDoglegAccess().getProcessListStartProcessParserRuleCall_7_0()); - } - lv_processList_7_0=ruleStartProcess - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getDoglegRule()); - } - add( - $current, - "processList", - lv_processList_7_0, - "in.handyman.Dsl.StartProcess"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_8='}' - { - newLeafNode(otherlv_8, grammarAccess.getDoglegAccess().getRightCurlyBracketKeyword_8()); - } - otherlv_9='on-condition' - { - newLeafNode(otherlv_9, grammarAccess.getDoglegAccess().getOnConditionKeyword_9()); - } - ( - ( - { - newCompositeNode(grammarAccess.getDoglegAccess().getConditionExpressionParserRuleCall_10_0()); - } - lv_condition_10_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getDoglegRule()); - } - set( - $current, - "condition", - lv_condition_10_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleExecJava -entryRuleExecJava returns [EObject current=null]: - { newCompositeNode(grammarAccess.getExecJavaRule()); } - iv_ruleExecJava=ruleExecJava - { $current=$iv_ruleExecJava.current; } - EOF; - -// Rule ExecJava -ruleExecJava returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='java' - { - newLeafNode(otherlv_0, grammarAccess.getExecJavaAccess().getJavaKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getExecJavaAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getExecJavaAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getExecJavaRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='using' - { - newLeafNode(otherlv_3, grammarAccess.getExecJavaAccess().getUsingKeyword_3()); - } - ( - ( - lv_classFqn_4_0=RULE_STRING - { - newLeafNode(lv_classFqn_4_0, grammarAccess.getExecJavaAccess().getClassFqnSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getExecJavaRule()); - } - setWithLastConsumed( - $current, - "classFqn", - lv_classFqn_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='name-sake-db' - { - newLeafNode(otherlv_5, grammarAccess.getExecJavaAccess().getNameSakeDbKeyword_5()); - } - ( - ( - lv_dbSrc_6_0=RULE_STRING - { - newLeafNode(lv_dbSrc_6_0, grammarAccess.getExecJavaAccess().getDbSrcSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getExecJavaRule()); - } - setWithLastConsumed( - $current, - "dbSrc", - lv_dbSrc_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='{' - { - newLeafNode(otherlv_7, grammarAccess.getExecJavaAccess().getLeftCurlyBracketKeyword_7()); - } - ( - ( - lv_value_8_0=RULE_STRING - { - newLeafNode(lv_value_8_0, grammarAccess.getExecJavaAccess().getValueSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getExecJavaRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='}' - { - newLeafNode(otherlv_9, grammarAccess.getExecJavaAccess().getRightCurlyBracketKeyword_9()); - } - otherlv_10='on-condition' - { - newLeafNode(otherlv_10, grammarAccess.getExecJavaAccess().getOnConditionKeyword_10()); - } - ( - ( - { - newCompositeNode(grammarAccess.getExecJavaAccess().getConditionExpressionParserRuleCall_11_0()); - } - lv_condition_11_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getExecJavaRule()); - } - set( - $current, - "condition", - lv_condition_11_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleFirebaseDatabasePut -entryRuleFirebaseDatabasePut returns [EObject current=null]: - { newCompositeNode(grammarAccess.getFirebaseDatabasePutRule()); } - iv_ruleFirebaseDatabasePut=ruleFirebaseDatabasePut - { $current=$iv_ruleFirebaseDatabasePut.current; } - EOF; - -// Rule FirebaseDatabasePut -ruleFirebaseDatabasePut returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='fbdp' - { - newLeafNode(otherlv_0, grammarAccess.getFirebaseDatabasePutAccess().getFbdpKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getFirebaseDatabasePutAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getFirebaseDatabasePutAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='on' - { - newLeafNode(otherlv_3, grammarAccess.getFirebaseDatabasePutAccess().getOnKeyword_3()); - } - ( - ( - lv_url_4_0=RULE_STRING - { - newLeafNode(lv_url_4_0, grammarAccess.getFirebaseDatabasePutAccess().getUrlSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - $current, - "url", - lv_url_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='auth-by' - { - newLeafNode(otherlv_5, grammarAccess.getFirebaseDatabasePutAccess().getAuthByKeyword_5()); - } - ( - ( - lv_fbjson_6_0=RULE_STRING - { - newLeafNode(lv_fbjson_6_0, grammarAccess.getFirebaseDatabasePutAccess().getFbjsonSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - $current, - "fbjson", - lv_fbjson_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='for-group' - { - newLeafNode(otherlv_7, grammarAccess.getFirebaseDatabasePutAccess().getForGroupKeyword_7()); - } - ( - ( - lv_groupPath_8_0=RULE_STRING - { - newLeafNode(lv_groupPath_8_0, grammarAccess.getFirebaseDatabasePutAccess().getGroupPathSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - $current, - "groupPath", - lv_groupPath_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='from-source' - { - newLeafNode(otherlv_9, grammarAccess.getFirebaseDatabasePutAccess().getFromSourceKeyword_9()); - } - ( - ( - lv_dbSrc_10_0=RULE_STRING - { - newLeafNode(lv_dbSrc_10_0, grammarAccess.getFirebaseDatabasePutAccess().getDbSrcSTRINGTerminalRuleCall_10_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - $current, - "dbSrc", - lv_dbSrc_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_11='with-class' - { - newLeafNode(otherlv_11, grammarAccess.getFirebaseDatabasePutAccess().getWithClassKeyword_11()); - } - ( - ( - lv_classFqn_12_0=RULE_STRING - { - newLeafNode(lv_classFqn_12_0, grammarAccess.getFirebaseDatabasePutAccess().getClassFqnSTRINGTerminalRuleCall_12_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - $current, - "classFqn", - lv_classFqn_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_13='using' - { - newLeafNode(otherlv_13, grammarAccess.getFirebaseDatabasePutAccess().getUsingKeyword_13()); - } - otherlv_14='{' - { - newLeafNode(otherlv_14, grammarAccess.getFirebaseDatabasePutAccess().getLeftCurlyBracketKeyword_14()); - } - ( - ( - lv_value_15_0=RULE_STRING - { - newLeafNode(lv_value_15_0, grammarAccess.getFirebaseDatabasePutAccess().getValueSTRINGTerminalRuleCall_15_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_15_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_16='}' - { - newLeafNode(otherlv_16, grammarAccess.getFirebaseDatabasePutAccess().getRightCurlyBracketKeyword_16()); - } - otherlv_17='on-condition' - { - newLeafNode(otherlv_17, grammarAccess.getFirebaseDatabasePutAccess().getOnConditionKeyword_17()); - } - ( - ( - { - newCompositeNode(grammarAccess.getFirebaseDatabasePutAccess().getConditionExpressionParserRuleCall_18_0()); - } - lv_condition_18_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getFirebaseDatabasePutRule()); - } - set( - $current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleFirebaseReactiveNotification -entryRuleFirebaseReactiveNotification returns [EObject current=null]: - { newCompositeNode(grammarAccess.getFirebaseReactiveNotificationRule()); } - iv_ruleFirebaseReactiveNotification=ruleFirebaseReactiveNotification - { $current=$iv_ruleFirebaseReactiveNotification.current; } - EOF; - -// Rule FirebaseReactiveNotification -ruleFirebaseReactiveNotification returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='fbrn' - { - newLeafNode(otherlv_0, grammarAccess.getFirebaseReactiveNotificationAccess().getFbrnKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getFirebaseReactiveNotificationAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getFirebaseReactiveNotificationAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='on' - { - newLeafNode(otherlv_3, grammarAccess.getFirebaseReactiveNotificationAccess().getOnKeyword_3()); - } - ( - ( - lv_url_4_0=RULE_STRING - { - newLeafNode(lv_url_4_0, grammarAccess.getFirebaseReactiveNotificationAccess().getUrlSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - $current, - "url", - lv_url_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='auth-by' - { - newLeafNode(otherlv_5, grammarAccess.getFirebaseReactiveNotificationAccess().getAuthByKeyword_5()); - } - ( - ( - lv_fbjson_6_0=RULE_STRING - { - newLeafNode(lv_fbjson_6_0, grammarAccess.getFirebaseReactiveNotificationAccess().getFbjsonSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - $current, - "fbjson", - lv_fbjson_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='for-group' - { - newLeafNode(otherlv_7, grammarAccess.getFirebaseReactiveNotificationAccess().getForGroupKeyword_7()); - } - ( - ( - lv_groupPath_8_0=RULE_STRING - { - newLeafNode(lv_groupPath_8_0, grammarAccess.getFirebaseReactiveNotificationAccess().getGroupPathSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - $current, - "groupPath", - lv_groupPath_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='with-class' - { - newLeafNode(otherlv_9, grammarAccess.getFirebaseReactiveNotificationAccess().getWithClassKeyword_9()); - } - ( - ( - lv_classFqn_10_0=RULE_STRING - { - newLeafNode(lv_classFqn_10_0, grammarAccess.getFirebaseReactiveNotificationAccess().getClassFqnSTRINGTerminalRuleCall_10_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - $current, - "classFqn", - lv_classFqn_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_11='using' - { - newLeafNode(otherlv_11, grammarAccess.getFirebaseReactiveNotificationAccess().getUsingKeyword_11()); - } - ( - ( - lv_dbSrc_12_0=RULE_STRING - { - newLeafNode(lv_dbSrc_12_0, grammarAccess.getFirebaseReactiveNotificationAccess().getDbSrcSTRINGTerminalRuleCall_12_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - $current, - "dbSrc", - lv_dbSrc_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_13='on-condition' - { - newLeafNode(otherlv_13, grammarAccess.getFirebaseReactiveNotificationAccess().getOnConditionKeyword_13()); - } - ( - ( - { - newCompositeNode(grammarAccess.getFirebaseReactiveNotificationAccess().getConditionExpressionParserRuleCall_14_0()); - } - lv_condition_14_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getFirebaseReactiveNotificationRule()); - } - set( - $current, - "condition", - lv_condition_14_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleSmsLeadSms -entryRuleSmsLeadSms returns [EObject current=null]: - { newCompositeNode(grammarAccess.getSmsLeadSmsRule()); } - iv_ruleSmsLeadSms=ruleSmsLeadSms - { $current=$iv_ruleSmsLeadSms.current; } - EOF; - -// Rule SmsLeadSms -ruleSmsLeadSms returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='smsleadssms' - { - newLeafNode(otherlv_0, grammarAccess.getSmsLeadSmsAccess().getSmsleadssmsKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getSmsLeadSmsAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getSmsLeadSmsAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='on' - { - newLeafNode(otherlv_3, grammarAccess.getSmsLeadSmsAccess().getOnKeyword_3()); - } - ( - ( - lv_url_4_0=RULE_STRING - { - newLeafNode(lv_url_4_0, grammarAccess.getSmsLeadSmsAccess().getUrlSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - $current, - "url", - lv_url_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='with-sender' - { - newLeafNode(otherlv_5, grammarAccess.getSmsLeadSmsAccess().getWithSenderKeyword_5()); - } - ( - ( - lv_sender_6_0=RULE_STRING - { - newLeafNode(lv_sender_6_0, grammarAccess.getSmsLeadSmsAccess().getSenderSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - $current, - "sender", - lv_sender_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='through-account' - { - newLeafNode(otherlv_7, grammarAccess.getSmsLeadSmsAccess().getThroughAccountKeyword_7()); - } - ( - ( - lv_account_8_0=RULE_STRING - { - newLeafNode(lv_account_8_0, grammarAccess.getSmsLeadSmsAccess().getAccountSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - $current, - "account", - lv_account_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='secured-by' - { - newLeafNode(otherlv_9, grammarAccess.getSmsLeadSmsAccess().getSecuredByKeyword_9()); - } - ( - ( - lv_privateKey_10_0=RULE_STRING - { - newLeafNode(lv_privateKey_10_0, grammarAccess.getSmsLeadSmsAccess().getPrivateKeySTRINGTerminalRuleCall_10_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - $current, - "privateKey", - lv_privateKey_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_11='from-source' - { - newLeafNode(otherlv_11, grammarAccess.getSmsLeadSmsAccess().getFromSourceKeyword_11()); - } - ( - ( - lv_dbSrc_12_0=RULE_STRING - { - newLeafNode(lv_dbSrc_12_0, grammarAccess.getSmsLeadSmsAccess().getDbSrcSTRINGTerminalRuleCall_12_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - $current, - "dbSrc", - lv_dbSrc_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_13='using' - { - newLeafNode(otherlv_13, grammarAccess.getSmsLeadSmsAccess().getUsingKeyword_13()); - } - otherlv_14='{' - { - newLeafNode(otherlv_14, grammarAccess.getSmsLeadSmsAccess().getLeftCurlyBracketKeyword_14()); - } - ( - ( - lv_value_15_0=RULE_STRING - { - newLeafNode(lv_value_15_0, grammarAccess.getSmsLeadSmsAccess().getValueSTRINGTerminalRuleCall_15_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_15_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_16='}' - { - newLeafNode(otherlv_16, grammarAccess.getSmsLeadSmsAccess().getRightCurlyBracketKeyword_16()); - } - otherlv_17='on-condition' - { - newLeafNode(otherlv_17, grammarAccess.getSmsLeadSmsAccess().getOnConditionKeyword_17()); - } - ( - ( - { - newCompositeNode(grammarAccess.getSmsLeadSmsAccess().getConditionExpressionParserRuleCall_18_0()); - } - lv_condition_18_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getSmsLeadSmsRule()); - } - set( - $current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_19='do-dryrun-with' - { - newLeafNode(otherlv_19, grammarAccess.getSmsLeadSmsAccess().getDoDryrunWithKeyword_19()); - } - ( - ( - lv_dryrunNumber_20_0=RULE_STRING - { - newLeafNode(lv_dryrunNumber_20_0, grammarAccess.getSmsLeadSmsAccess().getDryrunNumberSTRINGTerminalRuleCall_20_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - $current, - "dryrunNumber", - lv_dryrunNumber_20_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - ) -; - -// Entry rule entryRuleAbort -entryRuleAbort returns [EObject current=null]: - { newCompositeNode(grammarAccess.getAbortRule()); } - iv_ruleAbort=ruleAbort - { $current=$iv_ruleAbort.current; } - EOF; - -// Rule Abort -ruleAbort returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='abort' - { - newLeafNode(otherlv_0, grammarAccess.getAbortAccess().getAbortKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getAbortAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getAbortAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getAbortRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='{' - { - newLeafNode(otherlv_3, grammarAccess.getAbortAccess().getLeftCurlyBracketKeyword_3()); - } - ( - ( - lv_value_4_0=RULE_STRING - { - newLeafNode(lv_value_4_0, grammarAccess.getAbortAccess().getValueSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getAbortRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='}' - { - newLeafNode(otherlv_5, grammarAccess.getAbortAccess().getRightCurlyBracketKeyword_5()); - } - otherlv_6='on-condition' - { - newLeafNode(otherlv_6, grammarAccess.getAbortAccess().getOnConditionKeyword_6()); - } - ( - ( - { - newCompositeNode(grammarAccess.getAbortAccess().getConditionExpressionParserRuleCall_7_0()); - } - lv_condition_7_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getAbortRule()); - } - set( - $current, - "condition", - lv_condition_7_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleGooglecontactSelectAll -entryRuleGooglecontactSelectAll returns [EObject current=null]: - { newCompositeNode(grammarAccess.getGooglecontactSelectAllRule()); } - iv_ruleGooglecontactSelectAll=ruleGooglecontactSelectAll - { $current=$iv_ruleGooglecontactSelectAll.current; } - EOF; - -// Rule GooglecontactSelectAll -ruleGooglecontactSelectAll returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='gcontact-fetchall' - { - newLeafNode(otherlv_0, grammarAccess.getGooglecontactSelectAllAccess().getGcontactFetchallKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getGooglecontactSelectAllAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getGooglecontactSelectAllAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='through-account' - { - newLeafNode(otherlv_3, grammarAccess.getGooglecontactSelectAllAccess().getThroughAccountKeyword_3()); - } - ( - ( - lv_account_4_0=RULE_STRING - { - newLeafNode(lv_account_4_0, grammarAccess.getGooglecontactSelectAllAccess().getAccountSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - $current, - "account", - lv_account_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='secured-by' - { - newLeafNode(otherlv_5, grammarAccess.getGooglecontactSelectAllAccess().getSecuredByKeyword_5()); - } - ( - ( - lv_privateKey_6_0=RULE_STRING - { - newLeafNode(lv_privateKey_6_0, grammarAccess.getGooglecontactSelectAllAccess().getPrivateKeySTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - $current, - "privateKey", - lv_privateKey_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='with-key' - { - newLeafNode(otherlv_7, grammarAccess.getGooglecontactSelectAllAccess().getWithKeyKeyword_7()); - } - ( - ( - lv_ptwelveFile_8_0=RULE_STRING - { - newLeafNode(lv_ptwelveFile_8_0, grammarAccess.getGooglecontactSelectAllAccess().getPtwelveFileSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - $current, - "ptwelveFile", - lv_ptwelveFile_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='for-project' - { - newLeafNode(otherlv_9, grammarAccess.getGooglecontactSelectAllAccess().getForProjectKeyword_9()); - } - ( - ( - lv_project_10_0=RULE_STRING - { - newLeafNode(lv_project_10_0, grammarAccess.getGooglecontactSelectAllAccess().getProjectSTRINGTerminalRuleCall_10_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - $current, - "project", - lv_project_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_11='on-behalf-of' - { - newLeafNode(otherlv_11, grammarAccess.getGooglecontactSelectAllAccess().getOnBehalfOfKeyword_11()); - } - ( - ( - lv_impersonatedUser_12_0=RULE_STRING - { - newLeafNode(lv_impersonatedUser_12_0, grammarAccess.getGooglecontactSelectAllAccess().getImpersonatedUserSTRINGTerminalRuleCall_12_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - $current, - "impersonatedUser", - lv_impersonatedUser_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_13='to-target' - { - newLeafNode(otherlv_13, grammarAccess.getGooglecontactSelectAllAccess().getToTargetKeyword_13()); - } - ( - ( - lv_dbSrc_14_0=RULE_STRING - { - newLeafNode(lv_dbSrc_14_0, grammarAccess.getGooglecontactSelectAllAccess().getDbSrcSTRINGTerminalRuleCall_14_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - $current, - "dbSrc", - lv_dbSrc_14_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_15='using' - { - newLeafNode(otherlv_15, grammarAccess.getGooglecontactSelectAllAccess().getUsingKeyword_15()); - } - otherlv_16='{' - { - newLeafNode(otherlv_16, grammarAccess.getGooglecontactSelectAllAccess().getLeftCurlyBracketKeyword_16()); - } - ( - ( - lv_value_17_0=RULE_STRING - { - newLeafNode(lv_value_17_0, grammarAccess.getGooglecontactSelectAllAccess().getValueSTRINGTerminalRuleCall_17_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_17_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_18='}' - { - newLeafNode(otherlv_18, grammarAccess.getGooglecontactSelectAllAccess().getRightCurlyBracketKeyword_18()); - } - otherlv_19='on-condition' - { - newLeafNode(otherlv_19, grammarAccess.getGooglecontactSelectAllAccess().getOnConditionKeyword_19()); - } - ( - ( - { - newCompositeNode(grammarAccess.getGooglecontactSelectAllAccess().getConditionExpressionParserRuleCall_20_0()); - } - lv_condition_20_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getGooglecontactSelectAllRule()); - } - set( - $current, - "condition", - lv_condition_20_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleSendMail -entryRuleSendMail returns [EObject current=null]: - { newCompositeNode(grammarAccess.getSendMailRule()); } - iv_ruleSendMail=ruleSendMail - { $current=$iv_ruleSendMail.current; } - EOF; - -// Rule SendMail -ruleSendMail returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='sendmail' - { - newLeafNode(otherlv_0, grammarAccess.getSendMailAccess().getSendmailKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getSendMailAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getSendMailAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='secured-by' - { - newLeafNode(otherlv_3, grammarAccess.getSendMailAccess().getSecuredByKeyword_3()); - } - ( - ( - lv_privateKey_4_0=RULE_STRING - { - newLeafNode(lv_privateKey_4_0, grammarAccess.getSendMailAccess().getPrivateKeySTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - $current, - "privateKey", - lv_privateKey_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='on-behalf-of' - { - newLeafNode(otherlv_5, grammarAccess.getSendMailAccess().getOnBehalfOfKeyword_5()); - } - ( - ( - lv_impersonatedUser_6_0=RULE_STRING - { - newLeafNode(lv_impersonatedUser_6_0, grammarAccess.getSendMailAccess().getImpersonatedUserSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - $current, - "impersonatedUser", - lv_impersonatedUser_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='from-source' - { - newLeafNode(otherlv_7, grammarAccess.getSendMailAccess().getFromSourceKeyword_7()); - } - ( - ( - lv_dbSrc_8_0=RULE_STRING - { - newLeafNode(lv_dbSrc_8_0, grammarAccess.getSendMailAccess().getDbSrcSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - $current, - "dbSrc", - lv_dbSrc_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='using' - { - newLeafNode(otherlv_9, grammarAccess.getSendMailAccess().getUsingKeyword_9()); - } - otherlv_10='{' - { - newLeafNode(otherlv_10, grammarAccess.getSendMailAccess().getLeftCurlyBracketKeyword_10()); - } - ( - ( - lv_value_11_0=RULE_STRING - { - newLeafNode(lv_value_11_0, grammarAccess.getSendMailAccess().getValueSTRINGTerminalRuleCall_11_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_11_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_12='}' - { - newLeafNode(otherlv_12, grammarAccess.getSendMailAccess().getRightCurlyBracketKeyword_12()); - } - otherlv_13='on-condition' - { - newLeafNode(otherlv_13, grammarAccess.getSendMailAccess().getOnConditionKeyword_13()); - } - ( - ( - { - newCompositeNode(grammarAccess.getSendMailAccess().getConditionExpressionParserRuleCall_14_0()); - } - lv_condition_14_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getSendMailRule()); - } - set( - $current, - "condition", - lv_condition_14_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_15='do-dryrun-with' - { - newLeafNode(otherlv_15, grammarAccess.getSendMailAccess().getDoDryrunWithKeyword_15()); - } - ( - ( - lv_dryrunMail_16_0=RULE_STRING - { - newLeafNode(lv_dryrunMail_16_0, grammarAccess.getSendMailAccess().getDryrunMailSTRINGTerminalRuleCall_16_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - $current, - "dryrunMail", - lv_dryrunMail_16_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - ) -; - -// Entry rule entryRuleGooglecontactPUT -entryRuleGooglecontactPUT returns [EObject current=null]: - { newCompositeNode(grammarAccess.getGooglecontactPUTRule()); } - iv_ruleGooglecontactPUT=ruleGooglecontactPUT - { $current=$iv_ruleGooglecontactPUT.current; } - EOF; - -// Rule GooglecontactPUT -ruleGooglecontactPUT returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='gcontact' - { - newLeafNode(otherlv_0, grammarAccess.getGooglecontactPUTAccess().getGcontactKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getGooglecontactPUTAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getGooglecontactPUTAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='through-account' - { - newLeafNode(otherlv_3, grammarAccess.getGooglecontactPUTAccess().getThroughAccountKeyword_3()); - } - ( - ( - lv_account_4_0=RULE_STRING - { - newLeafNode(lv_account_4_0, grammarAccess.getGooglecontactPUTAccess().getAccountSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - $current, - "account", - lv_account_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='secured-by' - { - newLeafNode(otherlv_5, grammarAccess.getGooglecontactPUTAccess().getSecuredByKeyword_5()); - } - ( - ( - lv_privateKey_6_0=RULE_STRING - { - newLeafNode(lv_privateKey_6_0, grammarAccess.getGooglecontactPUTAccess().getPrivateKeySTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - $current, - "privateKey", - lv_privateKey_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='with-key' - { - newLeafNode(otherlv_7, grammarAccess.getGooglecontactPUTAccess().getWithKeyKeyword_7()); - } - ( - ( - lv_ptwelveFile_8_0=RULE_STRING - { - newLeafNode(lv_ptwelveFile_8_0, grammarAccess.getGooglecontactPUTAccess().getPtwelveFileSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - $current, - "ptwelveFile", - lv_ptwelveFile_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='for-project' - { - newLeafNode(otherlv_9, grammarAccess.getGooglecontactPUTAccess().getForProjectKeyword_9()); - } - ( - ( - lv_project_10_0=RULE_STRING - { - newLeafNode(lv_project_10_0, grammarAccess.getGooglecontactPUTAccess().getProjectSTRINGTerminalRuleCall_10_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - $current, - "project", - lv_project_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_11='on-behalf-of' - { - newLeafNode(otherlv_11, grammarAccess.getGooglecontactPUTAccess().getOnBehalfOfKeyword_11()); - } - ( - ( - lv_impersonatedUser_12_0=RULE_STRING - { - newLeafNode(lv_impersonatedUser_12_0, grammarAccess.getGooglecontactPUTAccess().getImpersonatedUserSTRINGTerminalRuleCall_12_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - $current, - "impersonatedUser", - lv_impersonatedUser_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_13='from-source' - { - newLeafNode(otherlv_13, grammarAccess.getGooglecontactPUTAccess().getFromSourceKeyword_13()); - } - ( - ( - lv_dbSrc_14_0=RULE_STRING - { - newLeafNode(lv_dbSrc_14_0, grammarAccess.getGooglecontactPUTAccess().getDbSrcSTRINGTerminalRuleCall_14_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - $current, - "dbSrc", - lv_dbSrc_14_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_15='using' - { - newLeafNode(otherlv_15, grammarAccess.getGooglecontactPUTAccess().getUsingKeyword_15()); - } - otherlv_16='{' - { - newLeafNode(otherlv_16, grammarAccess.getGooglecontactPUTAccess().getLeftCurlyBracketKeyword_16()); - } - ( - ( - lv_value_17_0=RULE_STRING - { - newLeafNode(lv_value_17_0, grammarAccess.getGooglecontactPUTAccess().getValueSTRINGTerminalRuleCall_17_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_17_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_18='}' - { - newLeafNode(otherlv_18, grammarAccess.getGooglecontactPUTAccess().getRightCurlyBracketKeyword_18()); - } - otherlv_19='on-condition' - { - newLeafNode(otherlv_19, grammarAccess.getGooglecontactPUTAccess().getOnConditionKeyword_19()); - } - ( - ( - { - newCompositeNode(grammarAccess.getGooglecontactPUTAccess().getConditionExpressionParserRuleCall_20_0()); - } - lv_condition_20_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getGooglecontactPUTRule()); - } - set( - $current, - "condition", - lv_condition_20_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleGooglecalPUT -entryRuleGooglecalPUT returns [EObject current=null]: - { newCompositeNode(grammarAccess.getGooglecalPUTRule()); } - iv_ruleGooglecalPUT=ruleGooglecalPUT - { $current=$iv_ruleGooglecalPUT.current; } - EOF; - -// Rule GooglecalPUT -ruleGooglecalPUT returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='gcalendar' - { - newLeafNode(otherlv_0, grammarAccess.getGooglecalPUTAccess().getGcalendarKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getGooglecalPUTAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getGooglecalPUTAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='through-account' - { - newLeafNode(otherlv_3, grammarAccess.getGooglecalPUTAccess().getThroughAccountKeyword_3()); - } - ( - ( - lv_account_4_0=RULE_STRING - { - newLeafNode(lv_account_4_0, grammarAccess.getGooglecalPUTAccess().getAccountSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - $current, - "account", - lv_account_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='secured-by' - { - newLeafNode(otherlv_5, grammarAccess.getGooglecalPUTAccess().getSecuredByKeyword_5()); - } - ( - ( - lv_privateKey_6_0=RULE_STRING - { - newLeafNode(lv_privateKey_6_0, grammarAccess.getGooglecalPUTAccess().getPrivateKeySTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - $current, - "privateKey", - lv_privateKey_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='with-key' - { - newLeafNode(otherlv_7, grammarAccess.getGooglecalPUTAccess().getWithKeyKeyword_7()); - } - ( - ( - lv_ptwelveFile_8_0=RULE_STRING - { - newLeafNode(lv_ptwelveFile_8_0, grammarAccess.getGooglecalPUTAccess().getPtwelveFileSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - $current, - "ptwelveFile", - lv_ptwelveFile_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='for-project' - { - newLeafNode(otherlv_9, grammarAccess.getGooglecalPUTAccess().getForProjectKeyword_9()); - } - ( - ( - lv_project_10_0=RULE_STRING - { - newLeafNode(lv_project_10_0, grammarAccess.getGooglecalPUTAccess().getProjectSTRINGTerminalRuleCall_10_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - $current, - "project", - lv_project_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_11='on-behalf-of' - { - newLeafNode(otherlv_11, grammarAccess.getGooglecalPUTAccess().getOnBehalfOfKeyword_11()); - } - ( - ( - lv_impersonatedUser_12_0=RULE_STRING - { - newLeafNode(lv_impersonatedUser_12_0, grammarAccess.getGooglecalPUTAccess().getImpersonatedUserSTRINGTerminalRuleCall_12_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - $current, - "impersonatedUser", - lv_impersonatedUser_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_13='from-source' - { - newLeafNode(otherlv_13, grammarAccess.getGooglecalPUTAccess().getFromSourceKeyword_13()); - } - ( - ( - lv_dbSrc_14_0=RULE_STRING - { - newLeafNode(lv_dbSrc_14_0, grammarAccess.getGooglecalPUTAccess().getDbSrcSTRINGTerminalRuleCall_14_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - $current, - "dbSrc", - lv_dbSrc_14_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_15='using' - { - newLeafNode(otherlv_15, grammarAccess.getGooglecalPUTAccess().getUsingKeyword_15()); - } - otherlv_16='{' - { - newLeafNode(otherlv_16, grammarAccess.getGooglecalPUTAccess().getLeftCurlyBracketKeyword_16()); - } - ( - ( - lv_value_17_0=RULE_STRING - { - newLeafNode(lv_value_17_0, grammarAccess.getGooglecalPUTAccess().getValueSTRINGTerminalRuleCall_17_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_17_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_18='}' - { - newLeafNode(otherlv_18, grammarAccess.getGooglecalPUTAccess().getRightCurlyBracketKeyword_18()); - } - otherlv_19='on-condition' - { - newLeafNode(otherlv_19, grammarAccess.getGooglecalPUTAccess().getOnConditionKeyword_19()); - } - ( - ( - { - newCompositeNode(grammarAccess.getGooglecalPUTAccess().getConditionExpressionParserRuleCall_20_0()); - } - lv_condition_20_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getGooglecalPUTRule()); - } - set( - $current, - "condition", - lv_condition_20_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleFBCLead -entryRuleFBCLead returns [EObject current=null]: - { newCompositeNode(grammarAccess.getFBCLeadRule()); } - iv_ruleFBCLead=ruleFBCLead - { $current=$iv_ruleFBCLead.current; } - EOF; - -// Rule FBCLead -ruleFBCLead returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='fblc' - { - newLeafNode(otherlv_0, grammarAccess.getFBCLeadAccess().getFblcKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getFBCLeadAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getFBCLeadAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='secured-by' - { - newLeafNode(otherlv_3, grammarAccess.getFBCLeadAccess().getSecuredByKeyword_3()); - } - ( - ( - lv_accessToken_4_0=RULE_STRING - { - newLeafNode(lv_accessToken_4_0, grammarAccess.getFBCLeadAccess().getAccessTokenSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - $current, - "accessToken", - lv_accessToken_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='with-key' - { - newLeafNode(otherlv_5, grammarAccess.getFBCLeadAccess().getWithKeyKeyword_5()); - } - ( - ( - lv_appSecret_6_0=RULE_STRING - { - newLeafNode(lv_appSecret_6_0, grammarAccess.getFBCLeadAccess().getAppSecretSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - $current, - "appSecret", - lv_appSecret_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='through-user' - { - newLeafNode(otherlv_7, grammarAccess.getFBCLeadAccess().getThroughUserKeyword_7()); - } - ( - ( - lv_accountId_8_0=RULE_STRING - { - newLeafNode(lv_accountId_8_0, grammarAccess.getFBCLeadAccess().getAccountIdSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - $current, - "accountId", - lv_accountId_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='for-campaign' - { - newLeafNode(otherlv_9, grammarAccess.getFBCLeadAccess().getForCampaignKeyword_9()); - } - ( - ( - lv_campaignId_10_0=RULE_STRING - { - newLeafNode(lv_campaignId_10_0, grammarAccess.getFBCLeadAccess().getCampaignIdSTRINGTerminalRuleCall_10_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - $current, - "campaignId", - lv_campaignId_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_11='into' - { - newLeafNode(otherlv_11, grammarAccess.getFBCLeadAccess().getIntoKeyword_11()); - } - ( - ( - lv_target_12_0=RULE_STRING - { - newLeafNode(lv_target_12_0, grammarAccess.getFBCLeadAccess().getTargetSTRINGTerminalRuleCall_12_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - $current, - "target", - lv_target_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_13='using' - { - newLeafNode(otherlv_13, grammarAccess.getFBCLeadAccess().getUsingKeyword_13()); - } - otherlv_14='{' - { - newLeafNode(otherlv_14, grammarAccess.getFBCLeadAccess().getLeftCurlyBracketKeyword_14()); - } - ( - ( - lv_value_15_0=RULE_STRING - { - newLeafNode(lv_value_15_0, grammarAccess.getFBCLeadAccess().getValueSTRINGTerminalRuleCall_15_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_15_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_16='}' - { - newLeafNode(otherlv_16, grammarAccess.getFBCLeadAccess().getRightCurlyBracketKeyword_16()); - } - otherlv_17='on-condition' - { - newLeafNode(otherlv_17, grammarAccess.getFBCLeadAccess().getOnConditionKeyword_17()); - } - ( - ( - { - newCompositeNode(grammarAccess.getFBCLeadAccess().getConditionExpressionParserRuleCall_18_0()); - } - lv_condition_18_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getFBCLeadRule()); - } - set( - $current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleFBFormDownload -entryRuleFBFormDownload returns [EObject current=null]: - { newCompositeNode(grammarAccess.getFBFormDownloadRule()); } - iv_ruleFBFormDownload=ruleFBFormDownload - { $current=$iv_ruleFBFormDownload.current; } - EOF; - -// Rule FBFormDownload -ruleFBFormDownload returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='fbfd' - { - newLeafNode(otherlv_0, grammarAccess.getFBFormDownloadAccess().getFbfdKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getFBFormDownloadAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getFBFormDownloadAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='secured-by' - { - newLeafNode(otherlv_3, grammarAccess.getFBFormDownloadAccess().getSecuredByKeyword_3()); - } - ( - ( - lv_accessToken_4_0=RULE_STRING - { - newLeafNode(lv_accessToken_4_0, grammarAccess.getFBFormDownloadAccess().getAccessTokenSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - $current, - "accessToken", - lv_accessToken_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='with-key' - { - newLeafNode(otherlv_5, grammarAccess.getFBFormDownloadAccess().getWithKeyKeyword_5()); - } - ( - ( - lv_appSecret_6_0=RULE_STRING - { - newLeafNode(lv_appSecret_6_0, grammarAccess.getFBFormDownloadAccess().getAppSecretSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - $current, - "appSecret", - lv_appSecret_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='through-user' - { - newLeafNode(otherlv_7, grammarAccess.getFBFormDownloadAccess().getThroughUserKeyword_7()); - } - ( - ( - lv_accountId_8_0=RULE_STRING - { - newLeafNode(lv_accountId_8_0, grammarAccess.getFBFormDownloadAccess().getAccountIdSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - $current, - "accountId", - lv_accountId_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='for-form' - { - newLeafNode(otherlv_9, grammarAccess.getFBFormDownloadAccess().getForFormKeyword_9()); - } - ( - ( - lv_formId_10_0=RULE_STRING - { - newLeafNode(lv_formId_10_0, grammarAccess.getFBFormDownloadAccess().getFormIdSTRINGTerminalRuleCall_10_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - $current, - "formId", - lv_formId_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_11='into' - { - newLeafNode(otherlv_11, grammarAccess.getFBFormDownloadAccess().getIntoKeyword_11()); - } - ( - ( - lv_target_12_0=RULE_STRING - { - newLeafNode(lv_target_12_0, grammarAccess.getFBFormDownloadAccess().getTargetSTRINGTerminalRuleCall_12_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - $current, - "target", - lv_target_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_13='using' - { - newLeafNode(otherlv_13, grammarAccess.getFBFormDownloadAccess().getUsingKeyword_13()); - } - otherlv_14='{' - { - newLeafNode(otherlv_14, grammarAccess.getFBFormDownloadAccess().getLeftCurlyBracketKeyword_14()); - } - ( - ( - lv_value_15_0=RULE_STRING - { - newLeafNode(lv_value_15_0, grammarAccess.getFBFormDownloadAccess().getValueSTRINGTerminalRuleCall_15_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_15_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_16='}' - { - newLeafNode(otherlv_16, grammarAccess.getFBFormDownloadAccess().getRightCurlyBracketKeyword_16()); - } - otherlv_17='on-condition' - { - newLeafNode(otherlv_17, grammarAccess.getFBFormDownloadAccess().getOnConditionKeyword_17()); - } - ( - ( - { - newCompositeNode(grammarAccess.getFBFormDownloadAccess().getConditionExpressionParserRuleCall_18_0()); - } - lv_condition_18_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getFBFormDownloadRule()); - } - set( - $current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleDropfile -entryRuleDropfile returns [EObject current=null]: - { newCompositeNode(grammarAccess.getDropfileRule()); } - iv_ruleDropfile=ruleDropfile - { $current=$iv_ruleDropfile.current; } - EOF; - -// Rule Dropfile -ruleDropfile returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='dropfile' - { - newLeafNode(otherlv_0, grammarAccess.getDropfileAccess().getDropfileKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getDropfileAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getDropfileAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getDropfileRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='in-path' - { - newLeafNode(otherlv_3, grammarAccess.getDropfileAccess().getInPathKeyword_3()); - } - ( - ( - lv_target_4_0=RULE_STRING - { - newLeafNode(lv_target_4_0, grammarAccess.getDropfileAccess().getTargetSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getDropfileRule()); - } - setWithLastConsumed( - $current, - "target", - lv_target_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='on-condition' - { - newLeafNode(otherlv_5, grammarAccess.getDropfileAccess().getOnConditionKeyword_5()); - } - ( - ( - { - newCompositeNode(grammarAccess.getDropfileAccess().getConditionExpressionParserRuleCall_6_0()); - } - lv_condition_6_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getDropfileRule()); - } - set( - $current, - "condition", - lv_condition_6_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleDoozle -entryRuleDoozle returns [EObject current=null]: - { newCompositeNode(grammarAccess.getDoozleRule()); } - iv_ruleDoozle=ruleDoozle - { $current=$iv_ruleDoozle.current; } - EOF; - -// Rule Doozle -ruleDoozle returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='doozle' - { - newLeafNode(otherlv_0, grammarAccess.getDoozleAccess().getDoozleKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getDoozleAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getDoozleAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getDoozleRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='in-table' - { - newLeafNode(otherlv_3, grammarAccess.getDoozleAccess().getInTableKeyword_3()); - } - ( - ( - lv_target_4_0=RULE_STRING - { - newLeafNode(lv_target_4_0, grammarAccess.getDoozleAccess().getTargetSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getDoozleRule()); - } - setWithLastConsumed( - $current, - "target", - lv_target_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='on' - { - newLeafNode(otherlv_5, grammarAccess.getDoozleAccess().getOnKeyword_5()); - } - ( - ( - lv_on_6_0=RULE_STRING - { - newLeafNode(lv_on_6_0, grammarAccess.getDoozleAccess().getOnSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getDoozleRule()); - } - setWithLastConsumed( - $current, - "on", - lv_on_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='using' - { - newLeafNode(otherlv_7, grammarAccess.getDoozleAccess().getUsingKeyword_7()); - } - otherlv_8='{' - { - newLeafNode(otherlv_8, grammarAccess.getDoozleAccess().getLeftCurlyBracketKeyword_8()); - } - ( - ( - { - newCompositeNode(grammarAccess.getDoozleAccess().getValueCreateStatementParserRuleCall_9_0()); - } - lv_value_9_0=ruleCreateStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getDoozleRule()); - } - set( - $current, - "value", - lv_value_9_0, - "in.handyman.Dsl.CreateStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_10='}' - { - newLeafNode(otherlv_10, grammarAccess.getDoozleAccess().getRightCurlyBracketKeyword_10()); - } - otherlv_11='on-condition' - { - newLeafNode(otherlv_11, grammarAccess.getDoozleAccess().getOnConditionKeyword_11()); - } - ( - ( - { - newCompositeNode(grammarAccess.getDoozleAccess().getConditionExpressionParserRuleCall_12_0()); - } - lv_condition_12_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getDoozleRule()); - } - set( - $current, - "condition", - lv_condition_12_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleRest -entryRuleRest returns [EObject current=null]: - { newCompositeNode(grammarAccess.getRestRule()); } - iv_ruleRest=ruleRest - { $current=$iv_ruleRest.current; } - EOF; - -// Rule Rest -ruleRest returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='rest' - { - newLeafNode(otherlv_0, grammarAccess.getRestAccess().getRestKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getRestAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getRestAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='secured-by' - { - newLeafNode(otherlv_3, grammarAccess.getRestAccess().getSecuredByKeyword_3()); - } - ( - ( - lv_authtoken_4_0=RULE_STRING - { - newLeafNode(lv_authtoken_4_0, grammarAccess.getRestAccess().getAuthtokenSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - $current, - "authtoken", - lv_authtoken_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='with-url' - { - newLeafNode(otherlv_5, grammarAccess.getRestAccess().getWithUrlKeyword_5()); - } - ( - ( - lv_url_6_0=RULE_STRING - { - newLeafNode(lv_url_6_0, grammarAccess.getRestAccess().getUrlSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - $current, - "url", - lv_url_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='and-method-as' - { - newLeafNode(otherlv_7, grammarAccess.getRestAccess().getAndMethodAsKeyword_7()); - } - ( - ( - lv_method_8_0=RULE_STRING - { - newLeafNode(lv_method_8_0, grammarAccess.getRestAccess().getMethodSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - $current, - "method", - lv_method_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='{' - { - newLeafNode(otherlv_9, grammarAccess.getRestAccess().getLeftCurlyBracketKeyword_9()); - } - otherlv_10='from' - { - newLeafNode(otherlv_10, grammarAccess.getRestAccess().getFromKeyword_10()); - } - ( - ( - lv_resourcedatafrom_11_0=RULE_STRING - { - newLeafNode(lv_resourcedatafrom_11_0, grammarAccess.getRestAccess().getResourcedatafromSTRINGTerminalRuleCall_11_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - $current, - "resourcedatafrom", - lv_resourcedatafrom_11_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_12='update-url-with' - { - newLeafNode(otherlv_12, grammarAccess.getRestAccess().getUpdateUrlWithKeyword_12()); - } - otherlv_13='{' - { - newLeafNode(otherlv_13, grammarAccess.getRestAccess().getLeftCurlyBracketKeyword_13()); - } - ( - ( - { - newCompositeNode(grammarAccess.getRestAccess().getUrldataSelectStatementParserRuleCall_14_0()); - } - lv_urldata_14_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getRestRule()); - } - set( - $current, - "urldata", - lv_urldata_14_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_15='}' - { - newLeafNode(otherlv_15, grammarAccess.getRestAccess().getRightCurlyBracketKeyword_15()); - } - otherlv_16='from' - { - newLeafNode(otherlv_16, grammarAccess.getRestAccess().getFromKeyword_16()); - } - ( - ( - lv_headerdatafrom_17_0=RULE_STRING - { - newLeafNode(lv_headerdatafrom_17_0, grammarAccess.getRestAccess().getHeaderdatafromSTRINGTerminalRuleCall_17_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - $current, - "headerdatafrom", - lv_headerdatafrom_17_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_18='update-header-with' - { - newLeafNode(otherlv_18, grammarAccess.getRestAccess().getUpdateHeaderWithKeyword_18()); - } - otherlv_19='{' - { - newLeafNode(otherlv_19, grammarAccess.getRestAccess().getLeftCurlyBracketKeyword_19()); - } - ( - ( - { - newCompositeNode(grammarAccess.getRestAccess().getHeaderdataSelectStatementParserRuleCall_20_0()); - } - lv_headerdata_20_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getRestRule()); - } - set( - $current, - "headerdata", - lv_headerdata_20_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_21='}' - { - newLeafNode(otherlv_21, grammarAccess.getRestAccess().getRightCurlyBracketKeyword_21()); - } - otherlv_22='from' - { - newLeafNode(otherlv_22, grammarAccess.getRestAccess().getFromKeyword_22()); - } - ( - ( - lv_postdatafrom_23_0=RULE_STRING - { - newLeafNode(lv_postdatafrom_23_0, grammarAccess.getRestAccess().getPostdatafromSTRINGTerminalRuleCall_23_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - $current, - "postdatafrom", - lv_postdatafrom_23_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_24='update-body-with' - { - newLeafNode(otherlv_24, grammarAccess.getRestAccess().getUpdateBodyWithKeyword_24()); - } - otherlv_25='{' - { - newLeafNode(otherlv_25, grammarAccess.getRestAccess().getLeftCurlyBracketKeyword_25()); - } - otherlv_26='parent' - { - newLeafNode(otherlv_26, grammarAccess.getRestAccess().getParentKeyword_26()); - } - otherlv_27='as' - { - newLeafNode(otherlv_27, grammarAccess.getRestAccess().getAsKeyword_27()); - } - ( - ( - lv_parentName_28_0=RULE_STRING - { - newLeafNode(lv_parentName_28_0, grammarAccess.getRestAccess().getParentNameSTRINGTerminalRuleCall_28_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - $current, - "parentName", - lv_parentName_28_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - ( - ( - { - newCompositeNode(grammarAccess.getRestAccess().getParentdataSelectStatementParserRuleCall_29_0()); - } - lv_parentdata_29_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getRestRule()); - } - set( - $current, - "parentdata", - lv_parentdata_29_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - ( - ( - { - newCompositeNode(grammarAccess.getRestAccess().getPartsRestPartParserRuleCall_30_0()); - } - lv_parts_30_0=ruleRestPart - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getRestRule()); - } - add( - $current, - "parts", - lv_parts_30_0, - "in.handyman.Dsl.RestPart"); - afterParserOrEnumRuleCall(); - } - ) - )* - otherlv_31='}' - { - newLeafNode(otherlv_31, grammarAccess.getRestAccess().getRightCurlyBracketKeyword_31()); - } - otherlv_32='into' - { - newLeafNode(otherlv_32, grammarAccess.getRestAccess().getIntoKeyword_32()); - } - ( - ( - lv_ackdatato_33_0=RULE_STRING - { - newLeafNode(lv_ackdatato_33_0, grammarAccess.getRestAccess().getAckdatatoSTRINGTerminalRuleCall_33_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - $current, - "ackdatato", - lv_ackdatato_33_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_34='store-ack-at' - { - newLeafNode(otherlv_34, grammarAccess.getRestAccess().getStoreAckAtKeyword_34()); - } - otherlv_35='{' - { - newLeafNode(otherlv_35, grammarAccess.getRestAccess().getLeftCurlyBracketKeyword_35()); - } - ( - ( - { - newCompositeNode(grammarAccess.getRestAccess().getAckdataSelectStatementParserRuleCall_36_0()); - } - lv_ackdata_36_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getRestRule()); - } - set( - $current, - "ackdata", - lv_ackdata_36_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_37='}' - { - newLeafNode(otherlv_37, grammarAccess.getRestAccess().getRightCurlyBracketKeyword_37()); - } - otherlv_38='}' - { - newLeafNode(otherlv_38, grammarAccess.getRestAccess().getRightCurlyBracketKeyword_38()); - } - otherlv_39='on-condition' - { - newLeafNode(otherlv_39, grammarAccess.getRestAccess().getOnConditionKeyword_39()); - } - ( - ( - { - newCompositeNode(grammarAccess.getRestAccess().getConditionExpressionParserRuleCall_40_0()); - } - lv_condition_40_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getRestRule()); - } - set( - $current, - "condition", - lv_condition_40_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleRestPart -entryRuleRestPart returns [EObject current=null]: - { newCompositeNode(grammarAccess.getRestPartRule()); } - iv_ruleRestPart=ruleRestPart - { $current=$iv_ruleRestPart.current; } - EOF; - -// Rule RestPart -ruleRestPart returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='part' - { - newLeafNode(otherlv_0, grammarAccess.getRestPartAccess().getPartKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getRestPartAccess().getAsKeyword_1()); - } - ( - ( - lv_partName_2_0=RULE_STRING - { - newLeafNode(lv_partName_2_0, grammarAccess.getRestPartAccess().getPartNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getRestPartRule()); - } - setWithLastConsumed( - $current, - "partName", - lv_partName_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='with' - { - newLeafNode(otherlv_3, grammarAccess.getRestPartAccess().getWithKeyword_3()); - } - ( - ( - { - newCompositeNode(grammarAccess.getRestPartAccess().getPartDataSelectStatementParserRuleCall_4_0()); - } - lv_partData_4_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getRestPartRule()); - } - set( - $current, - "partData", - lv_partData_4_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleTrelloGET -entryRuleTrelloGET returns [EObject current=null]: - { newCompositeNode(grammarAccess.getTrelloGETRule()); } - iv_ruleTrelloGET=ruleTrelloGET - { $current=$iv_ruleTrelloGET.current; } - EOF; - -// Rule TrelloGET -ruleTrelloGET returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='trelloget' - { - newLeafNode(otherlv_0, grammarAccess.getTrelloGETAccess().getTrellogetKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getTrelloGETAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getTrelloGETAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='secured-by' - { - newLeafNode(otherlv_3, grammarAccess.getTrelloGETAccess().getSecuredByKeyword_3()); - } - ( - ( - lv_authtoken_4_0=RULE_STRING - { - newLeafNode(lv_authtoken_4_0, grammarAccess.getTrelloGETAccess().getAuthtokenSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - $current, - "authtoken", - lv_authtoken_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='with-key' - { - newLeafNode(otherlv_5, grammarAccess.getTrelloGETAccess().getWithKeyKeyword_5()); - } - ( - ( - lv_key_6_0=RULE_STRING - { - newLeafNode(lv_key_6_0, grammarAccess.getTrelloGETAccess().getKeySTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - $current, - "key", - lv_key_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='through-user' - { - newLeafNode(otherlv_7, grammarAccess.getTrelloGETAccess().getThroughUserKeyword_7()); - } - ( - ( - lv_useraccount_8_0=RULE_STRING - { - newLeafNode(lv_useraccount_8_0, grammarAccess.getTrelloGETAccess().getUseraccountSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - $current, - "useraccount", - lv_useraccount_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='from-board' - { - newLeafNode(otherlv_9, grammarAccess.getTrelloGETAccess().getFromBoardKeyword_9()); - } - ( - ( - lv_board_10_0=RULE_STRING - { - newLeafNode(lv_board_10_0, grammarAccess.getTrelloGETAccess().getBoardSTRINGTerminalRuleCall_10_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - $current, - "board", - lv_board_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_11='to' - { - newLeafNode(otherlv_11, grammarAccess.getTrelloGETAccess().getToKeyword_11()); - } - ( - ( - lv_target_12_0=RULE_STRING - { - newLeafNode(lv_target_12_0, grammarAccess.getTrelloGETAccess().getTargetSTRINGTerminalRuleCall_12_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - $current, - "target", - lv_target_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_13='using' - { - newLeafNode(otherlv_13, grammarAccess.getTrelloGETAccess().getUsingKeyword_13()); - } - otherlv_14='{' - { - newLeafNode(otherlv_14, grammarAccess.getTrelloGETAccess().getLeftCurlyBracketKeyword_14()); - } - ( - ( - { - newCompositeNode(grammarAccess.getTrelloGETAccess().getValueSelectStatementParserRuleCall_15_0()); - } - lv_value_15_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getTrelloGETRule()); - } - set( - $current, - "value", - lv_value_15_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_16='}' - { - newLeafNode(otherlv_16, grammarAccess.getTrelloGETAccess().getRightCurlyBracketKeyword_16()); - } - otherlv_17='on-condition' - { - newLeafNode(otherlv_17, grammarAccess.getTrelloGETAccess().getOnConditionKeyword_17()); - } - ( - ( - { - newCompositeNode(grammarAccess.getTrelloGETAccess().getConditionExpressionParserRuleCall_18_0()); - } - lv_condition_18_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getTrelloGETRule()); - } - set( - $current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleTrelloPUT -entryRuleTrelloPUT returns [EObject current=null]: - { newCompositeNode(grammarAccess.getTrelloPUTRule()); } - iv_ruleTrelloPUT=ruleTrelloPUT - { $current=$iv_ruleTrelloPUT.current; } - EOF; - -// Rule TrelloPUT -ruleTrelloPUT returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='trelloput' - { - newLeafNode(otherlv_0, grammarAccess.getTrelloPUTAccess().getTrelloputKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getTrelloPUTAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getTrelloPUTAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='secured-by' - { - newLeafNode(otherlv_3, grammarAccess.getTrelloPUTAccess().getSecuredByKeyword_3()); - } - ( - ( - lv_authtoken_4_0=RULE_STRING - { - newLeafNode(lv_authtoken_4_0, grammarAccess.getTrelloPUTAccess().getAuthtokenSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - $current, - "authtoken", - lv_authtoken_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='with-key' - { - newLeafNode(otherlv_5, grammarAccess.getTrelloPUTAccess().getWithKeyKeyword_5()); - } - ( - ( - lv_key_6_0=RULE_STRING - { - newLeafNode(lv_key_6_0, grammarAccess.getTrelloPUTAccess().getKeySTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - $current, - "key", - lv_key_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='through-user' - { - newLeafNode(otherlv_7, grammarAccess.getTrelloPUTAccess().getThroughUserKeyword_7()); - } - ( - ( - lv_useraccount_8_0=RULE_STRING - { - newLeafNode(lv_useraccount_8_0, grammarAccess.getTrelloPUTAccess().getUseraccountSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - $current, - "useraccount", - lv_useraccount_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='for-list' - { - newLeafNode(otherlv_9, grammarAccess.getTrelloPUTAccess().getForListKeyword_9()); - } - ( - ( - lv_list_10_0=RULE_STRING - { - newLeafNode(lv_list_10_0, grammarAccess.getTrelloPUTAccess().getListSTRINGTerminalRuleCall_10_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - $current, - "list", - lv_list_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_11='from-source' - { - newLeafNode(otherlv_11, grammarAccess.getTrelloPUTAccess().getFromSourceKeyword_11()); - } - ( - ( - lv_source_12_0=RULE_STRING - { - newLeafNode(lv_source_12_0, grammarAccess.getTrelloPUTAccess().getSourceSTRINGTerminalRuleCall_12_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - $current, - "source", - lv_source_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_13='using' - { - newLeafNode(otherlv_13, grammarAccess.getTrelloPUTAccess().getUsingKeyword_13()); - } - otherlv_14='{' - { - newLeafNode(otherlv_14, grammarAccess.getTrelloPUTAccess().getLeftCurlyBracketKeyword_14()); - } - ( - ( - { - newCompositeNode(grammarAccess.getTrelloPUTAccess().getValueSelectStatementParserRuleCall_15_0()); - } - lv_value_15_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getTrelloPUTRule()); - } - set( - $current, - "value", - lv_value_15_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_16='}' - { - newLeafNode(otherlv_16, grammarAccess.getTrelloPUTAccess().getRightCurlyBracketKeyword_16()); - } - otherlv_17='on-condition' - { - newLeafNode(otherlv_17, grammarAccess.getTrelloPUTAccess().getOnConditionKeyword_17()); - } - ( - ( - { - newCompositeNode(grammarAccess.getTrelloPUTAccess().getConditionExpressionParserRuleCall_18_0()); - } - lv_condition_18_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getTrelloPUTRule()); - } - set( - $current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleFetch -entryRuleFetch returns [EObject current=null]: - { newCompositeNode(grammarAccess.getFetchRule()); } - iv_ruleFetch=ruleFetch - { $current=$iv_ruleFetch.current; } - EOF; - -// Rule Fetch -ruleFetch returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='assign' - { - newLeafNode(otherlv_0, grammarAccess.getFetchAccess().getAssignKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getFetchAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getFetchAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFetchRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='source' - { - newLeafNode(otherlv_3, grammarAccess.getFetchAccess().getSourceKeyword_3()); - } - ( - ( - lv_source_4_0=RULE_STRING - { - newLeafNode(lv_source_4_0, grammarAccess.getFetchAccess().getSourceSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFetchRule()); - } - setWithLastConsumed( - $current, - "source", - lv_source_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='using' - { - newLeafNode(otherlv_5, grammarAccess.getFetchAccess().getUsingKeyword_5()); - } - otherlv_6='{' - { - newLeafNode(otherlv_6, grammarAccess.getFetchAccess().getLeftCurlyBracketKeyword_6()); - } - ( - ( - lv_value_7_0=RULE_STRING - { - newLeafNode(lv_value_7_0, grammarAccess.getFetchAccess().getValueSTRINGTerminalRuleCall_7_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFetchRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_7_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_8='}' - { - newLeafNode(otherlv_8, grammarAccess.getFetchAccess().getRightCurlyBracketKeyword_8()); - } - otherlv_9='on-condition' - { - newLeafNode(otherlv_9, grammarAccess.getFetchAccess().getOnConditionKeyword_9()); - } - ( - ( - { - newCompositeNode(grammarAccess.getFetchAccess().getConditionExpressionParserRuleCall_10_0()); - } - lv_condition_10_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getFetchRule()); - } - set( - $current, - "condition", - lv_condition_10_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleCallprocess -entryRuleCallprocess returns [EObject current=null]: - { newCompositeNode(grammarAccess.getCallprocessRule()); } - iv_ruleCallprocess=ruleCallprocess - { $current=$iv_ruleCallprocess.current; } - EOF; - -// Rule Callprocess -ruleCallprocess returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='callprocess' - { - newLeafNode(otherlv_0, grammarAccess.getCallprocessAccess().getCallprocessKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getCallprocessAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getCallprocessAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCallprocessRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='with-target' - { - newLeafNode(otherlv_3, grammarAccess.getCallprocessAccess().getWithTargetKeyword_3()); - } - ( - ( - lv_target_4_0=RULE_STRING - { - newLeafNode(lv_target_4_0, grammarAccess.getCallprocessAccess().getTargetSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCallprocessRule()); - } - setWithLastConsumed( - $current, - "target", - lv_target_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='from-file' - { - newLeafNode(otherlv_5, grammarAccess.getCallprocessAccess().getFromFileKeyword_5()); - } - ( - ( - lv_source_6_0=RULE_STRING - { - newLeafNode(lv_source_6_0, grammarAccess.getCallprocessAccess().getSourceSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCallprocessRule()); - } - setWithLastConsumed( - $current, - "source", - lv_source_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='using' - { - newLeafNode(otherlv_7, grammarAccess.getCallprocessAccess().getUsingKeyword_7()); - } - ( - ( - lv_datasource_8_0=RULE_STRING - { - newLeafNode(lv_datasource_8_0, grammarAccess.getCallprocessAccess().getDatasourceSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCallprocessRule()); - } - setWithLastConsumed( - $current, - "datasource", - lv_datasource_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='for-every' - { - newLeafNode(otherlv_9, grammarAccess.getCallprocessAccess().getForEveryKeyword_9()); - } - otherlv_10='{' - { - newLeafNode(otherlv_10, grammarAccess.getCallprocessAccess().getLeftCurlyBracketKeyword_10()); - } - ( - ( - { - newCompositeNode(grammarAccess.getCallprocessAccess().getValueSelectStatementParserRuleCall_11_0()); - } - lv_value_11_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getCallprocessRule()); - } - set( - $current, - "value", - lv_value_11_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_12='}' - { - newLeafNode(otherlv_12, grammarAccess.getCallprocessAccess().getRightCurlyBracketKeyword_12()); - } - otherlv_13='on-condition' - { - newLeafNode(otherlv_13, grammarAccess.getCallprocessAccess().getOnConditionKeyword_13()); - } - ( - ( - { - newCompositeNode(grammarAccess.getCallprocessAccess().getConditionExpressionParserRuleCall_14_0()); - } - lv_condition_14_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getCallprocessRule()); - } - set( - $current, - "condition", - lv_condition_14_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleForkprocess -entryRuleForkprocess returns [EObject current=null]: - { newCompositeNode(grammarAccess.getForkprocessRule()); } - iv_ruleForkprocess=ruleForkprocess - { $current=$iv_ruleForkprocess.current; } - EOF; - -// Rule Forkprocess -ruleForkprocess returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='forkprocess' - { - newLeafNode(otherlv_0, grammarAccess.getForkprocessAccess().getForkprocessKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getForkprocessAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getForkprocessAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getForkprocessRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='with-target' - { - newLeafNode(otherlv_3, grammarAccess.getForkprocessAccess().getWithTargetKeyword_3()); - } - ( - ( - lv_target_4_0=RULE_STRING - { - newLeafNode(lv_target_4_0, grammarAccess.getForkprocessAccess().getTargetSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getForkprocessRule()); - } - setWithLastConsumed( - $current, - "target", - lv_target_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='from-file' - { - newLeafNode(otherlv_5, grammarAccess.getForkprocessAccess().getFromFileKeyword_5()); - } - ( - ( - lv_source_6_0=RULE_STRING - { - newLeafNode(lv_source_6_0, grammarAccess.getForkprocessAccess().getSourceSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getForkprocessRule()); - } - setWithLastConsumed( - $current, - "source", - lv_source_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='using' - { - newLeafNode(otherlv_7, grammarAccess.getForkprocessAccess().getUsingKeyword_7()); - } - ( - ( - lv_datasource_8_0=RULE_STRING - { - newLeafNode(lv_datasource_8_0, grammarAccess.getForkprocessAccess().getDatasourceSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getForkprocessRule()); - } - setWithLastConsumed( - $current, - "datasource", - lv_datasource_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='for-every' - { - newLeafNode(otherlv_9, grammarAccess.getForkprocessAccess().getForEveryKeyword_9()); - } - otherlv_10='{' - { - newLeafNode(otherlv_10, grammarAccess.getForkprocessAccess().getLeftCurlyBracketKeyword_10()); - } - ( - ( - { - newCompositeNode(grammarAccess.getForkprocessAccess().getValueSelectStatementParserRuleCall_11_0()); - } - lv_value_11_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getForkprocessRule()); - } - set( - $current, - "value", - lv_value_11_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_12='}' - { - newLeafNode(otherlv_12, grammarAccess.getForkprocessAccess().getRightCurlyBracketKeyword_12()); - } - otherlv_13='watermark' - { - newLeafNode(otherlv_13, grammarAccess.getForkprocessAccess().getWatermarkKeyword_13()); - } - ( - ( - lv_forkBatchSize_14_0=RULE_STRING - { - newLeafNode(lv_forkBatchSize_14_0, grammarAccess.getForkprocessAccess().getForkBatchSizeSTRINGTerminalRuleCall_14_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getForkprocessRule()); - } - setWithLastConsumed( - $current, - "forkBatchSize", - lv_forkBatchSize_14_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_15='on-condition' - { - newLeafNode(otherlv_15, grammarAccess.getForkprocessAccess().getOnConditionKeyword_15()); - } - ( - ( - { - newCompositeNode(grammarAccess.getForkprocessAccess().getConditionExpressionParserRuleCall_16_0()); - } - lv_condition_16_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getForkprocessRule()); - } - set( - $current, - "condition", - lv_condition_16_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleUpdatedaudit -entryRuleUpdatedaudit returns [EObject current=null]: - { newCompositeNode(grammarAccess.getUpdatedauditRule()); } - iv_ruleUpdatedaudit=ruleUpdatedaudit - { $current=$iv_ruleUpdatedaudit.current; } - EOF; - -// Rule Updatedaudit -ruleUpdatedaudit returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='log' - { - newLeafNode(otherlv_0, grammarAccess.getUpdatedauditAccess().getLogKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getUpdatedauditAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getUpdatedauditAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getUpdatedauditRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='logto' - { - newLeafNode(otherlv_3, grammarAccess.getUpdatedauditAccess().getLogtoKeyword_3()); - } - ( - ( - lv_logsink_4_0=RULE_STRING - { - newLeafNode(lv_logsink_4_0, grammarAccess.getUpdatedauditAccess().getLogsinkSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getUpdatedauditRule()); - } - setWithLastConsumed( - $current, - "logsink", - lv_logsink_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='in' - { - newLeafNode(otherlv_5, grammarAccess.getUpdatedauditAccess().getInKeyword_5()); - } - ( - ( - lv_datasource_6_0=RULE_STRING - { - newLeafNode(lv_datasource_6_0, grammarAccess.getUpdatedauditAccess().getDatasourceSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getUpdatedauditRule()); - } - setWithLastConsumed( - $current, - "datasource", - lv_datasource_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='using' - { - newLeafNode(otherlv_7, grammarAccess.getUpdatedauditAccess().getUsingKeyword_7()); - } - otherlv_8='{' - { - newLeafNode(otherlv_8, grammarAccess.getUpdatedauditAccess().getLeftCurlyBracketKeyword_8()); - } - ( - ( - { - newCompositeNode(grammarAccess.getUpdatedauditAccess().getValueSelectStatementParserRuleCall_9_0()); - } - lv_value_9_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getUpdatedauditRule()); - } - set( - $current, - "value", - lv_value_9_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_10='}' - { - newLeafNode(otherlv_10, grammarAccess.getUpdatedauditAccess().getRightCurlyBracketKeyword_10()); - } - otherlv_11='on-condition' - { - newLeafNode(otherlv_11, grammarAccess.getUpdatedauditAccess().getOnConditionKeyword_11()); - } - ( - ( - { - newCompositeNode(grammarAccess.getUpdatedauditAccess().getConditionExpressionParserRuleCall_12_0()); - } - lv_condition_12_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getUpdatedauditRule()); - } - set( - $current, - "condition", - lv_condition_12_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleClickSendSms -entryRuleClickSendSms returns [EObject current=null]: - { newCompositeNode(grammarAccess.getClickSendSmsRule()); } - iv_ruleClickSendSms=ruleClickSendSms - { $current=$iv_ruleClickSendSms.current; } - EOF; - -// Rule ClickSendSms -ruleClickSendSms returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='c2sms' - { - newLeafNode(otherlv_0, grammarAccess.getClickSendSmsAccess().getC2smsKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getClickSendSmsAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getClickSendSmsAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getClickSendSmsRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='with-user' - { - newLeafNode(otherlv_3, grammarAccess.getClickSendSmsAccess().getWithUserKeyword_3()); - } - ( - ( - lv_userid_4_0=RULE_STRING - { - newLeafNode(lv_userid_4_0, grammarAccess.getClickSendSmsAccess().getUseridSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getClickSendSmsRule()); - } - setWithLastConsumed( - $current, - "userid", - lv_userid_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='secured-by' - { - newLeafNode(otherlv_5, grammarAccess.getClickSendSmsAccess().getSecuredByKeyword_5()); - } - ( - ( - lv_securityKey_6_0=RULE_STRING - { - newLeafNode(lv_securityKey_6_0, grammarAccess.getClickSendSmsAccess().getSecurityKeySTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getClickSendSmsRule()); - } - setWithLastConsumed( - $current, - "securityKey", - lv_securityKey_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='from-source' - { - newLeafNode(otherlv_7, grammarAccess.getClickSendSmsAccess().getFromSourceKeyword_7()); - } - ( - ( - lv_target_8_0=RULE_STRING - { - newLeafNode(lv_target_8_0, grammarAccess.getClickSendSmsAccess().getTargetSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getClickSendSmsRule()); - } - setWithLastConsumed( - $current, - "target", - lv_target_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='using' - { - newLeafNode(otherlv_9, grammarAccess.getClickSendSmsAccess().getUsingKeyword_9()); - } - otherlv_10='{' - { - newLeafNode(otherlv_10, grammarAccess.getClickSendSmsAccess().getLeftCurlyBracketKeyword_10()); - } - ( - ( - lv_value_11_0=RULE_STRING - { - newLeafNode(lv_value_11_0, grammarAccess.getClickSendSmsAccess().getValueSTRINGTerminalRuleCall_11_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getClickSendSmsRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_11_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_12='}' - { - newLeafNode(otherlv_12, grammarAccess.getClickSendSmsAccess().getRightCurlyBracketKeyword_12()); - } - otherlv_13='on-condition' - { - newLeafNode(otherlv_13, grammarAccess.getClickSendSmsAccess().getOnConditionKeyword_13()); - } - ( - ( - { - newCompositeNode(grammarAccess.getClickSendSmsAccess().getConditionExpressionParserRuleCall_14_0()); - } - lv_condition_14_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getClickSendSmsRule()); - } - set( - $current, - "condition", - lv_condition_14_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleSlackPUT -entryRuleSlackPUT returns [EObject current=null]: - { newCompositeNode(grammarAccess.getSlackPUTRule()); } - iv_ruleSlackPUT=ruleSlackPUT - { $current=$iv_ruleSlackPUT.current; } - EOF; - -// Rule SlackPUT -ruleSlackPUT returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='slackput' - { - newLeafNode(otherlv_0, grammarAccess.getSlackPUTAccess().getSlackputKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getSlackPUTAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getSlackPUTAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSlackPUTRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='to' - { - newLeafNode(otherlv_3, grammarAccess.getSlackPUTAccess().getToKeyword_3()); - } - ( - ( - lv_team_4_0=RULE_STRING - { - newLeafNode(lv_team_4_0, grammarAccess.getSlackPUTAccess().getTeamSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSlackPUTRule()); - } - setWithLastConsumed( - $current, - "team", - lv_team_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='on' - { - newLeafNode(otherlv_5, grammarAccess.getSlackPUTAccess().getOnKeyword_5()); - } - ( - ( - lv_channel_6_0=RULE_STRING - { - newLeafNode(lv_channel_6_0, grammarAccess.getSlackPUTAccess().getChannelSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSlackPUTRule()); - } - setWithLastConsumed( - $current, - "channel", - lv_channel_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='using' - { - newLeafNode(otherlv_7, grammarAccess.getSlackPUTAccess().getUsingKeyword_7()); - } - otherlv_8='{' - { - newLeafNode(otherlv_8, grammarAccess.getSlackPUTAccess().getLeftCurlyBracketKeyword_8()); - } - ( - ( - lv_value_9_0=RULE_STRING - { - newLeafNode(lv_value_9_0, grammarAccess.getSlackPUTAccess().getValueSTRINGTerminalRuleCall_9_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getSlackPUTRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_9_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_10='}' - { - newLeafNode(otherlv_10, grammarAccess.getSlackPUTAccess().getRightCurlyBracketKeyword_10()); - } - otherlv_11='on-condition' - { - newLeafNode(otherlv_11, grammarAccess.getSlackPUTAccess().getOnConditionKeyword_11()); - } - ( - ( - { - newCompositeNode(grammarAccess.getSlackPUTAccess().getConditionExpressionParserRuleCall_12_0()); - } - lv_condition_12_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getSlackPUTRule()); - } - set( - $current, - "condition", - lv_condition_12_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleCopydata -entryRuleCopydata returns [EObject current=null]: - { newCompositeNode(grammarAccess.getCopydataRule()); } - iv_ruleCopydata=ruleCopydata - { $current=$iv_ruleCopydata.current; } - EOF; - -// Rule Copydata -ruleCopydata returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='copydata' - { - newLeafNode(otherlv_0, grammarAccess.getCopydataAccess().getCopydataKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getCopydataAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getCopydataAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='from' - { - newLeafNode(otherlv_3, grammarAccess.getCopydataAccess().getFromKeyword_3()); - } - ( - ( - lv_source_4_0=RULE_STRING - { - newLeafNode(lv_source_4_0, grammarAccess.getCopydataAccess().getSourceSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - $current, - "source", - lv_source_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='to' - { - newLeafNode(otherlv_5, grammarAccess.getCopydataAccess().getToKeyword_5()); - } - ( - ( - lv_to_6_0=RULE_STRING - { - newLeafNode(lv_to_6_0, grammarAccess.getCopydataAccess().getToSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - $current, - "to", - lv_to_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='using' - { - newLeafNode(otherlv_7, grammarAccess.getCopydataAccess().getUsingKeyword_7()); - } - otherlv_8='{' - { - newLeafNode(otherlv_8, grammarAccess.getCopydataAccess().getLeftCurlyBracketKeyword_8()); - } - ( - ( - lv_value_9_0=RULE_STRING - { - newLeafNode(lv_value_9_0, grammarAccess.getCopydataAccess().getValueSTRINGTerminalRuleCall_9_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - $current, - "value", - lv_value_9_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_10='}' - { - newLeafNode(otherlv_10, grammarAccess.getCopydataAccess().getRightCurlyBracketKeyword_10()); - } - otherlv_11='on-condition' - { - newLeafNode(otherlv_11, grammarAccess.getCopydataAccess().getOnConditionKeyword_11()); - } - ( - ( - { - newCompositeNode(grammarAccess.getCopydataAccess().getConditionExpressionParserRuleCall_12_0()); - } - lv_condition_12_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getCopydataRule()); - } - set( - $current, - "condition", - lv_condition_12_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_13='fielding' - { - newLeafNode(otherlv_13, grammarAccess.getCopydataAccess().getFieldingKeyword_13()); - } - ( - ( - lv_writeThreadCount_14_0=RULE_STRING - { - newLeafNode(lv_writeThreadCount_14_0, grammarAccess.getCopydataAccess().getWriteThreadCountSTRINGTerminalRuleCall_14_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - $current, - "writeThreadCount", - lv_writeThreadCount_14_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_15='with-fetch-batch-size' - { - newLeafNode(otherlv_15, grammarAccess.getCopydataAccess().getWithFetchBatchSizeKeyword_15()); - } - ( - ( - lv_fetchBatchSize_16_0=RULE_STRING - { - newLeafNode(lv_fetchBatchSize_16_0, grammarAccess.getCopydataAccess().getFetchBatchSizeSTRINGTerminalRuleCall_16_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - $current, - "fetchBatchSize", - lv_fetchBatchSize_16_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_17='with-write-batch-size' - { - newLeafNode(otherlv_17, grammarAccess.getCopydataAccess().getWithWriteBatchSizeKeyword_17()); - } - ( - ( - lv_writeBatchSize_18_0=RULE_STRING - { - newLeafNode(lv_writeBatchSize_18_0, grammarAccess.getCopydataAccess().getWriteBatchSizeSTRINGTerminalRuleCall_18_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - $current, - "writeBatchSize", - lv_writeBatchSize_18_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - ) -; - -// Entry rule entryRuleWriteCsv -entryRuleWriteCsv returns [EObject current=null]: - { newCompositeNode(grammarAccess.getWriteCsvRule()); } - iv_ruleWriteCsv=ruleWriteCsv - { $current=$iv_ruleWriteCsv.current; } - EOF; - -// Rule WriteCsv -ruleWriteCsv returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='writecsv' - { - newLeafNode(otherlv_0, grammarAccess.getWriteCsvAccess().getWritecsvKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getWriteCsvAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getWriteCsvAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getWriteCsvRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='from' - { - newLeafNode(otherlv_3, grammarAccess.getWriteCsvAccess().getFromKeyword_3()); - } - ( - ( - lv_source_4_0=RULE_STRING - { - newLeafNode(lv_source_4_0, grammarAccess.getWriteCsvAccess().getSourceSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getWriteCsvRule()); - } - setWithLastConsumed( - $current, - "source", - lv_source_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='to' - { - newLeafNode(otherlv_5, grammarAccess.getWriteCsvAccess().getToKeyword_5()); - } - ( - ( - lv_to_6_0=RULE_STRING - { - newLeafNode(lv_to_6_0, grammarAccess.getWriteCsvAccess().getToSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getWriteCsvRule()); - } - setWithLastConsumed( - $current, - "to", - lv_to_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='with' - { - newLeafNode(otherlv_7, grammarAccess.getWriteCsvAccess().getWithKeyword_7()); - } - ( - ( - lv_delim_8_0=RULE_STRING - { - newLeafNode(lv_delim_8_0, grammarAccess.getWriteCsvAccess().getDelimSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getWriteCsvRule()); - } - setWithLastConsumed( - $current, - "delim", - lv_delim_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='using' - { - newLeafNode(otherlv_9, grammarAccess.getWriteCsvAccess().getUsingKeyword_9()); - } - otherlv_10='{' - { - newLeafNode(otherlv_10, grammarAccess.getWriteCsvAccess().getLeftCurlyBracketKeyword_10()); - } - ( - ( - { - newCompositeNode(grammarAccess.getWriteCsvAccess().getValueSelectStatementParserRuleCall_11_0()); - } - lv_value_11_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getWriteCsvRule()); - } - set( - $current, - "value", - lv_value_11_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_12='}' - { - newLeafNode(otherlv_12, grammarAccess.getWriteCsvAccess().getRightCurlyBracketKeyword_12()); - } - otherlv_13='on-condition' - { - newLeafNode(otherlv_13, grammarAccess.getWriteCsvAccess().getOnConditionKeyword_13()); - } - ( - ( - { - newCompositeNode(grammarAccess.getWriteCsvAccess().getConditionExpressionParserRuleCall_14_0()); - } - lv_condition_14_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getWriteCsvRule()); - } - set( - $current, - "condition", - lv_condition_14_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleLoadCsv -entryRuleLoadCsv returns [EObject current=null]: - { newCompositeNode(grammarAccess.getLoadCsvRule()); } - iv_ruleLoadCsv=ruleLoadCsv - { $current=$iv_ruleLoadCsv.current; } - EOF; - -// Rule LoadCsv -ruleLoadCsv returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='loadcsv' - { - newLeafNode(otherlv_0, grammarAccess.getLoadCsvAccess().getLoadcsvKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getLoadCsvAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getLoadCsvAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='from' - { - newLeafNode(otherlv_3, grammarAccess.getLoadCsvAccess().getFromKeyword_3()); - } - ( - ( - lv_source_4_0=RULE_STRING - { - newLeafNode(lv_source_4_0, grammarAccess.getLoadCsvAccess().getSourceSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - $current, - "source", - lv_source_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='to' - { - newLeafNode(otherlv_5, grammarAccess.getLoadCsvAccess().getToKeyword_5()); - } - ( - ( - lv_to_6_0=RULE_STRING - { - newLeafNode(lv_to_6_0, grammarAccess.getLoadCsvAccess().getToSTRINGTerminalRuleCall_6_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - $current, - "to", - lv_to_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_7='with' - { - newLeafNode(otherlv_7, grammarAccess.getLoadCsvAccess().getWithKeyword_7()); - } - ( - ( - lv_delim_8_0=RULE_STRING - { - newLeafNode(lv_delim_8_0, grammarAccess.getLoadCsvAccess().getDelimSTRINGTerminalRuleCall_8_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - $current, - "delim", - lv_delim_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_9='with-fetch-batch-size' - { - newLeafNode(otherlv_9, grammarAccess.getLoadCsvAccess().getWithFetchBatchSizeKeyword_9()); - } - ( - ( - lv_fetchBatchSize_10_0=RULE_INT - { - newLeafNode(lv_fetchBatchSize_10_0, grammarAccess.getLoadCsvAccess().getFetchBatchSizeINTTerminalRuleCall_10_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - $current, - "fetchBatchSize", - lv_fetchBatchSize_10_0, - "org.eclipse.xtext.common.Terminals.INT"); - } - ) - ) - otherlv_11='with-write-batch-size' - { - newLeafNode(otherlv_11, grammarAccess.getLoadCsvAccess().getWithWriteBatchSizeKeyword_11()); - } - ( - ( - lv_writeBatchSize_12_0=RULE_INT - { - newLeafNode(lv_writeBatchSize_12_0, grammarAccess.getLoadCsvAccess().getWriteBatchSizeINTTerminalRuleCall_12_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - $current, - "writeBatchSize", - lv_writeBatchSize_12_0, - "org.eclipse.xtext.common.Terminals.INT"); - } - ) - ) - otherlv_13='using' - { - newLeafNode(otherlv_13, grammarAccess.getLoadCsvAccess().getUsingKeyword_13()); - } - otherlv_14='{' - { - newLeafNode(otherlv_14, grammarAccess.getLoadCsvAccess().getLeftCurlyBracketKeyword_14()); - } - ( - ( - { - newCompositeNode(grammarAccess.getLoadCsvAccess().getValueSelectStatementParserRuleCall_15_0()); - } - lv_value_15_0=ruleSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getLoadCsvRule()); - } - set( - $current, - "value", - lv_value_15_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_16='}' - { - newLeafNode(otherlv_16, grammarAccess.getLoadCsvAccess().getRightCurlyBracketKeyword_16()); - } - otherlv_17='on-condition' - { - newLeafNode(otherlv_17, grammarAccess.getLoadCsvAccess().getOnConditionKeyword_17()); - } - ( - ( - { - newCompositeNode(grammarAccess.getLoadCsvAccess().getConditionExpressionParserRuleCall_18_0()); - } - lv_condition_18_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getLoadCsvRule()); - } - set( - $current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_19='fielding' - { - newLeafNode(otherlv_19, grammarAccess.getLoadCsvAccess().getFieldingKeyword_19()); - } - ( - ( - lv_writeThreadCount_20_0=RULE_INT - { - newLeafNode(lv_writeThreadCount_20_0, grammarAccess.getLoadCsvAccess().getWriteThreadCountINTTerminalRuleCall_20_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - $current, - "writeThreadCount", - lv_writeThreadCount_20_0, - "org.eclipse.xtext.common.Terminals.INT"); - } - ) - ) - ) -; - -// Entry rule entryRuleTransform -entryRuleTransform returns [EObject current=null]: - { newCompositeNode(grammarAccess.getTransformRule()); } - iv_ruleTransform=ruleTransform - { $current=$iv_ruleTransform.current; } - EOF; - -// Rule Transform -ruleTransform returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='transform' - { - newLeafNode(otherlv_0, grammarAccess.getTransformAccess().getTransformKeyword_0()); - } - otherlv_1='as' - { - newLeafNode(otherlv_1, grammarAccess.getTransformAccess().getAsKeyword_1()); - } - ( - ( - lv_name_2_0=RULE_STRING - { - newLeafNode(lv_name_2_0, grammarAccess.getTransformAccess().getNameSTRINGTerminalRuleCall_2_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTransformRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_3='on' - { - newLeafNode(otherlv_3, grammarAccess.getTransformAccess().getOnKeyword_3()); - } - ( - ( - lv_on_4_0=RULE_STRING - { - newLeafNode(lv_on_4_0, grammarAccess.getTransformAccess().getOnSTRINGTerminalRuleCall_4_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getTransformRule()); - } - setWithLastConsumed( - $current, - "on", - lv_on_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_5='using' - { - newLeafNode(otherlv_5, grammarAccess.getTransformAccess().getUsingKeyword_5()); - } - otherlv_6='{' - { - newLeafNode(otherlv_6, grammarAccess.getTransformAccess().getLeftCurlyBracketKeyword_6()); - } - ( - ( - { - newCompositeNode(grammarAccess.getTransformAccess().getValueNonSelectStatementParserRuleCall_7_0()); - } - lv_value_7_0=ruleNonSelectStatement - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getTransformRule()); - } - add( - $current, - "value", - lv_value_7_0, - "in.handyman.Dsl.NonSelectStatement"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_8='}' - { - newLeafNode(otherlv_8, grammarAccess.getTransformAccess().getRightCurlyBracketKeyword_8()); - } - otherlv_9='on-condition' - { - newLeafNode(otherlv_9, grammarAccess.getTransformAccess().getOnConditionKeyword_9()); - } - ( - ( - { - newCompositeNode(grammarAccess.getTransformAccess().getConditionExpressionParserRuleCall_10_0()); - } - lv_condition_10_0=ruleExpression - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getTransformRule()); - } - set( - $current, - "condition", - lv_condition_10_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - } - ) - ) - ) -; - -// Entry rule entryRuleSelectStatement -entryRuleSelectStatement returns [String current=null]: - { newCompositeNode(grammarAccess.getSelectStatementRule()); } - iv_ruleSelectStatement=ruleSelectStatement - { $current=$iv_ruleSelectStatement.current.getText(); } - EOF; - -// Rule SelectStatement -ruleSelectStatement returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - this_STRING_0=RULE_STRING - { - $current.merge(this_STRING_0); - } - { - newLeafNode(this_STRING_0, grammarAccess.getSelectStatementAccess().getSTRINGTerminalRuleCall()); - } -; - -// Entry rule entryRuleNonSelectStatement -entryRuleNonSelectStatement returns [String current=null]: - { newCompositeNode(grammarAccess.getNonSelectStatementRule()); } - iv_ruleNonSelectStatement=ruleNonSelectStatement - { $current=$iv_ruleNonSelectStatement.current.getText(); } - EOF; - -// Rule NonSelectStatement -ruleNonSelectStatement returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - this_STRING_0=RULE_STRING - { - $current.merge(this_STRING_0); - } - { - newLeafNode(this_STRING_0, grammarAccess.getNonSelectStatementAccess().getSTRINGTerminalRuleCall()); - } -; - -// Entry rule entryRuleCreateStatement -entryRuleCreateStatement returns [String current=null]: - { newCompositeNode(grammarAccess.getCreateStatementRule()); } - iv_ruleCreateStatement=ruleCreateStatement - { $current=$iv_ruleCreateStatement.current.getText(); } - EOF; - -// Rule CreateStatement -ruleCreateStatement returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - this_STRING_0=RULE_STRING - { - $current.merge(this_STRING_0); - } - { - newLeafNode(this_STRING_0, grammarAccess.getCreateStatementAccess().getSTRINGTerminalRuleCall()); - } -; - -// Entry rule entryRuleStartProcess -entryRuleStartProcess returns [EObject current=null]: - { newCompositeNode(grammarAccess.getStartProcessRule()); } - iv_ruleStartProcess=ruleStartProcess - { $current=$iv_ruleStartProcess.current; } - EOF; - -// Rule StartProcess -ruleStartProcess returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='start-process' - { - newLeafNode(otherlv_0, grammarAccess.getStartProcessAccess().getStartProcessKeyword_0()); - } - ( - ( - lv_name_1_0=RULE_STRING - { - newLeafNode(lv_name_1_0, grammarAccess.getStartProcessAccess().getNameSTRINGTerminalRuleCall_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getStartProcessRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - otherlv_2='with-file' - { - newLeafNode(otherlv_2, grammarAccess.getStartProcessAccess().getWithFileKeyword_2()); - } - ( - ( - lv_target_3_0=RULE_STRING - { - newLeafNode(lv_target_3_0, grammarAccess.getStartProcessAccess().getTargetSTRINGTerminalRuleCall_3_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getStartProcessRule()); - } - setWithLastConsumed( - $current, - "target", - lv_target_3_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - ) -; - -// Entry rule entryRuleExpression -entryRuleExpression returns [EObject current=null]: - { newCompositeNode(grammarAccess.getExpressionRule()); } - iv_ruleExpression=ruleExpression - { $current=$iv_ruleExpression.current; } - EOF; - -// Rule Expression -ruleExpression returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='if' - { - newLeafNode(otherlv_0, grammarAccess.getExpressionAccess().getIfKeyword_0()); - } - ( - ( - lv_lhs_1_0=RULE_STRING - { - newLeafNode(lv_lhs_1_0, grammarAccess.getExpressionAccess().getLhsSTRINGTerminalRuleCall_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getExpressionRule()); - } - setWithLastConsumed( - $current, - "lhs", - lv_lhs_1_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - ( - ( - { - newCompositeNode(grammarAccess.getExpressionAccess().getOperatorOperatorParserRuleCall_2_0()); - } - lv_operator_2_0=ruleOperator - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getExpressionRule()); - } - set( - $current, - "operator", - lv_operator_2_0, - "in.handyman.Dsl.Operator"); - afterParserOrEnumRuleCall(); - } - ) - ) - ( - ( - lv_rhs_3_0=RULE_STRING - { - newLeafNode(lv_rhs_3_0, grammarAccess.getExpressionAccess().getRhsSTRINGTerminalRuleCall_3_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getExpressionRule()); - } - setWithLastConsumed( - $current, - "rhs", - lv_rhs_3_0, - "org.eclipse.xtext.common.Terminals.STRING"); - } - ) - ) - ) -; - -// Entry rule entryRuleOperator -entryRuleOperator returns [String current=null]: - { newCompositeNode(grammarAccess.getOperatorRule()); } - iv_ruleOperator=ruleOperator - { $current=$iv_ruleOperator.current.getText(); } - EOF; - -// Rule Operator -ruleOperator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - kw='<' - { - $current.merge(kw); - newLeafNode(kw, grammarAccess.getOperatorAccess().getLessThanSignKeyword_0()); - } - | - kw='>' - { - $current.merge(kw); - newLeafNode(kw, grammarAccess.getOperatorAccess().getGreaterThanSignKeyword_1()); - } - | - kw='==' - { - $current.merge(kw); - newLeafNode(kw, grammarAccess.getOperatorAccess().getEqualsSignEqualsSignKeyword_2()); - } - | - kw='contains' - { - $current.merge(kw); - newLeafNode(kw, grammarAccess.getOperatorAccess().getContainsKeyword_3()); - } - ) -; - -RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; - -RULE_INT : ('0'..'9')+; - -RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\''); - -RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; - -RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?; - -RULE_WS : (' '|'\t'|'\r'|'\n')+; - -RULE_ANY_OTHER : .; diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDsl.tokens b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDsl.tokens deleted file mode 100644 index 8b243a05..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDsl.tokens +++ /dev/null @@ -1,185 +0,0 @@ -'<'=96 -'=='=98 -'>'=97 -'abort'=39 -'and-method-as'=60 -'as'=18 -'assign'=74 -'auth-by'=29 -'c2sms'=83 -'callprocess'=76 -'catch'=16 -'contains'=99 -'copydata'=86 -'do-dryrun-with'=38 -'dogleg'=22 -'doozle'=56 -'dropfile'=54 -'fbdp'=27 -'fbfd'=52 -'fblc'=48 -'fbrn'=33 -'fielding'=87 -'finally'=15 -'for-campaign'=50 -'for-every'=77 -'for-form'=53 -'for-group'=30 -'for-list'=73 -'for-project'=42 -'forkprocess'=78 -'from'=61 -'from-board'=70 -'from-file'=20 -'from-source'=31 -'gcalendar'=47 -'gcontact'=46 -'gcontact-fetchall'=40 -'if'=95 -'in'=82 -'in-path'=55 -'in-table'=57 -'into'=51 -'java'=25 -'loadcsv'=91 -'log'=80 -'logto'=81 -'name-sake-db'=26 -'on'=28 -'on-behalf-of'=43 -'on-condition'=21 -'parent'=65 -'part'=67 -'process'=11 -'rest'=58 -'secured-by'=37 -'sendmail'=45 -'slackput'=85 -'smsleadssms'=34 -'source'=75 -'spawn'=17 -'start-process'=93 -'store-ack-at'=66 -'through-account'=36 -'through-user'=49 -'to'=71 -'to-target'=44 -'transform'=92 -'trelloget'=69 -'trelloput'=72 -'try'=14 -'update-body-with'=64 -'update-header-with'=63 -'update-url-with'=62 -'use-parent-context'=23 -'using'=24 -'watermark'=79 -'with'=68 -'with-class'=32 -'with-fetch-batch-size'=88 -'with-file'=94 -'with-key'=41 -'with-sender'=35 -'with-target'=19 -'with-url'=59 -'with-user'=84 -'with-write-batch-size'=89 -'writecsv'=90 -'{'=12 -'}'=13 -RULE_ANY_OTHER=10 -RULE_ID=5 -RULE_INT=6 -RULE_ML_COMMENT=7 -RULE_SL_COMMENT=8 -RULE_STRING=4 -RULE_WS=9 -T__11=11 -T__12=12 -T__13=13 -T__14=14 -T__15=15 -T__16=16 -T__17=17 -T__18=18 -T__19=19 -T__20=20 -T__21=21 -T__22=22 -T__23=23 -T__24=24 -T__25=25 -T__26=26 -T__27=27 -T__28=28 -T__29=29 -T__30=30 -T__31=31 -T__32=32 -T__33=33 -T__34=34 -T__35=35 -T__36=36 -T__37=37 -T__38=38 -T__39=39 -T__40=40 -T__41=41 -T__42=42 -T__43=43 -T__44=44 -T__45=45 -T__46=46 -T__47=47 -T__48=48 -T__49=49 -T__50=50 -T__51=51 -T__52=52 -T__53=53 -T__54=54 -T__55=55 -T__56=56 -T__57=57 -T__58=58 -T__59=59 -T__60=60 -T__61=61 -T__62=62 -T__63=63 -T__64=64 -T__65=65 -T__66=66 -T__67=67 -T__68=68 -T__69=69 -T__70=70 -T__71=71 -T__72=72 -T__73=73 -T__74=74 -T__75=75 -T__76=76 -T__77=77 -T__78=78 -T__79=79 -T__80=80 -T__81=81 -T__82=82 -T__83=83 -T__84=84 -T__85=85 -T__86=86 -T__87=87 -T__88=88 -T__89=89 -T__90=90 -T__91=91 -T__92=92 -T__93=93 -T__94=94 -T__95=95 -T__96=96 -T__97=97 -T__98=98 -T__99=99 diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDslLexer.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDslLexer.java deleted file mode 100644 index c0d58e2a..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDslLexer.java +++ /dev/null @@ -1,3693 +0,0 @@ -package in.handyman.parser.antlr.internal; - -// Hack: Use our own Lexer superclass by means of import. -// Currently there is no other way to specify the superclass for the lexer. -import org.eclipse.xtext.parser.antlr.Lexer; - - -import org.antlr.runtime.*; -import java.util.Stack; -import java.util.List; -import java.util.ArrayList; - -@SuppressWarnings("all") -public class InternalDslLexer extends Lexer { - public static final int T__50=50; - public static final int T__59=59; - public static final int T__55=55; - public static final int T__56=56; - public static final int T__57=57; - public static final int T__58=58; - public static final int T__51=51; - public static final int T__52=52; - public static final int T__53=53; - public static final int T__54=54; - public static final int T__60=60; - public static final int T__61=61; - public static final int RULE_ID=5; - public static final int RULE_INT=6; - public static final int T__66=66; - public static final int RULE_ML_COMMENT=7; - public static final int T__67=67; - public static final int T__68=68; - public static final int T__69=69; - public static final int T__62=62; - public static final int T__63=63; - public static final int T__64=64; - public static final int T__65=65; - public static final int T__37=37; - public static final int T__38=38; - public static final int T__39=39; - public static final int T__33=33; - public static final int T__34=34; - public static final int T__35=35; - public static final int T__36=36; - public static final int T__30=30; - public static final int T__31=31; - public static final int T__32=32; - public static final int T__48=48; - public static final int T__49=49; - public static final int T__44=44; - public static final int T__45=45; - public static final int T__46=46; - public static final int T__47=47; - public static final int T__40=40; - public static final int T__41=41; - public static final int T__42=42; - public static final int T__43=43; - public static final int T__91=91; - public static final int T__92=92; - public static final int T__93=93; - public static final int T__94=94; - public static final int T__90=90; - public static final int T__19=19; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; - public static final int T__11=11; - public static final int T__99=99; - public static final int T__12=12; - public static final int T__13=13; - public static final int T__14=14; - public static final int T__95=95; - public static final int T__96=96; - public static final int T__97=97; - public static final int T__98=98; - public static final int T__26=26; - public static final int T__27=27; - public static final int T__28=28; - public static final int T__29=29; - public static final int T__22=22; - public static final int T__23=23; - public static final int T__24=24; - public static final int T__25=25; - public static final int T__20=20; - public static final int T__21=21; - public static final int T__70=70; - public static final int T__71=71; - public static final int T__72=72; - public static final int RULE_STRING=4; - public static final int RULE_SL_COMMENT=8; - public static final int T__77=77; - public static final int T__78=78; - public static final int T__79=79; - public static final int T__73=73; - public static final int EOF=-1; - public static final int T__74=74; - public static final int T__75=75; - public static final int T__76=76; - public static final int T__80=80; - public static final int T__81=81; - public static final int T__82=82; - public static final int T__83=83; - public static final int RULE_WS=9; - public static final int RULE_ANY_OTHER=10; - public static final int T__88=88; - public static final int T__89=89; - public static final int T__84=84; - public static final int T__85=85; - public static final int T__86=86; - public static final int T__87=87; - - // delegates - // delegators - - public InternalDslLexer() {;} - public InternalDslLexer(CharStream input) { - this(input, new RecognizerSharedState()); - } - public InternalDslLexer(CharStream input, RecognizerSharedState state) { - super(input,state); - - } - public String getGrammarFileName() { return "InternalDsl.g"; } - - // $ANTLR start "T__11" - public final void mT__11() throws RecognitionException { - try { - int _type = T__11; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:11:7: ( 'process' ) - // InternalDsl.g:11:9: 'process' - { - match("process"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__11" - - // $ANTLR start "T__12" - public final void mT__12() throws RecognitionException { - try { - int _type = T__12; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:12:7: ( '{' ) - // InternalDsl.g:12:9: '{' - { - match('{'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__12" - - // $ANTLR start "T__13" - public final void mT__13() throws RecognitionException { - try { - int _type = T__13; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:13:7: ( '}' ) - // InternalDsl.g:13:9: '}' - { - match('}'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__13" - - // $ANTLR start "T__14" - public final void mT__14() throws RecognitionException { - try { - int _type = T__14; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:14:7: ( 'try' ) - // InternalDsl.g:14:9: 'try' - { - match("try"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__14" - - // $ANTLR start "T__15" - public final void mT__15() throws RecognitionException { - try { - int _type = T__15; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:15:7: ( 'finally' ) - // InternalDsl.g:15:9: 'finally' - { - match("finally"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__15" - - // $ANTLR start "T__16" - public final void mT__16() throws RecognitionException { - try { - int _type = T__16; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:16:7: ( 'catch' ) - // InternalDsl.g:16:9: 'catch' - { - match("catch"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__16" - - // $ANTLR start "T__17" - public final void mT__17() throws RecognitionException { - try { - int _type = T__17; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:17:7: ( 'spawn' ) - // InternalDsl.g:17:9: 'spawn' - { - match("spawn"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__17" - - // $ANTLR start "T__18" - public final void mT__18() throws RecognitionException { - try { - int _type = T__18; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:18:7: ( 'as' ) - // InternalDsl.g:18:9: 'as' - { - match("as"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__18" - - // $ANTLR start "T__19" - public final void mT__19() throws RecognitionException { - try { - int _type = T__19; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:19:7: ( 'with-target' ) - // InternalDsl.g:19:9: 'with-target' - { - match("with-target"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__19" - - // $ANTLR start "T__20" - public final void mT__20() throws RecognitionException { - try { - int _type = T__20; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:20:7: ( 'from-file' ) - // InternalDsl.g:20:9: 'from-file' - { - match("from-file"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__20" - - // $ANTLR start "T__21" - public final void mT__21() throws RecognitionException { - try { - int _type = T__21; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:21:7: ( 'on-condition' ) - // InternalDsl.g:21:9: 'on-condition' - { - match("on-condition"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__21" - - // $ANTLR start "T__22" - public final void mT__22() throws RecognitionException { - try { - int _type = T__22; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:22:7: ( 'dogleg' ) - // InternalDsl.g:22:9: 'dogleg' - { - match("dogleg"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__22" - - // $ANTLR start "T__23" - public final void mT__23() throws RecognitionException { - try { - int _type = T__23; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:23:7: ( 'use-parent-context' ) - // InternalDsl.g:23:9: 'use-parent-context' - { - match("use-parent-context"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__23" - - // $ANTLR start "T__24" - public final void mT__24() throws RecognitionException { - try { - int _type = T__24; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:24:7: ( 'using' ) - // InternalDsl.g:24:9: 'using' - { - match("using"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__24" - - // $ANTLR start "T__25" - public final void mT__25() throws RecognitionException { - try { - int _type = T__25; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:25:7: ( 'java' ) - // InternalDsl.g:25:9: 'java' - { - match("java"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__25" - - // $ANTLR start "T__26" - public final void mT__26() throws RecognitionException { - try { - int _type = T__26; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:26:7: ( 'name-sake-db' ) - // InternalDsl.g:26:9: 'name-sake-db' - { - match("name-sake-db"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__26" - - // $ANTLR start "T__27" - public final void mT__27() throws RecognitionException { - try { - int _type = T__27; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:27:7: ( 'fbdp' ) - // InternalDsl.g:27:9: 'fbdp' - { - match("fbdp"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__27" - - // $ANTLR start "T__28" - public final void mT__28() throws RecognitionException { - try { - int _type = T__28; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:28:7: ( 'on' ) - // InternalDsl.g:28:9: 'on' - { - match("on"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__28" - - // $ANTLR start "T__29" - public final void mT__29() throws RecognitionException { - try { - int _type = T__29; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:29:7: ( 'auth-by' ) - // InternalDsl.g:29:9: 'auth-by' - { - match("auth-by"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__29" - - // $ANTLR start "T__30" - public final void mT__30() throws RecognitionException { - try { - int _type = T__30; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:30:7: ( 'for-group' ) - // InternalDsl.g:30:9: 'for-group' - { - match("for-group"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__30" - - // $ANTLR start "T__31" - public final void mT__31() throws RecognitionException { - try { - int _type = T__31; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:31:7: ( 'from-source' ) - // InternalDsl.g:31:9: 'from-source' - { - match("from-source"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__31" - - // $ANTLR start "T__32" - public final void mT__32() throws RecognitionException { - try { - int _type = T__32; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:32:7: ( 'with-class' ) - // InternalDsl.g:32:9: 'with-class' - { - match("with-class"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__32" - - // $ANTLR start "T__33" - public final void mT__33() throws RecognitionException { - try { - int _type = T__33; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:33:7: ( 'fbrn' ) - // InternalDsl.g:33:9: 'fbrn' - { - match("fbrn"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__33" - - // $ANTLR start "T__34" - public final void mT__34() throws RecognitionException { - try { - int _type = T__34; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:34:7: ( 'smsleadssms' ) - // InternalDsl.g:34:9: 'smsleadssms' - { - match("smsleadssms"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__34" - - // $ANTLR start "T__35" - public final void mT__35() throws RecognitionException { - try { - int _type = T__35; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:35:7: ( 'with-sender' ) - // InternalDsl.g:35:9: 'with-sender' - { - match("with-sender"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__35" - - // $ANTLR start "T__36" - public final void mT__36() throws RecognitionException { - try { - int _type = T__36; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:36:7: ( 'through-account' ) - // InternalDsl.g:36:9: 'through-account' - { - match("through-account"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__36" - - // $ANTLR start "T__37" - public final void mT__37() throws RecognitionException { - try { - int _type = T__37; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:37:7: ( 'secured-by' ) - // InternalDsl.g:37:9: 'secured-by' - { - match("secured-by"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__37" - - // $ANTLR start "T__38" - public final void mT__38() throws RecognitionException { - try { - int _type = T__38; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:38:7: ( 'do-dryrun-with' ) - // InternalDsl.g:38:9: 'do-dryrun-with' - { - match("do-dryrun-with"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__38" - - // $ANTLR start "T__39" - public final void mT__39() throws RecognitionException { - try { - int _type = T__39; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:39:7: ( 'abort' ) - // InternalDsl.g:39:9: 'abort' - { - match("abort"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__39" - - // $ANTLR start "T__40" - public final void mT__40() throws RecognitionException { - try { - int _type = T__40; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:40:7: ( 'gcontact-fetchall' ) - // InternalDsl.g:40:9: 'gcontact-fetchall' - { - match("gcontact-fetchall"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__40" - - // $ANTLR start "T__41" - public final void mT__41() throws RecognitionException { - try { - int _type = T__41; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:41:7: ( 'with-key' ) - // InternalDsl.g:41:9: 'with-key' - { - match("with-key"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__41" - - // $ANTLR start "T__42" - public final void mT__42() throws RecognitionException { - try { - int _type = T__42; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:42:7: ( 'for-project' ) - // InternalDsl.g:42:9: 'for-project' - { - match("for-project"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__42" - - // $ANTLR start "T__43" - public final void mT__43() throws RecognitionException { - try { - int _type = T__43; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:43:7: ( 'on-behalf-of' ) - // InternalDsl.g:43:9: 'on-behalf-of' - { - match("on-behalf-of"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__43" - - // $ANTLR start "T__44" - public final void mT__44() throws RecognitionException { - try { - int _type = T__44; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:44:7: ( 'to-target' ) - // InternalDsl.g:44:9: 'to-target' - { - match("to-target"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__44" - - // $ANTLR start "T__45" - public final void mT__45() throws RecognitionException { - try { - int _type = T__45; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:45:7: ( 'sendmail' ) - // InternalDsl.g:45:9: 'sendmail' - { - match("sendmail"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__45" - - // $ANTLR start "T__46" - public final void mT__46() throws RecognitionException { - try { - int _type = T__46; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:46:7: ( 'gcontact' ) - // InternalDsl.g:46:9: 'gcontact' - { - match("gcontact"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__46" - - // $ANTLR start "T__47" - public final void mT__47() throws RecognitionException { - try { - int _type = T__47; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:47:7: ( 'gcalendar' ) - // InternalDsl.g:47:9: 'gcalendar' - { - match("gcalendar"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__47" - - // $ANTLR start "T__48" - public final void mT__48() throws RecognitionException { - try { - int _type = T__48; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:48:7: ( 'fblc' ) - // InternalDsl.g:48:9: 'fblc' - { - match("fblc"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__48" - - // $ANTLR start "T__49" - public final void mT__49() throws RecognitionException { - try { - int _type = T__49; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:49:7: ( 'through-user' ) - // InternalDsl.g:49:9: 'through-user' - { - match("through-user"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__49" - - // $ANTLR start "T__50" - public final void mT__50() throws RecognitionException { - try { - int _type = T__50; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:50:7: ( 'for-campaign' ) - // InternalDsl.g:50:9: 'for-campaign' - { - match("for-campaign"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__50" - - // $ANTLR start "T__51" - public final void mT__51() throws RecognitionException { - try { - int _type = T__51; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:51:7: ( 'into' ) - // InternalDsl.g:51:9: 'into' - { - match("into"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__51" - - // $ANTLR start "T__52" - public final void mT__52() throws RecognitionException { - try { - int _type = T__52; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:52:7: ( 'fbfd' ) - // InternalDsl.g:52:9: 'fbfd' - { - match("fbfd"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__52" - - // $ANTLR start "T__53" - public final void mT__53() throws RecognitionException { - try { - int _type = T__53; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:53:7: ( 'for-form' ) - // InternalDsl.g:53:9: 'for-form' - { - match("for-form"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__53" - - // $ANTLR start "T__54" - public final void mT__54() throws RecognitionException { - try { - int _type = T__54; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:54:7: ( 'dropfile' ) - // InternalDsl.g:54:9: 'dropfile' - { - match("dropfile"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__54" - - // $ANTLR start "T__55" - public final void mT__55() throws RecognitionException { - try { - int _type = T__55; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:55:7: ( 'in-path' ) - // InternalDsl.g:55:9: 'in-path' - { - match("in-path"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__55" - - // $ANTLR start "T__56" - public final void mT__56() throws RecognitionException { - try { - int _type = T__56; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:56:7: ( 'doozle' ) - // InternalDsl.g:56:9: 'doozle' - { - match("doozle"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__56" - - // $ANTLR start "T__57" - public final void mT__57() throws RecognitionException { - try { - int _type = T__57; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:57:7: ( 'in-table' ) - // InternalDsl.g:57:9: 'in-table' - { - match("in-table"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__57" - - // $ANTLR start "T__58" - public final void mT__58() throws RecognitionException { - try { - int _type = T__58; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:58:7: ( 'rest' ) - // InternalDsl.g:58:9: 'rest' - { - match("rest"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__58" - - // $ANTLR start "T__59" - public final void mT__59() throws RecognitionException { - try { - int _type = T__59; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:59:7: ( 'with-url' ) - // InternalDsl.g:59:9: 'with-url' - { - match("with-url"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__59" - - // $ANTLR start "T__60" - public final void mT__60() throws RecognitionException { - try { - int _type = T__60; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:60:7: ( 'and-method-as' ) - // InternalDsl.g:60:9: 'and-method-as' - { - match("and-method-as"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__60" - - // $ANTLR start "T__61" - public final void mT__61() throws RecognitionException { - try { - int _type = T__61; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:61:7: ( 'from' ) - // InternalDsl.g:61:9: 'from' - { - match("from"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__61" - - // $ANTLR start "T__62" - public final void mT__62() throws RecognitionException { - try { - int _type = T__62; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:62:7: ( 'update-url-with' ) - // InternalDsl.g:62:9: 'update-url-with' - { - match("update-url-with"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__62" - - // $ANTLR start "T__63" - public final void mT__63() throws RecognitionException { - try { - int _type = T__63; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:63:7: ( 'update-header-with' ) - // InternalDsl.g:63:9: 'update-header-with' - { - match("update-header-with"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__63" - - // $ANTLR start "T__64" - public final void mT__64() throws RecognitionException { - try { - int _type = T__64; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:64:7: ( 'update-body-with' ) - // InternalDsl.g:64:9: 'update-body-with' - { - match("update-body-with"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__64" - - // $ANTLR start "T__65" - public final void mT__65() throws RecognitionException { - try { - int _type = T__65; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:65:7: ( 'parent' ) - // InternalDsl.g:65:9: 'parent' - { - match("parent"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__65" - - // $ANTLR start "T__66" - public final void mT__66() throws RecognitionException { - try { - int _type = T__66; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:66:7: ( 'store-ack-at' ) - // InternalDsl.g:66:9: 'store-ack-at' - { - match("store-ack-at"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__66" - - // $ANTLR start "T__67" - public final void mT__67() throws RecognitionException { - try { - int _type = T__67; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:67:7: ( 'part' ) - // InternalDsl.g:67:9: 'part' - { - match("part"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__67" - - // $ANTLR start "T__68" - public final void mT__68() throws RecognitionException { - try { - int _type = T__68; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:68:7: ( 'with' ) - // InternalDsl.g:68:9: 'with' - { - match("with"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__68" - - // $ANTLR start "T__69" - public final void mT__69() throws RecognitionException { - try { - int _type = T__69; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:69:7: ( 'trelloget' ) - // InternalDsl.g:69:9: 'trelloget' - { - match("trelloget"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__69" - - // $ANTLR start "T__70" - public final void mT__70() throws RecognitionException { - try { - int _type = T__70; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:70:7: ( 'from-board' ) - // InternalDsl.g:70:9: 'from-board' - { - match("from-board"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__70" - - // $ANTLR start "T__71" - public final void mT__71() throws RecognitionException { - try { - int _type = T__71; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:71:7: ( 'to' ) - // InternalDsl.g:71:9: 'to' - { - match("to"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__71" - - // $ANTLR start "T__72" - public final void mT__72() throws RecognitionException { - try { - int _type = T__72; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:72:7: ( 'trelloput' ) - // InternalDsl.g:72:9: 'trelloput' - { - match("trelloput"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__72" - - // $ANTLR start "T__73" - public final void mT__73() throws RecognitionException { - try { - int _type = T__73; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:73:7: ( 'for-list' ) - // InternalDsl.g:73:9: 'for-list' - { - match("for-list"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__73" - - // $ANTLR start "T__74" - public final void mT__74() throws RecognitionException { - try { - int _type = T__74; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:74:7: ( 'assign' ) - // InternalDsl.g:74:9: 'assign' - { - match("assign"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__74" - - // $ANTLR start "T__75" - public final void mT__75() throws RecognitionException { - try { - int _type = T__75; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:75:7: ( 'source' ) - // InternalDsl.g:75:9: 'source' - { - match("source"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__75" - - // $ANTLR start "T__76" - public final void mT__76() throws RecognitionException { - try { - int _type = T__76; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:76:7: ( 'callprocess' ) - // InternalDsl.g:76:9: 'callprocess' - { - match("callprocess"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__76" - - // $ANTLR start "T__77" - public final void mT__77() throws RecognitionException { - try { - int _type = T__77; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:77:7: ( 'for-every' ) - // InternalDsl.g:77:9: 'for-every' - { - match("for-every"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__77" - - // $ANTLR start "T__78" - public final void mT__78() throws RecognitionException { - try { - int _type = T__78; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:78:7: ( 'forkprocess' ) - // InternalDsl.g:78:9: 'forkprocess' - { - match("forkprocess"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__78" - - // $ANTLR start "T__79" - public final void mT__79() throws RecognitionException { - try { - int _type = T__79; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:79:7: ( 'watermark' ) - // InternalDsl.g:79:9: 'watermark' - { - match("watermark"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__79" - - // $ANTLR start "T__80" - public final void mT__80() throws RecognitionException { - try { - int _type = T__80; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:80:7: ( 'log' ) - // InternalDsl.g:80:9: 'log' - { - match("log"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__80" - - // $ANTLR start "T__81" - public final void mT__81() throws RecognitionException { - try { - int _type = T__81; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:81:7: ( 'logto' ) - // InternalDsl.g:81:9: 'logto' - { - match("logto"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__81" - - // $ANTLR start "T__82" - public final void mT__82() throws RecognitionException { - try { - int _type = T__82; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:82:7: ( 'in' ) - // InternalDsl.g:82:9: 'in' - { - match("in"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__82" - - // $ANTLR start "T__83" - public final void mT__83() throws RecognitionException { - try { - int _type = T__83; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:83:7: ( 'c2sms' ) - // InternalDsl.g:83:9: 'c2sms' - { - match("c2sms"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__83" - - // $ANTLR start "T__84" - public final void mT__84() throws RecognitionException { - try { - int _type = T__84; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:84:7: ( 'with-user' ) - // InternalDsl.g:84:9: 'with-user' - { - match("with-user"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__84" - - // $ANTLR start "T__85" - public final void mT__85() throws RecognitionException { - try { - int _type = T__85; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:85:7: ( 'slackput' ) - // InternalDsl.g:85:9: 'slackput' - { - match("slackput"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__85" - - // $ANTLR start "T__86" - public final void mT__86() throws RecognitionException { - try { - int _type = T__86; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:86:7: ( 'copydata' ) - // InternalDsl.g:86:9: 'copydata' - { - match("copydata"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__86" - - // $ANTLR start "T__87" - public final void mT__87() throws RecognitionException { - try { - int _type = T__87; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:87:7: ( 'fielding' ) - // InternalDsl.g:87:9: 'fielding' - { - match("fielding"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__87" - - // $ANTLR start "T__88" - public final void mT__88() throws RecognitionException { - try { - int _type = T__88; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:88:7: ( 'with-fetch-batch-size' ) - // InternalDsl.g:88:9: 'with-fetch-batch-size' - { - match("with-fetch-batch-size"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__88" - - // $ANTLR start "T__89" - public final void mT__89() throws RecognitionException { - try { - int _type = T__89; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:89:7: ( 'with-write-batch-size' ) - // InternalDsl.g:89:9: 'with-write-batch-size' - { - match("with-write-batch-size"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__89" - - // $ANTLR start "T__90" - public final void mT__90() throws RecognitionException { - try { - int _type = T__90; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:90:7: ( 'writecsv' ) - // InternalDsl.g:90:9: 'writecsv' - { - match("writecsv"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__90" - - // $ANTLR start "T__91" - public final void mT__91() throws RecognitionException { - try { - int _type = T__91; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:91:7: ( 'loadcsv' ) - // InternalDsl.g:91:9: 'loadcsv' - { - match("loadcsv"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__91" - - // $ANTLR start "T__92" - public final void mT__92() throws RecognitionException { - try { - int _type = T__92; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:92:7: ( 'transform' ) - // InternalDsl.g:92:9: 'transform' - { - match("transform"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__92" - - // $ANTLR start "T__93" - public final void mT__93() throws RecognitionException { - try { - int _type = T__93; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:93:7: ( 'start-process' ) - // InternalDsl.g:93:9: 'start-process' - { - match("start-process"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__93" - - // $ANTLR start "T__94" - public final void mT__94() throws RecognitionException { - try { - int _type = T__94; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:94:7: ( 'with-file' ) - // InternalDsl.g:94:9: 'with-file' - { - match("with-file"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__94" - - // $ANTLR start "T__95" - public final void mT__95() throws RecognitionException { - try { - int _type = T__95; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:95:7: ( 'if' ) - // InternalDsl.g:95:9: 'if' - { - match("if"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__95" - - // $ANTLR start "T__96" - public final void mT__96() throws RecognitionException { - try { - int _type = T__96; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:96:7: ( '<' ) - // InternalDsl.g:96:9: '<' - { - match('<'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__96" - - // $ANTLR start "T__97" - public final void mT__97() throws RecognitionException { - try { - int _type = T__97; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:97:7: ( '>' ) - // InternalDsl.g:97:9: '>' - { - match('>'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__97" - - // $ANTLR start "T__98" - public final void mT__98() throws RecognitionException { - try { - int _type = T__98; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:98:7: ( '==' ) - // InternalDsl.g:98:9: '==' - { - match("=="); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__98" - - // $ANTLR start "T__99" - public final void mT__99() throws RecognitionException { - try { - int _type = T__99; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:99:7: ( 'contains' ) - // InternalDsl.g:99:9: 'contains' - { - match("contains"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__99" - - // $ANTLR start "RULE_ID" - public final void mRULE_ID() throws RecognitionException { - try { - int _type = RULE_ID; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:6035:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) - // InternalDsl.g:6035:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* - { - // InternalDsl.g:6035:11: ( '^' )? - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0=='^') ) { - alt1=1; - } - switch (alt1) { - case 1 : - // InternalDsl.g:6035:11: '^' - { - match('^'); - - } - break; - - } - - if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { - input.consume(); - - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse;} - - // InternalDsl.g:6035:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* - loop2: - do { - int alt2=2; - int LA2_0 = input.LA(1); - - if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) { - alt2=1; - } - - - switch (alt2) { - case 1 : - // InternalDsl.g: - { - if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { - input.consume(); - - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse;} - - - } - break; - - default : - break loop2; - } - } while (true); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "RULE_ID" - - // $ANTLR start "RULE_INT" - public final void mRULE_INT() throws RecognitionException { - try { - int _type = RULE_INT; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:6037:10: ( ( '0' .. '9' )+ ) - // InternalDsl.g:6037:12: ( '0' .. '9' )+ - { - // InternalDsl.g:6037:12: ( '0' .. '9' )+ - int cnt3=0; - loop3: - do { - int alt3=2; - int LA3_0 = input.LA(1); - - if ( ((LA3_0>='0' && LA3_0<='9')) ) { - alt3=1; - } - - - switch (alt3) { - case 1 : - // InternalDsl.g:6037:13: '0' .. '9' - { - matchRange('0','9'); - - } - break; - - default : - if ( cnt3 >= 1 ) break loop3; - EarlyExitException eee = - new EarlyExitException(3, input); - throw eee; - } - cnt3++; - } while (true); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "RULE_INT" - - // $ANTLR start "RULE_STRING" - public final void mRULE_STRING() throws RecognitionException { - try { - int _type = RULE_STRING; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:6039:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) - // InternalDsl.g:6039:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) - { - // InternalDsl.g:6039:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) - int alt6=2; - int LA6_0 = input.LA(1); - - if ( (LA6_0=='\"') ) { - alt6=1; - } - else if ( (LA6_0=='\'') ) { - alt6=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 6, 0, input); - - throw nvae; - } - switch (alt6) { - case 1 : - // InternalDsl.g:6039:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' - { - match('\"'); - // InternalDsl.g:6039:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* - loop4: - do { - int alt4=3; - int LA4_0 = input.LA(1); - - if ( (LA4_0=='\\') ) { - alt4=1; - } - else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) { - alt4=2; - } - - - switch (alt4) { - case 1 : - // InternalDsl.g:6039:21: '\\\\' . - { - match('\\'); - matchAny(); - - } - break; - case 2 : - // InternalDsl.g:6039:28: ~ ( ( '\\\\' | '\"' ) ) - { - if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { - input.consume(); - - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse;} - - - } - break; - - default : - break loop4; - } - } while (true); - - match('\"'); - - } - break; - case 2 : - // InternalDsl.g:6039:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' - { - match('\''); - // InternalDsl.g:6039:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* - loop5: - do { - int alt5=3; - int LA5_0 = input.LA(1); - - if ( (LA5_0=='\\') ) { - alt5=1; - } - else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) { - alt5=2; - } - - - switch (alt5) { - case 1 : - // InternalDsl.g:6039:54: '\\\\' . - { - match('\\'); - matchAny(); - - } - break; - case 2 : - // InternalDsl.g:6039:61: ~ ( ( '\\\\' | '\\'' ) ) - { - if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { - input.consume(); - - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse;} - - - } - break; - - default : - break loop5; - } - } while (true); - - match('\''); - - } - break; - - } - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "RULE_STRING" - - // $ANTLR start "RULE_ML_COMMENT" - public final void mRULE_ML_COMMENT() throws RecognitionException { - try { - int _type = RULE_ML_COMMENT; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:6041:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // InternalDsl.g:6041:19: '/*' ( options {greedy=false; } : . )* '*/' - { - match("/*"); - - // InternalDsl.g:6041:24: ( options {greedy=false; } : . )* - loop7: - do { - int alt7=2; - int LA7_0 = input.LA(1); - - if ( (LA7_0=='*') ) { - int LA7_1 = input.LA(2); - - if ( (LA7_1=='/') ) { - alt7=2; - } - else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) { - alt7=1; - } - - - } - else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) { - alt7=1; - } - - - switch (alt7) { - case 1 : - // InternalDsl.g:6041:52: . - { - matchAny(); - - } - break; - - default : - break loop7; - } - } while (true); - - match("*/"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "RULE_ML_COMMENT" - - // $ANTLR start "RULE_SL_COMMENT" - public final void mRULE_SL_COMMENT() throws RecognitionException { - try { - int _type = RULE_SL_COMMENT; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:6043:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) - // InternalDsl.g:6043:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? - { - match("//"); - - // InternalDsl.g:6043:24: (~ ( ( '\\n' | '\\r' ) ) )* - loop8: - do { - int alt8=2; - int LA8_0 = input.LA(1); - - if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) { - alt8=1; - } - - - switch (alt8) { - case 1 : - // InternalDsl.g:6043:24: ~ ( ( '\\n' | '\\r' ) ) - { - if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { - input.consume(); - - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse;} - - - } - break; - - default : - break loop8; - } - } while (true); - - // InternalDsl.g:6043:40: ( ( '\\r' )? '\\n' )? - int alt10=2; - int LA10_0 = input.LA(1); - - if ( (LA10_0=='\n'||LA10_0=='\r') ) { - alt10=1; - } - switch (alt10) { - case 1 : - // InternalDsl.g:6043:41: ( '\\r' )? '\\n' - { - // InternalDsl.g:6043:41: ( '\\r' )? - int alt9=2; - int LA9_0 = input.LA(1); - - if ( (LA9_0=='\r') ) { - alt9=1; - } - switch (alt9) { - case 1 : - // InternalDsl.g:6043:41: '\\r' - { - match('\r'); - - } - break; - - } - - match('\n'); - - } - break; - - } - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "RULE_SL_COMMENT" - - // $ANTLR start "RULE_WS" - public final void mRULE_WS() throws RecognitionException { - try { - int _type = RULE_WS; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:6045:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // InternalDsl.g:6045:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ - { - // InternalDsl.g:6045:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ - int cnt11=0; - loop11: - do { - int alt11=2; - int LA11_0 = input.LA(1); - - if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) { - alt11=1; - } - - - switch (alt11) { - case 1 : - // InternalDsl.g: - { - if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { - input.consume(); - - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse;} - - - } - break; - - default : - if ( cnt11 >= 1 ) break loop11; - EarlyExitException eee = - new EarlyExitException(11, input); - throw eee; - } - cnt11++; - } while (true); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "RULE_WS" - - // $ANTLR start "RULE_ANY_OTHER" - public final void mRULE_ANY_OTHER() throws RecognitionException { - try { - int _type = RULE_ANY_OTHER; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalDsl.g:6047:16: ( . ) - // InternalDsl.g:6047:18: . - { - matchAny(); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "RULE_ANY_OTHER" - - public void mTokens() throws RecognitionException { - // InternalDsl.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) - int alt12=96; - alt12 = dfa12.predict(input); - switch (alt12) { - case 1 : - // InternalDsl.g:1:10: T__11 - { - mT__11(); - - } - break; - case 2 : - // InternalDsl.g:1:16: T__12 - { - mT__12(); - - } - break; - case 3 : - // InternalDsl.g:1:22: T__13 - { - mT__13(); - - } - break; - case 4 : - // InternalDsl.g:1:28: T__14 - { - mT__14(); - - } - break; - case 5 : - // InternalDsl.g:1:34: T__15 - { - mT__15(); - - } - break; - case 6 : - // InternalDsl.g:1:40: T__16 - { - mT__16(); - - } - break; - case 7 : - // InternalDsl.g:1:46: T__17 - { - mT__17(); - - } - break; - case 8 : - // InternalDsl.g:1:52: T__18 - { - mT__18(); - - } - break; - case 9 : - // InternalDsl.g:1:58: T__19 - { - mT__19(); - - } - break; - case 10 : - // InternalDsl.g:1:64: T__20 - { - mT__20(); - - } - break; - case 11 : - // InternalDsl.g:1:70: T__21 - { - mT__21(); - - } - break; - case 12 : - // InternalDsl.g:1:76: T__22 - { - mT__22(); - - } - break; - case 13 : - // InternalDsl.g:1:82: T__23 - { - mT__23(); - - } - break; - case 14 : - // InternalDsl.g:1:88: T__24 - { - mT__24(); - - } - break; - case 15 : - // InternalDsl.g:1:94: T__25 - { - mT__25(); - - } - break; - case 16 : - // InternalDsl.g:1:100: T__26 - { - mT__26(); - - } - break; - case 17 : - // InternalDsl.g:1:106: T__27 - { - mT__27(); - - } - break; - case 18 : - // InternalDsl.g:1:112: T__28 - { - mT__28(); - - } - break; - case 19 : - // InternalDsl.g:1:118: T__29 - { - mT__29(); - - } - break; - case 20 : - // InternalDsl.g:1:124: T__30 - { - mT__30(); - - } - break; - case 21 : - // InternalDsl.g:1:130: T__31 - { - mT__31(); - - } - break; - case 22 : - // InternalDsl.g:1:136: T__32 - { - mT__32(); - - } - break; - case 23 : - // InternalDsl.g:1:142: T__33 - { - mT__33(); - - } - break; - case 24 : - // InternalDsl.g:1:148: T__34 - { - mT__34(); - - } - break; - case 25 : - // InternalDsl.g:1:154: T__35 - { - mT__35(); - - } - break; - case 26 : - // InternalDsl.g:1:160: T__36 - { - mT__36(); - - } - break; - case 27 : - // InternalDsl.g:1:166: T__37 - { - mT__37(); - - } - break; - case 28 : - // InternalDsl.g:1:172: T__38 - { - mT__38(); - - } - break; - case 29 : - // InternalDsl.g:1:178: T__39 - { - mT__39(); - - } - break; - case 30 : - // InternalDsl.g:1:184: T__40 - { - mT__40(); - - } - break; - case 31 : - // InternalDsl.g:1:190: T__41 - { - mT__41(); - - } - break; - case 32 : - // InternalDsl.g:1:196: T__42 - { - mT__42(); - - } - break; - case 33 : - // InternalDsl.g:1:202: T__43 - { - mT__43(); - - } - break; - case 34 : - // InternalDsl.g:1:208: T__44 - { - mT__44(); - - } - break; - case 35 : - // InternalDsl.g:1:214: T__45 - { - mT__45(); - - } - break; - case 36 : - // InternalDsl.g:1:220: T__46 - { - mT__46(); - - } - break; - case 37 : - // InternalDsl.g:1:226: T__47 - { - mT__47(); - - } - break; - case 38 : - // InternalDsl.g:1:232: T__48 - { - mT__48(); - - } - break; - case 39 : - // InternalDsl.g:1:238: T__49 - { - mT__49(); - - } - break; - case 40 : - // InternalDsl.g:1:244: T__50 - { - mT__50(); - - } - break; - case 41 : - // InternalDsl.g:1:250: T__51 - { - mT__51(); - - } - break; - case 42 : - // InternalDsl.g:1:256: T__52 - { - mT__52(); - - } - break; - case 43 : - // InternalDsl.g:1:262: T__53 - { - mT__53(); - - } - break; - case 44 : - // InternalDsl.g:1:268: T__54 - { - mT__54(); - - } - break; - case 45 : - // InternalDsl.g:1:274: T__55 - { - mT__55(); - - } - break; - case 46 : - // InternalDsl.g:1:280: T__56 - { - mT__56(); - - } - break; - case 47 : - // InternalDsl.g:1:286: T__57 - { - mT__57(); - - } - break; - case 48 : - // InternalDsl.g:1:292: T__58 - { - mT__58(); - - } - break; - case 49 : - // InternalDsl.g:1:298: T__59 - { - mT__59(); - - } - break; - case 50 : - // InternalDsl.g:1:304: T__60 - { - mT__60(); - - } - break; - case 51 : - // InternalDsl.g:1:310: T__61 - { - mT__61(); - - } - break; - case 52 : - // InternalDsl.g:1:316: T__62 - { - mT__62(); - - } - break; - case 53 : - // InternalDsl.g:1:322: T__63 - { - mT__63(); - - } - break; - case 54 : - // InternalDsl.g:1:328: T__64 - { - mT__64(); - - } - break; - case 55 : - // InternalDsl.g:1:334: T__65 - { - mT__65(); - - } - break; - case 56 : - // InternalDsl.g:1:340: T__66 - { - mT__66(); - - } - break; - case 57 : - // InternalDsl.g:1:346: T__67 - { - mT__67(); - - } - break; - case 58 : - // InternalDsl.g:1:352: T__68 - { - mT__68(); - - } - break; - case 59 : - // InternalDsl.g:1:358: T__69 - { - mT__69(); - - } - break; - case 60 : - // InternalDsl.g:1:364: T__70 - { - mT__70(); - - } - break; - case 61 : - // InternalDsl.g:1:370: T__71 - { - mT__71(); - - } - break; - case 62 : - // InternalDsl.g:1:376: T__72 - { - mT__72(); - - } - break; - case 63 : - // InternalDsl.g:1:382: T__73 - { - mT__73(); - - } - break; - case 64 : - // InternalDsl.g:1:388: T__74 - { - mT__74(); - - } - break; - case 65 : - // InternalDsl.g:1:394: T__75 - { - mT__75(); - - } - break; - case 66 : - // InternalDsl.g:1:400: T__76 - { - mT__76(); - - } - break; - case 67 : - // InternalDsl.g:1:406: T__77 - { - mT__77(); - - } - break; - case 68 : - // InternalDsl.g:1:412: T__78 - { - mT__78(); - - } - break; - case 69 : - // InternalDsl.g:1:418: T__79 - { - mT__79(); - - } - break; - case 70 : - // InternalDsl.g:1:424: T__80 - { - mT__80(); - - } - break; - case 71 : - // InternalDsl.g:1:430: T__81 - { - mT__81(); - - } - break; - case 72 : - // InternalDsl.g:1:436: T__82 - { - mT__82(); - - } - break; - case 73 : - // InternalDsl.g:1:442: T__83 - { - mT__83(); - - } - break; - case 74 : - // InternalDsl.g:1:448: T__84 - { - mT__84(); - - } - break; - case 75 : - // InternalDsl.g:1:454: T__85 - { - mT__85(); - - } - break; - case 76 : - // InternalDsl.g:1:460: T__86 - { - mT__86(); - - } - break; - case 77 : - // InternalDsl.g:1:466: T__87 - { - mT__87(); - - } - break; - case 78 : - // InternalDsl.g:1:472: T__88 - { - mT__88(); - - } - break; - case 79 : - // InternalDsl.g:1:478: T__89 - { - mT__89(); - - } - break; - case 80 : - // InternalDsl.g:1:484: T__90 - { - mT__90(); - - } - break; - case 81 : - // InternalDsl.g:1:490: T__91 - { - mT__91(); - - } - break; - case 82 : - // InternalDsl.g:1:496: T__92 - { - mT__92(); - - } - break; - case 83 : - // InternalDsl.g:1:502: T__93 - { - mT__93(); - - } - break; - case 84 : - // InternalDsl.g:1:508: T__94 - { - mT__94(); - - } - break; - case 85 : - // InternalDsl.g:1:514: T__95 - { - mT__95(); - - } - break; - case 86 : - // InternalDsl.g:1:520: T__96 - { - mT__96(); - - } - break; - case 87 : - // InternalDsl.g:1:526: T__97 - { - mT__97(); - - } - break; - case 88 : - // InternalDsl.g:1:532: T__98 - { - mT__98(); - - } - break; - case 89 : - // InternalDsl.g:1:538: T__99 - { - mT__99(); - - } - break; - case 90 : - // InternalDsl.g:1:544: RULE_ID - { - mRULE_ID(); - - } - break; - case 91 : - // InternalDsl.g:1:552: RULE_INT - { - mRULE_INT(); - - } - break; - case 92 : - // InternalDsl.g:1:561: RULE_STRING - { - mRULE_STRING(); - - } - break; - case 93 : - // InternalDsl.g:1:573: RULE_ML_COMMENT - { - mRULE_ML_COMMENT(); - - } - break; - case 94 : - // InternalDsl.g:1:589: RULE_SL_COMMENT - { - mRULE_SL_COMMENT(); - - } - break; - case 95 : - // InternalDsl.g:1:605: RULE_WS - { - mRULE_WS(); - - } - break; - case 96 : - // InternalDsl.g:1:613: RULE_ANY_OTHER - { - mRULE_ANY_OTHER(); - - } - break; - - } - - } - - - protected DFA12 dfa12 = new DFA12(this); - static final String DFA12_eotS = - "\1\uffff\1\40\2\uffff\17\40\2\uffff\2\35\2\uffff\3\35\2\uffff\2\40\3\uffff\2\40\1\125\15\40\1\154\6\40\1\164\7\40\1\u0082\1\u0083\2\40\10\uffff\2\40\1\u008a\3\40\2\uffff\26\40\1\uffff\6\40\2\uffff\1\40\1\uffff\12\40\3\uffff\1\40\1\u00bc\3\40\1\u00c0\1\uffff\5\40\1\u00c7\1\u00c8\1\u00c9\1\u00ca\1\u00cb\1\uffff\21\40\1\uffff\1\u00e4\2\40\2\uffff\3\40\1\uffff\2\40\1\u00ec\3\40\1\u00f0\2\uffff\1\u00f1\1\40\1\uffff\3\40\1\uffff\5\40\14\uffff\1\40\1\u00ff\1\40\1\u0101\2\40\1\u0104\10\40\1\uffff\1\u010d\2\uffff\5\40\1\u011a\1\40\2\uffff\2\40\2\uffff\1\u011e\2\40\1\u0121\5\40\3\uffff\1\40\1\uffff\1\40\1\uffff\2\40\1\uffff\3\40\2\uffff\1\u012f\1\40\1\u0131\10\uffff\2\40\1\u0138\1\u0139\1\40\1\uffff\3\40\1\uffff\1\40\1\u013f\1\uffff\4\40\1\u0144\10\40\1\uffff\1\40\5\uffff\2\40\2\uffff\1\40\1\uffff\2\40\1\u0156\1\uffff\3\40\2\uffff\1\u015c\2\40\1\u015f\1\u0160\1\40\1\uffff\1\u0162\1\u0163\1\40\1\u0165\1\u0166\3\uffff\1\u0168\1\40\1\uffff\1\u016a\1\u016b\1\u016c\3\uffff\2\40\2\uffff\1\40\2\uffff\1\u0170\4\uffff\1\u0171\3\uffff\3\40\2\uffff\1\u0175\1\u0176\1\u0177\3\uffff"; - static final String DFA12_eofS = - "\u0178\uffff"; - static final String DFA12_minS = - "\1\0\1\141\2\uffff\1\150\1\142\1\62\1\145\1\142\1\141\1\156\1\157\1\160\2\141\1\143\1\146\1\145\1\157\2\uffff\1\75\1\101\2\uffff\2\0\1\52\2\uffff\1\157\1\162\3\uffff\1\141\1\162\1\55\1\145\1\157\1\144\1\162\1\154\1\163\1\156\1\141\1\163\1\143\1\141\1\165\1\141\1\60\1\164\1\157\1\144\2\164\1\151\2\55\1\157\1\145\1\144\1\166\1\155\1\141\1\55\1\60\1\163\1\141\10\uffff\1\143\1\145\1\60\1\154\1\156\1\157\2\uffff\1\141\1\154\1\155\1\160\1\156\1\143\1\144\1\55\1\143\1\154\1\155\1\171\1\164\1\167\1\154\1\165\1\144\3\162\1\143\1\151\1\uffff\1\150\1\162\1\55\1\150\1\145\1\164\1\142\1\uffff\1\154\1\uffff\1\172\1\160\1\55\1\156\2\141\1\145\1\156\1\154\1\157\1\160\2\uffff\1\164\1\60\1\144\1\145\1\156\1\60\1\uffff\1\154\1\163\1\165\1\154\1\144\1\55\4\60\1\143\1\160\1\150\1\160\1\163\1\144\1\141\1\156\1\145\1\162\1\155\1\145\1\164\1\143\1\153\1\147\1\55\1\164\1\uffff\1\55\1\162\1\145\2\uffff\1\145\1\154\1\146\1\uffff\1\147\1\164\1\60\1\55\1\164\1\145\1\60\2\uffff\1\60\1\157\1\uffff\1\143\1\163\1\164\1\uffff\1\157\1\146\1\147\1\154\1\151\1\142\13\uffff\1\162\1\60\1\162\1\60\1\141\1\151\1\60\1\141\1\145\1\141\2\55\1\145\1\160\1\156\1\uffff\1\60\1\143\1\uffff\1\155\1\143\1\147\1\145\1\151\1\60\1\145\2\uffff\1\141\1\156\2\uffff\1\60\2\163\1\60\1\147\1\157\1\150\1\171\1\156\3\uffff\1\157\1\uffff\1\157\1\uffff\1\164\1\156\1\uffff\2\144\1\151\2\uffff\1\60\1\165\1\60\5\uffff\1\162\1\145\1\uffff\1\141\1\163\2\60\1\154\1\uffff\1\55\1\143\1\144\1\uffff\1\166\1\60\1\uffff\1\145\1\165\1\162\1\55\1\60\1\147\2\143\1\141\2\163\1\55\1\154\1\uffff\1\164\5\uffff\1\162\1\166\2\uffff\1\145\1\142\1\164\1\141\1\60\1\uffff\2\164\1\155\1\141\1\uffff\1\60\2\145\2\60\1\163\1\uffff\2\60\1\153\2\60\3\uffff\1\55\1\162\1\uffff\3\60\3\uffff\2\163\2\uffff\1\155\2\uffff\1\60\4\uffff\1\60\3\uffff\3\163\2\uffff\3\60\3\uffff"; - static final String DFA12_maxS = - "\1\uffff\1\162\2\uffff\2\162\1\157\1\164\1\165\1\162\1\156\1\162\1\163\2\141\1\143\1\156\1\145\1\157\2\uffff\1\75\1\172\2\uffff\2\uffff\1\57\2\uffff\1\157\1\162\3\uffff\1\171\1\162\1\172\1\156\1\157\2\162\1\164\1\163\1\160\1\141\1\163\1\156\1\157\1\165\1\141\1\172\1\164\1\157\1\144\2\164\1\151\1\172\2\157\1\151\1\144\1\166\1\155\1\157\2\172\1\163\1\147\10\uffff\1\143\1\164\1\172\1\154\1\156\1\157\2\uffff\1\141\1\154\1\155\1\160\1\156\1\143\1\144\1\153\1\143\1\154\1\155\1\171\1\164\1\167\1\154\1\165\1\144\3\162\1\143\1\151\1\uffff\1\150\1\162\1\55\1\150\1\145\1\164\1\143\1\uffff\1\154\1\uffff\1\172\1\160\1\55\1\156\2\141\1\145\1\156\1\154\1\157\1\164\2\uffff\1\164\1\172\1\144\1\145\1\156\1\172\1\uffff\1\154\1\163\1\165\1\154\1\144\5\172\2\160\1\150\1\160\1\163\1\144\1\141\1\156\1\145\1\162\1\155\1\145\1\164\1\143\1\153\1\147\1\55\1\164\1\uffff\1\172\1\162\1\145\2\uffff\1\145\1\154\1\146\1\uffff\1\147\1\164\1\172\1\55\1\164\1\145\1\172\2\uffff\1\172\1\157\1\uffff\1\143\1\163\1\164\1\uffff\1\157\1\146\1\147\1\154\1\151\1\163\13\uffff\1\162\1\172\1\162\1\172\1\141\1\151\1\172\1\141\1\145\1\141\2\55\1\145\1\160\1\156\1\uffff\1\172\1\167\1\uffff\1\155\1\143\1\147\1\145\1\151\1\172\1\145\2\uffff\1\141\1\156\2\uffff\1\172\2\163\1\172\1\160\1\157\1\150\1\171\1\156\3\uffff\1\157\1\uffff\1\157\1\uffff\1\164\1\156\1\uffff\2\144\1\151\2\uffff\1\172\1\165\1\172\5\uffff\1\163\1\151\1\uffff\1\141\1\163\2\172\1\154\1\uffff\1\55\1\143\1\144\1\uffff\1\166\1\172\1\uffff\1\145\1\165\1\162\1\55\1\172\1\147\2\143\1\141\2\163\1\55\1\154\1\uffff\1\164\5\uffff\1\162\1\166\2\uffff\1\145\1\165\1\164\1\141\1\172\1\uffff\2\164\1\155\1\165\1\uffff\1\172\2\145\2\172\1\163\1\uffff\2\172\1\153\2\172\3\uffff\1\172\1\162\1\uffff\3\172\3\uffff\2\163\2\uffff\1\155\2\uffff\1\172\4\uffff\1\172\3\uffff\3\163\2\uffff\3\172\3\uffff"; - static final String DFA12_acceptS = - "\2\uffff\1\2\1\3\17\uffff\1\126\1\127\2\uffff\1\132\1\133\3\uffff\1\137\1\140\2\uffff\1\132\1\2\1\3\43\uffff\1\126\1\127\1\130\1\133\1\134\1\135\1\136\1\137\6\uffff\1\42\1\75\26\uffff\1\10\7\uffff\1\22\1\uffff\1\34\13\uffff\1\110\1\125\6\uffff\1\4\34\uffff\1\62\3\uffff\1\13\1\41\3\uffff\1\15\7\uffff\1\55\1\57\2\uffff\1\106\3\uffff\1\71\6\uffff\1\63\1\21\1\27\1\46\1\52\1\24\1\40\1\50\1\53\1\77\1\103\17\uffff\1\23\2\uffff\1\72\7\uffff\1\17\1\20\2\uffff\1\51\1\60\11\uffff\1\12\1\25\1\74\1\uffff\1\6\1\uffff\1\111\2\uffff\1\7\3\uffff\1\70\1\123\3\uffff\1\35\1\11\1\26\1\31\1\37\2\uffff\1\117\5\uffff\1\16\3\uffff\1\107\2\uffff\1\67\15\uffff\1\101\1\uffff\1\100\1\61\1\112\1\116\1\124\2\uffff\1\14\1\56\5\uffff\1\1\4\uffff\1\5\6\uffff\1\33\5\uffff\1\64\1\65\1\66\2\uffff\1\121\3\uffff\1\32\1\47\1\115\2\uffff\1\114\1\131\1\uffff\1\43\1\113\1\uffff\1\120\1\54\1\36\1\44\1\uffff\1\73\1\76\1\122\3\uffff\1\105\1\45\3\uffff\1\104\1\102\1\30"; - static final String DFA12_specialS = - "\1\2\30\uffff\1\0\1\1\u015d\uffff}>"; - static final String[] DFA12_transitionS = { - "\11\35\2\34\2\35\1\34\22\35\1\34\1\35\1\31\4\35\1\32\7\35\1\33\12\30\2\35\1\23\1\25\1\24\2\35\32\27\3\35\1\26\1\27\1\35\1\10\1\27\1\6\1\13\1\27\1\5\1\17\1\27\1\20\1\15\1\27\1\22\1\27\1\16\1\12\1\1\1\27\1\21\1\7\1\4\1\14\1\27\1\11\3\27\1\2\1\35\1\3\uff82\35", - "\1\37\20\uffff\1\36", - "", - "", - "\1\44\6\uffff\1\45\2\uffff\1\43", - "\1\50\6\uffff\1\46\5\uffff\1\51\2\uffff\1\47", - "\1\53\56\uffff\1\52\15\uffff\1\54", - "\1\57\6\uffff\1\62\1\56\1\uffff\1\61\1\55\3\uffff\1\60", - "\1\65\13\uffff\1\66\4\uffff\1\63\1\uffff\1\64", - "\1\70\7\uffff\1\67\10\uffff\1\71", - "\1\72", - "\1\73\2\uffff\1\74", - "\1\76\2\uffff\1\75", - "\1\77", - "\1\100", - "\1\101", - "\1\103\7\uffff\1\102", - "\1\104", - "\1\105", - "", - "", - "\1\110", - "\32\40\4\uffff\1\40\1\uffff\32\40", - "", - "", - "\0\112", - "\0\112", - "\1\113\4\uffff\1\114", - "", - "", - "\1\116", - "\1\117", - "", - "", - "", - "\1\122\3\uffff\1\121\23\uffff\1\120", - "\1\123", - "\1\124\2\uffff\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\127\10\uffff\1\126", - "\1\130", - "\1\131\1\uffff\1\134\5\uffff\1\133\5\uffff\1\132", - "\1\135", - "\1\137\7\uffff\1\136", - "\1\140", - "\1\142\1\uffff\1\141", - "\1\143", - "\1\144", - "\1\145\12\uffff\1\146", - "\1\150\15\uffff\1\147", - "\1\151", - "\1\152", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\22\40\1\153\7\40", - "\1\155", - "\1\156", - "\1\157", - "\1\160", - "\1\161", - "\1\162", - "\1\163\2\uffff\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\166\71\uffff\1\165\7\uffff\1\167", - "\1\170", - "\1\171\3\uffff\1\172", - "\1\173", - "\1\174", - "\1\175", - "\1\177\15\uffff\1\176", - "\1\u0081\2\uffff\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\23\40\1\u0080\6\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u0084", - "\1\u0086\5\uffff\1\u0085", - "", - "", - "", - "", - "", - "", - "", - "", - "\1\u0087", - "\1\u0088\16\uffff\1\u0089", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u008b", - "\1\u008c", - "\1\u008d", - "", - "", - "\1\u008e", - "\1\u008f", - "\1\u0090", - "\1\u0091", - "\1\u0092", - "\1\u0093", - "\1\u0094", - "\1\u0095\75\uffff\1\u0096", - "\1\u0097", - "\1\u0098", - "\1\u0099", - "\1\u009a", - "\1\u009b", - "\1\u009c", - "\1\u009d", - "\1\u009e", - "\1\u009f", - "\1\u00a0", - "\1\u00a1", - "\1\u00a2", - "\1\u00a3", - "\1\u00a4", - "", - "\1\u00a5", - "\1\u00a6", - "\1\u00a7", - "\1\u00a8", - "\1\u00a9", - "\1\u00aa", - "\1\u00ac\1\u00ab", - "", - "\1\u00ad", - "", - "\1\u00ae", - "\1\u00af", - "\1\u00b0", - "\1\u00b1", - "\1\u00b2", - "\1\u00b3", - "\1\u00b4", - "\1\u00b5", - "\1\u00b6", - "\1\u00b7", - "\1\u00b8\3\uffff\1\u00b9", - "", - "", - "\1\u00ba", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\23\40\1\u00bb\6\40", - "\1\u00bd", - "\1\u00be", - "\1\u00bf", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "", - "\1\u00c1", - "\1\u00c2", - "\1\u00c3", - "\1\u00c4", - "\1\u00c5", - "\1\u00c6\2\uffff\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u00ce\1\uffff\1\u00d1\1\u00cf\1\u00cc\4\uffff\1\u00d0\3\uffff\1\u00cd", - "\1\u00d2", - "\1\u00d3", - "\1\u00d4", - "\1\u00d5", - "\1\u00d6", - "\1\u00d7", - "\1\u00d8", - "\1\u00d9", - "\1\u00da", - "\1\u00db", - "\1\u00dc", - "\1\u00dd", - "\1\u00de", - "\1\u00df", - "\1\u00e0", - "\1\u00e1", - "\1\u00e2", - "", - "\1\u00e3\2\uffff\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u00e5", - "\1\u00e6", - "", - "", - "\1\u00e7", - "\1\u00e8", - "\1\u00e9", - "", - "\1\u00ea", - "\1\u00eb", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u00ed", - "\1\u00ee", - "\1\u00ef", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "", - "", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u00f2", - "", - "\1\u00f3", - "\1\u00f4", - "\1\u00f5", - "", - "\1\u00f6", - "\1\u00f7", - "\1\u00f8", - "\1\u00f9", - "\1\u00fa", - "\1\u00fd\3\uffff\1\u00fb\14\uffff\1\u00fc", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "\1\u00fe", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u0100", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u0102", - "\1\u0103", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u0105", - "\1\u0106", - "\1\u0107", - "\1\u0108", - "\1\u0109", - "\1\u010a", - "\1\u010b", - "\1\u010c", - "", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u010f\2\uffff\1\u0113\4\uffff\1\u0111\7\uffff\1\u0110\1\u010e\1\u0112\1\uffff\1\u0114", - "", - "\1\u0115", - "\1\u0116", - "\1\u0117", - "\1\u0118", - "\1\u0119", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u011b", - "", - "", - "\1\u011c", - "\1\u011d", - "", - "", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u011f", - "\1\u0120", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u0122\10\uffff\1\u0123", - "\1\u0124", - "\1\u0125", - "\1\u0126", - "\1\u0127", - "", - "", - "", - "\1\u0128", - "", - "\1\u0129", - "", - "\1\u012a", - "\1\u012b", - "", - "\1\u012c", - "\1\u012d", - "\1\u012e", - "", - "", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u0130", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "", - "", - "", - "", - "", - "\1\u0132\1\u0133", - "\1\u0134\3\uffff\1\u0135", - "", - "\1\u0136", - "\1\u0137", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u013a", - "", - "\1\u013b", - "\1\u013c", - "\1\u013d", - "", - "\1\u013e", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "", - "\1\u0140", - "\1\u0141", - "\1\u0142", - "\1\u0143", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u0145", - "\1\u0146", - "\1\u0147", - "\1\u0148", - "\1\u0149", - "\1\u014a", - "\1\u014b", - "\1\u014c", - "", - "\1\u014d", - "", - "", - "", - "", - "", - "\1\u014e", - "\1\u014f", - "", - "", - "\1\u0150", - "\1\u0153\5\uffff\1\u0152\14\uffff\1\u0151", - "\1\u0154", - "\1\u0155", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "", - "\1\u0157", - "\1\u0158", - "\1\u0159", - "\1\u015a\23\uffff\1\u015b", - "", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u015d", - "\1\u015e", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u0161", - "", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u0164", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "", - "", - "", - "\1\u0167\2\uffff\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\1\u0169", - "", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "", - "", - "", - "\1\u016d", - "\1\u016e", - "", - "", - "\1\u016f", - "", - "", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "", - "", - "", - "", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "", - "", - "", - "\1\u0172", - "\1\u0173", - "\1\u0174", - "", - "", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", - "", - "", - "" - }; - - static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS); - static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS); - static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS); - static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS); - static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS); - static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS); - static final short[][] DFA12_transition; - - static { - int numStates = DFA12_transitionS.length; - DFA12_transition = new short[numStates][]; - for (int i=0; i='\u0000' && LA12_25<='\uFFFF')) ) {s = 74;} - - else s = 29; - - if ( s>=0 ) return s; - break; - case 1 : - int LA12_26 = input.LA(1); - - s = -1; - if ( ((LA12_26>='\u0000' && LA12_26<='\uFFFF')) ) {s = 74;} - - else s = 29; - - if ( s>=0 ) return s; - break; - case 2 : - int LA12_0 = input.LA(1); - - s = -1; - if ( (LA12_0=='p') ) {s = 1;} - - else if ( (LA12_0=='{') ) {s = 2;} - - else if ( (LA12_0=='}') ) {s = 3;} - - else if ( (LA12_0=='t') ) {s = 4;} - - else if ( (LA12_0=='f') ) {s = 5;} - - else if ( (LA12_0=='c') ) {s = 6;} - - else if ( (LA12_0=='s') ) {s = 7;} - - else if ( (LA12_0=='a') ) {s = 8;} - - else if ( (LA12_0=='w') ) {s = 9;} - - else if ( (LA12_0=='o') ) {s = 10;} - - else if ( (LA12_0=='d') ) {s = 11;} - - else if ( (LA12_0=='u') ) {s = 12;} - - else if ( (LA12_0=='j') ) {s = 13;} - - else if ( (LA12_0=='n') ) {s = 14;} - - else if ( (LA12_0=='g') ) {s = 15;} - - else if ( (LA12_0=='i') ) {s = 16;} - - else if ( (LA12_0=='r') ) {s = 17;} - - else if ( (LA12_0=='l') ) {s = 18;} - - else if ( (LA12_0=='<') ) {s = 19;} - - else if ( (LA12_0=='>') ) {s = 20;} - - else if ( (LA12_0=='=') ) {s = 21;} - - else if ( (LA12_0=='^') ) {s = 22;} - - else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='e'||LA12_0=='h'||LA12_0=='k'||LA12_0=='m'||LA12_0=='q'||LA12_0=='v'||(LA12_0>='x' && LA12_0<='z')) ) {s = 23;} - - else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 24;} - - else if ( (LA12_0=='\"') ) {s = 25;} - - else if ( (LA12_0=='\'') ) {s = 26;} - - else if ( (LA12_0=='/') ) {s = 27;} - - else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 28;} - - else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='.')||(LA12_0>=':' && LA12_0<=';')||(LA12_0>='?' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 29;} - - if ( s>=0 ) return s; - break; - } - NoViableAltException nvae = - new NoViableAltException(getDescription(), 12, _s, input); - error(nvae); - throw nvae; - } - } - - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDslParser.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDslParser.java deleted file mode 100644 index dedd6c88..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/parser/antlr/internal/InternalDslParser.java +++ /dev/null @@ -1,11373 +0,0 @@ -package in.handyman.parser.antlr.internal; - -import org.eclipse.xtext.*; -import org.eclipse.xtext.parser.*; -import org.eclipse.xtext.parser.impl.*; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; -import org.eclipse.xtext.parser.antlr.XtextTokenStream; -import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; -import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken; -import in.handyman.services.DslGrammarAccess; - - - -import org.antlr.runtime.*; -import java.util.Stack; -import java.util.List; -import java.util.ArrayList; - -@SuppressWarnings("all") -public class InternalDslParser extends AbstractInternalAntlrParser { - public static final String[] tokenNames = new String[] { - "", "", "", "", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'process'", "'{'", "'}'", "'try'", "'finally'", "'catch'", "'spawn'", "'as'", "'with-target'", "'from-file'", "'on-condition'", "'dogleg'", "'use-parent-context'", "'using'", "'java'", "'name-sake-db'", "'fbdp'", "'on'", "'auth-by'", "'for-group'", "'from-source'", "'with-class'", "'fbrn'", "'smsleadssms'", "'with-sender'", "'through-account'", "'secured-by'", "'do-dryrun-with'", "'abort'", "'gcontact-fetchall'", "'with-key'", "'for-project'", "'on-behalf-of'", "'to-target'", "'sendmail'", "'gcontact'", "'gcalendar'", "'fblc'", "'through-user'", "'for-campaign'", "'into'", "'fbfd'", "'for-form'", "'dropfile'", "'in-path'", "'doozle'", "'in-table'", "'rest'", "'with-url'", "'and-method-as'", "'from'", "'update-url-with'", "'update-header-with'", "'update-body-with'", "'parent'", "'store-ack-at'", "'part'", "'with'", "'trelloget'", "'from-board'", "'to'", "'trelloput'", "'for-list'", "'assign'", "'source'", "'callprocess'", "'for-every'", "'forkprocess'", "'watermark'", "'log'", "'logto'", "'in'", "'c2sms'", "'with-user'", "'slackput'", "'copydata'", "'fielding'", "'with-fetch-batch-size'", "'with-write-batch-size'", "'writecsv'", "'loadcsv'", "'transform'", "'start-process'", "'with-file'", "'if'", "'<'", "'>'", "'=='", "'contains'" - }; - public static final int T__50=50; - public static final int T__59=59; - public static final int T__55=55; - public static final int T__56=56; - public static final int T__57=57; - public static final int T__58=58; - public static final int T__51=51; - public static final int T__52=52; - public static final int T__53=53; - public static final int T__54=54; - public static final int T__60=60; - public static final int T__61=61; - public static final int RULE_ID=5; - public static final int RULE_INT=6; - public static final int T__66=66; - public static final int RULE_ML_COMMENT=7; - public static final int T__67=67; - public static final int T__68=68; - public static final int T__69=69; - public static final int T__62=62; - public static final int T__63=63; - public static final int T__64=64; - public static final int T__65=65; - public static final int T__37=37; - public static final int T__38=38; - public static final int T__39=39; - public static final int T__33=33; - public static final int T__34=34; - public static final int T__35=35; - public static final int T__36=36; - public static final int T__30=30; - public static final int T__31=31; - public static final int T__32=32; - public static final int T__48=48; - public static final int T__49=49; - public static final int T__44=44; - public static final int T__45=45; - public static final int T__46=46; - public static final int T__47=47; - public static final int T__40=40; - public static final int T__41=41; - public static final int T__42=42; - public static final int T__43=43; - public static final int T__91=91; - public static final int T__92=92; - public static final int T__93=93; - public static final int T__94=94; - public static final int T__90=90; - public static final int T__19=19; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; - public static final int T__11=11; - public static final int T__99=99; - public static final int T__12=12; - public static final int T__13=13; - public static final int T__14=14; - public static final int T__95=95; - public static final int T__96=96; - public static final int T__97=97; - public static final int T__98=98; - public static final int T__26=26; - public static final int T__27=27; - public static final int T__28=28; - public static final int T__29=29; - public static final int T__22=22; - public static final int T__23=23; - public static final int T__24=24; - public static final int T__25=25; - public static final int T__20=20; - public static final int T__21=21; - public static final int T__70=70; - public static final int T__71=71; - public static final int T__72=72; - public static final int RULE_STRING=4; - public static final int RULE_SL_COMMENT=8; - public static final int T__77=77; - public static final int T__78=78; - public static final int T__79=79; - public static final int T__73=73; - public static final int EOF=-1; - public static final int T__74=74; - public static final int T__75=75; - public static final int T__76=76; - public static final int T__80=80; - public static final int T__81=81; - public static final int T__82=82; - public static final int T__83=83; - public static final int RULE_WS=9; - public static final int RULE_ANY_OTHER=10; - public static final int T__88=88; - public static final int T__89=89; - public static final int T__84=84; - public static final int T__85=85; - public static final int T__86=86; - public static final int T__87=87; - - // delegates - // delegators - - - public InternalDslParser(TokenStream input) { - this(input, new RecognizerSharedState()); - } - public InternalDslParser(TokenStream input, RecognizerSharedState state) { - super(input, state); - - } - - - public String[] getTokenNames() { return InternalDslParser.tokenNames; } - public String getGrammarFileName() { return "InternalDsl.g"; } - - - - private DslGrammarAccess grammarAccess; - - public InternalDslParser(TokenStream input, DslGrammarAccess grammarAccess) { - this(input); - this.grammarAccess = grammarAccess; - registerRules(grammarAccess.getGrammar()); - } - - @Override - protected String getFirstRuleName() { - return "Process"; - } - - @Override - protected DslGrammarAccess getGrammarAccess() { - return grammarAccess; - } - - - - - // $ANTLR start "entryRuleProcess" - // InternalDsl.g:64:1: entryRuleProcess returns [EObject current=null] : iv_ruleProcess= ruleProcess EOF ; - public final EObject entryRuleProcess() throws RecognitionException { - EObject current = null; - - EObject iv_ruleProcess = null; - - - try { - // InternalDsl.g:64:48: (iv_ruleProcess= ruleProcess EOF ) - // InternalDsl.g:65:2: iv_ruleProcess= ruleProcess EOF - { - newCompositeNode(grammarAccess.getProcessRule()); - pushFollow(FOLLOW_1); - iv_ruleProcess=ruleProcess(); - - state._fsp--; - - current =iv_ruleProcess; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleProcess" - - - // $ANTLR start "ruleProcess" - // InternalDsl.g:71:1: ruleProcess returns [EObject current=null] : (otherlv_0= 'process' ( (lv_name_1_0= RULE_STRING ) ) otherlv_2= '{' ( (lv_try_3_0= ruleTry ) ) ( (lv_catch_4_0= ruleCatch ) ) ( (lv_finally_5_0= ruleFinally ) ) otherlv_6= '}' ) ; - public final EObject ruleProcess() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token lv_name_1_0=null; - Token otherlv_2=null; - Token otherlv_6=null; - EObject lv_try_3_0 = null; - - EObject lv_catch_4_0 = null; - - EObject lv_finally_5_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:77:2: ( (otherlv_0= 'process' ( (lv_name_1_0= RULE_STRING ) ) otherlv_2= '{' ( (lv_try_3_0= ruleTry ) ) ( (lv_catch_4_0= ruleCatch ) ) ( (lv_finally_5_0= ruleFinally ) ) otherlv_6= '}' ) ) - // InternalDsl.g:78:2: (otherlv_0= 'process' ( (lv_name_1_0= RULE_STRING ) ) otherlv_2= '{' ( (lv_try_3_0= ruleTry ) ) ( (lv_catch_4_0= ruleCatch ) ) ( (lv_finally_5_0= ruleFinally ) ) otherlv_6= '}' ) - { - // InternalDsl.g:78:2: (otherlv_0= 'process' ( (lv_name_1_0= RULE_STRING ) ) otherlv_2= '{' ( (lv_try_3_0= ruleTry ) ) ( (lv_catch_4_0= ruleCatch ) ) ( (lv_finally_5_0= ruleFinally ) ) otherlv_6= '}' ) - // InternalDsl.g:79:3: otherlv_0= 'process' ( (lv_name_1_0= RULE_STRING ) ) otherlv_2= '{' ( (lv_try_3_0= ruleTry ) ) ( (lv_catch_4_0= ruleCatch ) ) ( (lv_finally_5_0= ruleFinally ) ) otherlv_6= '}' - { - otherlv_0=(Token)match(input,11,FOLLOW_3); - - newLeafNode(otherlv_0, grammarAccess.getProcessAccess().getProcessKeyword_0()); - - // InternalDsl.g:83:3: ( (lv_name_1_0= RULE_STRING ) ) - // InternalDsl.g:84:4: (lv_name_1_0= RULE_STRING ) - { - // InternalDsl.g:84:4: (lv_name_1_0= RULE_STRING ) - // InternalDsl.g:85:5: lv_name_1_0= RULE_STRING - { - lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_4); - - newLeafNode(lv_name_1_0, grammarAccess.getProcessAccess().getNameSTRINGTerminalRuleCall_1_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getProcessRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_2=(Token)match(input,12,FOLLOW_5); - - newLeafNode(otherlv_2, grammarAccess.getProcessAccess().getLeftCurlyBracketKeyword_2()); - - // InternalDsl.g:105:3: ( (lv_try_3_0= ruleTry ) ) - // InternalDsl.g:106:4: (lv_try_3_0= ruleTry ) - { - // InternalDsl.g:106:4: (lv_try_3_0= ruleTry ) - // InternalDsl.g:107:5: lv_try_3_0= ruleTry - { - - newCompositeNode(grammarAccess.getProcessAccess().getTryTryParserRuleCall_3_0()); - - pushFollow(FOLLOW_6); - lv_try_3_0=ruleTry(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getProcessRule()); - } - set( - current, - "try", - lv_try_3_0, - "in.handyman.Dsl.Try"); - afterParserOrEnumRuleCall(); - - - } - - - } - - // InternalDsl.g:124:3: ( (lv_catch_4_0= ruleCatch ) ) - // InternalDsl.g:125:4: (lv_catch_4_0= ruleCatch ) - { - // InternalDsl.g:125:4: (lv_catch_4_0= ruleCatch ) - // InternalDsl.g:126:5: lv_catch_4_0= ruleCatch - { - - newCompositeNode(grammarAccess.getProcessAccess().getCatchCatchParserRuleCall_4_0()); - - pushFollow(FOLLOW_7); - lv_catch_4_0=ruleCatch(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getProcessRule()); - } - set( - current, - "catch", - lv_catch_4_0, - "in.handyman.Dsl.Catch"); - afterParserOrEnumRuleCall(); - - - } - - - } - - // InternalDsl.g:143:3: ( (lv_finally_5_0= ruleFinally ) ) - // InternalDsl.g:144:4: (lv_finally_5_0= ruleFinally ) - { - // InternalDsl.g:144:4: (lv_finally_5_0= ruleFinally ) - // InternalDsl.g:145:5: lv_finally_5_0= ruleFinally - { - - newCompositeNode(grammarAccess.getProcessAccess().getFinallyFinallyParserRuleCall_5_0()); - - pushFollow(FOLLOW_8); - lv_finally_5_0=ruleFinally(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getProcessRule()); - } - set( - current, - "finally", - lv_finally_5_0, - "in.handyman.Dsl.Finally"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_6=(Token)match(input,13,FOLLOW_2); - - newLeafNode(otherlv_6, grammarAccess.getProcessAccess().getRightCurlyBracketKeyword_6()); - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleProcess" - - - // $ANTLR start "entryRuleTry" - // InternalDsl.g:170:1: entryRuleTry returns [EObject current=null] : iv_ruleTry= ruleTry EOF ; - public final EObject entryRuleTry() throws RecognitionException { - EObject current = null; - - EObject iv_ruleTry = null; - - - try { - // InternalDsl.g:170:44: (iv_ruleTry= ruleTry EOF ) - // InternalDsl.g:171:2: iv_ruleTry= ruleTry EOF - { - newCompositeNode(grammarAccess.getTryRule()); - pushFollow(FOLLOW_1); - iv_ruleTry=ruleTry(); - - state._fsp--; - - current =iv_ruleTry; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleTry" - - - // $ANTLR start "ruleTry" - // InternalDsl.g:177:1: ruleTry returns [EObject current=null] : (otherlv_0= 'try' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) ; - public final EObject ruleTry() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token lv_name_1_0=null; - Token otherlv_2=null; - Token otherlv_4=null; - EObject lv_action_3_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:183:2: ( (otherlv_0= 'try' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) ) - // InternalDsl.g:184:2: (otherlv_0= 'try' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) - { - // InternalDsl.g:184:2: (otherlv_0= 'try' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) - // InternalDsl.g:185:3: otherlv_0= 'try' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' - { - otherlv_0=(Token)match(input,14,FOLLOW_9); - - newLeafNode(otherlv_0, grammarAccess.getTryAccess().getTryKeyword_0()); - - // InternalDsl.g:189:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalDsl.g:190:4: (lv_name_1_0= RULE_ID ) - { - // InternalDsl.g:190:4: (lv_name_1_0= RULE_ID ) - // InternalDsl.g:191:5: lv_name_1_0= RULE_ID - { - lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_4); - - newLeafNode(lv_name_1_0, grammarAccess.getTryAccess().getNameIDTerminalRuleCall_1_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTryRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.ID"); - - - } - - - } - - otherlv_2=(Token)match(input,12,FOLLOW_10); - - newLeafNode(otherlv_2, grammarAccess.getTryAccess().getLeftCurlyBracketKeyword_2()); - - // InternalDsl.g:211:3: ( (lv_action_3_0= ruleAction ) )* - loop1: - do { - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0==17||LA1_0==22||LA1_0==25||LA1_0==27||(LA1_0>=33 && LA1_0<=34)||(LA1_0>=39 && LA1_0<=40)||(LA1_0>=45 && LA1_0<=48)||LA1_0==52||LA1_0==54||LA1_0==56||LA1_0==58||LA1_0==69||LA1_0==72||LA1_0==74||LA1_0==76||LA1_0==78||LA1_0==80||LA1_0==83||(LA1_0>=85 && LA1_0<=86)||(LA1_0>=90 && LA1_0<=92)) ) { - alt1=1; - } - - - switch (alt1) { - case 1 : - // InternalDsl.g:212:4: (lv_action_3_0= ruleAction ) - { - // InternalDsl.g:212:4: (lv_action_3_0= ruleAction ) - // InternalDsl.g:213:5: lv_action_3_0= ruleAction - { - - newCompositeNode(grammarAccess.getTryAccess().getActionActionParserRuleCall_3_0()); - - pushFollow(FOLLOW_10); - lv_action_3_0=ruleAction(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getTryRule()); - } - add( - current, - "action", - lv_action_3_0, - "in.handyman.Dsl.Action"); - afterParserOrEnumRuleCall(); - - - } - - - } - break; - - default : - break loop1; - } - } while (true); - - otherlv_4=(Token)match(input,13,FOLLOW_2); - - newLeafNode(otherlv_4, grammarAccess.getTryAccess().getRightCurlyBracketKeyword_4()); - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleTry" - - - // $ANTLR start "entryRuleFinally" - // InternalDsl.g:238:1: entryRuleFinally returns [EObject current=null] : iv_ruleFinally= ruleFinally EOF ; - public final EObject entryRuleFinally() throws RecognitionException { - EObject current = null; - - EObject iv_ruleFinally = null; - - - try { - // InternalDsl.g:238:48: (iv_ruleFinally= ruleFinally EOF ) - // InternalDsl.g:239:2: iv_ruleFinally= ruleFinally EOF - { - newCompositeNode(grammarAccess.getFinallyRule()); - pushFollow(FOLLOW_1); - iv_ruleFinally=ruleFinally(); - - state._fsp--; - - current =iv_ruleFinally; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleFinally" - - - // $ANTLR start "ruleFinally" - // InternalDsl.g:245:1: ruleFinally returns [EObject current=null] : (otherlv_0= 'finally' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) ; - public final EObject ruleFinally() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token lv_name_1_0=null; - Token otherlv_2=null; - Token otherlv_4=null; - EObject lv_action_3_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:251:2: ( (otherlv_0= 'finally' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) ) - // InternalDsl.g:252:2: (otherlv_0= 'finally' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) - { - // InternalDsl.g:252:2: (otherlv_0= 'finally' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) - // InternalDsl.g:253:3: otherlv_0= 'finally' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' - { - otherlv_0=(Token)match(input,15,FOLLOW_9); - - newLeafNode(otherlv_0, grammarAccess.getFinallyAccess().getFinallyKeyword_0()); - - // InternalDsl.g:257:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalDsl.g:258:4: (lv_name_1_0= RULE_ID ) - { - // InternalDsl.g:258:4: (lv_name_1_0= RULE_ID ) - // InternalDsl.g:259:5: lv_name_1_0= RULE_ID - { - lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_4); - - newLeafNode(lv_name_1_0, grammarAccess.getFinallyAccess().getNameIDTerminalRuleCall_1_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFinallyRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.ID"); - - - } - - - } - - otherlv_2=(Token)match(input,12,FOLLOW_10); - - newLeafNode(otherlv_2, grammarAccess.getFinallyAccess().getLeftCurlyBracketKeyword_2()); - - // InternalDsl.g:279:3: ( (lv_action_3_0= ruleAction ) )* - loop2: - do { - int alt2=2; - int LA2_0 = input.LA(1); - - if ( (LA2_0==17||LA2_0==22||LA2_0==25||LA2_0==27||(LA2_0>=33 && LA2_0<=34)||(LA2_0>=39 && LA2_0<=40)||(LA2_0>=45 && LA2_0<=48)||LA2_0==52||LA2_0==54||LA2_0==56||LA2_0==58||LA2_0==69||LA2_0==72||LA2_0==74||LA2_0==76||LA2_0==78||LA2_0==80||LA2_0==83||(LA2_0>=85 && LA2_0<=86)||(LA2_0>=90 && LA2_0<=92)) ) { - alt2=1; - } - - - switch (alt2) { - case 1 : - // InternalDsl.g:280:4: (lv_action_3_0= ruleAction ) - { - // InternalDsl.g:280:4: (lv_action_3_0= ruleAction ) - // InternalDsl.g:281:5: lv_action_3_0= ruleAction - { - - newCompositeNode(grammarAccess.getFinallyAccess().getActionActionParserRuleCall_3_0()); - - pushFollow(FOLLOW_10); - lv_action_3_0=ruleAction(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getFinallyRule()); - } - add( - current, - "action", - lv_action_3_0, - "in.handyman.Dsl.Action"); - afterParserOrEnumRuleCall(); - - - } - - - } - break; - - default : - break loop2; - } - } while (true); - - otherlv_4=(Token)match(input,13,FOLLOW_2); - - newLeafNode(otherlv_4, grammarAccess.getFinallyAccess().getRightCurlyBracketKeyword_4()); - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleFinally" - - - // $ANTLR start "entryRuleCatch" - // InternalDsl.g:306:1: entryRuleCatch returns [EObject current=null] : iv_ruleCatch= ruleCatch EOF ; - public final EObject entryRuleCatch() throws RecognitionException { - EObject current = null; - - EObject iv_ruleCatch = null; - - - try { - // InternalDsl.g:306:46: (iv_ruleCatch= ruleCatch EOF ) - // InternalDsl.g:307:2: iv_ruleCatch= ruleCatch EOF - { - newCompositeNode(grammarAccess.getCatchRule()); - pushFollow(FOLLOW_1); - iv_ruleCatch=ruleCatch(); - - state._fsp--; - - current =iv_ruleCatch; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleCatch" - - - // $ANTLR start "ruleCatch" - // InternalDsl.g:313:1: ruleCatch returns [EObject current=null] : (otherlv_0= 'catch' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) ; - public final EObject ruleCatch() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token lv_name_1_0=null; - Token otherlv_2=null; - Token otherlv_4=null; - EObject lv_action_3_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:319:2: ( (otherlv_0= 'catch' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) ) - // InternalDsl.g:320:2: (otherlv_0= 'catch' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) - { - // InternalDsl.g:320:2: (otherlv_0= 'catch' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' ) - // InternalDsl.g:321:3: otherlv_0= 'catch' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' ( (lv_action_3_0= ruleAction ) )* otherlv_4= '}' - { - otherlv_0=(Token)match(input,16,FOLLOW_9); - - newLeafNode(otherlv_0, grammarAccess.getCatchAccess().getCatchKeyword_0()); - - // InternalDsl.g:325:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalDsl.g:326:4: (lv_name_1_0= RULE_ID ) - { - // InternalDsl.g:326:4: (lv_name_1_0= RULE_ID ) - // InternalDsl.g:327:5: lv_name_1_0= RULE_ID - { - lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_4); - - newLeafNode(lv_name_1_0, grammarAccess.getCatchAccess().getNameIDTerminalRuleCall_1_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCatchRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.ID"); - - - } - - - } - - otherlv_2=(Token)match(input,12,FOLLOW_10); - - newLeafNode(otherlv_2, grammarAccess.getCatchAccess().getLeftCurlyBracketKeyword_2()); - - // InternalDsl.g:347:3: ( (lv_action_3_0= ruleAction ) )* - loop3: - do { - int alt3=2; - int LA3_0 = input.LA(1); - - if ( (LA3_0==17||LA3_0==22||LA3_0==25||LA3_0==27||(LA3_0>=33 && LA3_0<=34)||(LA3_0>=39 && LA3_0<=40)||(LA3_0>=45 && LA3_0<=48)||LA3_0==52||LA3_0==54||LA3_0==56||LA3_0==58||LA3_0==69||LA3_0==72||LA3_0==74||LA3_0==76||LA3_0==78||LA3_0==80||LA3_0==83||(LA3_0>=85 && LA3_0<=86)||(LA3_0>=90 && LA3_0<=92)) ) { - alt3=1; - } - - - switch (alt3) { - case 1 : - // InternalDsl.g:348:4: (lv_action_3_0= ruleAction ) - { - // InternalDsl.g:348:4: (lv_action_3_0= ruleAction ) - // InternalDsl.g:349:5: lv_action_3_0= ruleAction - { - - newCompositeNode(grammarAccess.getCatchAccess().getActionActionParserRuleCall_3_0()); - - pushFollow(FOLLOW_10); - lv_action_3_0=ruleAction(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getCatchRule()); - } - add( - current, - "action", - lv_action_3_0, - "in.handyman.Dsl.Action"); - afterParserOrEnumRuleCall(); - - - } - - - } - break; - - default : - break loop3; - } - } while (true); - - otherlv_4=(Token)match(input,13,FOLLOW_2); - - newLeafNode(otherlv_4, grammarAccess.getCatchAccess().getRightCurlyBracketKeyword_4()); - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleCatch" - - - // $ANTLR start "entryRuleAction" - // InternalDsl.g:374:1: entryRuleAction returns [EObject current=null] : iv_ruleAction= ruleAction EOF ; - public final EObject entryRuleAction() throws RecognitionException { - EObject current = null; - - EObject iv_ruleAction = null; - - - try { - // InternalDsl.g:374:47: (iv_ruleAction= ruleAction EOF ) - // InternalDsl.g:375:2: iv_ruleAction= ruleAction EOF - { - newCompositeNode(grammarAccess.getActionRule()); - pushFollow(FOLLOW_1); - iv_ruleAction=ruleAction(); - - state._fsp--; - - current =iv_ruleAction; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleAction" - - - // $ANTLR start "ruleAction" - // InternalDsl.g:381:1: ruleAction returns [EObject current=null] : (this_Copydata_0= ruleCopydata | this_LoadCsv_1= ruleLoadCsv | this_WriteCsv_2= ruleWriteCsv | this_Transform_3= ruleTransform | this_GooglecalPUT_4= ruleGooglecalPUT | this_SlackPUT_5= ruleSlackPUT | this_ClickSendSms_6= ruleClickSendSms | this_Updatedaudit_7= ruleUpdatedaudit | this_Callprocess_8= ruleCallprocess | this_Forkprocess_9= ruleForkprocess | this_Fetch_10= ruleFetch | this_TrelloPUT_11= ruleTrelloPUT | this_TrelloGET_12= ruleTrelloGET | this_Rest_13= ruleRest | this_Doozle_14= ruleDoozle | this_Dropfile_15= ruleDropfile | this_FBCLead_16= ruleFBCLead | this_FBFormDownload_17= ruleFBFormDownload | this_SendMail_18= ruleSendMail | this_GooglecontactPUT_19= ruleGooglecontactPUT | this_GooglecontactSelectAll_20= ruleGooglecontactSelectAll | this_Abort_21= ruleAbort | this_SmsLeadSms_22= ruleSmsLeadSms | this_FirebaseReactiveNotification_23= ruleFirebaseReactiveNotification | this_FirebaseDatabasePut_24= ruleFirebaseDatabasePut | this_ExecJava_25= ruleExecJava | this_Dogleg_26= ruleDogleg | this_Spawnprocess_27= ruleSpawnprocess ) ; - public final EObject ruleAction() throws RecognitionException { - EObject current = null; - - EObject this_Copydata_0 = null; - - EObject this_LoadCsv_1 = null; - - EObject this_WriteCsv_2 = null; - - EObject this_Transform_3 = null; - - EObject this_GooglecalPUT_4 = null; - - EObject this_SlackPUT_5 = null; - - EObject this_ClickSendSms_6 = null; - - EObject this_Updatedaudit_7 = null; - - EObject this_Callprocess_8 = null; - - EObject this_Forkprocess_9 = null; - - EObject this_Fetch_10 = null; - - EObject this_TrelloPUT_11 = null; - - EObject this_TrelloGET_12 = null; - - EObject this_Rest_13 = null; - - EObject this_Doozle_14 = null; - - EObject this_Dropfile_15 = null; - - EObject this_FBCLead_16 = null; - - EObject this_FBFormDownload_17 = null; - - EObject this_SendMail_18 = null; - - EObject this_GooglecontactPUT_19 = null; - - EObject this_GooglecontactSelectAll_20 = null; - - EObject this_Abort_21 = null; - - EObject this_SmsLeadSms_22 = null; - - EObject this_FirebaseReactiveNotification_23 = null; - - EObject this_FirebaseDatabasePut_24 = null; - - EObject this_ExecJava_25 = null; - - EObject this_Dogleg_26 = null; - - EObject this_Spawnprocess_27 = null; - - - - enterRule(); - - try { - // InternalDsl.g:387:2: ( (this_Copydata_0= ruleCopydata | this_LoadCsv_1= ruleLoadCsv | this_WriteCsv_2= ruleWriteCsv | this_Transform_3= ruleTransform | this_GooglecalPUT_4= ruleGooglecalPUT | this_SlackPUT_5= ruleSlackPUT | this_ClickSendSms_6= ruleClickSendSms | this_Updatedaudit_7= ruleUpdatedaudit | this_Callprocess_8= ruleCallprocess | this_Forkprocess_9= ruleForkprocess | this_Fetch_10= ruleFetch | this_TrelloPUT_11= ruleTrelloPUT | this_TrelloGET_12= ruleTrelloGET | this_Rest_13= ruleRest | this_Doozle_14= ruleDoozle | this_Dropfile_15= ruleDropfile | this_FBCLead_16= ruleFBCLead | this_FBFormDownload_17= ruleFBFormDownload | this_SendMail_18= ruleSendMail | this_GooglecontactPUT_19= ruleGooglecontactPUT | this_GooglecontactSelectAll_20= ruleGooglecontactSelectAll | this_Abort_21= ruleAbort | this_SmsLeadSms_22= ruleSmsLeadSms | this_FirebaseReactiveNotification_23= ruleFirebaseReactiveNotification | this_FirebaseDatabasePut_24= ruleFirebaseDatabasePut | this_ExecJava_25= ruleExecJava | this_Dogleg_26= ruleDogleg | this_Spawnprocess_27= ruleSpawnprocess ) ) - // InternalDsl.g:388:2: (this_Copydata_0= ruleCopydata | this_LoadCsv_1= ruleLoadCsv | this_WriteCsv_2= ruleWriteCsv | this_Transform_3= ruleTransform | this_GooglecalPUT_4= ruleGooglecalPUT | this_SlackPUT_5= ruleSlackPUT | this_ClickSendSms_6= ruleClickSendSms | this_Updatedaudit_7= ruleUpdatedaudit | this_Callprocess_8= ruleCallprocess | this_Forkprocess_9= ruleForkprocess | this_Fetch_10= ruleFetch | this_TrelloPUT_11= ruleTrelloPUT | this_TrelloGET_12= ruleTrelloGET | this_Rest_13= ruleRest | this_Doozle_14= ruleDoozle | this_Dropfile_15= ruleDropfile | this_FBCLead_16= ruleFBCLead | this_FBFormDownload_17= ruleFBFormDownload | this_SendMail_18= ruleSendMail | this_GooglecontactPUT_19= ruleGooglecontactPUT | this_GooglecontactSelectAll_20= ruleGooglecontactSelectAll | this_Abort_21= ruleAbort | this_SmsLeadSms_22= ruleSmsLeadSms | this_FirebaseReactiveNotification_23= ruleFirebaseReactiveNotification | this_FirebaseDatabasePut_24= ruleFirebaseDatabasePut | this_ExecJava_25= ruleExecJava | this_Dogleg_26= ruleDogleg | this_Spawnprocess_27= ruleSpawnprocess ) - { - // InternalDsl.g:388:2: (this_Copydata_0= ruleCopydata | this_LoadCsv_1= ruleLoadCsv | this_WriteCsv_2= ruleWriteCsv | this_Transform_3= ruleTransform | this_GooglecalPUT_4= ruleGooglecalPUT | this_SlackPUT_5= ruleSlackPUT | this_ClickSendSms_6= ruleClickSendSms | this_Updatedaudit_7= ruleUpdatedaudit | this_Callprocess_8= ruleCallprocess | this_Forkprocess_9= ruleForkprocess | this_Fetch_10= ruleFetch | this_TrelloPUT_11= ruleTrelloPUT | this_TrelloGET_12= ruleTrelloGET | this_Rest_13= ruleRest | this_Doozle_14= ruleDoozle | this_Dropfile_15= ruleDropfile | this_FBCLead_16= ruleFBCLead | this_FBFormDownload_17= ruleFBFormDownload | this_SendMail_18= ruleSendMail | this_GooglecontactPUT_19= ruleGooglecontactPUT | this_GooglecontactSelectAll_20= ruleGooglecontactSelectAll | this_Abort_21= ruleAbort | this_SmsLeadSms_22= ruleSmsLeadSms | this_FirebaseReactiveNotification_23= ruleFirebaseReactiveNotification | this_FirebaseDatabasePut_24= ruleFirebaseDatabasePut | this_ExecJava_25= ruleExecJava | this_Dogleg_26= ruleDogleg | this_Spawnprocess_27= ruleSpawnprocess ) - int alt4=28; - switch ( input.LA(1) ) { - case 86: - { - alt4=1; - } - break; - case 91: - { - alt4=2; - } - break; - case 90: - { - alt4=3; - } - break; - case 92: - { - alt4=4; - } - break; - case 47: - { - alt4=5; - } - break; - case 85: - { - alt4=6; - } - break; - case 83: - { - alt4=7; - } - break; - case 80: - { - alt4=8; - } - break; - case 76: - { - alt4=9; - } - break; - case 78: - { - alt4=10; - } - break; - case 74: - { - alt4=11; - } - break; - case 72: - { - alt4=12; - } - break; - case 69: - { - alt4=13; - } - break; - case 58: - { - alt4=14; - } - break; - case 56: - { - alt4=15; - } - break; - case 54: - { - alt4=16; - } - break; - case 48: - { - alt4=17; - } - break; - case 52: - { - alt4=18; - } - break; - case 45: - { - alt4=19; - } - break; - case 46: - { - alt4=20; - } - break; - case 40: - { - alt4=21; - } - break; - case 39: - { - alt4=22; - } - break; - case 34: - { - alt4=23; - } - break; - case 33: - { - alt4=24; - } - break; - case 27: - { - alt4=25; - } - break; - case 25: - { - alt4=26; - } - break; - case 22: - { - alt4=27; - } - break; - case 17: - { - alt4=28; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 4, 0, input); - - throw nvae; - } - - switch (alt4) { - case 1 : - // InternalDsl.g:389:3: this_Copydata_0= ruleCopydata - { - - newCompositeNode(grammarAccess.getActionAccess().getCopydataParserRuleCall_0()); - - pushFollow(FOLLOW_2); - this_Copydata_0=ruleCopydata(); - - state._fsp--; - - - current = this_Copydata_0; - afterParserOrEnumRuleCall(); - - - } - break; - case 2 : - // InternalDsl.g:398:3: this_LoadCsv_1= ruleLoadCsv - { - - newCompositeNode(grammarAccess.getActionAccess().getLoadCsvParserRuleCall_1()); - - pushFollow(FOLLOW_2); - this_LoadCsv_1=ruleLoadCsv(); - - state._fsp--; - - - current = this_LoadCsv_1; - afterParserOrEnumRuleCall(); - - - } - break; - case 3 : - // InternalDsl.g:407:3: this_WriteCsv_2= ruleWriteCsv - { - - newCompositeNode(grammarAccess.getActionAccess().getWriteCsvParserRuleCall_2()); - - pushFollow(FOLLOW_2); - this_WriteCsv_2=ruleWriteCsv(); - - state._fsp--; - - - current = this_WriteCsv_2; - afterParserOrEnumRuleCall(); - - - } - break; - case 4 : - // InternalDsl.g:416:3: this_Transform_3= ruleTransform - { - - newCompositeNode(grammarAccess.getActionAccess().getTransformParserRuleCall_3()); - - pushFollow(FOLLOW_2); - this_Transform_3=ruleTransform(); - - state._fsp--; - - - current = this_Transform_3; - afterParserOrEnumRuleCall(); - - - } - break; - case 5 : - // InternalDsl.g:425:3: this_GooglecalPUT_4= ruleGooglecalPUT - { - - newCompositeNode(grammarAccess.getActionAccess().getGooglecalPUTParserRuleCall_4()); - - pushFollow(FOLLOW_2); - this_GooglecalPUT_4=ruleGooglecalPUT(); - - state._fsp--; - - - current = this_GooglecalPUT_4; - afterParserOrEnumRuleCall(); - - - } - break; - case 6 : - // InternalDsl.g:434:3: this_SlackPUT_5= ruleSlackPUT - { - - newCompositeNode(grammarAccess.getActionAccess().getSlackPUTParserRuleCall_5()); - - pushFollow(FOLLOW_2); - this_SlackPUT_5=ruleSlackPUT(); - - state._fsp--; - - - current = this_SlackPUT_5; - afterParserOrEnumRuleCall(); - - - } - break; - case 7 : - // InternalDsl.g:443:3: this_ClickSendSms_6= ruleClickSendSms - { - - newCompositeNode(grammarAccess.getActionAccess().getClickSendSmsParserRuleCall_6()); - - pushFollow(FOLLOW_2); - this_ClickSendSms_6=ruleClickSendSms(); - - state._fsp--; - - - current = this_ClickSendSms_6; - afterParserOrEnumRuleCall(); - - - } - break; - case 8 : - // InternalDsl.g:452:3: this_Updatedaudit_7= ruleUpdatedaudit - { - - newCompositeNode(grammarAccess.getActionAccess().getUpdatedauditParserRuleCall_7()); - - pushFollow(FOLLOW_2); - this_Updatedaudit_7=ruleUpdatedaudit(); - - state._fsp--; - - - current = this_Updatedaudit_7; - afterParserOrEnumRuleCall(); - - - } - break; - case 9 : - // InternalDsl.g:461:3: this_Callprocess_8= ruleCallprocess - { - - newCompositeNode(grammarAccess.getActionAccess().getCallprocessParserRuleCall_8()); - - pushFollow(FOLLOW_2); - this_Callprocess_8=ruleCallprocess(); - - state._fsp--; - - - current = this_Callprocess_8; - afterParserOrEnumRuleCall(); - - - } - break; - case 10 : - // InternalDsl.g:470:3: this_Forkprocess_9= ruleForkprocess - { - - newCompositeNode(grammarAccess.getActionAccess().getForkprocessParserRuleCall_9()); - - pushFollow(FOLLOW_2); - this_Forkprocess_9=ruleForkprocess(); - - state._fsp--; - - - current = this_Forkprocess_9; - afterParserOrEnumRuleCall(); - - - } - break; - case 11 : - // InternalDsl.g:479:3: this_Fetch_10= ruleFetch - { - - newCompositeNode(grammarAccess.getActionAccess().getFetchParserRuleCall_10()); - - pushFollow(FOLLOW_2); - this_Fetch_10=ruleFetch(); - - state._fsp--; - - - current = this_Fetch_10; - afterParserOrEnumRuleCall(); - - - } - break; - case 12 : - // InternalDsl.g:488:3: this_TrelloPUT_11= ruleTrelloPUT - { - - newCompositeNode(grammarAccess.getActionAccess().getTrelloPUTParserRuleCall_11()); - - pushFollow(FOLLOW_2); - this_TrelloPUT_11=ruleTrelloPUT(); - - state._fsp--; - - - current = this_TrelloPUT_11; - afterParserOrEnumRuleCall(); - - - } - break; - case 13 : - // InternalDsl.g:497:3: this_TrelloGET_12= ruleTrelloGET - { - - newCompositeNode(grammarAccess.getActionAccess().getTrelloGETParserRuleCall_12()); - - pushFollow(FOLLOW_2); - this_TrelloGET_12=ruleTrelloGET(); - - state._fsp--; - - - current = this_TrelloGET_12; - afterParserOrEnumRuleCall(); - - - } - break; - case 14 : - // InternalDsl.g:506:3: this_Rest_13= ruleRest - { - - newCompositeNode(grammarAccess.getActionAccess().getRestParserRuleCall_13()); - - pushFollow(FOLLOW_2); - this_Rest_13=ruleRest(); - - state._fsp--; - - - current = this_Rest_13; - afterParserOrEnumRuleCall(); - - - } - break; - case 15 : - // InternalDsl.g:515:3: this_Doozle_14= ruleDoozle - { - - newCompositeNode(grammarAccess.getActionAccess().getDoozleParserRuleCall_14()); - - pushFollow(FOLLOW_2); - this_Doozle_14=ruleDoozle(); - - state._fsp--; - - - current = this_Doozle_14; - afterParserOrEnumRuleCall(); - - - } - break; - case 16 : - // InternalDsl.g:524:3: this_Dropfile_15= ruleDropfile - { - - newCompositeNode(grammarAccess.getActionAccess().getDropfileParserRuleCall_15()); - - pushFollow(FOLLOW_2); - this_Dropfile_15=ruleDropfile(); - - state._fsp--; - - - current = this_Dropfile_15; - afterParserOrEnumRuleCall(); - - - } - break; - case 17 : - // InternalDsl.g:533:3: this_FBCLead_16= ruleFBCLead - { - - newCompositeNode(grammarAccess.getActionAccess().getFBCLeadParserRuleCall_16()); - - pushFollow(FOLLOW_2); - this_FBCLead_16=ruleFBCLead(); - - state._fsp--; - - - current = this_FBCLead_16; - afterParserOrEnumRuleCall(); - - - } - break; - case 18 : - // InternalDsl.g:542:3: this_FBFormDownload_17= ruleFBFormDownload - { - - newCompositeNode(grammarAccess.getActionAccess().getFBFormDownloadParserRuleCall_17()); - - pushFollow(FOLLOW_2); - this_FBFormDownload_17=ruleFBFormDownload(); - - state._fsp--; - - - current = this_FBFormDownload_17; - afterParserOrEnumRuleCall(); - - - } - break; - case 19 : - // InternalDsl.g:551:3: this_SendMail_18= ruleSendMail - { - - newCompositeNode(grammarAccess.getActionAccess().getSendMailParserRuleCall_18()); - - pushFollow(FOLLOW_2); - this_SendMail_18=ruleSendMail(); - - state._fsp--; - - - current = this_SendMail_18; - afterParserOrEnumRuleCall(); - - - } - break; - case 20 : - // InternalDsl.g:560:3: this_GooglecontactPUT_19= ruleGooglecontactPUT - { - - newCompositeNode(grammarAccess.getActionAccess().getGooglecontactPUTParserRuleCall_19()); - - pushFollow(FOLLOW_2); - this_GooglecontactPUT_19=ruleGooglecontactPUT(); - - state._fsp--; - - - current = this_GooglecontactPUT_19; - afterParserOrEnumRuleCall(); - - - } - break; - case 21 : - // InternalDsl.g:569:3: this_GooglecontactSelectAll_20= ruleGooglecontactSelectAll - { - - newCompositeNode(grammarAccess.getActionAccess().getGooglecontactSelectAllParserRuleCall_20()); - - pushFollow(FOLLOW_2); - this_GooglecontactSelectAll_20=ruleGooglecontactSelectAll(); - - state._fsp--; - - - current = this_GooglecontactSelectAll_20; - afterParserOrEnumRuleCall(); - - - } - break; - case 22 : - // InternalDsl.g:578:3: this_Abort_21= ruleAbort - { - - newCompositeNode(grammarAccess.getActionAccess().getAbortParserRuleCall_21()); - - pushFollow(FOLLOW_2); - this_Abort_21=ruleAbort(); - - state._fsp--; - - - current = this_Abort_21; - afterParserOrEnumRuleCall(); - - - } - break; - case 23 : - // InternalDsl.g:587:3: this_SmsLeadSms_22= ruleSmsLeadSms - { - - newCompositeNode(grammarAccess.getActionAccess().getSmsLeadSmsParserRuleCall_22()); - - pushFollow(FOLLOW_2); - this_SmsLeadSms_22=ruleSmsLeadSms(); - - state._fsp--; - - - current = this_SmsLeadSms_22; - afterParserOrEnumRuleCall(); - - - } - break; - case 24 : - // InternalDsl.g:596:3: this_FirebaseReactiveNotification_23= ruleFirebaseReactiveNotification - { - - newCompositeNode(grammarAccess.getActionAccess().getFirebaseReactiveNotificationParserRuleCall_23()); - - pushFollow(FOLLOW_2); - this_FirebaseReactiveNotification_23=ruleFirebaseReactiveNotification(); - - state._fsp--; - - - current = this_FirebaseReactiveNotification_23; - afterParserOrEnumRuleCall(); - - - } - break; - case 25 : - // InternalDsl.g:605:3: this_FirebaseDatabasePut_24= ruleFirebaseDatabasePut - { - - newCompositeNode(grammarAccess.getActionAccess().getFirebaseDatabasePutParserRuleCall_24()); - - pushFollow(FOLLOW_2); - this_FirebaseDatabasePut_24=ruleFirebaseDatabasePut(); - - state._fsp--; - - - current = this_FirebaseDatabasePut_24; - afterParserOrEnumRuleCall(); - - - } - break; - case 26 : - // InternalDsl.g:614:3: this_ExecJava_25= ruleExecJava - { - - newCompositeNode(grammarAccess.getActionAccess().getExecJavaParserRuleCall_25()); - - pushFollow(FOLLOW_2); - this_ExecJava_25=ruleExecJava(); - - state._fsp--; - - - current = this_ExecJava_25; - afterParserOrEnumRuleCall(); - - - } - break; - case 27 : - // InternalDsl.g:623:3: this_Dogleg_26= ruleDogleg - { - - newCompositeNode(grammarAccess.getActionAccess().getDoglegParserRuleCall_26()); - - pushFollow(FOLLOW_2); - this_Dogleg_26=ruleDogleg(); - - state._fsp--; - - - current = this_Dogleg_26; - afterParserOrEnumRuleCall(); - - - } - break; - case 28 : - // InternalDsl.g:632:3: this_Spawnprocess_27= ruleSpawnprocess - { - - newCompositeNode(grammarAccess.getActionAccess().getSpawnprocessParserRuleCall_27()); - - pushFollow(FOLLOW_2); - this_Spawnprocess_27=ruleSpawnprocess(); - - state._fsp--; - - - current = this_Spawnprocess_27; - afterParserOrEnumRuleCall(); - - - } - break; - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleAction" - - - // $ANTLR start "entryRuleSpawnprocess" - // InternalDsl.g:644:1: entryRuleSpawnprocess returns [EObject current=null] : iv_ruleSpawnprocess= ruleSpawnprocess EOF ; - public final EObject entryRuleSpawnprocess() throws RecognitionException { - EObject current = null; - - EObject iv_ruleSpawnprocess = null; - - - try { - // InternalDsl.g:644:53: (iv_ruleSpawnprocess= ruleSpawnprocess EOF ) - // InternalDsl.g:645:2: iv_ruleSpawnprocess= ruleSpawnprocess EOF - { - newCompositeNode(grammarAccess.getSpawnprocessRule()); - pushFollow(FOLLOW_1); - iv_ruleSpawnprocess=ruleSpawnprocess(); - - state._fsp--; - - current =iv_ruleSpawnprocess; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleSpawnprocess" - - - // $ANTLR start "ruleSpawnprocess" - // InternalDsl.g:651:1: ruleSpawnprocess returns [EObject current=null] : (otherlv_0= 'spawn' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'on-condition' ( (lv_condition_8_0= ruleExpression ) ) ) ; - public final EObject ruleSpawnprocess() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_target_4_0=null; - Token otherlv_5=null; - Token lv_source_6_0=null; - Token otherlv_7=null; - EObject lv_condition_8_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:657:2: ( (otherlv_0= 'spawn' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'on-condition' ( (lv_condition_8_0= ruleExpression ) ) ) ) - // InternalDsl.g:658:2: (otherlv_0= 'spawn' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'on-condition' ( (lv_condition_8_0= ruleExpression ) ) ) - { - // InternalDsl.g:658:2: (otherlv_0= 'spawn' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'on-condition' ( (lv_condition_8_0= ruleExpression ) ) ) - // InternalDsl.g:659:3: otherlv_0= 'spawn' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'on-condition' ( (lv_condition_8_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,17,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getSpawnprocessAccess().getSpawnKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getSpawnprocessAccess().getAsKeyword_1()); - - // InternalDsl.g:667:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:668:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:668:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:669:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_12); - - newLeafNode(lv_name_2_0, grammarAccess.getSpawnprocessAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSpawnprocessRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,19,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getSpawnprocessAccess().getWithTargetKeyword_3()); - - // InternalDsl.g:689:3: ( (lv_target_4_0= RULE_STRING ) ) - // InternalDsl.g:690:4: (lv_target_4_0= RULE_STRING ) - { - // InternalDsl.g:690:4: (lv_target_4_0= RULE_STRING ) - // InternalDsl.g:691:5: lv_target_4_0= RULE_STRING - { - lv_target_4_0=(Token)match(input,RULE_STRING,FOLLOW_13); - - newLeafNode(lv_target_4_0, grammarAccess.getSpawnprocessAccess().getTargetSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSpawnprocessRule()); - } - setWithLastConsumed( - current, - "target", - lv_target_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,20,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getSpawnprocessAccess().getFromFileKeyword_5()); - - // InternalDsl.g:711:3: ( (lv_source_6_0= RULE_STRING ) ) - // InternalDsl.g:712:4: (lv_source_6_0= RULE_STRING ) - { - // InternalDsl.g:712:4: (lv_source_6_0= RULE_STRING ) - // InternalDsl.g:713:5: lv_source_6_0= RULE_STRING - { - lv_source_6_0=(Token)match(input,RULE_STRING,FOLLOW_14); - - newLeafNode(lv_source_6_0, grammarAccess.getSpawnprocessAccess().getSourceSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSpawnprocessRule()); - } - setWithLastConsumed( - current, - "source", - lv_source_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_7, grammarAccess.getSpawnprocessAccess().getOnConditionKeyword_7()); - - // InternalDsl.g:733:3: ( (lv_condition_8_0= ruleExpression ) ) - // InternalDsl.g:734:4: (lv_condition_8_0= ruleExpression ) - { - // InternalDsl.g:734:4: (lv_condition_8_0= ruleExpression ) - // InternalDsl.g:735:5: lv_condition_8_0= ruleExpression - { - - newCompositeNode(grammarAccess.getSpawnprocessAccess().getConditionExpressionParserRuleCall_8_0()); - - pushFollow(FOLLOW_2); - lv_condition_8_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getSpawnprocessRule()); - } - set( - current, - "condition", - lv_condition_8_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleSpawnprocess" - - - // $ANTLR start "entryRuleDogleg" - // InternalDsl.g:756:1: entryRuleDogleg returns [EObject current=null] : iv_ruleDogleg= ruleDogleg EOF ; - public final EObject entryRuleDogleg() throws RecognitionException { - EObject current = null; - - EObject iv_ruleDogleg = null; - - - try { - // InternalDsl.g:756:47: (iv_ruleDogleg= ruleDogleg EOF ) - // InternalDsl.g:757:2: iv_ruleDogleg= ruleDogleg EOF - { - newCompositeNode(grammarAccess.getDoglegRule()); - pushFollow(FOLLOW_1); - iv_ruleDogleg=ruleDogleg(); - - state._fsp--; - - current =iv_ruleDogleg; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleDogleg" - - - // $ANTLR start "ruleDogleg" - // InternalDsl.g:763:1: ruleDogleg returns [EObject current=null] : (otherlv_0= 'dogleg' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'use-parent-context' ( (lv_inheritContext_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_processList_7_0= ruleStartProcess ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) ; - public final EObject ruleDogleg() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_inheritContext_4_0=null; - Token otherlv_5=null; - Token otherlv_6=null; - Token otherlv_8=null; - Token otherlv_9=null; - EObject lv_processList_7_0 = null; - - EObject lv_condition_10_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:769:2: ( (otherlv_0= 'dogleg' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'use-parent-context' ( (lv_inheritContext_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_processList_7_0= ruleStartProcess ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) ) - // InternalDsl.g:770:2: (otherlv_0= 'dogleg' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'use-parent-context' ( (lv_inheritContext_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_processList_7_0= ruleStartProcess ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) - { - // InternalDsl.g:770:2: (otherlv_0= 'dogleg' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'use-parent-context' ( (lv_inheritContext_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_processList_7_0= ruleStartProcess ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) - // InternalDsl.g:771:3: otherlv_0= 'dogleg' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'use-parent-context' ( (lv_inheritContext_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_processList_7_0= ruleStartProcess ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,22,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getDoglegAccess().getDoglegKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getDoglegAccess().getAsKeyword_1()); - - // InternalDsl.g:779:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:780:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:780:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:781:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_16); - - newLeafNode(lv_name_2_0, grammarAccess.getDoglegAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getDoglegRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,23,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getDoglegAccess().getUseParentContextKeyword_3()); - - // InternalDsl.g:801:3: ( (lv_inheritContext_4_0= RULE_STRING ) ) - // InternalDsl.g:802:4: (lv_inheritContext_4_0= RULE_STRING ) - { - // InternalDsl.g:802:4: (lv_inheritContext_4_0= RULE_STRING ) - // InternalDsl.g:803:5: lv_inheritContext_4_0= RULE_STRING - { - lv_inheritContext_4_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_inheritContext_4_0, grammarAccess.getDoglegAccess().getInheritContextSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getDoglegRule()); - } - setWithLastConsumed( - current, - "inheritContext", - lv_inheritContext_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_5, grammarAccess.getDoglegAccess().getUsingKeyword_5()); - - otherlv_6=(Token)match(input,12,FOLLOW_18); - - newLeafNode(otherlv_6, grammarAccess.getDoglegAccess().getLeftCurlyBracketKeyword_6()); - - // InternalDsl.g:827:3: ( (lv_processList_7_0= ruleStartProcess ) ) - // InternalDsl.g:828:4: (lv_processList_7_0= ruleStartProcess ) - { - // InternalDsl.g:828:4: (lv_processList_7_0= ruleStartProcess ) - // InternalDsl.g:829:5: lv_processList_7_0= ruleStartProcess - { - - newCompositeNode(grammarAccess.getDoglegAccess().getProcessListStartProcessParserRuleCall_7_0()); - - pushFollow(FOLLOW_8); - lv_processList_7_0=ruleStartProcess(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getDoglegRule()); - } - add( - current, - "processList", - lv_processList_7_0, - "in.handyman.Dsl.StartProcess"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_8=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_8, grammarAccess.getDoglegAccess().getRightCurlyBracketKeyword_8()); - - otherlv_9=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_9, grammarAccess.getDoglegAccess().getOnConditionKeyword_9()); - - // InternalDsl.g:854:3: ( (lv_condition_10_0= ruleExpression ) ) - // InternalDsl.g:855:4: (lv_condition_10_0= ruleExpression ) - { - // InternalDsl.g:855:4: (lv_condition_10_0= ruleExpression ) - // InternalDsl.g:856:5: lv_condition_10_0= ruleExpression - { - - newCompositeNode(grammarAccess.getDoglegAccess().getConditionExpressionParserRuleCall_10_0()); - - pushFollow(FOLLOW_2); - lv_condition_10_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getDoglegRule()); - } - set( - current, - "condition", - lv_condition_10_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleDogleg" - - - // $ANTLR start "entryRuleExecJava" - // InternalDsl.g:877:1: entryRuleExecJava returns [EObject current=null] : iv_ruleExecJava= ruleExecJava EOF ; - public final EObject entryRuleExecJava() throws RecognitionException { - EObject current = null; - - EObject iv_ruleExecJava = null; - - - try { - // InternalDsl.g:877:49: (iv_ruleExecJava= ruleExecJava EOF ) - // InternalDsl.g:878:2: iv_ruleExecJava= ruleExecJava EOF - { - newCompositeNode(grammarAccess.getExecJavaRule()); - pushFollow(FOLLOW_1); - iv_ruleExecJava=ruleExecJava(); - - state._fsp--; - - current =iv_ruleExecJava; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleExecJava" - - - // $ANTLR start "ruleExecJava" - // InternalDsl.g:884:1: ruleExecJava returns [EObject current=null] : (otherlv_0= 'java' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'using' ( (lv_classFqn_4_0= RULE_STRING ) ) otherlv_5= 'name-sake-db' ( (lv_dbSrc_6_0= RULE_STRING ) ) otherlv_7= '{' ( (lv_value_8_0= RULE_STRING ) ) otherlv_9= '}' otherlv_10= 'on-condition' ( (lv_condition_11_0= ruleExpression ) ) ) ; - public final EObject ruleExecJava() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_classFqn_4_0=null; - Token otherlv_5=null; - Token lv_dbSrc_6_0=null; - Token otherlv_7=null; - Token lv_value_8_0=null; - Token otherlv_9=null; - Token otherlv_10=null; - EObject lv_condition_11_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:890:2: ( (otherlv_0= 'java' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'using' ( (lv_classFqn_4_0= RULE_STRING ) ) otherlv_5= 'name-sake-db' ( (lv_dbSrc_6_0= RULE_STRING ) ) otherlv_7= '{' ( (lv_value_8_0= RULE_STRING ) ) otherlv_9= '}' otherlv_10= 'on-condition' ( (lv_condition_11_0= ruleExpression ) ) ) ) - // InternalDsl.g:891:2: (otherlv_0= 'java' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'using' ( (lv_classFqn_4_0= RULE_STRING ) ) otherlv_5= 'name-sake-db' ( (lv_dbSrc_6_0= RULE_STRING ) ) otherlv_7= '{' ( (lv_value_8_0= RULE_STRING ) ) otherlv_9= '}' otherlv_10= 'on-condition' ( (lv_condition_11_0= ruleExpression ) ) ) - { - // InternalDsl.g:891:2: (otherlv_0= 'java' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'using' ( (lv_classFqn_4_0= RULE_STRING ) ) otherlv_5= 'name-sake-db' ( (lv_dbSrc_6_0= RULE_STRING ) ) otherlv_7= '{' ( (lv_value_8_0= RULE_STRING ) ) otherlv_9= '}' otherlv_10= 'on-condition' ( (lv_condition_11_0= ruleExpression ) ) ) - // InternalDsl.g:892:3: otherlv_0= 'java' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'using' ( (lv_classFqn_4_0= RULE_STRING ) ) otherlv_5= 'name-sake-db' ( (lv_dbSrc_6_0= RULE_STRING ) ) otherlv_7= '{' ( (lv_value_8_0= RULE_STRING ) ) otherlv_9= '}' otherlv_10= 'on-condition' ( (lv_condition_11_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,25,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getExecJavaAccess().getJavaKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getExecJavaAccess().getAsKeyword_1()); - - // InternalDsl.g:900:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:901:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:901:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:902:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_name_2_0, grammarAccess.getExecJavaAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getExecJavaRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,24,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getExecJavaAccess().getUsingKeyword_3()); - - // InternalDsl.g:922:3: ( (lv_classFqn_4_0= RULE_STRING ) ) - // InternalDsl.g:923:4: (lv_classFqn_4_0= RULE_STRING ) - { - // InternalDsl.g:923:4: (lv_classFqn_4_0= RULE_STRING ) - // InternalDsl.g:924:5: lv_classFqn_4_0= RULE_STRING - { - lv_classFqn_4_0=(Token)match(input,RULE_STRING,FOLLOW_19); - - newLeafNode(lv_classFqn_4_0, grammarAccess.getExecJavaAccess().getClassFqnSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getExecJavaRule()); - } - setWithLastConsumed( - current, - "classFqn", - lv_classFqn_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,26,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getExecJavaAccess().getNameSakeDbKeyword_5()); - - // InternalDsl.g:944:3: ( (lv_dbSrc_6_0= RULE_STRING ) ) - // InternalDsl.g:945:4: (lv_dbSrc_6_0= RULE_STRING ) - { - // InternalDsl.g:945:4: (lv_dbSrc_6_0= RULE_STRING ) - // InternalDsl.g:946:5: lv_dbSrc_6_0= RULE_STRING - { - lv_dbSrc_6_0=(Token)match(input,RULE_STRING,FOLLOW_4); - - newLeafNode(lv_dbSrc_6_0, grammarAccess.getExecJavaAccess().getDbSrcSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getExecJavaRule()); - } - setWithLastConsumed( - current, - "dbSrc", - lv_dbSrc_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getExecJavaAccess().getLeftCurlyBracketKeyword_7()); - - // InternalDsl.g:966:3: ( (lv_value_8_0= RULE_STRING ) ) - // InternalDsl.g:967:4: (lv_value_8_0= RULE_STRING ) - { - // InternalDsl.g:967:4: (lv_value_8_0= RULE_STRING ) - // InternalDsl.g:968:5: lv_value_8_0= RULE_STRING - { - lv_value_8_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_8_0, grammarAccess.getExecJavaAccess().getValueSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getExecJavaRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_9, grammarAccess.getExecJavaAccess().getRightCurlyBracketKeyword_9()); - - otherlv_10=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_10, grammarAccess.getExecJavaAccess().getOnConditionKeyword_10()); - - // InternalDsl.g:992:3: ( (lv_condition_11_0= ruleExpression ) ) - // InternalDsl.g:993:4: (lv_condition_11_0= ruleExpression ) - { - // InternalDsl.g:993:4: (lv_condition_11_0= ruleExpression ) - // InternalDsl.g:994:5: lv_condition_11_0= ruleExpression - { - - newCompositeNode(grammarAccess.getExecJavaAccess().getConditionExpressionParserRuleCall_11_0()); - - pushFollow(FOLLOW_2); - lv_condition_11_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getExecJavaRule()); - } - set( - current, - "condition", - lv_condition_11_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleExecJava" - - - // $ANTLR start "entryRuleFirebaseDatabasePut" - // InternalDsl.g:1015:1: entryRuleFirebaseDatabasePut returns [EObject current=null] : iv_ruleFirebaseDatabasePut= ruleFirebaseDatabasePut EOF ; - public final EObject entryRuleFirebaseDatabasePut() throws RecognitionException { - EObject current = null; - - EObject iv_ruleFirebaseDatabasePut = null; - - - try { - // InternalDsl.g:1015:60: (iv_ruleFirebaseDatabasePut= ruleFirebaseDatabasePut EOF ) - // InternalDsl.g:1016:2: iv_ruleFirebaseDatabasePut= ruleFirebaseDatabasePut EOF - { - newCompositeNode(grammarAccess.getFirebaseDatabasePutRule()); - pushFollow(FOLLOW_1); - iv_ruleFirebaseDatabasePut=ruleFirebaseDatabasePut(); - - state._fsp--; - - current =iv_ruleFirebaseDatabasePut; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleFirebaseDatabasePut" - - - // $ANTLR start "ruleFirebaseDatabasePut" - // InternalDsl.g:1022:1: ruleFirebaseDatabasePut returns [EObject current=null] : (otherlv_0= 'fbdp' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'auth-by' ( (lv_fbjson_6_0= RULE_STRING ) ) otherlv_7= 'for-group' ( (lv_groupPath_8_0= RULE_STRING ) ) otherlv_9= 'from-source' ( (lv_dbSrc_10_0= RULE_STRING ) ) otherlv_11= 'with-class' ( (lv_classFqn_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) ; - public final EObject ruleFirebaseDatabasePut() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_url_4_0=null; - Token otherlv_5=null; - Token lv_fbjson_6_0=null; - Token otherlv_7=null; - Token lv_groupPath_8_0=null; - Token otherlv_9=null; - Token lv_dbSrc_10_0=null; - Token otherlv_11=null; - Token lv_classFqn_12_0=null; - Token otherlv_13=null; - Token otherlv_14=null; - Token lv_value_15_0=null; - Token otherlv_16=null; - Token otherlv_17=null; - EObject lv_condition_18_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:1028:2: ( (otherlv_0= 'fbdp' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'auth-by' ( (lv_fbjson_6_0= RULE_STRING ) ) otherlv_7= 'for-group' ( (lv_groupPath_8_0= RULE_STRING ) ) otherlv_9= 'from-source' ( (lv_dbSrc_10_0= RULE_STRING ) ) otherlv_11= 'with-class' ( (lv_classFqn_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) ) - // InternalDsl.g:1029:2: (otherlv_0= 'fbdp' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'auth-by' ( (lv_fbjson_6_0= RULE_STRING ) ) otherlv_7= 'for-group' ( (lv_groupPath_8_0= RULE_STRING ) ) otherlv_9= 'from-source' ( (lv_dbSrc_10_0= RULE_STRING ) ) otherlv_11= 'with-class' ( (lv_classFqn_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) - { - // InternalDsl.g:1029:2: (otherlv_0= 'fbdp' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'auth-by' ( (lv_fbjson_6_0= RULE_STRING ) ) otherlv_7= 'for-group' ( (lv_groupPath_8_0= RULE_STRING ) ) otherlv_9= 'from-source' ( (lv_dbSrc_10_0= RULE_STRING ) ) otherlv_11= 'with-class' ( (lv_classFqn_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) - // InternalDsl.g:1030:3: otherlv_0= 'fbdp' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'auth-by' ( (lv_fbjson_6_0= RULE_STRING ) ) otherlv_7= 'for-group' ( (lv_groupPath_8_0= RULE_STRING ) ) otherlv_9= 'from-source' ( (lv_dbSrc_10_0= RULE_STRING ) ) otherlv_11= 'with-class' ( (lv_classFqn_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,27,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getFirebaseDatabasePutAccess().getFbdpKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getFirebaseDatabasePutAccess().getAsKeyword_1()); - - // InternalDsl.g:1038:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:1039:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:1039:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:1040:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_20); - - newLeafNode(lv_name_2_0, grammarAccess.getFirebaseDatabasePutAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,28,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getFirebaseDatabasePutAccess().getOnKeyword_3()); - - // InternalDsl.g:1060:3: ( (lv_url_4_0= RULE_STRING ) ) - // InternalDsl.g:1061:4: (lv_url_4_0= RULE_STRING ) - { - // InternalDsl.g:1061:4: (lv_url_4_0= RULE_STRING ) - // InternalDsl.g:1062:5: lv_url_4_0= RULE_STRING - { - lv_url_4_0=(Token)match(input,RULE_STRING,FOLLOW_21); - - newLeafNode(lv_url_4_0, grammarAccess.getFirebaseDatabasePutAccess().getUrlSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - current, - "url", - lv_url_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,29,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getFirebaseDatabasePutAccess().getAuthByKeyword_5()); - - // InternalDsl.g:1082:3: ( (lv_fbjson_6_0= RULE_STRING ) ) - // InternalDsl.g:1083:4: (lv_fbjson_6_0= RULE_STRING ) - { - // InternalDsl.g:1083:4: (lv_fbjson_6_0= RULE_STRING ) - // InternalDsl.g:1084:5: lv_fbjson_6_0= RULE_STRING - { - lv_fbjson_6_0=(Token)match(input,RULE_STRING,FOLLOW_22); - - newLeafNode(lv_fbjson_6_0, grammarAccess.getFirebaseDatabasePutAccess().getFbjsonSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - current, - "fbjson", - lv_fbjson_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,30,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getFirebaseDatabasePutAccess().getForGroupKeyword_7()); - - // InternalDsl.g:1104:3: ( (lv_groupPath_8_0= RULE_STRING ) ) - // InternalDsl.g:1105:4: (lv_groupPath_8_0= RULE_STRING ) - { - // InternalDsl.g:1105:4: (lv_groupPath_8_0= RULE_STRING ) - // InternalDsl.g:1106:5: lv_groupPath_8_0= RULE_STRING - { - lv_groupPath_8_0=(Token)match(input,RULE_STRING,FOLLOW_23); - - newLeafNode(lv_groupPath_8_0, grammarAccess.getFirebaseDatabasePutAccess().getGroupPathSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - current, - "groupPath", - lv_groupPath_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,31,FOLLOW_3); - - newLeafNode(otherlv_9, grammarAccess.getFirebaseDatabasePutAccess().getFromSourceKeyword_9()); - - // InternalDsl.g:1126:3: ( (lv_dbSrc_10_0= RULE_STRING ) ) - // InternalDsl.g:1127:4: (lv_dbSrc_10_0= RULE_STRING ) - { - // InternalDsl.g:1127:4: (lv_dbSrc_10_0= RULE_STRING ) - // InternalDsl.g:1128:5: lv_dbSrc_10_0= RULE_STRING - { - lv_dbSrc_10_0=(Token)match(input,RULE_STRING,FOLLOW_24); - - newLeafNode(lv_dbSrc_10_0, grammarAccess.getFirebaseDatabasePutAccess().getDbSrcSTRINGTerminalRuleCall_10_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - current, - "dbSrc", - lv_dbSrc_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_11=(Token)match(input,32,FOLLOW_3); - - newLeafNode(otherlv_11, grammarAccess.getFirebaseDatabasePutAccess().getWithClassKeyword_11()); - - // InternalDsl.g:1148:3: ( (lv_classFqn_12_0= RULE_STRING ) ) - // InternalDsl.g:1149:4: (lv_classFqn_12_0= RULE_STRING ) - { - // InternalDsl.g:1149:4: (lv_classFqn_12_0= RULE_STRING ) - // InternalDsl.g:1150:5: lv_classFqn_12_0= RULE_STRING - { - lv_classFqn_12_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_classFqn_12_0, grammarAccess.getFirebaseDatabasePutAccess().getClassFqnSTRINGTerminalRuleCall_12_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - current, - "classFqn", - lv_classFqn_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_13=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_13, grammarAccess.getFirebaseDatabasePutAccess().getUsingKeyword_13()); - - otherlv_14=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_14, grammarAccess.getFirebaseDatabasePutAccess().getLeftCurlyBracketKeyword_14()); - - // InternalDsl.g:1174:3: ( (lv_value_15_0= RULE_STRING ) ) - // InternalDsl.g:1175:4: (lv_value_15_0= RULE_STRING ) - { - // InternalDsl.g:1175:4: (lv_value_15_0= RULE_STRING ) - // InternalDsl.g:1176:5: lv_value_15_0= RULE_STRING - { - lv_value_15_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_15_0, grammarAccess.getFirebaseDatabasePutAccess().getValueSTRINGTerminalRuleCall_15_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseDatabasePutRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_15_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_16=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_16, grammarAccess.getFirebaseDatabasePutAccess().getRightCurlyBracketKeyword_16()); - - otherlv_17=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_17, grammarAccess.getFirebaseDatabasePutAccess().getOnConditionKeyword_17()); - - // InternalDsl.g:1200:3: ( (lv_condition_18_0= ruleExpression ) ) - // InternalDsl.g:1201:4: (lv_condition_18_0= ruleExpression ) - { - // InternalDsl.g:1201:4: (lv_condition_18_0= ruleExpression ) - // InternalDsl.g:1202:5: lv_condition_18_0= ruleExpression - { - - newCompositeNode(grammarAccess.getFirebaseDatabasePutAccess().getConditionExpressionParserRuleCall_18_0()); - - pushFollow(FOLLOW_2); - lv_condition_18_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getFirebaseDatabasePutRule()); - } - set( - current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleFirebaseDatabasePut" - - - // $ANTLR start "entryRuleFirebaseReactiveNotification" - // InternalDsl.g:1223:1: entryRuleFirebaseReactiveNotification returns [EObject current=null] : iv_ruleFirebaseReactiveNotification= ruleFirebaseReactiveNotification EOF ; - public final EObject entryRuleFirebaseReactiveNotification() throws RecognitionException { - EObject current = null; - - EObject iv_ruleFirebaseReactiveNotification = null; - - - try { - // InternalDsl.g:1223:69: (iv_ruleFirebaseReactiveNotification= ruleFirebaseReactiveNotification EOF ) - // InternalDsl.g:1224:2: iv_ruleFirebaseReactiveNotification= ruleFirebaseReactiveNotification EOF - { - newCompositeNode(grammarAccess.getFirebaseReactiveNotificationRule()); - pushFollow(FOLLOW_1); - iv_ruleFirebaseReactiveNotification=ruleFirebaseReactiveNotification(); - - state._fsp--; - - current =iv_ruleFirebaseReactiveNotification; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleFirebaseReactiveNotification" - - - // $ANTLR start "ruleFirebaseReactiveNotification" - // InternalDsl.g:1230:1: ruleFirebaseReactiveNotification returns [EObject current=null] : (otherlv_0= 'fbrn' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'auth-by' ( (lv_fbjson_6_0= RULE_STRING ) ) otherlv_7= 'for-group' ( (lv_groupPath_8_0= RULE_STRING ) ) otherlv_9= 'with-class' ( (lv_classFqn_10_0= RULE_STRING ) ) otherlv_11= 'using' ( (lv_dbSrc_12_0= RULE_STRING ) ) otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) ; - public final EObject ruleFirebaseReactiveNotification() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_url_4_0=null; - Token otherlv_5=null; - Token lv_fbjson_6_0=null; - Token otherlv_7=null; - Token lv_groupPath_8_0=null; - Token otherlv_9=null; - Token lv_classFqn_10_0=null; - Token otherlv_11=null; - Token lv_dbSrc_12_0=null; - Token otherlv_13=null; - EObject lv_condition_14_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:1236:2: ( (otherlv_0= 'fbrn' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'auth-by' ( (lv_fbjson_6_0= RULE_STRING ) ) otherlv_7= 'for-group' ( (lv_groupPath_8_0= RULE_STRING ) ) otherlv_9= 'with-class' ( (lv_classFqn_10_0= RULE_STRING ) ) otherlv_11= 'using' ( (lv_dbSrc_12_0= RULE_STRING ) ) otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) ) - // InternalDsl.g:1237:2: (otherlv_0= 'fbrn' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'auth-by' ( (lv_fbjson_6_0= RULE_STRING ) ) otherlv_7= 'for-group' ( (lv_groupPath_8_0= RULE_STRING ) ) otherlv_9= 'with-class' ( (lv_classFqn_10_0= RULE_STRING ) ) otherlv_11= 'using' ( (lv_dbSrc_12_0= RULE_STRING ) ) otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) - { - // InternalDsl.g:1237:2: (otherlv_0= 'fbrn' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'auth-by' ( (lv_fbjson_6_0= RULE_STRING ) ) otherlv_7= 'for-group' ( (lv_groupPath_8_0= RULE_STRING ) ) otherlv_9= 'with-class' ( (lv_classFqn_10_0= RULE_STRING ) ) otherlv_11= 'using' ( (lv_dbSrc_12_0= RULE_STRING ) ) otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) - // InternalDsl.g:1238:3: otherlv_0= 'fbrn' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'auth-by' ( (lv_fbjson_6_0= RULE_STRING ) ) otherlv_7= 'for-group' ( (lv_groupPath_8_0= RULE_STRING ) ) otherlv_9= 'with-class' ( (lv_classFqn_10_0= RULE_STRING ) ) otherlv_11= 'using' ( (lv_dbSrc_12_0= RULE_STRING ) ) otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,33,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getFirebaseReactiveNotificationAccess().getFbrnKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getFirebaseReactiveNotificationAccess().getAsKeyword_1()); - - // InternalDsl.g:1246:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:1247:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:1247:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:1248:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_20); - - newLeafNode(lv_name_2_0, grammarAccess.getFirebaseReactiveNotificationAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,28,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getFirebaseReactiveNotificationAccess().getOnKeyword_3()); - - // InternalDsl.g:1268:3: ( (lv_url_4_0= RULE_STRING ) ) - // InternalDsl.g:1269:4: (lv_url_4_0= RULE_STRING ) - { - // InternalDsl.g:1269:4: (lv_url_4_0= RULE_STRING ) - // InternalDsl.g:1270:5: lv_url_4_0= RULE_STRING - { - lv_url_4_0=(Token)match(input,RULE_STRING,FOLLOW_21); - - newLeafNode(lv_url_4_0, grammarAccess.getFirebaseReactiveNotificationAccess().getUrlSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - current, - "url", - lv_url_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,29,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getFirebaseReactiveNotificationAccess().getAuthByKeyword_5()); - - // InternalDsl.g:1290:3: ( (lv_fbjson_6_0= RULE_STRING ) ) - // InternalDsl.g:1291:4: (lv_fbjson_6_0= RULE_STRING ) - { - // InternalDsl.g:1291:4: (lv_fbjson_6_0= RULE_STRING ) - // InternalDsl.g:1292:5: lv_fbjson_6_0= RULE_STRING - { - lv_fbjson_6_0=(Token)match(input,RULE_STRING,FOLLOW_22); - - newLeafNode(lv_fbjson_6_0, grammarAccess.getFirebaseReactiveNotificationAccess().getFbjsonSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - current, - "fbjson", - lv_fbjson_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,30,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getFirebaseReactiveNotificationAccess().getForGroupKeyword_7()); - - // InternalDsl.g:1312:3: ( (lv_groupPath_8_0= RULE_STRING ) ) - // InternalDsl.g:1313:4: (lv_groupPath_8_0= RULE_STRING ) - { - // InternalDsl.g:1313:4: (lv_groupPath_8_0= RULE_STRING ) - // InternalDsl.g:1314:5: lv_groupPath_8_0= RULE_STRING - { - lv_groupPath_8_0=(Token)match(input,RULE_STRING,FOLLOW_24); - - newLeafNode(lv_groupPath_8_0, grammarAccess.getFirebaseReactiveNotificationAccess().getGroupPathSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - current, - "groupPath", - lv_groupPath_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,32,FOLLOW_3); - - newLeafNode(otherlv_9, grammarAccess.getFirebaseReactiveNotificationAccess().getWithClassKeyword_9()); - - // InternalDsl.g:1334:3: ( (lv_classFqn_10_0= RULE_STRING ) ) - // InternalDsl.g:1335:4: (lv_classFqn_10_0= RULE_STRING ) - { - // InternalDsl.g:1335:4: (lv_classFqn_10_0= RULE_STRING ) - // InternalDsl.g:1336:5: lv_classFqn_10_0= RULE_STRING - { - lv_classFqn_10_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_classFqn_10_0, grammarAccess.getFirebaseReactiveNotificationAccess().getClassFqnSTRINGTerminalRuleCall_10_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - current, - "classFqn", - lv_classFqn_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_11=(Token)match(input,24,FOLLOW_3); - - newLeafNode(otherlv_11, grammarAccess.getFirebaseReactiveNotificationAccess().getUsingKeyword_11()); - - // InternalDsl.g:1356:3: ( (lv_dbSrc_12_0= RULE_STRING ) ) - // InternalDsl.g:1357:4: (lv_dbSrc_12_0= RULE_STRING ) - { - // InternalDsl.g:1357:4: (lv_dbSrc_12_0= RULE_STRING ) - // InternalDsl.g:1358:5: lv_dbSrc_12_0= RULE_STRING - { - lv_dbSrc_12_0=(Token)match(input,RULE_STRING,FOLLOW_14); - - newLeafNode(lv_dbSrc_12_0, grammarAccess.getFirebaseReactiveNotificationAccess().getDbSrcSTRINGTerminalRuleCall_12_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFirebaseReactiveNotificationRule()); - } - setWithLastConsumed( - current, - "dbSrc", - lv_dbSrc_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_13=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_13, grammarAccess.getFirebaseReactiveNotificationAccess().getOnConditionKeyword_13()); - - // InternalDsl.g:1378:3: ( (lv_condition_14_0= ruleExpression ) ) - // InternalDsl.g:1379:4: (lv_condition_14_0= ruleExpression ) - { - // InternalDsl.g:1379:4: (lv_condition_14_0= ruleExpression ) - // InternalDsl.g:1380:5: lv_condition_14_0= ruleExpression - { - - newCompositeNode(grammarAccess.getFirebaseReactiveNotificationAccess().getConditionExpressionParserRuleCall_14_0()); - - pushFollow(FOLLOW_2); - lv_condition_14_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getFirebaseReactiveNotificationRule()); - } - set( - current, - "condition", - lv_condition_14_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleFirebaseReactiveNotification" - - - // $ANTLR start "entryRuleSmsLeadSms" - // InternalDsl.g:1401:1: entryRuleSmsLeadSms returns [EObject current=null] : iv_ruleSmsLeadSms= ruleSmsLeadSms EOF ; - public final EObject entryRuleSmsLeadSms() throws RecognitionException { - EObject current = null; - - EObject iv_ruleSmsLeadSms = null; - - - try { - // InternalDsl.g:1401:51: (iv_ruleSmsLeadSms= ruleSmsLeadSms EOF ) - // InternalDsl.g:1402:2: iv_ruleSmsLeadSms= ruleSmsLeadSms EOF - { - newCompositeNode(grammarAccess.getSmsLeadSmsRule()); - pushFollow(FOLLOW_1); - iv_ruleSmsLeadSms=ruleSmsLeadSms(); - - state._fsp--; - - current =iv_ruleSmsLeadSms; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleSmsLeadSms" - - - // $ANTLR start "ruleSmsLeadSms" - // InternalDsl.g:1408:1: ruleSmsLeadSms returns [EObject current=null] : (otherlv_0= 'smsleadssms' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'with-sender' ( (lv_sender_6_0= RULE_STRING ) ) otherlv_7= 'through-account' ( (lv_account_8_0= RULE_STRING ) ) otherlv_9= 'secured-by' ( (lv_privateKey_10_0= RULE_STRING ) ) otherlv_11= 'from-source' ( (lv_dbSrc_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) otherlv_19= 'do-dryrun-with' ( (lv_dryrunNumber_20_0= RULE_STRING ) ) ) ; - public final EObject ruleSmsLeadSms() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_url_4_0=null; - Token otherlv_5=null; - Token lv_sender_6_0=null; - Token otherlv_7=null; - Token lv_account_8_0=null; - Token otherlv_9=null; - Token lv_privateKey_10_0=null; - Token otherlv_11=null; - Token lv_dbSrc_12_0=null; - Token otherlv_13=null; - Token otherlv_14=null; - Token lv_value_15_0=null; - Token otherlv_16=null; - Token otherlv_17=null; - Token otherlv_19=null; - Token lv_dryrunNumber_20_0=null; - EObject lv_condition_18_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:1414:2: ( (otherlv_0= 'smsleadssms' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'with-sender' ( (lv_sender_6_0= RULE_STRING ) ) otherlv_7= 'through-account' ( (lv_account_8_0= RULE_STRING ) ) otherlv_9= 'secured-by' ( (lv_privateKey_10_0= RULE_STRING ) ) otherlv_11= 'from-source' ( (lv_dbSrc_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) otherlv_19= 'do-dryrun-with' ( (lv_dryrunNumber_20_0= RULE_STRING ) ) ) ) - // InternalDsl.g:1415:2: (otherlv_0= 'smsleadssms' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'with-sender' ( (lv_sender_6_0= RULE_STRING ) ) otherlv_7= 'through-account' ( (lv_account_8_0= RULE_STRING ) ) otherlv_9= 'secured-by' ( (lv_privateKey_10_0= RULE_STRING ) ) otherlv_11= 'from-source' ( (lv_dbSrc_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) otherlv_19= 'do-dryrun-with' ( (lv_dryrunNumber_20_0= RULE_STRING ) ) ) - { - // InternalDsl.g:1415:2: (otherlv_0= 'smsleadssms' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'with-sender' ( (lv_sender_6_0= RULE_STRING ) ) otherlv_7= 'through-account' ( (lv_account_8_0= RULE_STRING ) ) otherlv_9= 'secured-by' ( (lv_privateKey_10_0= RULE_STRING ) ) otherlv_11= 'from-source' ( (lv_dbSrc_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) otherlv_19= 'do-dryrun-with' ( (lv_dryrunNumber_20_0= RULE_STRING ) ) ) - // InternalDsl.g:1416:3: otherlv_0= 'smsleadssms' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_url_4_0= RULE_STRING ) ) otherlv_5= 'with-sender' ( (lv_sender_6_0= RULE_STRING ) ) otherlv_7= 'through-account' ( (lv_account_8_0= RULE_STRING ) ) otherlv_9= 'secured-by' ( (lv_privateKey_10_0= RULE_STRING ) ) otherlv_11= 'from-source' ( (lv_dbSrc_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) otherlv_19= 'do-dryrun-with' ( (lv_dryrunNumber_20_0= RULE_STRING ) ) - { - otherlv_0=(Token)match(input,34,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getSmsLeadSmsAccess().getSmsleadssmsKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getSmsLeadSmsAccess().getAsKeyword_1()); - - // InternalDsl.g:1424:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:1425:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:1425:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:1426:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_20); - - newLeafNode(lv_name_2_0, grammarAccess.getSmsLeadSmsAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,28,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getSmsLeadSmsAccess().getOnKeyword_3()); - - // InternalDsl.g:1446:3: ( (lv_url_4_0= RULE_STRING ) ) - // InternalDsl.g:1447:4: (lv_url_4_0= RULE_STRING ) - { - // InternalDsl.g:1447:4: (lv_url_4_0= RULE_STRING ) - // InternalDsl.g:1448:5: lv_url_4_0= RULE_STRING - { - lv_url_4_0=(Token)match(input,RULE_STRING,FOLLOW_25); - - newLeafNode(lv_url_4_0, grammarAccess.getSmsLeadSmsAccess().getUrlSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - current, - "url", - lv_url_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,35,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getSmsLeadSmsAccess().getWithSenderKeyword_5()); - - // InternalDsl.g:1468:3: ( (lv_sender_6_0= RULE_STRING ) ) - // InternalDsl.g:1469:4: (lv_sender_6_0= RULE_STRING ) - { - // InternalDsl.g:1469:4: (lv_sender_6_0= RULE_STRING ) - // InternalDsl.g:1470:5: lv_sender_6_0= RULE_STRING - { - lv_sender_6_0=(Token)match(input,RULE_STRING,FOLLOW_26); - - newLeafNode(lv_sender_6_0, grammarAccess.getSmsLeadSmsAccess().getSenderSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - current, - "sender", - lv_sender_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,36,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getSmsLeadSmsAccess().getThroughAccountKeyword_7()); - - // InternalDsl.g:1490:3: ( (lv_account_8_0= RULE_STRING ) ) - // InternalDsl.g:1491:4: (lv_account_8_0= RULE_STRING ) - { - // InternalDsl.g:1491:4: (lv_account_8_0= RULE_STRING ) - // InternalDsl.g:1492:5: lv_account_8_0= RULE_STRING - { - lv_account_8_0=(Token)match(input,RULE_STRING,FOLLOW_27); - - newLeafNode(lv_account_8_0, grammarAccess.getSmsLeadSmsAccess().getAccountSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - current, - "account", - lv_account_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,37,FOLLOW_3); - - newLeafNode(otherlv_9, grammarAccess.getSmsLeadSmsAccess().getSecuredByKeyword_9()); - - // InternalDsl.g:1512:3: ( (lv_privateKey_10_0= RULE_STRING ) ) - // InternalDsl.g:1513:4: (lv_privateKey_10_0= RULE_STRING ) - { - // InternalDsl.g:1513:4: (lv_privateKey_10_0= RULE_STRING ) - // InternalDsl.g:1514:5: lv_privateKey_10_0= RULE_STRING - { - lv_privateKey_10_0=(Token)match(input,RULE_STRING,FOLLOW_23); - - newLeafNode(lv_privateKey_10_0, grammarAccess.getSmsLeadSmsAccess().getPrivateKeySTRINGTerminalRuleCall_10_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - current, - "privateKey", - lv_privateKey_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_11=(Token)match(input,31,FOLLOW_3); - - newLeafNode(otherlv_11, grammarAccess.getSmsLeadSmsAccess().getFromSourceKeyword_11()); - - // InternalDsl.g:1534:3: ( (lv_dbSrc_12_0= RULE_STRING ) ) - // InternalDsl.g:1535:4: (lv_dbSrc_12_0= RULE_STRING ) - { - // InternalDsl.g:1535:4: (lv_dbSrc_12_0= RULE_STRING ) - // InternalDsl.g:1536:5: lv_dbSrc_12_0= RULE_STRING - { - lv_dbSrc_12_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_dbSrc_12_0, grammarAccess.getSmsLeadSmsAccess().getDbSrcSTRINGTerminalRuleCall_12_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - current, - "dbSrc", - lv_dbSrc_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_13=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_13, grammarAccess.getSmsLeadSmsAccess().getUsingKeyword_13()); - - otherlv_14=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_14, grammarAccess.getSmsLeadSmsAccess().getLeftCurlyBracketKeyword_14()); - - // InternalDsl.g:1560:3: ( (lv_value_15_0= RULE_STRING ) ) - // InternalDsl.g:1561:4: (lv_value_15_0= RULE_STRING ) - { - // InternalDsl.g:1561:4: (lv_value_15_0= RULE_STRING ) - // InternalDsl.g:1562:5: lv_value_15_0= RULE_STRING - { - lv_value_15_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_15_0, grammarAccess.getSmsLeadSmsAccess().getValueSTRINGTerminalRuleCall_15_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_15_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_16=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_16, grammarAccess.getSmsLeadSmsAccess().getRightCurlyBracketKeyword_16()); - - otherlv_17=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_17, grammarAccess.getSmsLeadSmsAccess().getOnConditionKeyword_17()); - - // InternalDsl.g:1586:3: ( (lv_condition_18_0= ruleExpression ) ) - // InternalDsl.g:1587:4: (lv_condition_18_0= ruleExpression ) - { - // InternalDsl.g:1587:4: (lv_condition_18_0= ruleExpression ) - // InternalDsl.g:1588:5: lv_condition_18_0= ruleExpression - { - - newCompositeNode(grammarAccess.getSmsLeadSmsAccess().getConditionExpressionParserRuleCall_18_0()); - - pushFollow(FOLLOW_28); - lv_condition_18_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getSmsLeadSmsRule()); - } - set( - current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_19=(Token)match(input,38,FOLLOW_3); - - newLeafNode(otherlv_19, grammarAccess.getSmsLeadSmsAccess().getDoDryrunWithKeyword_19()); - - // InternalDsl.g:1609:3: ( (lv_dryrunNumber_20_0= RULE_STRING ) ) - // InternalDsl.g:1610:4: (lv_dryrunNumber_20_0= RULE_STRING ) - { - // InternalDsl.g:1610:4: (lv_dryrunNumber_20_0= RULE_STRING ) - // InternalDsl.g:1611:5: lv_dryrunNumber_20_0= RULE_STRING - { - lv_dryrunNumber_20_0=(Token)match(input,RULE_STRING,FOLLOW_2); - - newLeafNode(lv_dryrunNumber_20_0, grammarAccess.getSmsLeadSmsAccess().getDryrunNumberSTRINGTerminalRuleCall_20_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSmsLeadSmsRule()); - } - setWithLastConsumed( - current, - "dryrunNumber", - lv_dryrunNumber_20_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleSmsLeadSms" - - - // $ANTLR start "entryRuleAbort" - // InternalDsl.g:1631:1: entryRuleAbort returns [EObject current=null] : iv_ruleAbort= ruleAbort EOF ; - public final EObject entryRuleAbort() throws RecognitionException { - EObject current = null; - - EObject iv_ruleAbort = null; - - - try { - // InternalDsl.g:1631:46: (iv_ruleAbort= ruleAbort EOF ) - // InternalDsl.g:1632:2: iv_ruleAbort= ruleAbort EOF - { - newCompositeNode(grammarAccess.getAbortRule()); - pushFollow(FOLLOW_1); - iv_ruleAbort=ruleAbort(); - - state._fsp--; - - current =iv_ruleAbort; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleAbort" - - - // $ANTLR start "ruleAbort" - // InternalDsl.g:1638:1: ruleAbort returns [EObject current=null] : (otherlv_0= 'abort' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= '{' ( (lv_value_4_0= RULE_STRING ) ) otherlv_5= '}' otherlv_6= 'on-condition' ( (lv_condition_7_0= ruleExpression ) ) ) ; - public final EObject ruleAbort() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_value_4_0=null; - Token otherlv_5=null; - Token otherlv_6=null; - EObject lv_condition_7_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:1644:2: ( (otherlv_0= 'abort' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= '{' ( (lv_value_4_0= RULE_STRING ) ) otherlv_5= '}' otherlv_6= 'on-condition' ( (lv_condition_7_0= ruleExpression ) ) ) ) - // InternalDsl.g:1645:2: (otherlv_0= 'abort' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= '{' ( (lv_value_4_0= RULE_STRING ) ) otherlv_5= '}' otherlv_6= 'on-condition' ( (lv_condition_7_0= ruleExpression ) ) ) - { - // InternalDsl.g:1645:2: (otherlv_0= 'abort' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= '{' ( (lv_value_4_0= RULE_STRING ) ) otherlv_5= '}' otherlv_6= 'on-condition' ( (lv_condition_7_0= ruleExpression ) ) ) - // InternalDsl.g:1646:3: otherlv_0= 'abort' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= '{' ( (lv_value_4_0= RULE_STRING ) ) otherlv_5= '}' otherlv_6= 'on-condition' ( (lv_condition_7_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,39,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getAbortAccess().getAbortKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getAbortAccess().getAsKeyword_1()); - - // InternalDsl.g:1654:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:1655:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:1655:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:1656:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_4); - - newLeafNode(lv_name_2_0, grammarAccess.getAbortAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getAbortRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getAbortAccess().getLeftCurlyBracketKeyword_3()); - - // InternalDsl.g:1676:3: ( (lv_value_4_0= RULE_STRING ) ) - // InternalDsl.g:1677:4: (lv_value_4_0= RULE_STRING ) - { - // InternalDsl.g:1677:4: (lv_value_4_0= RULE_STRING ) - // InternalDsl.g:1678:5: lv_value_4_0= RULE_STRING - { - lv_value_4_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_4_0, grammarAccess.getAbortAccess().getValueSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getAbortRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_5, grammarAccess.getAbortAccess().getRightCurlyBracketKeyword_5()); - - otherlv_6=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_6, grammarAccess.getAbortAccess().getOnConditionKeyword_6()); - - // InternalDsl.g:1702:3: ( (lv_condition_7_0= ruleExpression ) ) - // InternalDsl.g:1703:4: (lv_condition_7_0= ruleExpression ) - { - // InternalDsl.g:1703:4: (lv_condition_7_0= ruleExpression ) - // InternalDsl.g:1704:5: lv_condition_7_0= ruleExpression - { - - newCompositeNode(grammarAccess.getAbortAccess().getConditionExpressionParserRuleCall_7_0()); - - pushFollow(FOLLOW_2); - lv_condition_7_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getAbortRule()); - } - set( - current, - "condition", - lv_condition_7_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleAbort" - - - // $ANTLR start "entryRuleGooglecontactSelectAll" - // InternalDsl.g:1725:1: entryRuleGooglecontactSelectAll returns [EObject current=null] : iv_ruleGooglecontactSelectAll= ruleGooglecontactSelectAll EOF ; - public final EObject entryRuleGooglecontactSelectAll() throws RecognitionException { - EObject current = null; - - EObject iv_ruleGooglecontactSelectAll = null; - - - try { - // InternalDsl.g:1725:63: (iv_ruleGooglecontactSelectAll= ruleGooglecontactSelectAll EOF ) - // InternalDsl.g:1726:2: iv_ruleGooglecontactSelectAll= ruleGooglecontactSelectAll EOF - { - newCompositeNode(grammarAccess.getGooglecontactSelectAllRule()); - pushFollow(FOLLOW_1); - iv_ruleGooglecontactSelectAll=ruleGooglecontactSelectAll(); - - state._fsp--; - - current =iv_ruleGooglecontactSelectAll; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleGooglecontactSelectAll" - - - // $ANTLR start "ruleGooglecontactSelectAll" - // InternalDsl.g:1732:1: ruleGooglecontactSelectAll returns [EObject current=null] : (otherlv_0= 'gcontact-fetchall' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'to-target' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) ; - public final EObject ruleGooglecontactSelectAll() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_account_4_0=null; - Token otherlv_5=null; - Token lv_privateKey_6_0=null; - Token otherlv_7=null; - Token lv_ptwelveFile_8_0=null; - Token otherlv_9=null; - Token lv_project_10_0=null; - Token otherlv_11=null; - Token lv_impersonatedUser_12_0=null; - Token otherlv_13=null; - Token lv_dbSrc_14_0=null; - Token otherlv_15=null; - Token otherlv_16=null; - Token lv_value_17_0=null; - Token otherlv_18=null; - Token otherlv_19=null; - EObject lv_condition_20_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:1738:2: ( (otherlv_0= 'gcontact-fetchall' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'to-target' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) ) - // InternalDsl.g:1739:2: (otherlv_0= 'gcontact-fetchall' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'to-target' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) - { - // InternalDsl.g:1739:2: (otherlv_0= 'gcontact-fetchall' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'to-target' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) - // InternalDsl.g:1740:3: otherlv_0= 'gcontact-fetchall' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'to-target' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,40,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getGooglecontactSelectAllAccess().getGcontactFetchallKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getGooglecontactSelectAllAccess().getAsKeyword_1()); - - // InternalDsl.g:1748:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:1749:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:1749:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:1750:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_26); - - newLeafNode(lv_name_2_0, grammarAccess.getGooglecontactSelectAllAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,36,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getGooglecontactSelectAllAccess().getThroughAccountKeyword_3()); - - // InternalDsl.g:1770:3: ( (lv_account_4_0= RULE_STRING ) ) - // InternalDsl.g:1771:4: (lv_account_4_0= RULE_STRING ) - { - // InternalDsl.g:1771:4: (lv_account_4_0= RULE_STRING ) - // InternalDsl.g:1772:5: lv_account_4_0= RULE_STRING - { - lv_account_4_0=(Token)match(input,RULE_STRING,FOLLOW_27); - - newLeafNode(lv_account_4_0, grammarAccess.getGooglecontactSelectAllAccess().getAccountSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - current, - "account", - lv_account_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,37,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getGooglecontactSelectAllAccess().getSecuredByKeyword_5()); - - // InternalDsl.g:1792:3: ( (lv_privateKey_6_0= RULE_STRING ) ) - // InternalDsl.g:1793:4: (lv_privateKey_6_0= RULE_STRING ) - { - // InternalDsl.g:1793:4: (lv_privateKey_6_0= RULE_STRING ) - // InternalDsl.g:1794:5: lv_privateKey_6_0= RULE_STRING - { - lv_privateKey_6_0=(Token)match(input,RULE_STRING,FOLLOW_29); - - newLeafNode(lv_privateKey_6_0, grammarAccess.getGooglecontactSelectAllAccess().getPrivateKeySTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - current, - "privateKey", - lv_privateKey_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,41,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getGooglecontactSelectAllAccess().getWithKeyKeyword_7()); - - // InternalDsl.g:1814:3: ( (lv_ptwelveFile_8_0= RULE_STRING ) ) - // InternalDsl.g:1815:4: (lv_ptwelveFile_8_0= RULE_STRING ) - { - // InternalDsl.g:1815:4: (lv_ptwelveFile_8_0= RULE_STRING ) - // InternalDsl.g:1816:5: lv_ptwelveFile_8_0= RULE_STRING - { - lv_ptwelveFile_8_0=(Token)match(input,RULE_STRING,FOLLOW_30); - - newLeafNode(lv_ptwelveFile_8_0, grammarAccess.getGooglecontactSelectAllAccess().getPtwelveFileSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - current, - "ptwelveFile", - lv_ptwelveFile_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,42,FOLLOW_3); - - newLeafNode(otherlv_9, grammarAccess.getGooglecontactSelectAllAccess().getForProjectKeyword_9()); - - // InternalDsl.g:1836:3: ( (lv_project_10_0= RULE_STRING ) ) - // InternalDsl.g:1837:4: (lv_project_10_0= RULE_STRING ) - { - // InternalDsl.g:1837:4: (lv_project_10_0= RULE_STRING ) - // InternalDsl.g:1838:5: lv_project_10_0= RULE_STRING - { - lv_project_10_0=(Token)match(input,RULE_STRING,FOLLOW_31); - - newLeafNode(lv_project_10_0, grammarAccess.getGooglecontactSelectAllAccess().getProjectSTRINGTerminalRuleCall_10_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - current, - "project", - lv_project_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_11=(Token)match(input,43,FOLLOW_3); - - newLeafNode(otherlv_11, grammarAccess.getGooglecontactSelectAllAccess().getOnBehalfOfKeyword_11()); - - // InternalDsl.g:1858:3: ( (lv_impersonatedUser_12_0= RULE_STRING ) ) - // InternalDsl.g:1859:4: (lv_impersonatedUser_12_0= RULE_STRING ) - { - // InternalDsl.g:1859:4: (lv_impersonatedUser_12_0= RULE_STRING ) - // InternalDsl.g:1860:5: lv_impersonatedUser_12_0= RULE_STRING - { - lv_impersonatedUser_12_0=(Token)match(input,RULE_STRING,FOLLOW_32); - - newLeafNode(lv_impersonatedUser_12_0, grammarAccess.getGooglecontactSelectAllAccess().getImpersonatedUserSTRINGTerminalRuleCall_12_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - current, - "impersonatedUser", - lv_impersonatedUser_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_13=(Token)match(input,44,FOLLOW_3); - - newLeafNode(otherlv_13, grammarAccess.getGooglecontactSelectAllAccess().getToTargetKeyword_13()); - - // InternalDsl.g:1880:3: ( (lv_dbSrc_14_0= RULE_STRING ) ) - // InternalDsl.g:1881:4: (lv_dbSrc_14_0= RULE_STRING ) - { - // InternalDsl.g:1881:4: (lv_dbSrc_14_0= RULE_STRING ) - // InternalDsl.g:1882:5: lv_dbSrc_14_0= RULE_STRING - { - lv_dbSrc_14_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_dbSrc_14_0, grammarAccess.getGooglecontactSelectAllAccess().getDbSrcSTRINGTerminalRuleCall_14_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - current, - "dbSrc", - lv_dbSrc_14_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_15=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_15, grammarAccess.getGooglecontactSelectAllAccess().getUsingKeyword_15()); - - otherlv_16=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_16, grammarAccess.getGooglecontactSelectAllAccess().getLeftCurlyBracketKeyword_16()); - - // InternalDsl.g:1906:3: ( (lv_value_17_0= RULE_STRING ) ) - // InternalDsl.g:1907:4: (lv_value_17_0= RULE_STRING ) - { - // InternalDsl.g:1907:4: (lv_value_17_0= RULE_STRING ) - // InternalDsl.g:1908:5: lv_value_17_0= RULE_STRING - { - lv_value_17_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_17_0, grammarAccess.getGooglecontactSelectAllAccess().getValueSTRINGTerminalRuleCall_17_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactSelectAllRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_17_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_18=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_18, grammarAccess.getGooglecontactSelectAllAccess().getRightCurlyBracketKeyword_18()); - - otherlv_19=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_19, grammarAccess.getGooglecontactSelectAllAccess().getOnConditionKeyword_19()); - - // InternalDsl.g:1932:3: ( (lv_condition_20_0= ruleExpression ) ) - // InternalDsl.g:1933:4: (lv_condition_20_0= ruleExpression ) - { - // InternalDsl.g:1933:4: (lv_condition_20_0= ruleExpression ) - // InternalDsl.g:1934:5: lv_condition_20_0= ruleExpression - { - - newCompositeNode(grammarAccess.getGooglecontactSelectAllAccess().getConditionExpressionParserRuleCall_20_0()); - - pushFollow(FOLLOW_2); - lv_condition_20_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getGooglecontactSelectAllRule()); - } - set( - current, - "condition", - lv_condition_20_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleGooglecontactSelectAll" - - - // $ANTLR start "entryRuleSendMail" - // InternalDsl.g:1955:1: entryRuleSendMail returns [EObject current=null] : iv_ruleSendMail= ruleSendMail EOF ; - public final EObject entryRuleSendMail() throws RecognitionException { - EObject current = null; - - EObject iv_ruleSendMail = null; - - - try { - // InternalDsl.g:1955:49: (iv_ruleSendMail= ruleSendMail EOF ) - // InternalDsl.g:1956:2: iv_ruleSendMail= ruleSendMail EOF - { - newCompositeNode(grammarAccess.getSendMailRule()); - pushFollow(FOLLOW_1); - iv_ruleSendMail=ruleSendMail(); - - state._fsp--; - - current =iv_ruleSendMail; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleSendMail" - - - // $ANTLR start "ruleSendMail" - // InternalDsl.g:1962:1: ruleSendMail returns [EObject current=null] : (otherlv_0= 'sendmail' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_privateKey_4_0= RULE_STRING ) ) otherlv_5= 'on-behalf-of' ( (lv_impersonatedUser_6_0= RULE_STRING ) ) otherlv_7= 'from-source' ( (lv_dbSrc_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= RULE_STRING ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) otherlv_15= 'do-dryrun-with' ( (lv_dryrunMail_16_0= RULE_STRING ) ) ) ; - public final EObject ruleSendMail() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_privateKey_4_0=null; - Token otherlv_5=null; - Token lv_impersonatedUser_6_0=null; - Token otherlv_7=null; - Token lv_dbSrc_8_0=null; - Token otherlv_9=null; - Token otherlv_10=null; - Token lv_value_11_0=null; - Token otherlv_12=null; - Token otherlv_13=null; - Token otherlv_15=null; - Token lv_dryrunMail_16_0=null; - EObject lv_condition_14_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:1968:2: ( (otherlv_0= 'sendmail' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_privateKey_4_0= RULE_STRING ) ) otherlv_5= 'on-behalf-of' ( (lv_impersonatedUser_6_0= RULE_STRING ) ) otherlv_7= 'from-source' ( (lv_dbSrc_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= RULE_STRING ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) otherlv_15= 'do-dryrun-with' ( (lv_dryrunMail_16_0= RULE_STRING ) ) ) ) - // InternalDsl.g:1969:2: (otherlv_0= 'sendmail' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_privateKey_4_0= RULE_STRING ) ) otherlv_5= 'on-behalf-of' ( (lv_impersonatedUser_6_0= RULE_STRING ) ) otherlv_7= 'from-source' ( (lv_dbSrc_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= RULE_STRING ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) otherlv_15= 'do-dryrun-with' ( (lv_dryrunMail_16_0= RULE_STRING ) ) ) - { - // InternalDsl.g:1969:2: (otherlv_0= 'sendmail' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_privateKey_4_0= RULE_STRING ) ) otherlv_5= 'on-behalf-of' ( (lv_impersonatedUser_6_0= RULE_STRING ) ) otherlv_7= 'from-source' ( (lv_dbSrc_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= RULE_STRING ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) otherlv_15= 'do-dryrun-with' ( (lv_dryrunMail_16_0= RULE_STRING ) ) ) - // InternalDsl.g:1970:3: otherlv_0= 'sendmail' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_privateKey_4_0= RULE_STRING ) ) otherlv_5= 'on-behalf-of' ( (lv_impersonatedUser_6_0= RULE_STRING ) ) otherlv_7= 'from-source' ( (lv_dbSrc_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= RULE_STRING ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) otherlv_15= 'do-dryrun-with' ( (lv_dryrunMail_16_0= RULE_STRING ) ) - { - otherlv_0=(Token)match(input,45,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getSendMailAccess().getSendmailKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getSendMailAccess().getAsKeyword_1()); - - // InternalDsl.g:1978:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:1979:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:1979:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:1980:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_27); - - newLeafNode(lv_name_2_0, grammarAccess.getSendMailAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,37,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getSendMailAccess().getSecuredByKeyword_3()); - - // InternalDsl.g:2000:3: ( (lv_privateKey_4_0= RULE_STRING ) ) - // InternalDsl.g:2001:4: (lv_privateKey_4_0= RULE_STRING ) - { - // InternalDsl.g:2001:4: (lv_privateKey_4_0= RULE_STRING ) - // InternalDsl.g:2002:5: lv_privateKey_4_0= RULE_STRING - { - lv_privateKey_4_0=(Token)match(input,RULE_STRING,FOLLOW_31); - - newLeafNode(lv_privateKey_4_0, grammarAccess.getSendMailAccess().getPrivateKeySTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - current, - "privateKey", - lv_privateKey_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,43,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getSendMailAccess().getOnBehalfOfKeyword_5()); - - // InternalDsl.g:2022:3: ( (lv_impersonatedUser_6_0= RULE_STRING ) ) - // InternalDsl.g:2023:4: (lv_impersonatedUser_6_0= RULE_STRING ) - { - // InternalDsl.g:2023:4: (lv_impersonatedUser_6_0= RULE_STRING ) - // InternalDsl.g:2024:5: lv_impersonatedUser_6_0= RULE_STRING - { - lv_impersonatedUser_6_0=(Token)match(input,RULE_STRING,FOLLOW_23); - - newLeafNode(lv_impersonatedUser_6_0, grammarAccess.getSendMailAccess().getImpersonatedUserSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - current, - "impersonatedUser", - lv_impersonatedUser_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,31,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getSendMailAccess().getFromSourceKeyword_7()); - - // InternalDsl.g:2044:3: ( (lv_dbSrc_8_0= RULE_STRING ) ) - // InternalDsl.g:2045:4: (lv_dbSrc_8_0= RULE_STRING ) - { - // InternalDsl.g:2045:4: (lv_dbSrc_8_0= RULE_STRING ) - // InternalDsl.g:2046:5: lv_dbSrc_8_0= RULE_STRING - { - lv_dbSrc_8_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_dbSrc_8_0, grammarAccess.getSendMailAccess().getDbSrcSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - current, - "dbSrc", - lv_dbSrc_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_9, grammarAccess.getSendMailAccess().getUsingKeyword_9()); - - otherlv_10=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_10, grammarAccess.getSendMailAccess().getLeftCurlyBracketKeyword_10()); - - // InternalDsl.g:2070:3: ( (lv_value_11_0= RULE_STRING ) ) - // InternalDsl.g:2071:4: (lv_value_11_0= RULE_STRING ) - { - // InternalDsl.g:2071:4: (lv_value_11_0= RULE_STRING ) - // InternalDsl.g:2072:5: lv_value_11_0= RULE_STRING - { - lv_value_11_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_11_0, grammarAccess.getSendMailAccess().getValueSTRINGTerminalRuleCall_11_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_11_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_12=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_12, grammarAccess.getSendMailAccess().getRightCurlyBracketKeyword_12()); - - otherlv_13=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_13, grammarAccess.getSendMailAccess().getOnConditionKeyword_13()); - - // InternalDsl.g:2096:3: ( (lv_condition_14_0= ruleExpression ) ) - // InternalDsl.g:2097:4: (lv_condition_14_0= ruleExpression ) - { - // InternalDsl.g:2097:4: (lv_condition_14_0= ruleExpression ) - // InternalDsl.g:2098:5: lv_condition_14_0= ruleExpression - { - - newCompositeNode(grammarAccess.getSendMailAccess().getConditionExpressionParserRuleCall_14_0()); - - pushFollow(FOLLOW_28); - lv_condition_14_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getSendMailRule()); - } - set( - current, - "condition", - lv_condition_14_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_15=(Token)match(input,38,FOLLOW_3); - - newLeafNode(otherlv_15, grammarAccess.getSendMailAccess().getDoDryrunWithKeyword_15()); - - // InternalDsl.g:2119:3: ( (lv_dryrunMail_16_0= RULE_STRING ) ) - // InternalDsl.g:2120:4: (lv_dryrunMail_16_0= RULE_STRING ) - { - // InternalDsl.g:2120:4: (lv_dryrunMail_16_0= RULE_STRING ) - // InternalDsl.g:2121:5: lv_dryrunMail_16_0= RULE_STRING - { - lv_dryrunMail_16_0=(Token)match(input,RULE_STRING,FOLLOW_2); - - newLeafNode(lv_dryrunMail_16_0, grammarAccess.getSendMailAccess().getDryrunMailSTRINGTerminalRuleCall_16_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSendMailRule()); - } - setWithLastConsumed( - current, - "dryrunMail", - lv_dryrunMail_16_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleSendMail" - - - // $ANTLR start "entryRuleGooglecontactPUT" - // InternalDsl.g:2141:1: entryRuleGooglecontactPUT returns [EObject current=null] : iv_ruleGooglecontactPUT= ruleGooglecontactPUT EOF ; - public final EObject entryRuleGooglecontactPUT() throws RecognitionException { - EObject current = null; - - EObject iv_ruleGooglecontactPUT = null; - - - try { - // InternalDsl.g:2141:57: (iv_ruleGooglecontactPUT= ruleGooglecontactPUT EOF ) - // InternalDsl.g:2142:2: iv_ruleGooglecontactPUT= ruleGooglecontactPUT EOF - { - newCompositeNode(grammarAccess.getGooglecontactPUTRule()); - pushFollow(FOLLOW_1); - iv_ruleGooglecontactPUT=ruleGooglecontactPUT(); - - state._fsp--; - - current =iv_ruleGooglecontactPUT; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleGooglecontactPUT" - - - // $ANTLR start "ruleGooglecontactPUT" - // InternalDsl.g:2148:1: ruleGooglecontactPUT returns [EObject current=null] : (otherlv_0= 'gcontact' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'from-source' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) ; - public final EObject ruleGooglecontactPUT() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_account_4_0=null; - Token otherlv_5=null; - Token lv_privateKey_6_0=null; - Token otherlv_7=null; - Token lv_ptwelveFile_8_0=null; - Token otherlv_9=null; - Token lv_project_10_0=null; - Token otherlv_11=null; - Token lv_impersonatedUser_12_0=null; - Token otherlv_13=null; - Token lv_dbSrc_14_0=null; - Token otherlv_15=null; - Token otherlv_16=null; - Token lv_value_17_0=null; - Token otherlv_18=null; - Token otherlv_19=null; - EObject lv_condition_20_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:2154:2: ( (otherlv_0= 'gcontact' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'from-source' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) ) - // InternalDsl.g:2155:2: (otherlv_0= 'gcontact' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'from-source' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) - { - // InternalDsl.g:2155:2: (otherlv_0= 'gcontact' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'from-source' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) - // InternalDsl.g:2156:3: otherlv_0= 'gcontact' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'from-source' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,46,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getGooglecontactPUTAccess().getGcontactKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getGooglecontactPUTAccess().getAsKeyword_1()); - - // InternalDsl.g:2164:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:2165:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:2165:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:2166:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_26); - - newLeafNode(lv_name_2_0, grammarAccess.getGooglecontactPUTAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,36,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getGooglecontactPUTAccess().getThroughAccountKeyword_3()); - - // InternalDsl.g:2186:3: ( (lv_account_4_0= RULE_STRING ) ) - // InternalDsl.g:2187:4: (lv_account_4_0= RULE_STRING ) - { - // InternalDsl.g:2187:4: (lv_account_4_0= RULE_STRING ) - // InternalDsl.g:2188:5: lv_account_4_0= RULE_STRING - { - lv_account_4_0=(Token)match(input,RULE_STRING,FOLLOW_27); - - newLeafNode(lv_account_4_0, grammarAccess.getGooglecontactPUTAccess().getAccountSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - current, - "account", - lv_account_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,37,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getGooglecontactPUTAccess().getSecuredByKeyword_5()); - - // InternalDsl.g:2208:3: ( (lv_privateKey_6_0= RULE_STRING ) ) - // InternalDsl.g:2209:4: (lv_privateKey_6_0= RULE_STRING ) - { - // InternalDsl.g:2209:4: (lv_privateKey_6_0= RULE_STRING ) - // InternalDsl.g:2210:5: lv_privateKey_6_0= RULE_STRING - { - lv_privateKey_6_0=(Token)match(input,RULE_STRING,FOLLOW_29); - - newLeafNode(lv_privateKey_6_0, grammarAccess.getGooglecontactPUTAccess().getPrivateKeySTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - current, - "privateKey", - lv_privateKey_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,41,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getGooglecontactPUTAccess().getWithKeyKeyword_7()); - - // InternalDsl.g:2230:3: ( (lv_ptwelveFile_8_0= RULE_STRING ) ) - // InternalDsl.g:2231:4: (lv_ptwelveFile_8_0= RULE_STRING ) - { - // InternalDsl.g:2231:4: (lv_ptwelveFile_8_0= RULE_STRING ) - // InternalDsl.g:2232:5: lv_ptwelveFile_8_0= RULE_STRING - { - lv_ptwelveFile_8_0=(Token)match(input,RULE_STRING,FOLLOW_30); - - newLeafNode(lv_ptwelveFile_8_0, grammarAccess.getGooglecontactPUTAccess().getPtwelveFileSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - current, - "ptwelveFile", - lv_ptwelveFile_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,42,FOLLOW_3); - - newLeafNode(otherlv_9, grammarAccess.getGooglecontactPUTAccess().getForProjectKeyword_9()); - - // InternalDsl.g:2252:3: ( (lv_project_10_0= RULE_STRING ) ) - // InternalDsl.g:2253:4: (lv_project_10_0= RULE_STRING ) - { - // InternalDsl.g:2253:4: (lv_project_10_0= RULE_STRING ) - // InternalDsl.g:2254:5: lv_project_10_0= RULE_STRING - { - lv_project_10_0=(Token)match(input,RULE_STRING,FOLLOW_31); - - newLeafNode(lv_project_10_0, grammarAccess.getGooglecontactPUTAccess().getProjectSTRINGTerminalRuleCall_10_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - current, - "project", - lv_project_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_11=(Token)match(input,43,FOLLOW_3); - - newLeafNode(otherlv_11, grammarAccess.getGooglecontactPUTAccess().getOnBehalfOfKeyword_11()); - - // InternalDsl.g:2274:3: ( (lv_impersonatedUser_12_0= RULE_STRING ) ) - // InternalDsl.g:2275:4: (lv_impersonatedUser_12_0= RULE_STRING ) - { - // InternalDsl.g:2275:4: (lv_impersonatedUser_12_0= RULE_STRING ) - // InternalDsl.g:2276:5: lv_impersonatedUser_12_0= RULE_STRING - { - lv_impersonatedUser_12_0=(Token)match(input,RULE_STRING,FOLLOW_23); - - newLeafNode(lv_impersonatedUser_12_0, grammarAccess.getGooglecontactPUTAccess().getImpersonatedUserSTRINGTerminalRuleCall_12_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - current, - "impersonatedUser", - lv_impersonatedUser_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_13=(Token)match(input,31,FOLLOW_3); - - newLeafNode(otherlv_13, grammarAccess.getGooglecontactPUTAccess().getFromSourceKeyword_13()); - - // InternalDsl.g:2296:3: ( (lv_dbSrc_14_0= RULE_STRING ) ) - // InternalDsl.g:2297:4: (lv_dbSrc_14_0= RULE_STRING ) - { - // InternalDsl.g:2297:4: (lv_dbSrc_14_0= RULE_STRING ) - // InternalDsl.g:2298:5: lv_dbSrc_14_0= RULE_STRING - { - lv_dbSrc_14_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_dbSrc_14_0, grammarAccess.getGooglecontactPUTAccess().getDbSrcSTRINGTerminalRuleCall_14_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - current, - "dbSrc", - lv_dbSrc_14_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_15=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_15, grammarAccess.getGooglecontactPUTAccess().getUsingKeyword_15()); - - otherlv_16=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_16, grammarAccess.getGooglecontactPUTAccess().getLeftCurlyBracketKeyword_16()); - - // InternalDsl.g:2322:3: ( (lv_value_17_0= RULE_STRING ) ) - // InternalDsl.g:2323:4: (lv_value_17_0= RULE_STRING ) - { - // InternalDsl.g:2323:4: (lv_value_17_0= RULE_STRING ) - // InternalDsl.g:2324:5: lv_value_17_0= RULE_STRING - { - lv_value_17_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_17_0, grammarAccess.getGooglecontactPUTAccess().getValueSTRINGTerminalRuleCall_17_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecontactPUTRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_17_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_18=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_18, grammarAccess.getGooglecontactPUTAccess().getRightCurlyBracketKeyword_18()); - - otherlv_19=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_19, grammarAccess.getGooglecontactPUTAccess().getOnConditionKeyword_19()); - - // InternalDsl.g:2348:3: ( (lv_condition_20_0= ruleExpression ) ) - // InternalDsl.g:2349:4: (lv_condition_20_0= ruleExpression ) - { - // InternalDsl.g:2349:4: (lv_condition_20_0= ruleExpression ) - // InternalDsl.g:2350:5: lv_condition_20_0= ruleExpression - { - - newCompositeNode(grammarAccess.getGooglecontactPUTAccess().getConditionExpressionParserRuleCall_20_0()); - - pushFollow(FOLLOW_2); - lv_condition_20_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getGooglecontactPUTRule()); - } - set( - current, - "condition", - lv_condition_20_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleGooglecontactPUT" - - - // $ANTLR start "entryRuleGooglecalPUT" - // InternalDsl.g:2371:1: entryRuleGooglecalPUT returns [EObject current=null] : iv_ruleGooglecalPUT= ruleGooglecalPUT EOF ; - public final EObject entryRuleGooglecalPUT() throws RecognitionException { - EObject current = null; - - EObject iv_ruleGooglecalPUT = null; - - - try { - // InternalDsl.g:2371:53: (iv_ruleGooglecalPUT= ruleGooglecalPUT EOF ) - // InternalDsl.g:2372:2: iv_ruleGooglecalPUT= ruleGooglecalPUT EOF - { - newCompositeNode(grammarAccess.getGooglecalPUTRule()); - pushFollow(FOLLOW_1); - iv_ruleGooglecalPUT=ruleGooglecalPUT(); - - state._fsp--; - - current =iv_ruleGooglecalPUT; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleGooglecalPUT" - - - // $ANTLR start "ruleGooglecalPUT" - // InternalDsl.g:2378:1: ruleGooglecalPUT returns [EObject current=null] : (otherlv_0= 'gcalendar' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'from-source' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) ; - public final EObject ruleGooglecalPUT() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_account_4_0=null; - Token otherlv_5=null; - Token lv_privateKey_6_0=null; - Token otherlv_7=null; - Token lv_ptwelveFile_8_0=null; - Token otherlv_9=null; - Token lv_project_10_0=null; - Token otherlv_11=null; - Token lv_impersonatedUser_12_0=null; - Token otherlv_13=null; - Token lv_dbSrc_14_0=null; - Token otherlv_15=null; - Token otherlv_16=null; - Token lv_value_17_0=null; - Token otherlv_18=null; - Token otherlv_19=null; - EObject lv_condition_20_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:2384:2: ( (otherlv_0= 'gcalendar' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'from-source' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) ) - // InternalDsl.g:2385:2: (otherlv_0= 'gcalendar' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'from-source' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) - { - // InternalDsl.g:2385:2: (otherlv_0= 'gcalendar' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'from-source' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) ) - // InternalDsl.g:2386:3: otherlv_0= 'gcalendar' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'through-account' ( (lv_account_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_privateKey_6_0= RULE_STRING ) ) otherlv_7= 'with-key' ( (lv_ptwelveFile_8_0= RULE_STRING ) ) otherlv_9= 'for-project' ( (lv_project_10_0= RULE_STRING ) ) otherlv_11= 'on-behalf-of' ( (lv_impersonatedUser_12_0= RULE_STRING ) ) otherlv_13= 'from-source' ( (lv_dbSrc_14_0= RULE_STRING ) ) otherlv_15= 'using' otherlv_16= '{' ( (lv_value_17_0= RULE_STRING ) ) otherlv_18= '}' otherlv_19= 'on-condition' ( (lv_condition_20_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,47,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getGooglecalPUTAccess().getGcalendarKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getGooglecalPUTAccess().getAsKeyword_1()); - - // InternalDsl.g:2394:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:2395:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:2395:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:2396:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_26); - - newLeafNode(lv_name_2_0, grammarAccess.getGooglecalPUTAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,36,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getGooglecalPUTAccess().getThroughAccountKeyword_3()); - - // InternalDsl.g:2416:3: ( (lv_account_4_0= RULE_STRING ) ) - // InternalDsl.g:2417:4: (lv_account_4_0= RULE_STRING ) - { - // InternalDsl.g:2417:4: (lv_account_4_0= RULE_STRING ) - // InternalDsl.g:2418:5: lv_account_4_0= RULE_STRING - { - lv_account_4_0=(Token)match(input,RULE_STRING,FOLLOW_27); - - newLeafNode(lv_account_4_0, grammarAccess.getGooglecalPUTAccess().getAccountSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - current, - "account", - lv_account_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,37,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getGooglecalPUTAccess().getSecuredByKeyword_5()); - - // InternalDsl.g:2438:3: ( (lv_privateKey_6_0= RULE_STRING ) ) - // InternalDsl.g:2439:4: (lv_privateKey_6_0= RULE_STRING ) - { - // InternalDsl.g:2439:4: (lv_privateKey_6_0= RULE_STRING ) - // InternalDsl.g:2440:5: lv_privateKey_6_0= RULE_STRING - { - lv_privateKey_6_0=(Token)match(input,RULE_STRING,FOLLOW_29); - - newLeafNode(lv_privateKey_6_0, grammarAccess.getGooglecalPUTAccess().getPrivateKeySTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - current, - "privateKey", - lv_privateKey_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,41,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getGooglecalPUTAccess().getWithKeyKeyword_7()); - - // InternalDsl.g:2460:3: ( (lv_ptwelveFile_8_0= RULE_STRING ) ) - // InternalDsl.g:2461:4: (lv_ptwelveFile_8_0= RULE_STRING ) - { - // InternalDsl.g:2461:4: (lv_ptwelveFile_8_0= RULE_STRING ) - // InternalDsl.g:2462:5: lv_ptwelveFile_8_0= RULE_STRING - { - lv_ptwelveFile_8_0=(Token)match(input,RULE_STRING,FOLLOW_30); - - newLeafNode(lv_ptwelveFile_8_0, grammarAccess.getGooglecalPUTAccess().getPtwelveFileSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - current, - "ptwelveFile", - lv_ptwelveFile_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,42,FOLLOW_3); - - newLeafNode(otherlv_9, grammarAccess.getGooglecalPUTAccess().getForProjectKeyword_9()); - - // InternalDsl.g:2482:3: ( (lv_project_10_0= RULE_STRING ) ) - // InternalDsl.g:2483:4: (lv_project_10_0= RULE_STRING ) - { - // InternalDsl.g:2483:4: (lv_project_10_0= RULE_STRING ) - // InternalDsl.g:2484:5: lv_project_10_0= RULE_STRING - { - lv_project_10_0=(Token)match(input,RULE_STRING,FOLLOW_31); - - newLeafNode(lv_project_10_0, grammarAccess.getGooglecalPUTAccess().getProjectSTRINGTerminalRuleCall_10_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - current, - "project", - lv_project_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_11=(Token)match(input,43,FOLLOW_3); - - newLeafNode(otherlv_11, grammarAccess.getGooglecalPUTAccess().getOnBehalfOfKeyword_11()); - - // InternalDsl.g:2504:3: ( (lv_impersonatedUser_12_0= RULE_STRING ) ) - // InternalDsl.g:2505:4: (lv_impersonatedUser_12_0= RULE_STRING ) - { - // InternalDsl.g:2505:4: (lv_impersonatedUser_12_0= RULE_STRING ) - // InternalDsl.g:2506:5: lv_impersonatedUser_12_0= RULE_STRING - { - lv_impersonatedUser_12_0=(Token)match(input,RULE_STRING,FOLLOW_23); - - newLeafNode(lv_impersonatedUser_12_0, grammarAccess.getGooglecalPUTAccess().getImpersonatedUserSTRINGTerminalRuleCall_12_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - current, - "impersonatedUser", - lv_impersonatedUser_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_13=(Token)match(input,31,FOLLOW_3); - - newLeafNode(otherlv_13, grammarAccess.getGooglecalPUTAccess().getFromSourceKeyword_13()); - - // InternalDsl.g:2526:3: ( (lv_dbSrc_14_0= RULE_STRING ) ) - // InternalDsl.g:2527:4: (lv_dbSrc_14_0= RULE_STRING ) - { - // InternalDsl.g:2527:4: (lv_dbSrc_14_0= RULE_STRING ) - // InternalDsl.g:2528:5: lv_dbSrc_14_0= RULE_STRING - { - lv_dbSrc_14_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_dbSrc_14_0, grammarAccess.getGooglecalPUTAccess().getDbSrcSTRINGTerminalRuleCall_14_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - current, - "dbSrc", - lv_dbSrc_14_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_15=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_15, grammarAccess.getGooglecalPUTAccess().getUsingKeyword_15()); - - otherlv_16=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_16, grammarAccess.getGooglecalPUTAccess().getLeftCurlyBracketKeyword_16()); - - // InternalDsl.g:2552:3: ( (lv_value_17_0= RULE_STRING ) ) - // InternalDsl.g:2553:4: (lv_value_17_0= RULE_STRING ) - { - // InternalDsl.g:2553:4: (lv_value_17_0= RULE_STRING ) - // InternalDsl.g:2554:5: lv_value_17_0= RULE_STRING - { - lv_value_17_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_17_0, grammarAccess.getGooglecalPUTAccess().getValueSTRINGTerminalRuleCall_17_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGooglecalPUTRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_17_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_18=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_18, grammarAccess.getGooglecalPUTAccess().getRightCurlyBracketKeyword_18()); - - otherlv_19=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_19, grammarAccess.getGooglecalPUTAccess().getOnConditionKeyword_19()); - - // InternalDsl.g:2578:3: ( (lv_condition_20_0= ruleExpression ) ) - // InternalDsl.g:2579:4: (lv_condition_20_0= ruleExpression ) - { - // InternalDsl.g:2579:4: (lv_condition_20_0= ruleExpression ) - // InternalDsl.g:2580:5: lv_condition_20_0= ruleExpression - { - - newCompositeNode(grammarAccess.getGooglecalPUTAccess().getConditionExpressionParserRuleCall_20_0()); - - pushFollow(FOLLOW_2); - lv_condition_20_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getGooglecalPUTRule()); - } - set( - current, - "condition", - lv_condition_20_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleGooglecalPUT" - - - // $ANTLR start "entryRuleFBCLead" - // InternalDsl.g:2601:1: entryRuleFBCLead returns [EObject current=null] : iv_ruleFBCLead= ruleFBCLead EOF ; - public final EObject entryRuleFBCLead() throws RecognitionException { - EObject current = null; - - EObject iv_ruleFBCLead = null; - - - try { - // InternalDsl.g:2601:48: (iv_ruleFBCLead= ruleFBCLead EOF ) - // InternalDsl.g:2602:2: iv_ruleFBCLead= ruleFBCLead EOF - { - newCompositeNode(grammarAccess.getFBCLeadRule()); - pushFollow(FOLLOW_1); - iv_ruleFBCLead=ruleFBCLead(); - - state._fsp--; - - current =iv_ruleFBCLead; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleFBCLead" - - - // $ANTLR start "ruleFBCLead" - // InternalDsl.g:2608:1: ruleFBCLead returns [EObject current=null] : (otherlv_0= 'fblc' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_accessToken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_appSecret_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_accountId_8_0= RULE_STRING ) ) otherlv_9= 'for-campaign' ( (lv_campaignId_10_0= RULE_STRING ) ) otherlv_11= 'into' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) ; - public final EObject ruleFBCLead() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_accessToken_4_0=null; - Token otherlv_5=null; - Token lv_appSecret_6_0=null; - Token otherlv_7=null; - Token lv_accountId_8_0=null; - Token otherlv_9=null; - Token lv_campaignId_10_0=null; - Token otherlv_11=null; - Token lv_target_12_0=null; - Token otherlv_13=null; - Token otherlv_14=null; - Token lv_value_15_0=null; - Token otherlv_16=null; - Token otherlv_17=null; - EObject lv_condition_18_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:2614:2: ( (otherlv_0= 'fblc' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_accessToken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_appSecret_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_accountId_8_0= RULE_STRING ) ) otherlv_9= 'for-campaign' ( (lv_campaignId_10_0= RULE_STRING ) ) otherlv_11= 'into' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) ) - // InternalDsl.g:2615:2: (otherlv_0= 'fblc' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_accessToken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_appSecret_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_accountId_8_0= RULE_STRING ) ) otherlv_9= 'for-campaign' ( (lv_campaignId_10_0= RULE_STRING ) ) otherlv_11= 'into' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) - { - // InternalDsl.g:2615:2: (otherlv_0= 'fblc' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_accessToken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_appSecret_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_accountId_8_0= RULE_STRING ) ) otherlv_9= 'for-campaign' ( (lv_campaignId_10_0= RULE_STRING ) ) otherlv_11= 'into' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) - // InternalDsl.g:2616:3: otherlv_0= 'fblc' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_accessToken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_appSecret_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_accountId_8_0= RULE_STRING ) ) otherlv_9= 'for-campaign' ( (lv_campaignId_10_0= RULE_STRING ) ) otherlv_11= 'into' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,48,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getFBCLeadAccess().getFblcKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getFBCLeadAccess().getAsKeyword_1()); - - // InternalDsl.g:2624:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:2625:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:2625:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:2626:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_27); - - newLeafNode(lv_name_2_0, grammarAccess.getFBCLeadAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,37,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getFBCLeadAccess().getSecuredByKeyword_3()); - - // InternalDsl.g:2646:3: ( (lv_accessToken_4_0= RULE_STRING ) ) - // InternalDsl.g:2647:4: (lv_accessToken_4_0= RULE_STRING ) - { - // InternalDsl.g:2647:4: (lv_accessToken_4_0= RULE_STRING ) - // InternalDsl.g:2648:5: lv_accessToken_4_0= RULE_STRING - { - lv_accessToken_4_0=(Token)match(input,RULE_STRING,FOLLOW_29); - - newLeafNode(lv_accessToken_4_0, grammarAccess.getFBCLeadAccess().getAccessTokenSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - current, - "accessToken", - lv_accessToken_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,41,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getFBCLeadAccess().getWithKeyKeyword_5()); - - // InternalDsl.g:2668:3: ( (lv_appSecret_6_0= RULE_STRING ) ) - // InternalDsl.g:2669:4: (lv_appSecret_6_0= RULE_STRING ) - { - // InternalDsl.g:2669:4: (lv_appSecret_6_0= RULE_STRING ) - // InternalDsl.g:2670:5: lv_appSecret_6_0= RULE_STRING - { - lv_appSecret_6_0=(Token)match(input,RULE_STRING,FOLLOW_33); - - newLeafNode(lv_appSecret_6_0, grammarAccess.getFBCLeadAccess().getAppSecretSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - current, - "appSecret", - lv_appSecret_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,49,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getFBCLeadAccess().getThroughUserKeyword_7()); - - // InternalDsl.g:2690:3: ( (lv_accountId_8_0= RULE_STRING ) ) - // InternalDsl.g:2691:4: (lv_accountId_8_0= RULE_STRING ) - { - // InternalDsl.g:2691:4: (lv_accountId_8_0= RULE_STRING ) - // InternalDsl.g:2692:5: lv_accountId_8_0= RULE_STRING - { - lv_accountId_8_0=(Token)match(input,RULE_STRING,FOLLOW_34); - - newLeafNode(lv_accountId_8_0, grammarAccess.getFBCLeadAccess().getAccountIdSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - current, - "accountId", - lv_accountId_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,50,FOLLOW_3); - - newLeafNode(otherlv_9, grammarAccess.getFBCLeadAccess().getForCampaignKeyword_9()); - - // InternalDsl.g:2712:3: ( (lv_campaignId_10_0= RULE_STRING ) ) - // InternalDsl.g:2713:4: (lv_campaignId_10_0= RULE_STRING ) - { - // InternalDsl.g:2713:4: (lv_campaignId_10_0= RULE_STRING ) - // InternalDsl.g:2714:5: lv_campaignId_10_0= RULE_STRING - { - lv_campaignId_10_0=(Token)match(input,RULE_STRING,FOLLOW_35); - - newLeafNode(lv_campaignId_10_0, grammarAccess.getFBCLeadAccess().getCampaignIdSTRINGTerminalRuleCall_10_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - current, - "campaignId", - lv_campaignId_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_11=(Token)match(input,51,FOLLOW_3); - - newLeafNode(otherlv_11, grammarAccess.getFBCLeadAccess().getIntoKeyword_11()); - - // InternalDsl.g:2734:3: ( (lv_target_12_0= RULE_STRING ) ) - // InternalDsl.g:2735:4: (lv_target_12_0= RULE_STRING ) - { - // InternalDsl.g:2735:4: (lv_target_12_0= RULE_STRING ) - // InternalDsl.g:2736:5: lv_target_12_0= RULE_STRING - { - lv_target_12_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_target_12_0, grammarAccess.getFBCLeadAccess().getTargetSTRINGTerminalRuleCall_12_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - current, - "target", - lv_target_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_13=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_13, grammarAccess.getFBCLeadAccess().getUsingKeyword_13()); - - otherlv_14=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_14, grammarAccess.getFBCLeadAccess().getLeftCurlyBracketKeyword_14()); - - // InternalDsl.g:2760:3: ( (lv_value_15_0= RULE_STRING ) ) - // InternalDsl.g:2761:4: (lv_value_15_0= RULE_STRING ) - { - // InternalDsl.g:2761:4: (lv_value_15_0= RULE_STRING ) - // InternalDsl.g:2762:5: lv_value_15_0= RULE_STRING - { - lv_value_15_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_15_0, grammarAccess.getFBCLeadAccess().getValueSTRINGTerminalRuleCall_15_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBCLeadRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_15_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_16=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_16, grammarAccess.getFBCLeadAccess().getRightCurlyBracketKeyword_16()); - - otherlv_17=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_17, grammarAccess.getFBCLeadAccess().getOnConditionKeyword_17()); - - // InternalDsl.g:2786:3: ( (lv_condition_18_0= ruleExpression ) ) - // InternalDsl.g:2787:4: (lv_condition_18_0= ruleExpression ) - { - // InternalDsl.g:2787:4: (lv_condition_18_0= ruleExpression ) - // InternalDsl.g:2788:5: lv_condition_18_0= ruleExpression - { - - newCompositeNode(grammarAccess.getFBCLeadAccess().getConditionExpressionParserRuleCall_18_0()); - - pushFollow(FOLLOW_2); - lv_condition_18_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getFBCLeadRule()); - } - set( - current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleFBCLead" - - - // $ANTLR start "entryRuleFBFormDownload" - // InternalDsl.g:2809:1: entryRuleFBFormDownload returns [EObject current=null] : iv_ruleFBFormDownload= ruleFBFormDownload EOF ; - public final EObject entryRuleFBFormDownload() throws RecognitionException { - EObject current = null; - - EObject iv_ruleFBFormDownload = null; - - - try { - // InternalDsl.g:2809:55: (iv_ruleFBFormDownload= ruleFBFormDownload EOF ) - // InternalDsl.g:2810:2: iv_ruleFBFormDownload= ruleFBFormDownload EOF - { - newCompositeNode(grammarAccess.getFBFormDownloadRule()); - pushFollow(FOLLOW_1); - iv_ruleFBFormDownload=ruleFBFormDownload(); - - state._fsp--; - - current =iv_ruleFBFormDownload; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleFBFormDownload" - - - // $ANTLR start "ruleFBFormDownload" - // InternalDsl.g:2816:1: ruleFBFormDownload returns [EObject current=null] : (otherlv_0= 'fbfd' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_accessToken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_appSecret_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_accountId_8_0= RULE_STRING ) ) otherlv_9= 'for-form' ( (lv_formId_10_0= RULE_STRING ) ) otherlv_11= 'into' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) ; - public final EObject ruleFBFormDownload() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_accessToken_4_0=null; - Token otherlv_5=null; - Token lv_appSecret_6_0=null; - Token otherlv_7=null; - Token lv_accountId_8_0=null; - Token otherlv_9=null; - Token lv_formId_10_0=null; - Token otherlv_11=null; - Token lv_target_12_0=null; - Token otherlv_13=null; - Token otherlv_14=null; - Token lv_value_15_0=null; - Token otherlv_16=null; - Token otherlv_17=null; - EObject lv_condition_18_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:2822:2: ( (otherlv_0= 'fbfd' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_accessToken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_appSecret_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_accountId_8_0= RULE_STRING ) ) otherlv_9= 'for-form' ( (lv_formId_10_0= RULE_STRING ) ) otherlv_11= 'into' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) ) - // InternalDsl.g:2823:2: (otherlv_0= 'fbfd' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_accessToken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_appSecret_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_accountId_8_0= RULE_STRING ) ) otherlv_9= 'for-form' ( (lv_formId_10_0= RULE_STRING ) ) otherlv_11= 'into' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) - { - // InternalDsl.g:2823:2: (otherlv_0= 'fbfd' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_accessToken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_appSecret_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_accountId_8_0= RULE_STRING ) ) otherlv_9= 'for-form' ( (lv_formId_10_0= RULE_STRING ) ) otherlv_11= 'into' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) - // InternalDsl.g:2824:3: otherlv_0= 'fbfd' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_accessToken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_appSecret_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_accountId_8_0= RULE_STRING ) ) otherlv_9= 'for-form' ( (lv_formId_10_0= RULE_STRING ) ) otherlv_11= 'into' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= RULE_STRING ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,52,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getFBFormDownloadAccess().getFbfdKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getFBFormDownloadAccess().getAsKeyword_1()); - - // InternalDsl.g:2832:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:2833:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:2833:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:2834:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_27); - - newLeafNode(lv_name_2_0, grammarAccess.getFBFormDownloadAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,37,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getFBFormDownloadAccess().getSecuredByKeyword_3()); - - // InternalDsl.g:2854:3: ( (lv_accessToken_4_0= RULE_STRING ) ) - // InternalDsl.g:2855:4: (lv_accessToken_4_0= RULE_STRING ) - { - // InternalDsl.g:2855:4: (lv_accessToken_4_0= RULE_STRING ) - // InternalDsl.g:2856:5: lv_accessToken_4_0= RULE_STRING - { - lv_accessToken_4_0=(Token)match(input,RULE_STRING,FOLLOW_29); - - newLeafNode(lv_accessToken_4_0, grammarAccess.getFBFormDownloadAccess().getAccessTokenSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - current, - "accessToken", - lv_accessToken_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,41,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getFBFormDownloadAccess().getWithKeyKeyword_5()); - - // InternalDsl.g:2876:3: ( (lv_appSecret_6_0= RULE_STRING ) ) - // InternalDsl.g:2877:4: (lv_appSecret_6_0= RULE_STRING ) - { - // InternalDsl.g:2877:4: (lv_appSecret_6_0= RULE_STRING ) - // InternalDsl.g:2878:5: lv_appSecret_6_0= RULE_STRING - { - lv_appSecret_6_0=(Token)match(input,RULE_STRING,FOLLOW_33); - - newLeafNode(lv_appSecret_6_0, grammarAccess.getFBFormDownloadAccess().getAppSecretSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - current, - "appSecret", - lv_appSecret_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,49,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getFBFormDownloadAccess().getThroughUserKeyword_7()); - - // InternalDsl.g:2898:3: ( (lv_accountId_8_0= RULE_STRING ) ) - // InternalDsl.g:2899:4: (lv_accountId_8_0= RULE_STRING ) - { - // InternalDsl.g:2899:4: (lv_accountId_8_0= RULE_STRING ) - // InternalDsl.g:2900:5: lv_accountId_8_0= RULE_STRING - { - lv_accountId_8_0=(Token)match(input,RULE_STRING,FOLLOW_36); - - newLeafNode(lv_accountId_8_0, grammarAccess.getFBFormDownloadAccess().getAccountIdSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - current, - "accountId", - lv_accountId_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,53,FOLLOW_3); - - newLeafNode(otherlv_9, grammarAccess.getFBFormDownloadAccess().getForFormKeyword_9()); - - // InternalDsl.g:2920:3: ( (lv_formId_10_0= RULE_STRING ) ) - // InternalDsl.g:2921:4: (lv_formId_10_0= RULE_STRING ) - { - // InternalDsl.g:2921:4: (lv_formId_10_0= RULE_STRING ) - // InternalDsl.g:2922:5: lv_formId_10_0= RULE_STRING - { - lv_formId_10_0=(Token)match(input,RULE_STRING,FOLLOW_35); - - newLeafNode(lv_formId_10_0, grammarAccess.getFBFormDownloadAccess().getFormIdSTRINGTerminalRuleCall_10_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - current, - "formId", - lv_formId_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_11=(Token)match(input,51,FOLLOW_3); - - newLeafNode(otherlv_11, grammarAccess.getFBFormDownloadAccess().getIntoKeyword_11()); - - // InternalDsl.g:2942:3: ( (lv_target_12_0= RULE_STRING ) ) - // InternalDsl.g:2943:4: (lv_target_12_0= RULE_STRING ) - { - // InternalDsl.g:2943:4: (lv_target_12_0= RULE_STRING ) - // InternalDsl.g:2944:5: lv_target_12_0= RULE_STRING - { - lv_target_12_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_target_12_0, grammarAccess.getFBFormDownloadAccess().getTargetSTRINGTerminalRuleCall_12_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - current, - "target", - lv_target_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_13=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_13, grammarAccess.getFBFormDownloadAccess().getUsingKeyword_13()); - - otherlv_14=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_14, grammarAccess.getFBFormDownloadAccess().getLeftCurlyBracketKeyword_14()); - - // InternalDsl.g:2968:3: ( (lv_value_15_0= RULE_STRING ) ) - // InternalDsl.g:2969:4: (lv_value_15_0= RULE_STRING ) - { - // InternalDsl.g:2969:4: (lv_value_15_0= RULE_STRING ) - // InternalDsl.g:2970:5: lv_value_15_0= RULE_STRING - { - lv_value_15_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_15_0, grammarAccess.getFBFormDownloadAccess().getValueSTRINGTerminalRuleCall_15_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFBFormDownloadRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_15_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_16=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_16, grammarAccess.getFBFormDownloadAccess().getRightCurlyBracketKeyword_16()); - - otherlv_17=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_17, grammarAccess.getFBFormDownloadAccess().getOnConditionKeyword_17()); - - // InternalDsl.g:2994:3: ( (lv_condition_18_0= ruleExpression ) ) - // InternalDsl.g:2995:4: (lv_condition_18_0= ruleExpression ) - { - // InternalDsl.g:2995:4: (lv_condition_18_0= ruleExpression ) - // InternalDsl.g:2996:5: lv_condition_18_0= ruleExpression - { - - newCompositeNode(grammarAccess.getFBFormDownloadAccess().getConditionExpressionParserRuleCall_18_0()); - - pushFollow(FOLLOW_2); - lv_condition_18_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getFBFormDownloadRule()); - } - set( - current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleFBFormDownload" - - - // $ANTLR start "entryRuleDropfile" - // InternalDsl.g:3017:1: entryRuleDropfile returns [EObject current=null] : iv_ruleDropfile= ruleDropfile EOF ; - public final EObject entryRuleDropfile() throws RecognitionException { - EObject current = null; - - EObject iv_ruleDropfile = null; - - - try { - // InternalDsl.g:3017:49: (iv_ruleDropfile= ruleDropfile EOF ) - // InternalDsl.g:3018:2: iv_ruleDropfile= ruleDropfile EOF - { - newCompositeNode(grammarAccess.getDropfileRule()); - pushFollow(FOLLOW_1); - iv_ruleDropfile=ruleDropfile(); - - state._fsp--; - - current =iv_ruleDropfile; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleDropfile" - - - // $ANTLR start "ruleDropfile" - // InternalDsl.g:3024:1: ruleDropfile returns [EObject current=null] : (otherlv_0= 'dropfile' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'in-path' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'on-condition' ( (lv_condition_6_0= ruleExpression ) ) ) ; - public final EObject ruleDropfile() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_target_4_0=null; - Token otherlv_5=null; - EObject lv_condition_6_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:3030:2: ( (otherlv_0= 'dropfile' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'in-path' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'on-condition' ( (lv_condition_6_0= ruleExpression ) ) ) ) - // InternalDsl.g:3031:2: (otherlv_0= 'dropfile' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'in-path' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'on-condition' ( (lv_condition_6_0= ruleExpression ) ) ) - { - // InternalDsl.g:3031:2: (otherlv_0= 'dropfile' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'in-path' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'on-condition' ( (lv_condition_6_0= ruleExpression ) ) ) - // InternalDsl.g:3032:3: otherlv_0= 'dropfile' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'in-path' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'on-condition' ( (lv_condition_6_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,54,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getDropfileAccess().getDropfileKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getDropfileAccess().getAsKeyword_1()); - - // InternalDsl.g:3040:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:3041:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:3041:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:3042:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_37); - - newLeafNode(lv_name_2_0, grammarAccess.getDropfileAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getDropfileRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,55,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getDropfileAccess().getInPathKeyword_3()); - - // InternalDsl.g:3062:3: ( (lv_target_4_0= RULE_STRING ) ) - // InternalDsl.g:3063:4: (lv_target_4_0= RULE_STRING ) - { - // InternalDsl.g:3063:4: (lv_target_4_0= RULE_STRING ) - // InternalDsl.g:3064:5: lv_target_4_0= RULE_STRING - { - lv_target_4_0=(Token)match(input,RULE_STRING,FOLLOW_14); - - newLeafNode(lv_target_4_0, grammarAccess.getDropfileAccess().getTargetSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getDropfileRule()); - } - setWithLastConsumed( - current, - "target", - lv_target_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_5, grammarAccess.getDropfileAccess().getOnConditionKeyword_5()); - - // InternalDsl.g:3084:3: ( (lv_condition_6_0= ruleExpression ) ) - // InternalDsl.g:3085:4: (lv_condition_6_0= ruleExpression ) - { - // InternalDsl.g:3085:4: (lv_condition_6_0= ruleExpression ) - // InternalDsl.g:3086:5: lv_condition_6_0= ruleExpression - { - - newCompositeNode(grammarAccess.getDropfileAccess().getConditionExpressionParserRuleCall_6_0()); - - pushFollow(FOLLOW_2); - lv_condition_6_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getDropfileRule()); - } - set( - current, - "condition", - lv_condition_6_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleDropfile" - - - // $ANTLR start "entryRuleDoozle" - // InternalDsl.g:3107:1: entryRuleDoozle returns [EObject current=null] : iv_ruleDoozle= ruleDoozle EOF ; - public final EObject entryRuleDoozle() throws RecognitionException { - EObject current = null; - - EObject iv_ruleDoozle = null; - - - try { - // InternalDsl.g:3107:47: (iv_ruleDoozle= ruleDoozle EOF ) - // InternalDsl.g:3108:2: iv_ruleDoozle= ruleDoozle EOF - { - newCompositeNode(grammarAccess.getDoozleRule()); - pushFollow(FOLLOW_1); - iv_ruleDoozle=ruleDoozle(); - - state._fsp--; - - current =iv_ruleDoozle; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleDoozle" - - - // $ANTLR start "ruleDoozle" - // InternalDsl.g:3114:1: ruleDoozle returns [EObject current=null] : (otherlv_0= 'doozle' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'in-table' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'on' ( (lv_on_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= ruleCreateStatement ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) ; - public final EObject ruleDoozle() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_target_4_0=null; - Token otherlv_5=null; - Token lv_on_6_0=null; - Token otherlv_7=null; - Token otherlv_8=null; - Token otherlv_10=null; - Token otherlv_11=null; - AntlrDatatypeRuleToken lv_value_9_0 = null; - - EObject lv_condition_12_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:3120:2: ( (otherlv_0= 'doozle' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'in-table' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'on' ( (lv_on_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= ruleCreateStatement ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) ) - // InternalDsl.g:3121:2: (otherlv_0= 'doozle' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'in-table' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'on' ( (lv_on_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= ruleCreateStatement ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) - { - // InternalDsl.g:3121:2: (otherlv_0= 'doozle' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'in-table' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'on' ( (lv_on_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= ruleCreateStatement ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) - // InternalDsl.g:3122:3: otherlv_0= 'doozle' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'in-table' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'on' ( (lv_on_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= ruleCreateStatement ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,56,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getDoozleAccess().getDoozleKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getDoozleAccess().getAsKeyword_1()); - - // InternalDsl.g:3130:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:3131:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:3131:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:3132:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_38); - - newLeafNode(lv_name_2_0, grammarAccess.getDoozleAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getDoozleRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,57,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getDoozleAccess().getInTableKeyword_3()); - - // InternalDsl.g:3152:3: ( (lv_target_4_0= RULE_STRING ) ) - // InternalDsl.g:3153:4: (lv_target_4_0= RULE_STRING ) - { - // InternalDsl.g:3153:4: (lv_target_4_0= RULE_STRING ) - // InternalDsl.g:3154:5: lv_target_4_0= RULE_STRING - { - lv_target_4_0=(Token)match(input,RULE_STRING,FOLLOW_20); - - newLeafNode(lv_target_4_0, grammarAccess.getDoozleAccess().getTargetSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getDoozleRule()); - } - setWithLastConsumed( - current, - "target", - lv_target_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,28,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getDoozleAccess().getOnKeyword_5()); - - // InternalDsl.g:3174:3: ( (lv_on_6_0= RULE_STRING ) ) - // InternalDsl.g:3175:4: (lv_on_6_0= RULE_STRING ) - { - // InternalDsl.g:3175:4: (lv_on_6_0= RULE_STRING ) - // InternalDsl.g:3176:5: lv_on_6_0= RULE_STRING - { - lv_on_6_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_on_6_0, grammarAccess.getDoozleAccess().getOnSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getDoozleRule()); - } - setWithLastConsumed( - current, - "on", - lv_on_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_7, grammarAccess.getDoozleAccess().getUsingKeyword_7()); - - otherlv_8=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_8, grammarAccess.getDoozleAccess().getLeftCurlyBracketKeyword_8()); - - // InternalDsl.g:3200:3: ( (lv_value_9_0= ruleCreateStatement ) ) - // InternalDsl.g:3201:4: (lv_value_9_0= ruleCreateStatement ) - { - // InternalDsl.g:3201:4: (lv_value_9_0= ruleCreateStatement ) - // InternalDsl.g:3202:5: lv_value_9_0= ruleCreateStatement - { - - newCompositeNode(grammarAccess.getDoozleAccess().getValueCreateStatementParserRuleCall_9_0()); - - pushFollow(FOLLOW_8); - lv_value_9_0=ruleCreateStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getDoozleRule()); - } - set( - current, - "value", - lv_value_9_0, - "in.handyman.Dsl.CreateStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_10=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_10, grammarAccess.getDoozleAccess().getRightCurlyBracketKeyword_10()); - - otherlv_11=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_11, grammarAccess.getDoozleAccess().getOnConditionKeyword_11()); - - // InternalDsl.g:3227:3: ( (lv_condition_12_0= ruleExpression ) ) - // InternalDsl.g:3228:4: (lv_condition_12_0= ruleExpression ) - { - // InternalDsl.g:3228:4: (lv_condition_12_0= ruleExpression ) - // InternalDsl.g:3229:5: lv_condition_12_0= ruleExpression - { - - newCompositeNode(grammarAccess.getDoozleAccess().getConditionExpressionParserRuleCall_12_0()); - - pushFollow(FOLLOW_2); - lv_condition_12_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getDoozleRule()); - } - set( - current, - "condition", - lv_condition_12_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleDoozle" - - - // $ANTLR start "entryRuleRest" - // InternalDsl.g:3250:1: entryRuleRest returns [EObject current=null] : iv_ruleRest= ruleRest EOF ; - public final EObject entryRuleRest() throws RecognitionException { - EObject current = null; - - EObject iv_ruleRest = null; - - - try { - // InternalDsl.g:3250:45: (iv_ruleRest= ruleRest EOF ) - // InternalDsl.g:3251:2: iv_ruleRest= ruleRest EOF - { - newCompositeNode(grammarAccess.getRestRule()); - pushFollow(FOLLOW_1); - iv_ruleRest=ruleRest(); - - state._fsp--; - - current =iv_ruleRest; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleRest" - - - // $ANTLR start "ruleRest" - // InternalDsl.g:3257:1: ruleRest returns [EObject current=null] : (otherlv_0= 'rest' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-url' ( (lv_url_6_0= RULE_STRING ) ) otherlv_7= 'and-method-as' ( (lv_method_8_0= RULE_STRING ) ) otherlv_9= '{' otherlv_10= 'from' ( (lv_resourcedatafrom_11_0= RULE_STRING ) ) otherlv_12= 'update-url-with' otherlv_13= '{' ( (lv_urldata_14_0= ruleSelectStatement ) ) otherlv_15= '}' otherlv_16= 'from' ( (lv_headerdatafrom_17_0= RULE_STRING ) ) otherlv_18= 'update-header-with' otherlv_19= '{' ( (lv_headerdata_20_0= ruleSelectStatement ) ) otherlv_21= '}' otherlv_22= 'from' ( (lv_postdatafrom_23_0= RULE_STRING ) ) otherlv_24= 'update-body-with' otherlv_25= '{' otherlv_26= 'parent' otherlv_27= 'as' ( (lv_parentName_28_0= RULE_STRING ) ) ( (lv_parentdata_29_0= ruleSelectStatement ) ) ( (lv_parts_30_0= ruleRestPart ) )* otherlv_31= '}' otherlv_32= 'into' ( (lv_ackdatato_33_0= RULE_STRING ) ) otherlv_34= 'store-ack-at' otherlv_35= '{' ( (lv_ackdata_36_0= ruleSelectStatement ) ) otherlv_37= '}' otherlv_38= '}' otherlv_39= 'on-condition' ( (lv_condition_40_0= ruleExpression ) ) ) ; - public final EObject ruleRest() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_authtoken_4_0=null; - Token otherlv_5=null; - Token lv_url_6_0=null; - Token otherlv_7=null; - Token lv_method_8_0=null; - Token otherlv_9=null; - Token otherlv_10=null; - Token lv_resourcedatafrom_11_0=null; - Token otherlv_12=null; - Token otherlv_13=null; - Token otherlv_15=null; - Token otherlv_16=null; - Token lv_headerdatafrom_17_0=null; - Token otherlv_18=null; - Token otherlv_19=null; - Token otherlv_21=null; - Token otherlv_22=null; - Token lv_postdatafrom_23_0=null; - Token otherlv_24=null; - Token otherlv_25=null; - Token otherlv_26=null; - Token otherlv_27=null; - Token lv_parentName_28_0=null; - Token otherlv_31=null; - Token otherlv_32=null; - Token lv_ackdatato_33_0=null; - Token otherlv_34=null; - Token otherlv_35=null; - Token otherlv_37=null; - Token otherlv_38=null; - Token otherlv_39=null; - AntlrDatatypeRuleToken lv_urldata_14_0 = null; - - AntlrDatatypeRuleToken lv_headerdata_20_0 = null; - - AntlrDatatypeRuleToken lv_parentdata_29_0 = null; - - EObject lv_parts_30_0 = null; - - AntlrDatatypeRuleToken lv_ackdata_36_0 = null; - - EObject lv_condition_40_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:3263:2: ( (otherlv_0= 'rest' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-url' ( (lv_url_6_0= RULE_STRING ) ) otherlv_7= 'and-method-as' ( (lv_method_8_0= RULE_STRING ) ) otherlv_9= '{' otherlv_10= 'from' ( (lv_resourcedatafrom_11_0= RULE_STRING ) ) otherlv_12= 'update-url-with' otherlv_13= '{' ( (lv_urldata_14_0= ruleSelectStatement ) ) otherlv_15= '}' otherlv_16= 'from' ( (lv_headerdatafrom_17_0= RULE_STRING ) ) otherlv_18= 'update-header-with' otherlv_19= '{' ( (lv_headerdata_20_0= ruleSelectStatement ) ) otherlv_21= '}' otherlv_22= 'from' ( (lv_postdatafrom_23_0= RULE_STRING ) ) otherlv_24= 'update-body-with' otherlv_25= '{' otherlv_26= 'parent' otherlv_27= 'as' ( (lv_parentName_28_0= RULE_STRING ) ) ( (lv_parentdata_29_0= ruleSelectStatement ) ) ( (lv_parts_30_0= ruleRestPart ) )* otherlv_31= '}' otherlv_32= 'into' ( (lv_ackdatato_33_0= RULE_STRING ) ) otherlv_34= 'store-ack-at' otherlv_35= '{' ( (lv_ackdata_36_0= ruleSelectStatement ) ) otherlv_37= '}' otherlv_38= '}' otherlv_39= 'on-condition' ( (lv_condition_40_0= ruleExpression ) ) ) ) - // InternalDsl.g:3264:2: (otherlv_0= 'rest' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-url' ( (lv_url_6_0= RULE_STRING ) ) otherlv_7= 'and-method-as' ( (lv_method_8_0= RULE_STRING ) ) otherlv_9= '{' otherlv_10= 'from' ( (lv_resourcedatafrom_11_0= RULE_STRING ) ) otherlv_12= 'update-url-with' otherlv_13= '{' ( (lv_urldata_14_0= ruleSelectStatement ) ) otherlv_15= '}' otherlv_16= 'from' ( (lv_headerdatafrom_17_0= RULE_STRING ) ) otherlv_18= 'update-header-with' otherlv_19= '{' ( (lv_headerdata_20_0= ruleSelectStatement ) ) otherlv_21= '}' otherlv_22= 'from' ( (lv_postdatafrom_23_0= RULE_STRING ) ) otherlv_24= 'update-body-with' otherlv_25= '{' otherlv_26= 'parent' otherlv_27= 'as' ( (lv_parentName_28_0= RULE_STRING ) ) ( (lv_parentdata_29_0= ruleSelectStatement ) ) ( (lv_parts_30_0= ruleRestPart ) )* otherlv_31= '}' otherlv_32= 'into' ( (lv_ackdatato_33_0= RULE_STRING ) ) otherlv_34= 'store-ack-at' otherlv_35= '{' ( (lv_ackdata_36_0= ruleSelectStatement ) ) otherlv_37= '}' otherlv_38= '}' otherlv_39= 'on-condition' ( (lv_condition_40_0= ruleExpression ) ) ) - { - // InternalDsl.g:3264:2: (otherlv_0= 'rest' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-url' ( (lv_url_6_0= RULE_STRING ) ) otherlv_7= 'and-method-as' ( (lv_method_8_0= RULE_STRING ) ) otherlv_9= '{' otherlv_10= 'from' ( (lv_resourcedatafrom_11_0= RULE_STRING ) ) otherlv_12= 'update-url-with' otherlv_13= '{' ( (lv_urldata_14_0= ruleSelectStatement ) ) otherlv_15= '}' otherlv_16= 'from' ( (lv_headerdatafrom_17_0= RULE_STRING ) ) otherlv_18= 'update-header-with' otherlv_19= '{' ( (lv_headerdata_20_0= ruleSelectStatement ) ) otherlv_21= '}' otherlv_22= 'from' ( (lv_postdatafrom_23_0= RULE_STRING ) ) otherlv_24= 'update-body-with' otherlv_25= '{' otherlv_26= 'parent' otherlv_27= 'as' ( (lv_parentName_28_0= RULE_STRING ) ) ( (lv_parentdata_29_0= ruleSelectStatement ) ) ( (lv_parts_30_0= ruleRestPart ) )* otherlv_31= '}' otherlv_32= 'into' ( (lv_ackdatato_33_0= RULE_STRING ) ) otherlv_34= 'store-ack-at' otherlv_35= '{' ( (lv_ackdata_36_0= ruleSelectStatement ) ) otherlv_37= '}' otherlv_38= '}' otherlv_39= 'on-condition' ( (lv_condition_40_0= ruleExpression ) ) ) - // InternalDsl.g:3265:3: otherlv_0= 'rest' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-url' ( (lv_url_6_0= RULE_STRING ) ) otherlv_7= 'and-method-as' ( (lv_method_8_0= RULE_STRING ) ) otherlv_9= '{' otherlv_10= 'from' ( (lv_resourcedatafrom_11_0= RULE_STRING ) ) otherlv_12= 'update-url-with' otherlv_13= '{' ( (lv_urldata_14_0= ruleSelectStatement ) ) otherlv_15= '}' otherlv_16= 'from' ( (lv_headerdatafrom_17_0= RULE_STRING ) ) otherlv_18= 'update-header-with' otherlv_19= '{' ( (lv_headerdata_20_0= ruleSelectStatement ) ) otherlv_21= '}' otherlv_22= 'from' ( (lv_postdatafrom_23_0= RULE_STRING ) ) otherlv_24= 'update-body-with' otherlv_25= '{' otherlv_26= 'parent' otherlv_27= 'as' ( (lv_parentName_28_0= RULE_STRING ) ) ( (lv_parentdata_29_0= ruleSelectStatement ) ) ( (lv_parts_30_0= ruleRestPart ) )* otherlv_31= '}' otherlv_32= 'into' ( (lv_ackdatato_33_0= RULE_STRING ) ) otherlv_34= 'store-ack-at' otherlv_35= '{' ( (lv_ackdata_36_0= ruleSelectStatement ) ) otherlv_37= '}' otherlv_38= '}' otherlv_39= 'on-condition' ( (lv_condition_40_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,58,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getRestAccess().getRestKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getRestAccess().getAsKeyword_1()); - - // InternalDsl.g:3273:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:3274:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:3274:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:3275:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_27); - - newLeafNode(lv_name_2_0, grammarAccess.getRestAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,37,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getRestAccess().getSecuredByKeyword_3()); - - // InternalDsl.g:3295:3: ( (lv_authtoken_4_0= RULE_STRING ) ) - // InternalDsl.g:3296:4: (lv_authtoken_4_0= RULE_STRING ) - { - // InternalDsl.g:3296:4: (lv_authtoken_4_0= RULE_STRING ) - // InternalDsl.g:3297:5: lv_authtoken_4_0= RULE_STRING - { - lv_authtoken_4_0=(Token)match(input,RULE_STRING,FOLLOW_39); - - newLeafNode(lv_authtoken_4_0, grammarAccess.getRestAccess().getAuthtokenSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - current, - "authtoken", - lv_authtoken_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,59,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getRestAccess().getWithUrlKeyword_5()); - - // InternalDsl.g:3317:3: ( (lv_url_6_0= RULE_STRING ) ) - // InternalDsl.g:3318:4: (lv_url_6_0= RULE_STRING ) - { - // InternalDsl.g:3318:4: (lv_url_6_0= RULE_STRING ) - // InternalDsl.g:3319:5: lv_url_6_0= RULE_STRING - { - lv_url_6_0=(Token)match(input,RULE_STRING,FOLLOW_40); - - newLeafNode(lv_url_6_0, grammarAccess.getRestAccess().getUrlSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - current, - "url", - lv_url_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,60,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getRestAccess().getAndMethodAsKeyword_7()); - - // InternalDsl.g:3339:3: ( (lv_method_8_0= RULE_STRING ) ) - // InternalDsl.g:3340:4: (lv_method_8_0= RULE_STRING ) - { - // InternalDsl.g:3340:4: (lv_method_8_0= RULE_STRING ) - // InternalDsl.g:3341:5: lv_method_8_0= RULE_STRING - { - lv_method_8_0=(Token)match(input,RULE_STRING,FOLLOW_4); - - newLeafNode(lv_method_8_0, grammarAccess.getRestAccess().getMethodSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - current, - "method", - lv_method_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,12,FOLLOW_41); - - newLeafNode(otherlv_9, grammarAccess.getRestAccess().getLeftCurlyBracketKeyword_9()); - - otherlv_10=(Token)match(input,61,FOLLOW_3); - - newLeafNode(otherlv_10, grammarAccess.getRestAccess().getFromKeyword_10()); - - // InternalDsl.g:3365:3: ( (lv_resourcedatafrom_11_0= RULE_STRING ) ) - // InternalDsl.g:3366:4: (lv_resourcedatafrom_11_0= RULE_STRING ) - { - // InternalDsl.g:3366:4: (lv_resourcedatafrom_11_0= RULE_STRING ) - // InternalDsl.g:3367:5: lv_resourcedatafrom_11_0= RULE_STRING - { - lv_resourcedatafrom_11_0=(Token)match(input,RULE_STRING,FOLLOW_42); - - newLeafNode(lv_resourcedatafrom_11_0, grammarAccess.getRestAccess().getResourcedatafromSTRINGTerminalRuleCall_11_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - current, - "resourcedatafrom", - lv_resourcedatafrom_11_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_12=(Token)match(input,62,FOLLOW_4); - - newLeafNode(otherlv_12, grammarAccess.getRestAccess().getUpdateUrlWithKeyword_12()); - - otherlv_13=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_13, grammarAccess.getRestAccess().getLeftCurlyBracketKeyword_13()); - - // InternalDsl.g:3391:3: ( (lv_urldata_14_0= ruleSelectStatement ) ) - // InternalDsl.g:3392:4: (lv_urldata_14_0= ruleSelectStatement ) - { - // InternalDsl.g:3392:4: (lv_urldata_14_0= ruleSelectStatement ) - // InternalDsl.g:3393:5: lv_urldata_14_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getRestAccess().getUrldataSelectStatementParserRuleCall_14_0()); - - pushFollow(FOLLOW_8); - lv_urldata_14_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getRestRule()); - } - set( - current, - "urldata", - lv_urldata_14_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_15=(Token)match(input,13,FOLLOW_41); - - newLeafNode(otherlv_15, grammarAccess.getRestAccess().getRightCurlyBracketKeyword_15()); - - otherlv_16=(Token)match(input,61,FOLLOW_3); - - newLeafNode(otherlv_16, grammarAccess.getRestAccess().getFromKeyword_16()); - - // InternalDsl.g:3418:3: ( (lv_headerdatafrom_17_0= RULE_STRING ) ) - // InternalDsl.g:3419:4: (lv_headerdatafrom_17_0= RULE_STRING ) - { - // InternalDsl.g:3419:4: (lv_headerdatafrom_17_0= RULE_STRING ) - // InternalDsl.g:3420:5: lv_headerdatafrom_17_0= RULE_STRING - { - lv_headerdatafrom_17_0=(Token)match(input,RULE_STRING,FOLLOW_43); - - newLeafNode(lv_headerdatafrom_17_0, grammarAccess.getRestAccess().getHeaderdatafromSTRINGTerminalRuleCall_17_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - current, - "headerdatafrom", - lv_headerdatafrom_17_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_18=(Token)match(input,63,FOLLOW_4); - - newLeafNode(otherlv_18, grammarAccess.getRestAccess().getUpdateHeaderWithKeyword_18()); - - otherlv_19=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_19, grammarAccess.getRestAccess().getLeftCurlyBracketKeyword_19()); - - // InternalDsl.g:3444:3: ( (lv_headerdata_20_0= ruleSelectStatement ) ) - // InternalDsl.g:3445:4: (lv_headerdata_20_0= ruleSelectStatement ) - { - // InternalDsl.g:3445:4: (lv_headerdata_20_0= ruleSelectStatement ) - // InternalDsl.g:3446:5: lv_headerdata_20_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getRestAccess().getHeaderdataSelectStatementParserRuleCall_20_0()); - - pushFollow(FOLLOW_8); - lv_headerdata_20_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getRestRule()); - } - set( - current, - "headerdata", - lv_headerdata_20_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_21=(Token)match(input,13,FOLLOW_41); - - newLeafNode(otherlv_21, grammarAccess.getRestAccess().getRightCurlyBracketKeyword_21()); - - otherlv_22=(Token)match(input,61,FOLLOW_3); - - newLeafNode(otherlv_22, grammarAccess.getRestAccess().getFromKeyword_22()); - - // InternalDsl.g:3471:3: ( (lv_postdatafrom_23_0= RULE_STRING ) ) - // InternalDsl.g:3472:4: (lv_postdatafrom_23_0= RULE_STRING ) - { - // InternalDsl.g:3472:4: (lv_postdatafrom_23_0= RULE_STRING ) - // InternalDsl.g:3473:5: lv_postdatafrom_23_0= RULE_STRING - { - lv_postdatafrom_23_0=(Token)match(input,RULE_STRING,FOLLOW_44); - - newLeafNode(lv_postdatafrom_23_0, grammarAccess.getRestAccess().getPostdatafromSTRINGTerminalRuleCall_23_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - current, - "postdatafrom", - lv_postdatafrom_23_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_24=(Token)match(input,64,FOLLOW_4); - - newLeafNode(otherlv_24, grammarAccess.getRestAccess().getUpdateBodyWithKeyword_24()); - - otherlv_25=(Token)match(input,12,FOLLOW_45); - - newLeafNode(otherlv_25, grammarAccess.getRestAccess().getLeftCurlyBracketKeyword_25()); - - otherlv_26=(Token)match(input,65,FOLLOW_11); - - newLeafNode(otherlv_26, grammarAccess.getRestAccess().getParentKeyword_26()); - - otherlv_27=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_27, grammarAccess.getRestAccess().getAsKeyword_27()); - - // InternalDsl.g:3505:3: ( (lv_parentName_28_0= RULE_STRING ) ) - // InternalDsl.g:3506:4: (lv_parentName_28_0= RULE_STRING ) - { - // InternalDsl.g:3506:4: (lv_parentName_28_0= RULE_STRING ) - // InternalDsl.g:3507:5: lv_parentName_28_0= RULE_STRING - { - lv_parentName_28_0=(Token)match(input,RULE_STRING,FOLLOW_3); - - newLeafNode(lv_parentName_28_0, grammarAccess.getRestAccess().getParentNameSTRINGTerminalRuleCall_28_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - current, - "parentName", - lv_parentName_28_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - // InternalDsl.g:3523:3: ( (lv_parentdata_29_0= ruleSelectStatement ) ) - // InternalDsl.g:3524:4: (lv_parentdata_29_0= ruleSelectStatement ) - { - // InternalDsl.g:3524:4: (lv_parentdata_29_0= ruleSelectStatement ) - // InternalDsl.g:3525:5: lv_parentdata_29_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getRestAccess().getParentdataSelectStatementParserRuleCall_29_0()); - - pushFollow(FOLLOW_46); - lv_parentdata_29_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getRestRule()); - } - set( - current, - "parentdata", - lv_parentdata_29_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - // InternalDsl.g:3542:3: ( (lv_parts_30_0= ruleRestPart ) )* - loop5: - do { - int alt5=2; - int LA5_0 = input.LA(1); - - if ( (LA5_0==67) ) { - alt5=1; - } - - - switch (alt5) { - case 1 : - // InternalDsl.g:3543:4: (lv_parts_30_0= ruleRestPart ) - { - // InternalDsl.g:3543:4: (lv_parts_30_0= ruleRestPart ) - // InternalDsl.g:3544:5: lv_parts_30_0= ruleRestPart - { - - newCompositeNode(grammarAccess.getRestAccess().getPartsRestPartParserRuleCall_30_0()); - - pushFollow(FOLLOW_46); - lv_parts_30_0=ruleRestPart(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getRestRule()); - } - add( - current, - "parts", - lv_parts_30_0, - "in.handyman.Dsl.RestPart"); - afterParserOrEnumRuleCall(); - - - } - - - } - break; - - default : - break loop5; - } - } while (true); - - otherlv_31=(Token)match(input,13,FOLLOW_35); - - newLeafNode(otherlv_31, grammarAccess.getRestAccess().getRightCurlyBracketKeyword_31()); - - otherlv_32=(Token)match(input,51,FOLLOW_3); - - newLeafNode(otherlv_32, grammarAccess.getRestAccess().getIntoKeyword_32()); - - // InternalDsl.g:3569:3: ( (lv_ackdatato_33_0= RULE_STRING ) ) - // InternalDsl.g:3570:4: (lv_ackdatato_33_0= RULE_STRING ) - { - // InternalDsl.g:3570:4: (lv_ackdatato_33_0= RULE_STRING ) - // InternalDsl.g:3571:5: lv_ackdatato_33_0= RULE_STRING - { - lv_ackdatato_33_0=(Token)match(input,RULE_STRING,FOLLOW_47); - - newLeafNode(lv_ackdatato_33_0, grammarAccess.getRestAccess().getAckdatatoSTRINGTerminalRuleCall_33_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getRestRule()); - } - setWithLastConsumed( - current, - "ackdatato", - lv_ackdatato_33_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_34=(Token)match(input,66,FOLLOW_4); - - newLeafNode(otherlv_34, grammarAccess.getRestAccess().getStoreAckAtKeyword_34()); - - otherlv_35=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_35, grammarAccess.getRestAccess().getLeftCurlyBracketKeyword_35()); - - // InternalDsl.g:3595:3: ( (lv_ackdata_36_0= ruleSelectStatement ) ) - // InternalDsl.g:3596:4: (lv_ackdata_36_0= ruleSelectStatement ) - { - // InternalDsl.g:3596:4: (lv_ackdata_36_0= ruleSelectStatement ) - // InternalDsl.g:3597:5: lv_ackdata_36_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getRestAccess().getAckdataSelectStatementParserRuleCall_36_0()); - - pushFollow(FOLLOW_8); - lv_ackdata_36_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getRestRule()); - } - set( - current, - "ackdata", - lv_ackdata_36_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_37=(Token)match(input,13,FOLLOW_8); - - newLeafNode(otherlv_37, grammarAccess.getRestAccess().getRightCurlyBracketKeyword_37()); - - otherlv_38=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_38, grammarAccess.getRestAccess().getRightCurlyBracketKeyword_38()); - - otherlv_39=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_39, grammarAccess.getRestAccess().getOnConditionKeyword_39()); - - // InternalDsl.g:3626:3: ( (lv_condition_40_0= ruleExpression ) ) - // InternalDsl.g:3627:4: (lv_condition_40_0= ruleExpression ) - { - // InternalDsl.g:3627:4: (lv_condition_40_0= ruleExpression ) - // InternalDsl.g:3628:5: lv_condition_40_0= ruleExpression - { - - newCompositeNode(grammarAccess.getRestAccess().getConditionExpressionParserRuleCall_40_0()); - - pushFollow(FOLLOW_2); - lv_condition_40_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getRestRule()); - } - set( - current, - "condition", - lv_condition_40_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleRest" - - - // $ANTLR start "entryRuleRestPart" - // InternalDsl.g:3649:1: entryRuleRestPart returns [EObject current=null] : iv_ruleRestPart= ruleRestPart EOF ; - public final EObject entryRuleRestPart() throws RecognitionException { - EObject current = null; - - EObject iv_ruleRestPart = null; - - - try { - // InternalDsl.g:3649:49: (iv_ruleRestPart= ruleRestPart EOF ) - // InternalDsl.g:3650:2: iv_ruleRestPart= ruleRestPart EOF - { - newCompositeNode(grammarAccess.getRestPartRule()); - pushFollow(FOLLOW_1); - iv_ruleRestPart=ruleRestPart(); - - state._fsp--; - - current =iv_ruleRestPart; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleRestPart" - - - // $ANTLR start "ruleRestPart" - // InternalDsl.g:3656:1: ruleRestPart returns [EObject current=null] : (otherlv_0= 'part' otherlv_1= 'as' ( (lv_partName_2_0= RULE_STRING ) ) otherlv_3= 'with' ( (lv_partData_4_0= ruleSelectStatement ) ) ) ; - public final EObject ruleRestPart() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_partName_2_0=null; - Token otherlv_3=null; - AntlrDatatypeRuleToken lv_partData_4_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:3662:2: ( (otherlv_0= 'part' otherlv_1= 'as' ( (lv_partName_2_0= RULE_STRING ) ) otherlv_3= 'with' ( (lv_partData_4_0= ruleSelectStatement ) ) ) ) - // InternalDsl.g:3663:2: (otherlv_0= 'part' otherlv_1= 'as' ( (lv_partName_2_0= RULE_STRING ) ) otherlv_3= 'with' ( (lv_partData_4_0= ruleSelectStatement ) ) ) - { - // InternalDsl.g:3663:2: (otherlv_0= 'part' otherlv_1= 'as' ( (lv_partName_2_0= RULE_STRING ) ) otherlv_3= 'with' ( (lv_partData_4_0= ruleSelectStatement ) ) ) - // InternalDsl.g:3664:3: otherlv_0= 'part' otherlv_1= 'as' ( (lv_partName_2_0= RULE_STRING ) ) otherlv_3= 'with' ( (lv_partData_4_0= ruleSelectStatement ) ) - { - otherlv_0=(Token)match(input,67,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getRestPartAccess().getPartKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getRestPartAccess().getAsKeyword_1()); - - // InternalDsl.g:3672:3: ( (lv_partName_2_0= RULE_STRING ) ) - // InternalDsl.g:3673:4: (lv_partName_2_0= RULE_STRING ) - { - // InternalDsl.g:3673:4: (lv_partName_2_0= RULE_STRING ) - // InternalDsl.g:3674:5: lv_partName_2_0= RULE_STRING - { - lv_partName_2_0=(Token)match(input,RULE_STRING,FOLLOW_48); - - newLeafNode(lv_partName_2_0, grammarAccess.getRestPartAccess().getPartNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getRestPartRule()); - } - setWithLastConsumed( - current, - "partName", - lv_partName_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,68,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getRestPartAccess().getWithKeyword_3()); - - // InternalDsl.g:3694:3: ( (lv_partData_4_0= ruleSelectStatement ) ) - // InternalDsl.g:3695:4: (lv_partData_4_0= ruleSelectStatement ) - { - // InternalDsl.g:3695:4: (lv_partData_4_0= ruleSelectStatement ) - // InternalDsl.g:3696:5: lv_partData_4_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getRestPartAccess().getPartDataSelectStatementParserRuleCall_4_0()); - - pushFollow(FOLLOW_2); - lv_partData_4_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getRestPartRule()); - } - set( - current, - "partData", - lv_partData_4_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleRestPart" - - - // $ANTLR start "entryRuleTrelloGET" - // InternalDsl.g:3717:1: entryRuleTrelloGET returns [EObject current=null] : iv_ruleTrelloGET= ruleTrelloGET EOF ; - public final EObject entryRuleTrelloGET() throws RecognitionException { - EObject current = null; - - EObject iv_ruleTrelloGET = null; - - - try { - // InternalDsl.g:3717:50: (iv_ruleTrelloGET= ruleTrelloGET EOF ) - // InternalDsl.g:3718:2: iv_ruleTrelloGET= ruleTrelloGET EOF - { - newCompositeNode(grammarAccess.getTrelloGETRule()); - pushFollow(FOLLOW_1); - iv_ruleTrelloGET=ruleTrelloGET(); - - state._fsp--; - - current =iv_ruleTrelloGET; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleTrelloGET" - - - // $ANTLR start "ruleTrelloGET" - // InternalDsl.g:3724:1: ruleTrelloGET returns [EObject current=null] : (otherlv_0= 'trelloget' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_key_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_useraccount_8_0= RULE_STRING ) ) otherlv_9= 'from-board' ( (lv_board_10_0= RULE_STRING ) ) otherlv_11= 'to' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) ; - public final EObject ruleTrelloGET() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_authtoken_4_0=null; - Token otherlv_5=null; - Token lv_key_6_0=null; - Token otherlv_7=null; - Token lv_useraccount_8_0=null; - Token otherlv_9=null; - Token lv_board_10_0=null; - Token otherlv_11=null; - Token lv_target_12_0=null; - Token otherlv_13=null; - Token otherlv_14=null; - Token otherlv_16=null; - Token otherlv_17=null; - AntlrDatatypeRuleToken lv_value_15_0 = null; - - EObject lv_condition_18_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:3730:2: ( (otherlv_0= 'trelloget' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_key_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_useraccount_8_0= RULE_STRING ) ) otherlv_9= 'from-board' ( (lv_board_10_0= RULE_STRING ) ) otherlv_11= 'to' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) ) - // InternalDsl.g:3731:2: (otherlv_0= 'trelloget' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_key_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_useraccount_8_0= RULE_STRING ) ) otherlv_9= 'from-board' ( (lv_board_10_0= RULE_STRING ) ) otherlv_11= 'to' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) - { - // InternalDsl.g:3731:2: (otherlv_0= 'trelloget' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_key_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_useraccount_8_0= RULE_STRING ) ) otherlv_9= 'from-board' ( (lv_board_10_0= RULE_STRING ) ) otherlv_11= 'to' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) - // InternalDsl.g:3732:3: otherlv_0= 'trelloget' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_key_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_useraccount_8_0= RULE_STRING ) ) otherlv_9= 'from-board' ( (lv_board_10_0= RULE_STRING ) ) otherlv_11= 'to' ( (lv_target_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,69,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getTrelloGETAccess().getTrellogetKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getTrelloGETAccess().getAsKeyword_1()); - - // InternalDsl.g:3740:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:3741:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:3741:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:3742:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_27); - - newLeafNode(lv_name_2_0, grammarAccess.getTrelloGETAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,37,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getTrelloGETAccess().getSecuredByKeyword_3()); - - // InternalDsl.g:3762:3: ( (lv_authtoken_4_0= RULE_STRING ) ) - // InternalDsl.g:3763:4: (lv_authtoken_4_0= RULE_STRING ) - { - // InternalDsl.g:3763:4: (lv_authtoken_4_0= RULE_STRING ) - // InternalDsl.g:3764:5: lv_authtoken_4_0= RULE_STRING - { - lv_authtoken_4_0=(Token)match(input,RULE_STRING,FOLLOW_29); - - newLeafNode(lv_authtoken_4_0, grammarAccess.getTrelloGETAccess().getAuthtokenSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - current, - "authtoken", - lv_authtoken_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,41,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getTrelloGETAccess().getWithKeyKeyword_5()); - - // InternalDsl.g:3784:3: ( (lv_key_6_0= RULE_STRING ) ) - // InternalDsl.g:3785:4: (lv_key_6_0= RULE_STRING ) - { - // InternalDsl.g:3785:4: (lv_key_6_0= RULE_STRING ) - // InternalDsl.g:3786:5: lv_key_6_0= RULE_STRING - { - lv_key_6_0=(Token)match(input,RULE_STRING,FOLLOW_33); - - newLeafNode(lv_key_6_0, grammarAccess.getTrelloGETAccess().getKeySTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - current, - "key", - lv_key_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,49,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getTrelloGETAccess().getThroughUserKeyword_7()); - - // InternalDsl.g:3806:3: ( (lv_useraccount_8_0= RULE_STRING ) ) - // InternalDsl.g:3807:4: (lv_useraccount_8_0= RULE_STRING ) - { - // InternalDsl.g:3807:4: (lv_useraccount_8_0= RULE_STRING ) - // InternalDsl.g:3808:5: lv_useraccount_8_0= RULE_STRING - { - lv_useraccount_8_0=(Token)match(input,RULE_STRING,FOLLOW_49); - - newLeafNode(lv_useraccount_8_0, grammarAccess.getTrelloGETAccess().getUseraccountSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - current, - "useraccount", - lv_useraccount_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,70,FOLLOW_3); - - newLeafNode(otherlv_9, grammarAccess.getTrelloGETAccess().getFromBoardKeyword_9()); - - // InternalDsl.g:3828:3: ( (lv_board_10_0= RULE_STRING ) ) - // InternalDsl.g:3829:4: (lv_board_10_0= RULE_STRING ) - { - // InternalDsl.g:3829:4: (lv_board_10_0= RULE_STRING ) - // InternalDsl.g:3830:5: lv_board_10_0= RULE_STRING - { - lv_board_10_0=(Token)match(input,RULE_STRING,FOLLOW_50); - - newLeafNode(lv_board_10_0, grammarAccess.getTrelloGETAccess().getBoardSTRINGTerminalRuleCall_10_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - current, - "board", - lv_board_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_11=(Token)match(input,71,FOLLOW_3); - - newLeafNode(otherlv_11, grammarAccess.getTrelloGETAccess().getToKeyword_11()); - - // InternalDsl.g:3850:3: ( (lv_target_12_0= RULE_STRING ) ) - // InternalDsl.g:3851:4: (lv_target_12_0= RULE_STRING ) - { - // InternalDsl.g:3851:4: (lv_target_12_0= RULE_STRING ) - // InternalDsl.g:3852:5: lv_target_12_0= RULE_STRING - { - lv_target_12_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_target_12_0, grammarAccess.getTrelloGETAccess().getTargetSTRINGTerminalRuleCall_12_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloGETRule()); - } - setWithLastConsumed( - current, - "target", - lv_target_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_13=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_13, grammarAccess.getTrelloGETAccess().getUsingKeyword_13()); - - otherlv_14=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_14, grammarAccess.getTrelloGETAccess().getLeftCurlyBracketKeyword_14()); - - // InternalDsl.g:3876:3: ( (lv_value_15_0= ruleSelectStatement ) ) - // InternalDsl.g:3877:4: (lv_value_15_0= ruleSelectStatement ) - { - // InternalDsl.g:3877:4: (lv_value_15_0= ruleSelectStatement ) - // InternalDsl.g:3878:5: lv_value_15_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getTrelloGETAccess().getValueSelectStatementParserRuleCall_15_0()); - - pushFollow(FOLLOW_8); - lv_value_15_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getTrelloGETRule()); - } - set( - current, - "value", - lv_value_15_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_16=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_16, grammarAccess.getTrelloGETAccess().getRightCurlyBracketKeyword_16()); - - otherlv_17=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_17, grammarAccess.getTrelloGETAccess().getOnConditionKeyword_17()); - - // InternalDsl.g:3903:3: ( (lv_condition_18_0= ruleExpression ) ) - // InternalDsl.g:3904:4: (lv_condition_18_0= ruleExpression ) - { - // InternalDsl.g:3904:4: (lv_condition_18_0= ruleExpression ) - // InternalDsl.g:3905:5: lv_condition_18_0= ruleExpression - { - - newCompositeNode(grammarAccess.getTrelloGETAccess().getConditionExpressionParserRuleCall_18_0()); - - pushFollow(FOLLOW_2); - lv_condition_18_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getTrelloGETRule()); - } - set( - current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleTrelloGET" - - - // $ANTLR start "entryRuleTrelloPUT" - // InternalDsl.g:3926:1: entryRuleTrelloPUT returns [EObject current=null] : iv_ruleTrelloPUT= ruleTrelloPUT EOF ; - public final EObject entryRuleTrelloPUT() throws RecognitionException { - EObject current = null; - - EObject iv_ruleTrelloPUT = null; - - - try { - // InternalDsl.g:3926:50: (iv_ruleTrelloPUT= ruleTrelloPUT EOF ) - // InternalDsl.g:3927:2: iv_ruleTrelloPUT= ruleTrelloPUT EOF - { - newCompositeNode(grammarAccess.getTrelloPUTRule()); - pushFollow(FOLLOW_1); - iv_ruleTrelloPUT=ruleTrelloPUT(); - - state._fsp--; - - current =iv_ruleTrelloPUT; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleTrelloPUT" - - - // $ANTLR start "ruleTrelloPUT" - // InternalDsl.g:3933:1: ruleTrelloPUT returns [EObject current=null] : (otherlv_0= 'trelloput' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_key_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_useraccount_8_0= RULE_STRING ) ) otherlv_9= 'for-list' ( (lv_list_10_0= RULE_STRING ) ) otherlv_11= 'from-source' ( (lv_source_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) ; - public final EObject ruleTrelloPUT() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_authtoken_4_0=null; - Token otherlv_5=null; - Token lv_key_6_0=null; - Token otherlv_7=null; - Token lv_useraccount_8_0=null; - Token otherlv_9=null; - Token lv_list_10_0=null; - Token otherlv_11=null; - Token lv_source_12_0=null; - Token otherlv_13=null; - Token otherlv_14=null; - Token otherlv_16=null; - Token otherlv_17=null; - AntlrDatatypeRuleToken lv_value_15_0 = null; - - EObject lv_condition_18_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:3939:2: ( (otherlv_0= 'trelloput' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_key_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_useraccount_8_0= RULE_STRING ) ) otherlv_9= 'for-list' ( (lv_list_10_0= RULE_STRING ) ) otherlv_11= 'from-source' ( (lv_source_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) ) - // InternalDsl.g:3940:2: (otherlv_0= 'trelloput' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_key_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_useraccount_8_0= RULE_STRING ) ) otherlv_9= 'for-list' ( (lv_list_10_0= RULE_STRING ) ) otherlv_11= 'from-source' ( (lv_source_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) - { - // InternalDsl.g:3940:2: (otherlv_0= 'trelloput' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_key_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_useraccount_8_0= RULE_STRING ) ) otherlv_9= 'for-list' ( (lv_list_10_0= RULE_STRING ) ) otherlv_11= 'from-source' ( (lv_source_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) ) - // InternalDsl.g:3941:3: otherlv_0= 'trelloput' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'secured-by' ( (lv_authtoken_4_0= RULE_STRING ) ) otherlv_5= 'with-key' ( (lv_key_6_0= RULE_STRING ) ) otherlv_7= 'through-user' ( (lv_useraccount_8_0= RULE_STRING ) ) otherlv_9= 'for-list' ( (lv_list_10_0= RULE_STRING ) ) otherlv_11= 'from-source' ( (lv_source_12_0= RULE_STRING ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,72,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getTrelloPUTAccess().getTrelloputKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getTrelloPUTAccess().getAsKeyword_1()); - - // InternalDsl.g:3949:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:3950:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:3950:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:3951:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_27); - - newLeafNode(lv_name_2_0, grammarAccess.getTrelloPUTAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,37,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getTrelloPUTAccess().getSecuredByKeyword_3()); - - // InternalDsl.g:3971:3: ( (lv_authtoken_4_0= RULE_STRING ) ) - // InternalDsl.g:3972:4: (lv_authtoken_4_0= RULE_STRING ) - { - // InternalDsl.g:3972:4: (lv_authtoken_4_0= RULE_STRING ) - // InternalDsl.g:3973:5: lv_authtoken_4_0= RULE_STRING - { - lv_authtoken_4_0=(Token)match(input,RULE_STRING,FOLLOW_29); - - newLeafNode(lv_authtoken_4_0, grammarAccess.getTrelloPUTAccess().getAuthtokenSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - current, - "authtoken", - lv_authtoken_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,41,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getTrelloPUTAccess().getWithKeyKeyword_5()); - - // InternalDsl.g:3993:3: ( (lv_key_6_0= RULE_STRING ) ) - // InternalDsl.g:3994:4: (lv_key_6_0= RULE_STRING ) - { - // InternalDsl.g:3994:4: (lv_key_6_0= RULE_STRING ) - // InternalDsl.g:3995:5: lv_key_6_0= RULE_STRING - { - lv_key_6_0=(Token)match(input,RULE_STRING,FOLLOW_33); - - newLeafNode(lv_key_6_0, grammarAccess.getTrelloPUTAccess().getKeySTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - current, - "key", - lv_key_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,49,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getTrelloPUTAccess().getThroughUserKeyword_7()); - - // InternalDsl.g:4015:3: ( (lv_useraccount_8_0= RULE_STRING ) ) - // InternalDsl.g:4016:4: (lv_useraccount_8_0= RULE_STRING ) - { - // InternalDsl.g:4016:4: (lv_useraccount_8_0= RULE_STRING ) - // InternalDsl.g:4017:5: lv_useraccount_8_0= RULE_STRING - { - lv_useraccount_8_0=(Token)match(input,RULE_STRING,FOLLOW_51); - - newLeafNode(lv_useraccount_8_0, grammarAccess.getTrelloPUTAccess().getUseraccountSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - current, - "useraccount", - lv_useraccount_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,73,FOLLOW_3); - - newLeafNode(otherlv_9, grammarAccess.getTrelloPUTAccess().getForListKeyword_9()); - - // InternalDsl.g:4037:3: ( (lv_list_10_0= RULE_STRING ) ) - // InternalDsl.g:4038:4: (lv_list_10_0= RULE_STRING ) - { - // InternalDsl.g:4038:4: (lv_list_10_0= RULE_STRING ) - // InternalDsl.g:4039:5: lv_list_10_0= RULE_STRING - { - lv_list_10_0=(Token)match(input,RULE_STRING,FOLLOW_23); - - newLeafNode(lv_list_10_0, grammarAccess.getTrelloPUTAccess().getListSTRINGTerminalRuleCall_10_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - current, - "list", - lv_list_10_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_11=(Token)match(input,31,FOLLOW_3); - - newLeafNode(otherlv_11, grammarAccess.getTrelloPUTAccess().getFromSourceKeyword_11()); - - // InternalDsl.g:4059:3: ( (lv_source_12_0= RULE_STRING ) ) - // InternalDsl.g:4060:4: (lv_source_12_0= RULE_STRING ) - { - // InternalDsl.g:4060:4: (lv_source_12_0= RULE_STRING ) - // InternalDsl.g:4061:5: lv_source_12_0= RULE_STRING - { - lv_source_12_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_source_12_0, grammarAccess.getTrelloPUTAccess().getSourceSTRINGTerminalRuleCall_12_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTrelloPUTRule()); - } - setWithLastConsumed( - current, - "source", - lv_source_12_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_13=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_13, grammarAccess.getTrelloPUTAccess().getUsingKeyword_13()); - - otherlv_14=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_14, grammarAccess.getTrelloPUTAccess().getLeftCurlyBracketKeyword_14()); - - // InternalDsl.g:4085:3: ( (lv_value_15_0= ruleSelectStatement ) ) - // InternalDsl.g:4086:4: (lv_value_15_0= ruleSelectStatement ) - { - // InternalDsl.g:4086:4: (lv_value_15_0= ruleSelectStatement ) - // InternalDsl.g:4087:5: lv_value_15_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getTrelloPUTAccess().getValueSelectStatementParserRuleCall_15_0()); - - pushFollow(FOLLOW_8); - lv_value_15_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getTrelloPUTRule()); - } - set( - current, - "value", - lv_value_15_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_16=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_16, grammarAccess.getTrelloPUTAccess().getRightCurlyBracketKeyword_16()); - - otherlv_17=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_17, grammarAccess.getTrelloPUTAccess().getOnConditionKeyword_17()); - - // InternalDsl.g:4112:3: ( (lv_condition_18_0= ruleExpression ) ) - // InternalDsl.g:4113:4: (lv_condition_18_0= ruleExpression ) - { - // InternalDsl.g:4113:4: (lv_condition_18_0= ruleExpression ) - // InternalDsl.g:4114:5: lv_condition_18_0= ruleExpression - { - - newCompositeNode(grammarAccess.getTrelloPUTAccess().getConditionExpressionParserRuleCall_18_0()); - - pushFollow(FOLLOW_2); - lv_condition_18_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getTrelloPUTRule()); - } - set( - current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleTrelloPUT" - - - // $ANTLR start "entryRuleFetch" - // InternalDsl.g:4135:1: entryRuleFetch returns [EObject current=null] : iv_ruleFetch= ruleFetch EOF ; - public final EObject entryRuleFetch() throws RecognitionException { - EObject current = null; - - EObject iv_ruleFetch = null; - - - try { - // InternalDsl.g:4135:46: (iv_ruleFetch= ruleFetch EOF ) - // InternalDsl.g:4136:2: iv_ruleFetch= ruleFetch EOF - { - newCompositeNode(grammarAccess.getFetchRule()); - pushFollow(FOLLOW_1); - iv_ruleFetch=ruleFetch(); - - state._fsp--; - - current =iv_ruleFetch; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleFetch" - - - // $ANTLR start "ruleFetch" - // InternalDsl.g:4142:1: ruleFetch returns [EObject current=null] : (otherlv_0= 'assign' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'source' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_value_7_0= RULE_STRING ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) ; - public final EObject ruleFetch() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_source_4_0=null; - Token otherlv_5=null; - Token otherlv_6=null; - Token lv_value_7_0=null; - Token otherlv_8=null; - Token otherlv_9=null; - EObject lv_condition_10_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:4148:2: ( (otherlv_0= 'assign' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'source' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_value_7_0= RULE_STRING ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) ) - // InternalDsl.g:4149:2: (otherlv_0= 'assign' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'source' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_value_7_0= RULE_STRING ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) - { - // InternalDsl.g:4149:2: (otherlv_0= 'assign' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'source' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_value_7_0= RULE_STRING ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) - // InternalDsl.g:4150:3: otherlv_0= 'assign' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'source' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_value_7_0= RULE_STRING ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,74,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getFetchAccess().getAssignKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getFetchAccess().getAsKeyword_1()); - - // InternalDsl.g:4158:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:4159:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:4159:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:4160:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_52); - - newLeafNode(lv_name_2_0, grammarAccess.getFetchAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFetchRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,75,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getFetchAccess().getSourceKeyword_3()); - - // InternalDsl.g:4180:3: ( (lv_source_4_0= RULE_STRING ) ) - // InternalDsl.g:4181:4: (lv_source_4_0= RULE_STRING ) - { - // InternalDsl.g:4181:4: (lv_source_4_0= RULE_STRING ) - // InternalDsl.g:4182:5: lv_source_4_0= RULE_STRING - { - lv_source_4_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_source_4_0, grammarAccess.getFetchAccess().getSourceSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFetchRule()); - } - setWithLastConsumed( - current, - "source", - lv_source_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_5, grammarAccess.getFetchAccess().getUsingKeyword_5()); - - otherlv_6=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_6, grammarAccess.getFetchAccess().getLeftCurlyBracketKeyword_6()); - - // InternalDsl.g:4206:3: ( (lv_value_7_0= RULE_STRING ) ) - // InternalDsl.g:4207:4: (lv_value_7_0= RULE_STRING ) - { - // InternalDsl.g:4207:4: (lv_value_7_0= RULE_STRING ) - // InternalDsl.g:4208:5: lv_value_7_0= RULE_STRING - { - lv_value_7_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_7_0, grammarAccess.getFetchAccess().getValueSTRINGTerminalRuleCall_7_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFetchRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_7_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_8=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_8, grammarAccess.getFetchAccess().getRightCurlyBracketKeyword_8()); - - otherlv_9=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_9, grammarAccess.getFetchAccess().getOnConditionKeyword_9()); - - // InternalDsl.g:4232:3: ( (lv_condition_10_0= ruleExpression ) ) - // InternalDsl.g:4233:4: (lv_condition_10_0= ruleExpression ) - { - // InternalDsl.g:4233:4: (lv_condition_10_0= ruleExpression ) - // InternalDsl.g:4234:5: lv_condition_10_0= ruleExpression - { - - newCompositeNode(grammarAccess.getFetchAccess().getConditionExpressionParserRuleCall_10_0()); - - pushFollow(FOLLOW_2); - lv_condition_10_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getFetchRule()); - } - set( - current, - "condition", - lv_condition_10_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleFetch" - - - // $ANTLR start "entryRuleCallprocess" - // InternalDsl.g:4255:1: entryRuleCallprocess returns [EObject current=null] : iv_ruleCallprocess= ruleCallprocess EOF ; - public final EObject entryRuleCallprocess() throws RecognitionException { - EObject current = null; - - EObject iv_ruleCallprocess = null; - - - try { - // InternalDsl.g:4255:52: (iv_ruleCallprocess= ruleCallprocess EOF ) - // InternalDsl.g:4256:2: iv_ruleCallprocess= ruleCallprocess EOF - { - newCompositeNode(grammarAccess.getCallprocessRule()); - pushFollow(FOLLOW_1); - iv_ruleCallprocess=ruleCallprocess(); - - state._fsp--; - - current =iv_ruleCallprocess; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleCallprocess" - - - // $ANTLR start "ruleCallprocess" - // InternalDsl.g:4262:1: ruleCallprocess returns [EObject current=null] : (otherlv_0= 'callprocess' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'using' ( (lv_datasource_8_0= RULE_STRING ) ) otherlv_9= 'for-every' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) ; - public final EObject ruleCallprocess() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_target_4_0=null; - Token otherlv_5=null; - Token lv_source_6_0=null; - Token otherlv_7=null; - Token lv_datasource_8_0=null; - Token otherlv_9=null; - Token otherlv_10=null; - Token otherlv_12=null; - Token otherlv_13=null; - AntlrDatatypeRuleToken lv_value_11_0 = null; - - EObject lv_condition_14_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:4268:2: ( (otherlv_0= 'callprocess' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'using' ( (lv_datasource_8_0= RULE_STRING ) ) otherlv_9= 'for-every' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) ) - // InternalDsl.g:4269:2: (otherlv_0= 'callprocess' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'using' ( (lv_datasource_8_0= RULE_STRING ) ) otherlv_9= 'for-every' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) - { - // InternalDsl.g:4269:2: (otherlv_0= 'callprocess' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'using' ( (lv_datasource_8_0= RULE_STRING ) ) otherlv_9= 'for-every' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) - // InternalDsl.g:4270:3: otherlv_0= 'callprocess' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'using' ( (lv_datasource_8_0= RULE_STRING ) ) otherlv_9= 'for-every' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,76,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getCallprocessAccess().getCallprocessKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getCallprocessAccess().getAsKeyword_1()); - - // InternalDsl.g:4278:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:4279:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:4279:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:4280:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_12); - - newLeafNode(lv_name_2_0, grammarAccess.getCallprocessAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCallprocessRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,19,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getCallprocessAccess().getWithTargetKeyword_3()); - - // InternalDsl.g:4300:3: ( (lv_target_4_0= RULE_STRING ) ) - // InternalDsl.g:4301:4: (lv_target_4_0= RULE_STRING ) - { - // InternalDsl.g:4301:4: (lv_target_4_0= RULE_STRING ) - // InternalDsl.g:4302:5: lv_target_4_0= RULE_STRING - { - lv_target_4_0=(Token)match(input,RULE_STRING,FOLLOW_13); - - newLeafNode(lv_target_4_0, grammarAccess.getCallprocessAccess().getTargetSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCallprocessRule()); - } - setWithLastConsumed( - current, - "target", - lv_target_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,20,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getCallprocessAccess().getFromFileKeyword_5()); - - // InternalDsl.g:4322:3: ( (lv_source_6_0= RULE_STRING ) ) - // InternalDsl.g:4323:4: (lv_source_6_0= RULE_STRING ) - { - // InternalDsl.g:4323:4: (lv_source_6_0= RULE_STRING ) - // InternalDsl.g:4324:5: lv_source_6_0= RULE_STRING - { - lv_source_6_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_source_6_0, grammarAccess.getCallprocessAccess().getSourceSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCallprocessRule()); - } - setWithLastConsumed( - current, - "source", - lv_source_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,24,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getCallprocessAccess().getUsingKeyword_7()); - - // InternalDsl.g:4344:3: ( (lv_datasource_8_0= RULE_STRING ) ) - // InternalDsl.g:4345:4: (lv_datasource_8_0= RULE_STRING ) - { - // InternalDsl.g:4345:4: (lv_datasource_8_0= RULE_STRING ) - // InternalDsl.g:4346:5: lv_datasource_8_0= RULE_STRING - { - lv_datasource_8_0=(Token)match(input,RULE_STRING,FOLLOW_53); - - newLeafNode(lv_datasource_8_0, grammarAccess.getCallprocessAccess().getDatasourceSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCallprocessRule()); - } - setWithLastConsumed( - current, - "datasource", - lv_datasource_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,77,FOLLOW_4); - - newLeafNode(otherlv_9, grammarAccess.getCallprocessAccess().getForEveryKeyword_9()); - - otherlv_10=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_10, grammarAccess.getCallprocessAccess().getLeftCurlyBracketKeyword_10()); - - // InternalDsl.g:4370:3: ( (lv_value_11_0= ruleSelectStatement ) ) - // InternalDsl.g:4371:4: (lv_value_11_0= ruleSelectStatement ) - { - // InternalDsl.g:4371:4: (lv_value_11_0= ruleSelectStatement ) - // InternalDsl.g:4372:5: lv_value_11_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getCallprocessAccess().getValueSelectStatementParserRuleCall_11_0()); - - pushFollow(FOLLOW_8); - lv_value_11_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getCallprocessRule()); - } - set( - current, - "value", - lv_value_11_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_12=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_12, grammarAccess.getCallprocessAccess().getRightCurlyBracketKeyword_12()); - - otherlv_13=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_13, grammarAccess.getCallprocessAccess().getOnConditionKeyword_13()); - - // InternalDsl.g:4397:3: ( (lv_condition_14_0= ruleExpression ) ) - // InternalDsl.g:4398:4: (lv_condition_14_0= ruleExpression ) - { - // InternalDsl.g:4398:4: (lv_condition_14_0= ruleExpression ) - // InternalDsl.g:4399:5: lv_condition_14_0= ruleExpression - { - - newCompositeNode(grammarAccess.getCallprocessAccess().getConditionExpressionParserRuleCall_14_0()); - - pushFollow(FOLLOW_2); - lv_condition_14_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getCallprocessRule()); - } - set( - current, - "condition", - lv_condition_14_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleCallprocess" - - - // $ANTLR start "entryRuleForkprocess" - // InternalDsl.g:4420:1: entryRuleForkprocess returns [EObject current=null] : iv_ruleForkprocess= ruleForkprocess EOF ; - public final EObject entryRuleForkprocess() throws RecognitionException { - EObject current = null; - - EObject iv_ruleForkprocess = null; - - - try { - // InternalDsl.g:4420:52: (iv_ruleForkprocess= ruleForkprocess EOF ) - // InternalDsl.g:4421:2: iv_ruleForkprocess= ruleForkprocess EOF - { - newCompositeNode(grammarAccess.getForkprocessRule()); - pushFollow(FOLLOW_1); - iv_ruleForkprocess=ruleForkprocess(); - - state._fsp--; - - current =iv_ruleForkprocess; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleForkprocess" - - - // $ANTLR start "ruleForkprocess" - // InternalDsl.g:4427:1: ruleForkprocess returns [EObject current=null] : (otherlv_0= 'forkprocess' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'using' ( (lv_datasource_8_0= RULE_STRING ) ) otherlv_9= 'for-every' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'watermark' ( (lv_forkBatchSize_14_0= RULE_STRING ) ) otherlv_15= 'on-condition' ( (lv_condition_16_0= ruleExpression ) ) ) ; - public final EObject ruleForkprocess() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_target_4_0=null; - Token otherlv_5=null; - Token lv_source_6_0=null; - Token otherlv_7=null; - Token lv_datasource_8_0=null; - Token otherlv_9=null; - Token otherlv_10=null; - Token otherlv_12=null; - Token otherlv_13=null; - Token lv_forkBatchSize_14_0=null; - Token otherlv_15=null; - AntlrDatatypeRuleToken lv_value_11_0 = null; - - EObject lv_condition_16_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:4433:2: ( (otherlv_0= 'forkprocess' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'using' ( (lv_datasource_8_0= RULE_STRING ) ) otherlv_9= 'for-every' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'watermark' ( (lv_forkBatchSize_14_0= RULE_STRING ) ) otherlv_15= 'on-condition' ( (lv_condition_16_0= ruleExpression ) ) ) ) - // InternalDsl.g:4434:2: (otherlv_0= 'forkprocess' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'using' ( (lv_datasource_8_0= RULE_STRING ) ) otherlv_9= 'for-every' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'watermark' ( (lv_forkBatchSize_14_0= RULE_STRING ) ) otherlv_15= 'on-condition' ( (lv_condition_16_0= ruleExpression ) ) ) - { - // InternalDsl.g:4434:2: (otherlv_0= 'forkprocess' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'using' ( (lv_datasource_8_0= RULE_STRING ) ) otherlv_9= 'for-every' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'watermark' ( (lv_forkBatchSize_14_0= RULE_STRING ) ) otherlv_15= 'on-condition' ( (lv_condition_16_0= ruleExpression ) ) ) - // InternalDsl.g:4435:3: otherlv_0= 'forkprocess' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-target' ( (lv_target_4_0= RULE_STRING ) ) otherlv_5= 'from-file' ( (lv_source_6_0= RULE_STRING ) ) otherlv_7= 'using' ( (lv_datasource_8_0= RULE_STRING ) ) otherlv_9= 'for-every' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'watermark' ( (lv_forkBatchSize_14_0= RULE_STRING ) ) otherlv_15= 'on-condition' ( (lv_condition_16_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,78,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getForkprocessAccess().getForkprocessKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getForkprocessAccess().getAsKeyword_1()); - - // InternalDsl.g:4443:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:4444:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:4444:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:4445:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_12); - - newLeafNode(lv_name_2_0, grammarAccess.getForkprocessAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getForkprocessRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,19,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getForkprocessAccess().getWithTargetKeyword_3()); - - // InternalDsl.g:4465:3: ( (lv_target_4_0= RULE_STRING ) ) - // InternalDsl.g:4466:4: (lv_target_4_0= RULE_STRING ) - { - // InternalDsl.g:4466:4: (lv_target_4_0= RULE_STRING ) - // InternalDsl.g:4467:5: lv_target_4_0= RULE_STRING - { - lv_target_4_0=(Token)match(input,RULE_STRING,FOLLOW_13); - - newLeafNode(lv_target_4_0, grammarAccess.getForkprocessAccess().getTargetSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getForkprocessRule()); - } - setWithLastConsumed( - current, - "target", - lv_target_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,20,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getForkprocessAccess().getFromFileKeyword_5()); - - // InternalDsl.g:4487:3: ( (lv_source_6_0= RULE_STRING ) ) - // InternalDsl.g:4488:4: (lv_source_6_0= RULE_STRING ) - { - // InternalDsl.g:4488:4: (lv_source_6_0= RULE_STRING ) - // InternalDsl.g:4489:5: lv_source_6_0= RULE_STRING - { - lv_source_6_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_source_6_0, grammarAccess.getForkprocessAccess().getSourceSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getForkprocessRule()); - } - setWithLastConsumed( - current, - "source", - lv_source_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,24,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getForkprocessAccess().getUsingKeyword_7()); - - // InternalDsl.g:4509:3: ( (lv_datasource_8_0= RULE_STRING ) ) - // InternalDsl.g:4510:4: (lv_datasource_8_0= RULE_STRING ) - { - // InternalDsl.g:4510:4: (lv_datasource_8_0= RULE_STRING ) - // InternalDsl.g:4511:5: lv_datasource_8_0= RULE_STRING - { - lv_datasource_8_0=(Token)match(input,RULE_STRING,FOLLOW_53); - - newLeafNode(lv_datasource_8_0, grammarAccess.getForkprocessAccess().getDatasourceSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getForkprocessRule()); - } - setWithLastConsumed( - current, - "datasource", - lv_datasource_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,77,FOLLOW_4); - - newLeafNode(otherlv_9, grammarAccess.getForkprocessAccess().getForEveryKeyword_9()); - - otherlv_10=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_10, grammarAccess.getForkprocessAccess().getLeftCurlyBracketKeyword_10()); - - // InternalDsl.g:4535:3: ( (lv_value_11_0= ruleSelectStatement ) ) - // InternalDsl.g:4536:4: (lv_value_11_0= ruleSelectStatement ) - { - // InternalDsl.g:4536:4: (lv_value_11_0= ruleSelectStatement ) - // InternalDsl.g:4537:5: lv_value_11_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getForkprocessAccess().getValueSelectStatementParserRuleCall_11_0()); - - pushFollow(FOLLOW_8); - lv_value_11_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getForkprocessRule()); - } - set( - current, - "value", - lv_value_11_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_12=(Token)match(input,13,FOLLOW_54); - - newLeafNode(otherlv_12, grammarAccess.getForkprocessAccess().getRightCurlyBracketKeyword_12()); - - otherlv_13=(Token)match(input,79,FOLLOW_3); - - newLeafNode(otherlv_13, grammarAccess.getForkprocessAccess().getWatermarkKeyword_13()); - - // InternalDsl.g:4562:3: ( (lv_forkBatchSize_14_0= RULE_STRING ) ) - // InternalDsl.g:4563:4: (lv_forkBatchSize_14_0= RULE_STRING ) - { - // InternalDsl.g:4563:4: (lv_forkBatchSize_14_0= RULE_STRING ) - // InternalDsl.g:4564:5: lv_forkBatchSize_14_0= RULE_STRING - { - lv_forkBatchSize_14_0=(Token)match(input,RULE_STRING,FOLLOW_14); - - newLeafNode(lv_forkBatchSize_14_0, grammarAccess.getForkprocessAccess().getForkBatchSizeSTRINGTerminalRuleCall_14_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getForkprocessRule()); - } - setWithLastConsumed( - current, - "forkBatchSize", - lv_forkBatchSize_14_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_15=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_15, grammarAccess.getForkprocessAccess().getOnConditionKeyword_15()); - - // InternalDsl.g:4584:3: ( (lv_condition_16_0= ruleExpression ) ) - // InternalDsl.g:4585:4: (lv_condition_16_0= ruleExpression ) - { - // InternalDsl.g:4585:4: (lv_condition_16_0= ruleExpression ) - // InternalDsl.g:4586:5: lv_condition_16_0= ruleExpression - { - - newCompositeNode(grammarAccess.getForkprocessAccess().getConditionExpressionParserRuleCall_16_0()); - - pushFollow(FOLLOW_2); - lv_condition_16_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getForkprocessRule()); - } - set( - current, - "condition", - lv_condition_16_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleForkprocess" - - - // $ANTLR start "entryRuleUpdatedaudit" - // InternalDsl.g:4607:1: entryRuleUpdatedaudit returns [EObject current=null] : iv_ruleUpdatedaudit= ruleUpdatedaudit EOF ; - public final EObject entryRuleUpdatedaudit() throws RecognitionException { - EObject current = null; - - EObject iv_ruleUpdatedaudit = null; - - - try { - // InternalDsl.g:4607:53: (iv_ruleUpdatedaudit= ruleUpdatedaudit EOF ) - // InternalDsl.g:4608:2: iv_ruleUpdatedaudit= ruleUpdatedaudit EOF - { - newCompositeNode(grammarAccess.getUpdatedauditRule()); - pushFollow(FOLLOW_1); - iv_ruleUpdatedaudit=ruleUpdatedaudit(); - - state._fsp--; - - current =iv_ruleUpdatedaudit; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleUpdatedaudit" - - - // $ANTLR start "ruleUpdatedaudit" - // InternalDsl.g:4614:1: ruleUpdatedaudit returns [EObject current=null] : (otherlv_0= 'log' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'logto' ( (lv_logsink_4_0= RULE_STRING ) ) otherlv_5= 'in' ( (lv_datasource_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= ruleSelectStatement ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) ; - public final EObject ruleUpdatedaudit() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_logsink_4_0=null; - Token otherlv_5=null; - Token lv_datasource_6_0=null; - Token otherlv_7=null; - Token otherlv_8=null; - Token otherlv_10=null; - Token otherlv_11=null; - AntlrDatatypeRuleToken lv_value_9_0 = null; - - EObject lv_condition_12_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:4620:2: ( (otherlv_0= 'log' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'logto' ( (lv_logsink_4_0= RULE_STRING ) ) otherlv_5= 'in' ( (lv_datasource_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= ruleSelectStatement ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) ) - // InternalDsl.g:4621:2: (otherlv_0= 'log' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'logto' ( (lv_logsink_4_0= RULE_STRING ) ) otherlv_5= 'in' ( (lv_datasource_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= ruleSelectStatement ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) - { - // InternalDsl.g:4621:2: (otherlv_0= 'log' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'logto' ( (lv_logsink_4_0= RULE_STRING ) ) otherlv_5= 'in' ( (lv_datasource_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= ruleSelectStatement ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) - // InternalDsl.g:4622:3: otherlv_0= 'log' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'logto' ( (lv_logsink_4_0= RULE_STRING ) ) otherlv_5= 'in' ( (lv_datasource_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= ruleSelectStatement ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,80,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getUpdatedauditAccess().getLogKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getUpdatedauditAccess().getAsKeyword_1()); - - // InternalDsl.g:4630:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:4631:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:4631:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:4632:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_55); - - newLeafNode(lv_name_2_0, grammarAccess.getUpdatedauditAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getUpdatedauditRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,81,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getUpdatedauditAccess().getLogtoKeyword_3()); - - // InternalDsl.g:4652:3: ( (lv_logsink_4_0= RULE_STRING ) ) - // InternalDsl.g:4653:4: (lv_logsink_4_0= RULE_STRING ) - { - // InternalDsl.g:4653:4: (lv_logsink_4_0= RULE_STRING ) - // InternalDsl.g:4654:5: lv_logsink_4_0= RULE_STRING - { - lv_logsink_4_0=(Token)match(input,RULE_STRING,FOLLOW_56); - - newLeafNode(lv_logsink_4_0, grammarAccess.getUpdatedauditAccess().getLogsinkSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getUpdatedauditRule()); - } - setWithLastConsumed( - current, - "logsink", - lv_logsink_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,82,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getUpdatedauditAccess().getInKeyword_5()); - - // InternalDsl.g:4674:3: ( (lv_datasource_6_0= RULE_STRING ) ) - // InternalDsl.g:4675:4: (lv_datasource_6_0= RULE_STRING ) - { - // InternalDsl.g:4675:4: (lv_datasource_6_0= RULE_STRING ) - // InternalDsl.g:4676:5: lv_datasource_6_0= RULE_STRING - { - lv_datasource_6_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_datasource_6_0, grammarAccess.getUpdatedauditAccess().getDatasourceSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getUpdatedauditRule()); - } - setWithLastConsumed( - current, - "datasource", - lv_datasource_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_7, grammarAccess.getUpdatedauditAccess().getUsingKeyword_7()); - - otherlv_8=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_8, grammarAccess.getUpdatedauditAccess().getLeftCurlyBracketKeyword_8()); - - // InternalDsl.g:4700:3: ( (lv_value_9_0= ruleSelectStatement ) ) - // InternalDsl.g:4701:4: (lv_value_9_0= ruleSelectStatement ) - { - // InternalDsl.g:4701:4: (lv_value_9_0= ruleSelectStatement ) - // InternalDsl.g:4702:5: lv_value_9_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getUpdatedauditAccess().getValueSelectStatementParserRuleCall_9_0()); - - pushFollow(FOLLOW_8); - lv_value_9_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getUpdatedauditRule()); - } - set( - current, - "value", - lv_value_9_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_10=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_10, grammarAccess.getUpdatedauditAccess().getRightCurlyBracketKeyword_10()); - - otherlv_11=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_11, grammarAccess.getUpdatedauditAccess().getOnConditionKeyword_11()); - - // InternalDsl.g:4727:3: ( (lv_condition_12_0= ruleExpression ) ) - // InternalDsl.g:4728:4: (lv_condition_12_0= ruleExpression ) - { - // InternalDsl.g:4728:4: (lv_condition_12_0= ruleExpression ) - // InternalDsl.g:4729:5: lv_condition_12_0= ruleExpression - { - - newCompositeNode(grammarAccess.getUpdatedauditAccess().getConditionExpressionParserRuleCall_12_0()); - - pushFollow(FOLLOW_2); - lv_condition_12_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getUpdatedauditRule()); - } - set( - current, - "condition", - lv_condition_12_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleUpdatedaudit" - - - // $ANTLR start "entryRuleClickSendSms" - // InternalDsl.g:4750:1: entryRuleClickSendSms returns [EObject current=null] : iv_ruleClickSendSms= ruleClickSendSms EOF ; - public final EObject entryRuleClickSendSms() throws RecognitionException { - EObject current = null; - - EObject iv_ruleClickSendSms = null; - - - try { - // InternalDsl.g:4750:53: (iv_ruleClickSendSms= ruleClickSendSms EOF ) - // InternalDsl.g:4751:2: iv_ruleClickSendSms= ruleClickSendSms EOF - { - newCompositeNode(grammarAccess.getClickSendSmsRule()); - pushFollow(FOLLOW_1); - iv_ruleClickSendSms=ruleClickSendSms(); - - state._fsp--; - - current =iv_ruleClickSendSms; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleClickSendSms" - - - // $ANTLR start "ruleClickSendSms" - // InternalDsl.g:4757:1: ruleClickSendSms returns [EObject current=null] : (otherlv_0= 'c2sms' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-user' ( (lv_userid_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_securityKey_6_0= RULE_STRING ) ) otherlv_7= 'from-source' ( (lv_target_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= RULE_STRING ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) ; - public final EObject ruleClickSendSms() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_userid_4_0=null; - Token otherlv_5=null; - Token lv_securityKey_6_0=null; - Token otherlv_7=null; - Token lv_target_8_0=null; - Token otherlv_9=null; - Token otherlv_10=null; - Token lv_value_11_0=null; - Token otherlv_12=null; - Token otherlv_13=null; - EObject lv_condition_14_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:4763:2: ( (otherlv_0= 'c2sms' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-user' ( (lv_userid_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_securityKey_6_0= RULE_STRING ) ) otherlv_7= 'from-source' ( (lv_target_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= RULE_STRING ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) ) - // InternalDsl.g:4764:2: (otherlv_0= 'c2sms' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-user' ( (lv_userid_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_securityKey_6_0= RULE_STRING ) ) otherlv_7= 'from-source' ( (lv_target_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= RULE_STRING ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) - { - // InternalDsl.g:4764:2: (otherlv_0= 'c2sms' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-user' ( (lv_userid_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_securityKey_6_0= RULE_STRING ) ) otherlv_7= 'from-source' ( (lv_target_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= RULE_STRING ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) - // InternalDsl.g:4765:3: otherlv_0= 'c2sms' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'with-user' ( (lv_userid_4_0= RULE_STRING ) ) otherlv_5= 'secured-by' ( (lv_securityKey_6_0= RULE_STRING ) ) otherlv_7= 'from-source' ( (lv_target_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= RULE_STRING ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,83,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getClickSendSmsAccess().getC2smsKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getClickSendSmsAccess().getAsKeyword_1()); - - // InternalDsl.g:4773:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:4774:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:4774:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:4775:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_57); - - newLeafNode(lv_name_2_0, grammarAccess.getClickSendSmsAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getClickSendSmsRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,84,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getClickSendSmsAccess().getWithUserKeyword_3()); - - // InternalDsl.g:4795:3: ( (lv_userid_4_0= RULE_STRING ) ) - // InternalDsl.g:4796:4: (lv_userid_4_0= RULE_STRING ) - { - // InternalDsl.g:4796:4: (lv_userid_4_0= RULE_STRING ) - // InternalDsl.g:4797:5: lv_userid_4_0= RULE_STRING - { - lv_userid_4_0=(Token)match(input,RULE_STRING,FOLLOW_27); - - newLeafNode(lv_userid_4_0, grammarAccess.getClickSendSmsAccess().getUseridSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getClickSendSmsRule()); - } - setWithLastConsumed( - current, - "userid", - lv_userid_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,37,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getClickSendSmsAccess().getSecuredByKeyword_5()); - - // InternalDsl.g:4817:3: ( (lv_securityKey_6_0= RULE_STRING ) ) - // InternalDsl.g:4818:4: (lv_securityKey_6_0= RULE_STRING ) - { - // InternalDsl.g:4818:4: (lv_securityKey_6_0= RULE_STRING ) - // InternalDsl.g:4819:5: lv_securityKey_6_0= RULE_STRING - { - lv_securityKey_6_0=(Token)match(input,RULE_STRING,FOLLOW_23); - - newLeafNode(lv_securityKey_6_0, grammarAccess.getClickSendSmsAccess().getSecurityKeySTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getClickSendSmsRule()); - } - setWithLastConsumed( - current, - "securityKey", - lv_securityKey_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,31,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getClickSendSmsAccess().getFromSourceKeyword_7()); - - // InternalDsl.g:4839:3: ( (lv_target_8_0= RULE_STRING ) ) - // InternalDsl.g:4840:4: (lv_target_8_0= RULE_STRING ) - { - // InternalDsl.g:4840:4: (lv_target_8_0= RULE_STRING ) - // InternalDsl.g:4841:5: lv_target_8_0= RULE_STRING - { - lv_target_8_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_target_8_0, grammarAccess.getClickSendSmsAccess().getTargetSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getClickSendSmsRule()); - } - setWithLastConsumed( - current, - "target", - lv_target_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_9, grammarAccess.getClickSendSmsAccess().getUsingKeyword_9()); - - otherlv_10=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_10, grammarAccess.getClickSendSmsAccess().getLeftCurlyBracketKeyword_10()); - - // InternalDsl.g:4865:3: ( (lv_value_11_0= RULE_STRING ) ) - // InternalDsl.g:4866:4: (lv_value_11_0= RULE_STRING ) - { - // InternalDsl.g:4866:4: (lv_value_11_0= RULE_STRING ) - // InternalDsl.g:4867:5: lv_value_11_0= RULE_STRING - { - lv_value_11_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_11_0, grammarAccess.getClickSendSmsAccess().getValueSTRINGTerminalRuleCall_11_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getClickSendSmsRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_11_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_12=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_12, grammarAccess.getClickSendSmsAccess().getRightCurlyBracketKeyword_12()); - - otherlv_13=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_13, grammarAccess.getClickSendSmsAccess().getOnConditionKeyword_13()); - - // InternalDsl.g:4891:3: ( (lv_condition_14_0= ruleExpression ) ) - // InternalDsl.g:4892:4: (lv_condition_14_0= ruleExpression ) - { - // InternalDsl.g:4892:4: (lv_condition_14_0= ruleExpression ) - // InternalDsl.g:4893:5: lv_condition_14_0= ruleExpression - { - - newCompositeNode(grammarAccess.getClickSendSmsAccess().getConditionExpressionParserRuleCall_14_0()); - - pushFollow(FOLLOW_2); - lv_condition_14_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getClickSendSmsRule()); - } - set( - current, - "condition", - lv_condition_14_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleClickSendSms" - - - // $ANTLR start "entryRuleSlackPUT" - // InternalDsl.g:4914:1: entryRuleSlackPUT returns [EObject current=null] : iv_ruleSlackPUT= ruleSlackPUT EOF ; - public final EObject entryRuleSlackPUT() throws RecognitionException { - EObject current = null; - - EObject iv_ruleSlackPUT = null; - - - try { - // InternalDsl.g:4914:49: (iv_ruleSlackPUT= ruleSlackPUT EOF ) - // InternalDsl.g:4915:2: iv_ruleSlackPUT= ruleSlackPUT EOF - { - newCompositeNode(grammarAccess.getSlackPUTRule()); - pushFollow(FOLLOW_1); - iv_ruleSlackPUT=ruleSlackPUT(); - - state._fsp--; - - current =iv_ruleSlackPUT; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleSlackPUT" - - - // $ANTLR start "ruleSlackPUT" - // InternalDsl.g:4921:1: ruleSlackPUT returns [EObject current=null] : (otherlv_0= 'slackput' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'to' ( (lv_team_4_0= RULE_STRING ) ) otherlv_5= 'on' ( (lv_channel_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= RULE_STRING ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) ; - public final EObject ruleSlackPUT() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_team_4_0=null; - Token otherlv_5=null; - Token lv_channel_6_0=null; - Token otherlv_7=null; - Token otherlv_8=null; - Token lv_value_9_0=null; - Token otherlv_10=null; - Token otherlv_11=null; - EObject lv_condition_12_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:4927:2: ( (otherlv_0= 'slackput' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'to' ( (lv_team_4_0= RULE_STRING ) ) otherlv_5= 'on' ( (lv_channel_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= RULE_STRING ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) ) - // InternalDsl.g:4928:2: (otherlv_0= 'slackput' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'to' ( (lv_team_4_0= RULE_STRING ) ) otherlv_5= 'on' ( (lv_channel_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= RULE_STRING ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) - { - // InternalDsl.g:4928:2: (otherlv_0= 'slackput' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'to' ( (lv_team_4_0= RULE_STRING ) ) otherlv_5= 'on' ( (lv_channel_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= RULE_STRING ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) ) - // InternalDsl.g:4929:3: otherlv_0= 'slackput' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'to' ( (lv_team_4_0= RULE_STRING ) ) otherlv_5= 'on' ( (lv_channel_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= RULE_STRING ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,85,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getSlackPUTAccess().getSlackputKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getSlackPUTAccess().getAsKeyword_1()); - - // InternalDsl.g:4937:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:4938:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:4938:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:4939:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_50); - - newLeafNode(lv_name_2_0, grammarAccess.getSlackPUTAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSlackPUTRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,71,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getSlackPUTAccess().getToKeyword_3()); - - // InternalDsl.g:4959:3: ( (lv_team_4_0= RULE_STRING ) ) - // InternalDsl.g:4960:4: (lv_team_4_0= RULE_STRING ) - { - // InternalDsl.g:4960:4: (lv_team_4_0= RULE_STRING ) - // InternalDsl.g:4961:5: lv_team_4_0= RULE_STRING - { - lv_team_4_0=(Token)match(input,RULE_STRING,FOLLOW_20); - - newLeafNode(lv_team_4_0, grammarAccess.getSlackPUTAccess().getTeamSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSlackPUTRule()); - } - setWithLastConsumed( - current, - "team", - lv_team_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,28,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getSlackPUTAccess().getOnKeyword_5()); - - // InternalDsl.g:4981:3: ( (lv_channel_6_0= RULE_STRING ) ) - // InternalDsl.g:4982:4: (lv_channel_6_0= RULE_STRING ) - { - // InternalDsl.g:4982:4: (lv_channel_6_0= RULE_STRING ) - // InternalDsl.g:4983:5: lv_channel_6_0= RULE_STRING - { - lv_channel_6_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_channel_6_0, grammarAccess.getSlackPUTAccess().getChannelSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSlackPUTRule()); - } - setWithLastConsumed( - current, - "channel", - lv_channel_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_7, grammarAccess.getSlackPUTAccess().getUsingKeyword_7()); - - otherlv_8=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_8, grammarAccess.getSlackPUTAccess().getLeftCurlyBracketKeyword_8()); - - // InternalDsl.g:5007:3: ( (lv_value_9_0= RULE_STRING ) ) - // InternalDsl.g:5008:4: (lv_value_9_0= RULE_STRING ) - { - // InternalDsl.g:5008:4: (lv_value_9_0= RULE_STRING ) - // InternalDsl.g:5009:5: lv_value_9_0= RULE_STRING - { - lv_value_9_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_9_0, grammarAccess.getSlackPUTAccess().getValueSTRINGTerminalRuleCall_9_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getSlackPUTRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_9_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_10=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_10, grammarAccess.getSlackPUTAccess().getRightCurlyBracketKeyword_10()); - - otherlv_11=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_11, grammarAccess.getSlackPUTAccess().getOnConditionKeyword_11()); - - // InternalDsl.g:5033:3: ( (lv_condition_12_0= ruleExpression ) ) - // InternalDsl.g:5034:4: (lv_condition_12_0= ruleExpression ) - { - // InternalDsl.g:5034:4: (lv_condition_12_0= ruleExpression ) - // InternalDsl.g:5035:5: lv_condition_12_0= ruleExpression - { - - newCompositeNode(grammarAccess.getSlackPUTAccess().getConditionExpressionParserRuleCall_12_0()); - - pushFollow(FOLLOW_2); - lv_condition_12_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getSlackPUTRule()); - } - set( - current, - "condition", - lv_condition_12_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleSlackPUT" - - - // $ANTLR start "entryRuleCopydata" - // InternalDsl.g:5056:1: entryRuleCopydata returns [EObject current=null] : iv_ruleCopydata= ruleCopydata EOF ; - public final EObject entryRuleCopydata() throws RecognitionException { - EObject current = null; - - EObject iv_ruleCopydata = null; - - - try { - // InternalDsl.g:5056:49: (iv_ruleCopydata= ruleCopydata EOF ) - // InternalDsl.g:5057:2: iv_ruleCopydata= ruleCopydata EOF - { - newCompositeNode(grammarAccess.getCopydataRule()); - pushFollow(FOLLOW_1); - iv_ruleCopydata=ruleCopydata(); - - state._fsp--; - - current =iv_ruleCopydata; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleCopydata" - - - // $ANTLR start "ruleCopydata" - // InternalDsl.g:5063:1: ruleCopydata returns [EObject current=null] : (otherlv_0= 'copydata' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= RULE_STRING ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) otherlv_13= 'fielding' ( (lv_writeThreadCount_14_0= RULE_STRING ) ) otherlv_15= 'with-fetch-batch-size' ( (lv_fetchBatchSize_16_0= RULE_STRING ) ) otherlv_17= 'with-write-batch-size' ( (lv_writeBatchSize_18_0= RULE_STRING ) ) ) ; - public final EObject ruleCopydata() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_source_4_0=null; - Token otherlv_5=null; - Token lv_to_6_0=null; - Token otherlv_7=null; - Token otherlv_8=null; - Token lv_value_9_0=null; - Token otherlv_10=null; - Token otherlv_11=null; - Token otherlv_13=null; - Token lv_writeThreadCount_14_0=null; - Token otherlv_15=null; - Token lv_fetchBatchSize_16_0=null; - Token otherlv_17=null; - Token lv_writeBatchSize_18_0=null; - EObject lv_condition_12_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:5069:2: ( (otherlv_0= 'copydata' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= RULE_STRING ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) otherlv_13= 'fielding' ( (lv_writeThreadCount_14_0= RULE_STRING ) ) otherlv_15= 'with-fetch-batch-size' ( (lv_fetchBatchSize_16_0= RULE_STRING ) ) otherlv_17= 'with-write-batch-size' ( (lv_writeBatchSize_18_0= RULE_STRING ) ) ) ) - // InternalDsl.g:5070:2: (otherlv_0= 'copydata' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= RULE_STRING ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) otherlv_13= 'fielding' ( (lv_writeThreadCount_14_0= RULE_STRING ) ) otherlv_15= 'with-fetch-batch-size' ( (lv_fetchBatchSize_16_0= RULE_STRING ) ) otherlv_17= 'with-write-batch-size' ( (lv_writeBatchSize_18_0= RULE_STRING ) ) ) - { - // InternalDsl.g:5070:2: (otherlv_0= 'copydata' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= RULE_STRING ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) otherlv_13= 'fielding' ( (lv_writeThreadCount_14_0= RULE_STRING ) ) otherlv_15= 'with-fetch-batch-size' ( (lv_fetchBatchSize_16_0= RULE_STRING ) ) otherlv_17= 'with-write-batch-size' ( (lv_writeBatchSize_18_0= RULE_STRING ) ) ) - // InternalDsl.g:5071:3: otherlv_0= 'copydata' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'using' otherlv_8= '{' ( (lv_value_9_0= RULE_STRING ) ) otherlv_10= '}' otherlv_11= 'on-condition' ( (lv_condition_12_0= ruleExpression ) ) otherlv_13= 'fielding' ( (lv_writeThreadCount_14_0= RULE_STRING ) ) otherlv_15= 'with-fetch-batch-size' ( (lv_fetchBatchSize_16_0= RULE_STRING ) ) otherlv_17= 'with-write-batch-size' ( (lv_writeBatchSize_18_0= RULE_STRING ) ) - { - otherlv_0=(Token)match(input,86,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getCopydataAccess().getCopydataKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getCopydataAccess().getAsKeyword_1()); - - // InternalDsl.g:5079:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:5080:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:5080:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:5081:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_41); - - newLeafNode(lv_name_2_0, grammarAccess.getCopydataAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,61,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getCopydataAccess().getFromKeyword_3()); - - // InternalDsl.g:5101:3: ( (lv_source_4_0= RULE_STRING ) ) - // InternalDsl.g:5102:4: (lv_source_4_0= RULE_STRING ) - { - // InternalDsl.g:5102:4: (lv_source_4_0= RULE_STRING ) - // InternalDsl.g:5103:5: lv_source_4_0= RULE_STRING - { - lv_source_4_0=(Token)match(input,RULE_STRING,FOLLOW_50); - - newLeafNode(lv_source_4_0, grammarAccess.getCopydataAccess().getSourceSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - current, - "source", - lv_source_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,71,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getCopydataAccess().getToKeyword_5()); - - // InternalDsl.g:5123:3: ( (lv_to_6_0= RULE_STRING ) ) - // InternalDsl.g:5124:4: (lv_to_6_0= RULE_STRING ) - { - // InternalDsl.g:5124:4: (lv_to_6_0= RULE_STRING ) - // InternalDsl.g:5125:5: lv_to_6_0= RULE_STRING - { - lv_to_6_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_to_6_0, grammarAccess.getCopydataAccess().getToSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - current, - "to", - lv_to_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_7, grammarAccess.getCopydataAccess().getUsingKeyword_7()); - - otherlv_8=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_8, grammarAccess.getCopydataAccess().getLeftCurlyBracketKeyword_8()); - - // InternalDsl.g:5149:3: ( (lv_value_9_0= RULE_STRING ) ) - // InternalDsl.g:5150:4: (lv_value_9_0= RULE_STRING ) - { - // InternalDsl.g:5150:4: (lv_value_9_0= RULE_STRING ) - // InternalDsl.g:5151:5: lv_value_9_0= RULE_STRING - { - lv_value_9_0=(Token)match(input,RULE_STRING,FOLLOW_8); - - newLeafNode(lv_value_9_0, grammarAccess.getCopydataAccess().getValueSTRINGTerminalRuleCall_9_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_9_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_10=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_10, grammarAccess.getCopydataAccess().getRightCurlyBracketKeyword_10()); - - otherlv_11=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_11, grammarAccess.getCopydataAccess().getOnConditionKeyword_11()); - - // InternalDsl.g:5175:3: ( (lv_condition_12_0= ruleExpression ) ) - // InternalDsl.g:5176:4: (lv_condition_12_0= ruleExpression ) - { - // InternalDsl.g:5176:4: (lv_condition_12_0= ruleExpression ) - // InternalDsl.g:5177:5: lv_condition_12_0= ruleExpression - { - - newCompositeNode(grammarAccess.getCopydataAccess().getConditionExpressionParserRuleCall_12_0()); - - pushFollow(FOLLOW_58); - lv_condition_12_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getCopydataRule()); - } - set( - current, - "condition", - lv_condition_12_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_13=(Token)match(input,87,FOLLOW_3); - - newLeafNode(otherlv_13, grammarAccess.getCopydataAccess().getFieldingKeyword_13()); - - // InternalDsl.g:5198:3: ( (lv_writeThreadCount_14_0= RULE_STRING ) ) - // InternalDsl.g:5199:4: (lv_writeThreadCount_14_0= RULE_STRING ) - { - // InternalDsl.g:5199:4: (lv_writeThreadCount_14_0= RULE_STRING ) - // InternalDsl.g:5200:5: lv_writeThreadCount_14_0= RULE_STRING - { - lv_writeThreadCount_14_0=(Token)match(input,RULE_STRING,FOLLOW_59); - - newLeafNode(lv_writeThreadCount_14_0, grammarAccess.getCopydataAccess().getWriteThreadCountSTRINGTerminalRuleCall_14_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - current, - "writeThreadCount", - lv_writeThreadCount_14_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_15=(Token)match(input,88,FOLLOW_3); - - newLeafNode(otherlv_15, grammarAccess.getCopydataAccess().getWithFetchBatchSizeKeyword_15()); - - // InternalDsl.g:5220:3: ( (lv_fetchBatchSize_16_0= RULE_STRING ) ) - // InternalDsl.g:5221:4: (lv_fetchBatchSize_16_0= RULE_STRING ) - { - // InternalDsl.g:5221:4: (lv_fetchBatchSize_16_0= RULE_STRING ) - // InternalDsl.g:5222:5: lv_fetchBatchSize_16_0= RULE_STRING - { - lv_fetchBatchSize_16_0=(Token)match(input,RULE_STRING,FOLLOW_60); - - newLeafNode(lv_fetchBatchSize_16_0, grammarAccess.getCopydataAccess().getFetchBatchSizeSTRINGTerminalRuleCall_16_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - current, - "fetchBatchSize", - lv_fetchBatchSize_16_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_17=(Token)match(input,89,FOLLOW_3); - - newLeafNode(otherlv_17, grammarAccess.getCopydataAccess().getWithWriteBatchSizeKeyword_17()); - - // InternalDsl.g:5242:3: ( (lv_writeBatchSize_18_0= RULE_STRING ) ) - // InternalDsl.g:5243:4: (lv_writeBatchSize_18_0= RULE_STRING ) - { - // InternalDsl.g:5243:4: (lv_writeBatchSize_18_0= RULE_STRING ) - // InternalDsl.g:5244:5: lv_writeBatchSize_18_0= RULE_STRING - { - lv_writeBatchSize_18_0=(Token)match(input,RULE_STRING,FOLLOW_2); - - newLeafNode(lv_writeBatchSize_18_0, grammarAccess.getCopydataAccess().getWriteBatchSizeSTRINGTerminalRuleCall_18_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getCopydataRule()); - } - setWithLastConsumed( - current, - "writeBatchSize", - lv_writeBatchSize_18_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleCopydata" - - - // $ANTLR start "entryRuleWriteCsv" - // InternalDsl.g:5264:1: entryRuleWriteCsv returns [EObject current=null] : iv_ruleWriteCsv= ruleWriteCsv EOF ; - public final EObject entryRuleWriteCsv() throws RecognitionException { - EObject current = null; - - EObject iv_ruleWriteCsv = null; - - - try { - // InternalDsl.g:5264:49: (iv_ruleWriteCsv= ruleWriteCsv EOF ) - // InternalDsl.g:5265:2: iv_ruleWriteCsv= ruleWriteCsv EOF - { - newCompositeNode(grammarAccess.getWriteCsvRule()); - pushFollow(FOLLOW_1); - iv_ruleWriteCsv=ruleWriteCsv(); - - state._fsp--; - - current =iv_ruleWriteCsv; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleWriteCsv" - - - // $ANTLR start "ruleWriteCsv" - // InternalDsl.g:5271:1: ruleWriteCsv returns [EObject current=null] : (otherlv_0= 'writecsv' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'with' ( (lv_delim_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) ; - public final EObject ruleWriteCsv() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_source_4_0=null; - Token otherlv_5=null; - Token lv_to_6_0=null; - Token otherlv_7=null; - Token lv_delim_8_0=null; - Token otherlv_9=null; - Token otherlv_10=null; - Token otherlv_12=null; - Token otherlv_13=null; - AntlrDatatypeRuleToken lv_value_11_0 = null; - - EObject lv_condition_14_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:5277:2: ( (otherlv_0= 'writecsv' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'with' ( (lv_delim_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) ) - // InternalDsl.g:5278:2: (otherlv_0= 'writecsv' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'with' ( (lv_delim_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) - { - // InternalDsl.g:5278:2: (otherlv_0= 'writecsv' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'with' ( (lv_delim_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) ) - // InternalDsl.g:5279:3: otherlv_0= 'writecsv' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'with' ( (lv_delim_8_0= RULE_STRING ) ) otherlv_9= 'using' otherlv_10= '{' ( (lv_value_11_0= ruleSelectStatement ) ) otherlv_12= '}' otherlv_13= 'on-condition' ( (lv_condition_14_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,90,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getWriteCsvAccess().getWritecsvKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getWriteCsvAccess().getAsKeyword_1()); - - // InternalDsl.g:5287:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:5288:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:5288:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:5289:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_41); - - newLeafNode(lv_name_2_0, grammarAccess.getWriteCsvAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getWriteCsvRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,61,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getWriteCsvAccess().getFromKeyword_3()); - - // InternalDsl.g:5309:3: ( (lv_source_4_0= RULE_STRING ) ) - // InternalDsl.g:5310:4: (lv_source_4_0= RULE_STRING ) - { - // InternalDsl.g:5310:4: (lv_source_4_0= RULE_STRING ) - // InternalDsl.g:5311:5: lv_source_4_0= RULE_STRING - { - lv_source_4_0=(Token)match(input,RULE_STRING,FOLLOW_50); - - newLeafNode(lv_source_4_0, grammarAccess.getWriteCsvAccess().getSourceSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getWriteCsvRule()); - } - setWithLastConsumed( - current, - "source", - lv_source_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,71,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getWriteCsvAccess().getToKeyword_5()); - - // InternalDsl.g:5331:3: ( (lv_to_6_0= RULE_STRING ) ) - // InternalDsl.g:5332:4: (lv_to_6_0= RULE_STRING ) - { - // InternalDsl.g:5332:4: (lv_to_6_0= RULE_STRING ) - // InternalDsl.g:5333:5: lv_to_6_0= RULE_STRING - { - lv_to_6_0=(Token)match(input,RULE_STRING,FOLLOW_48); - - newLeafNode(lv_to_6_0, grammarAccess.getWriteCsvAccess().getToSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getWriteCsvRule()); - } - setWithLastConsumed( - current, - "to", - lv_to_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,68,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getWriteCsvAccess().getWithKeyword_7()); - - // InternalDsl.g:5353:3: ( (lv_delim_8_0= RULE_STRING ) ) - // InternalDsl.g:5354:4: (lv_delim_8_0= RULE_STRING ) - { - // InternalDsl.g:5354:4: (lv_delim_8_0= RULE_STRING ) - // InternalDsl.g:5355:5: lv_delim_8_0= RULE_STRING - { - lv_delim_8_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_delim_8_0, grammarAccess.getWriteCsvAccess().getDelimSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getWriteCsvRule()); - } - setWithLastConsumed( - current, - "delim", - lv_delim_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_9, grammarAccess.getWriteCsvAccess().getUsingKeyword_9()); - - otherlv_10=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_10, grammarAccess.getWriteCsvAccess().getLeftCurlyBracketKeyword_10()); - - // InternalDsl.g:5379:3: ( (lv_value_11_0= ruleSelectStatement ) ) - // InternalDsl.g:5380:4: (lv_value_11_0= ruleSelectStatement ) - { - // InternalDsl.g:5380:4: (lv_value_11_0= ruleSelectStatement ) - // InternalDsl.g:5381:5: lv_value_11_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getWriteCsvAccess().getValueSelectStatementParserRuleCall_11_0()); - - pushFollow(FOLLOW_8); - lv_value_11_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getWriteCsvRule()); - } - set( - current, - "value", - lv_value_11_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_12=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_12, grammarAccess.getWriteCsvAccess().getRightCurlyBracketKeyword_12()); - - otherlv_13=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_13, grammarAccess.getWriteCsvAccess().getOnConditionKeyword_13()); - - // InternalDsl.g:5406:3: ( (lv_condition_14_0= ruleExpression ) ) - // InternalDsl.g:5407:4: (lv_condition_14_0= ruleExpression ) - { - // InternalDsl.g:5407:4: (lv_condition_14_0= ruleExpression ) - // InternalDsl.g:5408:5: lv_condition_14_0= ruleExpression - { - - newCompositeNode(grammarAccess.getWriteCsvAccess().getConditionExpressionParserRuleCall_14_0()); - - pushFollow(FOLLOW_2); - lv_condition_14_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getWriteCsvRule()); - } - set( - current, - "condition", - lv_condition_14_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleWriteCsv" - - - // $ANTLR start "entryRuleLoadCsv" - // InternalDsl.g:5429:1: entryRuleLoadCsv returns [EObject current=null] : iv_ruleLoadCsv= ruleLoadCsv EOF ; - public final EObject entryRuleLoadCsv() throws RecognitionException { - EObject current = null; - - EObject iv_ruleLoadCsv = null; - - - try { - // InternalDsl.g:5429:48: (iv_ruleLoadCsv= ruleLoadCsv EOF ) - // InternalDsl.g:5430:2: iv_ruleLoadCsv= ruleLoadCsv EOF - { - newCompositeNode(grammarAccess.getLoadCsvRule()); - pushFollow(FOLLOW_1); - iv_ruleLoadCsv=ruleLoadCsv(); - - state._fsp--; - - current =iv_ruleLoadCsv; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleLoadCsv" - - - // $ANTLR start "ruleLoadCsv" - // InternalDsl.g:5436:1: ruleLoadCsv returns [EObject current=null] : (otherlv_0= 'loadcsv' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'with' ( (lv_delim_8_0= RULE_STRING ) ) otherlv_9= 'with-fetch-batch-size' ( (lv_fetchBatchSize_10_0= RULE_INT ) ) otherlv_11= 'with-write-batch-size' ( (lv_writeBatchSize_12_0= RULE_INT ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) otherlv_19= 'fielding' ( (lv_writeThreadCount_20_0= RULE_INT ) ) ) ; - public final EObject ruleLoadCsv() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_source_4_0=null; - Token otherlv_5=null; - Token lv_to_6_0=null; - Token otherlv_7=null; - Token lv_delim_8_0=null; - Token otherlv_9=null; - Token lv_fetchBatchSize_10_0=null; - Token otherlv_11=null; - Token lv_writeBatchSize_12_0=null; - Token otherlv_13=null; - Token otherlv_14=null; - Token otherlv_16=null; - Token otherlv_17=null; - Token otherlv_19=null; - Token lv_writeThreadCount_20_0=null; - AntlrDatatypeRuleToken lv_value_15_0 = null; - - EObject lv_condition_18_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:5442:2: ( (otherlv_0= 'loadcsv' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'with' ( (lv_delim_8_0= RULE_STRING ) ) otherlv_9= 'with-fetch-batch-size' ( (lv_fetchBatchSize_10_0= RULE_INT ) ) otherlv_11= 'with-write-batch-size' ( (lv_writeBatchSize_12_0= RULE_INT ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) otherlv_19= 'fielding' ( (lv_writeThreadCount_20_0= RULE_INT ) ) ) ) - // InternalDsl.g:5443:2: (otherlv_0= 'loadcsv' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'with' ( (lv_delim_8_0= RULE_STRING ) ) otherlv_9= 'with-fetch-batch-size' ( (lv_fetchBatchSize_10_0= RULE_INT ) ) otherlv_11= 'with-write-batch-size' ( (lv_writeBatchSize_12_0= RULE_INT ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) otherlv_19= 'fielding' ( (lv_writeThreadCount_20_0= RULE_INT ) ) ) - { - // InternalDsl.g:5443:2: (otherlv_0= 'loadcsv' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'with' ( (lv_delim_8_0= RULE_STRING ) ) otherlv_9= 'with-fetch-batch-size' ( (lv_fetchBatchSize_10_0= RULE_INT ) ) otherlv_11= 'with-write-batch-size' ( (lv_writeBatchSize_12_0= RULE_INT ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) otherlv_19= 'fielding' ( (lv_writeThreadCount_20_0= RULE_INT ) ) ) - // InternalDsl.g:5444:3: otherlv_0= 'loadcsv' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'from' ( (lv_source_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_to_6_0= RULE_STRING ) ) otherlv_7= 'with' ( (lv_delim_8_0= RULE_STRING ) ) otherlv_9= 'with-fetch-batch-size' ( (lv_fetchBatchSize_10_0= RULE_INT ) ) otherlv_11= 'with-write-batch-size' ( (lv_writeBatchSize_12_0= RULE_INT ) ) otherlv_13= 'using' otherlv_14= '{' ( (lv_value_15_0= ruleSelectStatement ) ) otherlv_16= '}' otherlv_17= 'on-condition' ( (lv_condition_18_0= ruleExpression ) ) otherlv_19= 'fielding' ( (lv_writeThreadCount_20_0= RULE_INT ) ) - { - otherlv_0=(Token)match(input,91,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getLoadCsvAccess().getLoadcsvKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getLoadCsvAccess().getAsKeyword_1()); - - // InternalDsl.g:5452:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:5453:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:5453:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:5454:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_41); - - newLeafNode(lv_name_2_0, grammarAccess.getLoadCsvAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,61,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getLoadCsvAccess().getFromKeyword_3()); - - // InternalDsl.g:5474:3: ( (lv_source_4_0= RULE_STRING ) ) - // InternalDsl.g:5475:4: (lv_source_4_0= RULE_STRING ) - { - // InternalDsl.g:5475:4: (lv_source_4_0= RULE_STRING ) - // InternalDsl.g:5476:5: lv_source_4_0= RULE_STRING - { - lv_source_4_0=(Token)match(input,RULE_STRING,FOLLOW_50); - - newLeafNode(lv_source_4_0, grammarAccess.getLoadCsvAccess().getSourceSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - current, - "source", - lv_source_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,71,FOLLOW_3); - - newLeafNode(otherlv_5, grammarAccess.getLoadCsvAccess().getToKeyword_5()); - - // InternalDsl.g:5496:3: ( (lv_to_6_0= RULE_STRING ) ) - // InternalDsl.g:5497:4: (lv_to_6_0= RULE_STRING ) - { - // InternalDsl.g:5497:4: (lv_to_6_0= RULE_STRING ) - // InternalDsl.g:5498:5: lv_to_6_0= RULE_STRING - { - lv_to_6_0=(Token)match(input,RULE_STRING,FOLLOW_48); - - newLeafNode(lv_to_6_0, grammarAccess.getLoadCsvAccess().getToSTRINGTerminalRuleCall_6_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - current, - "to", - lv_to_6_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_7=(Token)match(input,68,FOLLOW_3); - - newLeafNode(otherlv_7, grammarAccess.getLoadCsvAccess().getWithKeyword_7()); - - // InternalDsl.g:5518:3: ( (lv_delim_8_0= RULE_STRING ) ) - // InternalDsl.g:5519:4: (lv_delim_8_0= RULE_STRING ) - { - // InternalDsl.g:5519:4: (lv_delim_8_0= RULE_STRING ) - // InternalDsl.g:5520:5: lv_delim_8_0= RULE_STRING - { - lv_delim_8_0=(Token)match(input,RULE_STRING,FOLLOW_59); - - newLeafNode(lv_delim_8_0, grammarAccess.getLoadCsvAccess().getDelimSTRINGTerminalRuleCall_8_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - current, - "delim", - lv_delim_8_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_9=(Token)match(input,88,FOLLOW_61); - - newLeafNode(otherlv_9, grammarAccess.getLoadCsvAccess().getWithFetchBatchSizeKeyword_9()); - - // InternalDsl.g:5540:3: ( (lv_fetchBatchSize_10_0= RULE_INT ) ) - // InternalDsl.g:5541:4: (lv_fetchBatchSize_10_0= RULE_INT ) - { - // InternalDsl.g:5541:4: (lv_fetchBatchSize_10_0= RULE_INT ) - // InternalDsl.g:5542:5: lv_fetchBatchSize_10_0= RULE_INT - { - lv_fetchBatchSize_10_0=(Token)match(input,RULE_INT,FOLLOW_60); - - newLeafNode(lv_fetchBatchSize_10_0, grammarAccess.getLoadCsvAccess().getFetchBatchSizeINTTerminalRuleCall_10_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - current, - "fetchBatchSize", - lv_fetchBatchSize_10_0, - "org.eclipse.xtext.common.Terminals.INT"); - - - } - - - } - - otherlv_11=(Token)match(input,89,FOLLOW_61); - - newLeafNode(otherlv_11, grammarAccess.getLoadCsvAccess().getWithWriteBatchSizeKeyword_11()); - - // InternalDsl.g:5562:3: ( (lv_writeBatchSize_12_0= RULE_INT ) ) - // InternalDsl.g:5563:4: (lv_writeBatchSize_12_0= RULE_INT ) - { - // InternalDsl.g:5563:4: (lv_writeBatchSize_12_0= RULE_INT ) - // InternalDsl.g:5564:5: lv_writeBatchSize_12_0= RULE_INT - { - lv_writeBatchSize_12_0=(Token)match(input,RULE_INT,FOLLOW_17); - - newLeafNode(lv_writeBatchSize_12_0, grammarAccess.getLoadCsvAccess().getWriteBatchSizeINTTerminalRuleCall_12_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - current, - "writeBatchSize", - lv_writeBatchSize_12_0, - "org.eclipse.xtext.common.Terminals.INT"); - - - } - - - } - - otherlv_13=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_13, grammarAccess.getLoadCsvAccess().getUsingKeyword_13()); - - otherlv_14=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_14, grammarAccess.getLoadCsvAccess().getLeftCurlyBracketKeyword_14()); - - // InternalDsl.g:5588:3: ( (lv_value_15_0= ruleSelectStatement ) ) - // InternalDsl.g:5589:4: (lv_value_15_0= ruleSelectStatement ) - { - // InternalDsl.g:5589:4: (lv_value_15_0= ruleSelectStatement ) - // InternalDsl.g:5590:5: lv_value_15_0= ruleSelectStatement - { - - newCompositeNode(grammarAccess.getLoadCsvAccess().getValueSelectStatementParserRuleCall_15_0()); - - pushFollow(FOLLOW_8); - lv_value_15_0=ruleSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getLoadCsvRule()); - } - set( - current, - "value", - lv_value_15_0, - "in.handyman.Dsl.SelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_16=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_16, grammarAccess.getLoadCsvAccess().getRightCurlyBracketKeyword_16()); - - otherlv_17=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_17, grammarAccess.getLoadCsvAccess().getOnConditionKeyword_17()); - - // InternalDsl.g:5615:3: ( (lv_condition_18_0= ruleExpression ) ) - // InternalDsl.g:5616:4: (lv_condition_18_0= ruleExpression ) - { - // InternalDsl.g:5616:4: (lv_condition_18_0= ruleExpression ) - // InternalDsl.g:5617:5: lv_condition_18_0= ruleExpression - { - - newCompositeNode(grammarAccess.getLoadCsvAccess().getConditionExpressionParserRuleCall_18_0()); - - pushFollow(FOLLOW_58); - lv_condition_18_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getLoadCsvRule()); - } - set( - current, - "condition", - lv_condition_18_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_19=(Token)match(input,87,FOLLOW_61); - - newLeafNode(otherlv_19, grammarAccess.getLoadCsvAccess().getFieldingKeyword_19()); - - // InternalDsl.g:5638:3: ( (lv_writeThreadCount_20_0= RULE_INT ) ) - // InternalDsl.g:5639:4: (lv_writeThreadCount_20_0= RULE_INT ) - { - // InternalDsl.g:5639:4: (lv_writeThreadCount_20_0= RULE_INT ) - // InternalDsl.g:5640:5: lv_writeThreadCount_20_0= RULE_INT - { - lv_writeThreadCount_20_0=(Token)match(input,RULE_INT,FOLLOW_2); - - newLeafNode(lv_writeThreadCount_20_0, grammarAccess.getLoadCsvAccess().getWriteThreadCountINTTerminalRuleCall_20_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getLoadCsvRule()); - } - setWithLastConsumed( - current, - "writeThreadCount", - lv_writeThreadCount_20_0, - "org.eclipse.xtext.common.Terminals.INT"); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleLoadCsv" - - - // $ANTLR start "entryRuleTransform" - // InternalDsl.g:5660:1: entryRuleTransform returns [EObject current=null] : iv_ruleTransform= ruleTransform EOF ; - public final EObject entryRuleTransform() throws RecognitionException { - EObject current = null; - - EObject iv_ruleTransform = null; - - - try { - // InternalDsl.g:5660:50: (iv_ruleTransform= ruleTransform EOF ) - // InternalDsl.g:5661:2: iv_ruleTransform= ruleTransform EOF - { - newCompositeNode(grammarAccess.getTransformRule()); - pushFollow(FOLLOW_1); - iv_ruleTransform=ruleTransform(); - - state._fsp--; - - current =iv_ruleTransform; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleTransform" - - - // $ANTLR start "ruleTransform" - // InternalDsl.g:5667:1: ruleTransform returns [EObject current=null] : (otherlv_0= 'transform' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_on_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_value_7_0= ruleNonSelectStatement ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) ; - public final EObject ruleTransform() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token otherlv_1=null; - Token lv_name_2_0=null; - Token otherlv_3=null; - Token lv_on_4_0=null; - Token otherlv_5=null; - Token otherlv_6=null; - Token otherlv_8=null; - Token otherlv_9=null; - AntlrDatatypeRuleToken lv_value_7_0 = null; - - EObject lv_condition_10_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:5673:2: ( (otherlv_0= 'transform' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_on_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_value_7_0= ruleNonSelectStatement ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) ) - // InternalDsl.g:5674:2: (otherlv_0= 'transform' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_on_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_value_7_0= ruleNonSelectStatement ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) - { - // InternalDsl.g:5674:2: (otherlv_0= 'transform' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_on_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_value_7_0= ruleNonSelectStatement ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) ) - // InternalDsl.g:5675:3: otherlv_0= 'transform' otherlv_1= 'as' ( (lv_name_2_0= RULE_STRING ) ) otherlv_3= 'on' ( (lv_on_4_0= RULE_STRING ) ) otherlv_5= 'using' otherlv_6= '{' ( (lv_value_7_0= ruleNonSelectStatement ) ) otherlv_8= '}' otherlv_9= 'on-condition' ( (lv_condition_10_0= ruleExpression ) ) - { - otherlv_0=(Token)match(input,92,FOLLOW_11); - - newLeafNode(otherlv_0, grammarAccess.getTransformAccess().getTransformKeyword_0()); - - otherlv_1=(Token)match(input,18,FOLLOW_3); - - newLeafNode(otherlv_1, grammarAccess.getTransformAccess().getAsKeyword_1()); - - // InternalDsl.g:5683:3: ( (lv_name_2_0= RULE_STRING ) ) - // InternalDsl.g:5684:4: (lv_name_2_0= RULE_STRING ) - { - // InternalDsl.g:5684:4: (lv_name_2_0= RULE_STRING ) - // InternalDsl.g:5685:5: lv_name_2_0= RULE_STRING - { - lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_20); - - newLeafNode(lv_name_2_0, grammarAccess.getTransformAccess().getNameSTRINGTerminalRuleCall_2_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTransformRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_2_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_3=(Token)match(input,28,FOLLOW_3); - - newLeafNode(otherlv_3, grammarAccess.getTransformAccess().getOnKeyword_3()); - - // InternalDsl.g:5705:3: ( (lv_on_4_0= RULE_STRING ) ) - // InternalDsl.g:5706:4: (lv_on_4_0= RULE_STRING ) - { - // InternalDsl.g:5706:4: (lv_on_4_0= RULE_STRING ) - // InternalDsl.g:5707:5: lv_on_4_0= RULE_STRING - { - lv_on_4_0=(Token)match(input,RULE_STRING,FOLLOW_17); - - newLeafNode(lv_on_4_0, grammarAccess.getTransformAccess().getOnSTRINGTerminalRuleCall_4_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getTransformRule()); - } - setWithLastConsumed( - current, - "on", - lv_on_4_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_5=(Token)match(input,24,FOLLOW_4); - - newLeafNode(otherlv_5, grammarAccess.getTransformAccess().getUsingKeyword_5()); - - otherlv_6=(Token)match(input,12,FOLLOW_3); - - newLeafNode(otherlv_6, grammarAccess.getTransformAccess().getLeftCurlyBracketKeyword_6()); - - // InternalDsl.g:5731:3: ( (lv_value_7_0= ruleNonSelectStatement ) ) - // InternalDsl.g:5732:4: (lv_value_7_0= ruleNonSelectStatement ) - { - // InternalDsl.g:5732:4: (lv_value_7_0= ruleNonSelectStatement ) - // InternalDsl.g:5733:5: lv_value_7_0= ruleNonSelectStatement - { - - newCompositeNode(grammarAccess.getTransformAccess().getValueNonSelectStatementParserRuleCall_7_0()); - - pushFollow(FOLLOW_8); - lv_value_7_0=ruleNonSelectStatement(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getTransformRule()); - } - add( - current, - "value", - lv_value_7_0, - "in.handyman.Dsl.NonSelectStatement"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_8=(Token)match(input,13,FOLLOW_14); - - newLeafNode(otherlv_8, grammarAccess.getTransformAccess().getRightCurlyBracketKeyword_8()); - - otherlv_9=(Token)match(input,21,FOLLOW_15); - - newLeafNode(otherlv_9, grammarAccess.getTransformAccess().getOnConditionKeyword_9()); - - // InternalDsl.g:5758:3: ( (lv_condition_10_0= ruleExpression ) ) - // InternalDsl.g:5759:4: (lv_condition_10_0= ruleExpression ) - { - // InternalDsl.g:5759:4: (lv_condition_10_0= ruleExpression ) - // InternalDsl.g:5760:5: lv_condition_10_0= ruleExpression - { - - newCompositeNode(grammarAccess.getTransformAccess().getConditionExpressionParserRuleCall_10_0()); - - pushFollow(FOLLOW_2); - lv_condition_10_0=ruleExpression(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getTransformRule()); - } - set( - current, - "condition", - lv_condition_10_0, - "in.handyman.Dsl.Expression"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleTransform" - - - // $ANTLR start "entryRuleSelectStatement" - // InternalDsl.g:5781:1: entryRuleSelectStatement returns [String current=null] : iv_ruleSelectStatement= ruleSelectStatement EOF ; - public final String entryRuleSelectStatement() throws RecognitionException { - String current = null; - - AntlrDatatypeRuleToken iv_ruleSelectStatement = null; - - - try { - // InternalDsl.g:5781:55: (iv_ruleSelectStatement= ruleSelectStatement EOF ) - // InternalDsl.g:5782:2: iv_ruleSelectStatement= ruleSelectStatement EOF - { - newCompositeNode(grammarAccess.getSelectStatementRule()); - pushFollow(FOLLOW_1); - iv_ruleSelectStatement=ruleSelectStatement(); - - state._fsp--; - - current =iv_ruleSelectStatement.getText(); - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleSelectStatement" - - - // $ANTLR start "ruleSelectStatement" - // InternalDsl.g:5788:1: ruleSelectStatement returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ; - public final AntlrDatatypeRuleToken ruleSelectStatement() throws RecognitionException { - AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); - - Token this_STRING_0=null; - - - enterRule(); - - try { - // InternalDsl.g:5794:2: (this_STRING_0= RULE_STRING ) - // InternalDsl.g:5795:2: this_STRING_0= RULE_STRING - { - this_STRING_0=(Token)match(input,RULE_STRING,FOLLOW_2); - - current.merge(this_STRING_0); - - - newLeafNode(this_STRING_0, grammarAccess.getSelectStatementAccess().getSTRINGTerminalRuleCall()); - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleSelectStatement" - - - // $ANTLR start "entryRuleNonSelectStatement" - // InternalDsl.g:5805:1: entryRuleNonSelectStatement returns [String current=null] : iv_ruleNonSelectStatement= ruleNonSelectStatement EOF ; - public final String entryRuleNonSelectStatement() throws RecognitionException { - String current = null; - - AntlrDatatypeRuleToken iv_ruleNonSelectStatement = null; - - - try { - // InternalDsl.g:5805:58: (iv_ruleNonSelectStatement= ruleNonSelectStatement EOF ) - // InternalDsl.g:5806:2: iv_ruleNonSelectStatement= ruleNonSelectStatement EOF - { - newCompositeNode(grammarAccess.getNonSelectStatementRule()); - pushFollow(FOLLOW_1); - iv_ruleNonSelectStatement=ruleNonSelectStatement(); - - state._fsp--; - - current =iv_ruleNonSelectStatement.getText(); - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleNonSelectStatement" - - - // $ANTLR start "ruleNonSelectStatement" - // InternalDsl.g:5812:1: ruleNonSelectStatement returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ; - public final AntlrDatatypeRuleToken ruleNonSelectStatement() throws RecognitionException { - AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); - - Token this_STRING_0=null; - - - enterRule(); - - try { - // InternalDsl.g:5818:2: (this_STRING_0= RULE_STRING ) - // InternalDsl.g:5819:2: this_STRING_0= RULE_STRING - { - this_STRING_0=(Token)match(input,RULE_STRING,FOLLOW_2); - - current.merge(this_STRING_0); - - - newLeafNode(this_STRING_0, grammarAccess.getNonSelectStatementAccess().getSTRINGTerminalRuleCall()); - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleNonSelectStatement" - - - // $ANTLR start "entryRuleCreateStatement" - // InternalDsl.g:5829:1: entryRuleCreateStatement returns [String current=null] : iv_ruleCreateStatement= ruleCreateStatement EOF ; - public final String entryRuleCreateStatement() throws RecognitionException { - String current = null; - - AntlrDatatypeRuleToken iv_ruleCreateStatement = null; - - - try { - // InternalDsl.g:5829:55: (iv_ruleCreateStatement= ruleCreateStatement EOF ) - // InternalDsl.g:5830:2: iv_ruleCreateStatement= ruleCreateStatement EOF - { - newCompositeNode(grammarAccess.getCreateStatementRule()); - pushFollow(FOLLOW_1); - iv_ruleCreateStatement=ruleCreateStatement(); - - state._fsp--; - - current =iv_ruleCreateStatement.getText(); - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleCreateStatement" - - - // $ANTLR start "ruleCreateStatement" - // InternalDsl.g:5836:1: ruleCreateStatement returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ; - public final AntlrDatatypeRuleToken ruleCreateStatement() throws RecognitionException { - AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); - - Token this_STRING_0=null; - - - enterRule(); - - try { - // InternalDsl.g:5842:2: (this_STRING_0= RULE_STRING ) - // InternalDsl.g:5843:2: this_STRING_0= RULE_STRING - { - this_STRING_0=(Token)match(input,RULE_STRING,FOLLOW_2); - - current.merge(this_STRING_0); - - - newLeafNode(this_STRING_0, grammarAccess.getCreateStatementAccess().getSTRINGTerminalRuleCall()); - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleCreateStatement" - - - // $ANTLR start "entryRuleStartProcess" - // InternalDsl.g:5853:1: entryRuleStartProcess returns [EObject current=null] : iv_ruleStartProcess= ruleStartProcess EOF ; - public final EObject entryRuleStartProcess() throws RecognitionException { - EObject current = null; - - EObject iv_ruleStartProcess = null; - - - try { - // InternalDsl.g:5853:53: (iv_ruleStartProcess= ruleStartProcess EOF ) - // InternalDsl.g:5854:2: iv_ruleStartProcess= ruleStartProcess EOF - { - newCompositeNode(grammarAccess.getStartProcessRule()); - pushFollow(FOLLOW_1); - iv_ruleStartProcess=ruleStartProcess(); - - state._fsp--; - - current =iv_ruleStartProcess; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleStartProcess" - - - // $ANTLR start "ruleStartProcess" - // InternalDsl.g:5860:1: ruleStartProcess returns [EObject current=null] : (otherlv_0= 'start-process' ( (lv_name_1_0= RULE_STRING ) ) otherlv_2= 'with-file' ( (lv_target_3_0= RULE_STRING ) ) ) ; - public final EObject ruleStartProcess() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token lv_name_1_0=null; - Token otherlv_2=null; - Token lv_target_3_0=null; - - - enterRule(); - - try { - // InternalDsl.g:5866:2: ( (otherlv_0= 'start-process' ( (lv_name_1_0= RULE_STRING ) ) otherlv_2= 'with-file' ( (lv_target_3_0= RULE_STRING ) ) ) ) - // InternalDsl.g:5867:2: (otherlv_0= 'start-process' ( (lv_name_1_0= RULE_STRING ) ) otherlv_2= 'with-file' ( (lv_target_3_0= RULE_STRING ) ) ) - { - // InternalDsl.g:5867:2: (otherlv_0= 'start-process' ( (lv_name_1_0= RULE_STRING ) ) otherlv_2= 'with-file' ( (lv_target_3_0= RULE_STRING ) ) ) - // InternalDsl.g:5868:3: otherlv_0= 'start-process' ( (lv_name_1_0= RULE_STRING ) ) otherlv_2= 'with-file' ( (lv_target_3_0= RULE_STRING ) ) - { - otherlv_0=(Token)match(input,93,FOLLOW_3); - - newLeafNode(otherlv_0, grammarAccess.getStartProcessAccess().getStartProcessKeyword_0()); - - // InternalDsl.g:5872:3: ( (lv_name_1_0= RULE_STRING ) ) - // InternalDsl.g:5873:4: (lv_name_1_0= RULE_STRING ) - { - // InternalDsl.g:5873:4: (lv_name_1_0= RULE_STRING ) - // InternalDsl.g:5874:5: lv_name_1_0= RULE_STRING - { - lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_62); - - newLeafNode(lv_name_1_0, grammarAccess.getStartProcessAccess().getNameSTRINGTerminalRuleCall_1_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getStartProcessRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - otherlv_2=(Token)match(input,94,FOLLOW_3); - - newLeafNode(otherlv_2, grammarAccess.getStartProcessAccess().getWithFileKeyword_2()); - - // InternalDsl.g:5894:3: ( (lv_target_3_0= RULE_STRING ) ) - // InternalDsl.g:5895:4: (lv_target_3_0= RULE_STRING ) - { - // InternalDsl.g:5895:4: (lv_target_3_0= RULE_STRING ) - // InternalDsl.g:5896:5: lv_target_3_0= RULE_STRING - { - lv_target_3_0=(Token)match(input,RULE_STRING,FOLLOW_2); - - newLeafNode(lv_target_3_0, grammarAccess.getStartProcessAccess().getTargetSTRINGTerminalRuleCall_3_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getStartProcessRule()); - } - setWithLastConsumed( - current, - "target", - lv_target_3_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleStartProcess" - - - // $ANTLR start "entryRuleExpression" - // InternalDsl.g:5916:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ; - public final EObject entryRuleExpression() throws RecognitionException { - EObject current = null; - - EObject iv_ruleExpression = null; - - - try { - // InternalDsl.g:5916:51: (iv_ruleExpression= ruleExpression EOF ) - // InternalDsl.g:5917:2: iv_ruleExpression= ruleExpression EOF - { - newCompositeNode(grammarAccess.getExpressionRule()); - pushFollow(FOLLOW_1); - iv_ruleExpression=ruleExpression(); - - state._fsp--; - - current =iv_ruleExpression; - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleExpression" - - - // $ANTLR start "ruleExpression" - // InternalDsl.g:5923:1: ruleExpression returns [EObject current=null] : (otherlv_0= 'if' ( (lv_lhs_1_0= RULE_STRING ) ) ( (lv_operator_2_0= ruleOperator ) ) ( (lv_rhs_3_0= RULE_STRING ) ) ) ; - public final EObject ruleExpression() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token lv_lhs_1_0=null; - Token lv_rhs_3_0=null; - AntlrDatatypeRuleToken lv_operator_2_0 = null; - - - - enterRule(); - - try { - // InternalDsl.g:5929:2: ( (otherlv_0= 'if' ( (lv_lhs_1_0= RULE_STRING ) ) ( (lv_operator_2_0= ruleOperator ) ) ( (lv_rhs_3_0= RULE_STRING ) ) ) ) - // InternalDsl.g:5930:2: (otherlv_0= 'if' ( (lv_lhs_1_0= RULE_STRING ) ) ( (lv_operator_2_0= ruleOperator ) ) ( (lv_rhs_3_0= RULE_STRING ) ) ) - { - // InternalDsl.g:5930:2: (otherlv_0= 'if' ( (lv_lhs_1_0= RULE_STRING ) ) ( (lv_operator_2_0= ruleOperator ) ) ( (lv_rhs_3_0= RULE_STRING ) ) ) - // InternalDsl.g:5931:3: otherlv_0= 'if' ( (lv_lhs_1_0= RULE_STRING ) ) ( (lv_operator_2_0= ruleOperator ) ) ( (lv_rhs_3_0= RULE_STRING ) ) - { - otherlv_0=(Token)match(input,95,FOLLOW_3); - - newLeafNode(otherlv_0, grammarAccess.getExpressionAccess().getIfKeyword_0()); - - // InternalDsl.g:5935:3: ( (lv_lhs_1_0= RULE_STRING ) ) - // InternalDsl.g:5936:4: (lv_lhs_1_0= RULE_STRING ) - { - // InternalDsl.g:5936:4: (lv_lhs_1_0= RULE_STRING ) - // InternalDsl.g:5937:5: lv_lhs_1_0= RULE_STRING - { - lv_lhs_1_0=(Token)match(input,RULE_STRING,FOLLOW_63); - - newLeafNode(lv_lhs_1_0, grammarAccess.getExpressionAccess().getLhsSTRINGTerminalRuleCall_1_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getExpressionRule()); - } - setWithLastConsumed( - current, - "lhs", - lv_lhs_1_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - // InternalDsl.g:5953:3: ( (lv_operator_2_0= ruleOperator ) ) - // InternalDsl.g:5954:4: (lv_operator_2_0= ruleOperator ) - { - // InternalDsl.g:5954:4: (lv_operator_2_0= ruleOperator ) - // InternalDsl.g:5955:5: lv_operator_2_0= ruleOperator - { - - newCompositeNode(grammarAccess.getExpressionAccess().getOperatorOperatorParserRuleCall_2_0()); - - pushFollow(FOLLOW_3); - lv_operator_2_0=ruleOperator(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getExpressionRule()); - } - set( - current, - "operator", - lv_operator_2_0, - "in.handyman.Dsl.Operator"); - afterParserOrEnumRuleCall(); - - - } - - - } - - // InternalDsl.g:5972:3: ( (lv_rhs_3_0= RULE_STRING ) ) - // InternalDsl.g:5973:4: (lv_rhs_3_0= RULE_STRING ) - { - // InternalDsl.g:5973:4: (lv_rhs_3_0= RULE_STRING ) - // InternalDsl.g:5974:5: lv_rhs_3_0= RULE_STRING - { - lv_rhs_3_0=(Token)match(input,RULE_STRING,FOLLOW_2); - - newLeafNode(lv_rhs_3_0, grammarAccess.getExpressionAccess().getRhsSTRINGTerminalRuleCall_3_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getExpressionRule()); - } - setWithLastConsumed( - current, - "rhs", - lv_rhs_3_0, - "org.eclipse.xtext.common.Terminals.STRING"); - - - } - - - } - - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleExpression" - - - // $ANTLR start "entryRuleOperator" - // InternalDsl.g:5994:1: entryRuleOperator returns [String current=null] : iv_ruleOperator= ruleOperator EOF ; - public final String entryRuleOperator() throws RecognitionException { - String current = null; - - AntlrDatatypeRuleToken iv_ruleOperator = null; - - - try { - // InternalDsl.g:5994:48: (iv_ruleOperator= ruleOperator EOF ) - // InternalDsl.g:5995:2: iv_ruleOperator= ruleOperator EOF - { - newCompositeNode(grammarAccess.getOperatorRule()); - pushFollow(FOLLOW_1); - iv_ruleOperator=ruleOperator(); - - state._fsp--; - - current =iv_ruleOperator.getText(); - match(input,EOF,FOLLOW_2); - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleOperator" - - - // $ANTLR start "ruleOperator" - // InternalDsl.g:6001:1: ruleOperator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '<' | kw= '>' | kw= '==' | kw= 'contains' ) ; - public final AntlrDatatypeRuleToken ruleOperator() throws RecognitionException { - AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); - - Token kw=null; - - - enterRule(); - - try { - // InternalDsl.g:6007:2: ( (kw= '<' | kw= '>' | kw= '==' | kw= 'contains' ) ) - // InternalDsl.g:6008:2: (kw= '<' | kw= '>' | kw= '==' | kw= 'contains' ) - { - // InternalDsl.g:6008:2: (kw= '<' | kw= '>' | kw= '==' | kw= 'contains' ) - int alt6=4; - switch ( input.LA(1) ) { - case 96: - { - alt6=1; - } - break; - case 97: - { - alt6=2; - } - break; - case 98: - { - alt6=3; - } - break; - case 99: - { - alt6=4; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 6, 0, input); - - throw nvae; - } - - switch (alt6) { - case 1 : - // InternalDsl.g:6009:3: kw= '<' - { - kw=(Token)match(input,96,FOLLOW_2); - - current.merge(kw); - newLeafNode(kw, grammarAccess.getOperatorAccess().getLessThanSignKeyword_0()); - - - } - break; - case 2 : - // InternalDsl.g:6015:3: kw= '>' - { - kw=(Token)match(input,97,FOLLOW_2); - - current.merge(kw); - newLeafNode(kw, grammarAccess.getOperatorAccess().getGreaterThanSignKeyword_1()); - - - } - break; - case 3 : - // InternalDsl.g:6021:3: kw= '==' - { - kw=(Token)match(input,98,FOLLOW_2); - - current.merge(kw); - newLeafNode(kw, grammarAccess.getOperatorAccess().getEqualsSignEqualsSignKeyword_2()); - - - } - break; - case 4 : - // InternalDsl.g:6027:3: kw= 'contains' - { - kw=(Token)match(input,99,FOLLOW_2); - - current.merge(kw); - newLeafNode(kw, grammarAccess.getOperatorAccess().getContainsKeyword_3()); - - - } - break; - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleOperator" - - // Delegated rules - - - - - public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000008000L}); - public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0551E1860A422000L,0x000000001C695520L}); - public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L}); - public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L}); - public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000020000000L}); - public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000040000000L}); - public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000080000000L}); - public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000100000000L}); - public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000002000000000L}); - public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000004000000000L}); - public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000020000000000L}); - public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000040000000000L}); - public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000080000000000L}); - public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000100000000000L}); - public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0002000000000000L}); - public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0004000000000000L}); - public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0008000000000000L}); - public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0020000000000000L}); - public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0080000000000000L}); - public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0200000000000000L}); - public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0800000000000000L}); - public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x1000000000000000L}); - public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x2000000000000000L}); - public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x4000000000000000L}); - public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x8000000000000000L}); - public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L}); - public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L}); - public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000002000L,0x0000000000000008L}); - public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L}); - public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L}); - public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L}); - public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L}); - public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L}); - public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); - public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L}); - public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L}); - public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L}); - public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L}); - public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L}); - public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L}); - public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); - public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L}); - public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L}); - public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000000000L,0x0000000F00000000L}); - -} \ No newline at end of file diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/scoping/AbstractDslScopeProvider.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/scoping/AbstractDslScopeProvider.java deleted file mode 100644 index d3d86631..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/scoping/AbstractDslScopeProvider.java +++ /dev/null @@ -1,9 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman.scoping; - -import org.eclipse.xtext.scoping.impl.DelegatingScopeProvider; - -public abstract class AbstractDslScopeProvider extends DelegatingScopeProvider { -} diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/serializer/DslSemanticSequencer.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/serializer/DslSemanticSequencer.java deleted file mode 100644 index 5c2b9425..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/serializer/DslSemanticSequencer.java +++ /dev/null @@ -1,1409 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman.serializer; - -import com.google.inject.Inject; -import in.handyman.dsl.Abort; -import in.handyman.dsl.Callprocess; -import in.handyman.dsl.Catch; -import in.handyman.dsl.ClickSendSms; -import in.handyman.dsl.Copydata; -import in.handyman.dsl.Dogleg; -import in.handyman.dsl.Doozle; -import in.handyman.dsl.Dropfile; -import in.handyman.dsl.DslPackage; -import in.handyman.dsl.ExecJava; -import in.handyman.dsl.Expression; -import in.handyman.dsl.FBCLead; -import in.handyman.dsl.FBFormDownload; -import in.handyman.dsl.Fetch; -import in.handyman.dsl.Finally; -import in.handyman.dsl.FirebaseDatabasePut; -import in.handyman.dsl.FirebaseReactiveNotification; -import in.handyman.dsl.Forkprocess; -import in.handyman.dsl.GooglecalPUT; -import in.handyman.dsl.GooglecontactPUT; -import in.handyman.dsl.GooglecontactSelectAll; -import in.handyman.dsl.LoadCsv; -import in.handyman.dsl.Rest; -import in.handyman.dsl.RestPart; -import in.handyman.dsl.SendMail; -import in.handyman.dsl.SlackPUT; -import in.handyman.dsl.SmsLeadSms; -import in.handyman.dsl.Spawnprocess; -import in.handyman.dsl.StartProcess; -import in.handyman.dsl.Transform; -import in.handyman.dsl.TrelloGET; -import in.handyman.dsl.TrelloPUT; -import in.handyman.dsl.Try; -import in.handyman.dsl.Updatedaudit; -import in.handyman.dsl.WriteCsv; -import in.handyman.services.DslGrammarAccess; -import java.util.Set; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.xtext.Action; -import org.eclipse.xtext.Parameter; -import org.eclipse.xtext.ParserRule; -import org.eclipse.xtext.serializer.ISerializationContext; -import org.eclipse.xtext.serializer.acceptor.SequenceFeeder; -import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer; -import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient; - -@SuppressWarnings("all") -public class DslSemanticSequencer extends AbstractDelegatingSemanticSequencer { - - @Inject - private DslGrammarAccess grammarAccess; - - @Override - public void sequence(ISerializationContext context, EObject semanticObject) { - EPackage epackage = semanticObject.eClass().getEPackage(); - ParserRule rule = context.getParserRule(); - Action action = context.getAssignedAction(); - Set parameters = context.getEnabledBooleanParameters(); - if (epackage == DslPackage.eINSTANCE) - switch (semanticObject.eClass().getClassifierID()) { - case DslPackage.ABORT: - sequence_Abort(context, (Abort) semanticObject); - return; - case DslPackage.CALLPROCESS: - sequence_Callprocess(context, (Callprocess) semanticObject); - return; - case DslPackage.CATCH: - sequence_Catch(context, (Catch) semanticObject); - return; - case DslPackage.CLICK_SEND_SMS: - sequence_ClickSendSms(context, (ClickSendSms) semanticObject); - return; - case DslPackage.COPYDATA: - sequence_Copydata(context, (Copydata) semanticObject); - return; - case DslPackage.DOGLEG: - sequence_Dogleg(context, (Dogleg) semanticObject); - return; - case DslPackage.DOOZLE: - sequence_Doozle(context, (Doozle) semanticObject); - return; - case DslPackage.DROPFILE: - sequence_Dropfile(context, (Dropfile) semanticObject); - return; - case DslPackage.EXEC_JAVA: - sequence_ExecJava(context, (ExecJava) semanticObject); - return; - case DslPackage.EXPRESSION: - sequence_Expression(context, (Expression) semanticObject); - return; - case DslPackage.FBC_LEAD: - sequence_FBCLead(context, (FBCLead) semanticObject); - return; - case DslPackage.FB_FORM_DOWNLOAD: - sequence_FBFormDownload(context, (FBFormDownload) semanticObject); - return; - case DslPackage.FETCH: - sequence_Fetch(context, (Fetch) semanticObject); - return; - case DslPackage.FINALLY: - sequence_Finally(context, (Finally) semanticObject); - return; - case DslPackage.FIREBASE_DATABASE_PUT: - sequence_FirebaseDatabasePut(context, (FirebaseDatabasePut) semanticObject); - return; - case DslPackage.FIREBASE_REACTIVE_NOTIFICATION: - sequence_FirebaseReactiveNotification(context, (FirebaseReactiveNotification) semanticObject); - return; - case DslPackage.FORKPROCESS: - sequence_Forkprocess(context, (Forkprocess) semanticObject); - return; - case DslPackage.GOOGLECAL_PUT: - sequence_GooglecalPUT(context, (GooglecalPUT) semanticObject); - return; - case DslPackage.GOOGLECONTACT_PUT: - sequence_GooglecontactPUT(context, (GooglecontactPUT) semanticObject); - return; - case DslPackage.GOOGLECONTACT_SELECT_ALL: - sequence_GooglecontactSelectAll(context, (GooglecontactSelectAll) semanticObject); - return; - case DslPackage.LOAD_CSV: - sequence_LoadCsv(context, (LoadCsv) semanticObject); - return; - case DslPackage.PROCESS: - sequence_Process(context, (in.handyman.dsl.Process) semanticObject); - return; - case DslPackage.REST: - sequence_Rest(context, (Rest) semanticObject); - return; - case DslPackage.REST_PART: - sequence_RestPart(context, (RestPart) semanticObject); - return; - case DslPackage.SEND_MAIL: - sequence_SendMail(context, (SendMail) semanticObject); - return; - case DslPackage.SLACK_PUT: - sequence_SlackPUT(context, (SlackPUT) semanticObject); - return; - case DslPackage.SMS_LEAD_SMS: - sequence_SmsLeadSms(context, (SmsLeadSms) semanticObject); - return; - case DslPackage.SPAWNPROCESS: - sequence_Spawnprocess(context, (Spawnprocess) semanticObject); - return; - case DslPackage.START_PROCESS: - sequence_StartProcess(context, (StartProcess) semanticObject); - return; - case DslPackage.TRANSFORM: - sequence_Transform(context, (Transform) semanticObject); - return; - case DslPackage.TRELLO_GET: - sequence_TrelloGET(context, (TrelloGET) semanticObject); - return; - case DslPackage.TRELLO_PUT: - sequence_TrelloPUT(context, (TrelloPUT) semanticObject); - return; - case DslPackage.TRY: - sequence_Try(context, (Try) semanticObject); - return; - case DslPackage.UPDATEDAUDIT: - sequence_Updatedaudit(context, (Updatedaudit) semanticObject); - return; - case DslPackage.WRITE_CSV: - sequence_WriteCsv(context, (WriteCsv) semanticObject); - return; - } - if (errorAcceptor != null) - errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); - } - - /** - * Contexts: - * Action returns Abort - * Abort returns Abort - * - * Constraint: - * (name=STRING value=STRING condition=Expression) - */ - protected void sequence_Abort(ISerializationContext context, Abort semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ABORT__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ABORT__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getAbortAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getAbortAccess().getValueSTRINGTerminalRuleCall_4_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getAbortAccess().getConditionExpressionParserRuleCall_7_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns Callprocess - * Callprocess returns Callprocess - * - * Constraint: - * ( - * name=STRING - * target=STRING - * source=STRING - * datasource=STRING - * value=SelectStatement - * condition=Expression - * ) - */ - protected void sequence_Callprocess(ISerializationContext context, Callprocess semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.CALLPROCESS__TARGET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.CALLPROCESS__TARGET)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.CALLPROCESS__SOURCE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.CALLPROCESS__SOURCE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.CALLPROCESS__DATASOURCE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.CALLPROCESS__DATASOURCE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.CALLPROCESS__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.CALLPROCESS__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getCallprocessAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getCallprocessAccess().getTargetSTRINGTerminalRuleCall_4_0(), semanticObject.getTarget()); - feeder.accept(grammarAccess.getCallprocessAccess().getSourceSTRINGTerminalRuleCall_6_0(), semanticObject.getSource()); - feeder.accept(grammarAccess.getCallprocessAccess().getDatasourceSTRINGTerminalRuleCall_8_0(), semanticObject.getDatasource()); - feeder.accept(grammarAccess.getCallprocessAccess().getValueSelectStatementParserRuleCall_11_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getCallprocessAccess().getConditionExpressionParserRuleCall_14_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Catch returns Catch - * - * Constraint: - * (name=ID action+=Action*) - */ - protected void sequence_Catch(ISerializationContext context, Catch semanticObject) { - genericSequencer.createSequence(context, semanticObject); - } - - - /** - * Contexts: - * Action returns ClickSendSms - * ClickSendSms returns ClickSendSms - * - * Constraint: - * ( - * name=STRING - * userid=STRING - * securityKey=STRING - * target=STRING - * value=STRING - * condition=Expression - * ) - */ - protected void sequence_ClickSendSms(ISerializationContext context, ClickSendSms semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.CLICK_SEND_SMS__USERID) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.CLICK_SEND_SMS__USERID)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.CLICK_SEND_SMS__SECURITY_KEY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.CLICK_SEND_SMS__SECURITY_KEY)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.CLICK_SEND_SMS__TARGET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.CLICK_SEND_SMS__TARGET)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.CLICK_SEND_SMS__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.CLICK_SEND_SMS__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getClickSendSmsAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getClickSendSmsAccess().getUseridSTRINGTerminalRuleCall_4_0(), semanticObject.getUserid()); - feeder.accept(grammarAccess.getClickSendSmsAccess().getSecurityKeySTRINGTerminalRuleCall_6_0(), semanticObject.getSecurityKey()); - feeder.accept(grammarAccess.getClickSendSmsAccess().getTargetSTRINGTerminalRuleCall_8_0(), semanticObject.getTarget()); - feeder.accept(grammarAccess.getClickSendSmsAccess().getValueSTRINGTerminalRuleCall_11_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getClickSendSmsAccess().getConditionExpressionParserRuleCall_14_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns Copydata - * Copydata returns Copydata - * - * Constraint: - * ( - * name=STRING - * source=STRING - * to=STRING - * value=STRING - * condition=Expression - * writeThreadCount=STRING - * fetchBatchSize=STRING - * writeBatchSize=STRING - * ) - */ - protected void sequence_Copydata(ISerializationContext context, Copydata semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.COPYDATA__SOURCE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.COPYDATA__SOURCE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.COPYDATA__TO) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.COPYDATA__TO)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.COPYDATA__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.COPYDATA__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.COPYDATA__WRITE_THREAD_COUNT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.COPYDATA__WRITE_THREAD_COUNT)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.COPYDATA__FETCH_BATCH_SIZE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.COPYDATA__FETCH_BATCH_SIZE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.COPYDATA__WRITE_BATCH_SIZE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.COPYDATA__WRITE_BATCH_SIZE)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getCopydataAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getCopydataAccess().getSourceSTRINGTerminalRuleCall_4_0(), semanticObject.getSource()); - feeder.accept(grammarAccess.getCopydataAccess().getToSTRINGTerminalRuleCall_6_0(), semanticObject.getTo()); - feeder.accept(grammarAccess.getCopydataAccess().getValueSTRINGTerminalRuleCall_9_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getCopydataAccess().getConditionExpressionParserRuleCall_12_0(), semanticObject.getCondition()); - feeder.accept(grammarAccess.getCopydataAccess().getWriteThreadCountSTRINGTerminalRuleCall_14_0(), semanticObject.getWriteThreadCount()); - feeder.accept(grammarAccess.getCopydataAccess().getFetchBatchSizeSTRINGTerminalRuleCall_16_0(), semanticObject.getFetchBatchSize()); - feeder.accept(grammarAccess.getCopydataAccess().getWriteBatchSizeSTRINGTerminalRuleCall_18_0(), semanticObject.getWriteBatchSize()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns Dogleg - * Dogleg returns Dogleg - * - * Constraint: - * (name=STRING inheritContext=STRING processList+=StartProcess condition=Expression) - */ - protected void sequence_Dogleg(ISerializationContext context, Dogleg semanticObject) { - genericSequencer.createSequence(context, semanticObject); - } - - - /** - * Contexts: - * Action returns Doozle - * Doozle returns Doozle - * - * Constraint: - * (name=STRING target=STRING on=STRING value=CreateStatement condition=Expression) - */ - protected void sequence_Doozle(ISerializationContext context, Doozle semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.DOOZLE__TARGET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.DOOZLE__TARGET)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.DOOZLE__ON) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.DOOZLE__ON)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.DOOZLE__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.DOOZLE__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getDoozleAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getDoozleAccess().getTargetSTRINGTerminalRuleCall_4_0(), semanticObject.getTarget()); - feeder.accept(grammarAccess.getDoozleAccess().getOnSTRINGTerminalRuleCall_6_0(), semanticObject.getOn()); - feeder.accept(grammarAccess.getDoozleAccess().getValueCreateStatementParserRuleCall_9_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getDoozleAccess().getConditionExpressionParserRuleCall_12_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns Dropfile - * Dropfile returns Dropfile - * - * Constraint: - * (name=STRING target=STRING condition=Expression) - */ - protected void sequence_Dropfile(ISerializationContext context, Dropfile semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.DROPFILE__TARGET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.DROPFILE__TARGET)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getDropfileAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getDropfileAccess().getTargetSTRINGTerminalRuleCall_4_0(), semanticObject.getTarget()); - feeder.accept(grammarAccess.getDropfileAccess().getConditionExpressionParserRuleCall_6_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns ExecJava - * ExecJava returns ExecJava - * - * Constraint: - * (name=STRING classFqn=STRING dbSrc=STRING value=STRING condition=Expression) - */ - protected void sequence_ExecJava(ISerializationContext context, ExecJava semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.EXEC_JAVA__CLASS_FQN) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.EXEC_JAVA__CLASS_FQN)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.EXEC_JAVA__DB_SRC) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.EXEC_JAVA__DB_SRC)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.EXEC_JAVA__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.EXEC_JAVA__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getExecJavaAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getExecJavaAccess().getClassFqnSTRINGTerminalRuleCall_4_0(), semanticObject.getClassFqn()); - feeder.accept(grammarAccess.getExecJavaAccess().getDbSrcSTRINGTerminalRuleCall_6_0(), semanticObject.getDbSrc()); - feeder.accept(grammarAccess.getExecJavaAccess().getValueSTRINGTerminalRuleCall_8_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getExecJavaAccess().getConditionExpressionParserRuleCall_11_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Expression returns Expression - * - * Constraint: - * (lhs=STRING operator=Operator rhs=STRING) - */ - protected void sequence_Expression(ISerializationContext context, Expression semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.EXPRESSION__LHS) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.EXPRESSION__LHS)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.EXPRESSION__OPERATOR) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.EXPRESSION__OPERATOR)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.EXPRESSION__RHS) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.EXPRESSION__RHS)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getExpressionAccess().getLhsSTRINGTerminalRuleCall_1_0(), semanticObject.getLhs()); - feeder.accept(grammarAccess.getExpressionAccess().getOperatorOperatorParserRuleCall_2_0(), semanticObject.getOperator()); - feeder.accept(grammarAccess.getExpressionAccess().getRhsSTRINGTerminalRuleCall_3_0(), semanticObject.getRhs()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns FBCLead - * FBCLead returns FBCLead - * - * Constraint: - * ( - * name=STRING - * accessToken=STRING - * appSecret=STRING - * accountId=STRING - * campaignId=STRING - * target=STRING - * value=STRING - * condition=Expression - * ) - */ - protected void sequence_FBCLead(ISerializationContext context, FBCLead semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FBC_LEAD__ACCESS_TOKEN) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FBC_LEAD__ACCESS_TOKEN)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FBC_LEAD__APP_SECRET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FBC_LEAD__APP_SECRET)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FBC_LEAD__ACCOUNT_ID) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FBC_LEAD__ACCOUNT_ID)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FBC_LEAD__CAMPAIGN_ID) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FBC_LEAD__CAMPAIGN_ID)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FBC_LEAD__TARGET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FBC_LEAD__TARGET)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FBC_LEAD__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FBC_LEAD__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getFBCLeadAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getFBCLeadAccess().getAccessTokenSTRINGTerminalRuleCall_4_0(), semanticObject.getAccessToken()); - feeder.accept(grammarAccess.getFBCLeadAccess().getAppSecretSTRINGTerminalRuleCall_6_0(), semanticObject.getAppSecret()); - feeder.accept(grammarAccess.getFBCLeadAccess().getAccountIdSTRINGTerminalRuleCall_8_0(), semanticObject.getAccountId()); - feeder.accept(grammarAccess.getFBCLeadAccess().getCampaignIdSTRINGTerminalRuleCall_10_0(), semanticObject.getCampaignId()); - feeder.accept(grammarAccess.getFBCLeadAccess().getTargetSTRINGTerminalRuleCall_12_0(), semanticObject.getTarget()); - feeder.accept(grammarAccess.getFBCLeadAccess().getValueSTRINGTerminalRuleCall_15_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getFBCLeadAccess().getConditionExpressionParserRuleCall_18_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns FBFormDownload - * FBFormDownload returns FBFormDownload - * - * Constraint: - * ( - * name=STRING - * accessToken=STRING - * appSecret=STRING - * accountId=STRING - * formId=STRING - * target=STRING - * value=STRING - * condition=Expression - * ) - */ - protected void sequence_FBFormDownload(ISerializationContext context, FBFormDownload semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__ACCESS_TOKEN) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__ACCESS_TOKEN)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__APP_SECRET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__APP_SECRET)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__ACCOUNT_ID) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__ACCOUNT_ID)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__FORM_ID) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__FORM_ID)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__TARGET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__TARGET)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FB_FORM_DOWNLOAD__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getFBFormDownloadAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getFBFormDownloadAccess().getAccessTokenSTRINGTerminalRuleCall_4_0(), semanticObject.getAccessToken()); - feeder.accept(grammarAccess.getFBFormDownloadAccess().getAppSecretSTRINGTerminalRuleCall_6_0(), semanticObject.getAppSecret()); - feeder.accept(grammarAccess.getFBFormDownloadAccess().getAccountIdSTRINGTerminalRuleCall_8_0(), semanticObject.getAccountId()); - feeder.accept(grammarAccess.getFBFormDownloadAccess().getFormIdSTRINGTerminalRuleCall_10_0(), semanticObject.getFormId()); - feeder.accept(grammarAccess.getFBFormDownloadAccess().getTargetSTRINGTerminalRuleCall_12_0(), semanticObject.getTarget()); - feeder.accept(grammarAccess.getFBFormDownloadAccess().getValueSTRINGTerminalRuleCall_15_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getFBFormDownloadAccess().getConditionExpressionParserRuleCall_18_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns Fetch - * Fetch returns Fetch - * - * Constraint: - * (name=STRING source=STRING value=STRING condition=Expression) - */ - protected void sequence_Fetch(ISerializationContext context, Fetch semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FETCH__SOURCE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FETCH__SOURCE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FETCH__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FETCH__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getFetchAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getFetchAccess().getSourceSTRINGTerminalRuleCall_4_0(), semanticObject.getSource()); - feeder.accept(grammarAccess.getFetchAccess().getValueSTRINGTerminalRuleCall_7_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getFetchAccess().getConditionExpressionParserRuleCall_10_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Finally returns Finally - * - * Constraint: - * (name=ID action+=Action*) - */ - protected void sequence_Finally(ISerializationContext context, Finally semanticObject) { - genericSequencer.createSequence(context, semanticObject); - } - - - /** - * Contexts: - * Action returns FirebaseDatabasePut - * FirebaseDatabasePut returns FirebaseDatabasePut - * - * Constraint: - * ( - * name=STRING - * url=STRING - * fbjson=STRING - * groupPath=STRING - * dbSrc=STRING - * classFqn=STRING - * value=STRING - * condition=Expression - * ) - */ - protected void sequence_FirebaseDatabasePut(ISerializationContext context, FirebaseDatabasePut semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__URL) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__URL)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__FBJSON) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__FBJSON)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__GROUP_PATH) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__GROUP_PATH)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__DB_SRC) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__DB_SRC)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__CLASS_FQN) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__CLASS_FQN)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FIREBASE_DATABASE_PUT__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getFirebaseDatabasePutAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getFirebaseDatabasePutAccess().getUrlSTRINGTerminalRuleCall_4_0(), semanticObject.getUrl()); - feeder.accept(grammarAccess.getFirebaseDatabasePutAccess().getFbjsonSTRINGTerminalRuleCall_6_0(), semanticObject.getFbjson()); - feeder.accept(grammarAccess.getFirebaseDatabasePutAccess().getGroupPathSTRINGTerminalRuleCall_8_0(), semanticObject.getGroupPath()); - feeder.accept(grammarAccess.getFirebaseDatabasePutAccess().getDbSrcSTRINGTerminalRuleCall_10_0(), semanticObject.getDbSrc()); - feeder.accept(grammarAccess.getFirebaseDatabasePutAccess().getClassFqnSTRINGTerminalRuleCall_12_0(), semanticObject.getClassFqn()); - feeder.accept(grammarAccess.getFirebaseDatabasePutAccess().getValueSTRINGTerminalRuleCall_15_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getFirebaseDatabasePutAccess().getConditionExpressionParserRuleCall_18_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns FirebaseReactiveNotification - * FirebaseReactiveNotification returns FirebaseReactiveNotification - * - * Constraint: - * ( - * name=STRING - * url=STRING - * fbjson=STRING - * groupPath=STRING - * classFqn=STRING - * dbSrc=STRING - * condition=Expression - * ) - */ - protected void sequence_FirebaseReactiveNotification(ISerializationContext context, FirebaseReactiveNotification semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FIREBASE_REACTIVE_NOTIFICATION__URL) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FIREBASE_REACTIVE_NOTIFICATION__URL)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FIREBASE_REACTIVE_NOTIFICATION__FBJSON) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FIREBASE_REACTIVE_NOTIFICATION__FBJSON)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FIREBASE_REACTIVE_NOTIFICATION__GROUP_PATH) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FIREBASE_REACTIVE_NOTIFICATION__GROUP_PATH)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FIREBASE_REACTIVE_NOTIFICATION__CLASS_FQN) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FIREBASE_REACTIVE_NOTIFICATION__CLASS_FQN)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FIREBASE_REACTIVE_NOTIFICATION__DB_SRC) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FIREBASE_REACTIVE_NOTIFICATION__DB_SRC)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getFirebaseReactiveNotificationAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getFirebaseReactiveNotificationAccess().getUrlSTRINGTerminalRuleCall_4_0(), semanticObject.getUrl()); - feeder.accept(grammarAccess.getFirebaseReactiveNotificationAccess().getFbjsonSTRINGTerminalRuleCall_6_0(), semanticObject.getFbjson()); - feeder.accept(grammarAccess.getFirebaseReactiveNotificationAccess().getGroupPathSTRINGTerminalRuleCall_8_0(), semanticObject.getGroupPath()); - feeder.accept(grammarAccess.getFirebaseReactiveNotificationAccess().getClassFqnSTRINGTerminalRuleCall_10_0(), semanticObject.getClassFqn()); - feeder.accept(grammarAccess.getFirebaseReactiveNotificationAccess().getDbSrcSTRINGTerminalRuleCall_12_0(), semanticObject.getDbSrc()); - feeder.accept(grammarAccess.getFirebaseReactiveNotificationAccess().getConditionExpressionParserRuleCall_14_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns Forkprocess - * Forkprocess returns Forkprocess - * - * Constraint: - * ( - * name=STRING - * target=STRING - * source=STRING - * datasource=STRING - * value=SelectStatement - * forkBatchSize=STRING - * condition=Expression - * ) - */ - protected void sequence_Forkprocess(ISerializationContext context, Forkprocess semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FORKPROCESS__TARGET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FORKPROCESS__TARGET)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FORKPROCESS__SOURCE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FORKPROCESS__SOURCE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FORKPROCESS__DATASOURCE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FORKPROCESS__DATASOURCE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FORKPROCESS__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FORKPROCESS__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.FORKPROCESS__FORK_BATCH_SIZE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.FORKPROCESS__FORK_BATCH_SIZE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getForkprocessAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getForkprocessAccess().getTargetSTRINGTerminalRuleCall_4_0(), semanticObject.getTarget()); - feeder.accept(grammarAccess.getForkprocessAccess().getSourceSTRINGTerminalRuleCall_6_0(), semanticObject.getSource()); - feeder.accept(grammarAccess.getForkprocessAccess().getDatasourceSTRINGTerminalRuleCall_8_0(), semanticObject.getDatasource()); - feeder.accept(grammarAccess.getForkprocessAccess().getValueSelectStatementParserRuleCall_11_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getForkprocessAccess().getForkBatchSizeSTRINGTerminalRuleCall_14_0(), semanticObject.getForkBatchSize()); - feeder.accept(grammarAccess.getForkprocessAccess().getConditionExpressionParserRuleCall_16_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns GooglecalPUT - * GooglecalPUT returns GooglecalPUT - * - * Constraint: - * ( - * name=STRING - * account=STRING - * privateKey=STRING - * ptwelveFile=STRING - * project=STRING - * impersonatedUser=STRING - * dbSrc=STRING - * value=STRING - * condition=Expression - * ) - */ - protected void sequence_GooglecalPUT(ISerializationContext context, GooglecalPUT semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__ACCOUNT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__ACCOUNT)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__PRIVATE_KEY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__PRIVATE_KEY)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__PTWELVE_FILE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__PTWELVE_FILE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__PROJECT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__PROJECT)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__IMPERSONATED_USER) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__IMPERSONATED_USER)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__DB_SRC) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__DB_SRC)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECAL_PUT__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getGooglecalPUTAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getGooglecalPUTAccess().getAccountSTRINGTerminalRuleCall_4_0(), semanticObject.getAccount()); - feeder.accept(grammarAccess.getGooglecalPUTAccess().getPrivateKeySTRINGTerminalRuleCall_6_0(), semanticObject.getPrivateKey()); - feeder.accept(grammarAccess.getGooglecalPUTAccess().getPtwelveFileSTRINGTerminalRuleCall_8_0(), semanticObject.getPtwelveFile()); - feeder.accept(grammarAccess.getGooglecalPUTAccess().getProjectSTRINGTerminalRuleCall_10_0(), semanticObject.getProject()); - feeder.accept(grammarAccess.getGooglecalPUTAccess().getImpersonatedUserSTRINGTerminalRuleCall_12_0(), semanticObject.getImpersonatedUser()); - feeder.accept(grammarAccess.getGooglecalPUTAccess().getDbSrcSTRINGTerminalRuleCall_14_0(), semanticObject.getDbSrc()); - feeder.accept(grammarAccess.getGooglecalPUTAccess().getValueSTRINGTerminalRuleCall_17_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getGooglecalPUTAccess().getConditionExpressionParserRuleCall_20_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns GooglecontactPUT - * GooglecontactPUT returns GooglecontactPUT - * - * Constraint: - * ( - * name=STRING - * account=STRING - * privateKey=STRING - * ptwelveFile=STRING - * project=STRING - * impersonatedUser=STRING - * dbSrc=STRING - * value=STRING - * condition=Expression - * ) - */ - protected void sequence_GooglecontactPUT(ISerializationContext context, GooglecontactPUT semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__ACCOUNT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__ACCOUNT)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__PRIVATE_KEY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__PRIVATE_KEY)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__PTWELVE_FILE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__PTWELVE_FILE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__PROJECT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__PROJECT)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__IMPERSONATED_USER) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__IMPERSONATED_USER)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__DB_SRC) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__DB_SRC)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_PUT__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getGooglecontactPUTAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getGooglecontactPUTAccess().getAccountSTRINGTerminalRuleCall_4_0(), semanticObject.getAccount()); - feeder.accept(grammarAccess.getGooglecontactPUTAccess().getPrivateKeySTRINGTerminalRuleCall_6_0(), semanticObject.getPrivateKey()); - feeder.accept(grammarAccess.getGooglecontactPUTAccess().getPtwelveFileSTRINGTerminalRuleCall_8_0(), semanticObject.getPtwelveFile()); - feeder.accept(grammarAccess.getGooglecontactPUTAccess().getProjectSTRINGTerminalRuleCall_10_0(), semanticObject.getProject()); - feeder.accept(grammarAccess.getGooglecontactPUTAccess().getImpersonatedUserSTRINGTerminalRuleCall_12_0(), semanticObject.getImpersonatedUser()); - feeder.accept(grammarAccess.getGooglecontactPUTAccess().getDbSrcSTRINGTerminalRuleCall_14_0(), semanticObject.getDbSrc()); - feeder.accept(grammarAccess.getGooglecontactPUTAccess().getValueSTRINGTerminalRuleCall_17_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getGooglecontactPUTAccess().getConditionExpressionParserRuleCall_20_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns GooglecontactSelectAll - * GooglecontactSelectAll returns GooglecontactSelectAll - * - * Constraint: - * ( - * name=STRING - * account=STRING - * privateKey=STRING - * ptwelveFile=STRING - * project=STRING - * impersonatedUser=STRING - * dbSrc=STRING - * value=STRING - * condition=Expression - * ) - */ - protected void sequence_GooglecontactSelectAll(ISerializationContext context, GooglecontactSelectAll semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__ACCOUNT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__ACCOUNT)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__PRIVATE_KEY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__PRIVATE_KEY)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__PTWELVE_FILE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__PTWELVE_FILE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__PROJECT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__PROJECT)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__IMPERSONATED_USER) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__IMPERSONATED_USER)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__DB_SRC) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__DB_SRC)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.GOOGLECONTACT_SELECT_ALL__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getGooglecontactSelectAllAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getGooglecontactSelectAllAccess().getAccountSTRINGTerminalRuleCall_4_0(), semanticObject.getAccount()); - feeder.accept(grammarAccess.getGooglecontactSelectAllAccess().getPrivateKeySTRINGTerminalRuleCall_6_0(), semanticObject.getPrivateKey()); - feeder.accept(grammarAccess.getGooglecontactSelectAllAccess().getPtwelveFileSTRINGTerminalRuleCall_8_0(), semanticObject.getPtwelveFile()); - feeder.accept(grammarAccess.getGooglecontactSelectAllAccess().getProjectSTRINGTerminalRuleCall_10_0(), semanticObject.getProject()); - feeder.accept(grammarAccess.getGooglecontactSelectAllAccess().getImpersonatedUserSTRINGTerminalRuleCall_12_0(), semanticObject.getImpersonatedUser()); - feeder.accept(grammarAccess.getGooglecontactSelectAllAccess().getDbSrcSTRINGTerminalRuleCall_14_0(), semanticObject.getDbSrc()); - feeder.accept(grammarAccess.getGooglecontactSelectAllAccess().getValueSTRINGTerminalRuleCall_17_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getGooglecontactSelectAllAccess().getConditionExpressionParserRuleCall_20_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns LoadCsv - * LoadCsv returns LoadCsv - * - * Constraint: - * ( - * name=STRING - * source=STRING - * to=STRING - * delim=STRING - * fetchBatchSize=INT - * writeBatchSize=INT - * value=SelectStatement - * condition=Expression - * writeThreadCount=INT - * ) - */ - protected void sequence_LoadCsv(ISerializationContext context, LoadCsv semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.LOAD_CSV__SOURCE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.LOAD_CSV__SOURCE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.LOAD_CSV__TO) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.LOAD_CSV__TO)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.LOAD_CSV__DELIM) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.LOAD_CSV__DELIM)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.LOAD_CSV__FETCH_BATCH_SIZE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.LOAD_CSV__FETCH_BATCH_SIZE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.LOAD_CSV__WRITE_BATCH_SIZE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.LOAD_CSV__WRITE_BATCH_SIZE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.LOAD_CSV__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.LOAD_CSV__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.LOAD_CSV__WRITE_THREAD_COUNT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.LOAD_CSV__WRITE_THREAD_COUNT)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getLoadCsvAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getLoadCsvAccess().getSourceSTRINGTerminalRuleCall_4_0(), semanticObject.getSource()); - feeder.accept(grammarAccess.getLoadCsvAccess().getToSTRINGTerminalRuleCall_6_0(), semanticObject.getTo()); - feeder.accept(grammarAccess.getLoadCsvAccess().getDelimSTRINGTerminalRuleCall_8_0(), semanticObject.getDelim()); - feeder.accept(grammarAccess.getLoadCsvAccess().getFetchBatchSizeINTTerminalRuleCall_10_0(), semanticObject.getFetchBatchSize()); - feeder.accept(grammarAccess.getLoadCsvAccess().getWriteBatchSizeINTTerminalRuleCall_12_0(), semanticObject.getWriteBatchSize()); - feeder.accept(grammarAccess.getLoadCsvAccess().getValueSelectStatementParserRuleCall_15_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getLoadCsvAccess().getConditionExpressionParserRuleCall_18_0(), semanticObject.getCondition()); - feeder.accept(grammarAccess.getLoadCsvAccess().getWriteThreadCountINTTerminalRuleCall_20_0(), semanticObject.getWriteThreadCount()); - feeder.finish(); - } - - - /** - * Contexts: - * Process returns Process - * - * Constraint: - * (name=STRING try=Try catch=Catch finally=Finally) - */ - protected void sequence_Process(ISerializationContext context, in.handyman.dsl.Process semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.PROCESS__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.PROCESS__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.PROCESS__TRY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.PROCESS__TRY)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.PROCESS__CATCH) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.PROCESS__CATCH)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.PROCESS__FINALLY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.PROCESS__FINALLY)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getProcessAccess().getNameSTRINGTerminalRuleCall_1_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getProcessAccess().getTryTryParserRuleCall_3_0(), semanticObject.getTry()); - feeder.accept(grammarAccess.getProcessAccess().getCatchCatchParserRuleCall_4_0(), semanticObject.getCatch()); - feeder.accept(grammarAccess.getProcessAccess().getFinallyFinallyParserRuleCall_5_0(), semanticObject.getFinally()); - feeder.finish(); - } - - - /** - * Contexts: - * RestPart returns RestPart - * - * Constraint: - * (partName=STRING partData=SelectStatement) - */ - protected void sequence_RestPart(ISerializationContext context, RestPart semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.REST_PART__PART_NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.REST_PART__PART_NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.REST_PART__PART_DATA) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.REST_PART__PART_DATA)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getRestPartAccess().getPartNameSTRINGTerminalRuleCall_2_0(), semanticObject.getPartName()); - feeder.accept(grammarAccess.getRestPartAccess().getPartDataSelectStatementParserRuleCall_4_0(), semanticObject.getPartData()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns Rest - * Rest returns Rest - * - * Constraint: - * ( - * name=STRING - * authtoken=STRING - * url=STRING - * method=STRING - * resourcedatafrom=STRING - * urldata=SelectStatement - * headerdatafrom=STRING - * headerdata=SelectStatement - * postdatafrom=STRING - * parentName=STRING - * parentdata=SelectStatement - * parts+=RestPart* - * ackdatato=STRING - * ackdata=SelectStatement - * condition=Expression - * ) - */ - protected void sequence_Rest(ISerializationContext context, Rest semanticObject) { - genericSequencer.createSequence(context, semanticObject); - } - - - /** - * Contexts: - * Action returns SendMail - * SendMail returns SendMail - * - * Constraint: - * ( - * name=STRING - * privateKey=STRING - * impersonatedUser=STRING - * dbSrc=STRING - * value=STRING - * condition=Expression - * dryrunMail=STRING - * ) - */ - protected void sequence_SendMail(ISerializationContext context, SendMail semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SEND_MAIL__PRIVATE_KEY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SEND_MAIL__PRIVATE_KEY)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SEND_MAIL__IMPERSONATED_USER) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SEND_MAIL__IMPERSONATED_USER)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SEND_MAIL__DB_SRC) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SEND_MAIL__DB_SRC)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SEND_MAIL__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SEND_MAIL__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SEND_MAIL__DRYRUN_MAIL) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SEND_MAIL__DRYRUN_MAIL)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getSendMailAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getSendMailAccess().getPrivateKeySTRINGTerminalRuleCall_4_0(), semanticObject.getPrivateKey()); - feeder.accept(grammarAccess.getSendMailAccess().getImpersonatedUserSTRINGTerminalRuleCall_6_0(), semanticObject.getImpersonatedUser()); - feeder.accept(grammarAccess.getSendMailAccess().getDbSrcSTRINGTerminalRuleCall_8_0(), semanticObject.getDbSrc()); - feeder.accept(grammarAccess.getSendMailAccess().getValueSTRINGTerminalRuleCall_11_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getSendMailAccess().getConditionExpressionParserRuleCall_14_0(), semanticObject.getCondition()); - feeder.accept(grammarAccess.getSendMailAccess().getDryrunMailSTRINGTerminalRuleCall_16_0(), semanticObject.getDryrunMail()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns SlackPUT - * SlackPUT returns SlackPUT - * - * Constraint: - * (name=STRING team=STRING channel=STRING value=STRING condition=Expression) - */ - protected void sequence_SlackPUT(ISerializationContext context, SlackPUT semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SLACK_PUT__TEAM) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SLACK_PUT__TEAM)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SLACK_PUT__CHANNEL) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SLACK_PUT__CHANNEL)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SLACK_PUT__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SLACK_PUT__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getSlackPUTAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getSlackPUTAccess().getTeamSTRINGTerminalRuleCall_4_0(), semanticObject.getTeam()); - feeder.accept(grammarAccess.getSlackPUTAccess().getChannelSTRINGTerminalRuleCall_6_0(), semanticObject.getChannel()); - feeder.accept(grammarAccess.getSlackPUTAccess().getValueSTRINGTerminalRuleCall_9_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getSlackPUTAccess().getConditionExpressionParserRuleCall_12_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns SmsLeadSms - * SmsLeadSms returns SmsLeadSms - * - * Constraint: - * ( - * name=STRING - * url=STRING - * sender=STRING - * account=STRING - * privateKey=STRING - * dbSrc=STRING - * value=STRING - * condition=Expression - * dryrunNumber=STRING - * ) - */ - protected void sequence_SmsLeadSms(ISerializationContext context, SmsLeadSms semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__URL) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__URL)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__SENDER) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__SENDER)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__ACCOUNT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__ACCOUNT)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__PRIVATE_KEY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__PRIVATE_KEY)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__DB_SRC) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__DB_SRC)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__DRYRUN_NUMBER) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SMS_LEAD_SMS__DRYRUN_NUMBER)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getSmsLeadSmsAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getSmsLeadSmsAccess().getUrlSTRINGTerminalRuleCall_4_0(), semanticObject.getUrl()); - feeder.accept(grammarAccess.getSmsLeadSmsAccess().getSenderSTRINGTerminalRuleCall_6_0(), semanticObject.getSender()); - feeder.accept(grammarAccess.getSmsLeadSmsAccess().getAccountSTRINGTerminalRuleCall_8_0(), semanticObject.getAccount()); - feeder.accept(grammarAccess.getSmsLeadSmsAccess().getPrivateKeySTRINGTerminalRuleCall_10_0(), semanticObject.getPrivateKey()); - feeder.accept(grammarAccess.getSmsLeadSmsAccess().getDbSrcSTRINGTerminalRuleCall_12_0(), semanticObject.getDbSrc()); - feeder.accept(grammarAccess.getSmsLeadSmsAccess().getValueSTRINGTerminalRuleCall_15_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getSmsLeadSmsAccess().getConditionExpressionParserRuleCall_18_0(), semanticObject.getCondition()); - feeder.accept(grammarAccess.getSmsLeadSmsAccess().getDryrunNumberSTRINGTerminalRuleCall_20_0(), semanticObject.getDryrunNumber()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns Spawnprocess - * Spawnprocess returns Spawnprocess - * - * Constraint: - * (name=STRING target=STRING source=STRING condition=Expression) - */ - protected void sequence_Spawnprocess(ISerializationContext context, Spawnprocess semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SPAWNPROCESS__TARGET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SPAWNPROCESS__TARGET)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.SPAWNPROCESS__SOURCE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.SPAWNPROCESS__SOURCE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getSpawnprocessAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getSpawnprocessAccess().getTargetSTRINGTerminalRuleCall_4_0(), semanticObject.getTarget()); - feeder.accept(grammarAccess.getSpawnprocessAccess().getSourceSTRINGTerminalRuleCall_6_0(), semanticObject.getSource()); - feeder.accept(grammarAccess.getSpawnprocessAccess().getConditionExpressionParserRuleCall_8_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * StartProcess returns StartProcess - * - * Constraint: - * (name=STRING target=STRING) - */ - protected void sequence_StartProcess(ISerializationContext context, StartProcess semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.START_PROCESS__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.START_PROCESS__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.START_PROCESS__TARGET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.START_PROCESS__TARGET)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getStartProcessAccess().getNameSTRINGTerminalRuleCall_1_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getStartProcessAccess().getTargetSTRINGTerminalRuleCall_3_0(), semanticObject.getTarget()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns Transform - * Transform returns Transform - * - * Constraint: - * (name=STRING on=STRING value+=NonSelectStatement condition=Expression) - */ - protected void sequence_Transform(ISerializationContext context, Transform semanticObject) { - genericSequencer.createSequence(context, semanticObject); - } - - - /** - * Contexts: - * Action returns TrelloGET - * TrelloGET returns TrelloGET - * - * Constraint: - * ( - * name=STRING - * authtoken=STRING - * key=STRING - * useraccount=STRING - * board=STRING - * target=STRING - * value=SelectStatement - * condition=Expression - * ) - */ - protected void sequence_TrelloGET(ISerializationContext context, TrelloGET semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_GET__AUTHTOKEN) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_GET__AUTHTOKEN)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_GET__KEY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_GET__KEY)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_GET__USERACCOUNT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_GET__USERACCOUNT)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_GET__BOARD) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_GET__BOARD)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_GET__TARGET) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_GET__TARGET)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_GET__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_GET__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getTrelloGETAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getTrelloGETAccess().getAuthtokenSTRINGTerminalRuleCall_4_0(), semanticObject.getAuthtoken()); - feeder.accept(grammarAccess.getTrelloGETAccess().getKeySTRINGTerminalRuleCall_6_0(), semanticObject.getKey()); - feeder.accept(grammarAccess.getTrelloGETAccess().getUseraccountSTRINGTerminalRuleCall_8_0(), semanticObject.getUseraccount()); - feeder.accept(grammarAccess.getTrelloGETAccess().getBoardSTRINGTerminalRuleCall_10_0(), semanticObject.getBoard()); - feeder.accept(grammarAccess.getTrelloGETAccess().getTargetSTRINGTerminalRuleCall_12_0(), semanticObject.getTarget()); - feeder.accept(grammarAccess.getTrelloGETAccess().getValueSelectStatementParserRuleCall_15_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getTrelloGETAccess().getConditionExpressionParserRuleCall_18_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns TrelloPUT - * TrelloPUT returns TrelloPUT - * - * Constraint: - * ( - * name=STRING - * authtoken=STRING - * key=STRING - * useraccount=STRING - * list=STRING - * source=STRING - * value=SelectStatement - * condition=Expression - * ) - */ - protected void sequence_TrelloPUT(ISerializationContext context, TrelloPUT semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_PUT__AUTHTOKEN) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_PUT__AUTHTOKEN)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_PUT__KEY) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_PUT__KEY)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_PUT__USERACCOUNT) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_PUT__USERACCOUNT)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_PUT__LIST) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_PUT__LIST)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_PUT__SOURCE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_PUT__SOURCE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.TRELLO_PUT__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.TRELLO_PUT__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getTrelloPUTAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getTrelloPUTAccess().getAuthtokenSTRINGTerminalRuleCall_4_0(), semanticObject.getAuthtoken()); - feeder.accept(grammarAccess.getTrelloPUTAccess().getKeySTRINGTerminalRuleCall_6_0(), semanticObject.getKey()); - feeder.accept(grammarAccess.getTrelloPUTAccess().getUseraccountSTRINGTerminalRuleCall_8_0(), semanticObject.getUseraccount()); - feeder.accept(grammarAccess.getTrelloPUTAccess().getListSTRINGTerminalRuleCall_10_0(), semanticObject.getList()); - feeder.accept(grammarAccess.getTrelloPUTAccess().getSourceSTRINGTerminalRuleCall_12_0(), semanticObject.getSource()); - feeder.accept(grammarAccess.getTrelloPUTAccess().getValueSelectStatementParserRuleCall_15_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getTrelloPUTAccess().getConditionExpressionParserRuleCall_18_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Try returns Try - * - * Constraint: - * (name=ID action+=Action*) - */ - protected void sequence_Try(ISerializationContext context, Try semanticObject) { - genericSequencer.createSequence(context, semanticObject); - } - - - /** - * Contexts: - * Action returns Updatedaudit - * Updatedaudit returns Updatedaudit - * - * Constraint: - * (name=STRING logsink=STRING datasource=STRING value=SelectStatement condition=Expression) - */ - protected void sequence_Updatedaudit(ISerializationContext context, Updatedaudit semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.UPDATEDAUDIT__LOGSINK) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.UPDATEDAUDIT__LOGSINK)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.UPDATEDAUDIT__DATASOURCE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.UPDATEDAUDIT__DATASOURCE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.UPDATEDAUDIT__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.UPDATEDAUDIT__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getUpdatedauditAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getUpdatedauditAccess().getLogsinkSTRINGTerminalRuleCall_4_0(), semanticObject.getLogsink()); - feeder.accept(grammarAccess.getUpdatedauditAccess().getDatasourceSTRINGTerminalRuleCall_6_0(), semanticObject.getDatasource()); - feeder.accept(grammarAccess.getUpdatedauditAccess().getValueSelectStatementParserRuleCall_9_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getUpdatedauditAccess().getConditionExpressionParserRuleCall_12_0(), semanticObject.getCondition()); - feeder.finish(); - } - - - /** - * Contexts: - * Action returns WriteCsv - * WriteCsv returns WriteCsv - * - * Constraint: - * ( - * name=STRING - * source=STRING - * to=STRING - * delim=STRING - * value=SelectStatement - * condition=Expression - * ) - */ - protected void sequence_WriteCsv(ISerializationContext context, WriteCsv semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__NAME)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.WRITE_CSV__SOURCE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.WRITE_CSV__SOURCE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.WRITE_CSV__TO) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.WRITE_CSV__TO)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.WRITE_CSV__DELIM) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.WRITE_CSV__DELIM)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.WRITE_CSV__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.WRITE_CSV__VALUE)); - if (transientValues.isValueTransient(semanticObject, DslPackage.Literals.ACTION__CONDITION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DslPackage.Literals.ACTION__CONDITION)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getWriteCsvAccess().getNameSTRINGTerminalRuleCall_2_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getWriteCsvAccess().getSourceSTRINGTerminalRuleCall_4_0(), semanticObject.getSource()); - feeder.accept(grammarAccess.getWriteCsvAccess().getToSTRINGTerminalRuleCall_6_0(), semanticObject.getTo()); - feeder.accept(grammarAccess.getWriteCsvAccess().getDelimSTRINGTerminalRuleCall_8_0(), semanticObject.getDelim()); - feeder.accept(grammarAccess.getWriteCsvAccess().getValueSelectStatementParserRuleCall_11_0(), semanticObject.getValue()); - feeder.accept(grammarAccess.getWriteCsvAccess().getConditionExpressionParserRuleCall_14_0(), semanticObject.getCondition()); - feeder.finish(); - } - - -} diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/serializer/DslSyntacticSequencer.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/serializer/DslSyntacticSequencer.java deleted file mode 100644 index ccbff7ff..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/serializer/DslSyntacticSequencer.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman.serializer; - -import com.google.inject.Inject; -import in.handyman.services.DslGrammarAccess; -import java.util.List; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.xtext.IGrammarAccess; -import org.eclipse.xtext.RuleCall; -import org.eclipse.xtext.nodemodel.INode; -import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias; -import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition; -import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer; - -@SuppressWarnings("all") -public class DslSyntacticSequencer extends AbstractSyntacticSequencer { - - protected DslGrammarAccess grammarAccess; - - @Inject - protected void init(IGrammarAccess access) { - grammarAccess = (DslGrammarAccess) access; - } - - @Override - protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) { - return ""; - } - - - @Override - protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) { - if (transition.getAmbiguousSyntaxes().isEmpty()) return; - List transitionNodes = collectNodes(fromNode, toNode); - for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) { - List syntaxNodes = getNodesFor(transitionNodes, syntax); - acceptNodes(getLastNavigableState(), syntaxNodes); - } - } - -} diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/services/DslGrammarAccess.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/services/DslGrammarAccess.java deleted file mode 100644 index 9f7c83ff..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/services/DslGrammarAccess.java +++ /dev/null @@ -1,4105 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman.services; - -import com.google.inject.Inject; -import com.google.inject.Singleton; -import java.util.List; -import org.eclipse.xtext.Alternatives; -import org.eclipse.xtext.Assignment; -import org.eclipse.xtext.Grammar; -import org.eclipse.xtext.GrammarUtil; -import org.eclipse.xtext.Group; -import org.eclipse.xtext.Keyword; -import org.eclipse.xtext.ParserRule; -import org.eclipse.xtext.RuleCall; -import org.eclipse.xtext.TerminalRule; -import org.eclipse.xtext.common.services.TerminalsGrammarAccess; -import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder; -import org.eclipse.xtext.service.GrammarProvider; - -@Singleton -public class DslGrammarAccess extends AbstractGrammarElementFinder { - - public class ProcessElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Process"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cProcessKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); - private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cTryAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cTryTryParserRuleCall_3_0 = (RuleCall)cTryAssignment_3.eContents().get(0); - private final Assignment cCatchAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cCatchCatchParserRuleCall_4_0 = (RuleCall)cCatchAssignment_4.eContents().get(0); - private final Assignment cFinallyAssignment_5 = (Assignment)cGroup.eContents().get(5); - private final RuleCall cFinallyFinallyParserRuleCall_5_0 = (RuleCall)cFinallyAssignment_5.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); - - //Process: - // 'process' name=STRING '{' try=Try catch=Catch finally=Finally '}'; - @Override public ParserRule getRule() { return rule; } - - //'process' name=STRING '{' try=Try catch=Catch finally=Finally '}' - public Group getGroup() { return cGroup; } - - //'process' - public Keyword getProcessKeyword_0() { return cProcessKeyword_0; } - - //name=STRING - public Assignment getNameAssignment_1() { return cNameAssignment_1; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } - - //try=Try - public Assignment getTryAssignment_3() { return cTryAssignment_3; } - - //Try - public RuleCall getTryTryParserRuleCall_3_0() { return cTryTryParserRuleCall_3_0; } - - //catch=Catch - public Assignment getCatchAssignment_4() { return cCatchAssignment_4; } - - //Catch - public RuleCall getCatchCatchParserRuleCall_4_0() { return cCatchCatchParserRuleCall_4_0; } - - //finally=Finally - public Assignment getFinallyAssignment_5() { return cFinallyAssignment_5; } - - //Finally - public RuleCall getFinallyFinallyParserRuleCall_5_0() { return cFinallyFinallyParserRuleCall_5_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } - } - public class TryElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Try"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cTryKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); - private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cActionAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cActionActionParserRuleCall_3_0 = (RuleCall)cActionAssignment_3.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); - - //Try: - // 'try' name=ID '{' action+=Action* '}'; - @Override public ParserRule getRule() { return rule; } - - //'try' name=ID '{' action+=Action* '}' - public Group getGroup() { return cGroup; } - - //'try' - public Keyword getTryKeyword_0() { return cTryKeyword_0; } - - //name=ID - public Assignment getNameAssignment_1() { return cNameAssignment_1; } - - //ID - public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } - - //action+=Action* - public Assignment getActionAssignment_3() { return cActionAssignment_3; } - - //Action - public RuleCall getActionActionParserRuleCall_3_0() { return cActionActionParserRuleCall_3_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } - } - public class FinallyElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Finally"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cFinallyKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); - private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cActionAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cActionActionParserRuleCall_3_0 = (RuleCall)cActionAssignment_3.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); - - //Finally: - // 'finally' name=ID '{' action+=Action* '}'; - @Override public ParserRule getRule() { return rule; } - - //'finally' name=ID '{' action+=Action* '}' - public Group getGroup() { return cGroup; } - - //'finally' - public Keyword getFinallyKeyword_0() { return cFinallyKeyword_0; } - - //name=ID - public Assignment getNameAssignment_1() { return cNameAssignment_1; } - - //ID - public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } - - //action+=Action* - public Assignment getActionAssignment_3() { return cActionAssignment_3; } - - //Action - public RuleCall getActionActionParserRuleCall_3_0() { return cActionActionParserRuleCall_3_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } - } - public class CatchElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Catch"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cCatchKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); - private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cActionAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cActionActionParserRuleCall_3_0 = (RuleCall)cActionAssignment_3.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); - - //Catch: - // 'catch' name=ID '{' action+=Action* '}'; - @Override public ParserRule getRule() { return rule; } - - //'catch' name=ID '{' action+=Action* '}' - public Group getGroup() { return cGroup; } - - //'catch' - public Keyword getCatchKeyword_0() { return cCatchKeyword_0; } - - //name=ID - public Assignment getNameAssignment_1() { return cNameAssignment_1; } - - //ID - public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } - - //action+=Action* - public Assignment getActionAssignment_3() { return cActionAssignment_3; } - - //Action - public RuleCall getActionActionParserRuleCall_3_0() { return cActionActionParserRuleCall_3_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } - } - public class ActionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Action"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cCopydataParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cLoadCsvParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cWriteCsvParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); - private final RuleCall cTransformParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); - private final RuleCall cGooglecalPUTParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); - private final RuleCall cSlackPUTParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); - private final RuleCall cClickSendSmsParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6); - private final RuleCall cUpdatedauditParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7); - private final RuleCall cCallprocessParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8); - private final RuleCall cForkprocessParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9); - private final RuleCall cFetchParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10); - private final RuleCall cTrelloPUTParserRuleCall_11 = (RuleCall)cAlternatives.eContents().get(11); - private final RuleCall cTrelloGETParserRuleCall_12 = (RuleCall)cAlternatives.eContents().get(12); - private final RuleCall cRestParserRuleCall_13 = (RuleCall)cAlternatives.eContents().get(13); - private final RuleCall cDoozleParserRuleCall_14 = (RuleCall)cAlternatives.eContents().get(14); - private final RuleCall cDropfileParserRuleCall_15 = (RuleCall)cAlternatives.eContents().get(15); - private final RuleCall cFBCLeadParserRuleCall_16 = (RuleCall)cAlternatives.eContents().get(16); - private final RuleCall cFBFormDownloadParserRuleCall_17 = (RuleCall)cAlternatives.eContents().get(17); - private final RuleCall cSendMailParserRuleCall_18 = (RuleCall)cAlternatives.eContents().get(18); - private final RuleCall cGooglecontactPUTParserRuleCall_19 = (RuleCall)cAlternatives.eContents().get(19); - private final RuleCall cGooglecontactSelectAllParserRuleCall_20 = (RuleCall)cAlternatives.eContents().get(20); - private final RuleCall cAbortParserRuleCall_21 = (RuleCall)cAlternatives.eContents().get(21); - private final RuleCall cSmsLeadSmsParserRuleCall_22 = (RuleCall)cAlternatives.eContents().get(22); - private final RuleCall cFirebaseReactiveNotificationParserRuleCall_23 = (RuleCall)cAlternatives.eContents().get(23); - private final RuleCall cFirebaseDatabasePutParserRuleCall_24 = (RuleCall)cAlternatives.eContents().get(24); - private final RuleCall cExecJavaParserRuleCall_25 = (RuleCall)cAlternatives.eContents().get(25); - private final RuleCall cDoglegParserRuleCall_26 = (RuleCall)cAlternatives.eContents().get(26); - private final RuleCall cSpawnprocessParserRuleCall_27 = (RuleCall)cAlternatives.eContents().get(27); - - //Action: - // Copydata | LoadCsv | WriteCsv | Transform | GooglecalPUT | SlackPUT | ClickSendSms | Updatedaudit | Callprocess | - // Forkprocess | Fetch | TrelloPUT | TrelloGET | Rest | Doozle | Dropfile | FBCLead | FBFormDownload | SendMail | - // GooglecontactPUT | GooglecontactSelectAll | Abort | SmsLeadSms | FirebaseReactiveNotification | FirebaseDatabasePut | - // ExecJava | Dogleg | Spawnprocess; - @Override public ParserRule getRule() { return rule; } - - //Copydata | LoadCsv | WriteCsv | Transform | GooglecalPUT | SlackPUT | ClickSendSms | Updatedaudit | Callprocess | - //Forkprocess | Fetch | TrelloPUT | TrelloGET | Rest | Doozle | Dropfile | FBCLead | FBFormDownload | SendMail | - //GooglecontactPUT | GooglecontactSelectAll | Abort | SmsLeadSms | FirebaseReactiveNotification | FirebaseDatabasePut | - //ExecJava | Dogleg | Spawnprocess - public Alternatives getAlternatives() { return cAlternatives; } - - //Copydata - public RuleCall getCopydataParserRuleCall_0() { return cCopydataParserRuleCall_0; } - - //LoadCsv - public RuleCall getLoadCsvParserRuleCall_1() { return cLoadCsvParserRuleCall_1; } - - //WriteCsv - public RuleCall getWriteCsvParserRuleCall_2() { return cWriteCsvParserRuleCall_2; } - - //Transform - public RuleCall getTransformParserRuleCall_3() { return cTransformParserRuleCall_3; } - - //GooglecalPUT - public RuleCall getGooglecalPUTParserRuleCall_4() { return cGooglecalPUTParserRuleCall_4; } - - //SlackPUT - public RuleCall getSlackPUTParserRuleCall_5() { return cSlackPUTParserRuleCall_5; } - - //ClickSendSms - public RuleCall getClickSendSmsParserRuleCall_6() { return cClickSendSmsParserRuleCall_6; } - - //Updatedaudit - public RuleCall getUpdatedauditParserRuleCall_7() { return cUpdatedauditParserRuleCall_7; } - - //Callprocess - public RuleCall getCallprocessParserRuleCall_8() { return cCallprocessParserRuleCall_8; } - - //Forkprocess - public RuleCall getForkprocessParserRuleCall_9() { return cForkprocessParserRuleCall_9; } - - //Fetch - public RuleCall getFetchParserRuleCall_10() { return cFetchParserRuleCall_10; } - - //TrelloPUT - public RuleCall getTrelloPUTParserRuleCall_11() { return cTrelloPUTParserRuleCall_11; } - - //TrelloGET - public RuleCall getTrelloGETParserRuleCall_12() { return cTrelloGETParserRuleCall_12; } - - //Rest - public RuleCall getRestParserRuleCall_13() { return cRestParserRuleCall_13; } - - //Doozle - public RuleCall getDoozleParserRuleCall_14() { return cDoozleParserRuleCall_14; } - - //Dropfile - public RuleCall getDropfileParserRuleCall_15() { return cDropfileParserRuleCall_15; } - - //FBCLead - public RuleCall getFBCLeadParserRuleCall_16() { return cFBCLeadParserRuleCall_16; } - - //FBFormDownload - public RuleCall getFBFormDownloadParserRuleCall_17() { return cFBFormDownloadParserRuleCall_17; } - - //SendMail - public RuleCall getSendMailParserRuleCall_18() { return cSendMailParserRuleCall_18; } - - //GooglecontactPUT - public RuleCall getGooglecontactPUTParserRuleCall_19() { return cGooglecontactPUTParserRuleCall_19; } - - //GooglecontactSelectAll - public RuleCall getGooglecontactSelectAllParserRuleCall_20() { return cGooglecontactSelectAllParserRuleCall_20; } - - //Abort - public RuleCall getAbortParserRuleCall_21() { return cAbortParserRuleCall_21; } - - //SmsLeadSms - public RuleCall getSmsLeadSmsParserRuleCall_22() { return cSmsLeadSmsParserRuleCall_22; } - - //FirebaseReactiveNotification - public RuleCall getFirebaseReactiveNotificationParserRuleCall_23() { return cFirebaseReactiveNotificationParserRuleCall_23; } - - //FirebaseDatabasePut - public RuleCall getFirebaseDatabasePutParserRuleCall_24() { return cFirebaseDatabasePutParserRuleCall_24; } - - //ExecJava - public RuleCall getExecJavaParserRuleCall_25() { return cExecJavaParserRuleCall_25; } - - //Dogleg - public RuleCall getDoglegParserRuleCall_26() { return cDoglegParserRuleCall_26; } - - //Spawnprocess - public RuleCall getSpawnprocessParserRuleCall_27() { return cSpawnprocessParserRuleCall_27; } - } - public class SpawnprocessElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Spawnprocess"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cSpawnKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cWithTargetKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cTargetAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cTargetSTRINGTerminalRuleCall_4_0 = (RuleCall)cTargetAssignment_4.eContents().get(0); - private final Keyword cFromFileKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cSourceAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cSourceSTRINGTerminalRuleCall_6_0 = (RuleCall)cSourceAssignment_6.eContents().get(0); - private final Keyword cOnConditionKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cConditionAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cConditionExpressionParserRuleCall_8_0 = (RuleCall)cConditionAssignment_8.eContents().get(0); - - //Spawnprocess: - // 'spawn' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'spawn' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'spawn' - public Keyword getSpawnKeyword_0() { return cSpawnKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'with-target' - public Keyword getWithTargetKeyword_3() { return cWithTargetKeyword_3; } - - //target=STRING - public Assignment getTargetAssignment_4() { return cTargetAssignment_4; } - - //STRING - public RuleCall getTargetSTRINGTerminalRuleCall_4_0() { return cTargetSTRINGTerminalRuleCall_4_0; } - - //'from-file' - public Keyword getFromFileKeyword_5() { return cFromFileKeyword_5; } - - //source=STRING - public Assignment getSourceAssignment_6() { return cSourceAssignment_6; } - - //STRING - public RuleCall getSourceSTRINGTerminalRuleCall_6_0() { return cSourceSTRINGTerminalRuleCall_6_0; } - - //'on-condition' - public Keyword getOnConditionKeyword_7() { return cOnConditionKeyword_7; } - - //condition=Expression - public Assignment getConditionAssignment_8() { return cConditionAssignment_8; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_8_0() { return cConditionExpressionParserRuleCall_8_0; } - } - public class DoglegElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Dogleg"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cDoglegKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cUseParentContextKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cInheritContextAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cInheritContextSTRINGTerminalRuleCall_4_0 = (RuleCall)cInheritContextAssignment_4.eContents().get(0); - private final Keyword cUsingKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Keyword cLeftCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); - private final Assignment cProcessListAssignment_7 = (Assignment)cGroup.eContents().get(7); - private final RuleCall cProcessListStartProcessParserRuleCall_7_0 = (RuleCall)cProcessListAssignment_7.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8); - private final Keyword cOnConditionKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cConditionAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cConditionExpressionParserRuleCall_10_0 = (RuleCall)cConditionAssignment_10.eContents().get(0); - - //Dogleg: - // "dogleg" 'as' name=STRING 'use-parent-context' inheritContext=STRING 'using' '{' processList+=StartProcess '}' - // 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //"dogleg" 'as' name=STRING 'use-parent-context' inheritContext=STRING 'using' '{' processList+=StartProcess '}' - //'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //"dogleg" - public Keyword getDoglegKeyword_0() { return cDoglegKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'use-parent-context' - public Keyword getUseParentContextKeyword_3() { return cUseParentContextKeyword_3; } - - //inheritContext=STRING - public Assignment getInheritContextAssignment_4() { return cInheritContextAssignment_4; } - - //STRING - public RuleCall getInheritContextSTRINGTerminalRuleCall_4_0() { return cInheritContextSTRINGTerminalRuleCall_4_0; } - - //'using' - public Keyword getUsingKeyword_5() { return cUsingKeyword_5; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_6() { return cLeftCurlyBracketKeyword_6; } - - //processList+=StartProcess - public Assignment getProcessListAssignment_7() { return cProcessListAssignment_7; } - - //StartProcess - public RuleCall getProcessListStartProcessParserRuleCall_7_0() { return cProcessListStartProcessParserRuleCall_7_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; } - - //'on-condition' - public Keyword getOnConditionKeyword_9() { return cOnConditionKeyword_9; } - - //condition=Expression - public Assignment getConditionAssignment_10() { return cConditionAssignment_10; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_10_0() { return cConditionExpressionParserRuleCall_10_0; } - } - public class ExecJavaElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.ExecJava"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cJavaKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cUsingKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cClassFqnAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cClassFqnSTRINGTerminalRuleCall_4_0 = (RuleCall)cClassFqnAssignment_4.eContents().get(0); - private final Keyword cNameSakeDbKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cDbSrcAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cDbSrcSTRINGTerminalRuleCall_6_0 = (RuleCall)cDbSrcAssignment_6.eContents().get(0); - private final Keyword cLeftCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cValueAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cValueSTRINGTerminalRuleCall_8_0 = (RuleCall)cValueAssignment_8.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Keyword cOnConditionKeyword_10 = (Keyword)cGroup.eContents().get(10); - private final Assignment cConditionAssignment_11 = (Assignment)cGroup.eContents().get(11); - private final RuleCall cConditionExpressionParserRuleCall_11_0 = (RuleCall)cConditionAssignment_11.eContents().get(0); - - //ExecJava: - // "java" 'as' name=STRING 'using' classFqn=STRING 'name-sake-db' dbSrc=STRING '{' value=STRING '}' 'on-condition' - // condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //"java" 'as' name=STRING 'using' classFqn=STRING 'name-sake-db' dbSrc=STRING '{' value=STRING '}' 'on-condition' - //condition=Expression - public Group getGroup() { return cGroup; } - - //"java" - public Keyword getJavaKeyword_0() { return cJavaKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'using' - public Keyword getUsingKeyword_3() { return cUsingKeyword_3; } - - //classFqn=STRING - public Assignment getClassFqnAssignment_4() { return cClassFqnAssignment_4; } - - //STRING - public RuleCall getClassFqnSTRINGTerminalRuleCall_4_0() { return cClassFqnSTRINGTerminalRuleCall_4_0; } - - //'name-sake-db' - public Keyword getNameSakeDbKeyword_5() { return cNameSakeDbKeyword_5; } - - //dbSrc=STRING - public Assignment getDbSrcAssignment_6() { return cDbSrcAssignment_6; } - - //STRING - public RuleCall getDbSrcSTRINGTerminalRuleCall_6_0() { return cDbSrcSTRINGTerminalRuleCall_6_0; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_7() { return cLeftCurlyBracketKeyword_7; } - - //value=STRING - public Assignment getValueAssignment_8() { return cValueAssignment_8; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_8_0() { return cValueSTRINGTerminalRuleCall_8_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; } - - //'on-condition' - public Keyword getOnConditionKeyword_10() { return cOnConditionKeyword_10; } - - //condition=Expression - public Assignment getConditionAssignment_11() { return cConditionAssignment_11; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_11_0() { return cConditionExpressionParserRuleCall_11_0; } - } - public class FirebaseDatabasePutElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.FirebaseDatabasePut"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cFbdpKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cOnKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cUrlAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cUrlSTRINGTerminalRuleCall_4_0 = (RuleCall)cUrlAssignment_4.eContents().get(0); - private final Keyword cAuthByKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cFbjsonAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cFbjsonSTRINGTerminalRuleCall_6_0 = (RuleCall)cFbjsonAssignment_6.eContents().get(0); - private final Keyword cForGroupKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cGroupPathAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cGroupPathSTRINGTerminalRuleCall_8_0 = (RuleCall)cGroupPathAssignment_8.eContents().get(0); - private final Keyword cFromSourceKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cDbSrcAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cDbSrcSTRINGTerminalRuleCall_10_0 = (RuleCall)cDbSrcAssignment_10.eContents().get(0); - private final Keyword cWithClassKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cClassFqnAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cClassFqnSTRINGTerminalRuleCall_12_0 = (RuleCall)cClassFqnAssignment_12.eContents().get(0); - private final Keyword cUsingKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Keyword cLeftCurlyBracketKeyword_14 = (Keyword)cGroup.eContents().get(14); - private final Assignment cValueAssignment_15 = (Assignment)cGroup.eContents().get(15); - private final RuleCall cValueSTRINGTerminalRuleCall_15_0 = (RuleCall)cValueAssignment_15.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16); - private final Keyword cOnConditionKeyword_17 = (Keyword)cGroup.eContents().get(17); - private final Assignment cConditionAssignment_18 = (Assignment)cGroup.eContents().get(18); - private final RuleCall cConditionExpressionParserRuleCall_18_0 = (RuleCall)cConditionAssignment_18.eContents().get(0); - - //FirebaseDatabasePut: - // 'fbdp' 'as' name=STRING 'on' url=STRING 'auth-by' fbjson=STRING 'for-group' groupPath=STRING 'from-source' - // dbSrc=STRING 'with-class' classFqn=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'fbdp' 'as' name=STRING 'on' url=STRING 'auth-by' fbjson=STRING 'for-group' groupPath=STRING 'from-source' dbSrc=STRING - //'with-class' classFqn=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'fbdp' - public Keyword getFbdpKeyword_0() { return cFbdpKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'on' - public Keyword getOnKeyword_3() { return cOnKeyword_3; } - - //url=STRING - public Assignment getUrlAssignment_4() { return cUrlAssignment_4; } - - //STRING - public RuleCall getUrlSTRINGTerminalRuleCall_4_0() { return cUrlSTRINGTerminalRuleCall_4_0; } - - //'auth-by' - public Keyword getAuthByKeyword_5() { return cAuthByKeyword_5; } - - //fbjson=STRING - public Assignment getFbjsonAssignment_6() { return cFbjsonAssignment_6; } - - //STRING - public RuleCall getFbjsonSTRINGTerminalRuleCall_6_0() { return cFbjsonSTRINGTerminalRuleCall_6_0; } - - //'for-group' - public Keyword getForGroupKeyword_7() { return cForGroupKeyword_7; } - - //groupPath=STRING - public Assignment getGroupPathAssignment_8() { return cGroupPathAssignment_8; } - - //STRING - public RuleCall getGroupPathSTRINGTerminalRuleCall_8_0() { return cGroupPathSTRINGTerminalRuleCall_8_0; } - - //'from-source' - public Keyword getFromSourceKeyword_9() { return cFromSourceKeyword_9; } - - //dbSrc=STRING - public Assignment getDbSrcAssignment_10() { return cDbSrcAssignment_10; } - - //STRING - public RuleCall getDbSrcSTRINGTerminalRuleCall_10_0() { return cDbSrcSTRINGTerminalRuleCall_10_0; } - - //'with-class' - public Keyword getWithClassKeyword_11() { return cWithClassKeyword_11; } - - //classFqn=STRING - public Assignment getClassFqnAssignment_12() { return cClassFqnAssignment_12; } - - //STRING - public RuleCall getClassFqnSTRINGTerminalRuleCall_12_0() { return cClassFqnSTRINGTerminalRuleCall_12_0; } - - //'using' - public Keyword getUsingKeyword_13() { return cUsingKeyword_13; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_14() { return cLeftCurlyBracketKeyword_14; } - - //value=STRING - public Assignment getValueAssignment_15() { return cValueAssignment_15; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_15_0() { return cValueSTRINGTerminalRuleCall_15_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_16() { return cRightCurlyBracketKeyword_16; } - - //'on-condition' - public Keyword getOnConditionKeyword_17() { return cOnConditionKeyword_17; } - - //condition=Expression - public Assignment getConditionAssignment_18() { return cConditionAssignment_18; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_18_0() { return cConditionExpressionParserRuleCall_18_0; } - } - public class FirebaseReactiveNotificationElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.FirebaseReactiveNotification"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cFbrnKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cOnKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cUrlAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cUrlSTRINGTerminalRuleCall_4_0 = (RuleCall)cUrlAssignment_4.eContents().get(0); - private final Keyword cAuthByKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cFbjsonAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cFbjsonSTRINGTerminalRuleCall_6_0 = (RuleCall)cFbjsonAssignment_6.eContents().get(0); - private final Keyword cForGroupKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cGroupPathAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cGroupPathSTRINGTerminalRuleCall_8_0 = (RuleCall)cGroupPathAssignment_8.eContents().get(0); - private final Keyword cWithClassKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cClassFqnAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cClassFqnSTRINGTerminalRuleCall_10_0 = (RuleCall)cClassFqnAssignment_10.eContents().get(0); - private final Keyword cUsingKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cDbSrcAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cDbSrcSTRINGTerminalRuleCall_12_0 = (RuleCall)cDbSrcAssignment_12.eContents().get(0); - private final Keyword cOnConditionKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Assignment cConditionAssignment_14 = (Assignment)cGroup.eContents().get(14); - private final RuleCall cConditionExpressionParserRuleCall_14_0 = (RuleCall)cConditionAssignment_14.eContents().get(0); - - //FirebaseReactiveNotification: - // 'fbrn' 'as' name=STRING 'on' url=STRING 'auth-by' fbjson=STRING 'for-group' groupPath=STRING 'with-class' - // classFqn=STRING 'using' dbSrc=STRING 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'fbrn' 'as' name=STRING 'on' url=STRING 'auth-by' fbjson=STRING 'for-group' groupPath=STRING 'with-class' - //classFqn=STRING 'using' dbSrc=STRING 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'fbrn' - public Keyword getFbrnKeyword_0() { return cFbrnKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'on' - public Keyword getOnKeyword_3() { return cOnKeyword_3; } - - //url=STRING - public Assignment getUrlAssignment_4() { return cUrlAssignment_4; } - - //STRING - public RuleCall getUrlSTRINGTerminalRuleCall_4_0() { return cUrlSTRINGTerminalRuleCall_4_0; } - - //'auth-by' - public Keyword getAuthByKeyword_5() { return cAuthByKeyword_5; } - - //fbjson=STRING - public Assignment getFbjsonAssignment_6() { return cFbjsonAssignment_6; } - - //STRING - public RuleCall getFbjsonSTRINGTerminalRuleCall_6_0() { return cFbjsonSTRINGTerminalRuleCall_6_0; } - - //'for-group' - public Keyword getForGroupKeyword_7() { return cForGroupKeyword_7; } - - //groupPath=STRING - public Assignment getGroupPathAssignment_8() { return cGroupPathAssignment_8; } - - //STRING - public RuleCall getGroupPathSTRINGTerminalRuleCall_8_0() { return cGroupPathSTRINGTerminalRuleCall_8_0; } - - //'with-class' - public Keyword getWithClassKeyword_9() { return cWithClassKeyword_9; } - - //classFqn=STRING - public Assignment getClassFqnAssignment_10() { return cClassFqnAssignment_10; } - - //STRING - public RuleCall getClassFqnSTRINGTerminalRuleCall_10_0() { return cClassFqnSTRINGTerminalRuleCall_10_0; } - - //'using' - public Keyword getUsingKeyword_11() { return cUsingKeyword_11; } - - //dbSrc=STRING - public Assignment getDbSrcAssignment_12() { return cDbSrcAssignment_12; } - - //STRING - public RuleCall getDbSrcSTRINGTerminalRuleCall_12_0() { return cDbSrcSTRINGTerminalRuleCall_12_0; } - - //'on-condition' - public Keyword getOnConditionKeyword_13() { return cOnConditionKeyword_13; } - - //condition=Expression - public Assignment getConditionAssignment_14() { return cConditionAssignment_14; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_14_0() { return cConditionExpressionParserRuleCall_14_0; } - } - public class SmsLeadSmsElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.SmsLeadSms"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cSmsleadssmsKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cOnKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cUrlAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cUrlSTRINGTerminalRuleCall_4_0 = (RuleCall)cUrlAssignment_4.eContents().get(0); - private final Keyword cWithSenderKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cSenderAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cSenderSTRINGTerminalRuleCall_6_0 = (RuleCall)cSenderAssignment_6.eContents().get(0); - private final Keyword cThroughAccountKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cAccountAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cAccountSTRINGTerminalRuleCall_8_0 = (RuleCall)cAccountAssignment_8.eContents().get(0); - private final Keyword cSecuredByKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cPrivateKeyAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cPrivateKeySTRINGTerminalRuleCall_10_0 = (RuleCall)cPrivateKeyAssignment_10.eContents().get(0); - private final Keyword cFromSourceKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cDbSrcAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cDbSrcSTRINGTerminalRuleCall_12_0 = (RuleCall)cDbSrcAssignment_12.eContents().get(0); - private final Keyword cUsingKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Keyword cLeftCurlyBracketKeyword_14 = (Keyword)cGroup.eContents().get(14); - private final Assignment cValueAssignment_15 = (Assignment)cGroup.eContents().get(15); - private final RuleCall cValueSTRINGTerminalRuleCall_15_0 = (RuleCall)cValueAssignment_15.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16); - private final Keyword cOnConditionKeyword_17 = (Keyword)cGroup.eContents().get(17); - private final Assignment cConditionAssignment_18 = (Assignment)cGroup.eContents().get(18); - private final RuleCall cConditionExpressionParserRuleCall_18_0 = (RuleCall)cConditionAssignment_18.eContents().get(0); - private final Keyword cDoDryrunWithKeyword_19 = (Keyword)cGroup.eContents().get(19); - private final Assignment cDryrunNumberAssignment_20 = (Assignment)cGroup.eContents().get(20); - private final RuleCall cDryrunNumberSTRINGTerminalRuleCall_20_0 = (RuleCall)cDryrunNumberAssignment_20.eContents().get(0); - - //SmsLeadSms: - // 'smsleadssms' 'as' name=STRING 'on' url=STRING 'with-sender' sender=STRING 'through-account' account=STRING - // 'secured-by' privateKey=STRING 'from-source' dbSrc=STRING 'using' '{' value=STRING '}' 'on-condition' - // condition=Expression 'do-dryrun-with' dryrunNumber=STRING; - @Override public ParserRule getRule() { return rule; } - - //'smsleadssms' 'as' name=STRING 'on' url=STRING 'with-sender' sender=STRING 'through-account' account=STRING 'secured-by' - //privateKey=STRING 'from-source' dbSrc=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression - //'do-dryrun-with' dryrunNumber=STRING - public Group getGroup() { return cGroup; } - - //'smsleadssms' - public Keyword getSmsleadssmsKeyword_0() { return cSmsleadssmsKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'on' - public Keyword getOnKeyword_3() { return cOnKeyword_3; } - - //url=STRING - public Assignment getUrlAssignment_4() { return cUrlAssignment_4; } - - //STRING - public RuleCall getUrlSTRINGTerminalRuleCall_4_0() { return cUrlSTRINGTerminalRuleCall_4_0; } - - //'with-sender' - public Keyword getWithSenderKeyword_5() { return cWithSenderKeyword_5; } - - //sender=STRING - public Assignment getSenderAssignment_6() { return cSenderAssignment_6; } - - //STRING - public RuleCall getSenderSTRINGTerminalRuleCall_6_0() { return cSenderSTRINGTerminalRuleCall_6_0; } - - //'through-account' - public Keyword getThroughAccountKeyword_7() { return cThroughAccountKeyword_7; } - - //account=STRING - public Assignment getAccountAssignment_8() { return cAccountAssignment_8; } - - //STRING - public RuleCall getAccountSTRINGTerminalRuleCall_8_0() { return cAccountSTRINGTerminalRuleCall_8_0; } - - //'secured-by' - public Keyword getSecuredByKeyword_9() { return cSecuredByKeyword_9; } - - //privateKey=STRING - public Assignment getPrivateKeyAssignment_10() { return cPrivateKeyAssignment_10; } - - //STRING - public RuleCall getPrivateKeySTRINGTerminalRuleCall_10_0() { return cPrivateKeySTRINGTerminalRuleCall_10_0; } - - //'from-source' - public Keyword getFromSourceKeyword_11() { return cFromSourceKeyword_11; } - - //dbSrc=STRING - public Assignment getDbSrcAssignment_12() { return cDbSrcAssignment_12; } - - //STRING - public RuleCall getDbSrcSTRINGTerminalRuleCall_12_0() { return cDbSrcSTRINGTerminalRuleCall_12_0; } - - //'using' - public Keyword getUsingKeyword_13() { return cUsingKeyword_13; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_14() { return cLeftCurlyBracketKeyword_14; } - - //value=STRING - public Assignment getValueAssignment_15() { return cValueAssignment_15; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_15_0() { return cValueSTRINGTerminalRuleCall_15_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_16() { return cRightCurlyBracketKeyword_16; } - - //'on-condition' - public Keyword getOnConditionKeyword_17() { return cOnConditionKeyword_17; } - - //condition=Expression - public Assignment getConditionAssignment_18() { return cConditionAssignment_18; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_18_0() { return cConditionExpressionParserRuleCall_18_0; } - - //'do-dryrun-with' - public Keyword getDoDryrunWithKeyword_19() { return cDoDryrunWithKeyword_19; } - - //dryrunNumber=STRING - public Assignment getDryrunNumberAssignment_20() { return cDryrunNumberAssignment_20; } - - //STRING - public RuleCall getDryrunNumberSTRINGTerminalRuleCall_20_0() { return cDryrunNumberSTRINGTerminalRuleCall_20_0; } - } - public class AbortElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Abort"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cAbortKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cValueAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cValueSTRINGTerminalRuleCall_4_0 = (RuleCall)cValueAssignment_4.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Keyword cOnConditionKeyword_6 = (Keyword)cGroup.eContents().get(6); - private final Assignment cConditionAssignment_7 = (Assignment)cGroup.eContents().get(7); - private final RuleCall cConditionExpressionParserRuleCall_7_0 = (RuleCall)cConditionAssignment_7.eContents().get(0); - - //Abort: - // 'abort' 'as' name=STRING '{' value=STRING '}' 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'abort' 'as' name=STRING '{' value=STRING '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'abort' - public Keyword getAbortKeyword_0() { return cAbortKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; } - - //value=STRING - public Assignment getValueAssignment_4() { return cValueAssignment_4; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_4_0() { return cValueSTRINGTerminalRuleCall_4_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } - - //'on-condition' - public Keyword getOnConditionKeyword_6() { return cOnConditionKeyword_6; } - - //condition=Expression - public Assignment getConditionAssignment_7() { return cConditionAssignment_7; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_7_0() { return cConditionExpressionParserRuleCall_7_0; } - } - public class GooglecontactSelectAllElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.GooglecontactSelectAll"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cGcontactFetchallKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cThroughAccountKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cAccountAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cAccountSTRINGTerminalRuleCall_4_0 = (RuleCall)cAccountAssignment_4.eContents().get(0); - private final Keyword cSecuredByKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cPrivateKeyAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cPrivateKeySTRINGTerminalRuleCall_6_0 = (RuleCall)cPrivateKeyAssignment_6.eContents().get(0); - private final Keyword cWithKeyKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cPtwelveFileAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cPtwelveFileSTRINGTerminalRuleCall_8_0 = (RuleCall)cPtwelveFileAssignment_8.eContents().get(0); - private final Keyword cForProjectKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cProjectAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cProjectSTRINGTerminalRuleCall_10_0 = (RuleCall)cProjectAssignment_10.eContents().get(0); - private final Keyword cOnBehalfOfKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cImpersonatedUserAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cImpersonatedUserSTRINGTerminalRuleCall_12_0 = (RuleCall)cImpersonatedUserAssignment_12.eContents().get(0); - private final Keyword cToTargetKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Assignment cDbSrcAssignment_14 = (Assignment)cGroup.eContents().get(14); - private final RuleCall cDbSrcSTRINGTerminalRuleCall_14_0 = (RuleCall)cDbSrcAssignment_14.eContents().get(0); - private final Keyword cUsingKeyword_15 = (Keyword)cGroup.eContents().get(15); - private final Keyword cLeftCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16); - private final Assignment cValueAssignment_17 = (Assignment)cGroup.eContents().get(17); - private final RuleCall cValueSTRINGTerminalRuleCall_17_0 = (RuleCall)cValueAssignment_17.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_18 = (Keyword)cGroup.eContents().get(18); - private final Keyword cOnConditionKeyword_19 = (Keyword)cGroup.eContents().get(19); - private final Assignment cConditionAssignment_20 = (Assignment)cGroup.eContents().get(20); - private final RuleCall cConditionExpressionParserRuleCall_20_0 = (RuleCall)cConditionAssignment_20.eContents().get(0); - - //GooglecontactSelectAll: - // 'gcontact-fetchall' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' - // ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'to-target' dbSrc=STRING - // 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'gcontact-fetchall' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' - //ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'to-target' dbSrc=STRING - //'using' '{' value=STRING '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'gcontact-fetchall' - public Keyword getGcontactFetchallKeyword_0() { return cGcontactFetchallKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'through-account' - public Keyword getThroughAccountKeyword_3() { return cThroughAccountKeyword_3; } - - //account=STRING - public Assignment getAccountAssignment_4() { return cAccountAssignment_4; } - - //STRING - public RuleCall getAccountSTRINGTerminalRuleCall_4_0() { return cAccountSTRINGTerminalRuleCall_4_0; } - - //'secured-by' - public Keyword getSecuredByKeyword_5() { return cSecuredByKeyword_5; } - - //privateKey=STRING - public Assignment getPrivateKeyAssignment_6() { return cPrivateKeyAssignment_6; } - - //STRING - public RuleCall getPrivateKeySTRINGTerminalRuleCall_6_0() { return cPrivateKeySTRINGTerminalRuleCall_6_0; } - - //'with-key' - public Keyword getWithKeyKeyword_7() { return cWithKeyKeyword_7; } - - //ptwelveFile=STRING - public Assignment getPtwelveFileAssignment_8() { return cPtwelveFileAssignment_8; } - - //STRING - public RuleCall getPtwelveFileSTRINGTerminalRuleCall_8_0() { return cPtwelveFileSTRINGTerminalRuleCall_8_0; } - - //'for-project' - public Keyword getForProjectKeyword_9() { return cForProjectKeyword_9; } - - //project=STRING - public Assignment getProjectAssignment_10() { return cProjectAssignment_10; } - - //STRING - public RuleCall getProjectSTRINGTerminalRuleCall_10_0() { return cProjectSTRINGTerminalRuleCall_10_0; } - - //'on-behalf-of' - public Keyword getOnBehalfOfKeyword_11() { return cOnBehalfOfKeyword_11; } - - //impersonatedUser=STRING - public Assignment getImpersonatedUserAssignment_12() { return cImpersonatedUserAssignment_12; } - - //STRING - public RuleCall getImpersonatedUserSTRINGTerminalRuleCall_12_0() { return cImpersonatedUserSTRINGTerminalRuleCall_12_0; } - - //'to-target' - public Keyword getToTargetKeyword_13() { return cToTargetKeyword_13; } - - //dbSrc=STRING - public Assignment getDbSrcAssignment_14() { return cDbSrcAssignment_14; } - - //STRING - public RuleCall getDbSrcSTRINGTerminalRuleCall_14_0() { return cDbSrcSTRINGTerminalRuleCall_14_0; } - - //'using' - public Keyword getUsingKeyword_15() { return cUsingKeyword_15; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_16() { return cLeftCurlyBracketKeyword_16; } - - //value=STRING - public Assignment getValueAssignment_17() { return cValueAssignment_17; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_17_0() { return cValueSTRINGTerminalRuleCall_17_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_18() { return cRightCurlyBracketKeyword_18; } - - //'on-condition' - public Keyword getOnConditionKeyword_19() { return cOnConditionKeyword_19; } - - //condition=Expression - public Assignment getConditionAssignment_20() { return cConditionAssignment_20; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_20_0() { return cConditionExpressionParserRuleCall_20_0; } - } - public class SendMailElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.SendMail"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cSendmailKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cSecuredByKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cPrivateKeyAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cPrivateKeySTRINGTerminalRuleCall_4_0 = (RuleCall)cPrivateKeyAssignment_4.eContents().get(0); - private final Keyword cOnBehalfOfKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cImpersonatedUserAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cImpersonatedUserSTRINGTerminalRuleCall_6_0 = (RuleCall)cImpersonatedUserAssignment_6.eContents().get(0); - private final Keyword cFromSourceKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cDbSrcAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cDbSrcSTRINGTerminalRuleCall_8_0 = (RuleCall)cDbSrcAssignment_8.eContents().get(0); - private final Keyword cUsingKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Keyword cLeftCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10); - private final Assignment cValueAssignment_11 = (Assignment)cGroup.eContents().get(11); - private final RuleCall cValueSTRINGTerminalRuleCall_11_0 = (RuleCall)cValueAssignment_11.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_12 = (Keyword)cGroup.eContents().get(12); - private final Keyword cOnConditionKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Assignment cConditionAssignment_14 = (Assignment)cGroup.eContents().get(14); - private final RuleCall cConditionExpressionParserRuleCall_14_0 = (RuleCall)cConditionAssignment_14.eContents().get(0); - private final Keyword cDoDryrunWithKeyword_15 = (Keyword)cGroup.eContents().get(15); - private final Assignment cDryrunMailAssignment_16 = (Assignment)cGroup.eContents().get(16); - private final RuleCall cDryrunMailSTRINGTerminalRuleCall_16_0 = (RuleCall)cDryrunMailAssignment_16.eContents().get(0); - - //SendMail: - // 'sendmail' 'as' name=STRING 'secured-by' privateKey=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' - // dbSrc=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression 'do-dryrun-with' dryrunMail=STRING; - @Override public ParserRule getRule() { return rule; } - - //'sendmail' 'as' name=STRING 'secured-by' privateKey=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' - //dbSrc=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression 'do-dryrun-with' dryrunMail=STRING - public Group getGroup() { return cGroup; } - - //'sendmail' - public Keyword getSendmailKeyword_0() { return cSendmailKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'secured-by' - public Keyword getSecuredByKeyword_3() { return cSecuredByKeyword_3; } - - //privateKey=STRING - public Assignment getPrivateKeyAssignment_4() { return cPrivateKeyAssignment_4; } - - //STRING - public RuleCall getPrivateKeySTRINGTerminalRuleCall_4_0() { return cPrivateKeySTRINGTerminalRuleCall_4_0; } - - //'on-behalf-of' - public Keyword getOnBehalfOfKeyword_5() { return cOnBehalfOfKeyword_5; } - - //impersonatedUser=STRING - public Assignment getImpersonatedUserAssignment_6() { return cImpersonatedUserAssignment_6; } - - //STRING - public RuleCall getImpersonatedUserSTRINGTerminalRuleCall_6_0() { return cImpersonatedUserSTRINGTerminalRuleCall_6_0; } - - //'from-source' - public Keyword getFromSourceKeyword_7() { return cFromSourceKeyword_7; } - - //dbSrc=STRING - public Assignment getDbSrcAssignment_8() { return cDbSrcAssignment_8; } - - //STRING - public RuleCall getDbSrcSTRINGTerminalRuleCall_8_0() { return cDbSrcSTRINGTerminalRuleCall_8_0; } - - //'using' - public Keyword getUsingKeyword_9() { return cUsingKeyword_9; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_10() { return cLeftCurlyBracketKeyword_10; } - - //value=STRING - public Assignment getValueAssignment_11() { return cValueAssignment_11; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_11_0() { return cValueSTRINGTerminalRuleCall_11_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_12() { return cRightCurlyBracketKeyword_12; } - - //'on-condition' - public Keyword getOnConditionKeyword_13() { return cOnConditionKeyword_13; } - - //condition=Expression - public Assignment getConditionAssignment_14() { return cConditionAssignment_14; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_14_0() { return cConditionExpressionParserRuleCall_14_0; } - - //'do-dryrun-with' - public Keyword getDoDryrunWithKeyword_15() { return cDoDryrunWithKeyword_15; } - - //dryrunMail=STRING - public Assignment getDryrunMailAssignment_16() { return cDryrunMailAssignment_16; } - - //STRING - public RuleCall getDryrunMailSTRINGTerminalRuleCall_16_0() { return cDryrunMailSTRINGTerminalRuleCall_16_0; } - } - public class GooglecontactPUTElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.GooglecontactPUT"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cGcontactKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cThroughAccountKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cAccountAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cAccountSTRINGTerminalRuleCall_4_0 = (RuleCall)cAccountAssignment_4.eContents().get(0); - private final Keyword cSecuredByKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cPrivateKeyAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cPrivateKeySTRINGTerminalRuleCall_6_0 = (RuleCall)cPrivateKeyAssignment_6.eContents().get(0); - private final Keyword cWithKeyKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cPtwelveFileAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cPtwelveFileSTRINGTerminalRuleCall_8_0 = (RuleCall)cPtwelveFileAssignment_8.eContents().get(0); - private final Keyword cForProjectKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cProjectAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cProjectSTRINGTerminalRuleCall_10_0 = (RuleCall)cProjectAssignment_10.eContents().get(0); - private final Keyword cOnBehalfOfKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cImpersonatedUserAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cImpersonatedUserSTRINGTerminalRuleCall_12_0 = (RuleCall)cImpersonatedUserAssignment_12.eContents().get(0); - private final Keyword cFromSourceKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Assignment cDbSrcAssignment_14 = (Assignment)cGroup.eContents().get(14); - private final RuleCall cDbSrcSTRINGTerminalRuleCall_14_0 = (RuleCall)cDbSrcAssignment_14.eContents().get(0); - private final Keyword cUsingKeyword_15 = (Keyword)cGroup.eContents().get(15); - private final Keyword cLeftCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16); - private final Assignment cValueAssignment_17 = (Assignment)cGroup.eContents().get(17); - private final RuleCall cValueSTRINGTerminalRuleCall_17_0 = (RuleCall)cValueAssignment_17.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_18 = (Keyword)cGroup.eContents().get(18); - private final Keyword cOnConditionKeyword_19 = (Keyword)cGroup.eContents().get(19); - private final Assignment cConditionAssignment_20 = (Assignment)cGroup.eContents().get(20); - private final RuleCall cConditionExpressionParserRuleCall_20_0 = (RuleCall)cConditionAssignment_20.eContents().get(0); - - //GooglecontactPUT: - // 'gcontact' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' - // ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' dbSrc=STRING - // 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'gcontact' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' - //ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' dbSrc=STRING - //'using' '{' value=STRING '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'gcontact' - public Keyword getGcontactKeyword_0() { return cGcontactKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'through-account' - public Keyword getThroughAccountKeyword_3() { return cThroughAccountKeyword_3; } - - //account=STRING - public Assignment getAccountAssignment_4() { return cAccountAssignment_4; } - - //STRING - public RuleCall getAccountSTRINGTerminalRuleCall_4_0() { return cAccountSTRINGTerminalRuleCall_4_0; } - - //'secured-by' - public Keyword getSecuredByKeyword_5() { return cSecuredByKeyword_5; } - - //privateKey=STRING - public Assignment getPrivateKeyAssignment_6() { return cPrivateKeyAssignment_6; } - - //STRING - public RuleCall getPrivateKeySTRINGTerminalRuleCall_6_0() { return cPrivateKeySTRINGTerminalRuleCall_6_0; } - - //'with-key' - public Keyword getWithKeyKeyword_7() { return cWithKeyKeyword_7; } - - //ptwelveFile=STRING - public Assignment getPtwelveFileAssignment_8() { return cPtwelveFileAssignment_8; } - - //STRING - public RuleCall getPtwelveFileSTRINGTerminalRuleCall_8_0() { return cPtwelveFileSTRINGTerminalRuleCall_8_0; } - - //'for-project' - public Keyword getForProjectKeyword_9() { return cForProjectKeyword_9; } - - //project=STRING - public Assignment getProjectAssignment_10() { return cProjectAssignment_10; } - - //STRING - public RuleCall getProjectSTRINGTerminalRuleCall_10_0() { return cProjectSTRINGTerminalRuleCall_10_0; } - - //'on-behalf-of' - public Keyword getOnBehalfOfKeyword_11() { return cOnBehalfOfKeyword_11; } - - //impersonatedUser=STRING - public Assignment getImpersonatedUserAssignment_12() { return cImpersonatedUserAssignment_12; } - - //STRING - public RuleCall getImpersonatedUserSTRINGTerminalRuleCall_12_0() { return cImpersonatedUserSTRINGTerminalRuleCall_12_0; } - - //'from-source' - public Keyword getFromSourceKeyword_13() { return cFromSourceKeyword_13; } - - //dbSrc=STRING - public Assignment getDbSrcAssignment_14() { return cDbSrcAssignment_14; } - - //STRING - public RuleCall getDbSrcSTRINGTerminalRuleCall_14_0() { return cDbSrcSTRINGTerminalRuleCall_14_0; } - - //'using' - public Keyword getUsingKeyword_15() { return cUsingKeyword_15; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_16() { return cLeftCurlyBracketKeyword_16; } - - //value=STRING - public Assignment getValueAssignment_17() { return cValueAssignment_17; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_17_0() { return cValueSTRINGTerminalRuleCall_17_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_18() { return cRightCurlyBracketKeyword_18; } - - //'on-condition' - public Keyword getOnConditionKeyword_19() { return cOnConditionKeyword_19; } - - //condition=Expression - public Assignment getConditionAssignment_20() { return cConditionAssignment_20; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_20_0() { return cConditionExpressionParserRuleCall_20_0; } - } - public class GooglecalPUTElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.GooglecalPUT"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cGcalendarKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cThroughAccountKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cAccountAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cAccountSTRINGTerminalRuleCall_4_0 = (RuleCall)cAccountAssignment_4.eContents().get(0); - private final Keyword cSecuredByKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cPrivateKeyAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cPrivateKeySTRINGTerminalRuleCall_6_0 = (RuleCall)cPrivateKeyAssignment_6.eContents().get(0); - private final Keyword cWithKeyKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cPtwelveFileAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cPtwelveFileSTRINGTerminalRuleCall_8_0 = (RuleCall)cPtwelveFileAssignment_8.eContents().get(0); - private final Keyword cForProjectKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cProjectAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cProjectSTRINGTerminalRuleCall_10_0 = (RuleCall)cProjectAssignment_10.eContents().get(0); - private final Keyword cOnBehalfOfKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cImpersonatedUserAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cImpersonatedUserSTRINGTerminalRuleCall_12_0 = (RuleCall)cImpersonatedUserAssignment_12.eContents().get(0); - private final Keyword cFromSourceKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Assignment cDbSrcAssignment_14 = (Assignment)cGroup.eContents().get(14); - private final RuleCall cDbSrcSTRINGTerminalRuleCall_14_0 = (RuleCall)cDbSrcAssignment_14.eContents().get(0); - private final Keyword cUsingKeyword_15 = (Keyword)cGroup.eContents().get(15); - private final Keyword cLeftCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16); - private final Assignment cValueAssignment_17 = (Assignment)cGroup.eContents().get(17); - private final RuleCall cValueSTRINGTerminalRuleCall_17_0 = (RuleCall)cValueAssignment_17.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_18 = (Keyword)cGroup.eContents().get(18); - private final Keyword cOnConditionKeyword_19 = (Keyword)cGroup.eContents().get(19); - private final Assignment cConditionAssignment_20 = (Assignment)cGroup.eContents().get(20); - private final RuleCall cConditionExpressionParserRuleCall_20_0 = (RuleCall)cConditionAssignment_20.eContents().get(0); - - //GooglecalPUT: - // 'gcalendar' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' - // ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' dbSrc=STRING - // 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'gcalendar' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' - //ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' dbSrc=STRING - //'using' '{' value=STRING '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'gcalendar' - public Keyword getGcalendarKeyword_0() { return cGcalendarKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'through-account' - public Keyword getThroughAccountKeyword_3() { return cThroughAccountKeyword_3; } - - //account=STRING - public Assignment getAccountAssignment_4() { return cAccountAssignment_4; } - - //STRING - public RuleCall getAccountSTRINGTerminalRuleCall_4_0() { return cAccountSTRINGTerminalRuleCall_4_0; } - - //'secured-by' - public Keyword getSecuredByKeyword_5() { return cSecuredByKeyword_5; } - - //privateKey=STRING - public Assignment getPrivateKeyAssignment_6() { return cPrivateKeyAssignment_6; } - - //STRING - public RuleCall getPrivateKeySTRINGTerminalRuleCall_6_0() { return cPrivateKeySTRINGTerminalRuleCall_6_0; } - - //'with-key' - public Keyword getWithKeyKeyword_7() { return cWithKeyKeyword_7; } - - //ptwelveFile=STRING - public Assignment getPtwelveFileAssignment_8() { return cPtwelveFileAssignment_8; } - - //STRING - public RuleCall getPtwelveFileSTRINGTerminalRuleCall_8_0() { return cPtwelveFileSTRINGTerminalRuleCall_8_0; } - - //'for-project' - public Keyword getForProjectKeyword_9() { return cForProjectKeyword_9; } - - //project=STRING - public Assignment getProjectAssignment_10() { return cProjectAssignment_10; } - - //STRING - public RuleCall getProjectSTRINGTerminalRuleCall_10_0() { return cProjectSTRINGTerminalRuleCall_10_0; } - - //'on-behalf-of' - public Keyword getOnBehalfOfKeyword_11() { return cOnBehalfOfKeyword_11; } - - //impersonatedUser=STRING - public Assignment getImpersonatedUserAssignment_12() { return cImpersonatedUserAssignment_12; } - - //STRING - public RuleCall getImpersonatedUserSTRINGTerminalRuleCall_12_0() { return cImpersonatedUserSTRINGTerminalRuleCall_12_0; } - - //'from-source' - public Keyword getFromSourceKeyword_13() { return cFromSourceKeyword_13; } - - //dbSrc=STRING - public Assignment getDbSrcAssignment_14() { return cDbSrcAssignment_14; } - - //STRING - public RuleCall getDbSrcSTRINGTerminalRuleCall_14_0() { return cDbSrcSTRINGTerminalRuleCall_14_0; } - - //'using' - public Keyword getUsingKeyword_15() { return cUsingKeyword_15; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_16() { return cLeftCurlyBracketKeyword_16; } - - //value=STRING - public Assignment getValueAssignment_17() { return cValueAssignment_17; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_17_0() { return cValueSTRINGTerminalRuleCall_17_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_18() { return cRightCurlyBracketKeyword_18; } - - //'on-condition' - public Keyword getOnConditionKeyword_19() { return cOnConditionKeyword_19; } - - //condition=Expression - public Assignment getConditionAssignment_20() { return cConditionAssignment_20; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_20_0() { return cConditionExpressionParserRuleCall_20_0; } - } - public class FBCLeadElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.FBCLead"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cFblcKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cSecuredByKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cAccessTokenAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cAccessTokenSTRINGTerminalRuleCall_4_0 = (RuleCall)cAccessTokenAssignment_4.eContents().get(0); - private final Keyword cWithKeyKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cAppSecretAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cAppSecretSTRINGTerminalRuleCall_6_0 = (RuleCall)cAppSecretAssignment_6.eContents().get(0); - private final Keyword cThroughUserKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cAccountIdAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cAccountIdSTRINGTerminalRuleCall_8_0 = (RuleCall)cAccountIdAssignment_8.eContents().get(0); - private final Keyword cForCampaignKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cCampaignIdAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cCampaignIdSTRINGTerminalRuleCall_10_0 = (RuleCall)cCampaignIdAssignment_10.eContents().get(0); - private final Keyword cIntoKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cTargetAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cTargetSTRINGTerminalRuleCall_12_0 = (RuleCall)cTargetAssignment_12.eContents().get(0); - private final Keyword cUsingKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Keyword cLeftCurlyBracketKeyword_14 = (Keyword)cGroup.eContents().get(14); - private final Assignment cValueAssignment_15 = (Assignment)cGroup.eContents().get(15); - private final RuleCall cValueSTRINGTerminalRuleCall_15_0 = (RuleCall)cValueAssignment_15.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16); - private final Keyword cOnConditionKeyword_17 = (Keyword)cGroup.eContents().get(17); - private final Assignment cConditionAssignment_18 = (Assignment)cGroup.eContents().get(18); - private final RuleCall cConditionExpressionParserRuleCall_18_0 = (RuleCall)cConditionAssignment_18.eContents().get(0); - - //FBCLead: - // 'fblc' 'as' name=STRING 'secured-by' accessToken=STRING 'with-key' appSecret=STRING 'through-user' accountId=STRING - // 'for-campaign' campaignId=STRING 'into' target=STRING 'using' '{' value=STRING '}' 'on-condition' - // condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'fblc' 'as' name=STRING 'secured-by' accessToken=STRING 'with-key' appSecret=STRING 'through-user' accountId=STRING - //'for-campaign' campaignId=STRING 'into' target=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'fblc' - public Keyword getFblcKeyword_0() { return cFblcKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'secured-by' - public Keyword getSecuredByKeyword_3() { return cSecuredByKeyword_3; } - - //accessToken=STRING - public Assignment getAccessTokenAssignment_4() { return cAccessTokenAssignment_4; } - - //STRING - public RuleCall getAccessTokenSTRINGTerminalRuleCall_4_0() { return cAccessTokenSTRINGTerminalRuleCall_4_0; } - - //'with-key' - public Keyword getWithKeyKeyword_5() { return cWithKeyKeyword_5; } - - //appSecret=STRING - public Assignment getAppSecretAssignment_6() { return cAppSecretAssignment_6; } - - //STRING - public RuleCall getAppSecretSTRINGTerminalRuleCall_6_0() { return cAppSecretSTRINGTerminalRuleCall_6_0; } - - //'through-user' - public Keyword getThroughUserKeyword_7() { return cThroughUserKeyword_7; } - - //accountId=STRING - public Assignment getAccountIdAssignment_8() { return cAccountIdAssignment_8; } - - //STRING - public RuleCall getAccountIdSTRINGTerminalRuleCall_8_0() { return cAccountIdSTRINGTerminalRuleCall_8_0; } - - //'for-campaign' - public Keyword getForCampaignKeyword_9() { return cForCampaignKeyword_9; } - - //campaignId=STRING - public Assignment getCampaignIdAssignment_10() { return cCampaignIdAssignment_10; } - - //STRING - public RuleCall getCampaignIdSTRINGTerminalRuleCall_10_0() { return cCampaignIdSTRINGTerminalRuleCall_10_0; } - - //'into' - public Keyword getIntoKeyword_11() { return cIntoKeyword_11; } - - //target=STRING - public Assignment getTargetAssignment_12() { return cTargetAssignment_12; } - - //STRING - public RuleCall getTargetSTRINGTerminalRuleCall_12_0() { return cTargetSTRINGTerminalRuleCall_12_0; } - - //'using' - public Keyword getUsingKeyword_13() { return cUsingKeyword_13; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_14() { return cLeftCurlyBracketKeyword_14; } - - //value=STRING - public Assignment getValueAssignment_15() { return cValueAssignment_15; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_15_0() { return cValueSTRINGTerminalRuleCall_15_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_16() { return cRightCurlyBracketKeyword_16; } - - //'on-condition' - public Keyword getOnConditionKeyword_17() { return cOnConditionKeyword_17; } - - //condition=Expression - public Assignment getConditionAssignment_18() { return cConditionAssignment_18; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_18_0() { return cConditionExpressionParserRuleCall_18_0; } - } - public class FBFormDownloadElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.FBFormDownload"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cFbfdKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cSecuredByKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cAccessTokenAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cAccessTokenSTRINGTerminalRuleCall_4_0 = (RuleCall)cAccessTokenAssignment_4.eContents().get(0); - private final Keyword cWithKeyKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cAppSecretAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cAppSecretSTRINGTerminalRuleCall_6_0 = (RuleCall)cAppSecretAssignment_6.eContents().get(0); - private final Keyword cThroughUserKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cAccountIdAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cAccountIdSTRINGTerminalRuleCall_8_0 = (RuleCall)cAccountIdAssignment_8.eContents().get(0); - private final Keyword cForFormKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cFormIdAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cFormIdSTRINGTerminalRuleCall_10_0 = (RuleCall)cFormIdAssignment_10.eContents().get(0); - private final Keyword cIntoKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cTargetAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cTargetSTRINGTerminalRuleCall_12_0 = (RuleCall)cTargetAssignment_12.eContents().get(0); - private final Keyword cUsingKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Keyword cLeftCurlyBracketKeyword_14 = (Keyword)cGroup.eContents().get(14); - private final Assignment cValueAssignment_15 = (Assignment)cGroup.eContents().get(15); - private final RuleCall cValueSTRINGTerminalRuleCall_15_0 = (RuleCall)cValueAssignment_15.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16); - private final Keyword cOnConditionKeyword_17 = (Keyword)cGroup.eContents().get(17); - private final Assignment cConditionAssignment_18 = (Assignment)cGroup.eContents().get(18); - private final RuleCall cConditionExpressionParserRuleCall_18_0 = (RuleCall)cConditionAssignment_18.eContents().get(0); - - //FBFormDownload: - // 'fbfd' 'as' name=STRING 'secured-by' accessToken=STRING 'with-key' appSecret=STRING 'through-user' accountId=STRING - // 'for-form' formId=STRING 'into' target=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'fbfd' 'as' name=STRING 'secured-by' accessToken=STRING 'with-key' appSecret=STRING 'through-user' accountId=STRING - //'for-form' formId=STRING 'into' target=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'fbfd' - public Keyword getFbfdKeyword_0() { return cFbfdKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'secured-by' - public Keyword getSecuredByKeyword_3() { return cSecuredByKeyword_3; } - - //accessToken=STRING - public Assignment getAccessTokenAssignment_4() { return cAccessTokenAssignment_4; } - - //STRING - public RuleCall getAccessTokenSTRINGTerminalRuleCall_4_0() { return cAccessTokenSTRINGTerminalRuleCall_4_0; } - - //'with-key' - public Keyword getWithKeyKeyword_5() { return cWithKeyKeyword_5; } - - //appSecret=STRING - public Assignment getAppSecretAssignment_6() { return cAppSecretAssignment_6; } - - //STRING - public RuleCall getAppSecretSTRINGTerminalRuleCall_6_0() { return cAppSecretSTRINGTerminalRuleCall_6_0; } - - //'through-user' - public Keyword getThroughUserKeyword_7() { return cThroughUserKeyword_7; } - - //accountId=STRING - public Assignment getAccountIdAssignment_8() { return cAccountIdAssignment_8; } - - //STRING - public RuleCall getAccountIdSTRINGTerminalRuleCall_8_0() { return cAccountIdSTRINGTerminalRuleCall_8_0; } - - //'for-form' - public Keyword getForFormKeyword_9() { return cForFormKeyword_9; } - - //formId=STRING - public Assignment getFormIdAssignment_10() { return cFormIdAssignment_10; } - - //STRING - public RuleCall getFormIdSTRINGTerminalRuleCall_10_0() { return cFormIdSTRINGTerminalRuleCall_10_0; } - - //'into' - public Keyword getIntoKeyword_11() { return cIntoKeyword_11; } - - //target=STRING - public Assignment getTargetAssignment_12() { return cTargetAssignment_12; } - - //STRING - public RuleCall getTargetSTRINGTerminalRuleCall_12_0() { return cTargetSTRINGTerminalRuleCall_12_0; } - - //'using' - public Keyword getUsingKeyword_13() { return cUsingKeyword_13; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_14() { return cLeftCurlyBracketKeyword_14; } - - //value=STRING - public Assignment getValueAssignment_15() { return cValueAssignment_15; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_15_0() { return cValueSTRINGTerminalRuleCall_15_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_16() { return cRightCurlyBracketKeyword_16; } - - //'on-condition' - public Keyword getOnConditionKeyword_17() { return cOnConditionKeyword_17; } - - //condition=Expression - public Assignment getConditionAssignment_18() { return cConditionAssignment_18; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_18_0() { return cConditionExpressionParserRuleCall_18_0; } - } - public class DropfileElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Dropfile"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cDropfileKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cInPathKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cTargetAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cTargetSTRINGTerminalRuleCall_4_0 = (RuleCall)cTargetAssignment_4.eContents().get(0); - private final Keyword cOnConditionKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cConditionAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cConditionExpressionParserRuleCall_6_0 = (RuleCall)cConditionAssignment_6.eContents().get(0); - - //Dropfile: - // 'dropfile' 'as' name=STRING 'in-path' target=STRING 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'dropfile' 'as' name=STRING 'in-path' target=STRING 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'dropfile' - public Keyword getDropfileKeyword_0() { return cDropfileKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'in-path' - public Keyword getInPathKeyword_3() { return cInPathKeyword_3; } - - //target=STRING - public Assignment getTargetAssignment_4() { return cTargetAssignment_4; } - - //STRING - public RuleCall getTargetSTRINGTerminalRuleCall_4_0() { return cTargetSTRINGTerminalRuleCall_4_0; } - - //'on-condition' - public Keyword getOnConditionKeyword_5() { return cOnConditionKeyword_5; } - - //condition=Expression - public Assignment getConditionAssignment_6() { return cConditionAssignment_6; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_6_0() { return cConditionExpressionParserRuleCall_6_0; } - } - public class DoozleElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Doozle"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cDoozleKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cInTableKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cTargetAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cTargetSTRINGTerminalRuleCall_4_0 = (RuleCall)cTargetAssignment_4.eContents().get(0); - private final Keyword cOnKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cOnAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cOnSTRINGTerminalRuleCall_6_0 = (RuleCall)cOnAssignment_6.eContents().get(0); - private final Keyword cUsingKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Keyword cLeftCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8); - private final Assignment cValueAssignment_9 = (Assignment)cGroup.eContents().get(9); - private final RuleCall cValueCreateStatementParserRuleCall_9_0 = (RuleCall)cValueAssignment_9.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10); - private final Keyword cOnConditionKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cConditionAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cConditionExpressionParserRuleCall_12_0 = (RuleCall)cConditionAssignment_12.eContents().get(0); - - //Doozle: - // 'doozle' 'as' name=STRING 'in-table' target=STRING 'on' on=STRING 'using' '{' value=CreateStatement '}' - // 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'doozle' 'as' name=STRING 'in-table' target=STRING 'on' on=STRING 'using' '{' value=CreateStatement '}' 'on-condition' - //condition=Expression - public Group getGroup() { return cGroup; } - - //'doozle' - public Keyword getDoozleKeyword_0() { return cDoozleKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'in-table' - public Keyword getInTableKeyword_3() { return cInTableKeyword_3; } - - //target=STRING - public Assignment getTargetAssignment_4() { return cTargetAssignment_4; } - - //STRING - public RuleCall getTargetSTRINGTerminalRuleCall_4_0() { return cTargetSTRINGTerminalRuleCall_4_0; } - - //'on' - public Keyword getOnKeyword_5() { return cOnKeyword_5; } - - //on=STRING - public Assignment getOnAssignment_6() { return cOnAssignment_6; } - - //STRING - public RuleCall getOnSTRINGTerminalRuleCall_6_0() { return cOnSTRINGTerminalRuleCall_6_0; } - - //'using' - public Keyword getUsingKeyword_7() { return cUsingKeyword_7; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_8() { return cLeftCurlyBracketKeyword_8; } - - //value=CreateStatement - public Assignment getValueAssignment_9() { return cValueAssignment_9; } - - //CreateStatement - public RuleCall getValueCreateStatementParserRuleCall_9_0() { return cValueCreateStatementParserRuleCall_9_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; } - - //'on-condition' - public Keyword getOnConditionKeyword_11() { return cOnConditionKeyword_11; } - - //condition=Expression - public Assignment getConditionAssignment_12() { return cConditionAssignment_12; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_12_0() { return cConditionExpressionParserRuleCall_12_0; } - } - public class RestElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Rest"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cRestKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cSecuredByKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cAuthtokenAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cAuthtokenSTRINGTerminalRuleCall_4_0 = (RuleCall)cAuthtokenAssignment_4.eContents().get(0); - private final Keyword cWithUrlKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cUrlAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cUrlSTRINGTerminalRuleCall_6_0 = (RuleCall)cUrlAssignment_6.eContents().get(0); - private final Keyword cAndMethodAsKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cMethodAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cMethodSTRINGTerminalRuleCall_8_0 = (RuleCall)cMethodAssignment_8.eContents().get(0); - private final Keyword cLeftCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Keyword cFromKeyword_10 = (Keyword)cGroup.eContents().get(10); - private final Assignment cResourcedatafromAssignment_11 = (Assignment)cGroup.eContents().get(11); - private final RuleCall cResourcedatafromSTRINGTerminalRuleCall_11_0 = (RuleCall)cResourcedatafromAssignment_11.eContents().get(0); - private final Keyword cUpdateUrlWithKeyword_12 = (Keyword)cGroup.eContents().get(12); - private final Keyword cLeftCurlyBracketKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Assignment cUrldataAssignment_14 = (Assignment)cGroup.eContents().get(14); - private final RuleCall cUrldataSelectStatementParserRuleCall_14_0 = (RuleCall)cUrldataAssignment_14.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_15 = (Keyword)cGroup.eContents().get(15); - private final Keyword cFromKeyword_16 = (Keyword)cGroup.eContents().get(16); - private final Assignment cHeaderdatafromAssignment_17 = (Assignment)cGroup.eContents().get(17); - private final RuleCall cHeaderdatafromSTRINGTerminalRuleCall_17_0 = (RuleCall)cHeaderdatafromAssignment_17.eContents().get(0); - private final Keyword cUpdateHeaderWithKeyword_18 = (Keyword)cGroup.eContents().get(18); - private final Keyword cLeftCurlyBracketKeyword_19 = (Keyword)cGroup.eContents().get(19); - private final Assignment cHeaderdataAssignment_20 = (Assignment)cGroup.eContents().get(20); - private final RuleCall cHeaderdataSelectStatementParserRuleCall_20_0 = (RuleCall)cHeaderdataAssignment_20.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_21 = (Keyword)cGroup.eContents().get(21); - private final Keyword cFromKeyword_22 = (Keyword)cGroup.eContents().get(22); - private final Assignment cPostdatafromAssignment_23 = (Assignment)cGroup.eContents().get(23); - private final RuleCall cPostdatafromSTRINGTerminalRuleCall_23_0 = (RuleCall)cPostdatafromAssignment_23.eContents().get(0); - private final Keyword cUpdateBodyWithKeyword_24 = (Keyword)cGroup.eContents().get(24); - private final Keyword cLeftCurlyBracketKeyword_25 = (Keyword)cGroup.eContents().get(25); - private final Keyword cParentKeyword_26 = (Keyword)cGroup.eContents().get(26); - private final Keyword cAsKeyword_27 = (Keyword)cGroup.eContents().get(27); - private final Assignment cParentNameAssignment_28 = (Assignment)cGroup.eContents().get(28); - private final RuleCall cParentNameSTRINGTerminalRuleCall_28_0 = (RuleCall)cParentNameAssignment_28.eContents().get(0); - private final Assignment cParentdataAssignment_29 = (Assignment)cGroup.eContents().get(29); - private final RuleCall cParentdataSelectStatementParserRuleCall_29_0 = (RuleCall)cParentdataAssignment_29.eContents().get(0); - private final Assignment cPartsAssignment_30 = (Assignment)cGroup.eContents().get(30); - private final RuleCall cPartsRestPartParserRuleCall_30_0 = (RuleCall)cPartsAssignment_30.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_31 = (Keyword)cGroup.eContents().get(31); - private final Keyword cIntoKeyword_32 = (Keyword)cGroup.eContents().get(32); - private final Assignment cAckdatatoAssignment_33 = (Assignment)cGroup.eContents().get(33); - private final RuleCall cAckdatatoSTRINGTerminalRuleCall_33_0 = (RuleCall)cAckdatatoAssignment_33.eContents().get(0); - private final Keyword cStoreAckAtKeyword_34 = (Keyword)cGroup.eContents().get(34); - private final Keyword cLeftCurlyBracketKeyword_35 = (Keyword)cGroup.eContents().get(35); - private final Assignment cAckdataAssignment_36 = (Assignment)cGroup.eContents().get(36); - private final RuleCall cAckdataSelectStatementParserRuleCall_36_0 = (RuleCall)cAckdataAssignment_36.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_37 = (Keyword)cGroup.eContents().get(37); - private final Keyword cRightCurlyBracketKeyword_38 = (Keyword)cGroup.eContents().get(38); - private final Keyword cOnConditionKeyword_39 = (Keyword)cGroup.eContents().get(39); - private final Assignment cConditionAssignment_40 = (Assignment)cGroup.eContents().get(40); - private final RuleCall cConditionExpressionParserRuleCall_40_0 = (RuleCall)cConditionAssignment_40.eContents().get(0); - - //Rest: - // 'rest' 'as' name=STRING 'secured-by' authtoken=STRING 'with-url' url=STRING 'and-method-as' method=STRING '{' 'from' - // resourcedatafrom=STRING 'update-url-with' '{' urldata=SelectStatement '}' 'from' headerdatafrom=STRING - // 'update-header-with' '{' headerdata=SelectStatement '}' 'from' postdatafrom=STRING 'update-body-with' '{' 'parent' - // 'as' parentName=STRING parentdata=SelectStatement parts+=RestPart* '}' 'into' ackdatato=STRING 'store-ack-at' '{' - // ackdata=SelectStatement '}' '}' 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'rest' 'as' name=STRING 'secured-by' authtoken=STRING 'with-url' url=STRING 'and-method-as' method=STRING '{' 'from' - //resourcedatafrom=STRING 'update-url-with' '{' urldata=SelectStatement '}' 'from' headerdatafrom=STRING - //'update-header-with' '{' headerdata=SelectStatement '}' 'from' postdatafrom=STRING 'update-body-with' '{' 'parent' - //'as' parentName=STRING parentdata=SelectStatement parts+=RestPart* '}' 'into' ackdatato=STRING 'store-ack-at' '{' - //ackdata=SelectStatement '}' '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'rest' - public Keyword getRestKeyword_0() { return cRestKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'secured-by' - public Keyword getSecuredByKeyword_3() { return cSecuredByKeyword_3; } - - //authtoken=STRING - public Assignment getAuthtokenAssignment_4() { return cAuthtokenAssignment_4; } - - //STRING - public RuleCall getAuthtokenSTRINGTerminalRuleCall_4_0() { return cAuthtokenSTRINGTerminalRuleCall_4_0; } - - //'with-url' - public Keyword getWithUrlKeyword_5() { return cWithUrlKeyword_5; } - - //url=STRING - public Assignment getUrlAssignment_6() { return cUrlAssignment_6; } - - //STRING - public RuleCall getUrlSTRINGTerminalRuleCall_6_0() { return cUrlSTRINGTerminalRuleCall_6_0; } - - //'and-method-as' - public Keyword getAndMethodAsKeyword_7() { return cAndMethodAsKeyword_7; } - - //method=STRING - public Assignment getMethodAssignment_8() { return cMethodAssignment_8; } - - //STRING - public RuleCall getMethodSTRINGTerminalRuleCall_8_0() { return cMethodSTRINGTerminalRuleCall_8_0; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_9() { return cLeftCurlyBracketKeyword_9; } - - //'from' - public Keyword getFromKeyword_10() { return cFromKeyword_10; } - - //resourcedatafrom=STRING - public Assignment getResourcedatafromAssignment_11() { return cResourcedatafromAssignment_11; } - - //STRING - public RuleCall getResourcedatafromSTRINGTerminalRuleCall_11_0() { return cResourcedatafromSTRINGTerminalRuleCall_11_0; } - - //'update-url-with' - public Keyword getUpdateUrlWithKeyword_12() { return cUpdateUrlWithKeyword_12; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_13() { return cLeftCurlyBracketKeyword_13; } - - //urldata=SelectStatement - public Assignment getUrldataAssignment_14() { return cUrldataAssignment_14; } - - //SelectStatement - public RuleCall getUrldataSelectStatementParserRuleCall_14_0() { return cUrldataSelectStatementParserRuleCall_14_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_15() { return cRightCurlyBracketKeyword_15; } - - //'from' - public Keyword getFromKeyword_16() { return cFromKeyword_16; } - - //headerdatafrom=STRING - public Assignment getHeaderdatafromAssignment_17() { return cHeaderdatafromAssignment_17; } - - //STRING - public RuleCall getHeaderdatafromSTRINGTerminalRuleCall_17_0() { return cHeaderdatafromSTRINGTerminalRuleCall_17_0; } - - //'update-header-with' - public Keyword getUpdateHeaderWithKeyword_18() { return cUpdateHeaderWithKeyword_18; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_19() { return cLeftCurlyBracketKeyword_19; } - - //headerdata=SelectStatement - public Assignment getHeaderdataAssignment_20() { return cHeaderdataAssignment_20; } - - //SelectStatement - public RuleCall getHeaderdataSelectStatementParserRuleCall_20_0() { return cHeaderdataSelectStatementParserRuleCall_20_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_21() { return cRightCurlyBracketKeyword_21; } - - //'from' - public Keyword getFromKeyword_22() { return cFromKeyword_22; } - - //postdatafrom=STRING - public Assignment getPostdatafromAssignment_23() { return cPostdatafromAssignment_23; } - - //STRING - public RuleCall getPostdatafromSTRINGTerminalRuleCall_23_0() { return cPostdatafromSTRINGTerminalRuleCall_23_0; } - - //'update-body-with' - public Keyword getUpdateBodyWithKeyword_24() { return cUpdateBodyWithKeyword_24; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_25() { return cLeftCurlyBracketKeyword_25; } - - //'parent' - public Keyword getParentKeyword_26() { return cParentKeyword_26; } - - //'as' - public Keyword getAsKeyword_27() { return cAsKeyword_27; } - - //parentName=STRING - public Assignment getParentNameAssignment_28() { return cParentNameAssignment_28; } - - //STRING - public RuleCall getParentNameSTRINGTerminalRuleCall_28_0() { return cParentNameSTRINGTerminalRuleCall_28_0; } - - //parentdata=SelectStatement - public Assignment getParentdataAssignment_29() { return cParentdataAssignment_29; } - - //SelectStatement - public RuleCall getParentdataSelectStatementParserRuleCall_29_0() { return cParentdataSelectStatementParserRuleCall_29_0; } - - //parts+=RestPart* - public Assignment getPartsAssignment_30() { return cPartsAssignment_30; } - - //RestPart - public RuleCall getPartsRestPartParserRuleCall_30_0() { return cPartsRestPartParserRuleCall_30_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_31() { return cRightCurlyBracketKeyword_31; } - - //'into' - public Keyword getIntoKeyword_32() { return cIntoKeyword_32; } - - //ackdatato=STRING - public Assignment getAckdatatoAssignment_33() { return cAckdatatoAssignment_33; } - - //STRING - public RuleCall getAckdatatoSTRINGTerminalRuleCall_33_0() { return cAckdatatoSTRINGTerminalRuleCall_33_0; } - - //'store-ack-at' - public Keyword getStoreAckAtKeyword_34() { return cStoreAckAtKeyword_34; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_35() { return cLeftCurlyBracketKeyword_35; } - - //ackdata=SelectStatement - public Assignment getAckdataAssignment_36() { return cAckdataAssignment_36; } - - //SelectStatement - public RuleCall getAckdataSelectStatementParserRuleCall_36_0() { return cAckdataSelectStatementParserRuleCall_36_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_37() { return cRightCurlyBracketKeyword_37; } - - //'}' - public Keyword getRightCurlyBracketKeyword_38() { return cRightCurlyBracketKeyword_38; } - - //'on-condition' - public Keyword getOnConditionKeyword_39() { return cOnConditionKeyword_39; } - - //condition=Expression - public Assignment getConditionAssignment_40() { return cConditionAssignment_40; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_40_0() { return cConditionExpressionParserRuleCall_40_0; } - } - public class RestPartElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.RestPart"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cPartKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cPartNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cPartNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cPartNameAssignment_2.eContents().get(0); - private final Keyword cWithKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cPartDataAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cPartDataSelectStatementParserRuleCall_4_0 = (RuleCall)cPartDataAssignment_4.eContents().get(0); - - //RestPart: - // 'part' 'as' partName=STRING 'with' partData=SelectStatement; - @Override public ParserRule getRule() { return rule; } - - //'part' 'as' partName=STRING 'with' partData=SelectStatement - public Group getGroup() { return cGroup; } - - //'part' - public Keyword getPartKeyword_0() { return cPartKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //partName=STRING - public Assignment getPartNameAssignment_2() { return cPartNameAssignment_2; } - - //STRING - public RuleCall getPartNameSTRINGTerminalRuleCall_2_0() { return cPartNameSTRINGTerminalRuleCall_2_0; } - - //'with' - public Keyword getWithKeyword_3() { return cWithKeyword_3; } - - //partData=SelectStatement - public Assignment getPartDataAssignment_4() { return cPartDataAssignment_4; } - - //SelectStatement - public RuleCall getPartDataSelectStatementParserRuleCall_4_0() { return cPartDataSelectStatementParserRuleCall_4_0; } - } - public class TrelloGETElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.TrelloGET"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cTrellogetKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cSecuredByKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cAuthtokenAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cAuthtokenSTRINGTerminalRuleCall_4_0 = (RuleCall)cAuthtokenAssignment_4.eContents().get(0); - private final Keyword cWithKeyKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cKeyAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cKeySTRINGTerminalRuleCall_6_0 = (RuleCall)cKeyAssignment_6.eContents().get(0); - private final Keyword cThroughUserKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cUseraccountAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cUseraccountSTRINGTerminalRuleCall_8_0 = (RuleCall)cUseraccountAssignment_8.eContents().get(0); - private final Keyword cFromBoardKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cBoardAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cBoardSTRINGTerminalRuleCall_10_0 = (RuleCall)cBoardAssignment_10.eContents().get(0); - private final Keyword cToKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cTargetAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cTargetSTRINGTerminalRuleCall_12_0 = (RuleCall)cTargetAssignment_12.eContents().get(0); - private final Keyword cUsingKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Keyword cLeftCurlyBracketKeyword_14 = (Keyword)cGroup.eContents().get(14); - private final Assignment cValueAssignment_15 = (Assignment)cGroup.eContents().get(15); - private final RuleCall cValueSelectStatementParserRuleCall_15_0 = (RuleCall)cValueAssignment_15.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16); - private final Keyword cOnConditionKeyword_17 = (Keyword)cGroup.eContents().get(17); - private final Assignment cConditionAssignment_18 = (Assignment)cGroup.eContents().get(18); - private final RuleCall cConditionExpressionParserRuleCall_18_0 = (RuleCall)cConditionAssignment_18.eContents().get(0); - - //TrelloGET: - // 'trelloget' 'as' name=STRING 'secured-by' authtoken=STRING 'with-key' key=STRING 'through-user' useraccount=STRING - // 'from-board' board=STRING 'to' target=STRING 'using' '{' value=SelectStatement '}' 'on-condition' - // condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'trelloget' 'as' name=STRING 'secured-by' authtoken=STRING 'with-key' key=STRING 'through-user' useraccount=STRING - //'from-board' board=STRING 'to' target=STRING 'using' '{' value=SelectStatement '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'trelloget' - public Keyword getTrellogetKeyword_0() { return cTrellogetKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'secured-by' - public Keyword getSecuredByKeyword_3() { return cSecuredByKeyword_3; } - - //authtoken=STRING - public Assignment getAuthtokenAssignment_4() { return cAuthtokenAssignment_4; } - - //STRING - public RuleCall getAuthtokenSTRINGTerminalRuleCall_4_0() { return cAuthtokenSTRINGTerminalRuleCall_4_0; } - - //'with-key' - public Keyword getWithKeyKeyword_5() { return cWithKeyKeyword_5; } - - //key=STRING - public Assignment getKeyAssignment_6() { return cKeyAssignment_6; } - - //STRING - public RuleCall getKeySTRINGTerminalRuleCall_6_0() { return cKeySTRINGTerminalRuleCall_6_0; } - - //'through-user' - public Keyword getThroughUserKeyword_7() { return cThroughUserKeyword_7; } - - //useraccount=STRING - public Assignment getUseraccountAssignment_8() { return cUseraccountAssignment_8; } - - //STRING - public RuleCall getUseraccountSTRINGTerminalRuleCall_8_0() { return cUseraccountSTRINGTerminalRuleCall_8_0; } - - //'from-board' - public Keyword getFromBoardKeyword_9() { return cFromBoardKeyword_9; } - - //board=STRING - public Assignment getBoardAssignment_10() { return cBoardAssignment_10; } - - //STRING - public RuleCall getBoardSTRINGTerminalRuleCall_10_0() { return cBoardSTRINGTerminalRuleCall_10_0; } - - //'to' - public Keyword getToKeyword_11() { return cToKeyword_11; } - - //target=STRING - public Assignment getTargetAssignment_12() { return cTargetAssignment_12; } - - //STRING - public RuleCall getTargetSTRINGTerminalRuleCall_12_0() { return cTargetSTRINGTerminalRuleCall_12_0; } - - //'using' - public Keyword getUsingKeyword_13() { return cUsingKeyword_13; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_14() { return cLeftCurlyBracketKeyword_14; } - - //value=SelectStatement - public Assignment getValueAssignment_15() { return cValueAssignment_15; } - - //SelectStatement - public RuleCall getValueSelectStatementParserRuleCall_15_0() { return cValueSelectStatementParserRuleCall_15_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_16() { return cRightCurlyBracketKeyword_16; } - - //'on-condition' - public Keyword getOnConditionKeyword_17() { return cOnConditionKeyword_17; } - - //condition=Expression - public Assignment getConditionAssignment_18() { return cConditionAssignment_18; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_18_0() { return cConditionExpressionParserRuleCall_18_0; } - } - public class TrelloPUTElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.TrelloPUT"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cTrelloputKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cSecuredByKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cAuthtokenAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cAuthtokenSTRINGTerminalRuleCall_4_0 = (RuleCall)cAuthtokenAssignment_4.eContents().get(0); - private final Keyword cWithKeyKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cKeyAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cKeySTRINGTerminalRuleCall_6_0 = (RuleCall)cKeyAssignment_6.eContents().get(0); - private final Keyword cThroughUserKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cUseraccountAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cUseraccountSTRINGTerminalRuleCall_8_0 = (RuleCall)cUseraccountAssignment_8.eContents().get(0); - private final Keyword cForListKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cListAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cListSTRINGTerminalRuleCall_10_0 = (RuleCall)cListAssignment_10.eContents().get(0); - private final Keyword cFromSourceKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cSourceAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cSourceSTRINGTerminalRuleCall_12_0 = (RuleCall)cSourceAssignment_12.eContents().get(0); - private final Keyword cUsingKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Keyword cLeftCurlyBracketKeyword_14 = (Keyword)cGroup.eContents().get(14); - private final Assignment cValueAssignment_15 = (Assignment)cGroup.eContents().get(15); - private final RuleCall cValueSelectStatementParserRuleCall_15_0 = (RuleCall)cValueAssignment_15.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16); - private final Keyword cOnConditionKeyword_17 = (Keyword)cGroup.eContents().get(17); - private final Assignment cConditionAssignment_18 = (Assignment)cGroup.eContents().get(18); - private final RuleCall cConditionExpressionParserRuleCall_18_0 = (RuleCall)cConditionAssignment_18.eContents().get(0); - - //TrelloPUT: - // 'trelloput' 'as' name=STRING 'secured-by' authtoken=STRING 'with-key' key=STRING 'through-user' useraccount=STRING - // 'for-list' list=STRING 'from-source' source=STRING 'using' '{' value=SelectStatement '}' 'on-condition' - // condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'trelloput' 'as' name=STRING 'secured-by' authtoken=STRING 'with-key' key=STRING 'through-user' useraccount=STRING - //'for-list' list=STRING 'from-source' source=STRING 'using' '{' value=SelectStatement '}' 'on-condition' - //condition=Expression - public Group getGroup() { return cGroup; } - - //'trelloput' - public Keyword getTrelloputKeyword_0() { return cTrelloputKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'secured-by' - public Keyword getSecuredByKeyword_3() { return cSecuredByKeyword_3; } - - //authtoken=STRING - public Assignment getAuthtokenAssignment_4() { return cAuthtokenAssignment_4; } - - //STRING - public RuleCall getAuthtokenSTRINGTerminalRuleCall_4_0() { return cAuthtokenSTRINGTerminalRuleCall_4_0; } - - //'with-key' - public Keyword getWithKeyKeyword_5() { return cWithKeyKeyword_5; } - - //key=STRING - public Assignment getKeyAssignment_6() { return cKeyAssignment_6; } - - //STRING - public RuleCall getKeySTRINGTerminalRuleCall_6_0() { return cKeySTRINGTerminalRuleCall_6_0; } - - //'through-user' - public Keyword getThroughUserKeyword_7() { return cThroughUserKeyword_7; } - - //useraccount=STRING - public Assignment getUseraccountAssignment_8() { return cUseraccountAssignment_8; } - - //STRING - public RuleCall getUseraccountSTRINGTerminalRuleCall_8_0() { return cUseraccountSTRINGTerminalRuleCall_8_0; } - - //'for-list' - public Keyword getForListKeyword_9() { return cForListKeyword_9; } - - //list=STRING - public Assignment getListAssignment_10() { return cListAssignment_10; } - - //STRING - public RuleCall getListSTRINGTerminalRuleCall_10_0() { return cListSTRINGTerminalRuleCall_10_0; } - - //'from-source' - public Keyword getFromSourceKeyword_11() { return cFromSourceKeyword_11; } - - //source=STRING - public Assignment getSourceAssignment_12() { return cSourceAssignment_12; } - - //STRING - public RuleCall getSourceSTRINGTerminalRuleCall_12_0() { return cSourceSTRINGTerminalRuleCall_12_0; } - - //'using' - public Keyword getUsingKeyword_13() { return cUsingKeyword_13; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_14() { return cLeftCurlyBracketKeyword_14; } - - //value=SelectStatement - public Assignment getValueAssignment_15() { return cValueAssignment_15; } - - //SelectStatement - public RuleCall getValueSelectStatementParserRuleCall_15_0() { return cValueSelectStatementParserRuleCall_15_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_16() { return cRightCurlyBracketKeyword_16; } - - //'on-condition' - public Keyword getOnConditionKeyword_17() { return cOnConditionKeyword_17; } - - //condition=Expression - public Assignment getConditionAssignment_18() { return cConditionAssignment_18; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_18_0() { return cConditionExpressionParserRuleCall_18_0; } - } - public class FetchElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Fetch"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cAssignKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cSourceKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cSourceAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cSourceSTRINGTerminalRuleCall_4_0 = (RuleCall)cSourceAssignment_4.eContents().get(0); - private final Keyword cUsingKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Keyword cLeftCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); - private final Assignment cValueAssignment_7 = (Assignment)cGroup.eContents().get(7); - private final RuleCall cValueSTRINGTerminalRuleCall_7_0 = (RuleCall)cValueAssignment_7.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8); - private final Keyword cOnConditionKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cConditionAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cConditionExpressionParserRuleCall_10_0 = (RuleCall)cConditionAssignment_10.eContents().get(0); - - //Fetch: - // 'assign' 'as' name=STRING 'source' source=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'assign' 'as' name=STRING 'source' source=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'assign' - public Keyword getAssignKeyword_0() { return cAssignKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'source' - public Keyword getSourceKeyword_3() { return cSourceKeyword_3; } - - //source=STRING - public Assignment getSourceAssignment_4() { return cSourceAssignment_4; } - - //STRING - public RuleCall getSourceSTRINGTerminalRuleCall_4_0() { return cSourceSTRINGTerminalRuleCall_4_0; } - - //'using' - public Keyword getUsingKeyword_5() { return cUsingKeyword_5; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_6() { return cLeftCurlyBracketKeyword_6; } - - //value=STRING - public Assignment getValueAssignment_7() { return cValueAssignment_7; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_7_0() { return cValueSTRINGTerminalRuleCall_7_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; } - - //'on-condition' - public Keyword getOnConditionKeyword_9() { return cOnConditionKeyword_9; } - - //condition=Expression - public Assignment getConditionAssignment_10() { return cConditionAssignment_10; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_10_0() { return cConditionExpressionParserRuleCall_10_0; } - } - public class CallprocessElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Callprocess"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cCallprocessKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cWithTargetKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cTargetAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cTargetSTRINGTerminalRuleCall_4_0 = (RuleCall)cTargetAssignment_4.eContents().get(0); - private final Keyword cFromFileKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cSourceAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cSourceSTRINGTerminalRuleCall_6_0 = (RuleCall)cSourceAssignment_6.eContents().get(0); - private final Keyword cUsingKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cDatasourceAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cDatasourceSTRINGTerminalRuleCall_8_0 = (RuleCall)cDatasourceAssignment_8.eContents().get(0); - private final Keyword cForEveryKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Keyword cLeftCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10); - private final Assignment cValueAssignment_11 = (Assignment)cGroup.eContents().get(11); - private final RuleCall cValueSelectStatementParserRuleCall_11_0 = (RuleCall)cValueAssignment_11.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_12 = (Keyword)cGroup.eContents().get(12); - private final Keyword cOnConditionKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Assignment cConditionAssignment_14 = (Assignment)cGroup.eContents().get(14); - private final RuleCall cConditionExpressionParserRuleCall_14_0 = (RuleCall)cConditionAssignment_14.eContents().get(0); - - //Callprocess: - // 'callprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING - // 'for-every' '{' value=SelectStatement '}' 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'callprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING - //'for-every' '{' value=SelectStatement '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'callprocess' - public Keyword getCallprocessKeyword_0() { return cCallprocessKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'with-target' - public Keyword getWithTargetKeyword_3() { return cWithTargetKeyword_3; } - - //target=STRING - public Assignment getTargetAssignment_4() { return cTargetAssignment_4; } - - //STRING - public RuleCall getTargetSTRINGTerminalRuleCall_4_0() { return cTargetSTRINGTerminalRuleCall_4_0; } - - //'from-file' - public Keyword getFromFileKeyword_5() { return cFromFileKeyword_5; } - - //source=STRING - public Assignment getSourceAssignment_6() { return cSourceAssignment_6; } - - //STRING - public RuleCall getSourceSTRINGTerminalRuleCall_6_0() { return cSourceSTRINGTerminalRuleCall_6_0; } - - //'using' - public Keyword getUsingKeyword_7() { return cUsingKeyword_7; } - - //datasource=STRING - public Assignment getDatasourceAssignment_8() { return cDatasourceAssignment_8; } - - //STRING - public RuleCall getDatasourceSTRINGTerminalRuleCall_8_0() { return cDatasourceSTRINGTerminalRuleCall_8_0; } - - //'for-every' - public Keyword getForEveryKeyword_9() { return cForEveryKeyword_9; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_10() { return cLeftCurlyBracketKeyword_10; } - - //value=SelectStatement - public Assignment getValueAssignment_11() { return cValueAssignment_11; } - - //SelectStatement - public RuleCall getValueSelectStatementParserRuleCall_11_0() { return cValueSelectStatementParserRuleCall_11_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_12() { return cRightCurlyBracketKeyword_12; } - - //'on-condition' - public Keyword getOnConditionKeyword_13() { return cOnConditionKeyword_13; } - - //condition=Expression - public Assignment getConditionAssignment_14() { return cConditionAssignment_14; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_14_0() { return cConditionExpressionParserRuleCall_14_0; } - } - public class ForkprocessElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Forkprocess"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cForkprocessKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cWithTargetKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cTargetAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cTargetSTRINGTerminalRuleCall_4_0 = (RuleCall)cTargetAssignment_4.eContents().get(0); - private final Keyword cFromFileKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cSourceAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cSourceSTRINGTerminalRuleCall_6_0 = (RuleCall)cSourceAssignment_6.eContents().get(0); - private final Keyword cUsingKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cDatasourceAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cDatasourceSTRINGTerminalRuleCall_8_0 = (RuleCall)cDatasourceAssignment_8.eContents().get(0); - private final Keyword cForEveryKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Keyword cLeftCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10); - private final Assignment cValueAssignment_11 = (Assignment)cGroup.eContents().get(11); - private final RuleCall cValueSelectStatementParserRuleCall_11_0 = (RuleCall)cValueAssignment_11.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_12 = (Keyword)cGroup.eContents().get(12); - private final Keyword cWatermarkKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Assignment cForkBatchSizeAssignment_14 = (Assignment)cGroup.eContents().get(14); - private final RuleCall cForkBatchSizeSTRINGTerminalRuleCall_14_0 = (RuleCall)cForkBatchSizeAssignment_14.eContents().get(0); - private final Keyword cOnConditionKeyword_15 = (Keyword)cGroup.eContents().get(15); - private final Assignment cConditionAssignment_16 = (Assignment)cGroup.eContents().get(16); - private final RuleCall cConditionExpressionParserRuleCall_16_0 = (RuleCall)cConditionAssignment_16.eContents().get(0); - - //Forkprocess: - // 'forkprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING - // 'for-every' '{' value=SelectStatement '}' 'watermark' forkBatchSize=STRING 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'forkprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING - //'for-every' '{' value=SelectStatement '}' 'watermark' forkBatchSize=STRING 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'forkprocess' - public Keyword getForkprocessKeyword_0() { return cForkprocessKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'with-target' - public Keyword getWithTargetKeyword_3() { return cWithTargetKeyword_3; } - - //target=STRING - public Assignment getTargetAssignment_4() { return cTargetAssignment_4; } - - //STRING - public RuleCall getTargetSTRINGTerminalRuleCall_4_0() { return cTargetSTRINGTerminalRuleCall_4_0; } - - //'from-file' - public Keyword getFromFileKeyword_5() { return cFromFileKeyword_5; } - - //source=STRING - public Assignment getSourceAssignment_6() { return cSourceAssignment_6; } - - //STRING - public RuleCall getSourceSTRINGTerminalRuleCall_6_0() { return cSourceSTRINGTerminalRuleCall_6_0; } - - //'using' - public Keyword getUsingKeyword_7() { return cUsingKeyword_7; } - - //datasource=STRING - public Assignment getDatasourceAssignment_8() { return cDatasourceAssignment_8; } - - //STRING - public RuleCall getDatasourceSTRINGTerminalRuleCall_8_0() { return cDatasourceSTRINGTerminalRuleCall_8_0; } - - //'for-every' - public Keyword getForEveryKeyword_9() { return cForEveryKeyword_9; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_10() { return cLeftCurlyBracketKeyword_10; } - - //value=SelectStatement - public Assignment getValueAssignment_11() { return cValueAssignment_11; } - - //SelectStatement - public RuleCall getValueSelectStatementParserRuleCall_11_0() { return cValueSelectStatementParserRuleCall_11_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_12() { return cRightCurlyBracketKeyword_12; } - - //'watermark' - public Keyword getWatermarkKeyword_13() { return cWatermarkKeyword_13; } - - //forkBatchSize=STRING - public Assignment getForkBatchSizeAssignment_14() { return cForkBatchSizeAssignment_14; } - - //STRING - public RuleCall getForkBatchSizeSTRINGTerminalRuleCall_14_0() { return cForkBatchSizeSTRINGTerminalRuleCall_14_0; } - - //'on-condition' - public Keyword getOnConditionKeyword_15() { return cOnConditionKeyword_15; } - - //condition=Expression - public Assignment getConditionAssignment_16() { return cConditionAssignment_16; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_16_0() { return cConditionExpressionParserRuleCall_16_0; } - } - public class UpdatedauditElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Updatedaudit"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cLogKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cLogtoKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cLogsinkAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cLogsinkSTRINGTerminalRuleCall_4_0 = (RuleCall)cLogsinkAssignment_4.eContents().get(0); - private final Keyword cInKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cDatasourceAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cDatasourceSTRINGTerminalRuleCall_6_0 = (RuleCall)cDatasourceAssignment_6.eContents().get(0); - private final Keyword cUsingKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Keyword cLeftCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8); - private final Assignment cValueAssignment_9 = (Assignment)cGroup.eContents().get(9); - private final RuleCall cValueSelectStatementParserRuleCall_9_0 = (RuleCall)cValueAssignment_9.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10); - private final Keyword cOnConditionKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cConditionAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cConditionExpressionParserRuleCall_12_0 = (RuleCall)cConditionAssignment_12.eContents().get(0); - - //Updatedaudit: - // 'log' 'as' name=STRING 'logto' logsink=STRING 'in' datasource=STRING 'using' '{' value=SelectStatement '}' - // 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'log' 'as' name=STRING 'logto' logsink=STRING 'in' datasource=STRING 'using' '{' value=SelectStatement '}' - //'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'log' - public Keyword getLogKeyword_0() { return cLogKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'logto' - public Keyword getLogtoKeyword_3() { return cLogtoKeyword_3; } - - //logsink=STRING - public Assignment getLogsinkAssignment_4() { return cLogsinkAssignment_4; } - - //STRING - public RuleCall getLogsinkSTRINGTerminalRuleCall_4_0() { return cLogsinkSTRINGTerminalRuleCall_4_0; } - - //'in' - public Keyword getInKeyword_5() { return cInKeyword_5; } - - //datasource=STRING - public Assignment getDatasourceAssignment_6() { return cDatasourceAssignment_6; } - - //STRING - public RuleCall getDatasourceSTRINGTerminalRuleCall_6_0() { return cDatasourceSTRINGTerminalRuleCall_6_0; } - - //'using' - public Keyword getUsingKeyword_7() { return cUsingKeyword_7; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_8() { return cLeftCurlyBracketKeyword_8; } - - //value=SelectStatement - public Assignment getValueAssignment_9() { return cValueAssignment_9; } - - //SelectStatement - public RuleCall getValueSelectStatementParserRuleCall_9_0() { return cValueSelectStatementParserRuleCall_9_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; } - - //'on-condition' - public Keyword getOnConditionKeyword_11() { return cOnConditionKeyword_11; } - - //condition=Expression - public Assignment getConditionAssignment_12() { return cConditionAssignment_12; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_12_0() { return cConditionExpressionParserRuleCall_12_0; } - } - public class ClickSendSmsElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.ClickSendSms"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cC2smsKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cWithUserKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cUseridAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cUseridSTRINGTerminalRuleCall_4_0 = (RuleCall)cUseridAssignment_4.eContents().get(0); - private final Keyword cSecuredByKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cSecurityKeyAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cSecurityKeySTRINGTerminalRuleCall_6_0 = (RuleCall)cSecurityKeyAssignment_6.eContents().get(0); - private final Keyword cFromSourceKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cTargetAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cTargetSTRINGTerminalRuleCall_8_0 = (RuleCall)cTargetAssignment_8.eContents().get(0); - private final Keyword cUsingKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Keyword cLeftCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10); - private final Assignment cValueAssignment_11 = (Assignment)cGroup.eContents().get(11); - private final RuleCall cValueSTRINGTerminalRuleCall_11_0 = (RuleCall)cValueAssignment_11.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_12 = (Keyword)cGroup.eContents().get(12); - private final Keyword cOnConditionKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Assignment cConditionAssignment_14 = (Assignment)cGroup.eContents().get(14); - private final RuleCall cConditionExpressionParserRuleCall_14_0 = (RuleCall)cConditionAssignment_14.eContents().get(0); - - //ClickSendSms: - // 'c2sms' 'as' name=STRING 'with-user' userid=STRING 'secured-by' securityKey=STRING 'from-source' target=STRING - // 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'c2sms' 'as' name=STRING 'with-user' userid=STRING 'secured-by' securityKey=STRING 'from-source' target=STRING 'using' - //'{' value=STRING '}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'c2sms' - public Keyword getC2smsKeyword_0() { return cC2smsKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'with-user' - public Keyword getWithUserKeyword_3() { return cWithUserKeyword_3; } - - //userid=STRING - public Assignment getUseridAssignment_4() { return cUseridAssignment_4; } - - //STRING - public RuleCall getUseridSTRINGTerminalRuleCall_4_0() { return cUseridSTRINGTerminalRuleCall_4_0; } - - //'secured-by' - public Keyword getSecuredByKeyword_5() { return cSecuredByKeyword_5; } - - //securityKey=STRING - public Assignment getSecurityKeyAssignment_6() { return cSecurityKeyAssignment_6; } - - //STRING - public RuleCall getSecurityKeySTRINGTerminalRuleCall_6_0() { return cSecurityKeySTRINGTerminalRuleCall_6_0; } - - //'from-source' - public Keyword getFromSourceKeyword_7() { return cFromSourceKeyword_7; } - - //target=STRING - public Assignment getTargetAssignment_8() { return cTargetAssignment_8; } - - //STRING - public RuleCall getTargetSTRINGTerminalRuleCall_8_0() { return cTargetSTRINGTerminalRuleCall_8_0; } - - //'using' - public Keyword getUsingKeyword_9() { return cUsingKeyword_9; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_10() { return cLeftCurlyBracketKeyword_10; } - - //value=STRING - public Assignment getValueAssignment_11() { return cValueAssignment_11; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_11_0() { return cValueSTRINGTerminalRuleCall_11_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_12() { return cRightCurlyBracketKeyword_12; } - - //'on-condition' - public Keyword getOnConditionKeyword_13() { return cOnConditionKeyword_13; } - - //condition=Expression - public Assignment getConditionAssignment_14() { return cConditionAssignment_14; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_14_0() { return cConditionExpressionParserRuleCall_14_0; } - } - public class SlackPUTElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.SlackPUT"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cSlackputKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cToKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cTeamAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cTeamSTRINGTerminalRuleCall_4_0 = (RuleCall)cTeamAssignment_4.eContents().get(0); - private final Keyword cOnKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cChannelAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cChannelSTRINGTerminalRuleCall_6_0 = (RuleCall)cChannelAssignment_6.eContents().get(0); - private final Keyword cUsingKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Keyword cLeftCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8); - private final Assignment cValueAssignment_9 = (Assignment)cGroup.eContents().get(9); - private final RuleCall cValueSTRINGTerminalRuleCall_9_0 = (RuleCall)cValueAssignment_9.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10); - private final Keyword cOnConditionKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cConditionAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cConditionExpressionParserRuleCall_12_0 = (RuleCall)cConditionAssignment_12.eContents().get(0); - - //SlackPUT: - // 'slackput' 'as' name=STRING 'to' team=STRING 'on' channel=STRING 'using' '{' value=STRING '}' 'on-condition' - // condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'slackput' 'as' name=STRING 'to' team=STRING 'on' channel=STRING 'using' '{' value=STRING '}' 'on-condition' - //condition=Expression - public Group getGroup() { return cGroup; } - - //'slackput' - public Keyword getSlackputKeyword_0() { return cSlackputKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'to' - public Keyword getToKeyword_3() { return cToKeyword_3; } - - //team=STRING - public Assignment getTeamAssignment_4() { return cTeamAssignment_4; } - - //STRING - public RuleCall getTeamSTRINGTerminalRuleCall_4_0() { return cTeamSTRINGTerminalRuleCall_4_0; } - - //'on' - public Keyword getOnKeyword_5() { return cOnKeyword_5; } - - //channel=STRING - public Assignment getChannelAssignment_6() { return cChannelAssignment_6; } - - //STRING - public RuleCall getChannelSTRINGTerminalRuleCall_6_0() { return cChannelSTRINGTerminalRuleCall_6_0; } - - //'using' - public Keyword getUsingKeyword_7() { return cUsingKeyword_7; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_8() { return cLeftCurlyBracketKeyword_8; } - - //value=STRING - public Assignment getValueAssignment_9() { return cValueAssignment_9; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_9_0() { return cValueSTRINGTerminalRuleCall_9_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; } - - //'on-condition' - public Keyword getOnConditionKeyword_11() { return cOnConditionKeyword_11; } - - //condition=Expression - public Assignment getConditionAssignment_12() { return cConditionAssignment_12; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_12_0() { return cConditionExpressionParserRuleCall_12_0; } - } - public class CopydataElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Copydata"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cCopydataKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cFromKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cSourceAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cSourceSTRINGTerminalRuleCall_4_0 = (RuleCall)cSourceAssignment_4.eContents().get(0); - private final Keyword cToKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cToAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cToSTRINGTerminalRuleCall_6_0 = (RuleCall)cToAssignment_6.eContents().get(0); - private final Keyword cUsingKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Keyword cLeftCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8); - private final Assignment cValueAssignment_9 = (Assignment)cGroup.eContents().get(9); - private final RuleCall cValueSTRINGTerminalRuleCall_9_0 = (RuleCall)cValueAssignment_9.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10); - private final Keyword cOnConditionKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cConditionAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cConditionExpressionParserRuleCall_12_0 = (RuleCall)cConditionAssignment_12.eContents().get(0); - private final Keyword cFieldingKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Assignment cWriteThreadCountAssignment_14 = (Assignment)cGroup.eContents().get(14); - private final RuleCall cWriteThreadCountSTRINGTerminalRuleCall_14_0 = (RuleCall)cWriteThreadCountAssignment_14.eContents().get(0); - private final Keyword cWithFetchBatchSizeKeyword_15 = (Keyword)cGroup.eContents().get(15); - private final Assignment cFetchBatchSizeAssignment_16 = (Assignment)cGroup.eContents().get(16); - private final RuleCall cFetchBatchSizeSTRINGTerminalRuleCall_16_0 = (RuleCall)cFetchBatchSizeAssignment_16.eContents().get(0); - private final Keyword cWithWriteBatchSizeKeyword_17 = (Keyword)cGroup.eContents().get(17); - private final Assignment cWriteBatchSizeAssignment_18 = (Assignment)cGroup.eContents().get(18); - private final RuleCall cWriteBatchSizeSTRINGTerminalRuleCall_18_0 = (RuleCall)cWriteBatchSizeAssignment_18.eContents().get(0); - - //Copydata: - // 'copydata' 'as' name=STRING 'from' source=STRING 'to' to=STRING 'using' '{' value=STRING '}' 'on-condition' - // condition=Expression 'fielding' writeThreadCount=STRING 'with-fetch-batch-size' fetchBatchSize=STRING - // 'with-write-batch-size' writeBatchSize=STRING; - @Override public ParserRule getRule() { return rule; } - - //'copydata' 'as' name=STRING 'from' source=STRING 'to' to=STRING 'using' '{' value=STRING '}' 'on-condition' - //condition=Expression 'fielding' writeThreadCount=STRING 'with-fetch-batch-size' fetchBatchSize=STRING - //'with-write-batch-size' writeBatchSize=STRING - public Group getGroup() { return cGroup; } - - //'copydata' - public Keyword getCopydataKeyword_0() { return cCopydataKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'from' - public Keyword getFromKeyword_3() { return cFromKeyword_3; } - - //source=STRING - public Assignment getSourceAssignment_4() { return cSourceAssignment_4; } - - //STRING - public RuleCall getSourceSTRINGTerminalRuleCall_4_0() { return cSourceSTRINGTerminalRuleCall_4_0; } - - //'to' - public Keyword getToKeyword_5() { return cToKeyword_5; } - - //to=STRING - public Assignment getToAssignment_6() { return cToAssignment_6; } - - //STRING - public RuleCall getToSTRINGTerminalRuleCall_6_0() { return cToSTRINGTerminalRuleCall_6_0; } - - //'using' - public Keyword getUsingKeyword_7() { return cUsingKeyword_7; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_8() { return cLeftCurlyBracketKeyword_8; } - - //value=STRING - public Assignment getValueAssignment_9() { return cValueAssignment_9; } - - //STRING - public RuleCall getValueSTRINGTerminalRuleCall_9_0() { return cValueSTRINGTerminalRuleCall_9_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; } - - //'on-condition' - public Keyword getOnConditionKeyword_11() { return cOnConditionKeyword_11; } - - //condition=Expression - public Assignment getConditionAssignment_12() { return cConditionAssignment_12; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_12_0() { return cConditionExpressionParserRuleCall_12_0; } - - //'fielding' - public Keyword getFieldingKeyword_13() { return cFieldingKeyword_13; } - - //writeThreadCount=STRING - public Assignment getWriteThreadCountAssignment_14() { return cWriteThreadCountAssignment_14; } - - //STRING - public RuleCall getWriteThreadCountSTRINGTerminalRuleCall_14_0() { return cWriteThreadCountSTRINGTerminalRuleCall_14_0; } - - //'with-fetch-batch-size' - public Keyword getWithFetchBatchSizeKeyword_15() { return cWithFetchBatchSizeKeyword_15; } - - //fetchBatchSize=STRING - public Assignment getFetchBatchSizeAssignment_16() { return cFetchBatchSizeAssignment_16; } - - //STRING - public RuleCall getFetchBatchSizeSTRINGTerminalRuleCall_16_0() { return cFetchBatchSizeSTRINGTerminalRuleCall_16_0; } - - //'with-write-batch-size' - public Keyword getWithWriteBatchSizeKeyword_17() { return cWithWriteBatchSizeKeyword_17; } - - //writeBatchSize=STRING - public Assignment getWriteBatchSizeAssignment_18() { return cWriteBatchSizeAssignment_18; } - - //STRING - public RuleCall getWriteBatchSizeSTRINGTerminalRuleCall_18_0() { return cWriteBatchSizeSTRINGTerminalRuleCall_18_0; } - } - public class WriteCsvElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.WriteCsv"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cWritecsvKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cFromKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cSourceAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cSourceSTRINGTerminalRuleCall_4_0 = (RuleCall)cSourceAssignment_4.eContents().get(0); - private final Keyword cToKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cToAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cToSTRINGTerminalRuleCall_6_0 = (RuleCall)cToAssignment_6.eContents().get(0); - private final Keyword cWithKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cDelimAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cDelimSTRINGTerminalRuleCall_8_0 = (RuleCall)cDelimAssignment_8.eContents().get(0); - private final Keyword cUsingKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Keyword cLeftCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10); - private final Assignment cValueAssignment_11 = (Assignment)cGroup.eContents().get(11); - private final RuleCall cValueSelectStatementParserRuleCall_11_0 = (RuleCall)cValueAssignment_11.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_12 = (Keyword)cGroup.eContents().get(12); - private final Keyword cOnConditionKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Assignment cConditionAssignment_14 = (Assignment)cGroup.eContents().get(14); - private final RuleCall cConditionExpressionParserRuleCall_14_0 = (RuleCall)cConditionAssignment_14.eContents().get(0); - - //WriteCsv: - // 'writecsv' 'as' name=STRING 'from' source=STRING 'to' to=STRING 'with' delim=STRING 'using' '{' value=SelectStatement - // '}' 'on-condition' condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'writecsv' 'as' name=STRING 'from' source=STRING 'to' to=STRING 'with' delim=STRING 'using' '{' value=SelectStatement - //'}' 'on-condition' condition=Expression - public Group getGroup() { return cGroup; } - - //'writecsv' - public Keyword getWritecsvKeyword_0() { return cWritecsvKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'from' - public Keyword getFromKeyword_3() { return cFromKeyword_3; } - - //source=STRING - public Assignment getSourceAssignment_4() { return cSourceAssignment_4; } - - //STRING - public RuleCall getSourceSTRINGTerminalRuleCall_4_0() { return cSourceSTRINGTerminalRuleCall_4_0; } - - //'to' - public Keyword getToKeyword_5() { return cToKeyword_5; } - - //to=STRING - public Assignment getToAssignment_6() { return cToAssignment_6; } - - //STRING - public RuleCall getToSTRINGTerminalRuleCall_6_0() { return cToSTRINGTerminalRuleCall_6_0; } - - //'with' - public Keyword getWithKeyword_7() { return cWithKeyword_7; } - - //delim=STRING - public Assignment getDelimAssignment_8() { return cDelimAssignment_8; } - - //STRING - public RuleCall getDelimSTRINGTerminalRuleCall_8_0() { return cDelimSTRINGTerminalRuleCall_8_0; } - - //'using' - public Keyword getUsingKeyword_9() { return cUsingKeyword_9; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_10() { return cLeftCurlyBracketKeyword_10; } - - //value=SelectStatement - public Assignment getValueAssignment_11() { return cValueAssignment_11; } - - //SelectStatement - public RuleCall getValueSelectStatementParserRuleCall_11_0() { return cValueSelectStatementParserRuleCall_11_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_12() { return cRightCurlyBracketKeyword_12; } - - //'on-condition' - public Keyword getOnConditionKeyword_13() { return cOnConditionKeyword_13; } - - //condition=Expression - public Assignment getConditionAssignment_14() { return cConditionAssignment_14; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_14_0() { return cConditionExpressionParserRuleCall_14_0; } - } - public class LoadCsvElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.LoadCsv"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cLoadcsvKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cFromKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cSourceAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cSourceSTRINGTerminalRuleCall_4_0 = (RuleCall)cSourceAssignment_4.eContents().get(0); - private final Keyword cToKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Assignment cToAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cToSTRINGTerminalRuleCall_6_0 = (RuleCall)cToAssignment_6.eContents().get(0); - private final Keyword cWithKeyword_7 = (Keyword)cGroup.eContents().get(7); - private final Assignment cDelimAssignment_8 = (Assignment)cGroup.eContents().get(8); - private final RuleCall cDelimSTRINGTerminalRuleCall_8_0 = (RuleCall)cDelimAssignment_8.eContents().get(0); - private final Keyword cWithFetchBatchSizeKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cFetchBatchSizeAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cFetchBatchSizeINTTerminalRuleCall_10_0 = (RuleCall)cFetchBatchSizeAssignment_10.eContents().get(0); - private final Keyword cWithWriteBatchSizeKeyword_11 = (Keyword)cGroup.eContents().get(11); - private final Assignment cWriteBatchSizeAssignment_12 = (Assignment)cGroup.eContents().get(12); - private final RuleCall cWriteBatchSizeINTTerminalRuleCall_12_0 = (RuleCall)cWriteBatchSizeAssignment_12.eContents().get(0); - private final Keyword cUsingKeyword_13 = (Keyword)cGroup.eContents().get(13); - private final Keyword cLeftCurlyBracketKeyword_14 = (Keyword)cGroup.eContents().get(14); - private final Assignment cValueAssignment_15 = (Assignment)cGroup.eContents().get(15); - private final RuleCall cValueSelectStatementParserRuleCall_15_0 = (RuleCall)cValueAssignment_15.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16); - private final Keyword cOnConditionKeyword_17 = (Keyword)cGroup.eContents().get(17); - private final Assignment cConditionAssignment_18 = (Assignment)cGroup.eContents().get(18); - private final RuleCall cConditionExpressionParserRuleCall_18_0 = (RuleCall)cConditionAssignment_18.eContents().get(0); - private final Keyword cFieldingKeyword_19 = (Keyword)cGroup.eContents().get(19); - private final Assignment cWriteThreadCountAssignment_20 = (Assignment)cGroup.eContents().get(20); - private final RuleCall cWriteThreadCountINTTerminalRuleCall_20_0 = (RuleCall)cWriteThreadCountAssignment_20.eContents().get(0); - - //LoadCsv: - // 'loadcsv' 'as' name=STRING 'from' source=STRING 'to' to=STRING 'with' delim=STRING 'with-fetch-batch-size' - // fetchBatchSize=INT 'with-write-batch-size' writeBatchSize=INT 'using' '{' value=SelectStatement '}' 'on-condition' - // condition=Expression 'fielding' writeThreadCount=INT; - @Override public ParserRule getRule() { return rule; } - - //'loadcsv' 'as' name=STRING 'from' source=STRING 'to' to=STRING 'with' delim=STRING 'with-fetch-batch-size' - //fetchBatchSize=INT 'with-write-batch-size' writeBatchSize=INT 'using' '{' value=SelectStatement '}' 'on-condition' - //condition=Expression 'fielding' writeThreadCount=INT - public Group getGroup() { return cGroup; } - - //'loadcsv' - public Keyword getLoadcsvKeyword_0() { return cLoadcsvKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'from' - public Keyword getFromKeyword_3() { return cFromKeyword_3; } - - //source=STRING - public Assignment getSourceAssignment_4() { return cSourceAssignment_4; } - - //STRING - public RuleCall getSourceSTRINGTerminalRuleCall_4_0() { return cSourceSTRINGTerminalRuleCall_4_0; } - - //'to' - public Keyword getToKeyword_5() { return cToKeyword_5; } - - //to=STRING - public Assignment getToAssignment_6() { return cToAssignment_6; } - - //STRING - public RuleCall getToSTRINGTerminalRuleCall_6_0() { return cToSTRINGTerminalRuleCall_6_0; } - - //'with' - public Keyword getWithKeyword_7() { return cWithKeyword_7; } - - //delim=STRING - public Assignment getDelimAssignment_8() { return cDelimAssignment_8; } - - //STRING - public RuleCall getDelimSTRINGTerminalRuleCall_8_0() { return cDelimSTRINGTerminalRuleCall_8_0; } - - //'with-fetch-batch-size' - public Keyword getWithFetchBatchSizeKeyword_9() { return cWithFetchBatchSizeKeyword_9; } - - //fetchBatchSize=INT - public Assignment getFetchBatchSizeAssignment_10() { return cFetchBatchSizeAssignment_10; } - - //INT - public RuleCall getFetchBatchSizeINTTerminalRuleCall_10_0() { return cFetchBatchSizeINTTerminalRuleCall_10_0; } - - //'with-write-batch-size' - public Keyword getWithWriteBatchSizeKeyword_11() { return cWithWriteBatchSizeKeyword_11; } - - //writeBatchSize=INT - public Assignment getWriteBatchSizeAssignment_12() { return cWriteBatchSizeAssignment_12; } - - //INT - public RuleCall getWriteBatchSizeINTTerminalRuleCall_12_0() { return cWriteBatchSizeINTTerminalRuleCall_12_0; } - - //'using' - public Keyword getUsingKeyword_13() { return cUsingKeyword_13; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_14() { return cLeftCurlyBracketKeyword_14; } - - //value=SelectStatement - public Assignment getValueAssignment_15() { return cValueAssignment_15; } - - //SelectStatement - public RuleCall getValueSelectStatementParserRuleCall_15_0() { return cValueSelectStatementParserRuleCall_15_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_16() { return cRightCurlyBracketKeyword_16; } - - //'on-condition' - public Keyword getOnConditionKeyword_17() { return cOnConditionKeyword_17; } - - //condition=Expression - public Assignment getConditionAssignment_18() { return cConditionAssignment_18; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_18_0() { return cConditionExpressionParserRuleCall_18_0; } - - //'fielding' - public Keyword getFieldingKeyword_19() { return cFieldingKeyword_19; } - - //writeThreadCount=INT - public Assignment getWriteThreadCountAssignment_20() { return cWriteThreadCountAssignment_20; } - - //INT - public RuleCall getWriteThreadCountINTTerminalRuleCall_20_0() { return cWriteThreadCountINTTerminalRuleCall_20_0; } - } - public class TransformElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Transform"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cTransformKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Keyword cAsKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); - private final Keyword cOnKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cOnAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cOnSTRINGTerminalRuleCall_4_0 = (RuleCall)cOnAssignment_4.eContents().get(0); - private final Keyword cUsingKeyword_5 = (Keyword)cGroup.eContents().get(5); - private final Keyword cLeftCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); - private final Assignment cValueAssignment_7 = (Assignment)cGroup.eContents().get(7); - private final RuleCall cValueNonSelectStatementParserRuleCall_7_0 = (RuleCall)cValueAssignment_7.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8); - private final Keyword cOnConditionKeyword_9 = (Keyword)cGroup.eContents().get(9); - private final Assignment cConditionAssignment_10 = (Assignment)cGroup.eContents().get(10); - private final RuleCall cConditionExpressionParserRuleCall_10_0 = (RuleCall)cConditionAssignment_10.eContents().get(0); - - //Transform: - // 'transform' 'as' name=STRING 'on' on=STRING 'using' '{' value+=NonSelectStatement '}' 'on-condition' - // condition=Expression; - @Override public ParserRule getRule() { return rule; } - - //'transform' 'as' name=STRING 'on' on=STRING 'using' '{' value+=NonSelectStatement '}' 'on-condition' - //condition=Expression - public Group getGroup() { return cGroup; } - - //'transform' - public Keyword getTransformKeyword_0() { return cTransformKeyword_0; } - - //'as' - public Keyword getAsKeyword_1() { return cAsKeyword_1; } - - //name=STRING - public Assignment getNameAssignment_2() { return cNameAssignment_2; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; } - - //'on' - public Keyword getOnKeyword_3() { return cOnKeyword_3; } - - //on=STRING - public Assignment getOnAssignment_4() { return cOnAssignment_4; } - - //STRING - public RuleCall getOnSTRINGTerminalRuleCall_4_0() { return cOnSTRINGTerminalRuleCall_4_0; } - - //'using' - public Keyword getUsingKeyword_5() { return cUsingKeyword_5; } - - //'{' - public Keyword getLeftCurlyBracketKeyword_6() { return cLeftCurlyBracketKeyword_6; } - - //value+=NonSelectStatement - public Assignment getValueAssignment_7() { return cValueAssignment_7; } - - //NonSelectStatement - public RuleCall getValueNonSelectStatementParserRuleCall_7_0() { return cValueNonSelectStatementParserRuleCall_7_0; } - - //'}' - public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; } - - //'on-condition' - public Keyword getOnConditionKeyword_9() { return cOnConditionKeyword_9; } - - //condition=Expression - public Assignment getConditionAssignment_10() { return cConditionAssignment_10; } - - //Expression - public RuleCall getConditionExpressionParserRuleCall_10_0() { return cConditionExpressionParserRuleCall_10_0; } - } - public class ColumnElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Column"); - private final RuleCall cSTRINGTerminalRuleCall = (RuleCall)rule.eContents().get(1); - - //Column: - // STRING; - @Override public ParserRule getRule() { return rule; } - - //STRING - public RuleCall getSTRINGTerminalRuleCall() { return cSTRINGTerminalRuleCall; } - } - public class SelectStatementElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.SelectStatement"); - private final RuleCall cSTRINGTerminalRuleCall = (RuleCall)rule.eContents().get(1); - - //SelectStatement: - // STRING; - @Override public ParserRule getRule() { return rule; } - - //STRING - public RuleCall getSTRINGTerminalRuleCall() { return cSTRINGTerminalRuleCall; } - } - public class NonSelectStatementElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.NonSelectStatement"); - private final RuleCall cSTRINGTerminalRuleCall = (RuleCall)rule.eContents().get(1); - - //NonSelectStatement: - // STRING; - @Override public ParserRule getRule() { return rule; } - - //STRING - public RuleCall getSTRINGTerminalRuleCall() { return cSTRINGTerminalRuleCall; } - } - public class CreateStatementElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.CreateStatement"); - private final RuleCall cSTRINGTerminalRuleCall = (RuleCall)rule.eContents().get(1); - - //CreateStatement: - // STRING; - @Override public ParserRule getRule() { return rule; } - - //STRING - public RuleCall getSTRINGTerminalRuleCall() { return cSTRINGTerminalRuleCall; } - } - public class StartProcessElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.StartProcess"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cStartProcessKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); - private final Keyword cWithFileKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cTargetAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cTargetSTRINGTerminalRuleCall_3_0 = (RuleCall)cTargetAssignment_3.eContents().get(0); - - //StartProcess: - // 'start-process' name=STRING 'with-file' target=STRING; - @Override public ParserRule getRule() { return rule; } - - //'start-process' name=STRING 'with-file' target=STRING - public Group getGroup() { return cGroup; } - - //'start-process' - public Keyword getStartProcessKeyword_0() { return cStartProcessKeyword_0; } - - //name=STRING - public Assignment getNameAssignment_1() { return cNameAssignment_1; } - - //STRING - public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; } - - //'with-file' - public Keyword getWithFileKeyword_2() { return cWithFileKeyword_2; } - - //target=STRING - public Assignment getTargetAssignment_3() { return cTargetAssignment_3; } - - //STRING - public RuleCall getTargetSTRINGTerminalRuleCall_3_0() { return cTargetSTRINGTerminalRuleCall_3_0; } - } - public class ExpressionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Expression"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cIfKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cLhsAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cLhsSTRINGTerminalRuleCall_1_0 = (RuleCall)cLhsAssignment_1.eContents().get(0); - private final Assignment cOperatorAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cOperatorOperatorParserRuleCall_2_0 = (RuleCall)cOperatorAssignment_2.eContents().get(0); - private final Assignment cRhsAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cRhsSTRINGTerminalRuleCall_3_0 = (RuleCall)cRhsAssignment_3.eContents().get(0); - - //Expression: - // 'if' lhs=STRING operator=Operator rhs=STRING; - @Override public ParserRule getRule() { return rule; } - - //'if' lhs=STRING operator=Operator rhs=STRING - public Group getGroup() { return cGroup; } - - //'if' - public Keyword getIfKeyword_0() { return cIfKeyword_0; } - - //lhs=STRING - public Assignment getLhsAssignment_1() { return cLhsAssignment_1; } - - //STRING - public RuleCall getLhsSTRINGTerminalRuleCall_1_0() { return cLhsSTRINGTerminalRuleCall_1_0; } - - //operator=Operator - public Assignment getOperatorAssignment_2() { return cOperatorAssignment_2; } - - //Operator - public RuleCall getOperatorOperatorParserRuleCall_2_0() { return cOperatorOperatorParserRuleCall_2_0; } - - //rhs=STRING - public Assignment getRhsAssignment_3() { return cRhsAssignment_3; } - - //STRING - public RuleCall getRhsSTRINGTerminalRuleCall_3_0() { return cRhsSTRINGTerminalRuleCall_3_0; } - } - public class OperatorElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "in.handyman.Dsl.Operator"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final Keyword cLessThanSignKeyword_0 = (Keyword)cAlternatives.eContents().get(0); - private final Keyword cGreaterThanSignKeyword_1 = (Keyword)cAlternatives.eContents().get(1); - private final Keyword cEqualsSignEqualsSignKeyword_2 = (Keyword)cAlternatives.eContents().get(2); - private final Keyword cContainsKeyword_3 = (Keyword)cAlternatives.eContents().get(3); - - //Operator: - // '<' | '>' | '==' | 'contains'; - @Override public ParserRule getRule() { return rule; } - - //'<' | '>' | '==' | 'contains' - public Alternatives getAlternatives() { return cAlternatives; } - - //'<' - public Keyword getLessThanSignKeyword_0() { return cLessThanSignKeyword_0; } - - //'>' - public Keyword getGreaterThanSignKeyword_1() { return cGreaterThanSignKeyword_1; } - - //'==' - public Keyword getEqualsSignEqualsSignKeyword_2() { return cEqualsSignEqualsSignKeyword_2; } - - //'contains' - public Keyword getContainsKeyword_3() { return cContainsKeyword_3; } - } - - - private final ProcessElements pProcess; - private final TryElements pTry; - private final FinallyElements pFinally; - private final CatchElements pCatch; - private final ActionElements pAction; - private final SpawnprocessElements pSpawnprocess; - private final DoglegElements pDogleg; - private final ExecJavaElements pExecJava; - private final FirebaseDatabasePutElements pFirebaseDatabasePut; - private final FirebaseReactiveNotificationElements pFirebaseReactiveNotification; - private final SmsLeadSmsElements pSmsLeadSms; - private final AbortElements pAbort; - private final GooglecontactSelectAllElements pGooglecontactSelectAll; - private final SendMailElements pSendMail; - private final GooglecontactPUTElements pGooglecontactPUT; - private final GooglecalPUTElements pGooglecalPUT; - private final FBCLeadElements pFBCLead; - private final FBFormDownloadElements pFBFormDownload; - private final DropfileElements pDropfile; - private final DoozleElements pDoozle; - private final RestElements pRest; - private final RestPartElements pRestPart; - private final TrelloGETElements pTrelloGET; - private final TrelloPUTElements pTrelloPUT; - private final FetchElements pFetch; - private final CallprocessElements pCallprocess; - private final ForkprocessElements pForkprocess; - private final UpdatedauditElements pUpdatedaudit; - private final ClickSendSmsElements pClickSendSms; - private final SlackPUTElements pSlackPUT; - private final CopydataElements pCopydata; - private final WriteCsvElements pWriteCsv; - private final LoadCsvElements pLoadCsv; - private final TransformElements pTransform; - private final ColumnElements pColumn; - private final SelectStatementElements pSelectStatement; - private final NonSelectStatementElements pNonSelectStatement; - private final CreateStatementElements pCreateStatement; - private final StartProcessElements pStartProcess; - private final ExpressionElements pExpression; - private final OperatorElements pOperator; - - private final Grammar grammar; - - private final TerminalsGrammarAccess gaTerminals; - - @Inject - public DslGrammarAccess(GrammarProvider grammarProvider, - TerminalsGrammarAccess gaTerminals) { - this.grammar = internalFindGrammar(grammarProvider); - this.gaTerminals = gaTerminals; - this.pProcess = new ProcessElements(); - this.pTry = new TryElements(); - this.pFinally = new FinallyElements(); - this.pCatch = new CatchElements(); - this.pAction = new ActionElements(); - this.pSpawnprocess = new SpawnprocessElements(); - this.pDogleg = new DoglegElements(); - this.pExecJava = new ExecJavaElements(); - this.pFirebaseDatabasePut = new FirebaseDatabasePutElements(); - this.pFirebaseReactiveNotification = new FirebaseReactiveNotificationElements(); - this.pSmsLeadSms = new SmsLeadSmsElements(); - this.pAbort = new AbortElements(); - this.pGooglecontactSelectAll = new GooglecontactSelectAllElements(); - this.pSendMail = new SendMailElements(); - this.pGooglecontactPUT = new GooglecontactPUTElements(); - this.pGooglecalPUT = new GooglecalPUTElements(); - this.pFBCLead = new FBCLeadElements(); - this.pFBFormDownload = new FBFormDownloadElements(); - this.pDropfile = new DropfileElements(); - this.pDoozle = new DoozleElements(); - this.pRest = new RestElements(); - this.pRestPart = new RestPartElements(); - this.pTrelloGET = new TrelloGETElements(); - this.pTrelloPUT = new TrelloPUTElements(); - this.pFetch = new FetchElements(); - this.pCallprocess = new CallprocessElements(); - this.pForkprocess = new ForkprocessElements(); - this.pUpdatedaudit = new UpdatedauditElements(); - this.pClickSendSms = new ClickSendSmsElements(); - this.pSlackPUT = new SlackPUTElements(); - this.pCopydata = new CopydataElements(); - this.pWriteCsv = new WriteCsvElements(); - this.pLoadCsv = new LoadCsvElements(); - this.pTransform = new TransformElements(); - this.pColumn = new ColumnElements(); - this.pSelectStatement = new SelectStatementElements(); - this.pNonSelectStatement = new NonSelectStatementElements(); - this.pCreateStatement = new CreateStatementElements(); - this.pStartProcess = new StartProcessElements(); - this.pExpression = new ExpressionElements(); - this.pOperator = new OperatorElements(); - } - - protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { - Grammar grammar = grammarProvider.getGrammar(this); - while (grammar != null) { - if ("in.handyman.Dsl".equals(grammar.getName())) { - return grammar; - } - List grammars = grammar.getUsedGrammars(); - if (!grammars.isEmpty()) { - grammar = grammars.iterator().next(); - } else { - return null; - } - } - return grammar; - } - - @Override - public Grammar getGrammar() { - return grammar; - } - - - public TerminalsGrammarAccess getTerminalsGrammarAccess() { - return gaTerminals; - } - - - //Process: - // 'process' name=STRING '{' try=Try catch=Catch finally=Finally '}'; - public ProcessElements getProcessAccess() { - return pProcess; - } - - public ParserRule getProcessRule() { - return getProcessAccess().getRule(); - } - - //Try: - // 'try' name=ID '{' action+=Action* '}'; - public TryElements getTryAccess() { - return pTry; - } - - public ParserRule getTryRule() { - return getTryAccess().getRule(); - } - - //Finally: - // 'finally' name=ID '{' action+=Action* '}'; - public FinallyElements getFinallyAccess() { - return pFinally; - } - - public ParserRule getFinallyRule() { - return getFinallyAccess().getRule(); - } - - //Catch: - // 'catch' name=ID '{' action+=Action* '}'; - public CatchElements getCatchAccess() { - return pCatch; - } - - public ParserRule getCatchRule() { - return getCatchAccess().getRule(); - } - - //Action: - // Copydata | LoadCsv | WriteCsv | Transform | GooglecalPUT | SlackPUT | ClickSendSms | Updatedaudit | Callprocess | - // Forkprocess | Fetch | TrelloPUT | TrelloGET | Rest | Doozle | Dropfile | FBCLead | FBFormDownload | SendMail | - // GooglecontactPUT | GooglecontactSelectAll | Abort | SmsLeadSms | FirebaseReactiveNotification | FirebaseDatabasePut | - // ExecJava | Dogleg | Spawnprocess; - public ActionElements getActionAccess() { - return pAction; - } - - public ParserRule getActionRule() { - return getActionAccess().getRule(); - } - - //Spawnprocess: - // 'spawn' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'on-condition' condition=Expression; - public SpawnprocessElements getSpawnprocessAccess() { - return pSpawnprocess; - } - - public ParserRule getSpawnprocessRule() { - return getSpawnprocessAccess().getRule(); - } - - //Dogleg: - // "dogleg" 'as' name=STRING 'use-parent-context' inheritContext=STRING 'using' '{' processList+=StartProcess '}' - // 'on-condition' condition=Expression; - public DoglegElements getDoglegAccess() { - return pDogleg; - } - - public ParserRule getDoglegRule() { - return getDoglegAccess().getRule(); - } - - //ExecJava: - // "java" 'as' name=STRING 'using' classFqn=STRING 'name-sake-db' dbSrc=STRING '{' value=STRING '}' 'on-condition' - // condition=Expression; - public ExecJavaElements getExecJavaAccess() { - return pExecJava; - } - - public ParserRule getExecJavaRule() { - return getExecJavaAccess().getRule(); - } - - //FirebaseDatabasePut: - // 'fbdp' 'as' name=STRING 'on' url=STRING 'auth-by' fbjson=STRING 'for-group' groupPath=STRING 'from-source' - // dbSrc=STRING 'with-class' classFqn=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - public FirebaseDatabasePutElements getFirebaseDatabasePutAccess() { - return pFirebaseDatabasePut; - } - - public ParserRule getFirebaseDatabasePutRule() { - return getFirebaseDatabasePutAccess().getRule(); - } - - //FirebaseReactiveNotification: - // 'fbrn' 'as' name=STRING 'on' url=STRING 'auth-by' fbjson=STRING 'for-group' groupPath=STRING 'with-class' - // classFqn=STRING 'using' dbSrc=STRING 'on-condition' condition=Expression; - public FirebaseReactiveNotificationElements getFirebaseReactiveNotificationAccess() { - return pFirebaseReactiveNotification; - } - - public ParserRule getFirebaseReactiveNotificationRule() { - return getFirebaseReactiveNotificationAccess().getRule(); - } - - //SmsLeadSms: - // 'smsleadssms' 'as' name=STRING 'on' url=STRING 'with-sender' sender=STRING 'through-account' account=STRING - // 'secured-by' privateKey=STRING 'from-source' dbSrc=STRING 'using' '{' value=STRING '}' 'on-condition' - // condition=Expression 'do-dryrun-with' dryrunNumber=STRING; - public SmsLeadSmsElements getSmsLeadSmsAccess() { - return pSmsLeadSms; - } - - public ParserRule getSmsLeadSmsRule() { - return getSmsLeadSmsAccess().getRule(); - } - - //Abort: - // 'abort' 'as' name=STRING '{' value=STRING '}' 'on-condition' condition=Expression; - public AbortElements getAbortAccess() { - return pAbort; - } - - public ParserRule getAbortRule() { - return getAbortAccess().getRule(); - } - - //GooglecontactSelectAll: - // 'gcontact-fetchall' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' - // ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'to-target' dbSrc=STRING - // 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - public GooglecontactSelectAllElements getGooglecontactSelectAllAccess() { - return pGooglecontactSelectAll; - } - - public ParserRule getGooglecontactSelectAllRule() { - return getGooglecontactSelectAllAccess().getRule(); - } - - //SendMail: - // 'sendmail' 'as' name=STRING 'secured-by' privateKey=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' - // dbSrc=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression 'do-dryrun-with' dryrunMail=STRING; - public SendMailElements getSendMailAccess() { - return pSendMail; - } - - public ParserRule getSendMailRule() { - return getSendMailAccess().getRule(); - } - - //GooglecontactPUT: - // 'gcontact' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' - // ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' dbSrc=STRING - // 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - public GooglecontactPUTElements getGooglecontactPUTAccess() { - return pGooglecontactPUT; - } - - public ParserRule getGooglecontactPUTRule() { - return getGooglecontactPUTAccess().getRule(); - } - - //GooglecalPUT: - // 'gcalendar' 'as' name=STRING 'through-account' account=STRING 'secured-by' privateKey=STRING 'with-key' - // ptwelveFile=STRING 'for-project' project=STRING 'on-behalf-of' impersonatedUser=STRING 'from-source' dbSrc=STRING - // 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - public GooglecalPUTElements getGooglecalPUTAccess() { - return pGooglecalPUT; - } - - public ParserRule getGooglecalPUTRule() { - return getGooglecalPUTAccess().getRule(); - } - - //FBCLead: - // 'fblc' 'as' name=STRING 'secured-by' accessToken=STRING 'with-key' appSecret=STRING 'through-user' accountId=STRING - // 'for-campaign' campaignId=STRING 'into' target=STRING 'using' '{' value=STRING '}' 'on-condition' - // condition=Expression; - public FBCLeadElements getFBCLeadAccess() { - return pFBCLead; - } - - public ParserRule getFBCLeadRule() { - return getFBCLeadAccess().getRule(); - } - - //FBFormDownload: - // 'fbfd' 'as' name=STRING 'secured-by' accessToken=STRING 'with-key' appSecret=STRING 'through-user' accountId=STRING - // 'for-form' formId=STRING 'into' target=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - public FBFormDownloadElements getFBFormDownloadAccess() { - return pFBFormDownload; - } - - public ParserRule getFBFormDownloadRule() { - return getFBFormDownloadAccess().getRule(); - } - - //Dropfile: - // 'dropfile' 'as' name=STRING 'in-path' target=STRING 'on-condition' condition=Expression; - public DropfileElements getDropfileAccess() { - return pDropfile; - } - - public ParserRule getDropfileRule() { - return getDropfileAccess().getRule(); - } - - //Doozle: - // 'doozle' 'as' name=STRING 'in-table' target=STRING 'on' on=STRING 'using' '{' value=CreateStatement '}' - // 'on-condition' condition=Expression; - public DoozleElements getDoozleAccess() { - return pDoozle; - } - - public ParserRule getDoozleRule() { - return getDoozleAccess().getRule(); - } - - //Rest: - // 'rest' 'as' name=STRING 'secured-by' authtoken=STRING 'with-url' url=STRING 'and-method-as' method=STRING '{' 'from' - // resourcedatafrom=STRING 'update-url-with' '{' urldata=SelectStatement '}' 'from' headerdatafrom=STRING - // 'update-header-with' '{' headerdata=SelectStatement '}' 'from' postdatafrom=STRING 'update-body-with' '{' 'parent' - // 'as' parentName=STRING parentdata=SelectStatement parts+=RestPart* '}' 'into' ackdatato=STRING 'store-ack-at' '{' - // ackdata=SelectStatement '}' '}' 'on-condition' condition=Expression; - public RestElements getRestAccess() { - return pRest; - } - - public ParserRule getRestRule() { - return getRestAccess().getRule(); - } - - //RestPart: - // 'part' 'as' partName=STRING 'with' partData=SelectStatement; - public RestPartElements getRestPartAccess() { - return pRestPart; - } - - public ParserRule getRestPartRule() { - return getRestPartAccess().getRule(); - } - - //TrelloGET: - // 'trelloget' 'as' name=STRING 'secured-by' authtoken=STRING 'with-key' key=STRING 'through-user' useraccount=STRING - // 'from-board' board=STRING 'to' target=STRING 'using' '{' value=SelectStatement '}' 'on-condition' - // condition=Expression; - public TrelloGETElements getTrelloGETAccess() { - return pTrelloGET; - } - - public ParserRule getTrelloGETRule() { - return getTrelloGETAccess().getRule(); - } - - //TrelloPUT: - // 'trelloput' 'as' name=STRING 'secured-by' authtoken=STRING 'with-key' key=STRING 'through-user' useraccount=STRING - // 'for-list' list=STRING 'from-source' source=STRING 'using' '{' value=SelectStatement '}' 'on-condition' - // condition=Expression; - public TrelloPUTElements getTrelloPUTAccess() { - return pTrelloPUT; - } - - public ParserRule getTrelloPUTRule() { - return getTrelloPUTAccess().getRule(); - } - - //Fetch: - // 'assign' 'as' name=STRING 'source' source=STRING 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - public FetchElements getFetchAccess() { - return pFetch; - } - - public ParserRule getFetchRule() { - return getFetchAccess().getRule(); - } - - //Callprocess: - // 'callprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING - // 'for-every' '{' value=SelectStatement '}' 'on-condition' condition=Expression; - public CallprocessElements getCallprocessAccess() { - return pCallprocess; - } - - public ParserRule getCallprocessRule() { - return getCallprocessAccess().getRule(); - } - - //Forkprocess: - // 'forkprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING - // 'for-every' '{' value=SelectStatement '}' 'watermark' forkBatchSize=STRING 'on-condition' condition=Expression; - public ForkprocessElements getForkprocessAccess() { - return pForkprocess; - } - - public ParserRule getForkprocessRule() { - return getForkprocessAccess().getRule(); - } - - //Updatedaudit: - // 'log' 'as' name=STRING 'logto' logsink=STRING 'in' datasource=STRING 'using' '{' value=SelectStatement '}' - // 'on-condition' condition=Expression; - public UpdatedauditElements getUpdatedauditAccess() { - return pUpdatedaudit; - } - - public ParserRule getUpdatedauditRule() { - return getUpdatedauditAccess().getRule(); - } - - //ClickSendSms: - // 'c2sms' 'as' name=STRING 'with-user' userid=STRING 'secured-by' securityKey=STRING 'from-source' target=STRING - // 'using' '{' value=STRING '}' 'on-condition' condition=Expression; - public ClickSendSmsElements getClickSendSmsAccess() { - return pClickSendSms; - } - - public ParserRule getClickSendSmsRule() { - return getClickSendSmsAccess().getRule(); - } - - //SlackPUT: - // 'slackput' 'as' name=STRING 'to' team=STRING 'on' channel=STRING 'using' '{' value=STRING '}' 'on-condition' - // condition=Expression; - public SlackPUTElements getSlackPUTAccess() { - return pSlackPUT; - } - - public ParserRule getSlackPUTRule() { - return getSlackPUTAccess().getRule(); - } - - //Copydata: - // 'copydata' 'as' name=STRING 'from' source=STRING 'to' to=STRING 'using' '{' value=STRING '}' 'on-condition' - // condition=Expression 'fielding' writeThreadCount=STRING 'with-fetch-batch-size' fetchBatchSize=STRING - // 'with-write-batch-size' writeBatchSize=STRING; - public CopydataElements getCopydataAccess() { - return pCopydata; - } - - public ParserRule getCopydataRule() { - return getCopydataAccess().getRule(); - } - - //WriteCsv: - // 'writecsv' 'as' name=STRING 'from' source=STRING 'to' to=STRING 'with' delim=STRING 'using' '{' value=SelectStatement - // '}' 'on-condition' condition=Expression; - public WriteCsvElements getWriteCsvAccess() { - return pWriteCsv; - } - - public ParserRule getWriteCsvRule() { - return getWriteCsvAccess().getRule(); - } - - //LoadCsv: - // 'loadcsv' 'as' name=STRING 'from' source=STRING 'to' to=STRING 'with' delim=STRING 'with-fetch-batch-size' - // fetchBatchSize=INT 'with-write-batch-size' writeBatchSize=INT 'using' '{' value=SelectStatement '}' 'on-condition' - // condition=Expression 'fielding' writeThreadCount=INT; - public LoadCsvElements getLoadCsvAccess() { - return pLoadCsv; - } - - public ParserRule getLoadCsvRule() { - return getLoadCsvAccess().getRule(); - } - - //Transform: - // 'transform' 'as' name=STRING 'on' on=STRING 'using' '{' value+=NonSelectStatement '}' 'on-condition' - // condition=Expression; - public TransformElements getTransformAccess() { - return pTransform; - } - - public ParserRule getTransformRule() { - return getTransformAccess().getRule(); - } - - //Column: - // STRING; - public ColumnElements getColumnAccess() { - return pColumn; - } - - public ParserRule getColumnRule() { - return getColumnAccess().getRule(); - } - - //SelectStatement: - // STRING; - public SelectStatementElements getSelectStatementAccess() { - return pSelectStatement; - } - - public ParserRule getSelectStatementRule() { - return getSelectStatementAccess().getRule(); - } - - //NonSelectStatement: - // STRING; - public NonSelectStatementElements getNonSelectStatementAccess() { - return pNonSelectStatement; - } - - public ParserRule getNonSelectStatementRule() { - return getNonSelectStatementAccess().getRule(); - } - - //CreateStatement: - // STRING; - public CreateStatementElements getCreateStatementAccess() { - return pCreateStatement; - } - - public ParserRule getCreateStatementRule() { - return getCreateStatementAccess().getRule(); - } - - //StartProcess: - // 'start-process' name=STRING 'with-file' target=STRING; - public StartProcessElements getStartProcessAccess() { - return pStartProcess; - } - - public ParserRule getStartProcessRule() { - return getStartProcessAccess().getRule(); - } - - //Expression: - // 'if' lhs=STRING operator=Operator rhs=STRING; - public ExpressionElements getExpressionAccess() { - return pExpression; - } - - public ParserRule getExpressionRule() { - return getExpressionAccess().getRule(); - } - - //Operator: - // '<' | '>' | '==' | 'contains'; - public OperatorElements getOperatorAccess() { - return pOperator; - } - - public ParserRule getOperatorRule() { - return getOperatorAccess().getRule(); - } - - //terminal ID: - // '^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*; - public TerminalRule getIDRule() { - return gaTerminals.getIDRule(); - } - - //terminal INT returns ecore::EInt: - // '0'..'9'+; - public TerminalRule getINTRule() { - return gaTerminals.getINTRule(); - } - - //terminal STRING: - // '"' ('\\' . | !('\\' | '"'))* '"' | "'" ('\\' . | !('\\' | "'"))* "'"; - public TerminalRule getSTRINGRule() { - return gaTerminals.getSTRINGRule(); - } - - //terminal ML_COMMENT: - // '/*'->'*/'; - public TerminalRule getML_COMMENTRule() { - return gaTerminals.getML_COMMENTRule(); - } - - //terminal SL_COMMENT: - // '//' !('\n' | '\r')* ('\r'? '\n')?; - public TerminalRule getSL_COMMENTRule() { - return gaTerminals.getSL_COMMENTRule(); - } - - //terminal WS: - // ' ' | '\t' | '\r' | '\n'+; - public TerminalRule getWSRule() { - return gaTerminals.getWSRule(); - } - - //terminal ANY_OTHER: - // .; - public TerminalRule getANY_OTHERRule() { - return gaTerminals.getANY_OTHERRule(); - } -} diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/validation/AbstractDslValidator.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/validation/AbstractDslValidator.java deleted file mode 100644 index a8048420..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/validation/AbstractDslValidator.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman.validation; - -import java.util.ArrayList; -import java.util.List; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.xtext.validation.AbstractDeclarativeValidator; - -public abstract class AbstractDslValidator extends AbstractDeclarativeValidator { - - @Override - protected List getEPackages() { - List result = new ArrayList(); - result.add(in.handyman.dsl.DslPackage.eINSTANCE); - return result; - } -} diff --git a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/validation/DslConfigurableIssueCodesProvider.java b/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/validation/DslConfigurableIssueCodesProvider.java deleted file mode 100644 index 4fc6bae0..00000000 --- a/handyman.legacy/handyman/src/main/xtext-gen/in/handyman/validation/DslConfigurableIssueCodesProvider.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * generated by Xtext 2.16.0 - */ -package in.handyman.validation; - -import org.eclipse.xtext.preferences.PreferenceKey; -import org.eclipse.xtext.util.IAcceptor; -import org.eclipse.xtext.validation.ConfigurableIssueCodesProvider; -import org.eclipse.xtext.validation.SeverityConverter; - -@SuppressWarnings("restriction") -public class DslConfigurableIssueCodesProvider extends ConfigurableIssueCodesProvider { - protected static final String ISSUE_CODE_PREFIX = "in.handyman."; - - public static final String DEPRECATED_MODEL_PART = ISSUE_CODE_PREFIX + "deprecatedModelPart"; - - @Override - protected void initialize(IAcceptor acceptor) { - super.initialize(acceptor); - acceptor.accept(create(DEPRECATED_MODEL_PART, SeverityConverter.SEVERITY_WARNING)); - } -} diff --git a/handyman.legacy/handyman/src/test/scala/in/handyman/sql/PrepInsertStatement.java b/handyman.legacy/handyman/src/test/scala/in/handyman/sql/PrepInsertStatement.java deleted file mode 100644 index efeaa1c1..00000000 --- a/handyman.legacy/handyman/src/test/scala/in/handyman/sql/PrepInsertStatement.java +++ /dev/null @@ -1,14 +0,0 @@ -package in.handyman.sql; - -import org.junit.Test; - -import net.sf.jsqlparser.statement.insert.Insert; - -public class PrepInsertStatement { - - @Test - public void test() { - Insert insert = new Insert(); - } - -} diff --git a/handyman.legacy/handyman/src/test/scala/in/handyman/util/ResourceAccessTest.java b/handyman.legacy/handyman/src/test/scala/in/handyman/util/ResourceAccessTest.java deleted file mode 100644 index d070ff80..00000000 --- a/handyman.legacy/handyman/src/test/scala/in/handyman/util/ResourceAccessTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package in.handyman.util; - -import static org.junit.Assert.fail; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.SQLException; -import java.sql.Statement; - -import org.junit.Test; - -class ResourceAccessTest { - - @Test - void testRdbmsConn() { - String name="casey/schema_pim_kpi"; - Connection conn = ResourceAccess.rdbmsConn(name); - Statement statement; - try { - statement = conn.createStatement(); - ResultSet query = statement.executeQuery("SELECT COUNT(*) as count_ FROM _doc "); - ResultSetMetaData rsmd = query.getMetaData(); - int nrCols = rsmd.getColumnCount(); - // get other column information like type - while(query.next()){ - for(int i=1; i<=nrCols; i++){ - System.out.println(query.getObject(i)); - } - } - } catch (SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - -} diff --git a/handyman.legacy/pom.xml b/handyman.legacy/pom.xml deleted file mode 100644 index 8d6efbae..00000000 --- a/handyman.legacy/pom.xml +++ /dev/null @@ -1,180 +0,0 @@ - - 4.0.0 - handyman.legacy - pom - - handyman.parent - in.handyman - 1.0.0 - - - 2.16.0 - 11 - 11 - 11 - - - handyman - - - - - - org.eclipse.xtend - xtend-maven-plugin - ${xtextVersion} - - - - compile - xtend-install-debug-info - testCompile - xtend-test-install-debug-info - - - - - ${basedir}/src/main/xtend-gen - ${basedir}/src/test/xtend-gen - - - - org.apache.maven.plugins - maven-clean-plugin - 2.5 - - - - ${basedir}/src/main/xtend-gen - - **/* - - - - ${basedir}/src/test/xtend-gen - - **/* - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.22.1 - - - false - - - - org.eclipse.m2e - lifecycle-mapping - 1.0.0 - - - - - - - org.apache.maven.plugins - - - maven-resources-plugin - - - [2.4.3,) - - - resources - testResources - - - - - - - - - - org.codehaus.mojo - - - build-helper-maven-plugin - - - [1.9.1,) - - - add-resource - add-source - add-test-resource - add-test-source - - - - - - - - - - - - - - - - codehaus-snapshots - disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 - http://nexus.codehaus.org/snapshots/ - - false - - - false - - - - - - codehaus-snapshots - disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 - http://nexus.codehaus.org/snapshots/ - - false - - - false - - - - - - macos - - - mac - - - - - -XstartOnFirstThread - - - - jdk9-or-newer - - [9,) - - - --add-modules=ALL-SYSTEM - - - - - - - diff --git a/handyman.raven/.gitignore b/handyman.raven/.gitignore deleted file mode 100644 index de625516..00000000 --- a/handyman.raven/.gitignore +++ /dev/null @@ -1,39 +0,0 @@ -HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ -/.jpb/ - -logs/ -*.log - -gen/ diff --git a/handyman.raven/README.md b/handyman.raven/README.md deleted file mode 100644 index e77917f8..00000000 --- a/handyman.raven/README.md +++ /dev/null @@ -1 +0,0 @@ -# handyman diff --git a/handyman.raven/pom.xml b/handyman.raven/pom.xml deleted file mode 100644 index 5f759e7a..00000000 --- a/handyman.raven/pom.xml +++ /dev/null @@ -1,412 +0,0 @@ - - - 4.0.0 - - - handyman.parent - in.handyman - 1.0.0 - - - handyman.raven - - - - - - - - - - 4.9.3 - 2.6.15 - 1.8.1 - v1-rev20210903-1.32.1 - v3-rev20211026-1.32.1 - 5.8.2 - 2.13.1 - 3.27.0 - 7.16.2 - 11 - 11 - 11 - 2.13.6 - 1.7.32 - 3.0.0 - 1.2.10 - - - - - com.google.inject - guice - 5.0.1 - - - - com.typesafe - config - 1.4.1 - - - - - org.mariadb.jdbc - mariadb-java-client - 2.7.3 - - - com.zaxxer - HikariCP - 5.0.1 - - - - org.jdbi - jdbi3-core - ${jdbi.version} - - - org.jdbi - jdbi3-sqlobject - ${jdbi.version} - - - - - org.projectlombok - lombok - 1.18.22 - provided - - - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - - - org.junit.jupiter - junit-jupiter - ${junit.version} - test - - - - - org.antlr - antlr4-runtime - ${antlr4.version} - - - - - com.squareup - javapoet - 1.13.0 - - - org.reflections - reflections - 0.10.2 - - - - io.micrometer - micrometer-core - ${micrometer.version} - - - io.micrometer - micrometer-registry-prometheus - ${micrometer.version} - - - - io.github.mweirauch - micrometer-jvm-extras - 0.2.2 - - - - - com.typesafe.akka - akka-actor_2.13 - 2.6.18 - - - - org.apache.commons - commons-text - 1.9 - - - - - com.github.jsqlparser - jsqlparser - 4.3 - - - - com.opencsv - opencsv - 5.5.2 - - - - com.squareup.okhttp3 - okhttp - 4.9.3 - - - com.google.apis - google-api-services-people - ${google.people.version} - - - com.google.apis - google-api-services-calendar - ${google.cal.version} - - - - - - - - - - - org.apache.kafka - kafka-clients - ${kafka.version} - - - - org.apache.kafka - kafka-streams - ${kafka.version} - - - - org.elasticsearch.client - elasticsearch-rest-high-level-client - ${elastic.version} - - - com.google.guava - guava - 31.0.1-jre - - - com.fasterxml.uuid - java-uuid-generator - 4.0.1 - - - - com.microsoft.sqlserver - mssql-jdbc - 9.4.1.jre11 - - - - org.slf4j - slf4j-api - 1.7.32 - - - ch.qos.logback - logback-core - ${logback-classic.version} - - - ch.qos.logback - logback-classic - ${logback-classic.version} - - - - - org.scala-lang - scala-library - ${scala.version} - - - - org.scala-lang - scala-compiler - ${scala.version} - - - - - org.simplejavamail - simple-java-mail - 7.0.0 - - - - org.apache.commons - commons-compress - 1.21 - - - - org.apache.poi - poi-ooxml - 5.0.0 - - - - org.odftoolkit - odfdom-java - 0.10.0 - - - - org.apache.pdfbox - pdfbox - 2.0.24 - - - org.apache.poi - poi-scratchpad - 5.0.0 - - - org.apache.poi - poi - 5.0.0 - - - - commons-io - commons-io - 2.11.0 - - - - mysql - mysql-connector-java - 8.0.27 - - - - com.fasterxml.jackson.dataformat - jackson-dataformat-csv - ${jackson.version} - - - org.simpleflatmapper - sfm-csv - 8.2.3 - - - - - handyman-raven-vm-${project.version} - - - - net.alchim31.maven - scala-maven-plugin - 3.2.1 - - - org.apache.maven.plugins - maven-compiler-plugin - 2.0.2 - - - - - - org.antlr - antlr4-maven-plugin - ${antlr4.version} - - - src/main/antlr/in.handyman.raven/gmr - - - src/main/antlr/in.handyman.raven/compiler - - - - - - antlr4 - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 3.0.0-M5 - - - org.junit.jupiter - junit-jupiter-engine - ${junit.version} - - - - - org.apache.maven.plugins - maven-clean-plugin - 3.1.0 - - src/main/antlr/in.handyman.raven/compiler - - - - net.alchim31.maven - scala-maven-plugin - 4.5.4 - - - - add-source - compile - testCompile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSON.interp b/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSON.interp deleted file mode 100644 index 16e99638..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSON.interp +++ /dev/null @@ -1,40 +0,0 @@ -token literal names: -null -'{' -',' -'}' -':' -'[' -']' -'true' -'false' -'null' -null -null -null - -token symbolic names: -null -null -null -null -null -null -null -null -null -null -STRING -NUMBER -WS - -rule names: -json -obj -pair -arr -jValue - - -atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 14, 60, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 3, 2, 3, 2, 5, 2, 15, 10, 2, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 21, 10, 3, 12, 3, 14, 3, 24, 11, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 30, 10, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 7, 5, 40, 10, 5, 12, 5, 14, 5, 43, 11, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 49, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 58, 10, 6, 3, 6, 2, 2, 7, 2, 4, 6, 8, 10, 2, 2, 2, 65, 2, 14, 3, 2, 2, 2, 4, 29, 3, 2, 2, 2, 6, 31, 3, 2, 2, 2, 8, 48, 3, 2, 2, 2, 10, 57, 3, 2, 2, 2, 12, 15, 5, 4, 3, 2, 13, 15, 5, 8, 5, 2, 14, 12, 3, 2, 2, 2, 14, 13, 3, 2, 2, 2, 15, 3, 3, 2, 2, 2, 16, 17, 7, 3, 2, 2, 17, 22, 5, 6, 4, 2, 18, 19, 7, 4, 2, 2, 19, 21, 5, 6, 4, 2, 20, 18, 3, 2, 2, 2, 21, 24, 3, 2, 2, 2, 22, 20, 3, 2, 2, 2, 22, 23, 3, 2, 2, 2, 23, 25, 3, 2, 2, 2, 24, 22, 3, 2, 2, 2, 25, 26, 7, 5, 2, 2, 26, 30, 3, 2, 2, 2, 27, 28, 7, 3, 2, 2, 28, 30, 7, 5, 2, 2, 29, 16, 3, 2, 2, 2, 29, 27, 3, 2, 2, 2, 30, 5, 3, 2, 2, 2, 31, 32, 7, 12, 2, 2, 32, 33, 7, 6, 2, 2, 33, 34, 5, 10, 6, 2, 34, 7, 3, 2, 2, 2, 35, 36, 7, 7, 2, 2, 36, 41, 5, 10, 6, 2, 37, 38, 7, 4, 2, 2, 38, 40, 5, 10, 6, 2, 39, 37, 3, 2, 2, 2, 40, 43, 3, 2, 2, 2, 41, 39, 3, 2, 2, 2, 41, 42, 3, 2, 2, 2, 42, 44, 3, 2, 2, 2, 43, 41, 3, 2, 2, 2, 44, 45, 7, 8, 2, 2, 45, 49, 3, 2, 2, 2, 46, 47, 7, 7, 2, 2, 47, 49, 7, 8, 2, 2, 48, 35, 3, 2, 2, 2, 48, 46, 3, 2, 2, 2, 49, 9, 3, 2, 2, 2, 50, 58, 7, 12, 2, 2, 51, 58, 7, 13, 2, 2, 52, 58, 5, 4, 3, 2, 53, 58, 5, 8, 5, 2, 54, 58, 7, 9, 2, 2, 55, 58, 7, 10, 2, 2, 56, 58, 7, 11, 2, 2, 57, 50, 3, 2, 2, 2, 57, 51, 3, 2, 2, 2, 57, 52, 3, 2, 2, 2, 57, 53, 3, 2, 2, 2, 57, 54, 3, 2, 2, 2, 57, 55, 3, 2, 2, 2, 57, 56, 3, 2, 2, 2, 58, 11, 3, 2, 2, 2, 8, 14, 22, 29, 41, 48, 57] \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONLexer.interp b/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONLexer.interp deleted file mode 100644 index 620c937e..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONLexer.interp +++ /dev/null @@ -1,59 +0,0 @@ -token literal names: -null -'{' -',' -'}' -':' -'[' -']' -'true' -'false' -'null' -null -null -null - -token symbolic names: -null -null -null -null -null -null -null -null -null -null -STRING -NUMBER -WS - -rule names: -T__0 -T__1 -T__2 -T__3 -T__4 -T__5 -T__6 -T__7 -T__8 -STRING -ESC -UNICODE -HEX -SAFECODEPOINT -NUMBER -INT -EXP -WS - -channel names: -DEFAULT_TOKEN_CHANNEL -HIDDEN - -mode names: -DEFAULT_MODE - -atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 14, 130, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 7, 11, 71, 10, 11, 12, 11, 14, 11, 74, 11, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 5, 12, 81, 10, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 5, 16, 94, 10, 16, 3, 16, 3, 16, 3, 16, 6, 16, 99, 10, 16, 13, 16, 14, 16, 100, 5, 16, 103, 10, 16, 3, 16, 5, 16, 106, 10, 16, 3, 17, 3, 17, 3, 17, 7, 17, 111, 10, 17, 12, 17, 14, 17, 114, 11, 17, 5, 17, 116, 10, 17, 3, 18, 3, 18, 5, 18, 120, 10, 18, 3, 18, 3, 18, 3, 19, 6, 19, 125, 10, 19, 13, 19, 14, 19, 126, 3, 19, 3, 19, 2, 2, 20, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 2, 25, 2, 27, 2, 29, 2, 31, 13, 33, 2, 35, 2, 37, 14, 3, 2, 10, 10, 2, 36, 36, 49, 49, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 5, 2, 50, 59, 67, 72, 99, 104, 5, 2, 2, 33, 36, 36, 94, 94, 3, 2, 50, 59, 3, 2, 51, 59, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 5, 2, 11, 12, 15, 15, 34, 34, 2, 134, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 3, 39, 3, 2, 2, 2, 5, 41, 3, 2, 2, 2, 7, 43, 3, 2, 2, 2, 9, 45, 3, 2, 2, 2, 11, 47, 3, 2, 2, 2, 13, 49, 3, 2, 2, 2, 15, 51, 3, 2, 2, 2, 17, 56, 3, 2, 2, 2, 19, 62, 3, 2, 2, 2, 21, 67, 3, 2, 2, 2, 23, 77, 3, 2, 2, 2, 25, 82, 3, 2, 2, 2, 27, 88, 3, 2, 2, 2, 29, 90, 3, 2, 2, 2, 31, 93, 3, 2, 2, 2, 33, 115, 3, 2, 2, 2, 35, 117, 3, 2, 2, 2, 37, 124, 3, 2, 2, 2, 39, 40, 7, 125, 2, 2, 40, 4, 3, 2, 2, 2, 41, 42, 7, 46, 2, 2, 42, 6, 3, 2, 2, 2, 43, 44, 7, 127, 2, 2, 44, 8, 3, 2, 2, 2, 45, 46, 7, 60, 2, 2, 46, 10, 3, 2, 2, 2, 47, 48, 7, 93, 2, 2, 48, 12, 3, 2, 2, 2, 49, 50, 7, 95, 2, 2, 50, 14, 3, 2, 2, 2, 51, 52, 7, 118, 2, 2, 52, 53, 7, 116, 2, 2, 53, 54, 7, 119, 2, 2, 54, 55, 7, 103, 2, 2, 55, 16, 3, 2, 2, 2, 56, 57, 7, 104, 2, 2, 57, 58, 7, 99, 2, 2, 58, 59, 7, 110, 2, 2, 59, 60, 7, 117, 2, 2, 60, 61, 7, 103, 2, 2, 61, 18, 3, 2, 2, 2, 62, 63, 7, 112, 2, 2, 63, 64, 7, 119, 2, 2, 64, 65, 7, 110, 2, 2, 65, 66, 7, 110, 2, 2, 66, 20, 3, 2, 2, 2, 67, 72, 7, 36, 2, 2, 68, 71, 5, 23, 12, 2, 69, 71, 5, 29, 15, 2, 70, 68, 3, 2, 2, 2, 70, 69, 3, 2, 2, 2, 71, 74, 3, 2, 2, 2, 72, 70, 3, 2, 2, 2, 72, 73, 3, 2, 2, 2, 73, 75, 3, 2, 2, 2, 74, 72, 3, 2, 2, 2, 75, 76, 7, 36, 2, 2, 76, 22, 3, 2, 2, 2, 77, 80, 7, 94, 2, 2, 78, 81, 9, 2, 2, 2, 79, 81, 5, 25, 13, 2, 80, 78, 3, 2, 2, 2, 80, 79, 3, 2, 2, 2, 81, 24, 3, 2, 2, 2, 82, 83, 7, 119, 2, 2, 83, 84, 5, 27, 14, 2, 84, 85, 5, 27, 14, 2, 85, 86, 5, 27, 14, 2, 86, 87, 5, 27, 14, 2, 87, 26, 3, 2, 2, 2, 88, 89, 9, 3, 2, 2, 89, 28, 3, 2, 2, 2, 90, 91, 10, 4, 2, 2, 91, 30, 3, 2, 2, 2, 92, 94, 7, 47, 2, 2, 93, 92, 3, 2, 2, 2, 93, 94, 3, 2, 2, 2, 94, 95, 3, 2, 2, 2, 95, 102, 5, 33, 17, 2, 96, 98, 7, 48, 2, 2, 97, 99, 9, 5, 2, 2, 98, 97, 3, 2, 2, 2, 99, 100, 3, 2, 2, 2, 100, 98, 3, 2, 2, 2, 100, 101, 3, 2, 2, 2, 101, 103, 3, 2, 2, 2, 102, 96, 3, 2, 2, 2, 102, 103, 3, 2, 2, 2, 103, 105, 3, 2, 2, 2, 104, 106, 5, 35, 18, 2, 105, 104, 3, 2, 2, 2, 105, 106, 3, 2, 2, 2, 106, 32, 3, 2, 2, 2, 107, 116, 7, 50, 2, 2, 108, 112, 9, 6, 2, 2, 109, 111, 9, 5, 2, 2, 110, 109, 3, 2, 2, 2, 111, 114, 3, 2, 2, 2, 112, 110, 3, 2, 2, 2, 112, 113, 3, 2, 2, 2, 113, 116, 3, 2, 2, 2, 114, 112, 3, 2, 2, 2, 115, 107, 3, 2, 2, 2, 115, 108, 3, 2, 2, 2, 116, 34, 3, 2, 2, 2, 117, 119, 9, 7, 2, 2, 118, 120, 9, 8, 2, 2, 119, 118, 3, 2, 2, 2, 119, 120, 3, 2, 2, 2, 120, 121, 3, 2, 2, 2, 121, 122, 5, 33, 17, 2, 122, 36, 3, 2, 2, 2, 123, 125, 9, 9, 2, 2, 124, 123, 3, 2, 2, 2, 125, 126, 3, 2, 2, 2, 126, 124, 3, 2, 2, 2, 126, 127, 3, 2, 2, 2, 127, 128, 3, 2, 2, 2, 128, 129, 8, 19, 2, 2, 129, 38, 3, 2, 2, 2, 14, 2, 70, 72, 80, 93, 100, 102, 105, 112, 115, 119, 126, 3, 8, 2, 2] \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONLexer.java b/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONLexer.java deleted file mode 100644 index 236158a4..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONLexer.java +++ /dev/null @@ -1,155 +0,0 @@ -// Generated from JSON.g4 by ANTLR 4.9.3 - -package in.handyman.raven.compiler; - -import org.antlr.v4.runtime.Lexer; -import org.antlr.v4.runtime.CharStream; -import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.TokenStream; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.misc.*; - -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) -public class JSONLexer extends Lexer { - static { RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION); } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, - STRING=10, NUMBER=11, WS=12; - public static String[] channelNames = { - "DEFAULT_TOKEN_CHANNEL", "HIDDEN" - }; - - public static String[] modeNames = { - "DEFAULT_MODE" - }; - - private static String[] makeRuleNames() { - return new String[] { - "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", - "STRING", "ESC", "UNICODE", "HEX", "SAFECODEPOINT", "NUMBER", "INT", - "EXP", "WS" - }; - } - public static final String[] ruleNames = makeRuleNames(); - - private static String[] makeLiteralNames() { - return new String[] { - null, "'{'", "','", "'}'", "':'", "'['", "']'", "'true'", "'false'", - "'null'" - }; - } - private static final String[] _LITERAL_NAMES = makeLiteralNames(); - private static String[] makeSymbolicNames() { - return new String[] { - null, null, null, null, null, null, null, null, null, null, "STRING", - "NUMBER", "WS" - }; - } - private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - - public JSONLexer(CharStream input) { - super(input); - _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); - } - - @Override - public String getGrammarFileName() { return "JSON.g4"; } - - @Override - public String[] getRuleNames() { return ruleNames; } - - @Override - public String getSerializedATN() { return _serializedATN; } - - @Override - public String[] getChannelNames() { return channelNames; } - - @Override - public String[] getModeNames() { return modeNames; } - - @Override - public ATN getATN() { return _ATN; } - - public static final String _serializedATN = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\16\u0082\b\1\4\2"+ - "\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4"+ - "\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22"+ - "\t\22\4\23\t\23\3\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3"+ - "\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3"+ - "\13\7\13G\n\13\f\13\16\13J\13\13\3\13\3\13\3\f\3\f\3\f\5\fQ\n\f\3\r\3"+ - "\r\3\r\3\r\3\r\3\r\3\16\3\16\3\17\3\17\3\20\5\20^\n\20\3\20\3\20\3\20"+ - "\6\20c\n\20\r\20\16\20d\5\20g\n\20\3\20\5\20j\n\20\3\21\3\21\3\21\7\21"+ - "o\n\21\f\21\16\21r\13\21\5\21t\n\21\3\22\3\22\5\22x\n\22\3\22\3\22\3\23"+ - "\6\23}\n\23\r\23\16\23~\3\23\3\23\2\2\24\3\3\5\4\7\5\t\6\13\7\r\b\17\t"+ - "\21\n\23\13\25\f\27\2\31\2\33\2\35\2\37\r!\2#\2%\16\3\2\n\n\2$$\61\61"+ - "^^ddhhppttvv\5\2\62;CHch\5\2\2!$$^^\3\2\62;\3\2\63;\4\2GGgg\4\2--//\5"+ - "\2\13\f\17\17\"\"\2\u0086\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2"+ - "\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2"+ - "\25\3\2\2\2\2\37\3\2\2\2\2%\3\2\2\2\3\'\3\2\2\2\5)\3\2\2\2\7+\3\2\2\2"+ - "\t-\3\2\2\2\13/\3\2\2\2\r\61\3\2\2\2\17\63\3\2\2\2\218\3\2\2\2\23>\3\2"+ - "\2\2\25C\3\2\2\2\27M\3\2\2\2\31R\3\2\2\2\33X\3\2\2\2\35Z\3\2\2\2\37]\3"+ - "\2\2\2!s\3\2\2\2#u\3\2\2\2%|\3\2\2\2\'(\7}\2\2(\4\3\2\2\2)*\7.\2\2*\6"+ - "\3\2\2\2+,\7\177\2\2,\b\3\2\2\2-.\7<\2\2.\n\3\2\2\2/\60\7]\2\2\60\f\3"+ - "\2\2\2\61\62\7_\2\2\62\16\3\2\2\2\63\64\7v\2\2\64\65\7t\2\2\65\66\7w\2"+ - "\2\66\67\7g\2\2\67\20\3\2\2\289\7h\2\29:\7c\2\2:;\7n\2\2;<\7u\2\2<=\7"+ - "g\2\2=\22\3\2\2\2>?\7p\2\2?@\7w\2\2@A\7n\2\2AB\7n\2\2B\24\3\2\2\2CH\7"+ - "$\2\2DG\5\27\f\2EG\5\35\17\2FD\3\2\2\2FE\3\2\2\2GJ\3\2\2\2HF\3\2\2\2H"+ - "I\3\2\2\2IK\3\2\2\2JH\3\2\2\2KL\7$\2\2L\26\3\2\2\2MP\7^\2\2NQ\t\2\2\2"+ - "OQ\5\31\r\2PN\3\2\2\2PO\3\2\2\2Q\30\3\2\2\2RS\7w\2\2ST\5\33\16\2TU\5\33"+ - "\16\2UV\5\33\16\2VW\5\33\16\2W\32\3\2\2\2XY\t\3\2\2Y\34\3\2\2\2Z[\n\4"+ - "\2\2[\36\3\2\2\2\\^\7/\2\2]\\\3\2\2\2]^\3\2\2\2^_\3\2\2\2_f\5!\21\2`b"+ - "\7\60\2\2ac\t\5\2\2ba\3\2\2\2cd\3\2\2\2db\3\2\2\2de\3\2\2\2eg\3\2\2\2"+ - "f`\3\2\2\2fg\3\2\2\2gi\3\2\2\2hj\5#\22\2ih\3\2\2\2ij\3\2\2\2j \3\2\2\2"+ - "kt\7\62\2\2lp\t\6\2\2mo\t\5\2\2nm\3\2\2\2or\3\2\2\2pn\3\2\2\2pq\3\2\2"+ - "\2qt\3\2\2\2rp\3\2\2\2sk\3\2\2\2sl\3\2\2\2t\"\3\2\2\2uw\t\7\2\2vx\t\b"+ - "\2\2wv\3\2\2\2wx\3\2\2\2xy\3\2\2\2yz\5!\21\2z$\3\2\2\2{}\t\t\2\2|{\3\2"+ - "\2\2}~\3\2\2\2~|\3\2\2\2~\177\3\2\2\2\177\u0080\3\2\2\2\u0080\u0081\b"+ - "\23\2\2\u0081&\3\2\2\2\16\2FHP]dfipsw~\3\b\2\2"; - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/Raven.interp b/handyman.raven/src/main/antlr/in.handyman.raven/compiler/Raven.interp deleted file mode 100644 index acfed7f6..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/Raven.interp +++ /dev/null @@ -1,254 +0,0 @@ -token literal names: -null -'process' -'{' -'}' -'try' -'finally' -'catch' -'multitude' -'as' -'on' -'using' -'on-condition' -'fielding' -'copydata' -'from' -'to' -'with-fetch-batch-size' -'with-write-batch-size' -'transform' -'do-format' -'loadcsv' -'pid' -'with' -'by-batch' -'abort' -'callprocess' -'with-target' -'from-file' -'for-every' -'on-parallel-fielding' -'forkprocess' -'watermark' -'spawn' -'dogleg' -'use-parent-context' -'start-process' -'with-file' -'assign' -'source' -'dropfile' -'in-path' -'restapi' -'url' -'method' -'with headers' -'with params' -'with body type' -'{ part' -'type as' -'exportCsv' -'executionSource' -'targetLocation' -'importCsvToDB' -'target' -'batch' -'extractTAR' -'destination' -'createTAR' -'extension' -'createDirectory' -'createFile' -'location' -'fileName' -'deleteFileDirectory' -'transferFileDirectory' -'operation' -'pcm' -'on-resource' -'produce' -'consume' -'producer' -'push-result-at' -'execute' -'consumer' -'pop-event-from' -'pop-result-from' -'limit' -'on-standalone' -'push-json-into-context' -'with-key' -'using-value' -'map-json-into-context' -'if' -'log' -'level' -'message' -'raise exception' -',' -':' -'[' -']' -'true' -'false' -'null' -null -null -null -null -null -null -null -null - -token symbolic names: -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -NON_ZERO_DIGIT -STRING -CRLF -Operator -WS -COMMENT -LINE_COMMENT -NUMBER - -rule names: -process -tryClause -finallyClause -catchClause -action -multitude -copyData -transform -loadCsv -abort -callProcess -forkProcess -spawnProcess -dogLeg -startProcess -assign -dropFile -restApi -restPart -exportCsv -importCsvToDB -extractTAR -createTAR -createDirectory -createFile -deleteFileDirectory -transferFileDirectory -producerConsumerModel -producer -consumer -pushJson -mapJsonContext -expression -log -exception -resource -json -obj -pair -arr -jValue - - -atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 103, 853, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 7, 3, 96, 10, 3, 12, 3, 14, 3, 99, 11, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 7, 4, 106, 10, 4, 12, 4, 14, 4, 109, 11, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 7, 5, 116, 10, 5, 12, 5, 14, 5, 119, 11, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 148, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 155, 10, 7, 12, 7, 14, 7, 158, 11, 7, 3, 7, 3, 7, 3, 7, 7, 7, 163, 10, 7, 12, 7, 14, 7, 166, 11, 7, 3, 7, 3, 7, 3, 7, 7, 7, 171, 10, 7, 12, 7, 14, 7, 174, 11, 7, 3, 7, 3, 7, 7, 7, 178, 10, 7, 12, 7, 14, 7, 181, 11, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 7, 8, 196, 10, 8, 12, 8, 14, 8, 199, 11, 8, 3, 8, 3, 8, 7, 8, 203, 10, 8, 12, 8, 14, 8, 206, 11, 8, 3, 8, 3, 8, 7, 8, 210, 10, 8, 12, 8, 14, 8, 213, 11, 8, 3, 8, 3, 8, 7, 8, 217, 10, 8, 12, 8, 14, 8, 220, 11, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 7, 9, 233, 10, 9, 12, 9, 14, 9, 236, 11, 9, 3, 9, 3, 9, 7, 9, 240, 10, 9, 12, 9, 14, 9, 243, 11, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 7, 10, 264, 10, 10, 12, 10, 14, 10, 267, 11, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 7, 11, 277, 10, 11, 12, 11, 14, 11, 280, 11, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 7, 12, 297, 10, 12, 12, 12, 14, 12, 300, 11, 12, 3, 12, 3, 12, 7, 12, 304, 10, 12, 12, 12, 14, 12, 307, 11, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 7, 13, 324, 10, 13, 12, 13, 14, 13, 327, 11, 13, 3, 13, 3, 13, 7, 13, 331, 10, 13, 12, 13, 14, 13, 334, 11, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 7, 14, 345, 10, 14, 12, 14, 14, 14, 348, 11, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 7, 15, 361, 10, 15, 12, 15, 14, 15, 364, 11, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 382, 10, 17, 12, 17, 14, 17, 385, 11, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 7, 18, 394, 10, 18, 12, 18, 14, 18, 397, 11, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 7, 19, 411, 10, 19, 12, 19, 14, 19, 414, 11, 19, 3, 19, 3, 19, 7, 19, 418, 10, 19, 12, 19, 14, 19, 421, 11, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 7, 19, 430, 10, 19, 12, 19, 14, 19, 433, 11, 19, 3, 19, 3, 19, 3, 19, 7, 19, 438, 10, 19, 12, 19, 14, 19, 441, 11, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 450, 10, 20, 12, 20, 14, 20, 453, 11, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 7, 21, 466, 10, 21, 12, 21, 14, 21, 469, 11, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 7, 21, 478, 10, 21, 12, 21, 14, 21, 481, 11, 21, 3, 21, 3, 21, 7, 21, 485, 10, 21, 12, 21, 14, 21, 488, 11, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 503, 10, 22, 12, 22, 14, 22, 506, 11, 22, 3, 22, 3, 22, 7, 22, 510, 10, 22, 12, 22, 14, 22, 513, 11, 22, 3, 22, 3, 22, 7, 22, 517, 10, 22, 12, 22, 14, 22, 520, 11, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 7, 23, 534, 10, 23, 12, 23, 14, 23, 537, 11, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 7, 24, 553, 10, 24, 12, 24, 14, 24, 556, 11, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 567, 10, 25, 12, 25, 14, 25, 570, 11, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 7, 26, 587, 10, 26, 12, 26, 14, 26, 590, 11, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 601, 10, 27, 12, 27, 14, 27, 604, 11, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 7, 28, 620, 10, 28, 12, 28, 14, 28, 623, 11, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 7, 29, 636, 10, 29, 12, 29, 14, 29, 639, 11, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 7, 29, 647, 10, 29, 12, 29, 14, 29, 650, 11, 29, 3, 29, 3, 29, 7, 29, 654, 10, 29, 12, 29, 14, 29, 657, 11, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 7, 30, 664, 10, 30, 12, 30, 14, 30, 667, 11, 30, 3, 30, 3, 30, 7, 30, 671, 10, 30, 12, 30, 14, 30, 674, 11, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 7, 30, 683, 10, 30, 12, 30, 14, 30, 686, 11, 30, 3, 30, 3, 30, 3, 30, 7, 30, 691, 10, 30, 12, 30, 14, 30, 694, 11, 30, 3, 30, 3, 30, 7, 30, 698, 10, 30, 12, 30, 14, 30, 701, 11, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 710, 10, 31, 12, 31, 14, 31, 713, 11, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 719, 10, 31, 12, 31, 14, 31, 722, 11, 31, 3, 31, 3, 31, 3, 31, 7, 31, 727, 10, 31, 12, 31, 14, 31, 730, 11, 31, 3, 31, 3, 31, 3, 31, 7, 31, 735, 10, 31, 12, 31, 14, 31, 738, 11, 31, 3, 31, 3, 31, 7, 31, 742, 10, 31, 12, 31, 14, 31, 745, 11, 31, 3, 31, 3, 31, 7, 31, 749, 10, 31, 12, 31, 14, 31, 752, 11, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 7, 32, 765, 10, 32, 12, 32, 14, 32, 768, 11, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 779, 10, 33, 12, 33, 14, 33, 782, 11, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 38, 3, 38, 5, 38, 808, 10, 38, 3, 39, 3, 39, 3, 39, 3, 39, 7, 39, 814, 10, 39, 12, 39, 14, 39, 817, 11, 39, 3, 39, 3, 39, 3, 39, 3, 39, 5, 39, 823, 10, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 7, 41, 833, 10, 41, 12, 41, 14, 41, 836, 11, 41, 3, 41, 3, 41, 3, 41, 3, 41, 5, 41, 842, 10, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 5, 42, 851, 10, 42, 3, 42, 2, 2, 43, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 2, 2, 2, 902, 2, 84, 3, 2, 2, 2, 4, 92, 3, 2, 2, 2, 6, 102, 3, 2, 2, 2, 8, 112, 3, 2, 2, 2, 10, 147, 3, 2, 2, 2, 12, 149, 3, 2, 2, 2, 14, 182, 3, 2, 2, 2, 16, 221, 3, 2, 2, 2, 18, 244, 3, 2, 2, 2, 20, 268, 3, 2, 2, 2, 22, 281, 3, 2, 2, 2, 24, 308, 3, 2, 2, 2, 26, 335, 3, 2, 2, 2, 28, 349, 3, 2, 2, 2, 30, 365, 3, 2, 2, 2, 32, 370, 3, 2, 2, 2, 34, 386, 3, 2, 2, 2, 36, 398, 3, 2, 2, 2, 38, 442, 3, 2, 2, 2, 40, 456, 3, 2, 2, 2, 42, 489, 3, 2, 2, 2, 44, 521, 3, 2, 2, 2, 46, 538, 3, 2, 2, 2, 48, 557, 3, 2, 2, 2, 50, 571, 3, 2, 2, 2, 52, 591, 3, 2, 2, 2, 54, 605, 3, 2, 2, 2, 56, 624, 3, 2, 2, 2, 58, 658, 3, 2, 2, 2, 60, 702, 3, 2, 2, 2, 62, 753, 3, 2, 2, 2, 64, 769, 3, 2, 2, 2, 66, 783, 3, 2, 2, 2, 68, 788, 3, 2, 2, 2, 70, 798, 3, 2, 2, 2, 72, 803, 3, 2, 2, 2, 74, 807, 3, 2, 2, 2, 76, 822, 3, 2, 2, 2, 78, 824, 3, 2, 2, 2, 80, 841, 3, 2, 2, 2, 82, 850, 3, 2, 2, 2, 84, 85, 7, 3, 2, 2, 85, 86, 7, 97, 2, 2, 86, 87, 7, 4, 2, 2, 87, 88, 5, 4, 3, 2, 88, 89, 5, 8, 5, 2, 89, 90, 5, 6, 4, 2, 90, 91, 7, 5, 2, 2, 91, 3, 3, 2, 2, 2, 92, 93, 7, 6, 2, 2, 93, 97, 7, 4, 2, 2, 94, 96, 5, 10, 6, 2, 95, 94, 3, 2, 2, 2, 96, 99, 3, 2, 2, 2, 97, 95, 3, 2, 2, 2, 97, 98, 3, 2, 2, 2, 98, 100, 3, 2, 2, 2, 99, 97, 3, 2, 2, 2, 100, 101, 7, 5, 2, 2, 101, 5, 3, 2, 2, 2, 102, 103, 7, 7, 2, 2, 103, 107, 7, 4, 2, 2, 104, 106, 5, 10, 6, 2, 105, 104, 3, 2, 2, 2, 106, 109, 3, 2, 2, 2, 107, 105, 3, 2, 2, 2, 107, 108, 3, 2, 2, 2, 108, 110, 3, 2, 2, 2, 109, 107, 3, 2, 2, 2, 110, 111, 7, 5, 2, 2, 111, 7, 3, 2, 2, 2, 112, 113, 7, 8, 2, 2, 113, 117, 7, 4, 2, 2, 114, 116, 5, 10, 6, 2, 115, 114, 3, 2, 2, 2, 116, 119, 3, 2, 2, 2, 117, 115, 3, 2, 2, 2, 117, 118, 3, 2, 2, 2, 118, 120, 3, 2, 2, 2, 119, 117, 3, 2, 2, 2, 120, 121, 7, 5, 2, 2, 121, 9, 3, 2, 2, 2, 122, 148, 5, 20, 11, 2, 123, 148, 5, 32, 17, 2, 124, 148, 5, 22, 12, 2, 125, 148, 5, 24, 13, 2, 126, 148, 5, 26, 14, 2, 127, 148, 5, 28, 15, 2, 128, 148, 5, 14, 8, 2, 129, 148, 5, 34, 18, 2, 130, 148, 5, 18, 10, 2, 131, 148, 5, 36, 19, 2, 132, 148, 5, 16, 9, 2, 133, 148, 5, 12, 7, 2, 134, 148, 5, 40, 21, 2, 135, 148, 5, 48, 25, 2, 136, 148, 5, 50, 26, 2, 137, 148, 5, 52, 27, 2, 138, 148, 5, 54, 28, 2, 139, 148, 5, 46, 24, 2, 140, 148, 5, 44, 23, 2, 141, 148, 5, 42, 22, 2, 142, 148, 5, 56, 29, 2, 143, 148, 5, 58, 30, 2, 144, 148, 5, 60, 31, 2, 145, 148, 5, 62, 32, 2, 146, 148, 5, 64, 33, 2, 147, 122, 3, 2, 2, 2, 147, 123, 3, 2, 2, 2, 147, 124, 3, 2, 2, 2, 147, 125, 3, 2, 2, 2, 147, 126, 3, 2, 2, 2, 147, 127, 3, 2, 2, 2, 147, 128, 3, 2, 2, 2, 147, 129, 3, 2, 2, 2, 147, 130, 3, 2, 2, 2, 147, 131, 3, 2, 2, 2, 147, 132, 3, 2, 2, 2, 147, 133, 3, 2, 2, 2, 147, 134, 3, 2, 2, 2, 147, 135, 3, 2, 2, 2, 147, 136, 3, 2, 2, 2, 147, 137, 3, 2, 2, 2, 147, 138, 3, 2, 2, 2, 147, 139, 3, 2, 2, 2, 147, 140, 3, 2, 2, 2, 147, 141, 3, 2, 2, 2, 147, 142, 3, 2, 2, 2, 147, 143, 3, 2, 2, 2, 147, 144, 3, 2, 2, 2, 147, 145, 3, 2, 2, 2, 147, 146, 3, 2, 2, 2, 148, 11, 3, 2, 2, 2, 149, 150, 7, 9, 2, 2, 150, 151, 7, 10, 2, 2, 151, 156, 7, 97, 2, 2, 152, 153, 7, 11, 2, 2, 153, 155, 7, 97, 2, 2, 154, 152, 3, 2, 2, 2, 155, 158, 3, 2, 2, 2, 156, 154, 3, 2, 2, 2, 156, 157, 3, 2, 2, 2, 157, 159, 3, 2, 2, 2, 158, 156, 3, 2, 2, 2, 159, 160, 7, 12, 2, 2, 160, 164, 7, 4, 2, 2, 161, 163, 5, 10, 6, 2, 162, 161, 3, 2, 2, 2, 163, 166, 3, 2, 2, 2, 164, 162, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 167, 3, 2, 2, 2, 166, 164, 3, 2, 2, 2, 167, 172, 7, 5, 2, 2, 168, 169, 7, 13, 2, 2, 169, 171, 5, 66, 34, 2, 170, 168, 3, 2, 2, 2, 171, 174, 3, 2, 2, 2, 172, 170, 3, 2, 2, 2, 172, 173, 3, 2, 2, 2, 173, 179, 3, 2, 2, 2, 174, 172, 3, 2, 2, 2, 175, 176, 7, 14, 2, 2, 176, 178, 7, 96, 2, 2, 177, 175, 3, 2, 2, 2, 178, 181, 3, 2, 2, 2, 179, 177, 3, 2, 2, 2, 179, 180, 3, 2, 2, 2, 180, 13, 3, 2, 2, 2, 181, 179, 3, 2, 2, 2, 182, 183, 7, 15, 2, 2, 183, 184, 7, 10, 2, 2, 184, 185, 7, 97, 2, 2, 185, 186, 7, 16, 2, 2, 186, 187, 7, 97, 2, 2, 187, 188, 7, 17, 2, 2, 188, 189, 7, 97, 2, 2, 189, 190, 7, 12, 2, 2, 190, 191, 7, 4, 2, 2, 191, 192, 7, 97, 2, 2, 192, 197, 7, 5, 2, 2, 193, 194, 7, 13, 2, 2, 194, 196, 5, 66, 34, 2, 195, 193, 3, 2, 2, 2, 196, 199, 3, 2, 2, 2, 197, 195, 3, 2, 2, 2, 197, 198, 3, 2, 2, 2, 198, 204, 3, 2, 2, 2, 199, 197, 3, 2, 2, 2, 200, 201, 7, 14, 2, 2, 201, 203, 7, 96, 2, 2, 202, 200, 3, 2, 2, 2, 203, 206, 3, 2, 2, 2, 204, 202, 3, 2, 2, 2, 204, 205, 3, 2, 2, 2, 205, 211, 3, 2, 2, 2, 206, 204, 3, 2, 2, 2, 207, 208, 7, 18, 2, 2, 208, 210, 7, 96, 2, 2, 209, 207, 3, 2, 2, 2, 210, 213, 3, 2, 2, 2, 211, 209, 3, 2, 2, 2, 211, 212, 3, 2, 2, 2, 212, 218, 3, 2, 2, 2, 213, 211, 3, 2, 2, 2, 214, 215, 7, 19, 2, 2, 215, 217, 7, 96, 2, 2, 216, 214, 3, 2, 2, 2, 217, 220, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 218, 219, 3, 2, 2, 2, 219, 15, 3, 2, 2, 2, 220, 218, 3, 2, 2, 2, 221, 222, 7, 20, 2, 2, 222, 223, 7, 10, 2, 2, 223, 224, 7, 97, 2, 2, 224, 225, 7, 11, 2, 2, 225, 226, 7, 97, 2, 2, 226, 227, 7, 12, 2, 2, 227, 228, 7, 4, 2, 2, 228, 229, 7, 97, 2, 2, 229, 234, 7, 5, 2, 2, 230, 231, 7, 13, 2, 2, 231, 233, 5, 66, 34, 2, 232, 230, 3, 2, 2, 2, 233, 236, 3, 2, 2, 2, 234, 232, 3, 2, 2, 2, 234, 235, 3, 2, 2, 2, 235, 241, 3, 2, 2, 2, 236, 234, 3, 2, 2, 2, 237, 238, 7, 21, 2, 2, 238, 240, 5, 66, 34, 2, 239, 237, 3, 2, 2, 2, 240, 243, 3, 2, 2, 2, 241, 239, 3, 2, 2, 2, 241, 242, 3, 2, 2, 2, 242, 17, 3, 2, 2, 2, 243, 241, 3, 2, 2, 2, 244, 245, 7, 22, 2, 2, 245, 246, 7, 10, 2, 2, 246, 247, 7, 97, 2, 2, 247, 248, 7, 23, 2, 2, 248, 249, 7, 97, 2, 2, 249, 250, 7, 16, 2, 2, 250, 251, 7, 97, 2, 2, 251, 252, 7, 17, 2, 2, 252, 253, 7, 97, 2, 2, 253, 254, 7, 24, 2, 2, 254, 255, 7, 97, 2, 2, 255, 256, 7, 25, 2, 2, 256, 257, 7, 97, 2, 2, 257, 258, 7, 12, 2, 2, 258, 259, 7, 4, 2, 2, 259, 260, 7, 97, 2, 2, 260, 265, 7, 5, 2, 2, 261, 262, 7, 13, 2, 2, 262, 264, 5, 66, 34, 2, 263, 261, 3, 2, 2, 2, 264, 267, 3, 2, 2, 2, 265, 263, 3, 2, 2, 2, 265, 266, 3, 2, 2, 2, 266, 19, 3, 2, 2, 2, 267, 265, 3, 2, 2, 2, 268, 269, 7, 26, 2, 2, 269, 270, 7, 10, 2, 2, 270, 271, 7, 97, 2, 2, 271, 272, 7, 4, 2, 2, 272, 273, 7, 97, 2, 2, 273, 278, 7, 5, 2, 2, 274, 275, 7, 13, 2, 2, 275, 277, 5, 66, 34, 2, 276, 274, 3, 2, 2, 2, 277, 280, 3, 2, 2, 2, 278, 276, 3, 2, 2, 2, 278, 279, 3, 2, 2, 2, 279, 21, 3, 2, 2, 2, 280, 278, 3, 2, 2, 2, 281, 282, 7, 27, 2, 2, 282, 283, 7, 10, 2, 2, 283, 284, 7, 97, 2, 2, 284, 285, 7, 28, 2, 2, 285, 286, 7, 97, 2, 2, 286, 287, 7, 29, 2, 2, 287, 288, 7, 97, 2, 2, 288, 289, 7, 12, 2, 2, 289, 290, 7, 97, 2, 2, 290, 291, 7, 30, 2, 2, 291, 292, 7, 4, 2, 2, 292, 293, 7, 97, 2, 2, 293, 298, 7, 5, 2, 2, 294, 295, 7, 13, 2, 2, 295, 297, 5, 66, 34, 2, 296, 294, 3, 2, 2, 2, 297, 300, 3, 2, 2, 2, 298, 296, 3, 2, 2, 2, 298, 299, 3, 2, 2, 2, 299, 305, 3, 2, 2, 2, 300, 298, 3, 2, 2, 2, 301, 302, 7, 31, 2, 2, 302, 304, 7, 97, 2, 2, 303, 301, 3, 2, 2, 2, 304, 307, 3, 2, 2, 2, 305, 303, 3, 2, 2, 2, 305, 306, 3, 2, 2, 2, 306, 23, 3, 2, 2, 2, 307, 305, 3, 2, 2, 2, 308, 309, 7, 32, 2, 2, 309, 310, 7, 10, 2, 2, 310, 311, 7, 97, 2, 2, 311, 312, 7, 28, 2, 2, 312, 313, 7, 97, 2, 2, 313, 314, 7, 29, 2, 2, 314, 315, 7, 97, 2, 2, 315, 316, 7, 12, 2, 2, 316, 317, 7, 97, 2, 2, 317, 318, 7, 30, 2, 2, 318, 319, 7, 4, 2, 2, 319, 320, 7, 97, 2, 2, 320, 325, 7, 5, 2, 2, 321, 322, 7, 33, 2, 2, 322, 324, 7, 97, 2, 2, 323, 321, 3, 2, 2, 2, 324, 327, 3, 2, 2, 2, 325, 323, 3, 2, 2, 2, 325, 326, 3, 2, 2, 2, 326, 332, 3, 2, 2, 2, 327, 325, 3, 2, 2, 2, 328, 329, 7, 13, 2, 2, 329, 331, 5, 66, 34, 2, 330, 328, 3, 2, 2, 2, 331, 334, 3, 2, 2, 2, 332, 330, 3, 2, 2, 2, 332, 333, 3, 2, 2, 2, 333, 25, 3, 2, 2, 2, 334, 332, 3, 2, 2, 2, 335, 336, 7, 34, 2, 2, 336, 337, 7, 10, 2, 2, 337, 338, 7, 97, 2, 2, 338, 339, 7, 28, 2, 2, 339, 340, 7, 97, 2, 2, 340, 341, 7, 29, 2, 2, 341, 346, 7, 97, 2, 2, 342, 343, 7, 13, 2, 2, 343, 345, 5, 66, 34, 2, 344, 342, 3, 2, 2, 2, 345, 348, 3, 2, 2, 2, 346, 344, 3, 2, 2, 2, 346, 347, 3, 2, 2, 2, 347, 27, 3, 2, 2, 2, 348, 346, 3, 2, 2, 2, 349, 350, 7, 35, 2, 2, 350, 351, 7, 10, 2, 2, 351, 352, 7, 97, 2, 2, 352, 353, 7, 36, 2, 2, 353, 354, 7, 97, 2, 2, 354, 355, 7, 12, 2, 2, 355, 356, 7, 4, 2, 2, 356, 357, 5, 30, 16, 2, 357, 362, 7, 5, 2, 2, 358, 359, 7, 13, 2, 2, 359, 361, 5, 66, 34, 2, 360, 358, 3, 2, 2, 2, 361, 364, 3, 2, 2, 2, 362, 360, 3, 2, 2, 2, 362, 363, 3, 2, 2, 2, 363, 29, 3, 2, 2, 2, 364, 362, 3, 2, 2, 2, 365, 366, 7, 37, 2, 2, 366, 367, 7, 97, 2, 2, 367, 368, 7, 38, 2, 2, 368, 369, 7, 97, 2, 2, 369, 31, 3, 2, 2, 2, 370, 371, 7, 39, 2, 2, 371, 372, 7, 10, 2, 2, 372, 373, 7, 97, 2, 2, 373, 374, 7, 40, 2, 2, 374, 375, 7, 97, 2, 2, 375, 376, 7, 12, 2, 2, 376, 377, 7, 4, 2, 2, 377, 378, 7, 97, 2, 2, 378, 383, 7, 5, 2, 2, 379, 380, 7, 13, 2, 2, 380, 382, 5, 66, 34, 2, 381, 379, 3, 2, 2, 2, 382, 385, 3, 2, 2, 2, 383, 381, 3, 2, 2, 2, 383, 384, 3, 2, 2, 2, 384, 33, 3, 2, 2, 2, 385, 383, 3, 2, 2, 2, 386, 387, 7, 41, 2, 2, 387, 388, 7, 10, 2, 2, 388, 389, 7, 97, 2, 2, 389, 390, 7, 42, 2, 2, 390, 395, 7, 97, 2, 2, 391, 392, 7, 13, 2, 2, 392, 394, 5, 66, 34, 2, 393, 391, 3, 2, 2, 2, 394, 397, 3, 2, 2, 2, 395, 393, 3, 2, 2, 2, 395, 396, 3, 2, 2, 2, 396, 35, 3, 2, 2, 2, 397, 395, 3, 2, 2, 2, 398, 399, 7, 43, 2, 2, 399, 400, 7, 10, 2, 2, 400, 401, 7, 97, 2, 2, 401, 402, 7, 40, 2, 2, 402, 403, 7, 97, 2, 2, 403, 404, 7, 12, 2, 2, 404, 405, 7, 44, 2, 2, 405, 406, 7, 97, 2, 2, 406, 407, 7, 45, 2, 2, 407, 412, 7, 97, 2, 2, 408, 409, 7, 46, 2, 2, 409, 411, 5, 74, 38, 2, 410, 408, 3, 2, 2, 2, 411, 414, 3, 2, 2, 2, 412, 410, 3, 2, 2, 2, 412, 413, 3, 2, 2, 2, 413, 419, 3, 2, 2, 2, 414, 412, 3, 2, 2, 2, 415, 416, 7, 47, 2, 2, 416, 418, 5, 74, 38, 2, 417, 415, 3, 2, 2, 2, 418, 421, 3, 2, 2, 2, 419, 417, 3, 2, 2, 2, 419, 420, 3, 2, 2, 2, 420, 422, 3, 2, 2, 2, 421, 419, 3, 2, 2, 2, 422, 423, 7, 48, 2, 2, 423, 424, 7, 4, 2, 2, 424, 425, 7, 97, 2, 2, 425, 426, 7, 5, 2, 2, 426, 427, 3, 2, 2, 2, 427, 431, 7, 4, 2, 2, 428, 430, 5, 38, 20, 2, 429, 428, 3, 2, 2, 2, 430, 433, 3, 2, 2, 2, 431, 429, 3, 2, 2, 2, 431, 432, 3, 2, 2, 2, 432, 434, 3, 2, 2, 2, 433, 431, 3, 2, 2, 2, 434, 439, 7, 5, 2, 2, 435, 436, 7, 13, 2, 2, 436, 438, 5, 66, 34, 2, 437, 435, 3, 2, 2, 2, 438, 441, 3, 2, 2, 2, 439, 437, 3, 2, 2, 2, 439, 440, 3, 2, 2, 2, 440, 37, 3, 2, 2, 2, 441, 439, 3, 2, 2, 2, 442, 443, 7, 49, 2, 2, 443, 444, 7, 10, 2, 2, 444, 445, 7, 97, 2, 2, 445, 446, 7, 24, 2, 2, 446, 451, 7, 97, 2, 2, 447, 448, 7, 50, 2, 2, 448, 450, 7, 97, 2, 2, 449, 447, 3, 2, 2, 2, 450, 453, 3, 2, 2, 2, 451, 449, 3, 2, 2, 2, 451, 452, 3, 2, 2, 2, 452, 454, 3, 2, 2, 2, 453, 451, 3, 2, 2, 2, 454, 455, 7, 5, 2, 2, 455, 39, 3, 2, 2, 2, 456, 457, 7, 51, 2, 2, 457, 458, 7, 10, 2, 2, 458, 459, 7, 97, 2, 2, 459, 460, 7, 40, 2, 2, 460, 461, 7, 97, 2, 2, 461, 462, 7, 52, 2, 2, 462, 467, 7, 97, 2, 2, 463, 464, 7, 12, 2, 2, 464, 466, 7, 97, 2, 2, 465, 463, 3, 2, 2, 2, 466, 469, 3, 2, 2, 2, 467, 465, 3, 2, 2, 2, 467, 468, 3, 2, 2, 2, 468, 470, 3, 2, 2, 2, 469, 467, 3, 2, 2, 2, 470, 471, 7, 53, 2, 2, 471, 472, 7, 97, 2, 2, 472, 473, 7, 12, 2, 2, 473, 474, 7, 4, 2, 2, 474, 479, 7, 5, 2, 2, 475, 476, 7, 13, 2, 2, 476, 478, 5, 66, 34, 2, 477, 475, 3, 2, 2, 2, 478, 481, 3, 2, 2, 2, 479, 477, 3, 2, 2, 2, 479, 480, 3, 2, 2, 2, 480, 486, 3, 2, 2, 2, 481, 479, 3, 2, 2, 2, 482, 483, 7, 14, 2, 2, 483, 485, 7, 97, 2, 2, 484, 482, 3, 2, 2, 2, 485, 488, 3, 2, 2, 2, 486, 484, 3, 2, 2, 2, 486, 487, 3, 2, 2, 2, 487, 41, 3, 2, 2, 2, 488, 486, 3, 2, 2, 2, 489, 490, 7, 54, 2, 2, 490, 491, 7, 10, 2, 2, 491, 492, 7, 97, 2, 2, 492, 493, 7, 55, 2, 2, 493, 494, 5, 72, 37, 2, 494, 495, 7, 11, 2, 2, 495, 496, 7, 97, 2, 2, 496, 497, 7, 12, 2, 2, 497, 498, 7, 4, 2, 2, 498, 499, 7, 97, 2, 2, 499, 504, 7, 5, 2, 2, 500, 501, 7, 13, 2, 2, 501, 503, 5, 66, 34, 2, 502, 500, 3, 2, 2, 2, 503, 506, 3, 2, 2, 2, 504, 502, 3, 2, 2, 2, 504, 505, 3, 2, 2, 2, 505, 511, 3, 2, 2, 2, 506, 504, 3, 2, 2, 2, 507, 508, 7, 14, 2, 2, 508, 510, 7, 97, 2, 2, 509, 507, 3, 2, 2, 2, 510, 513, 3, 2, 2, 2, 511, 509, 3, 2, 2, 2, 511, 512, 3, 2, 2, 2, 512, 518, 3, 2, 2, 2, 513, 511, 3, 2, 2, 2, 514, 515, 7, 56, 2, 2, 515, 517, 7, 97, 2, 2, 516, 514, 3, 2, 2, 2, 517, 520, 3, 2, 2, 2, 518, 516, 3, 2, 2, 2, 518, 519, 3, 2, 2, 2, 519, 43, 3, 2, 2, 2, 520, 518, 3, 2, 2, 2, 521, 522, 7, 57, 2, 2, 522, 523, 7, 10, 2, 2, 523, 524, 7, 97, 2, 2, 524, 525, 7, 16, 2, 2, 525, 526, 7, 97, 2, 2, 526, 527, 7, 58, 2, 2, 527, 528, 7, 97, 2, 2, 528, 529, 7, 12, 2, 2, 529, 530, 7, 4, 2, 2, 530, 535, 7, 5, 2, 2, 531, 532, 7, 13, 2, 2, 532, 534, 5, 66, 34, 2, 533, 531, 3, 2, 2, 2, 534, 537, 3, 2, 2, 2, 535, 533, 3, 2, 2, 2, 535, 536, 3, 2, 2, 2, 536, 45, 3, 2, 2, 2, 537, 535, 3, 2, 2, 2, 538, 539, 7, 59, 2, 2, 539, 540, 7, 10, 2, 2, 540, 541, 7, 97, 2, 2, 541, 542, 7, 16, 2, 2, 542, 543, 7, 97, 2, 2, 543, 544, 7, 58, 2, 2, 544, 545, 7, 97, 2, 2, 545, 546, 7, 60, 2, 2, 546, 547, 7, 97, 2, 2, 547, 548, 7, 12, 2, 2, 548, 549, 7, 4, 2, 2, 549, 554, 7, 5, 2, 2, 550, 551, 7, 13, 2, 2, 551, 553, 5, 66, 34, 2, 552, 550, 3, 2, 2, 2, 553, 556, 3, 2, 2, 2, 554, 552, 3, 2, 2, 2, 554, 555, 3, 2, 2, 2, 555, 47, 3, 2, 2, 2, 556, 554, 3, 2, 2, 2, 557, 558, 7, 61, 2, 2, 558, 559, 7, 10, 2, 2, 559, 560, 7, 97, 2, 2, 560, 561, 7, 12, 2, 2, 561, 562, 7, 4, 2, 2, 562, 563, 7, 97, 2, 2, 563, 568, 7, 5, 2, 2, 564, 565, 7, 13, 2, 2, 565, 567, 5, 66, 34, 2, 566, 564, 3, 2, 2, 2, 567, 570, 3, 2, 2, 2, 568, 566, 3, 2, 2, 2, 568, 569, 3, 2, 2, 2, 569, 49, 3, 2, 2, 2, 570, 568, 3, 2, 2, 2, 571, 572, 7, 62, 2, 2, 572, 573, 7, 10, 2, 2, 573, 574, 7, 97, 2, 2, 574, 575, 7, 63, 2, 2, 575, 576, 7, 97, 2, 2, 576, 577, 7, 64, 2, 2, 577, 578, 7, 97, 2, 2, 578, 579, 7, 60, 2, 2, 579, 580, 7, 97, 2, 2, 580, 581, 7, 12, 2, 2, 581, 582, 7, 4, 2, 2, 582, 583, 7, 97, 2, 2, 583, 588, 7, 5, 2, 2, 584, 585, 7, 13, 2, 2, 585, 587, 5, 66, 34, 2, 586, 584, 3, 2, 2, 2, 587, 590, 3, 2, 2, 2, 588, 586, 3, 2, 2, 2, 588, 589, 3, 2, 2, 2, 589, 51, 3, 2, 2, 2, 590, 588, 3, 2, 2, 2, 591, 592, 7, 65, 2, 2, 592, 593, 7, 10, 2, 2, 593, 594, 7, 97, 2, 2, 594, 595, 7, 12, 2, 2, 595, 596, 7, 4, 2, 2, 596, 597, 7, 97, 2, 2, 597, 602, 7, 5, 2, 2, 598, 599, 7, 13, 2, 2, 599, 601, 5, 66, 34, 2, 600, 598, 3, 2, 2, 2, 601, 604, 3, 2, 2, 2, 602, 600, 3, 2, 2, 2, 602, 603, 3, 2, 2, 2, 603, 53, 3, 2, 2, 2, 604, 602, 3, 2, 2, 2, 605, 606, 7, 66, 2, 2, 606, 607, 7, 10, 2, 2, 607, 608, 7, 97, 2, 2, 608, 609, 7, 16, 2, 2, 609, 610, 7, 97, 2, 2, 610, 611, 7, 17, 2, 2, 611, 612, 7, 97, 2, 2, 612, 613, 7, 67, 2, 2, 613, 614, 7, 97, 2, 2, 614, 615, 7, 12, 2, 2, 615, 616, 7, 97, 2, 2, 616, 621, 7, 5, 2, 2, 617, 618, 7, 13, 2, 2, 618, 620, 5, 66, 34, 2, 619, 617, 3, 2, 2, 2, 620, 623, 3, 2, 2, 2, 621, 619, 3, 2, 2, 2, 621, 622, 3, 2, 2, 2, 622, 55, 3, 2, 2, 2, 623, 621, 3, 2, 2, 2, 624, 625, 7, 68, 2, 2, 625, 626, 7, 10, 2, 2, 626, 627, 7, 97, 2, 2, 627, 628, 7, 69, 2, 2, 628, 629, 5, 72, 37, 2, 629, 630, 7, 70, 2, 2, 630, 631, 7, 4, 2, 2, 631, 632, 5, 58, 30, 2, 632, 637, 7, 5, 2, 2, 633, 634, 7, 14, 2, 2, 634, 636, 7, 97, 2, 2, 635, 633, 3, 2, 2, 2, 636, 639, 3, 2, 2, 2, 637, 635, 3, 2, 2, 2, 637, 638, 3, 2, 2, 2, 638, 640, 3, 2, 2, 2, 639, 637, 3, 2, 2, 2, 640, 641, 7, 71, 2, 2, 641, 642, 7, 4, 2, 2, 642, 643, 5, 60, 31, 2, 643, 648, 7, 5, 2, 2, 644, 645, 7, 14, 2, 2, 645, 647, 7, 97, 2, 2, 646, 644, 3, 2, 2, 2, 647, 650, 3, 2, 2, 2, 648, 646, 3, 2, 2, 2, 648, 649, 3, 2, 2, 2, 649, 655, 3, 2, 2, 2, 650, 648, 3, 2, 2, 2, 651, 652, 7, 13, 2, 2, 652, 654, 5, 66, 34, 2, 653, 651, 3, 2, 2, 2, 654, 657, 3, 2, 2, 2, 655, 653, 3, 2, 2, 2, 655, 656, 3, 2, 2, 2, 656, 57, 3, 2, 2, 2, 657, 655, 3, 2, 2, 2, 658, 659, 7, 72, 2, 2, 659, 660, 7, 10, 2, 2, 660, 665, 7, 97, 2, 2, 661, 662, 7, 73, 2, 2, 662, 664, 7, 97, 2, 2, 663, 661, 3, 2, 2, 2, 664, 667, 3, 2, 2, 2, 665, 663, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 672, 3, 2, 2, 2, 667, 665, 3, 2, 2, 2, 668, 669, 7, 69, 2, 2, 669, 671, 5, 72, 37, 2, 670, 668, 3, 2, 2, 2, 671, 674, 3, 2, 2, 2, 672, 670, 3, 2, 2, 2, 672, 673, 3, 2, 2, 2, 673, 675, 3, 2, 2, 2, 674, 672, 3, 2, 2, 2, 675, 676, 7, 30, 2, 2, 676, 677, 7, 4, 2, 2, 677, 678, 7, 97, 2, 2, 678, 679, 7, 5, 2, 2, 679, 680, 7, 74, 2, 2, 680, 684, 7, 4, 2, 2, 681, 683, 5, 10, 6, 2, 682, 681, 3, 2, 2, 2, 683, 686, 3, 2, 2, 2, 684, 682, 3, 2, 2, 2, 684, 685, 3, 2, 2, 2, 685, 687, 3, 2, 2, 2, 686, 684, 3, 2, 2, 2, 687, 692, 7, 5, 2, 2, 688, 689, 7, 13, 2, 2, 689, 691, 5, 66, 34, 2, 690, 688, 3, 2, 2, 2, 691, 694, 3, 2, 2, 2, 692, 690, 3, 2, 2, 2, 692, 693, 3, 2, 2, 2, 693, 699, 3, 2, 2, 2, 694, 692, 3, 2, 2, 2, 695, 696, 7, 14, 2, 2, 696, 698, 7, 97, 2, 2, 697, 695, 3, 2, 2, 2, 698, 701, 3, 2, 2, 2, 699, 697, 3, 2, 2, 2, 699, 700, 3, 2, 2, 2, 700, 59, 3, 2, 2, 2, 701, 699, 3, 2, 2, 2, 702, 703, 7, 75, 2, 2, 703, 704, 7, 10, 2, 2, 704, 711, 7, 97, 2, 2, 705, 706, 7, 76, 2, 2, 706, 707, 7, 97, 2, 2, 707, 708, 7, 69, 2, 2, 708, 710, 5, 72, 37, 2, 709, 705, 3, 2, 2, 2, 710, 713, 3, 2, 2, 2, 711, 709, 3, 2, 2, 2, 711, 712, 3, 2, 2, 2, 712, 720, 3, 2, 2, 2, 713, 711, 3, 2, 2, 2, 714, 715, 7, 77, 2, 2, 715, 716, 7, 97, 2, 2, 716, 717, 7, 78, 2, 2, 717, 719, 7, 97, 2, 2, 718, 714, 3, 2, 2, 2, 719, 722, 3, 2, 2, 2, 720, 718, 3, 2, 2, 2, 720, 721, 3, 2, 2, 2, 721, 723, 3, 2, 2, 2, 722, 720, 3, 2, 2, 2, 723, 724, 7, 74, 2, 2, 724, 728, 7, 4, 2, 2, 725, 727, 5, 10, 6, 2, 726, 725, 3, 2, 2, 2, 727, 730, 3, 2, 2, 2, 728, 726, 3, 2, 2, 2, 728, 729, 3, 2, 2, 2, 729, 731, 3, 2, 2, 2, 730, 728, 3, 2, 2, 2, 731, 736, 7, 5, 2, 2, 732, 733, 7, 13, 2, 2, 733, 735, 5, 66, 34, 2, 734, 732, 3, 2, 2, 2, 735, 738, 3, 2, 2, 2, 736, 734, 3, 2, 2, 2, 736, 737, 3, 2, 2, 2, 737, 743, 3, 2, 2, 2, 738, 736, 3, 2, 2, 2, 739, 740, 7, 14, 2, 2, 740, 742, 7, 97, 2, 2, 741, 739, 3, 2, 2, 2, 742, 745, 3, 2, 2, 2, 743, 741, 3, 2, 2, 2, 743, 744, 3, 2, 2, 2, 744, 750, 3, 2, 2, 2, 745, 743, 3, 2, 2, 2, 746, 747, 7, 79, 2, 2, 747, 749, 5, 66, 34, 2, 748, 746, 3, 2, 2, 2, 749, 752, 3, 2, 2, 2, 750, 748, 3, 2, 2, 2, 750, 751, 3, 2, 2, 2, 751, 61, 3, 2, 2, 2, 752, 750, 3, 2, 2, 2, 753, 754, 7, 80, 2, 2, 754, 755, 7, 10, 2, 2, 755, 756, 7, 97, 2, 2, 756, 757, 7, 81, 2, 2, 757, 758, 7, 97, 2, 2, 758, 759, 7, 82, 2, 2, 759, 760, 7, 4, 2, 2, 760, 761, 5, 74, 38, 2, 761, 766, 7, 5, 2, 2, 762, 763, 7, 13, 2, 2, 763, 765, 5, 66, 34, 2, 764, 762, 3, 2, 2, 2, 765, 768, 3, 2, 2, 2, 766, 764, 3, 2, 2, 2, 766, 767, 3, 2, 2, 2, 767, 63, 3, 2, 2, 2, 768, 766, 3, 2, 2, 2, 769, 770, 7, 83, 2, 2, 770, 771, 7, 10, 2, 2, 771, 772, 7, 97, 2, 2, 772, 773, 7, 12, 2, 2, 773, 774, 7, 4, 2, 2, 774, 775, 7, 97, 2, 2, 775, 780, 7, 5, 2, 2, 776, 777, 7, 13, 2, 2, 777, 779, 5, 66, 34, 2, 778, 776, 3, 2, 2, 2, 779, 782, 3, 2, 2, 2, 780, 778, 3, 2, 2, 2, 780, 781, 3, 2, 2, 2, 781, 65, 3, 2, 2, 2, 782, 780, 3, 2, 2, 2, 783, 784, 7, 84, 2, 2, 784, 785, 7, 97, 2, 2, 785, 786, 7, 99, 2, 2, 786, 787, 7, 97, 2, 2, 787, 67, 3, 2, 2, 2, 788, 789, 7, 85, 2, 2, 789, 790, 7, 10, 2, 2, 790, 791, 7, 86, 2, 2, 791, 792, 7, 97, 2, 2, 792, 793, 7, 24, 2, 2, 793, 794, 7, 87, 2, 2, 794, 795, 7, 4, 2, 2, 795, 796, 7, 97, 2, 2, 796, 797, 7, 5, 2, 2, 797, 69, 3, 2, 2, 2, 798, 799, 7, 88, 2, 2, 799, 800, 7, 4, 2, 2, 800, 801, 7, 97, 2, 2, 801, 802, 7, 5, 2, 2, 802, 71, 3, 2, 2, 2, 803, 804, 7, 97, 2, 2, 804, 73, 3, 2, 2, 2, 805, 808, 5, 76, 39, 2, 806, 808, 5, 80, 41, 2, 807, 805, 3, 2, 2, 2, 807, 806, 3, 2, 2, 2, 808, 75, 3, 2, 2, 2, 809, 810, 7, 4, 2, 2, 810, 815, 5, 78, 40, 2, 811, 812, 7, 89, 2, 2, 812, 814, 5, 78, 40, 2, 813, 811, 3, 2, 2, 2, 814, 817, 3, 2, 2, 2, 815, 813, 3, 2, 2, 2, 815, 816, 3, 2, 2, 2, 816, 818, 3, 2, 2, 2, 817, 815, 3, 2, 2, 2, 818, 819, 7, 5, 2, 2, 819, 823, 3, 2, 2, 2, 820, 821, 7, 4, 2, 2, 821, 823, 7, 5, 2, 2, 822, 809, 3, 2, 2, 2, 822, 820, 3, 2, 2, 2, 823, 77, 3, 2, 2, 2, 824, 825, 7, 97, 2, 2, 825, 826, 7, 90, 2, 2, 826, 827, 5, 82, 42, 2, 827, 79, 3, 2, 2, 2, 828, 829, 7, 91, 2, 2, 829, 834, 5, 82, 42, 2, 830, 831, 7, 89, 2, 2, 831, 833, 5, 82, 42, 2, 832, 830, 3, 2, 2, 2, 833, 836, 3, 2, 2, 2, 834, 832, 3, 2, 2, 2, 834, 835, 3, 2, 2, 2, 835, 837, 3, 2, 2, 2, 836, 834, 3, 2, 2, 2, 837, 838, 7, 92, 2, 2, 838, 842, 3, 2, 2, 2, 839, 840, 7, 91, 2, 2, 840, 842, 7, 92, 2, 2, 841, 828, 3, 2, 2, 2, 841, 839, 3, 2, 2, 2, 842, 81, 3, 2, 2, 2, 843, 851, 7, 97, 2, 2, 844, 851, 7, 103, 2, 2, 845, 851, 5, 76, 39, 2, 846, 851, 5, 80, 41, 2, 847, 851, 7, 93, 2, 2, 848, 851, 7, 94, 2, 2, 849, 851, 7, 95, 2, 2, 850, 843, 3, 2, 2, 2, 850, 844, 3, 2, 2, 2, 850, 845, 3, 2, 2, 2, 850, 846, 3, 2, 2, 2, 850, 847, 3, 2, 2, 2, 850, 848, 3, 2, 2, 2, 850, 849, 3, 2, 2, 2, 851, 83, 3, 2, 2, 2, 65, 97, 107, 117, 147, 156, 164, 172, 179, 197, 204, 211, 218, 234, 241, 265, 278, 298, 305, 325, 332, 346, 362, 383, 395, 412, 419, 431, 439, 451, 467, 479, 486, 504, 511, 518, 535, 554, 568, 588, 602, 621, 637, 648, 655, 665, 672, 684, 692, 699, 711, 720, 728, 736, 743, 750, 766, 780, 807, 815, 822, 834, 841, 850] \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/Raven.tokens b/handyman.raven/src/main/antlr/in.handyman.raven/compiler/Raven.tokens deleted file mode 100644 index e85bc6fc..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/Raven.tokens +++ /dev/null @@ -1,194 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -T__10=11 -T__11=12 -T__12=13 -T__13=14 -T__14=15 -T__15=16 -T__16=17 -T__17=18 -T__18=19 -T__19=20 -T__20=21 -T__21=22 -T__22=23 -T__23=24 -T__24=25 -T__25=26 -T__26=27 -T__27=28 -T__28=29 -T__29=30 -T__30=31 -T__31=32 -T__32=33 -T__33=34 -T__34=35 -T__35=36 -T__36=37 -T__37=38 -T__38=39 -T__39=40 -T__40=41 -T__41=42 -T__42=43 -T__43=44 -T__44=45 -T__45=46 -T__46=47 -T__47=48 -T__48=49 -T__49=50 -T__50=51 -T__51=52 -T__52=53 -T__53=54 -T__54=55 -T__55=56 -T__56=57 -T__57=58 -T__58=59 -T__59=60 -T__60=61 -T__61=62 -T__62=63 -T__63=64 -T__64=65 -T__65=66 -T__66=67 -T__67=68 -T__68=69 -T__69=70 -T__70=71 -T__71=72 -T__72=73 -T__73=74 -T__74=75 -T__75=76 -T__76=77 -T__77=78 -T__78=79 -T__79=80 -T__80=81 -T__81=82 -T__82=83 -T__83=84 -T__84=85 -T__85=86 -T__86=87 -T__87=88 -T__88=89 -T__89=90 -T__90=91 -T__91=92 -T__92=93 -NON_ZERO_DIGIT=94 -STRING=95 -CRLF=96 -Operator=97 -WS=98 -COMMENT=99 -LINE_COMMENT=100 -NUMBER=101 -'process'=1 -'{'=2 -'}'=3 -'try'=4 -'finally'=5 -'catch'=6 -'multitude'=7 -'as'=8 -'on'=9 -'using'=10 -'on-condition'=11 -'fielding'=12 -'copydata'=13 -'from'=14 -'to'=15 -'with-fetch-batch-size'=16 -'with-write-batch-size'=17 -'transform'=18 -'do-format'=19 -'loadcsv'=20 -'pid'=21 -'with'=22 -'by-batch'=23 -'abort'=24 -'callprocess'=25 -'with-target'=26 -'from-file'=27 -'for-every'=28 -'on-parallel-fielding'=29 -'forkprocess'=30 -'watermark'=31 -'spawn'=32 -'dogleg'=33 -'use-parent-context'=34 -'start-process'=35 -'with-file'=36 -'assign'=37 -'source'=38 -'dropfile'=39 -'in-path'=40 -'restapi'=41 -'url'=42 -'method'=43 -'with headers'=44 -'with params'=45 -'with body type'=46 -'{ part'=47 -'type as'=48 -'exportCsv'=49 -'executionSource'=50 -'targetLocation'=51 -'importCsvToDB'=52 -'target'=53 -'batch'=54 -'extractTAR'=55 -'destination'=56 -'createTAR'=57 -'extension'=58 -'createDirectory'=59 -'createFile'=60 -'location'=61 -'fileName'=62 -'deleteFileDirectory'=63 -'transferFileDirectory'=64 -'operation'=65 -'pcm'=66 -'on-resource'=67 -'produce'=68 -'consume'=69 -'producer'=70 -'push-result-at'=71 -'execute'=72 -'consumer'=73 -'pop-event-from'=74 -'pop-result-from'=75 -'limit'=76 -'on-standalone'=77 -'push-json-into-context'=78 -'with-key'=79 -'using-value'=80 -'map-json-into-context'=81 -'if'=82 -'log'=83 -'level'=84 -'message'=85 -'raise exception'=86 -','=87 -':'=88 -'['=89 -']'=90 -'true'=91 -'false'=92 -'null'=93 diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenBaseListener.java b/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenBaseListener.java deleted file mode 100644 index c536fd72..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenBaseListener.java +++ /dev/null @@ -1,533 +0,0 @@ -// Generated from Raven.g4 by ANTLR 4.9.3 - -package in.handyman.raven.compiler; - - -import org.antlr.v4.runtime.ParserRuleContext; -import org.antlr.v4.runtime.tree.ErrorNode; -import org.antlr.v4.runtime.tree.TerminalNode; - -/** - * This class provides an empty implementation of {@link RavenListener}, - * which can be extended to create a listener which only needs to handle a subset - * of the available methods. - */ -public class RavenBaseListener implements RavenListener { - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterProcess(RavenParser.ProcessContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitProcess(RavenParser.ProcessContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterTryClause(RavenParser.TryClauseContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitTryClause(RavenParser.TryClauseContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterFinallyClause(RavenParser.FinallyClauseContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitFinallyClause(RavenParser.FinallyClauseContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCatchClause(RavenParser.CatchClauseContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCatchClause(RavenParser.CatchClauseContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAction(RavenParser.ActionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAction(RavenParser.ActionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterMultitude(RavenParser.MultitudeContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitMultitude(RavenParser.MultitudeContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCopyData(RavenParser.CopyDataContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCopyData(RavenParser.CopyDataContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterTransform(RavenParser.TransformContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitTransform(RavenParser.TransformContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterLoadCsv(RavenParser.LoadCsvContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitLoadCsv(RavenParser.LoadCsvContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAbort(RavenParser.AbortContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAbort(RavenParser.AbortContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCallProcess(RavenParser.CallProcessContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCallProcess(RavenParser.CallProcessContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterForkProcess(RavenParser.ForkProcessContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitForkProcess(RavenParser.ForkProcessContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterSpawnProcess(RavenParser.SpawnProcessContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitSpawnProcess(RavenParser.SpawnProcessContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterDogLeg(RavenParser.DogLegContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitDogLeg(RavenParser.DogLegContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterStartProcess(RavenParser.StartProcessContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitStartProcess(RavenParser.StartProcessContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAssign(RavenParser.AssignContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAssign(RavenParser.AssignContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterDropFile(RavenParser.DropFileContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitDropFile(RavenParser.DropFileContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterRestApi(RavenParser.RestApiContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitRestApi(RavenParser.RestApiContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterRestPart(RavenParser.RestPartContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitRestPart(RavenParser.RestPartContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterExportCsv(RavenParser.ExportCsvContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitExportCsv(RavenParser.ExportCsvContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterImportCsvToDB(RavenParser.ImportCsvToDBContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitImportCsvToDB(RavenParser.ImportCsvToDBContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterExtractTAR(RavenParser.ExtractTARContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitExtractTAR(RavenParser.ExtractTARContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCreateTAR(RavenParser.CreateTARContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCreateTAR(RavenParser.CreateTARContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCreateDirectory(RavenParser.CreateDirectoryContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCreateDirectory(RavenParser.CreateDirectoryContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCreateFile(RavenParser.CreateFileContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCreateFile(RavenParser.CreateFileContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterDeleteFileDirectory(RavenParser.DeleteFileDirectoryContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitDeleteFileDirectory(RavenParser.DeleteFileDirectoryContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterTransferFileDirectory(RavenParser.TransferFileDirectoryContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitTransferFileDirectory(RavenParser.TransferFileDirectoryContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterProducerConsumerModel(RavenParser.ProducerConsumerModelContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitProducerConsumerModel(RavenParser.ProducerConsumerModelContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterProducer(RavenParser.ProducerContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitProducer(RavenParser.ProducerContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterConsumer(RavenParser.ConsumerContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitConsumer(RavenParser.ConsumerContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterPushJson(RavenParser.PushJsonContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitPushJson(RavenParser.PushJsonContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterMapJsonContext(RavenParser.MapJsonContextContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitMapJsonContext(RavenParser.MapJsonContextContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterExpression(RavenParser.ExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitExpression(RavenParser.ExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterLog(RavenParser.LogContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitLog(RavenParser.LogContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterException(RavenParser.ExceptionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitException(RavenParser.ExceptionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterResource(RavenParser.ResourceContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitResource(RavenParser.ResourceContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterJson(RavenParser.JsonContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitJson(RavenParser.JsonContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterObj(RavenParser.ObjContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitObj(RavenParser.ObjContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterPair(RavenParser.PairContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitPair(RavenParser.PairContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterArr(RavenParser.ArrContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitArr(RavenParser.ArrContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterJValue(RavenParser.JValueContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitJValue(RavenParser.JValueContext ctx) { } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterEveryRule(ParserRuleContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitEveryRule(ParserRuleContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void visitTerminal(TerminalNode node) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void visitErrorNode(ErrorNode node) { } -} \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenLexer.interp b/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenLexer.interp deleted file mode 100644 index dd6280c9..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenLexer.interp +++ /dev/null @@ -1,332 +0,0 @@ -token literal names: -null -'process' -'{' -'}' -'try' -'finally' -'catch' -'multitude' -'as' -'on' -'using' -'on-condition' -'fielding' -'copydata' -'from' -'to' -'with-fetch-batch-size' -'with-write-batch-size' -'transform' -'do-format' -'loadcsv' -'pid' -'with' -'by-batch' -'abort' -'callprocess' -'with-target' -'from-file' -'for-every' -'on-parallel-fielding' -'forkprocess' -'watermark' -'spawn' -'dogleg' -'use-parent-context' -'start-process' -'with-file' -'assign' -'source' -'dropfile' -'in-path' -'restapi' -'url' -'method' -'with headers' -'with params' -'with body type' -'{ part' -'type as' -'exportCsv' -'executionSource' -'targetLocation' -'importCsvToDB' -'target' -'batch' -'extractTAR' -'destination' -'createTAR' -'extension' -'createDirectory' -'createFile' -'location' -'fileName' -'deleteFileDirectory' -'transferFileDirectory' -'operation' -'pcm' -'on-resource' -'produce' -'consume' -'producer' -'push-result-at' -'execute' -'consumer' -'pop-event-from' -'pop-result-from' -'limit' -'on-standalone' -'push-json-into-context' -'with-key' -'using-value' -'map-json-into-context' -'if' -'log' -'level' -'message' -'raise exception' -',' -':' -'[' -']' -'true' -'false' -'null' -null -null -null -null -null -null -null -null - -token symbolic names: -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -NON_ZERO_DIGIT -STRING -CRLF -Operator -WS -COMMENT -LINE_COMMENT -NUMBER - -rule names: -T__0 -T__1 -T__2 -T__3 -T__4 -T__5 -T__6 -T__7 -T__8 -T__9 -T__10 -T__11 -T__12 -T__13 -T__14 -T__15 -T__16 -T__17 -T__18 -T__19 -T__20 -T__21 -T__22 -T__23 -T__24 -T__25 -T__26 -T__27 -T__28 -T__29 -T__30 -T__31 -T__32 -T__33 -T__34 -T__35 -T__36 -T__37 -T__38 -T__39 -T__40 -T__41 -T__42 -T__43 -T__44 -T__45 -T__46 -T__47 -T__48 -T__49 -T__50 -T__51 -T__52 -T__53 -T__54 -T__55 -T__56 -T__57 -T__58 -T__59 -T__60 -T__61 -T__62 -T__63 -T__64 -T__65 -T__66 -T__67 -T__68 -T__69 -T__70 -T__71 -T__72 -T__73 -T__74 -T__75 -T__76 -T__77 -T__78 -T__79 -T__80 -T__81 -T__82 -T__83 -T__84 -T__85 -T__86 -T__87 -T__88 -T__89 -T__90 -T__91 -T__92 -DIGIT -NON_Z_DIGIT -TWODIGIT -LETTER -StringCharacters -StringCharacter -NON_ZERO_DIGIT -STRING -CRLF -Operator -WS -COMMENT -LINE_COMMENT -ESC -UNICODE -HEX -SAFECODEPOINT -NUMBER -INT -EXP - -channel names: -DEFAULT_TOKEN_CHANNEL -HIDDEN - -mode names: -DEFAULT_MODE - -atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 103, 1250, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 89, 3, 89, 3, 90, 3, 90, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 99, 6, 99, 1134, 10, 99, 13, 99, 14, 99, 1135, 3, 100, 3, 100, 3, 101, 6, 101, 1141, 10, 101, 13, 101, 14, 101, 1142, 3, 102, 3, 102, 5, 102, 1147, 10, 102, 3, 102, 3, 102, 3, 103, 5, 103, 1152, 10, 103, 3, 103, 3, 103, 5, 103, 1156, 10, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 1171, 10, 104, 3, 105, 6, 105, 1174, 10, 105, 13, 105, 14, 105, 1175, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 7, 106, 1184, 10, 106, 12, 106, 14, 106, 1187, 11, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 7, 107, 1198, 10, 107, 12, 107, 14, 107, 1201, 11, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 5, 108, 1208, 10, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 111, 3, 111, 3, 112, 5, 112, 1221, 10, 112, 3, 112, 3, 112, 3, 112, 6, 112, 1226, 10, 112, 13, 112, 14, 112, 1227, 5, 112, 1230, 10, 112, 3, 112, 5, 112, 1233, 10, 112, 3, 113, 3, 113, 3, 113, 7, 113, 1238, 10, 113, 12, 113, 14, 113, 1241, 11, 113, 5, 113, 1243, 10, 113, 3, 114, 3, 114, 5, 114, 1247, 10, 114, 3, 114, 3, 114, 3, 1185, 2, 115, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 72, 143, 73, 145, 74, 147, 75, 149, 76, 151, 77, 153, 78, 155, 79, 157, 80, 159, 81, 161, 82, 163, 83, 165, 84, 167, 85, 169, 86, 171, 87, 173, 88, 175, 89, 177, 90, 179, 91, 181, 92, 183, 93, 185, 94, 187, 95, 189, 2, 191, 2, 193, 2, 195, 2, 197, 2, 199, 2, 201, 96, 203, 97, 205, 98, 207, 99, 209, 100, 211, 101, 213, 102, 215, 2, 217, 2, 219, 2, 221, 2, 223, 103, 225, 2, 227, 2, 3, 2, 14, 3, 2, 50, 59, 3, 2, 51, 59, 4, 2, 67, 92, 99, 124, 4, 2, 36, 36, 94, 94, 4, 2, 62, 62, 64, 64, 5, 2, 11, 12, 14, 15, 34, 34, 4, 2, 12, 12, 15, 15, 10, 2, 36, 36, 49, 49, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 5, 2, 50, 59, 67, 72, 99, 104, 5, 2, 2, 33, 36, 36, 94, 94, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 2, 1255, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 3, 229, 3, 2, 2, 2, 5, 237, 3, 2, 2, 2, 7, 239, 3, 2, 2, 2, 9, 241, 3, 2, 2, 2, 11, 245, 3, 2, 2, 2, 13, 253, 3, 2, 2, 2, 15, 259, 3, 2, 2, 2, 17, 269, 3, 2, 2, 2, 19, 272, 3, 2, 2, 2, 21, 275, 3, 2, 2, 2, 23, 281, 3, 2, 2, 2, 25, 294, 3, 2, 2, 2, 27, 303, 3, 2, 2, 2, 29, 312, 3, 2, 2, 2, 31, 317, 3, 2, 2, 2, 33, 320, 3, 2, 2, 2, 35, 342, 3, 2, 2, 2, 37, 364, 3, 2, 2, 2, 39, 374, 3, 2, 2, 2, 41, 384, 3, 2, 2, 2, 43, 392, 3, 2, 2, 2, 45, 396, 3, 2, 2, 2, 47, 401, 3, 2, 2, 2, 49, 410, 3, 2, 2, 2, 51, 416, 3, 2, 2, 2, 53, 428, 3, 2, 2, 2, 55, 440, 3, 2, 2, 2, 57, 450, 3, 2, 2, 2, 59, 460, 3, 2, 2, 2, 61, 481, 3, 2, 2, 2, 63, 493, 3, 2, 2, 2, 65, 503, 3, 2, 2, 2, 67, 509, 3, 2, 2, 2, 69, 516, 3, 2, 2, 2, 71, 535, 3, 2, 2, 2, 73, 549, 3, 2, 2, 2, 75, 559, 3, 2, 2, 2, 77, 566, 3, 2, 2, 2, 79, 573, 3, 2, 2, 2, 81, 582, 3, 2, 2, 2, 83, 590, 3, 2, 2, 2, 85, 598, 3, 2, 2, 2, 87, 602, 3, 2, 2, 2, 89, 609, 3, 2, 2, 2, 91, 622, 3, 2, 2, 2, 93, 634, 3, 2, 2, 2, 95, 649, 3, 2, 2, 2, 97, 656, 3, 2, 2, 2, 99, 664, 3, 2, 2, 2, 101, 674, 3, 2, 2, 2, 103, 690, 3, 2, 2, 2, 105, 705, 3, 2, 2, 2, 107, 719, 3, 2, 2, 2, 109, 726, 3, 2, 2, 2, 111, 732, 3, 2, 2, 2, 113, 743, 3, 2, 2, 2, 115, 755, 3, 2, 2, 2, 117, 765, 3, 2, 2, 2, 119, 775, 3, 2, 2, 2, 121, 791, 3, 2, 2, 2, 123, 802, 3, 2, 2, 2, 125, 811, 3, 2, 2, 2, 127, 820, 3, 2, 2, 2, 129, 840, 3, 2, 2, 2, 131, 862, 3, 2, 2, 2, 133, 872, 3, 2, 2, 2, 135, 876, 3, 2, 2, 2, 137, 888, 3, 2, 2, 2, 139, 896, 3, 2, 2, 2, 141, 904, 3, 2, 2, 2, 143, 913, 3, 2, 2, 2, 145, 928, 3, 2, 2, 2, 147, 936, 3, 2, 2, 2, 149, 945, 3, 2, 2, 2, 151, 960, 3, 2, 2, 2, 153, 976, 3, 2, 2, 2, 155, 982, 3, 2, 2, 2, 157, 996, 3, 2, 2, 2, 159, 1019, 3, 2, 2, 2, 161, 1028, 3, 2, 2, 2, 163, 1040, 3, 2, 2, 2, 165, 1062, 3, 2, 2, 2, 167, 1065, 3, 2, 2, 2, 169, 1069, 3, 2, 2, 2, 171, 1075, 3, 2, 2, 2, 173, 1083, 3, 2, 2, 2, 175, 1099, 3, 2, 2, 2, 177, 1101, 3, 2, 2, 2, 179, 1103, 3, 2, 2, 2, 181, 1105, 3, 2, 2, 2, 183, 1107, 3, 2, 2, 2, 185, 1112, 3, 2, 2, 2, 187, 1118, 3, 2, 2, 2, 189, 1123, 3, 2, 2, 2, 191, 1125, 3, 2, 2, 2, 193, 1127, 3, 2, 2, 2, 195, 1130, 3, 2, 2, 2, 197, 1133, 3, 2, 2, 2, 199, 1137, 3, 2, 2, 2, 201, 1140, 3, 2, 2, 2, 203, 1144, 3, 2, 2, 2, 205, 1155, 3, 2, 2, 2, 207, 1170, 3, 2, 2, 2, 209, 1173, 3, 2, 2, 2, 211, 1179, 3, 2, 2, 2, 213, 1193, 3, 2, 2, 2, 215, 1204, 3, 2, 2, 2, 217, 1209, 3, 2, 2, 2, 219, 1215, 3, 2, 2, 2, 221, 1217, 3, 2, 2, 2, 223, 1220, 3, 2, 2, 2, 225, 1242, 3, 2, 2, 2, 227, 1244, 3, 2, 2, 2, 229, 230, 7, 114, 2, 2, 230, 231, 7, 116, 2, 2, 231, 232, 7, 113, 2, 2, 232, 233, 7, 101, 2, 2, 233, 234, 7, 103, 2, 2, 234, 235, 7, 117, 2, 2, 235, 236, 7, 117, 2, 2, 236, 4, 3, 2, 2, 2, 237, 238, 7, 125, 2, 2, 238, 6, 3, 2, 2, 2, 239, 240, 7, 127, 2, 2, 240, 8, 3, 2, 2, 2, 241, 242, 7, 118, 2, 2, 242, 243, 7, 116, 2, 2, 243, 244, 7, 123, 2, 2, 244, 10, 3, 2, 2, 2, 245, 246, 7, 104, 2, 2, 246, 247, 7, 107, 2, 2, 247, 248, 7, 112, 2, 2, 248, 249, 7, 99, 2, 2, 249, 250, 7, 110, 2, 2, 250, 251, 7, 110, 2, 2, 251, 252, 7, 123, 2, 2, 252, 12, 3, 2, 2, 2, 253, 254, 7, 101, 2, 2, 254, 255, 7, 99, 2, 2, 255, 256, 7, 118, 2, 2, 256, 257, 7, 101, 2, 2, 257, 258, 7, 106, 2, 2, 258, 14, 3, 2, 2, 2, 259, 260, 7, 111, 2, 2, 260, 261, 7, 119, 2, 2, 261, 262, 7, 110, 2, 2, 262, 263, 7, 118, 2, 2, 263, 264, 7, 107, 2, 2, 264, 265, 7, 118, 2, 2, 265, 266, 7, 119, 2, 2, 266, 267, 7, 102, 2, 2, 267, 268, 7, 103, 2, 2, 268, 16, 3, 2, 2, 2, 269, 270, 7, 99, 2, 2, 270, 271, 7, 117, 2, 2, 271, 18, 3, 2, 2, 2, 272, 273, 7, 113, 2, 2, 273, 274, 7, 112, 2, 2, 274, 20, 3, 2, 2, 2, 275, 276, 7, 119, 2, 2, 276, 277, 7, 117, 2, 2, 277, 278, 7, 107, 2, 2, 278, 279, 7, 112, 2, 2, 279, 280, 7, 105, 2, 2, 280, 22, 3, 2, 2, 2, 281, 282, 7, 113, 2, 2, 282, 283, 7, 112, 2, 2, 283, 284, 7, 47, 2, 2, 284, 285, 7, 101, 2, 2, 285, 286, 7, 113, 2, 2, 286, 287, 7, 112, 2, 2, 287, 288, 7, 102, 2, 2, 288, 289, 7, 107, 2, 2, 289, 290, 7, 118, 2, 2, 290, 291, 7, 107, 2, 2, 291, 292, 7, 113, 2, 2, 292, 293, 7, 112, 2, 2, 293, 24, 3, 2, 2, 2, 294, 295, 7, 104, 2, 2, 295, 296, 7, 107, 2, 2, 296, 297, 7, 103, 2, 2, 297, 298, 7, 110, 2, 2, 298, 299, 7, 102, 2, 2, 299, 300, 7, 107, 2, 2, 300, 301, 7, 112, 2, 2, 301, 302, 7, 105, 2, 2, 302, 26, 3, 2, 2, 2, 303, 304, 7, 101, 2, 2, 304, 305, 7, 113, 2, 2, 305, 306, 7, 114, 2, 2, 306, 307, 7, 123, 2, 2, 307, 308, 7, 102, 2, 2, 308, 309, 7, 99, 2, 2, 309, 310, 7, 118, 2, 2, 310, 311, 7, 99, 2, 2, 311, 28, 3, 2, 2, 2, 312, 313, 7, 104, 2, 2, 313, 314, 7, 116, 2, 2, 314, 315, 7, 113, 2, 2, 315, 316, 7, 111, 2, 2, 316, 30, 3, 2, 2, 2, 317, 318, 7, 118, 2, 2, 318, 319, 7, 113, 2, 2, 319, 32, 3, 2, 2, 2, 320, 321, 7, 121, 2, 2, 321, 322, 7, 107, 2, 2, 322, 323, 7, 118, 2, 2, 323, 324, 7, 106, 2, 2, 324, 325, 7, 47, 2, 2, 325, 326, 7, 104, 2, 2, 326, 327, 7, 103, 2, 2, 327, 328, 7, 118, 2, 2, 328, 329, 7, 101, 2, 2, 329, 330, 7, 106, 2, 2, 330, 331, 7, 47, 2, 2, 331, 332, 7, 100, 2, 2, 332, 333, 7, 99, 2, 2, 333, 334, 7, 118, 2, 2, 334, 335, 7, 101, 2, 2, 335, 336, 7, 106, 2, 2, 336, 337, 7, 47, 2, 2, 337, 338, 7, 117, 2, 2, 338, 339, 7, 107, 2, 2, 339, 340, 7, 124, 2, 2, 340, 341, 7, 103, 2, 2, 341, 34, 3, 2, 2, 2, 342, 343, 7, 121, 2, 2, 343, 344, 7, 107, 2, 2, 344, 345, 7, 118, 2, 2, 345, 346, 7, 106, 2, 2, 346, 347, 7, 47, 2, 2, 347, 348, 7, 121, 2, 2, 348, 349, 7, 116, 2, 2, 349, 350, 7, 107, 2, 2, 350, 351, 7, 118, 2, 2, 351, 352, 7, 103, 2, 2, 352, 353, 7, 47, 2, 2, 353, 354, 7, 100, 2, 2, 354, 355, 7, 99, 2, 2, 355, 356, 7, 118, 2, 2, 356, 357, 7, 101, 2, 2, 357, 358, 7, 106, 2, 2, 358, 359, 7, 47, 2, 2, 359, 360, 7, 117, 2, 2, 360, 361, 7, 107, 2, 2, 361, 362, 7, 124, 2, 2, 362, 363, 7, 103, 2, 2, 363, 36, 3, 2, 2, 2, 364, 365, 7, 118, 2, 2, 365, 366, 7, 116, 2, 2, 366, 367, 7, 99, 2, 2, 367, 368, 7, 112, 2, 2, 368, 369, 7, 117, 2, 2, 369, 370, 7, 104, 2, 2, 370, 371, 7, 113, 2, 2, 371, 372, 7, 116, 2, 2, 372, 373, 7, 111, 2, 2, 373, 38, 3, 2, 2, 2, 374, 375, 7, 102, 2, 2, 375, 376, 7, 113, 2, 2, 376, 377, 7, 47, 2, 2, 377, 378, 7, 104, 2, 2, 378, 379, 7, 113, 2, 2, 379, 380, 7, 116, 2, 2, 380, 381, 7, 111, 2, 2, 381, 382, 7, 99, 2, 2, 382, 383, 7, 118, 2, 2, 383, 40, 3, 2, 2, 2, 384, 385, 7, 110, 2, 2, 385, 386, 7, 113, 2, 2, 386, 387, 7, 99, 2, 2, 387, 388, 7, 102, 2, 2, 388, 389, 7, 101, 2, 2, 389, 390, 7, 117, 2, 2, 390, 391, 7, 120, 2, 2, 391, 42, 3, 2, 2, 2, 392, 393, 7, 114, 2, 2, 393, 394, 7, 107, 2, 2, 394, 395, 7, 102, 2, 2, 395, 44, 3, 2, 2, 2, 396, 397, 7, 121, 2, 2, 397, 398, 7, 107, 2, 2, 398, 399, 7, 118, 2, 2, 399, 400, 7, 106, 2, 2, 400, 46, 3, 2, 2, 2, 401, 402, 7, 100, 2, 2, 402, 403, 7, 123, 2, 2, 403, 404, 7, 47, 2, 2, 404, 405, 7, 100, 2, 2, 405, 406, 7, 99, 2, 2, 406, 407, 7, 118, 2, 2, 407, 408, 7, 101, 2, 2, 408, 409, 7, 106, 2, 2, 409, 48, 3, 2, 2, 2, 410, 411, 7, 99, 2, 2, 411, 412, 7, 100, 2, 2, 412, 413, 7, 113, 2, 2, 413, 414, 7, 116, 2, 2, 414, 415, 7, 118, 2, 2, 415, 50, 3, 2, 2, 2, 416, 417, 7, 101, 2, 2, 417, 418, 7, 99, 2, 2, 418, 419, 7, 110, 2, 2, 419, 420, 7, 110, 2, 2, 420, 421, 7, 114, 2, 2, 421, 422, 7, 116, 2, 2, 422, 423, 7, 113, 2, 2, 423, 424, 7, 101, 2, 2, 424, 425, 7, 103, 2, 2, 425, 426, 7, 117, 2, 2, 426, 427, 7, 117, 2, 2, 427, 52, 3, 2, 2, 2, 428, 429, 7, 121, 2, 2, 429, 430, 7, 107, 2, 2, 430, 431, 7, 118, 2, 2, 431, 432, 7, 106, 2, 2, 432, 433, 7, 47, 2, 2, 433, 434, 7, 118, 2, 2, 434, 435, 7, 99, 2, 2, 435, 436, 7, 116, 2, 2, 436, 437, 7, 105, 2, 2, 437, 438, 7, 103, 2, 2, 438, 439, 7, 118, 2, 2, 439, 54, 3, 2, 2, 2, 440, 441, 7, 104, 2, 2, 441, 442, 7, 116, 2, 2, 442, 443, 7, 113, 2, 2, 443, 444, 7, 111, 2, 2, 444, 445, 7, 47, 2, 2, 445, 446, 7, 104, 2, 2, 446, 447, 7, 107, 2, 2, 447, 448, 7, 110, 2, 2, 448, 449, 7, 103, 2, 2, 449, 56, 3, 2, 2, 2, 450, 451, 7, 104, 2, 2, 451, 452, 7, 113, 2, 2, 452, 453, 7, 116, 2, 2, 453, 454, 7, 47, 2, 2, 454, 455, 7, 103, 2, 2, 455, 456, 7, 120, 2, 2, 456, 457, 7, 103, 2, 2, 457, 458, 7, 116, 2, 2, 458, 459, 7, 123, 2, 2, 459, 58, 3, 2, 2, 2, 460, 461, 7, 113, 2, 2, 461, 462, 7, 112, 2, 2, 462, 463, 7, 47, 2, 2, 463, 464, 7, 114, 2, 2, 464, 465, 7, 99, 2, 2, 465, 466, 7, 116, 2, 2, 466, 467, 7, 99, 2, 2, 467, 468, 7, 110, 2, 2, 468, 469, 7, 110, 2, 2, 469, 470, 7, 103, 2, 2, 470, 471, 7, 110, 2, 2, 471, 472, 7, 47, 2, 2, 472, 473, 7, 104, 2, 2, 473, 474, 7, 107, 2, 2, 474, 475, 7, 103, 2, 2, 475, 476, 7, 110, 2, 2, 476, 477, 7, 102, 2, 2, 477, 478, 7, 107, 2, 2, 478, 479, 7, 112, 2, 2, 479, 480, 7, 105, 2, 2, 480, 60, 3, 2, 2, 2, 481, 482, 7, 104, 2, 2, 482, 483, 7, 113, 2, 2, 483, 484, 7, 116, 2, 2, 484, 485, 7, 109, 2, 2, 485, 486, 7, 114, 2, 2, 486, 487, 7, 116, 2, 2, 487, 488, 7, 113, 2, 2, 488, 489, 7, 101, 2, 2, 489, 490, 7, 103, 2, 2, 490, 491, 7, 117, 2, 2, 491, 492, 7, 117, 2, 2, 492, 62, 3, 2, 2, 2, 493, 494, 7, 121, 2, 2, 494, 495, 7, 99, 2, 2, 495, 496, 7, 118, 2, 2, 496, 497, 7, 103, 2, 2, 497, 498, 7, 116, 2, 2, 498, 499, 7, 111, 2, 2, 499, 500, 7, 99, 2, 2, 500, 501, 7, 116, 2, 2, 501, 502, 7, 109, 2, 2, 502, 64, 3, 2, 2, 2, 503, 504, 7, 117, 2, 2, 504, 505, 7, 114, 2, 2, 505, 506, 7, 99, 2, 2, 506, 507, 7, 121, 2, 2, 507, 508, 7, 112, 2, 2, 508, 66, 3, 2, 2, 2, 509, 510, 7, 102, 2, 2, 510, 511, 7, 113, 2, 2, 511, 512, 7, 105, 2, 2, 512, 513, 7, 110, 2, 2, 513, 514, 7, 103, 2, 2, 514, 515, 7, 105, 2, 2, 515, 68, 3, 2, 2, 2, 516, 517, 7, 119, 2, 2, 517, 518, 7, 117, 2, 2, 518, 519, 7, 103, 2, 2, 519, 520, 7, 47, 2, 2, 520, 521, 7, 114, 2, 2, 521, 522, 7, 99, 2, 2, 522, 523, 7, 116, 2, 2, 523, 524, 7, 103, 2, 2, 524, 525, 7, 112, 2, 2, 525, 526, 7, 118, 2, 2, 526, 527, 7, 47, 2, 2, 527, 528, 7, 101, 2, 2, 528, 529, 7, 113, 2, 2, 529, 530, 7, 112, 2, 2, 530, 531, 7, 118, 2, 2, 531, 532, 7, 103, 2, 2, 532, 533, 7, 122, 2, 2, 533, 534, 7, 118, 2, 2, 534, 70, 3, 2, 2, 2, 535, 536, 7, 117, 2, 2, 536, 537, 7, 118, 2, 2, 537, 538, 7, 99, 2, 2, 538, 539, 7, 116, 2, 2, 539, 540, 7, 118, 2, 2, 540, 541, 7, 47, 2, 2, 541, 542, 7, 114, 2, 2, 542, 543, 7, 116, 2, 2, 543, 544, 7, 113, 2, 2, 544, 545, 7, 101, 2, 2, 545, 546, 7, 103, 2, 2, 546, 547, 7, 117, 2, 2, 547, 548, 7, 117, 2, 2, 548, 72, 3, 2, 2, 2, 549, 550, 7, 121, 2, 2, 550, 551, 7, 107, 2, 2, 551, 552, 7, 118, 2, 2, 552, 553, 7, 106, 2, 2, 553, 554, 7, 47, 2, 2, 554, 555, 7, 104, 2, 2, 555, 556, 7, 107, 2, 2, 556, 557, 7, 110, 2, 2, 557, 558, 7, 103, 2, 2, 558, 74, 3, 2, 2, 2, 559, 560, 7, 99, 2, 2, 560, 561, 7, 117, 2, 2, 561, 562, 7, 117, 2, 2, 562, 563, 7, 107, 2, 2, 563, 564, 7, 105, 2, 2, 564, 565, 7, 112, 2, 2, 565, 76, 3, 2, 2, 2, 566, 567, 7, 117, 2, 2, 567, 568, 7, 113, 2, 2, 568, 569, 7, 119, 2, 2, 569, 570, 7, 116, 2, 2, 570, 571, 7, 101, 2, 2, 571, 572, 7, 103, 2, 2, 572, 78, 3, 2, 2, 2, 573, 574, 7, 102, 2, 2, 574, 575, 7, 116, 2, 2, 575, 576, 7, 113, 2, 2, 576, 577, 7, 114, 2, 2, 577, 578, 7, 104, 2, 2, 578, 579, 7, 107, 2, 2, 579, 580, 7, 110, 2, 2, 580, 581, 7, 103, 2, 2, 581, 80, 3, 2, 2, 2, 582, 583, 7, 107, 2, 2, 583, 584, 7, 112, 2, 2, 584, 585, 7, 47, 2, 2, 585, 586, 7, 114, 2, 2, 586, 587, 7, 99, 2, 2, 587, 588, 7, 118, 2, 2, 588, 589, 7, 106, 2, 2, 589, 82, 3, 2, 2, 2, 590, 591, 7, 116, 2, 2, 591, 592, 7, 103, 2, 2, 592, 593, 7, 117, 2, 2, 593, 594, 7, 118, 2, 2, 594, 595, 7, 99, 2, 2, 595, 596, 7, 114, 2, 2, 596, 597, 7, 107, 2, 2, 597, 84, 3, 2, 2, 2, 598, 599, 7, 119, 2, 2, 599, 600, 7, 116, 2, 2, 600, 601, 7, 110, 2, 2, 601, 86, 3, 2, 2, 2, 602, 603, 7, 111, 2, 2, 603, 604, 7, 103, 2, 2, 604, 605, 7, 118, 2, 2, 605, 606, 7, 106, 2, 2, 606, 607, 7, 113, 2, 2, 607, 608, 7, 102, 2, 2, 608, 88, 3, 2, 2, 2, 609, 610, 7, 121, 2, 2, 610, 611, 7, 107, 2, 2, 611, 612, 7, 118, 2, 2, 612, 613, 7, 106, 2, 2, 613, 614, 7, 34, 2, 2, 614, 615, 7, 106, 2, 2, 615, 616, 7, 103, 2, 2, 616, 617, 7, 99, 2, 2, 617, 618, 7, 102, 2, 2, 618, 619, 7, 103, 2, 2, 619, 620, 7, 116, 2, 2, 620, 621, 7, 117, 2, 2, 621, 90, 3, 2, 2, 2, 622, 623, 7, 121, 2, 2, 623, 624, 7, 107, 2, 2, 624, 625, 7, 118, 2, 2, 625, 626, 7, 106, 2, 2, 626, 627, 7, 34, 2, 2, 627, 628, 7, 114, 2, 2, 628, 629, 7, 99, 2, 2, 629, 630, 7, 116, 2, 2, 630, 631, 7, 99, 2, 2, 631, 632, 7, 111, 2, 2, 632, 633, 7, 117, 2, 2, 633, 92, 3, 2, 2, 2, 634, 635, 7, 121, 2, 2, 635, 636, 7, 107, 2, 2, 636, 637, 7, 118, 2, 2, 637, 638, 7, 106, 2, 2, 638, 639, 7, 34, 2, 2, 639, 640, 7, 100, 2, 2, 640, 641, 7, 113, 2, 2, 641, 642, 7, 102, 2, 2, 642, 643, 7, 123, 2, 2, 643, 644, 7, 34, 2, 2, 644, 645, 7, 118, 2, 2, 645, 646, 7, 123, 2, 2, 646, 647, 7, 114, 2, 2, 647, 648, 7, 103, 2, 2, 648, 94, 3, 2, 2, 2, 649, 650, 7, 125, 2, 2, 650, 651, 7, 34, 2, 2, 651, 652, 7, 114, 2, 2, 652, 653, 7, 99, 2, 2, 653, 654, 7, 116, 2, 2, 654, 655, 7, 118, 2, 2, 655, 96, 3, 2, 2, 2, 656, 657, 7, 118, 2, 2, 657, 658, 7, 123, 2, 2, 658, 659, 7, 114, 2, 2, 659, 660, 7, 103, 2, 2, 660, 661, 7, 34, 2, 2, 661, 662, 7, 99, 2, 2, 662, 663, 7, 117, 2, 2, 663, 98, 3, 2, 2, 2, 664, 665, 7, 103, 2, 2, 665, 666, 7, 122, 2, 2, 666, 667, 7, 114, 2, 2, 667, 668, 7, 113, 2, 2, 668, 669, 7, 116, 2, 2, 669, 670, 7, 118, 2, 2, 670, 671, 7, 69, 2, 2, 671, 672, 7, 117, 2, 2, 672, 673, 7, 120, 2, 2, 673, 100, 3, 2, 2, 2, 674, 675, 7, 103, 2, 2, 675, 676, 7, 122, 2, 2, 676, 677, 7, 103, 2, 2, 677, 678, 7, 101, 2, 2, 678, 679, 7, 119, 2, 2, 679, 680, 7, 118, 2, 2, 680, 681, 7, 107, 2, 2, 681, 682, 7, 113, 2, 2, 682, 683, 7, 112, 2, 2, 683, 684, 7, 85, 2, 2, 684, 685, 7, 113, 2, 2, 685, 686, 7, 119, 2, 2, 686, 687, 7, 116, 2, 2, 687, 688, 7, 101, 2, 2, 688, 689, 7, 103, 2, 2, 689, 102, 3, 2, 2, 2, 690, 691, 7, 118, 2, 2, 691, 692, 7, 99, 2, 2, 692, 693, 7, 116, 2, 2, 693, 694, 7, 105, 2, 2, 694, 695, 7, 103, 2, 2, 695, 696, 7, 118, 2, 2, 696, 697, 7, 78, 2, 2, 697, 698, 7, 113, 2, 2, 698, 699, 7, 101, 2, 2, 699, 700, 7, 99, 2, 2, 700, 701, 7, 118, 2, 2, 701, 702, 7, 107, 2, 2, 702, 703, 7, 113, 2, 2, 703, 704, 7, 112, 2, 2, 704, 104, 3, 2, 2, 2, 705, 706, 7, 107, 2, 2, 706, 707, 7, 111, 2, 2, 707, 708, 7, 114, 2, 2, 708, 709, 7, 113, 2, 2, 709, 710, 7, 116, 2, 2, 710, 711, 7, 118, 2, 2, 711, 712, 7, 69, 2, 2, 712, 713, 7, 117, 2, 2, 713, 714, 7, 120, 2, 2, 714, 715, 7, 86, 2, 2, 715, 716, 7, 113, 2, 2, 716, 717, 7, 70, 2, 2, 717, 718, 7, 68, 2, 2, 718, 106, 3, 2, 2, 2, 719, 720, 7, 118, 2, 2, 720, 721, 7, 99, 2, 2, 721, 722, 7, 116, 2, 2, 722, 723, 7, 105, 2, 2, 723, 724, 7, 103, 2, 2, 724, 725, 7, 118, 2, 2, 725, 108, 3, 2, 2, 2, 726, 727, 7, 100, 2, 2, 727, 728, 7, 99, 2, 2, 728, 729, 7, 118, 2, 2, 729, 730, 7, 101, 2, 2, 730, 731, 7, 106, 2, 2, 731, 110, 3, 2, 2, 2, 732, 733, 7, 103, 2, 2, 733, 734, 7, 122, 2, 2, 734, 735, 7, 118, 2, 2, 735, 736, 7, 116, 2, 2, 736, 737, 7, 99, 2, 2, 737, 738, 7, 101, 2, 2, 738, 739, 7, 118, 2, 2, 739, 740, 7, 86, 2, 2, 740, 741, 7, 67, 2, 2, 741, 742, 7, 84, 2, 2, 742, 112, 3, 2, 2, 2, 743, 744, 7, 102, 2, 2, 744, 745, 7, 103, 2, 2, 745, 746, 7, 117, 2, 2, 746, 747, 7, 118, 2, 2, 747, 748, 7, 107, 2, 2, 748, 749, 7, 112, 2, 2, 749, 750, 7, 99, 2, 2, 750, 751, 7, 118, 2, 2, 751, 752, 7, 107, 2, 2, 752, 753, 7, 113, 2, 2, 753, 754, 7, 112, 2, 2, 754, 114, 3, 2, 2, 2, 755, 756, 7, 101, 2, 2, 756, 757, 7, 116, 2, 2, 757, 758, 7, 103, 2, 2, 758, 759, 7, 99, 2, 2, 759, 760, 7, 118, 2, 2, 760, 761, 7, 103, 2, 2, 761, 762, 7, 86, 2, 2, 762, 763, 7, 67, 2, 2, 763, 764, 7, 84, 2, 2, 764, 116, 3, 2, 2, 2, 765, 766, 7, 103, 2, 2, 766, 767, 7, 122, 2, 2, 767, 768, 7, 118, 2, 2, 768, 769, 7, 103, 2, 2, 769, 770, 7, 112, 2, 2, 770, 771, 7, 117, 2, 2, 771, 772, 7, 107, 2, 2, 772, 773, 7, 113, 2, 2, 773, 774, 7, 112, 2, 2, 774, 118, 3, 2, 2, 2, 775, 776, 7, 101, 2, 2, 776, 777, 7, 116, 2, 2, 777, 778, 7, 103, 2, 2, 778, 779, 7, 99, 2, 2, 779, 780, 7, 118, 2, 2, 780, 781, 7, 103, 2, 2, 781, 782, 7, 70, 2, 2, 782, 783, 7, 107, 2, 2, 783, 784, 7, 116, 2, 2, 784, 785, 7, 103, 2, 2, 785, 786, 7, 101, 2, 2, 786, 787, 7, 118, 2, 2, 787, 788, 7, 113, 2, 2, 788, 789, 7, 116, 2, 2, 789, 790, 7, 123, 2, 2, 790, 120, 3, 2, 2, 2, 791, 792, 7, 101, 2, 2, 792, 793, 7, 116, 2, 2, 793, 794, 7, 103, 2, 2, 794, 795, 7, 99, 2, 2, 795, 796, 7, 118, 2, 2, 796, 797, 7, 103, 2, 2, 797, 798, 7, 72, 2, 2, 798, 799, 7, 107, 2, 2, 799, 800, 7, 110, 2, 2, 800, 801, 7, 103, 2, 2, 801, 122, 3, 2, 2, 2, 802, 803, 7, 110, 2, 2, 803, 804, 7, 113, 2, 2, 804, 805, 7, 101, 2, 2, 805, 806, 7, 99, 2, 2, 806, 807, 7, 118, 2, 2, 807, 808, 7, 107, 2, 2, 808, 809, 7, 113, 2, 2, 809, 810, 7, 112, 2, 2, 810, 124, 3, 2, 2, 2, 811, 812, 7, 104, 2, 2, 812, 813, 7, 107, 2, 2, 813, 814, 7, 110, 2, 2, 814, 815, 7, 103, 2, 2, 815, 816, 7, 80, 2, 2, 816, 817, 7, 99, 2, 2, 817, 818, 7, 111, 2, 2, 818, 819, 7, 103, 2, 2, 819, 126, 3, 2, 2, 2, 820, 821, 7, 102, 2, 2, 821, 822, 7, 103, 2, 2, 822, 823, 7, 110, 2, 2, 823, 824, 7, 103, 2, 2, 824, 825, 7, 118, 2, 2, 825, 826, 7, 103, 2, 2, 826, 827, 7, 72, 2, 2, 827, 828, 7, 107, 2, 2, 828, 829, 7, 110, 2, 2, 829, 830, 7, 103, 2, 2, 830, 831, 7, 70, 2, 2, 831, 832, 7, 107, 2, 2, 832, 833, 7, 116, 2, 2, 833, 834, 7, 103, 2, 2, 834, 835, 7, 101, 2, 2, 835, 836, 7, 118, 2, 2, 836, 837, 7, 113, 2, 2, 837, 838, 7, 116, 2, 2, 838, 839, 7, 123, 2, 2, 839, 128, 3, 2, 2, 2, 840, 841, 7, 118, 2, 2, 841, 842, 7, 116, 2, 2, 842, 843, 7, 99, 2, 2, 843, 844, 7, 112, 2, 2, 844, 845, 7, 117, 2, 2, 845, 846, 7, 104, 2, 2, 846, 847, 7, 103, 2, 2, 847, 848, 7, 116, 2, 2, 848, 849, 7, 72, 2, 2, 849, 850, 7, 107, 2, 2, 850, 851, 7, 110, 2, 2, 851, 852, 7, 103, 2, 2, 852, 853, 7, 70, 2, 2, 853, 854, 7, 107, 2, 2, 854, 855, 7, 116, 2, 2, 855, 856, 7, 103, 2, 2, 856, 857, 7, 101, 2, 2, 857, 858, 7, 118, 2, 2, 858, 859, 7, 113, 2, 2, 859, 860, 7, 116, 2, 2, 860, 861, 7, 123, 2, 2, 861, 130, 3, 2, 2, 2, 862, 863, 7, 113, 2, 2, 863, 864, 7, 114, 2, 2, 864, 865, 7, 103, 2, 2, 865, 866, 7, 116, 2, 2, 866, 867, 7, 99, 2, 2, 867, 868, 7, 118, 2, 2, 868, 869, 7, 107, 2, 2, 869, 870, 7, 113, 2, 2, 870, 871, 7, 112, 2, 2, 871, 132, 3, 2, 2, 2, 872, 873, 7, 114, 2, 2, 873, 874, 7, 101, 2, 2, 874, 875, 7, 111, 2, 2, 875, 134, 3, 2, 2, 2, 876, 877, 7, 113, 2, 2, 877, 878, 7, 112, 2, 2, 878, 879, 7, 47, 2, 2, 879, 880, 7, 116, 2, 2, 880, 881, 7, 103, 2, 2, 881, 882, 7, 117, 2, 2, 882, 883, 7, 113, 2, 2, 883, 884, 7, 119, 2, 2, 884, 885, 7, 116, 2, 2, 885, 886, 7, 101, 2, 2, 886, 887, 7, 103, 2, 2, 887, 136, 3, 2, 2, 2, 888, 889, 7, 114, 2, 2, 889, 890, 7, 116, 2, 2, 890, 891, 7, 113, 2, 2, 891, 892, 7, 102, 2, 2, 892, 893, 7, 119, 2, 2, 893, 894, 7, 101, 2, 2, 894, 895, 7, 103, 2, 2, 895, 138, 3, 2, 2, 2, 896, 897, 7, 101, 2, 2, 897, 898, 7, 113, 2, 2, 898, 899, 7, 112, 2, 2, 899, 900, 7, 117, 2, 2, 900, 901, 7, 119, 2, 2, 901, 902, 7, 111, 2, 2, 902, 903, 7, 103, 2, 2, 903, 140, 3, 2, 2, 2, 904, 905, 7, 114, 2, 2, 905, 906, 7, 116, 2, 2, 906, 907, 7, 113, 2, 2, 907, 908, 7, 102, 2, 2, 908, 909, 7, 119, 2, 2, 909, 910, 7, 101, 2, 2, 910, 911, 7, 103, 2, 2, 911, 912, 7, 116, 2, 2, 912, 142, 3, 2, 2, 2, 913, 914, 7, 114, 2, 2, 914, 915, 7, 119, 2, 2, 915, 916, 7, 117, 2, 2, 916, 917, 7, 106, 2, 2, 917, 918, 7, 47, 2, 2, 918, 919, 7, 116, 2, 2, 919, 920, 7, 103, 2, 2, 920, 921, 7, 117, 2, 2, 921, 922, 7, 119, 2, 2, 922, 923, 7, 110, 2, 2, 923, 924, 7, 118, 2, 2, 924, 925, 7, 47, 2, 2, 925, 926, 7, 99, 2, 2, 926, 927, 7, 118, 2, 2, 927, 144, 3, 2, 2, 2, 928, 929, 7, 103, 2, 2, 929, 930, 7, 122, 2, 2, 930, 931, 7, 103, 2, 2, 931, 932, 7, 101, 2, 2, 932, 933, 7, 119, 2, 2, 933, 934, 7, 118, 2, 2, 934, 935, 7, 103, 2, 2, 935, 146, 3, 2, 2, 2, 936, 937, 7, 101, 2, 2, 937, 938, 7, 113, 2, 2, 938, 939, 7, 112, 2, 2, 939, 940, 7, 117, 2, 2, 940, 941, 7, 119, 2, 2, 941, 942, 7, 111, 2, 2, 942, 943, 7, 103, 2, 2, 943, 944, 7, 116, 2, 2, 944, 148, 3, 2, 2, 2, 945, 946, 7, 114, 2, 2, 946, 947, 7, 113, 2, 2, 947, 948, 7, 114, 2, 2, 948, 949, 7, 47, 2, 2, 949, 950, 7, 103, 2, 2, 950, 951, 7, 120, 2, 2, 951, 952, 7, 103, 2, 2, 952, 953, 7, 112, 2, 2, 953, 954, 7, 118, 2, 2, 954, 955, 7, 47, 2, 2, 955, 956, 7, 104, 2, 2, 956, 957, 7, 116, 2, 2, 957, 958, 7, 113, 2, 2, 958, 959, 7, 111, 2, 2, 959, 150, 3, 2, 2, 2, 960, 961, 7, 114, 2, 2, 961, 962, 7, 113, 2, 2, 962, 963, 7, 114, 2, 2, 963, 964, 7, 47, 2, 2, 964, 965, 7, 116, 2, 2, 965, 966, 7, 103, 2, 2, 966, 967, 7, 117, 2, 2, 967, 968, 7, 119, 2, 2, 968, 969, 7, 110, 2, 2, 969, 970, 7, 118, 2, 2, 970, 971, 7, 47, 2, 2, 971, 972, 7, 104, 2, 2, 972, 973, 7, 116, 2, 2, 973, 974, 7, 113, 2, 2, 974, 975, 7, 111, 2, 2, 975, 152, 3, 2, 2, 2, 976, 977, 7, 110, 2, 2, 977, 978, 7, 107, 2, 2, 978, 979, 7, 111, 2, 2, 979, 980, 7, 107, 2, 2, 980, 981, 7, 118, 2, 2, 981, 154, 3, 2, 2, 2, 982, 983, 7, 113, 2, 2, 983, 984, 7, 112, 2, 2, 984, 985, 7, 47, 2, 2, 985, 986, 7, 117, 2, 2, 986, 987, 7, 118, 2, 2, 987, 988, 7, 99, 2, 2, 988, 989, 7, 112, 2, 2, 989, 990, 7, 102, 2, 2, 990, 991, 7, 99, 2, 2, 991, 992, 7, 110, 2, 2, 992, 993, 7, 113, 2, 2, 993, 994, 7, 112, 2, 2, 994, 995, 7, 103, 2, 2, 995, 156, 3, 2, 2, 2, 996, 997, 7, 114, 2, 2, 997, 998, 7, 119, 2, 2, 998, 999, 7, 117, 2, 2, 999, 1000, 7, 106, 2, 2, 1000, 1001, 7, 47, 2, 2, 1001, 1002, 7, 108, 2, 2, 1002, 1003, 7, 117, 2, 2, 1003, 1004, 7, 113, 2, 2, 1004, 1005, 7, 112, 2, 2, 1005, 1006, 7, 47, 2, 2, 1006, 1007, 7, 107, 2, 2, 1007, 1008, 7, 112, 2, 2, 1008, 1009, 7, 118, 2, 2, 1009, 1010, 7, 113, 2, 2, 1010, 1011, 7, 47, 2, 2, 1011, 1012, 7, 101, 2, 2, 1012, 1013, 7, 113, 2, 2, 1013, 1014, 7, 112, 2, 2, 1014, 1015, 7, 118, 2, 2, 1015, 1016, 7, 103, 2, 2, 1016, 1017, 7, 122, 2, 2, 1017, 1018, 7, 118, 2, 2, 1018, 158, 3, 2, 2, 2, 1019, 1020, 7, 121, 2, 2, 1020, 1021, 7, 107, 2, 2, 1021, 1022, 7, 118, 2, 2, 1022, 1023, 7, 106, 2, 2, 1023, 1024, 7, 47, 2, 2, 1024, 1025, 7, 109, 2, 2, 1025, 1026, 7, 103, 2, 2, 1026, 1027, 7, 123, 2, 2, 1027, 160, 3, 2, 2, 2, 1028, 1029, 7, 119, 2, 2, 1029, 1030, 7, 117, 2, 2, 1030, 1031, 7, 107, 2, 2, 1031, 1032, 7, 112, 2, 2, 1032, 1033, 7, 105, 2, 2, 1033, 1034, 7, 47, 2, 2, 1034, 1035, 7, 120, 2, 2, 1035, 1036, 7, 99, 2, 2, 1036, 1037, 7, 110, 2, 2, 1037, 1038, 7, 119, 2, 2, 1038, 1039, 7, 103, 2, 2, 1039, 162, 3, 2, 2, 2, 1040, 1041, 7, 111, 2, 2, 1041, 1042, 7, 99, 2, 2, 1042, 1043, 7, 114, 2, 2, 1043, 1044, 7, 47, 2, 2, 1044, 1045, 7, 108, 2, 2, 1045, 1046, 7, 117, 2, 2, 1046, 1047, 7, 113, 2, 2, 1047, 1048, 7, 112, 2, 2, 1048, 1049, 7, 47, 2, 2, 1049, 1050, 7, 107, 2, 2, 1050, 1051, 7, 112, 2, 2, 1051, 1052, 7, 118, 2, 2, 1052, 1053, 7, 113, 2, 2, 1053, 1054, 7, 47, 2, 2, 1054, 1055, 7, 101, 2, 2, 1055, 1056, 7, 113, 2, 2, 1056, 1057, 7, 112, 2, 2, 1057, 1058, 7, 118, 2, 2, 1058, 1059, 7, 103, 2, 2, 1059, 1060, 7, 122, 2, 2, 1060, 1061, 7, 118, 2, 2, 1061, 164, 3, 2, 2, 2, 1062, 1063, 7, 107, 2, 2, 1063, 1064, 7, 104, 2, 2, 1064, 166, 3, 2, 2, 2, 1065, 1066, 7, 110, 2, 2, 1066, 1067, 7, 113, 2, 2, 1067, 1068, 7, 105, 2, 2, 1068, 168, 3, 2, 2, 2, 1069, 1070, 7, 110, 2, 2, 1070, 1071, 7, 103, 2, 2, 1071, 1072, 7, 120, 2, 2, 1072, 1073, 7, 103, 2, 2, 1073, 1074, 7, 110, 2, 2, 1074, 170, 3, 2, 2, 2, 1075, 1076, 7, 111, 2, 2, 1076, 1077, 7, 103, 2, 2, 1077, 1078, 7, 117, 2, 2, 1078, 1079, 7, 117, 2, 2, 1079, 1080, 7, 99, 2, 2, 1080, 1081, 7, 105, 2, 2, 1081, 1082, 7, 103, 2, 2, 1082, 172, 3, 2, 2, 2, 1083, 1084, 7, 116, 2, 2, 1084, 1085, 7, 99, 2, 2, 1085, 1086, 7, 107, 2, 2, 1086, 1087, 7, 117, 2, 2, 1087, 1088, 7, 103, 2, 2, 1088, 1089, 7, 34, 2, 2, 1089, 1090, 7, 103, 2, 2, 1090, 1091, 7, 122, 2, 2, 1091, 1092, 7, 101, 2, 2, 1092, 1093, 7, 103, 2, 2, 1093, 1094, 7, 114, 2, 2, 1094, 1095, 7, 118, 2, 2, 1095, 1096, 7, 107, 2, 2, 1096, 1097, 7, 113, 2, 2, 1097, 1098, 7, 112, 2, 2, 1098, 174, 3, 2, 2, 2, 1099, 1100, 7, 46, 2, 2, 1100, 176, 3, 2, 2, 2, 1101, 1102, 7, 60, 2, 2, 1102, 178, 3, 2, 2, 2, 1103, 1104, 7, 93, 2, 2, 1104, 180, 3, 2, 2, 2, 1105, 1106, 7, 95, 2, 2, 1106, 182, 3, 2, 2, 2, 1107, 1108, 7, 118, 2, 2, 1108, 1109, 7, 116, 2, 2, 1109, 1110, 7, 119, 2, 2, 1110, 1111, 7, 103, 2, 2, 1111, 184, 3, 2, 2, 2, 1112, 1113, 7, 104, 2, 2, 1113, 1114, 7, 99, 2, 2, 1114, 1115, 7, 110, 2, 2, 1115, 1116, 7, 117, 2, 2, 1116, 1117, 7, 103, 2, 2, 1117, 186, 3, 2, 2, 2, 1118, 1119, 7, 112, 2, 2, 1119, 1120, 7, 119, 2, 2, 1120, 1121, 7, 110, 2, 2, 1121, 1122, 7, 110, 2, 2, 1122, 188, 3, 2, 2, 2, 1123, 1124, 9, 2, 2, 2, 1124, 190, 3, 2, 2, 2, 1125, 1126, 9, 3, 2, 2, 1126, 192, 3, 2, 2, 2, 1127, 1128, 5, 189, 95, 2, 1128, 1129, 5, 189, 95, 2, 1129, 194, 3, 2, 2, 2, 1130, 1131, 9, 4, 2, 2, 1131, 196, 3, 2, 2, 2, 1132, 1134, 5, 199, 100, 2, 1133, 1132, 3, 2, 2, 2, 1134, 1135, 3, 2, 2, 2, 1135, 1133, 3, 2, 2, 2, 1135, 1136, 3, 2, 2, 2, 1136, 198, 3, 2, 2, 2, 1137, 1138, 10, 5, 2, 2, 1138, 200, 3, 2, 2, 2, 1139, 1141, 5, 191, 96, 2, 1140, 1139, 3, 2, 2, 2, 1141, 1142, 3, 2, 2, 2, 1142, 1140, 3, 2, 2, 2, 1142, 1143, 3, 2, 2, 2, 1143, 202, 3, 2, 2, 2, 1144, 1146, 7, 36, 2, 2, 1145, 1147, 5, 197, 99, 2, 1146, 1145, 3, 2, 2, 2, 1146, 1147, 3, 2, 2, 2, 1147, 1148, 3, 2, 2, 2, 1148, 1149, 7, 36, 2, 2, 1149, 204, 3, 2, 2, 2, 1150, 1152, 7, 15, 2, 2, 1151, 1150, 3, 2, 2, 2, 1151, 1152, 3, 2, 2, 2, 1152, 1153, 3, 2, 2, 2, 1153, 1156, 7, 12, 2, 2, 1154, 1156, 7, 15, 2, 2, 1155, 1151, 3, 2, 2, 2, 1155, 1154, 3, 2, 2, 2, 1156, 1157, 3, 2, 2, 2, 1157, 1158, 8, 103, 2, 2, 1158, 206, 3, 2, 2, 2, 1159, 1171, 9, 6, 2, 2, 1160, 1161, 7, 63, 2, 2, 1161, 1171, 7, 63, 2, 2, 1162, 1163, 7, 101, 2, 2, 1163, 1164, 7, 113, 2, 2, 1164, 1165, 7, 112, 2, 2, 1165, 1166, 7, 118, 2, 2, 1166, 1167, 7, 99, 2, 2, 1167, 1168, 7, 107, 2, 2, 1168, 1169, 7, 112, 2, 2, 1169, 1171, 7, 117, 2, 2, 1170, 1159, 3, 2, 2, 2, 1170, 1160, 3, 2, 2, 2, 1170, 1162, 3, 2, 2, 2, 1171, 208, 3, 2, 2, 2, 1172, 1174, 9, 7, 2, 2, 1173, 1172, 3, 2, 2, 2, 1174, 1175, 3, 2, 2, 2, 1175, 1173, 3, 2, 2, 2, 1175, 1176, 3, 2, 2, 2, 1176, 1177, 3, 2, 2, 2, 1177, 1178, 8, 105, 2, 2, 1178, 210, 3, 2, 2, 2, 1179, 1180, 7, 49, 2, 2, 1180, 1181, 7, 44, 2, 2, 1181, 1185, 3, 2, 2, 2, 1182, 1184, 11, 2, 2, 2, 1183, 1182, 3, 2, 2, 2, 1184, 1187, 3, 2, 2, 2, 1185, 1186, 3, 2, 2, 2, 1185, 1183, 3, 2, 2, 2, 1186, 1188, 3, 2, 2, 2, 1187, 1185, 3, 2, 2, 2, 1188, 1189, 7, 44, 2, 2, 1189, 1190, 7, 49, 2, 2, 1190, 1191, 3, 2, 2, 2, 1191, 1192, 8, 106, 2, 2, 1192, 212, 3, 2, 2, 2, 1193, 1194, 7, 49, 2, 2, 1194, 1195, 7, 49, 2, 2, 1195, 1199, 3, 2, 2, 2, 1196, 1198, 10, 8, 2, 2, 1197, 1196, 3, 2, 2, 2, 1198, 1201, 3, 2, 2, 2, 1199, 1197, 3, 2, 2, 2, 1199, 1200, 3, 2, 2, 2, 1200, 1202, 3, 2, 2, 2, 1201, 1199, 3, 2, 2, 2, 1202, 1203, 8, 107, 2, 2, 1203, 214, 3, 2, 2, 2, 1204, 1207, 7, 94, 2, 2, 1205, 1208, 9, 9, 2, 2, 1206, 1208, 5, 217, 109, 2, 1207, 1205, 3, 2, 2, 2, 1207, 1206, 3, 2, 2, 2, 1208, 216, 3, 2, 2, 2, 1209, 1210, 7, 119, 2, 2, 1210, 1211, 5, 219, 110, 2, 1211, 1212, 5, 219, 110, 2, 1212, 1213, 5, 219, 110, 2, 1213, 1214, 5, 219, 110, 2, 1214, 218, 3, 2, 2, 2, 1215, 1216, 9, 10, 2, 2, 1216, 220, 3, 2, 2, 2, 1217, 1218, 10, 11, 2, 2, 1218, 222, 3, 2, 2, 2, 1219, 1221, 7, 47, 2, 2, 1220, 1219, 3, 2, 2, 2, 1220, 1221, 3, 2, 2, 2, 1221, 1222, 3, 2, 2, 2, 1222, 1229, 5, 225, 113, 2, 1223, 1225, 7, 48, 2, 2, 1224, 1226, 9, 2, 2, 2, 1225, 1224, 3, 2, 2, 2, 1226, 1227, 3, 2, 2, 2, 1227, 1225, 3, 2, 2, 2, 1227, 1228, 3, 2, 2, 2, 1228, 1230, 3, 2, 2, 2, 1229, 1223, 3, 2, 2, 2, 1229, 1230, 3, 2, 2, 2, 1230, 1232, 3, 2, 2, 2, 1231, 1233, 5, 227, 114, 2, 1232, 1231, 3, 2, 2, 2, 1232, 1233, 3, 2, 2, 2, 1233, 224, 3, 2, 2, 2, 1234, 1243, 7, 50, 2, 2, 1235, 1239, 9, 3, 2, 2, 1236, 1238, 9, 2, 2, 2, 1237, 1236, 3, 2, 2, 2, 1238, 1241, 3, 2, 2, 2, 1239, 1237, 3, 2, 2, 2, 1239, 1240, 3, 2, 2, 2, 1240, 1243, 3, 2, 2, 2, 1241, 1239, 3, 2, 2, 2, 1242, 1234, 3, 2, 2, 2, 1242, 1235, 3, 2, 2, 2, 1243, 226, 3, 2, 2, 2, 1244, 1246, 9, 12, 2, 2, 1245, 1247, 9, 13, 2, 2, 1246, 1245, 3, 2, 2, 2, 1246, 1247, 3, 2, 2, 2, 1247, 1248, 3, 2, 2, 2, 1248, 1249, 5, 225, 113, 2, 1249, 228, 3, 2, 2, 2, 20, 2, 1135, 1142, 1146, 1151, 1155, 1170, 1175, 1185, 1199, 1207, 1220, 1227, 1229, 1232, 1239, 1242, 1246, 3, 2, 3, 2] \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenLexer.java b/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenLexer.java deleted file mode 100644 index 646b3c4d..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenLexer.java +++ /dev/null @@ -1,577 +0,0 @@ -// Generated from Raven.g4 by ANTLR 4.9.3 - -package in.handyman.raven.compiler; - -import org.antlr.v4.runtime.Lexer; -import org.antlr.v4.runtime.CharStream; -import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.TokenStream; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.misc.*; - -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) -public class RavenLexer extends Lexer { - static { RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION); } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, - T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, - T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, - T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, - T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, - T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45, - T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, T__50=51, T__51=52, - T__52=53, T__53=54, T__54=55, T__55=56, T__56=57, T__57=58, T__58=59, - T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66, - T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73, - T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, T__78=79, T__79=80, - T__80=81, T__81=82, T__82=83, T__83=84, T__84=85, T__85=86, T__86=87, - T__87=88, T__88=89, T__89=90, T__90=91, T__91=92, T__92=93, NON_ZERO_DIGIT=94, - STRING=95, CRLF=96, Operator=97, WS=98, COMMENT=99, LINE_COMMENT=100, - NUMBER=101; - public static String[] channelNames = { - "DEFAULT_TOKEN_CHANNEL", "HIDDEN" - }; - - public static String[] modeNames = { - "DEFAULT_MODE" - }; - - private static String[] makeRuleNames() { - return new String[] { - "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", - "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", - "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24", - "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32", - "T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40", - "T__41", "T__42", "T__43", "T__44", "T__45", "T__46", "T__47", "T__48", - "T__49", "T__50", "T__51", "T__52", "T__53", "T__54", "T__55", "T__56", - "T__57", "T__58", "T__59", "T__60", "T__61", "T__62", "T__63", "T__64", - "T__65", "T__66", "T__67", "T__68", "T__69", "T__70", "T__71", "T__72", - "T__73", "T__74", "T__75", "T__76", "T__77", "T__78", "T__79", "T__80", - "T__81", "T__82", "T__83", "T__84", "T__85", "T__86", "T__87", "T__88", - "T__89", "T__90", "T__91", "T__92", "DIGIT", "NON_Z_DIGIT", "TWODIGIT", - "LETTER", "StringCharacters", "StringCharacter", "NON_ZERO_DIGIT", "STRING", - "CRLF", "Operator", "WS", "COMMENT", "LINE_COMMENT", "ESC", "UNICODE", - "HEX", "SAFECODEPOINT", "NUMBER", "INT", "EXP" - }; - } - public static final String[] ruleNames = makeRuleNames(); - - private static String[] makeLiteralNames() { - return new String[] { - null, "'process'", "'{'", "'}'", "'try'", "'finally'", "'catch'", "'multitude'", - "'as'", "'on'", "'using'", "'on-condition'", "'fielding'", "'copydata'", - "'from'", "'to'", "'with-fetch-batch-size'", "'with-write-batch-size'", - "'transform'", "'do-format'", "'loadcsv'", "'pid'", "'with'", "'by-batch'", - "'abort'", "'callprocess'", "'with-target'", "'from-file'", "'for-every'", - "'on-parallel-fielding'", "'forkprocess'", "'watermark'", "'spawn'", - "'dogleg'", "'use-parent-context'", "'start-process'", "'with-file'", - "'assign'", "'source'", "'dropfile'", "'in-path'", "'restapi'", "'url'", - "'method'", "'with headers'", "'with params'", "'with body type'", "'{ part'", - "'type as'", "'exportCsv'", "'executionSource'", "'targetLocation'", - "'importCsvToDB'", "'target'", "'batch'", "'extractTAR'", "'destination'", - "'createTAR'", "'extension'", "'createDirectory'", "'createFile'", "'location'", - "'fileName'", "'deleteFileDirectory'", "'transferFileDirectory'", "'operation'", - "'pcm'", "'on-resource'", "'produce'", "'consume'", "'producer'", "'push-result-at'", - "'execute'", "'consumer'", "'pop-event-from'", "'pop-result-from'", "'limit'", - "'on-standalone'", "'push-json-into-context'", "'with-key'", "'using-value'", - "'map-json-into-context'", "'if'", "'log'", "'level'", "'message'", "'raise exception'", - "','", "':'", "'['", "']'", "'true'", "'false'", "'null'" - }; - } - private static final String[] _LITERAL_NAMES = makeLiteralNames(); - private static String[] makeSymbolicNames() { - return new String[] { - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, "NON_ZERO_DIGIT", - "STRING", "CRLF", "Operator", "WS", "COMMENT", "LINE_COMMENT", "NUMBER" - }; - } - private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - - public RavenLexer(CharStream input) { - super(input); - _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); - } - - @Override - public String getGrammarFileName() { return "Raven.g4"; } - - @Override - public String[] getRuleNames() { return ruleNames; } - - @Override - public String getSerializedATN() { return _serializedATN; } - - @Override - public String[] getChannelNames() { return channelNames; } - - @Override - public String[] getModeNames() { return modeNames; } - - @Override - public ATN getATN() { return _ATN; } - - public static final String _serializedATN = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2g\u04e2\b\1\4\2\t"+ - "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ - "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ - "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ - "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ - "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ - ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ - "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ - "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+ - "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+ - "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+ - "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+ - "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\3\2\3\2\3\2\3\2\3\2\3\2\3"+ - "\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6"+ - "\3\7\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\t\3"+ - "\t\3\t\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3"+ - "\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16"+ - "\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\20"+ - "\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21"+ - "\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22"+ - "\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22"+ - "\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ - "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25"+ - "\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\30"+ - "\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\31"+ - "\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\33\3\33"+ - "\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34"+ - "\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35"+ - "\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36"+ - "\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37"+ - "\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3!\3"+ - "!\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#\3#\3#\3"+ - "#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3"+ - "$\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3"+ - "\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)\3)\3*\3*\3"+ - "*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3-\3"+ - "-\3-\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3"+ - "/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\61"+ - "\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\62\3\62\3\62\3\62\3\62\3\62\3\62"+ - "\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63"+ - "\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64"+ - "\3\64\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\65"+ - "\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\67"+ - "\3\67\3\67\3\67\3\67\3\67\38\38\38\38\38\38\38\38\38\38\38\39\39\39\3"+ - "9\39\39\39\39\39\39\39\39\3:\3:\3:\3:\3:\3:\3:\3:\3:\3:\3;\3;\3;\3;\3"+ - ";\3;\3;\3;\3;\3;\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3=\3"+ - "=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3>\3>\3>\3>\3>\3>\3>\3>\3>\3?\3?\3?\3?\3"+ - "?\3?\3?\3?\3?\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3"+ - "@\3@\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3"+ - "A\3B\3B\3B\3B\3B\3B\3B\3B\3B\3B\3C\3C\3C\3C\3D\3D\3D\3D\3D\3D\3D\3D\3"+ - "D\3D\3D\3D\3E\3E\3E\3E\3E\3E\3E\3E\3F\3F\3F\3F\3F\3F\3F\3F\3G\3G\3G\3"+ - "G\3G\3G\3G\3G\3G\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3I\3I\3"+ - "I\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J\3J\3J\3J\3J\3K\3K\3K\3K\3K\3K\3K\3K\3"+ - "K\3K\3K\3K\3K\3K\3K\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3"+ - "M\3M\3M\3M\3M\3M\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3O\3O\3O\3"+ - "O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3P\3P\3P\3"+ - "P\3P\3P\3P\3P\3P\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3"+ - "R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3S\3S\3S\3T\3T\3T\3"+ - "T\3U\3U\3U\3U\3U\3U\3V\3V\3V\3V\3V\3V\3V\3V\3W\3W\3W\3W\3W\3W\3W\3W\3"+ - "W\3W\3W\3W\3W\3W\3W\3W\3X\3X\3Y\3Y\3Z\3Z\3[\3[\3\\\3\\\3\\\3\\\3\\\3]"+ - "\3]\3]\3]\3]\3]\3^\3^\3^\3^\3^\3_\3_\3`\3`\3a\3a\3a\3b\3b\3c\6c\u046e"+ - "\nc\rc\16c\u046f\3d\3d\3e\6e\u0475\ne\re\16e\u0476\3f\3f\5f\u047b\nf\3"+ - "f\3f\3g\5g\u0480\ng\3g\3g\5g\u0484\ng\3g\3g\3h\3h\3h\3h\3h\3h\3h\3h\3"+ - "h\3h\3h\5h\u0493\nh\3i\6i\u0496\ni\ri\16i\u0497\3i\3i\3j\3j\3j\3j\7j\u04a0"+ - "\nj\fj\16j\u04a3\13j\3j\3j\3j\3j\3j\3k\3k\3k\3k\7k\u04ae\nk\fk\16k\u04b1"+ - "\13k\3k\3k\3l\3l\3l\5l\u04b8\nl\3m\3m\3m\3m\3m\3m\3n\3n\3o\3o\3p\5p\u04c5"+ - "\np\3p\3p\3p\6p\u04ca\np\rp\16p\u04cb\5p\u04ce\np\3p\5p\u04d1\np\3q\3"+ - "q\3q\7q\u04d6\nq\fq\16q\u04d9\13q\5q\u04db\nq\3r\3r\5r\u04df\nr\3r\3r"+ - "\3\u04a1\2s\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33"+ - "\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67"+ - "\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\64g\65"+ - "i\66k\67m8o9q:s;u{?}@\177A\u0081B\u0083C\u0085D\u0087E\u0089F\u008b"+ - "G\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009dP\u009f"+ - "Q\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1Z\u00b3"+ - "[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd\2\u00bf\2\u00c1\2\u00c3\2\u00c5\2"+ - "\u00c7\2\u00c9`\u00cba\u00cdb\u00cfc\u00d1d\u00d3e\u00d5f\u00d7\2\u00d9"+ - "\2\u00db\2\u00dd\2\u00dfg\u00e1\2\u00e3\2\3\2\16\3\2\62;\3\2\63;\4\2C"+ - "\\c|\4\2$$^^\4\2>>@@\5\2\13\f\16\17\"\"\4\2\f\f\17\17\n\2$$\61\61^^dd"+ - "hhppttvv\5\2\62;CHch\5\2\2!$$^^\4\2GGgg\4\2--//\2\u04e7\2\3\3\2\2\2\2"+ - "\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2"+ - "\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2"+ - "\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2"+ - "\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2"+ - "\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2"+ - "\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2"+ - "K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3"+ - "\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2"+ - "\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2"+ - "q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3"+ - "\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2\u0085\3\2\2\2\2"+ - "\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2\u008d\3\2\2\2\2\u008f"+ - "\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095\3\2\2\2\2\u0097\3\2\2"+ - "\2\2\u0099\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2\2\2\2\u00a1"+ - "\3\2\2\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9\3\2\2"+ - "\2\2\u00ab\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b1\3\2\2\2\2\u00b3"+ - "\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb\3\2\2"+ - "\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2\2\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1"+ - "\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5\3\2\2\2\2\u00df\3\2\2\2\3\u00e5\3\2\2"+ - "\2\5\u00ed\3\2\2\2\7\u00ef\3\2\2\2\t\u00f1\3\2\2\2\13\u00f5\3\2\2\2\r"+ - "\u00fd\3\2\2\2\17\u0103\3\2\2\2\21\u010d\3\2\2\2\23\u0110\3\2\2\2\25\u0113"+ - "\3\2\2\2\27\u0119\3\2\2\2\31\u0126\3\2\2\2\33\u012f\3\2\2\2\35\u0138\3"+ - "\2\2\2\37\u013d\3\2\2\2!\u0140\3\2\2\2#\u0156\3\2\2\2%\u016c\3\2\2\2\'"+ - "\u0176\3\2\2\2)\u0180\3\2\2\2+\u0188\3\2\2\2-\u018c\3\2\2\2/\u0191\3\2"+ - "\2\2\61\u019a\3\2\2\2\63\u01a0\3\2\2\2\65\u01ac\3\2\2\2\67\u01b8\3\2\2"+ - "\29\u01c2\3\2\2\2;\u01cc\3\2\2\2=\u01e1\3\2\2\2?\u01ed\3\2\2\2A\u01f7"+ - "\3\2\2\2C\u01fd\3\2\2\2E\u0204\3\2\2\2G\u0217\3\2\2\2I\u0225\3\2\2\2K"+ - "\u022f\3\2\2\2M\u0236\3\2\2\2O\u023d\3\2\2\2Q\u0246\3\2\2\2S\u024e\3\2"+ - "\2\2U\u0256\3\2\2\2W\u025a\3\2\2\2Y\u0261\3\2\2\2[\u026e\3\2\2\2]\u027a"+ - "\3\2\2\2_\u0289\3\2\2\2a\u0290\3\2\2\2c\u0298\3\2\2\2e\u02a2\3\2\2\2g"+ - "\u02b2\3\2\2\2i\u02c1\3\2\2\2k\u02cf\3\2\2\2m\u02d6\3\2\2\2o\u02dc\3\2"+ - "\2\2q\u02e7\3\2\2\2s\u02f3\3\2\2\2u\u02fd\3\2\2\2w\u0307\3\2\2\2y\u0317"+ - "\3\2\2\2{\u0322\3\2\2\2}\u032b\3\2\2\2\177\u0334\3\2\2\2\u0081\u0348\3"+ - "\2\2\2\u0083\u035e\3\2\2\2\u0085\u0368\3\2\2\2\u0087\u036c\3\2\2\2\u0089"+ - "\u0378\3\2\2\2\u008b\u0380\3\2\2\2\u008d\u0388\3\2\2\2\u008f\u0391\3\2"+ - "\2\2\u0091\u03a0\3\2\2\2\u0093\u03a8\3\2\2\2\u0095\u03b1\3\2\2\2\u0097"+ - "\u03c0\3\2\2\2\u0099\u03d0\3\2\2\2\u009b\u03d6\3\2\2\2\u009d\u03e4\3\2"+ - "\2\2\u009f\u03fb\3\2\2\2\u00a1\u0404\3\2\2\2\u00a3\u0410\3\2\2\2\u00a5"+ - "\u0426\3\2\2\2\u00a7\u0429\3\2\2\2\u00a9\u042d\3\2\2\2\u00ab\u0433\3\2"+ - "\2\2\u00ad\u043b\3\2\2\2\u00af\u044b\3\2\2\2\u00b1\u044d\3\2\2\2\u00b3"+ - "\u044f\3\2\2\2\u00b5\u0451\3\2\2\2\u00b7\u0453\3\2\2\2\u00b9\u0458\3\2"+ - "\2\2\u00bb\u045e\3\2\2\2\u00bd\u0463\3\2\2\2\u00bf\u0465\3\2\2\2\u00c1"+ - "\u0467\3\2\2\2\u00c3\u046a\3\2\2\2\u00c5\u046d\3\2\2\2\u00c7\u0471\3\2"+ - "\2\2\u00c9\u0474\3\2\2\2\u00cb\u0478\3\2\2\2\u00cd\u0483\3\2\2\2\u00cf"+ - "\u0492\3\2\2\2\u00d1\u0495\3\2\2\2\u00d3\u049b\3\2\2\2\u00d5\u04a9\3\2"+ - "\2\2\u00d7\u04b4\3\2\2\2\u00d9\u04b9\3\2\2\2\u00db\u04bf\3\2\2\2\u00dd"+ - "\u04c1\3\2\2\2\u00df\u04c4\3\2\2\2\u00e1\u04da\3\2\2\2\u00e3\u04dc\3\2"+ - "\2\2\u00e5\u00e6\7r\2\2\u00e6\u00e7\7t\2\2\u00e7\u00e8\7q\2\2\u00e8\u00e9"+ - "\7e\2\2\u00e9\u00ea\7g\2\2\u00ea\u00eb\7u\2\2\u00eb\u00ec\7u\2\2\u00ec"+ - "\4\3\2\2\2\u00ed\u00ee\7}\2\2\u00ee\6\3\2\2\2\u00ef\u00f0\7\177\2\2\u00f0"+ - "\b\3\2\2\2\u00f1\u00f2\7v\2\2\u00f2\u00f3\7t\2\2\u00f3\u00f4\7{\2\2\u00f4"+ - "\n\3\2\2\2\u00f5\u00f6\7h\2\2\u00f6\u00f7\7k\2\2\u00f7\u00f8\7p\2\2\u00f8"+ - "\u00f9\7c\2\2\u00f9\u00fa\7n\2\2\u00fa\u00fb\7n\2\2\u00fb\u00fc\7{\2\2"+ - "\u00fc\f\3\2\2\2\u00fd\u00fe\7e\2\2\u00fe\u00ff\7c\2\2\u00ff\u0100\7v"+ - "\2\2\u0100\u0101\7e\2\2\u0101\u0102\7j\2\2\u0102\16\3\2\2\2\u0103\u0104"+ - "\7o\2\2\u0104\u0105\7w\2\2\u0105\u0106\7n\2\2\u0106\u0107\7v\2\2\u0107"+ - "\u0108\7k\2\2\u0108\u0109\7v\2\2\u0109\u010a\7w\2\2\u010a\u010b\7f\2\2"+ - "\u010b\u010c\7g\2\2\u010c\20\3\2\2\2\u010d\u010e\7c\2\2\u010e\u010f\7"+ - "u\2\2\u010f\22\3\2\2\2\u0110\u0111\7q\2\2\u0111\u0112\7p\2\2\u0112\24"+ - "\3\2\2\2\u0113\u0114\7w\2\2\u0114\u0115\7u\2\2\u0115\u0116\7k\2\2\u0116"+ - "\u0117\7p\2\2\u0117\u0118\7i\2\2\u0118\26\3\2\2\2\u0119\u011a\7q\2\2\u011a"+ - "\u011b\7p\2\2\u011b\u011c\7/\2\2\u011c\u011d\7e\2\2\u011d\u011e\7q\2\2"+ - "\u011e\u011f\7p\2\2\u011f\u0120\7f\2\2\u0120\u0121\7k\2\2\u0121\u0122"+ - "\7v\2\2\u0122\u0123\7k\2\2\u0123\u0124\7q\2\2\u0124\u0125\7p\2\2\u0125"+ - "\30\3\2\2\2\u0126\u0127\7h\2\2\u0127\u0128\7k\2\2\u0128\u0129\7g\2\2\u0129"+ - "\u012a\7n\2\2\u012a\u012b\7f\2\2\u012b\u012c\7k\2\2\u012c\u012d\7p\2\2"+ - "\u012d\u012e\7i\2\2\u012e\32\3\2\2\2\u012f\u0130\7e\2\2\u0130\u0131\7"+ - "q\2\2\u0131\u0132\7r\2\2\u0132\u0133\7{\2\2\u0133\u0134\7f\2\2\u0134\u0135"+ - "\7c\2\2\u0135\u0136\7v\2\2\u0136\u0137\7c\2\2\u0137\34\3\2\2\2\u0138\u0139"+ - "\7h\2\2\u0139\u013a\7t\2\2\u013a\u013b\7q\2\2\u013b\u013c\7o\2\2\u013c"+ - "\36\3\2\2\2\u013d\u013e\7v\2\2\u013e\u013f\7q\2\2\u013f \3\2\2\2\u0140"+ - "\u0141\7y\2\2\u0141\u0142\7k\2\2\u0142\u0143\7v\2\2\u0143\u0144\7j\2\2"+ - "\u0144\u0145\7/\2\2\u0145\u0146\7h\2\2\u0146\u0147\7g\2\2\u0147\u0148"+ - "\7v\2\2\u0148\u0149\7e\2\2\u0149\u014a\7j\2\2\u014a\u014b\7/\2\2\u014b"+ - "\u014c\7d\2\2\u014c\u014d\7c\2\2\u014d\u014e\7v\2\2\u014e\u014f\7e\2\2"+ - "\u014f\u0150\7j\2\2\u0150\u0151\7/\2\2\u0151\u0152\7u\2\2\u0152\u0153"+ - "\7k\2\2\u0153\u0154\7|\2\2\u0154\u0155\7g\2\2\u0155\"\3\2\2\2\u0156\u0157"+ - "\7y\2\2\u0157\u0158\7k\2\2\u0158\u0159\7v\2\2\u0159\u015a\7j\2\2\u015a"+ - "\u015b\7/\2\2\u015b\u015c\7y\2\2\u015c\u015d\7t\2\2\u015d\u015e\7k\2\2"+ - "\u015e\u015f\7v\2\2\u015f\u0160\7g\2\2\u0160\u0161\7/\2\2\u0161\u0162"+ - "\7d\2\2\u0162\u0163\7c\2\2\u0163\u0164\7v\2\2\u0164\u0165\7e\2\2\u0165"+ - "\u0166\7j\2\2\u0166\u0167\7/\2\2\u0167\u0168\7u\2\2\u0168\u0169\7k\2\2"+ - "\u0169\u016a\7|\2\2\u016a\u016b\7g\2\2\u016b$\3\2\2\2\u016c\u016d\7v\2"+ - "\2\u016d\u016e\7t\2\2\u016e\u016f\7c\2\2\u016f\u0170\7p\2\2\u0170\u0171"+ - "\7u\2\2\u0171\u0172\7h\2\2\u0172\u0173\7q\2\2\u0173\u0174\7t\2\2\u0174"+ - "\u0175\7o\2\2\u0175&\3\2\2\2\u0176\u0177\7f\2\2\u0177\u0178\7q\2\2\u0178"+ - "\u0179\7/\2\2\u0179\u017a\7h\2\2\u017a\u017b\7q\2\2\u017b\u017c\7t\2\2"+ - "\u017c\u017d\7o\2\2\u017d\u017e\7c\2\2\u017e\u017f\7v\2\2\u017f(\3\2\2"+ - "\2\u0180\u0181\7n\2\2\u0181\u0182\7q\2\2\u0182\u0183\7c\2\2\u0183\u0184"+ - "\7f\2\2\u0184\u0185\7e\2\2\u0185\u0186\7u\2\2\u0186\u0187\7x\2\2\u0187"+ - "*\3\2\2\2\u0188\u0189\7r\2\2\u0189\u018a\7k\2\2\u018a\u018b\7f\2\2\u018b"+ - ",\3\2\2\2\u018c\u018d\7y\2\2\u018d\u018e\7k\2\2\u018e\u018f\7v\2\2\u018f"+ - "\u0190\7j\2\2\u0190.\3\2\2\2\u0191\u0192\7d\2\2\u0192\u0193\7{\2\2\u0193"+ - "\u0194\7/\2\2\u0194\u0195\7d\2\2\u0195\u0196\7c\2\2\u0196\u0197\7v\2\2"+ - "\u0197\u0198\7e\2\2\u0198\u0199\7j\2\2\u0199\60\3\2\2\2\u019a\u019b\7"+ - "c\2\2\u019b\u019c\7d\2\2\u019c\u019d\7q\2\2\u019d\u019e\7t\2\2\u019e\u019f"+ - "\7v\2\2\u019f\62\3\2\2\2\u01a0\u01a1\7e\2\2\u01a1\u01a2\7c\2\2\u01a2\u01a3"+ - "\7n\2\2\u01a3\u01a4\7n\2\2\u01a4\u01a5\7r\2\2\u01a5\u01a6\7t\2\2\u01a6"+ - "\u01a7\7q\2\2\u01a7\u01a8\7e\2\2\u01a8\u01a9\7g\2\2\u01a9\u01aa\7u\2\2"+ - "\u01aa\u01ab\7u\2\2\u01ab\64\3\2\2\2\u01ac\u01ad\7y\2\2\u01ad\u01ae\7"+ - "k\2\2\u01ae\u01af\7v\2\2\u01af\u01b0\7j\2\2\u01b0\u01b1\7/\2\2\u01b1\u01b2"+ - "\7v\2\2\u01b2\u01b3\7c\2\2\u01b3\u01b4\7t\2\2\u01b4\u01b5\7i\2\2\u01b5"+ - "\u01b6\7g\2\2\u01b6\u01b7\7v\2\2\u01b7\66\3\2\2\2\u01b8\u01b9\7h\2\2\u01b9"+ - "\u01ba\7t\2\2\u01ba\u01bb\7q\2\2\u01bb\u01bc\7o\2\2\u01bc\u01bd\7/\2\2"+ - "\u01bd\u01be\7h\2\2\u01be\u01bf\7k\2\2\u01bf\u01c0\7n\2\2\u01c0\u01c1"+ - "\7g\2\2\u01c18\3\2\2\2\u01c2\u01c3\7h\2\2\u01c3\u01c4\7q\2\2\u01c4\u01c5"+ - "\7t\2\2\u01c5\u01c6\7/\2\2\u01c6\u01c7\7g\2\2\u01c7\u01c8\7x\2\2\u01c8"+ - "\u01c9\7g\2\2\u01c9\u01ca\7t\2\2\u01ca\u01cb\7{\2\2\u01cb:\3\2\2\2\u01cc"+ - "\u01cd\7q\2\2\u01cd\u01ce\7p\2\2\u01ce\u01cf\7/\2\2\u01cf\u01d0\7r\2\2"+ - "\u01d0\u01d1\7c\2\2\u01d1\u01d2\7t\2\2\u01d2\u01d3\7c\2\2\u01d3\u01d4"+ - "\7n\2\2\u01d4\u01d5\7n\2\2\u01d5\u01d6\7g\2\2\u01d6\u01d7\7n\2\2\u01d7"+ - "\u01d8\7/\2\2\u01d8\u01d9\7h\2\2\u01d9\u01da\7k\2\2\u01da\u01db\7g\2\2"+ - "\u01db\u01dc\7n\2\2\u01dc\u01dd\7f\2\2\u01dd\u01de\7k\2\2\u01de\u01df"+ - "\7p\2\2\u01df\u01e0\7i\2\2\u01e0<\3\2\2\2\u01e1\u01e2\7h\2\2\u01e2\u01e3"+ - "\7q\2\2\u01e3\u01e4\7t\2\2\u01e4\u01e5\7m\2\2\u01e5\u01e6\7r\2\2\u01e6"+ - "\u01e7\7t\2\2\u01e7\u01e8\7q\2\2\u01e8\u01e9\7e\2\2\u01e9\u01ea\7g\2\2"+ - "\u01ea\u01eb\7u\2\2\u01eb\u01ec\7u\2\2\u01ec>\3\2\2\2\u01ed\u01ee\7y\2"+ - "\2\u01ee\u01ef\7c\2\2\u01ef\u01f0\7v\2\2\u01f0\u01f1\7g\2\2\u01f1\u01f2"+ - "\7t\2\2\u01f2\u01f3\7o\2\2\u01f3\u01f4\7c\2\2\u01f4\u01f5\7t\2\2\u01f5"+ - "\u01f6\7m\2\2\u01f6@\3\2\2\2\u01f7\u01f8\7u\2\2\u01f8\u01f9\7r\2\2\u01f9"+ - "\u01fa\7c\2\2\u01fa\u01fb\7y\2\2\u01fb\u01fc\7p\2\2\u01fcB\3\2\2\2\u01fd"+ - "\u01fe\7f\2\2\u01fe\u01ff\7q\2\2\u01ff\u0200\7i\2\2\u0200\u0201\7n\2\2"+ - "\u0201\u0202\7g\2\2\u0202\u0203\7i\2\2\u0203D\3\2\2\2\u0204\u0205\7w\2"+ - "\2\u0205\u0206\7u\2\2\u0206\u0207\7g\2\2\u0207\u0208\7/\2\2\u0208\u0209"+ - "\7r\2\2\u0209\u020a\7c\2\2\u020a\u020b\7t\2\2\u020b\u020c\7g\2\2\u020c"+ - "\u020d\7p\2\2\u020d\u020e\7v\2\2\u020e\u020f\7/\2\2\u020f\u0210\7e\2\2"+ - "\u0210\u0211\7q\2\2\u0211\u0212\7p\2\2\u0212\u0213\7v\2\2\u0213\u0214"+ - "\7g\2\2\u0214\u0215\7z\2\2\u0215\u0216\7v\2\2\u0216F\3\2\2\2\u0217\u0218"+ - "\7u\2\2\u0218\u0219\7v\2\2\u0219\u021a\7c\2\2\u021a\u021b\7t\2\2\u021b"+ - "\u021c\7v\2\2\u021c\u021d\7/\2\2\u021d\u021e\7r\2\2\u021e\u021f\7t\2\2"+ - "\u021f\u0220\7q\2\2\u0220\u0221\7e\2\2\u0221\u0222\7g\2\2\u0222\u0223"+ - "\7u\2\2\u0223\u0224\7u\2\2\u0224H\3\2\2\2\u0225\u0226\7y\2\2\u0226\u0227"+ - "\7k\2\2\u0227\u0228\7v\2\2\u0228\u0229\7j\2\2\u0229\u022a\7/\2\2\u022a"+ - "\u022b\7h\2\2\u022b\u022c\7k\2\2\u022c\u022d\7n\2\2\u022d\u022e\7g\2\2"+ - "\u022eJ\3\2\2\2\u022f\u0230\7c\2\2\u0230\u0231\7u\2\2\u0231\u0232\7u\2"+ - "\2\u0232\u0233\7k\2\2\u0233\u0234\7i\2\2\u0234\u0235\7p\2\2\u0235L\3\2"+ - "\2\2\u0236\u0237\7u\2\2\u0237\u0238\7q\2\2\u0238\u0239\7w\2\2\u0239\u023a"+ - "\7t\2\2\u023a\u023b\7e\2\2\u023b\u023c\7g\2\2\u023cN\3\2\2\2\u023d\u023e"+ - "\7f\2\2\u023e\u023f\7t\2\2\u023f\u0240\7q\2\2\u0240\u0241\7r\2\2\u0241"+ - "\u0242\7h\2\2\u0242\u0243\7k\2\2\u0243\u0244\7n\2\2\u0244\u0245\7g\2\2"+ - "\u0245P\3\2\2\2\u0246\u0247\7k\2\2\u0247\u0248\7p\2\2\u0248\u0249\7/\2"+ - "\2\u0249\u024a\7r\2\2\u024a\u024b\7c\2\2\u024b\u024c\7v\2\2\u024c\u024d"+ - "\7j\2\2\u024dR\3\2\2\2\u024e\u024f\7t\2\2\u024f\u0250\7g\2\2\u0250\u0251"+ - "\7u\2\2\u0251\u0252\7v\2\2\u0252\u0253\7c\2\2\u0253\u0254\7r\2\2\u0254"+ - "\u0255\7k\2\2\u0255T\3\2\2\2\u0256\u0257\7w\2\2\u0257\u0258\7t\2\2\u0258"+ - "\u0259\7n\2\2\u0259V\3\2\2\2\u025a\u025b\7o\2\2\u025b\u025c\7g\2\2\u025c"+ - "\u025d\7v\2\2\u025d\u025e\7j\2\2\u025e\u025f\7q\2\2\u025f\u0260\7f\2\2"+ - "\u0260X\3\2\2\2\u0261\u0262\7y\2\2\u0262\u0263\7k\2\2\u0263\u0264\7v\2"+ - "\2\u0264\u0265\7j\2\2\u0265\u0266\7\"\2\2\u0266\u0267\7j\2\2\u0267\u0268"+ - "\7g\2\2\u0268\u0269\7c\2\2\u0269\u026a\7f\2\2\u026a\u026b\7g\2\2\u026b"+ - "\u026c\7t\2\2\u026c\u026d\7u\2\2\u026dZ\3\2\2\2\u026e\u026f\7y\2\2\u026f"+ - "\u0270\7k\2\2\u0270\u0271\7v\2\2\u0271\u0272\7j\2\2\u0272\u0273\7\"\2"+ - "\2\u0273\u0274\7r\2\2\u0274\u0275\7c\2\2\u0275\u0276\7t\2\2\u0276\u0277"+ - "\7c\2\2\u0277\u0278\7o\2\2\u0278\u0279\7u\2\2\u0279\\\3\2\2\2\u027a\u027b"+ - "\7y\2\2\u027b\u027c\7k\2\2\u027c\u027d\7v\2\2\u027d\u027e\7j\2\2\u027e"+ - "\u027f\7\"\2\2\u027f\u0280\7d\2\2\u0280\u0281\7q\2\2\u0281\u0282\7f\2"+ - "\2\u0282\u0283\7{\2\2\u0283\u0284\7\"\2\2\u0284\u0285\7v\2\2\u0285\u0286"+ - "\7{\2\2\u0286\u0287\7r\2\2\u0287\u0288\7g\2\2\u0288^\3\2\2\2\u0289\u028a"+ - "\7}\2\2\u028a\u028b\7\"\2\2\u028b\u028c\7r\2\2\u028c\u028d\7c\2\2\u028d"+ - "\u028e\7t\2\2\u028e\u028f\7v\2\2\u028f`\3\2\2\2\u0290\u0291\7v\2\2\u0291"+ - "\u0292\7{\2\2\u0292\u0293\7r\2\2\u0293\u0294\7g\2\2\u0294\u0295\7\"\2"+ - "\2\u0295\u0296\7c\2\2\u0296\u0297\7u\2\2\u0297b\3\2\2\2\u0298\u0299\7"+ - "g\2\2\u0299\u029a\7z\2\2\u029a\u029b\7r\2\2\u029b\u029c\7q\2\2\u029c\u029d"+ - "\7t\2\2\u029d\u029e\7v\2\2\u029e\u029f\7E\2\2\u029f\u02a0\7u\2\2\u02a0"+ - "\u02a1\7x\2\2\u02a1d\3\2\2\2\u02a2\u02a3\7g\2\2\u02a3\u02a4\7z\2\2\u02a4"+ - "\u02a5\7g\2\2\u02a5\u02a6\7e\2\2\u02a6\u02a7\7w\2\2\u02a7\u02a8\7v\2\2"+ - "\u02a8\u02a9\7k\2\2\u02a9\u02aa\7q\2\2\u02aa\u02ab\7p\2\2\u02ab\u02ac"+ - "\7U\2\2\u02ac\u02ad\7q\2\2\u02ad\u02ae\7w\2\2\u02ae\u02af\7t\2\2\u02af"+ - "\u02b0\7e\2\2\u02b0\u02b1\7g\2\2\u02b1f\3\2\2\2\u02b2\u02b3\7v\2\2\u02b3"+ - "\u02b4\7c\2\2\u02b4\u02b5\7t\2\2\u02b5\u02b6\7i\2\2\u02b6\u02b7\7g\2\2"+ - "\u02b7\u02b8\7v\2\2\u02b8\u02b9\7N\2\2\u02b9\u02ba\7q\2\2\u02ba\u02bb"+ - "\7e\2\2\u02bb\u02bc\7c\2\2\u02bc\u02bd\7v\2\2\u02bd\u02be\7k\2\2\u02be"+ - "\u02bf\7q\2\2\u02bf\u02c0\7p\2\2\u02c0h\3\2\2\2\u02c1\u02c2\7k\2\2\u02c2"+ - "\u02c3\7o\2\2\u02c3\u02c4\7r\2\2\u02c4\u02c5\7q\2\2\u02c5\u02c6\7t\2\2"+ - "\u02c6\u02c7\7v\2\2\u02c7\u02c8\7E\2\2\u02c8\u02c9\7u\2\2\u02c9\u02ca"+ - "\7x\2\2\u02ca\u02cb\7V\2\2\u02cb\u02cc\7q\2\2\u02cc\u02cd\7F\2\2\u02cd"+ - "\u02ce\7D\2\2\u02cej\3\2\2\2\u02cf\u02d0\7v\2\2\u02d0\u02d1\7c\2\2\u02d1"+ - "\u02d2\7t\2\2\u02d2\u02d3\7i\2\2\u02d3\u02d4\7g\2\2\u02d4\u02d5\7v\2\2"+ - "\u02d5l\3\2\2\2\u02d6\u02d7\7d\2\2\u02d7\u02d8\7c\2\2\u02d8\u02d9\7v\2"+ - "\2\u02d9\u02da\7e\2\2\u02da\u02db\7j\2\2\u02dbn\3\2\2\2\u02dc\u02dd\7"+ - "g\2\2\u02dd\u02de\7z\2\2\u02de\u02df\7v\2\2\u02df\u02e0\7t\2\2\u02e0\u02e1"+ - "\7c\2\2\u02e1\u02e2\7e\2\2\u02e2\u02e3\7v\2\2\u02e3\u02e4\7V\2\2\u02e4"+ - "\u02e5\7C\2\2\u02e5\u02e6\7T\2\2\u02e6p\3\2\2\2\u02e7\u02e8\7f\2\2\u02e8"+ - "\u02e9\7g\2\2\u02e9\u02ea\7u\2\2\u02ea\u02eb\7v\2\2\u02eb\u02ec\7k\2\2"+ - "\u02ec\u02ed\7p\2\2\u02ed\u02ee\7c\2\2\u02ee\u02ef\7v\2\2\u02ef\u02f0"+ - "\7k\2\2\u02f0\u02f1\7q\2\2\u02f1\u02f2\7p\2\2\u02f2r\3\2\2\2\u02f3\u02f4"+ - "\7e\2\2\u02f4\u02f5\7t\2\2\u02f5\u02f6\7g\2\2\u02f6\u02f7\7c\2\2\u02f7"+ - "\u02f8\7v\2\2\u02f8\u02f9\7g\2\2\u02f9\u02fa\7V\2\2\u02fa\u02fb\7C\2\2"+ - "\u02fb\u02fc\7T\2\2\u02fct\3\2\2\2\u02fd\u02fe\7g\2\2\u02fe\u02ff\7z\2"+ - "\2\u02ff\u0300\7v\2\2\u0300\u0301\7g\2\2\u0301\u0302\7p\2\2\u0302\u0303"+ - "\7u\2\2\u0303\u0304\7k\2\2\u0304\u0305\7q\2\2\u0305\u0306\7p\2\2\u0306"+ - "v\3\2\2\2\u0307\u0308\7e\2\2\u0308\u0309\7t\2\2\u0309\u030a\7g\2\2\u030a"+ - "\u030b\7c\2\2\u030b\u030c\7v\2\2\u030c\u030d\7g\2\2\u030d\u030e\7F\2\2"+ - "\u030e\u030f\7k\2\2\u030f\u0310\7t\2\2\u0310\u0311\7g\2\2\u0311\u0312"+ - "\7e\2\2\u0312\u0313\7v\2\2\u0313\u0314\7q\2\2\u0314\u0315\7t\2\2\u0315"+ - "\u0316\7{\2\2\u0316x\3\2\2\2\u0317\u0318\7e\2\2\u0318\u0319\7t\2\2\u0319"+ - "\u031a\7g\2\2\u031a\u031b\7c\2\2\u031b\u031c\7v\2\2\u031c\u031d\7g\2\2"+ - "\u031d\u031e\7H\2\2\u031e\u031f\7k\2\2\u031f\u0320\7n\2\2\u0320\u0321"+ - "\7g\2\2\u0321z\3\2\2\2\u0322\u0323\7n\2\2\u0323\u0324\7q\2\2\u0324\u0325"+ - "\7e\2\2\u0325\u0326\7c\2\2\u0326\u0327\7v\2\2\u0327\u0328\7k\2\2\u0328"+ - "\u0329\7q\2\2\u0329\u032a\7p\2\2\u032a|\3\2\2\2\u032b\u032c\7h\2\2\u032c"+ - "\u032d\7k\2\2\u032d\u032e\7n\2\2\u032e\u032f\7g\2\2\u032f\u0330\7P\2\2"+ - "\u0330\u0331\7c\2\2\u0331\u0332\7o\2\2\u0332\u0333\7g\2\2\u0333~\3\2\2"+ - "\2\u0334\u0335\7f\2\2\u0335\u0336\7g\2\2\u0336\u0337\7n\2\2\u0337\u0338"+ - "\7g\2\2\u0338\u0339\7v\2\2\u0339\u033a\7g\2\2\u033a\u033b\7H\2\2\u033b"+ - "\u033c\7k\2\2\u033c\u033d\7n\2\2\u033d\u033e\7g\2\2\u033e\u033f\7F\2\2"+ - "\u033f\u0340\7k\2\2\u0340\u0341\7t\2\2\u0341\u0342\7g\2\2\u0342\u0343"+ - "\7e\2\2\u0343\u0344\7v\2\2\u0344\u0345\7q\2\2\u0345\u0346\7t\2\2\u0346"+ - "\u0347\7{\2\2\u0347\u0080\3\2\2\2\u0348\u0349\7v\2\2\u0349\u034a\7t\2"+ - "\2\u034a\u034b\7c\2\2\u034b\u034c\7p\2\2\u034c\u034d\7u\2\2\u034d\u034e"+ - "\7h\2\2\u034e\u034f\7g\2\2\u034f\u0350\7t\2\2\u0350\u0351\7H\2\2\u0351"+ - "\u0352\7k\2\2\u0352\u0353\7n\2\2\u0353\u0354\7g\2\2\u0354\u0355\7F\2\2"+ - "\u0355\u0356\7k\2\2\u0356\u0357\7t\2\2\u0357\u0358\7g\2\2\u0358\u0359"+ - "\7e\2\2\u0359\u035a\7v\2\2\u035a\u035b\7q\2\2\u035b\u035c\7t\2\2\u035c"+ - "\u035d\7{\2\2\u035d\u0082\3\2\2\2\u035e\u035f\7q\2\2\u035f\u0360\7r\2"+ - "\2\u0360\u0361\7g\2\2\u0361\u0362\7t\2\2\u0362\u0363\7c\2\2\u0363\u0364"+ - "\7v\2\2\u0364\u0365\7k\2\2\u0365\u0366\7q\2\2\u0366\u0367\7p\2\2\u0367"+ - "\u0084\3\2\2\2\u0368\u0369\7r\2\2\u0369\u036a\7e\2\2\u036a\u036b\7o\2"+ - "\2\u036b\u0086\3\2\2\2\u036c\u036d\7q\2\2\u036d\u036e\7p\2\2\u036e\u036f"+ - "\7/\2\2\u036f\u0370\7t\2\2\u0370\u0371\7g\2\2\u0371\u0372\7u\2\2\u0372"+ - "\u0373\7q\2\2\u0373\u0374\7w\2\2\u0374\u0375\7t\2\2\u0375\u0376\7e\2\2"+ - "\u0376\u0377\7g\2\2\u0377\u0088\3\2\2\2\u0378\u0379\7r\2\2\u0379\u037a"+ - "\7t\2\2\u037a\u037b\7q\2\2\u037b\u037c\7f\2\2\u037c\u037d\7w\2\2\u037d"+ - "\u037e\7e\2\2\u037e\u037f\7g\2\2\u037f\u008a\3\2\2\2\u0380\u0381\7e\2"+ - "\2\u0381\u0382\7q\2\2\u0382\u0383\7p\2\2\u0383\u0384\7u\2\2\u0384\u0385"+ - "\7w\2\2\u0385\u0386\7o\2\2\u0386\u0387\7g\2\2\u0387\u008c\3\2\2\2\u0388"+ - "\u0389\7r\2\2\u0389\u038a\7t\2\2\u038a\u038b\7q\2\2\u038b\u038c\7f\2\2"+ - "\u038c\u038d\7w\2\2\u038d\u038e\7e\2\2\u038e\u038f\7g\2\2\u038f\u0390"+ - "\7t\2\2\u0390\u008e\3\2\2\2\u0391\u0392\7r\2\2\u0392\u0393\7w\2\2\u0393"+ - "\u0394\7u\2\2\u0394\u0395\7j\2\2\u0395\u0396\7/\2\2\u0396\u0397\7t\2\2"+ - "\u0397\u0398\7g\2\2\u0398\u0399\7u\2\2\u0399\u039a\7w\2\2\u039a\u039b"+ - "\7n\2\2\u039b\u039c\7v\2\2\u039c\u039d\7/\2\2\u039d\u039e\7c\2\2\u039e"+ - "\u039f\7v\2\2\u039f\u0090\3\2\2\2\u03a0\u03a1\7g\2\2\u03a1\u03a2\7z\2"+ - "\2\u03a2\u03a3\7g\2\2\u03a3\u03a4\7e\2\2\u03a4\u03a5\7w\2\2\u03a5\u03a6"+ - "\7v\2\2\u03a6\u03a7\7g\2\2\u03a7\u0092\3\2\2\2\u03a8\u03a9\7e\2\2\u03a9"+ - "\u03aa\7q\2\2\u03aa\u03ab\7p\2\2\u03ab\u03ac\7u\2\2\u03ac\u03ad\7w\2\2"+ - "\u03ad\u03ae\7o\2\2\u03ae\u03af\7g\2\2\u03af\u03b0\7t\2\2\u03b0\u0094"+ - "\3\2\2\2\u03b1\u03b2\7r\2\2\u03b2\u03b3\7q\2\2\u03b3\u03b4\7r\2\2\u03b4"+ - "\u03b5\7/\2\2\u03b5\u03b6\7g\2\2\u03b6\u03b7\7x\2\2\u03b7\u03b8\7g\2\2"+ - "\u03b8\u03b9\7p\2\2\u03b9\u03ba\7v\2\2\u03ba\u03bb\7/\2\2\u03bb\u03bc"+ - "\7h\2\2\u03bc\u03bd\7t\2\2\u03bd\u03be\7q\2\2\u03be\u03bf\7o\2\2\u03bf"+ - "\u0096\3\2\2\2\u03c0\u03c1\7r\2\2\u03c1\u03c2\7q\2\2\u03c2\u03c3\7r\2"+ - "\2\u03c3\u03c4\7/\2\2\u03c4\u03c5\7t\2\2\u03c5\u03c6\7g\2\2\u03c6\u03c7"+ - "\7u\2\2\u03c7\u03c8\7w\2\2\u03c8\u03c9\7n\2\2\u03c9\u03ca\7v\2\2\u03ca"+ - "\u03cb\7/\2\2\u03cb\u03cc\7h\2\2\u03cc\u03cd\7t\2\2\u03cd\u03ce\7q\2\2"+ - "\u03ce\u03cf\7o\2\2\u03cf\u0098\3\2\2\2\u03d0\u03d1\7n\2\2\u03d1\u03d2"+ - "\7k\2\2\u03d2\u03d3\7o\2\2\u03d3\u03d4\7k\2\2\u03d4\u03d5\7v\2\2\u03d5"+ - "\u009a\3\2\2\2\u03d6\u03d7\7q\2\2\u03d7\u03d8\7p\2\2\u03d8\u03d9\7/\2"+ - "\2\u03d9\u03da\7u\2\2\u03da\u03db\7v\2\2\u03db\u03dc\7c\2\2\u03dc\u03dd"+ - "\7p\2\2\u03dd\u03de\7f\2\2\u03de\u03df\7c\2\2\u03df\u03e0\7n\2\2\u03e0"+ - "\u03e1\7q\2\2\u03e1\u03e2\7p\2\2\u03e2\u03e3\7g\2\2\u03e3\u009c\3\2\2"+ - "\2\u03e4\u03e5\7r\2\2\u03e5\u03e6\7w\2\2\u03e6\u03e7\7u\2\2\u03e7\u03e8"+ - "\7j\2\2\u03e8\u03e9\7/\2\2\u03e9\u03ea\7l\2\2\u03ea\u03eb\7u\2\2\u03eb"+ - "\u03ec\7q\2\2\u03ec\u03ed\7p\2\2\u03ed\u03ee\7/\2\2\u03ee\u03ef\7k\2\2"+ - "\u03ef\u03f0\7p\2\2\u03f0\u03f1\7v\2\2\u03f1\u03f2\7q\2\2\u03f2\u03f3"+ - "\7/\2\2\u03f3\u03f4\7e\2\2\u03f4\u03f5\7q\2\2\u03f5\u03f6\7p\2\2\u03f6"+ - "\u03f7\7v\2\2\u03f7\u03f8\7g\2\2\u03f8\u03f9\7z\2\2\u03f9\u03fa\7v\2\2"+ - "\u03fa\u009e\3\2\2\2\u03fb\u03fc\7y\2\2\u03fc\u03fd\7k\2\2\u03fd\u03fe"+ - "\7v\2\2\u03fe\u03ff\7j\2\2\u03ff\u0400\7/\2\2\u0400\u0401\7m\2\2\u0401"+ - "\u0402\7g\2\2\u0402\u0403\7{\2\2\u0403\u00a0\3\2\2\2\u0404\u0405\7w\2"+ - "\2\u0405\u0406\7u\2\2\u0406\u0407\7k\2\2\u0407\u0408\7p\2\2\u0408\u0409"+ - "\7i\2\2\u0409\u040a\7/\2\2\u040a\u040b\7x\2\2\u040b\u040c\7c\2\2\u040c"+ - "\u040d\7n\2\2\u040d\u040e\7w\2\2\u040e\u040f\7g\2\2\u040f\u00a2\3\2\2"+ - "\2\u0410\u0411\7o\2\2\u0411\u0412\7c\2\2\u0412\u0413\7r\2\2\u0413\u0414"+ - "\7/\2\2\u0414\u0415\7l\2\2\u0415\u0416\7u\2\2\u0416\u0417\7q\2\2\u0417"+ - "\u0418\7p\2\2\u0418\u0419\7/\2\2\u0419\u041a\7k\2\2\u041a\u041b\7p\2\2"+ - "\u041b\u041c\7v\2\2\u041c\u041d\7q\2\2\u041d\u041e\7/\2\2\u041e\u041f"+ - "\7e\2\2\u041f\u0420\7q\2\2\u0420\u0421\7p\2\2\u0421\u0422\7v\2\2\u0422"+ - "\u0423\7g\2\2\u0423\u0424\7z\2\2\u0424\u0425\7v\2\2\u0425\u00a4\3\2\2"+ - "\2\u0426\u0427\7k\2\2\u0427\u0428\7h\2\2\u0428\u00a6\3\2\2\2\u0429\u042a"+ - "\7n\2\2\u042a\u042b\7q\2\2\u042b\u042c\7i\2\2\u042c\u00a8\3\2\2\2\u042d"+ - "\u042e\7n\2\2\u042e\u042f\7g\2\2\u042f\u0430\7x\2\2\u0430\u0431\7g\2\2"+ - "\u0431\u0432\7n\2\2\u0432\u00aa\3\2\2\2\u0433\u0434\7o\2\2\u0434\u0435"+ - "\7g\2\2\u0435\u0436\7u\2\2\u0436\u0437\7u\2\2\u0437\u0438\7c\2\2\u0438"+ - "\u0439\7i\2\2\u0439\u043a\7g\2\2\u043a\u00ac\3\2\2\2\u043b\u043c\7t\2"+ - "\2\u043c\u043d\7c\2\2\u043d\u043e\7k\2\2\u043e\u043f\7u\2\2\u043f\u0440"+ - "\7g\2\2\u0440\u0441\7\"\2\2\u0441\u0442\7g\2\2\u0442\u0443\7z\2\2\u0443"+ - "\u0444\7e\2\2\u0444\u0445\7g\2\2\u0445\u0446\7r\2\2\u0446\u0447\7v\2\2"+ - "\u0447\u0448\7k\2\2\u0448\u0449\7q\2\2\u0449\u044a\7p\2\2\u044a\u00ae"+ - "\3\2\2\2\u044b\u044c\7.\2\2\u044c\u00b0\3\2\2\2\u044d\u044e\7<\2\2\u044e"+ - "\u00b2\3\2\2\2\u044f\u0450\7]\2\2\u0450\u00b4\3\2\2\2\u0451\u0452\7_\2"+ - "\2\u0452\u00b6\3\2\2\2\u0453\u0454\7v\2\2\u0454\u0455\7t\2\2\u0455\u0456"+ - "\7w\2\2\u0456\u0457\7g\2\2\u0457\u00b8\3\2\2\2\u0458\u0459\7h\2\2\u0459"+ - "\u045a\7c\2\2\u045a\u045b\7n\2\2\u045b\u045c\7u\2\2\u045c\u045d\7g\2\2"+ - "\u045d\u00ba\3\2\2\2\u045e\u045f\7p\2\2\u045f\u0460\7w\2\2\u0460\u0461"+ - "\7n\2\2\u0461\u0462\7n\2\2\u0462\u00bc\3\2\2\2\u0463\u0464\t\2\2\2\u0464"+ - "\u00be\3\2\2\2\u0465\u0466\t\3\2\2\u0466\u00c0\3\2\2\2\u0467\u0468\5\u00bd"+ - "_\2\u0468\u0469\5\u00bd_\2\u0469\u00c2\3\2\2\2\u046a\u046b\t\4\2\2\u046b"+ - "\u00c4\3\2\2\2\u046c\u046e\5\u00c7d\2\u046d\u046c\3\2\2\2\u046e\u046f"+ - "\3\2\2\2\u046f\u046d\3\2\2\2\u046f\u0470\3\2\2\2\u0470\u00c6\3\2\2\2\u0471"+ - "\u0472\n\5\2\2\u0472\u00c8\3\2\2\2\u0473\u0475\5\u00bf`\2\u0474\u0473"+ - "\3\2\2\2\u0475\u0476\3\2\2\2\u0476\u0474\3\2\2\2\u0476\u0477\3\2\2\2\u0477"+ - "\u00ca\3\2\2\2\u0478\u047a\7$\2\2\u0479\u047b\5\u00c5c\2\u047a\u0479\3"+ - "\2\2\2\u047a\u047b\3\2\2\2\u047b\u047c\3\2\2\2\u047c\u047d\7$\2\2\u047d"+ - "\u00cc\3\2\2\2\u047e\u0480\7\17\2\2\u047f\u047e\3\2\2\2\u047f\u0480\3"+ - "\2\2\2\u0480\u0481\3\2\2\2\u0481\u0484\7\f\2\2\u0482\u0484\7\17\2\2\u0483"+ - "\u047f\3\2\2\2\u0483\u0482\3\2\2\2\u0484\u0485\3\2\2\2\u0485\u0486\bg"+ - "\2\2\u0486\u00ce\3\2\2\2\u0487\u0493\t\6\2\2\u0488\u0489\7?\2\2\u0489"+ - "\u0493\7?\2\2\u048a\u048b\7e\2\2\u048b\u048c\7q\2\2\u048c\u048d\7p\2\2"+ - "\u048d\u048e\7v\2\2\u048e\u048f\7c\2\2\u048f\u0490\7k\2\2\u0490\u0491"+ - "\7p\2\2\u0491\u0493\7u\2\2\u0492\u0487\3\2\2\2\u0492\u0488\3\2\2\2\u0492"+ - "\u048a\3\2\2\2\u0493\u00d0\3\2\2\2\u0494\u0496\t\7\2\2\u0495\u0494\3\2"+ - "\2\2\u0496\u0497\3\2\2\2\u0497\u0495\3\2\2\2\u0497\u0498\3\2\2\2\u0498"+ - "\u0499\3\2\2\2\u0499\u049a\bi\2\2\u049a\u00d2\3\2\2\2\u049b\u049c\7\61"+ - "\2\2\u049c\u049d\7,\2\2\u049d\u04a1\3\2\2\2\u049e\u04a0\13\2\2\2\u049f"+ - "\u049e\3\2\2\2\u04a0\u04a3\3\2\2\2\u04a1\u04a2\3\2\2\2\u04a1\u049f\3\2"+ - "\2\2\u04a2\u04a4\3\2\2\2\u04a3\u04a1\3\2\2\2\u04a4\u04a5\7,\2\2\u04a5"+ - "\u04a6\7\61\2\2\u04a6\u04a7\3\2\2\2\u04a7\u04a8\bj\2\2\u04a8\u00d4\3\2"+ - "\2\2\u04a9\u04aa\7\61\2\2\u04aa\u04ab\7\61\2\2\u04ab\u04af\3\2\2\2\u04ac"+ - "\u04ae\n\b\2\2\u04ad\u04ac\3\2\2\2\u04ae\u04b1\3\2\2\2\u04af\u04ad\3\2"+ - "\2\2\u04af\u04b0\3\2\2\2\u04b0\u04b2\3\2\2\2\u04b1\u04af\3\2\2\2\u04b2"+ - "\u04b3\bk\2\2\u04b3\u00d6\3\2\2\2\u04b4\u04b7\7^\2\2\u04b5\u04b8\t\t\2"+ - "\2\u04b6\u04b8\5\u00d9m\2\u04b7\u04b5\3\2\2\2\u04b7\u04b6\3\2\2\2\u04b8"+ - "\u00d8\3\2\2\2\u04b9\u04ba\7w\2\2\u04ba\u04bb\5\u00dbn\2\u04bb\u04bc\5"+ - "\u00dbn\2\u04bc\u04bd\5\u00dbn\2\u04bd\u04be\5\u00dbn\2\u04be\u00da\3"+ - "\2\2\2\u04bf\u04c0\t\n\2\2\u04c0\u00dc\3\2\2\2\u04c1\u04c2\n\13\2\2\u04c2"+ - "\u00de\3\2\2\2\u04c3\u04c5\7/\2\2\u04c4\u04c3\3\2\2\2\u04c4\u04c5\3\2"+ - "\2\2\u04c5\u04c6\3\2\2\2\u04c6\u04cd\5\u00e1q\2\u04c7\u04c9\7\60\2\2\u04c8"+ - "\u04ca\t\2\2\2\u04c9\u04c8\3\2\2\2\u04ca\u04cb\3\2\2\2\u04cb\u04c9\3\2"+ - "\2\2\u04cb\u04cc\3\2\2\2\u04cc\u04ce\3\2\2\2\u04cd\u04c7\3\2\2\2\u04cd"+ - "\u04ce\3\2\2\2\u04ce\u04d0\3\2\2\2\u04cf\u04d1\5\u00e3r\2\u04d0\u04cf"+ - "\3\2\2\2\u04d0\u04d1\3\2\2\2\u04d1\u00e0\3\2\2\2\u04d2\u04db\7\62\2\2"+ - "\u04d3\u04d7\t\3\2\2\u04d4\u04d6\t\2\2\2\u04d5\u04d4\3\2\2\2\u04d6\u04d9"+ - "\3\2\2\2\u04d7\u04d5\3\2\2\2\u04d7\u04d8\3\2\2\2\u04d8\u04db\3\2\2\2\u04d9"+ - "\u04d7\3\2\2\2\u04da\u04d2\3\2\2\2\u04da\u04d3\3\2\2\2\u04db\u00e2\3\2"+ - "\2\2\u04dc\u04de\t\f\2\2\u04dd\u04df\t\r\2\2\u04de\u04dd\3\2\2\2\u04de"+ - "\u04df\3\2\2\2\u04df\u04e0\3\2\2\2\u04e0\u04e1\5\u00e1q\2\u04e1\u00e4"+ - "\3\2\2\2\24\2\u046f\u0476\u047a\u047f\u0483\u0492\u0497\u04a1\u04af\u04b7"+ - "\u04c4\u04cb\u04cd\u04d0\u04d7\u04da\u04de\3\2\3\2"; - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenLexer.tokens b/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenLexer.tokens deleted file mode 100644 index e85bc6fc..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenLexer.tokens +++ /dev/null @@ -1,194 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -T__10=11 -T__11=12 -T__12=13 -T__13=14 -T__14=15 -T__15=16 -T__16=17 -T__17=18 -T__18=19 -T__19=20 -T__20=21 -T__21=22 -T__22=23 -T__23=24 -T__24=25 -T__25=26 -T__26=27 -T__27=28 -T__28=29 -T__29=30 -T__30=31 -T__31=32 -T__32=33 -T__33=34 -T__34=35 -T__35=36 -T__36=37 -T__37=38 -T__38=39 -T__39=40 -T__40=41 -T__41=42 -T__42=43 -T__43=44 -T__44=45 -T__45=46 -T__46=47 -T__47=48 -T__48=49 -T__49=50 -T__50=51 -T__51=52 -T__52=53 -T__53=54 -T__54=55 -T__55=56 -T__56=57 -T__57=58 -T__58=59 -T__59=60 -T__60=61 -T__61=62 -T__62=63 -T__63=64 -T__64=65 -T__65=66 -T__66=67 -T__67=68 -T__68=69 -T__69=70 -T__70=71 -T__71=72 -T__72=73 -T__73=74 -T__74=75 -T__75=76 -T__76=77 -T__77=78 -T__78=79 -T__79=80 -T__80=81 -T__81=82 -T__82=83 -T__83=84 -T__84=85 -T__85=86 -T__86=87 -T__87=88 -T__88=89 -T__89=90 -T__90=91 -T__91=92 -T__92=93 -NON_ZERO_DIGIT=94 -STRING=95 -CRLF=96 -Operator=97 -WS=98 -COMMENT=99 -LINE_COMMENT=100 -NUMBER=101 -'process'=1 -'{'=2 -'}'=3 -'try'=4 -'finally'=5 -'catch'=6 -'multitude'=7 -'as'=8 -'on'=9 -'using'=10 -'on-condition'=11 -'fielding'=12 -'copydata'=13 -'from'=14 -'to'=15 -'with-fetch-batch-size'=16 -'with-write-batch-size'=17 -'transform'=18 -'do-format'=19 -'loadcsv'=20 -'pid'=21 -'with'=22 -'by-batch'=23 -'abort'=24 -'callprocess'=25 -'with-target'=26 -'from-file'=27 -'for-every'=28 -'on-parallel-fielding'=29 -'forkprocess'=30 -'watermark'=31 -'spawn'=32 -'dogleg'=33 -'use-parent-context'=34 -'start-process'=35 -'with-file'=36 -'assign'=37 -'source'=38 -'dropfile'=39 -'in-path'=40 -'restapi'=41 -'url'=42 -'method'=43 -'with headers'=44 -'with params'=45 -'with body type'=46 -'{ part'=47 -'type as'=48 -'exportCsv'=49 -'executionSource'=50 -'targetLocation'=51 -'importCsvToDB'=52 -'target'=53 -'batch'=54 -'extractTAR'=55 -'destination'=56 -'createTAR'=57 -'extension'=58 -'createDirectory'=59 -'createFile'=60 -'location'=61 -'fileName'=62 -'deleteFileDirectory'=63 -'transferFileDirectory'=64 -'operation'=65 -'pcm'=66 -'on-resource'=67 -'produce'=68 -'consume'=69 -'producer'=70 -'push-result-at'=71 -'execute'=72 -'consumer'=73 -'pop-event-from'=74 -'pop-result-from'=75 -'limit'=76 -'on-standalone'=77 -'push-json-into-context'=78 -'with-key'=79 -'using-value'=80 -'map-json-into-context'=81 -'if'=82 -'log'=83 -'level'=84 -'message'=85 -'raise exception'=86 -','=87 -':'=88 -'['=89 -']'=90 -'true'=91 -'false'=92 -'null'=93 diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenListener.java b/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenListener.java deleted file mode 100644 index 08bdf243..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenListener.java +++ /dev/null @@ -1,422 +0,0 @@ -// Generated from Raven.g4 by ANTLR 4.9.3 - -package in.handyman.raven.compiler; - -import org.antlr.v4.runtime.tree.ParseTreeListener; - -/** - * This interface defines a complete listener for a parse tree produced by - * {@link RavenParser}. - */ -public interface RavenListener extends ParseTreeListener { - /** - * Enter a parse tree produced by {@link RavenParser#process}. - * @param ctx the parse tree - */ - void enterProcess(RavenParser.ProcessContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#process}. - * @param ctx the parse tree - */ - void exitProcess(RavenParser.ProcessContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#tryClause}. - * @param ctx the parse tree - */ - void enterTryClause(RavenParser.TryClauseContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#tryClause}. - * @param ctx the parse tree - */ - void exitTryClause(RavenParser.TryClauseContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#finallyClause}. - * @param ctx the parse tree - */ - void enterFinallyClause(RavenParser.FinallyClauseContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#finallyClause}. - * @param ctx the parse tree - */ - void exitFinallyClause(RavenParser.FinallyClauseContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#catchClause}. - * @param ctx the parse tree - */ - void enterCatchClause(RavenParser.CatchClauseContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#catchClause}. - * @param ctx the parse tree - */ - void exitCatchClause(RavenParser.CatchClauseContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#action}. - * @param ctx the parse tree - */ - void enterAction(RavenParser.ActionContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#action}. - * @param ctx the parse tree - */ - void exitAction(RavenParser.ActionContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#multitude}. - * @param ctx the parse tree - */ - void enterMultitude(RavenParser.MultitudeContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#multitude}. - * @param ctx the parse tree - */ - void exitMultitude(RavenParser.MultitudeContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#copyData}. - * @param ctx the parse tree - */ - void enterCopyData(RavenParser.CopyDataContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#copyData}. - * @param ctx the parse tree - */ - void exitCopyData(RavenParser.CopyDataContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#transform}. - * @param ctx the parse tree - */ - void enterTransform(RavenParser.TransformContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#transform}. - * @param ctx the parse tree - */ - void exitTransform(RavenParser.TransformContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#loadCsv}. - * @param ctx the parse tree - */ - void enterLoadCsv(RavenParser.LoadCsvContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#loadCsv}. - * @param ctx the parse tree - */ - void exitLoadCsv(RavenParser.LoadCsvContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#abort}. - * @param ctx the parse tree - */ - void enterAbort(RavenParser.AbortContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#abort}. - * @param ctx the parse tree - */ - void exitAbort(RavenParser.AbortContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#callProcess}. - * @param ctx the parse tree - */ - void enterCallProcess(RavenParser.CallProcessContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#callProcess}. - * @param ctx the parse tree - */ - void exitCallProcess(RavenParser.CallProcessContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#forkProcess}. - * @param ctx the parse tree - */ - void enterForkProcess(RavenParser.ForkProcessContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#forkProcess}. - * @param ctx the parse tree - */ - void exitForkProcess(RavenParser.ForkProcessContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#spawnProcess}. - * @param ctx the parse tree - */ - void enterSpawnProcess(RavenParser.SpawnProcessContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#spawnProcess}. - * @param ctx the parse tree - */ - void exitSpawnProcess(RavenParser.SpawnProcessContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#dogLeg}. - * @param ctx the parse tree - */ - void enterDogLeg(RavenParser.DogLegContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#dogLeg}. - * @param ctx the parse tree - */ - void exitDogLeg(RavenParser.DogLegContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#startProcess}. - * @param ctx the parse tree - */ - void enterStartProcess(RavenParser.StartProcessContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#startProcess}. - * @param ctx the parse tree - */ - void exitStartProcess(RavenParser.StartProcessContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#assign}. - * @param ctx the parse tree - */ - void enterAssign(RavenParser.AssignContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#assign}. - * @param ctx the parse tree - */ - void exitAssign(RavenParser.AssignContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#dropFile}. - * @param ctx the parse tree - */ - void enterDropFile(RavenParser.DropFileContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#dropFile}. - * @param ctx the parse tree - */ - void exitDropFile(RavenParser.DropFileContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#restApi}. - * @param ctx the parse tree - */ - void enterRestApi(RavenParser.RestApiContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#restApi}. - * @param ctx the parse tree - */ - void exitRestApi(RavenParser.RestApiContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#restPart}. - * @param ctx the parse tree - */ - void enterRestPart(RavenParser.RestPartContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#restPart}. - * @param ctx the parse tree - */ - void exitRestPart(RavenParser.RestPartContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#exportCsv}. - * @param ctx the parse tree - */ - void enterExportCsv(RavenParser.ExportCsvContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#exportCsv}. - * @param ctx the parse tree - */ - void exitExportCsv(RavenParser.ExportCsvContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#importCsvToDB}. - * @param ctx the parse tree - */ - void enterImportCsvToDB(RavenParser.ImportCsvToDBContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#importCsvToDB}. - * @param ctx the parse tree - */ - void exitImportCsvToDB(RavenParser.ImportCsvToDBContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#extractTAR}. - * @param ctx the parse tree - */ - void enterExtractTAR(RavenParser.ExtractTARContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#extractTAR}. - * @param ctx the parse tree - */ - void exitExtractTAR(RavenParser.ExtractTARContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#createTAR}. - * @param ctx the parse tree - */ - void enterCreateTAR(RavenParser.CreateTARContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#createTAR}. - * @param ctx the parse tree - */ - void exitCreateTAR(RavenParser.CreateTARContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#createDirectory}. - * @param ctx the parse tree - */ - void enterCreateDirectory(RavenParser.CreateDirectoryContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#createDirectory}. - * @param ctx the parse tree - */ - void exitCreateDirectory(RavenParser.CreateDirectoryContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#createFile}. - * @param ctx the parse tree - */ - void enterCreateFile(RavenParser.CreateFileContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#createFile}. - * @param ctx the parse tree - */ - void exitCreateFile(RavenParser.CreateFileContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#deleteFileDirectory}. - * @param ctx the parse tree - */ - void enterDeleteFileDirectory(RavenParser.DeleteFileDirectoryContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#deleteFileDirectory}. - * @param ctx the parse tree - */ - void exitDeleteFileDirectory(RavenParser.DeleteFileDirectoryContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#transferFileDirectory}. - * @param ctx the parse tree - */ - void enterTransferFileDirectory(RavenParser.TransferFileDirectoryContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#transferFileDirectory}. - * @param ctx the parse tree - */ - void exitTransferFileDirectory(RavenParser.TransferFileDirectoryContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#producerConsumerModel}. - * @param ctx the parse tree - */ - void enterProducerConsumerModel(RavenParser.ProducerConsumerModelContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#producerConsumerModel}. - * @param ctx the parse tree - */ - void exitProducerConsumerModel(RavenParser.ProducerConsumerModelContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#producer}. - * @param ctx the parse tree - */ - void enterProducer(RavenParser.ProducerContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#producer}. - * @param ctx the parse tree - */ - void exitProducer(RavenParser.ProducerContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#consumer}. - * @param ctx the parse tree - */ - void enterConsumer(RavenParser.ConsumerContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#consumer}. - * @param ctx the parse tree - */ - void exitConsumer(RavenParser.ConsumerContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#pushJson}. - * @param ctx the parse tree - */ - void enterPushJson(RavenParser.PushJsonContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#pushJson}. - * @param ctx the parse tree - */ - void exitPushJson(RavenParser.PushJsonContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#mapJsonContext}. - * @param ctx the parse tree - */ - void enterMapJsonContext(RavenParser.MapJsonContextContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#mapJsonContext}. - * @param ctx the parse tree - */ - void exitMapJsonContext(RavenParser.MapJsonContextContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#expression}. - * @param ctx the parse tree - */ - void enterExpression(RavenParser.ExpressionContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#expression}. - * @param ctx the parse tree - */ - void exitExpression(RavenParser.ExpressionContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#log}. - * @param ctx the parse tree - */ - void enterLog(RavenParser.LogContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#log}. - * @param ctx the parse tree - */ - void exitLog(RavenParser.LogContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#exception}. - * @param ctx the parse tree - */ - void enterException(RavenParser.ExceptionContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#exception}. - * @param ctx the parse tree - */ - void exitException(RavenParser.ExceptionContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#resource}. - * @param ctx the parse tree - */ - void enterResource(RavenParser.ResourceContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#resource}. - * @param ctx the parse tree - */ - void exitResource(RavenParser.ResourceContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#json}. - * @param ctx the parse tree - */ - void enterJson(RavenParser.JsonContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#json}. - * @param ctx the parse tree - */ - void exitJson(RavenParser.JsonContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#obj}. - * @param ctx the parse tree - */ - void enterObj(RavenParser.ObjContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#obj}. - * @param ctx the parse tree - */ - void exitObj(RavenParser.ObjContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#pair}. - * @param ctx the parse tree - */ - void enterPair(RavenParser.PairContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#pair}. - * @param ctx the parse tree - */ - void exitPair(RavenParser.PairContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#arr}. - * @param ctx the parse tree - */ - void enterArr(RavenParser.ArrContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#arr}. - * @param ctx the parse tree - */ - void exitArr(RavenParser.ArrContext ctx); - /** - * Enter a parse tree produced by {@link RavenParser#jValue}. - * @param ctx the parse tree - */ - void enterJValue(RavenParser.JValueContext ctx); - /** - * Exit a parse tree produced by {@link RavenParser#jValue}. - * @param ctx the parse tree - */ - void exitJValue(RavenParser.JValueContext ctx); -} \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenParser.java b/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenParser.java deleted file mode 100644 index a2628580..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/RavenParser.java +++ /dev/null @@ -1,4342 +0,0 @@ -// Generated from Raven.g4 by ANTLR 4.9.3 - -package in.handyman.raven.compiler; - -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.misc.*; -import org.antlr.v4.runtime.tree.*; -import java.util.List; -import java.util.Iterator; -import java.util.ArrayList; - -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) -public class RavenParser extends Parser { - static { RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION); } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, - T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, - T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, - T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, - T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, - T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45, - T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, T__50=51, T__51=52, - T__52=53, T__53=54, T__54=55, T__55=56, T__56=57, T__57=58, T__58=59, - T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66, - T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73, - T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, T__78=79, T__79=80, - T__80=81, T__81=82, T__82=83, T__83=84, T__84=85, T__85=86, T__86=87, - T__87=88, T__88=89, T__89=90, T__90=91, T__91=92, T__92=93, NON_ZERO_DIGIT=94, - STRING=95, CRLF=96, Operator=97, WS=98, COMMENT=99, LINE_COMMENT=100, - NUMBER=101; - public static final int - RULE_process = 0, RULE_tryClause = 1, RULE_finallyClause = 2, RULE_catchClause = 3, - RULE_action = 4, RULE_multitude = 5, RULE_copyData = 6, RULE_transform = 7, - RULE_loadCsv = 8, RULE_abort = 9, RULE_callProcess = 10, RULE_forkProcess = 11, - RULE_spawnProcess = 12, RULE_dogLeg = 13, RULE_startProcess = 14, RULE_assign = 15, - RULE_dropFile = 16, RULE_restApi = 17, RULE_restPart = 18, RULE_exportCsv = 19, - RULE_importCsvToDB = 20, RULE_extractTAR = 21, RULE_createTAR = 22, RULE_createDirectory = 23, - RULE_createFile = 24, RULE_deleteFileDirectory = 25, RULE_transferFileDirectory = 26, - RULE_producerConsumerModel = 27, RULE_producer = 28, RULE_consumer = 29, - RULE_pushJson = 30, RULE_mapJsonContext = 31, RULE_expression = 32, RULE_log = 33, - RULE_exception = 34, RULE_resource = 35, RULE_json = 36, RULE_obj = 37, - RULE_pair = 38, RULE_arr = 39, RULE_jValue = 40; - private static String[] makeRuleNames() { - return new String[] { - "process", "tryClause", "finallyClause", "catchClause", "action", "multitude", - "copyData", "transform", "loadCsv", "abort", "callProcess", "forkProcess", - "spawnProcess", "dogLeg", "startProcess", "assign", "dropFile", "restApi", - "restPart", "exportCsv", "importCsvToDB", "extractTAR", "createTAR", - "createDirectory", "createFile", "deleteFileDirectory", "transferFileDirectory", - "producerConsumerModel", "producer", "consumer", "pushJson", "mapJsonContext", - "expression", "log", "exception", "resource", "json", "obj", "pair", - "arr", "jValue" - }; - } - public static final String[] ruleNames = makeRuleNames(); - - private static String[] makeLiteralNames() { - return new String[] { - null, "'process'", "'{'", "'}'", "'try'", "'finally'", "'catch'", "'multitude'", - "'as'", "'on'", "'using'", "'on-condition'", "'fielding'", "'copydata'", - "'from'", "'to'", "'with-fetch-batch-size'", "'with-write-batch-size'", - "'transform'", "'do-format'", "'loadcsv'", "'pid'", "'with'", "'by-batch'", - "'abort'", "'callprocess'", "'with-target'", "'from-file'", "'for-every'", - "'on-parallel-fielding'", "'forkprocess'", "'watermark'", "'spawn'", - "'dogleg'", "'use-parent-context'", "'start-process'", "'with-file'", - "'assign'", "'source'", "'dropfile'", "'in-path'", "'restapi'", "'url'", - "'method'", "'with headers'", "'with params'", "'with body type'", "'{ part'", - "'type as'", "'exportCsv'", "'executionSource'", "'targetLocation'", - "'importCsvToDB'", "'target'", "'batch'", "'extractTAR'", "'destination'", - "'createTAR'", "'extension'", "'createDirectory'", "'createFile'", "'location'", - "'fileName'", "'deleteFileDirectory'", "'transferFileDirectory'", "'operation'", - "'pcm'", "'on-resource'", "'produce'", "'consume'", "'producer'", "'push-result-at'", - "'execute'", "'consumer'", "'pop-event-from'", "'pop-result-from'", "'limit'", - "'on-standalone'", "'push-json-into-context'", "'with-key'", "'using-value'", - "'map-json-into-context'", "'if'", "'log'", "'level'", "'message'", "'raise exception'", - "','", "':'", "'['", "']'", "'true'", "'false'", "'null'" - }; - } - private static final String[] _LITERAL_NAMES = makeLiteralNames(); - private static String[] makeSymbolicNames() { - return new String[] { - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, "NON_ZERO_DIGIT", - "STRING", "CRLF", "Operator", "WS", "COMMENT", "LINE_COMMENT", "NUMBER" - }; - } - private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - @Override - public String getGrammarFileName() { return "Raven.g4"; } - - @Override - public String[] getRuleNames() { return ruleNames; } - - @Override - public String getSerializedATN() { return _serializedATN; } - - @Override - public ATN getATN() { return _ATN; } - - public RavenParser(TokenStream input) { - super(input); - _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); - } - - public static class ProcessContext extends ParserRuleContext { - public Token name; - public TryClauseContext tryBlock; - public CatchClauseContext catchBlock; - public FinallyClauseContext finallyBlock; - public TerminalNode STRING() { return getToken(RavenParser.STRING, 0); } - public TryClauseContext tryClause() { - return getRuleContext(TryClauseContext.class,0); - } - public CatchClauseContext catchClause() { - return getRuleContext(CatchClauseContext.class,0); - } - public FinallyClauseContext finallyClause() { - return getRuleContext(FinallyClauseContext.class,0); - } - public ProcessContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_process; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterProcess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitProcess(this); - } - } - - public final ProcessContext process() throws RecognitionException { - ProcessContext _localctx = new ProcessContext(_ctx, getState()); - enterRule(_localctx, 0, RULE_process); - try { - enterOuterAlt(_localctx, 1); - { - setState(82); - match(T__0); - setState(83); - ((ProcessContext)_localctx).name = match(STRING); - setState(84); - match(T__1); - setState(85); - ((ProcessContext)_localctx).tryBlock = tryClause(); - setState(86); - ((ProcessContext)_localctx).catchBlock = catchClause(); - setState(87); - ((ProcessContext)_localctx).finallyBlock = finallyClause(); - setState(88); - match(T__2); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TryClauseContext extends ParserRuleContext { - public ActionContext action; - public List actions = new ArrayList(); - public List action() { - return getRuleContexts(ActionContext.class); - } - public ActionContext action(int i) { - return getRuleContext(ActionContext.class,i); - } - public TryClauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tryClause; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterTryClause(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitTryClause(this); - } - } - - public final TryClauseContext tryClause() throws RecognitionException { - TryClauseContext _localctx = new TryClauseContext(_ctx, getState()); - enterRule(_localctx, 2, RULE_tryClause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(90); - match(T__3); - setState(91); - match(T__1); - setState(95); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__12) | (1L << T__17) | (1L << T__19) | (1L << T__23) | (1L << T__24) | (1L << T__29) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__38) | (1L << T__40) | (1L << T__48) | (1L << T__51) | (1L << T__54) | (1L << T__56) | (1L << T__58) | (1L << T__59) | (1L << T__62))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (T__63 - 64)) | (1L << (T__65 - 64)) | (1L << (T__69 - 64)) | (1L << (T__72 - 64)) | (1L << (T__77 - 64)) | (1L << (T__80 - 64)))) != 0)) { - { - { - setState(92); - ((TryClauseContext)_localctx).action = action(); - ((TryClauseContext)_localctx).actions.add(((TryClauseContext)_localctx).action); - } - } - setState(97); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(98); - match(T__2); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FinallyClauseContext extends ParserRuleContext { - public ActionContext action; - public List actions = new ArrayList(); - public List action() { - return getRuleContexts(ActionContext.class); - } - public ActionContext action(int i) { - return getRuleContext(ActionContext.class,i); - } - public FinallyClauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_finallyClause; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterFinallyClause(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitFinallyClause(this); - } - } - - public final FinallyClauseContext finallyClause() throws RecognitionException { - FinallyClauseContext _localctx = new FinallyClauseContext(_ctx, getState()); - enterRule(_localctx, 4, RULE_finallyClause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(100); - match(T__4); - setState(101); - match(T__1); - setState(105); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__12) | (1L << T__17) | (1L << T__19) | (1L << T__23) | (1L << T__24) | (1L << T__29) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__38) | (1L << T__40) | (1L << T__48) | (1L << T__51) | (1L << T__54) | (1L << T__56) | (1L << T__58) | (1L << T__59) | (1L << T__62))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (T__63 - 64)) | (1L << (T__65 - 64)) | (1L << (T__69 - 64)) | (1L << (T__72 - 64)) | (1L << (T__77 - 64)) | (1L << (T__80 - 64)))) != 0)) { - { - { - setState(102); - ((FinallyClauseContext)_localctx).action = action(); - ((FinallyClauseContext)_localctx).actions.add(((FinallyClauseContext)_localctx).action); - } - } - setState(107); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(108); - match(T__2); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CatchClauseContext extends ParserRuleContext { - public ActionContext action; - public List actions = new ArrayList(); - public List action() { - return getRuleContexts(ActionContext.class); - } - public ActionContext action(int i) { - return getRuleContext(ActionContext.class,i); - } - public CatchClauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_catchClause; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCatchClause(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCatchClause(this); - } - } - - public final CatchClauseContext catchClause() throws RecognitionException { - CatchClauseContext _localctx = new CatchClauseContext(_ctx, getState()); - enterRule(_localctx, 6, RULE_catchClause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(110); - match(T__5); - setState(111); - match(T__1); - setState(115); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__12) | (1L << T__17) | (1L << T__19) | (1L << T__23) | (1L << T__24) | (1L << T__29) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__38) | (1L << T__40) | (1L << T__48) | (1L << T__51) | (1L << T__54) | (1L << T__56) | (1L << T__58) | (1L << T__59) | (1L << T__62))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (T__63 - 64)) | (1L << (T__65 - 64)) | (1L << (T__69 - 64)) | (1L << (T__72 - 64)) | (1L << (T__77 - 64)) | (1L << (T__80 - 64)))) != 0)) { - { - { - setState(112); - ((CatchClauseContext)_localctx).action = action(); - ((CatchClauseContext)_localctx).actions.add(((CatchClauseContext)_localctx).action); - } - } - setState(117); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(118); - match(T__2); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ActionContext extends ParserRuleContext { - public AbortContext abort() { - return getRuleContext(AbortContext.class,0); - } - public AssignContext assign() { - return getRuleContext(AssignContext.class,0); - } - public CallProcessContext callProcess() { - return getRuleContext(CallProcessContext.class,0); - } - public ForkProcessContext forkProcess() { - return getRuleContext(ForkProcessContext.class,0); - } - public SpawnProcessContext spawnProcess() { - return getRuleContext(SpawnProcessContext.class,0); - } - public DogLegContext dogLeg() { - return getRuleContext(DogLegContext.class,0); - } - public CopyDataContext copyData() { - return getRuleContext(CopyDataContext.class,0); - } - public DropFileContext dropFile() { - return getRuleContext(DropFileContext.class,0); - } - public LoadCsvContext loadCsv() { - return getRuleContext(LoadCsvContext.class,0); - } - public RestApiContext restApi() { - return getRuleContext(RestApiContext.class,0); - } - public TransformContext transform() { - return getRuleContext(TransformContext.class,0); - } - public MultitudeContext multitude() { - return getRuleContext(MultitudeContext.class,0); - } - public ExportCsvContext exportCsv() { - return getRuleContext(ExportCsvContext.class,0); - } - public CreateDirectoryContext createDirectory() { - return getRuleContext(CreateDirectoryContext.class,0); - } - public CreateFileContext createFile() { - return getRuleContext(CreateFileContext.class,0); - } - public DeleteFileDirectoryContext deleteFileDirectory() { - return getRuleContext(DeleteFileDirectoryContext.class,0); - } - public TransferFileDirectoryContext transferFileDirectory() { - return getRuleContext(TransferFileDirectoryContext.class,0); - } - public CreateTARContext createTAR() { - return getRuleContext(CreateTARContext.class,0); - } - public ExtractTARContext extractTAR() { - return getRuleContext(ExtractTARContext.class,0); - } - public ImportCsvToDBContext importCsvToDB() { - return getRuleContext(ImportCsvToDBContext.class,0); - } - public ProducerConsumerModelContext producerConsumerModel() { - return getRuleContext(ProducerConsumerModelContext.class,0); - } - public ProducerContext producer() { - return getRuleContext(ProducerContext.class,0); - } - public ConsumerContext consumer() { - return getRuleContext(ConsumerContext.class,0); - } - public PushJsonContext pushJson() { - return getRuleContext(PushJsonContext.class,0); - } - public MapJsonContextContext mapJsonContext() { - return getRuleContext(MapJsonContextContext.class,0); - } - public ActionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_action; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAction(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAction(this); - } - } - - public final ActionContext action() throws RecognitionException { - ActionContext _localctx = new ActionContext(_ctx, getState()); - enterRule(_localctx, 8, RULE_action); - try { - enterOuterAlt(_localctx, 1); - { - setState(145); - _errHandler.sync(this); - switch (_input.LA(1)) { - case T__23: - { - setState(120); - abort(); - } - break; - case T__36: - { - setState(121); - assign(); - } - break; - case T__24: - { - setState(122); - callProcess(); - } - break; - case T__29: - { - setState(123); - forkProcess(); - } - break; - case T__31: - { - setState(124); - spawnProcess(); - } - break; - case T__32: - { - setState(125); - dogLeg(); - } - break; - case T__12: - { - setState(126); - copyData(); - } - break; - case T__38: - { - setState(127); - dropFile(); - } - break; - case T__19: - { - setState(128); - loadCsv(); - } - break; - case T__40: - { - setState(129); - restApi(); - } - break; - case T__17: - { - setState(130); - transform(); - } - break; - case T__6: - { - setState(131); - multitude(); - } - break; - case T__48: - { - setState(132); - exportCsv(); - } - break; - case T__58: - { - setState(133); - createDirectory(); - } - break; - case T__59: - { - setState(134); - createFile(); - } - break; - case T__62: - { - setState(135); - deleteFileDirectory(); - } - break; - case T__63: - { - setState(136); - transferFileDirectory(); - } - break; - case T__56: - { - setState(137); - createTAR(); - } - break; - case T__54: - { - setState(138); - extractTAR(); - } - break; - case T__51: - { - setState(139); - importCsvToDB(); - } - break; - case T__65: - { - setState(140); - producerConsumerModel(); - } - break; - case T__69: - { - setState(141); - producer(); - } - break; - case T__72: - { - setState(142); - consumer(); - } - break; - case T__77: - { - setState(143); - pushJson(); - } - break; - case T__80: - { - setState(144); - mapJsonContext(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MultitudeContext extends ParserRuleContext { - public Token name; - public Token on; - public ActionContext action; - public List actions = new ArrayList(); - public ExpressionContext condition; - public Token writeThreadCount; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List action() { - return getRuleContexts(ActionContext.class); - } - public ActionContext action(int i) { - return getRuleContext(ActionContext.class,i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public List NON_ZERO_DIGIT() { return getTokens(RavenParser.NON_ZERO_DIGIT); } - public TerminalNode NON_ZERO_DIGIT(int i) { - return getToken(RavenParser.NON_ZERO_DIGIT, i); - } - public MultitudeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_multitude; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterMultitude(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitMultitude(this); - } - } - - public final MultitudeContext multitude() throws RecognitionException { - MultitudeContext _localctx = new MultitudeContext(_ctx, getState()); - enterRule(_localctx, 10, RULE_multitude); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(147); - match(T__6); - setState(148); - match(T__7); - setState(149); - ((MultitudeContext)_localctx).name = match(STRING); - setState(154); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__8) { - { - { - setState(150); - match(T__8); - setState(151); - ((MultitudeContext)_localctx).on = match(STRING); - } - } - setState(156); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(157); - match(T__9); - setState(158); - match(T__1); - setState(162); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__12) | (1L << T__17) | (1L << T__19) | (1L << T__23) | (1L << T__24) | (1L << T__29) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__38) | (1L << T__40) | (1L << T__48) | (1L << T__51) | (1L << T__54) | (1L << T__56) | (1L << T__58) | (1L << T__59) | (1L << T__62))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (T__63 - 64)) | (1L << (T__65 - 64)) | (1L << (T__69 - 64)) | (1L << (T__72 - 64)) | (1L << (T__77 - 64)) | (1L << (T__80 - 64)))) != 0)) { - { - { - setState(159); - ((MultitudeContext)_localctx).action = action(); - ((MultitudeContext)_localctx).actions.add(((MultitudeContext)_localctx).action); - } - } - setState(164); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(165); - match(T__2); - setState(170); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(166); - match(T__10); - setState(167); - ((MultitudeContext)_localctx).condition = expression(); - } - } - setState(172); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(177); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__11) { - { - { - setState(173); - match(T__11); - setState(174); - ((MultitudeContext)_localctx).writeThreadCount = match(NON_ZERO_DIGIT); - } - } - setState(179); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CopyDataContext extends ParserRuleContext { - public Token name; - public Token source; - public Token to; - public Token value; - public ExpressionContext condition; - public Token writeThreadCount; - public Token fetchBatchSize; - public Token writeBatchSize; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public List NON_ZERO_DIGIT() { return getTokens(RavenParser.NON_ZERO_DIGIT); } - public TerminalNode NON_ZERO_DIGIT(int i) { - return getToken(RavenParser.NON_ZERO_DIGIT, i); - } - public CopyDataContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_copyData; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCopyData(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCopyData(this); - } - } - - public final CopyDataContext copyData() throws RecognitionException { - CopyDataContext _localctx = new CopyDataContext(_ctx, getState()); - enterRule(_localctx, 12, RULE_copyData); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - { - setState(180); - match(T__12); - setState(181); - match(T__7); - setState(182); - ((CopyDataContext)_localctx).name = match(STRING); - setState(183); - match(T__13); - setState(184); - ((CopyDataContext)_localctx).source = match(STRING); - setState(185); - match(T__14); - setState(186); - ((CopyDataContext)_localctx).to = match(STRING); - setState(187); - match(T__9); - setState(188); - match(T__1); - setState(189); - ((CopyDataContext)_localctx).value = match(STRING); - setState(190); - match(T__2); - setState(195); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(191); - match(T__10); - setState(192); - ((CopyDataContext)_localctx).condition = expression(); - } - } - setState(197); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(202); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__11) { - { - { - setState(198); - match(T__11); - setState(199); - ((CopyDataContext)_localctx).writeThreadCount = match(NON_ZERO_DIGIT); - } - } - setState(204); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(209); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__15) { - { - { - setState(205); - match(T__15); - setState(206); - ((CopyDataContext)_localctx).fetchBatchSize = match(NON_ZERO_DIGIT); - } - } - setState(211); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(216); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__16) { - { - { - setState(212); - match(T__16); - setState(213); - ((CopyDataContext)_localctx).writeBatchSize = match(NON_ZERO_DIGIT); - } - } - setState(218); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TransformContext extends ParserRuleContext { - public Token name; - public Token on; - public Token STRING; - public List value = new ArrayList(); - public ExpressionContext condition; - public ExpressionContext format; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public TransformContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_transform; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterTransform(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitTransform(this); - } - } - - public final TransformContext transform() throws RecognitionException { - TransformContext _localctx = new TransformContext(_ctx, getState()); - enterRule(_localctx, 14, RULE_transform); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(219); - match(T__17); - setState(220); - match(T__7); - setState(221); - ((TransformContext)_localctx).name = match(STRING); - setState(222); - match(T__8); - setState(223); - ((TransformContext)_localctx).on = match(STRING); - setState(224); - match(T__9); - setState(225); - match(T__1); - setState(226); - ((TransformContext)_localctx).STRING = match(STRING); - ((TransformContext)_localctx).value.add(((TransformContext)_localctx).STRING); - setState(227); - match(T__2); - setState(232); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(228); - match(T__10); - setState(229); - ((TransformContext)_localctx).condition = expression(); - } - } - setState(234); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(239); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__18) { - { - { - setState(235); - match(T__18); - setState(236); - ((TransformContext)_localctx).format = expression(); - } - } - setState(241); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LoadCsvContext extends ParserRuleContext { - public Token name; - public Token pid; - public Token source; - public Token to; - public Token delim; - public Token limit; - public Token value; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public LoadCsvContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_loadCsv; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterLoadCsv(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitLoadCsv(this); - } - } - - public final LoadCsvContext loadCsv() throws RecognitionException { - LoadCsvContext _localctx = new LoadCsvContext(_ctx, getState()); - enterRule(_localctx, 16, RULE_loadCsv); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(242); - match(T__19); - setState(243); - match(T__7); - setState(244); - ((LoadCsvContext)_localctx).name = match(STRING); - setState(245); - match(T__20); - setState(246); - ((LoadCsvContext)_localctx).pid = match(STRING); - setState(247); - match(T__13); - setState(248); - ((LoadCsvContext)_localctx).source = match(STRING); - setState(249); - match(T__14); - setState(250); - ((LoadCsvContext)_localctx).to = match(STRING); - setState(251); - match(T__21); - setState(252); - ((LoadCsvContext)_localctx).delim = match(STRING); - setState(253); - match(T__22); - setState(254); - ((LoadCsvContext)_localctx).limit = match(STRING); - setState(255); - match(T__9); - setState(256); - match(T__1); - setState(257); - ((LoadCsvContext)_localctx).value = match(STRING); - setState(258); - match(T__2); - setState(263); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(259); - match(T__10); - setState(260); - ((LoadCsvContext)_localctx).condition = expression(); - } - } - setState(265); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AbortContext extends ParserRuleContext { - public Token name; - public Token value; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public AbortContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_abort; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAbort(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAbort(this); - } - } - - public final AbortContext abort() throws RecognitionException { - AbortContext _localctx = new AbortContext(_ctx, getState()); - enterRule(_localctx, 18, RULE_abort); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(266); - match(T__23); - setState(267); - match(T__7); - setState(268); - ((AbortContext)_localctx).name = match(STRING); - setState(269); - match(T__1); - setState(270); - ((AbortContext)_localctx).value = match(STRING); - setState(271); - match(T__2); - setState(276); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(272); - match(T__10); - setState(273); - ((AbortContext)_localctx).condition = expression(); - } - } - setState(278); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CallProcessContext extends ParserRuleContext { - public Token name; - public Token target; - public Token source; - public Token datasource; - public Token value; - public ExpressionContext condition; - public Token forkBatchSize; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public CallProcessContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_callProcess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCallProcess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCallProcess(this); - } - } - - public final CallProcessContext callProcess() throws RecognitionException { - CallProcessContext _localctx = new CallProcessContext(_ctx, getState()); - enterRule(_localctx, 20, RULE_callProcess); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(279); - match(T__24); - setState(280); - match(T__7); - setState(281); - ((CallProcessContext)_localctx).name = match(STRING); - setState(282); - match(T__25); - setState(283); - ((CallProcessContext)_localctx).target = match(STRING); - setState(284); - match(T__26); - setState(285); - ((CallProcessContext)_localctx).source = match(STRING); - setState(286); - match(T__9); - setState(287); - ((CallProcessContext)_localctx).datasource = match(STRING); - setState(288); - match(T__27); - setState(289); - match(T__1); - setState(290); - ((CallProcessContext)_localctx).value = match(STRING); - setState(291); - match(T__2); - setState(296); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(292); - match(T__10); - setState(293); - ((CallProcessContext)_localctx).condition = expression(); - } - } - setState(298); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(303); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__28) { - { - { - setState(299); - match(T__28); - setState(300); - ((CallProcessContext)_localctx).forkBatchSize = match(STRING); - } - } - setState(305); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ForkProcessContext extends ParserRuleContext { - public Token name; - public Token target; - public Token source; - public Token datasource; - public Token value; - public Token forkBatchSize; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public ForkProcessContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_forkProcess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterForkProcess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitForkProcess(this); - } - } - - public final ForkProcessContext forkProcess() throws RecognitionException { - ForkProcessContext _localctx = new ForkProcessContext(_ctx, getState()); - enterRule(_localctx, 22, RULE_forkProcess); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(306); - match(T__29); - setState(307); - match(T__7); - setState(308); - ((ForkProcessContext)_localctx).name = match(STRING); - setState(309); - match(T__25); - setState(310); - ((ForkProcessContext)_localctx).target = match(STRING); - setState(311); - match(T__26); - setState(312); - ((ForkProcessContext)_localctx).source = match(STRING); - setState(313); - match(T__9); - setState(314); - ((ForkProcessContext)_localctx).datasource = match(STRING); - setState(315); - match(T__27); - setState(316); - match(T__1); - setState(317); - ((ForkProcessContext)_localctx).value = match(STRING); - setState(318); - match(T__2); - setState(323); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__30) { - { - { - setState(319); - match(T__30); - setState(320); - ((ForkProcessContext)_localctx).forkBatchSize = match(STRING); - } - } - setState(325); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(330); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(326); - match(T__10); - setState(327); - ((ForkProcessContext)_localctx).condition = expression(); - } - } - setState(332); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SpawnProcessContext extends ParserRuleContext { - public Token name; - public Token target; - public Token source; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public SpawnProcessContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_spawnProcess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterSpawnProcess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitSpawnProcess(this); - } - } - - public final SpawnProcessContext spawnProcess() throws RecognitionException { - SpawnProcessContext _localctx = new SpawnProcessContext(_ctx, getState()); - enterRule(_localctx, 24, RULE_spawnProcess); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(333); - match(T__31); - setState(334); - match(T__7); - setState(335); - ((SpawnProcessContext)_localctx).name = match(STRING); - setState(336); - match(T__25); - setState(337); - ((SpawnProcessContext)_localctx).target = match(STRING); - setState(338); - match(T__26); - setState(339); - ((SpawnProcessContext)_localctx).source = match(STRING); - setState(344); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(340); - match(T__10); - setState(341); - ((SpawnProcessContext)_localctx).condition = expression(); - } - } - setState(346); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class DogLegContext extends ParserRuleContext { - public Token name; - public Token inheritContext; - public StartProcessContext startProcess; - public List processList = new ArrayList(); - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public StartProcessContext startProcess() { - return getRuleContext(StartProcessContext.class,0); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public DogLegContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_dogLeg; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDogLeg(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDogLeg(this); - } - } - - public final DogLegContext dogLeg() throws RecognitionException { - DogLegContext _localctx = new DogLegContext(_ctx, getState()); - enterRule(_localctx, 26, RULE_dogLeg); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(347); - match(T__32); - setState(348); - match(T__7); - setState(349); - ((DogLegContext)_localctx).name = match(STRING); - setState(350); - match(T__33); - setState(351); - ((DogLegContext)_localctx).inheritContext = match(STRING); - setState(352); - match(T__9); - setState(353); - match(T__1); - setState(354); - ((DogLegContext)_localctx).startProcess = startProcess(); - ((DogLegContext)_localctx).processList.add(((DogLegContext)_localctx).startProcess); - setState(355); - match(T__2); - setState(360); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(356); - match(T__10); - setState(357); - ((DogLegContext)_localctx).condition = expression(); - } - } - setState(362); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class StartProcessContext extends ParserRuleContext { - public Token name; - public Token target; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public StartProcessContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_startProcess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterStartProcess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitStartProcess(this); - } - } - - public final StartProcessContext startProcess() throws RecognitionException { - StartProcessContext _localctx = new StartProcessContext(_ctx, getState()); - enterRule(_localctx, 28, RULE_startProcess); - try { - enterOuterAlt(_localctx, 1); - { - setState(363); - match(T__34); - setState(364); - ((StartProcessContext)_localctx).name = match(STRING); - setState(365); - match(T__35); - setState(366); - ((StartProcessContext)_localctx).target = match(STRING); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AssignContext extends ParserRuleContext { - public Token name; - public Token source; - public Token value; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public AssignContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_assign; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAssign(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAssign(this); - } - } - - public final AssignContext assign() throws RecognitionException { - AssignContext _localctx = new AssignContext(_ctx, getState()); - enterRule(_localctx, 30, RULE_assign); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(368); - match(T__36); - setState(369); - match(T__7); - setState(370); - ((AssignContext)_localctx).name = match(STRING); - setState(371); - match(T__37); - setState(372); - ((AssignContext)_localctx).source = match(STRING); - setState(373); - match(T__9); - setState(374); - match(T__1); - setState(375); - ((AssignContext)_localctx).value = match(STRING); - setState(376); - match(T__2); - setState(381); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(377); - match(T__10); - setState(378); - ((AssignContext)_localctx).condition = expression(); - } - } - setState(383); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class DropFileContext extends ParserRuleContext { - public Token name; - public Token target; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public DropFileContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_dropFile; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDropFile(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDropFile(this); - } - } - - public final DropFileContext dropFile() throws RecognitionException { - DropFileContext _localctx = new DropFileContext(_ctx, getState()); - enterRule(_localctx, 32, RULE_dropFile); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(384); - match(T__38); - setState(385); - match(T__7); - setState(386); - ((DropFileContext)_localctx).name = match(STRING); - setState(387); - match(T__39); - setState(388); - ((DropFileContext)_localctx).target = match(STRING); - setState(393); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(389); - match(T__10); - setState(390); - ((DropFileContext)_localctx).condition = expression(); - } - } - setState(395); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class RestApiContext extends ParserRuleContext { - public Token name; - public Token source; - public Token url; - public Token method; - public JsonContext headers; - public JsonContext params; - public Token bodyType; - public RestPartContext restPart; - public List value = new ArrayList(); - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List json() { - return getRuleContexts(JsonContext.class); - } - public JsonContext json(int i) { - return getRuleContext(JsonContext.class,i); - } - public List restPart() { - return getRuleContexts(RestPartContext.class); - } - public RestPartContext restPart(int i) { - return getRuleContext(RestPartContext.class,i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public RestApiContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_restApi; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterRestApi(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitRestApi(this); - } - } - - public final RestApiContext restApi() throws RecognitionException { - RestApiContext _localctx = new RestApiContext(_ctx, getState()); - enterRule(_localctx, 34, RULE_restApi); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(396); - match(T__40); - setState(397); - match(T__7); - setState(398); - ((RestApiContext)_localctx).name = match(STRING); - setState(399); - match(T__37); - setState(400); - ((RestApiContext)_localctx).source = match(STRING); - setState(401); - match(T__9); - setState(402); - match(T__41); - setState(403); - ((RestApiContext)_localctx).url = match(STRING); - setState(404); - match(T__42); - setState(405); - ((RestApiContext)_localctx).method = match(STRING); - setState(410); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__43) { - { - { - setState(406); - match(T__43); - setState(407); - ((RestApiContext)_localctx).headers = json(); - } - } - setState(412); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(417); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__44) { - { - { - setState(413); - match(T__44); - setState(414); - ((RestApiContext)_localctx).params = json(); - } - } - setState(419); - _errHandler.sync(this); - _la = _input.LA(1); - } - { - setState(420); - match(T__45); - setState(421); - match(T__1); - setState(422); - ((RestApiContext)_localctx).bodyType = match(STRING); - setState(423); - match(T__2); - } - setState(425); - match(T__1); - setState(429); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__46) { - { - { - setState(426); - ((RestApiContext)_localctx).restPart = restPart(); - ((RestApiContext)_localctx).value.add(((RestApiContext)_localctx).restPart); - } - } - setState(431); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(432); - match(T__2); - setState(437); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(433); - match(T__10); - setState(434); - ((RestApiContext)_localctx).condition = expression(); - } - } - setState(439); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class RestPartContext extends ParserRuleContext { - public Token partName; - public Token partData; - public Token type; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public RestPartContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_restPart; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterRestPart(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitRestPart(this); - } - } - - public final RestPartContext restPart() throws RecognitionException { - RestPartContext _localctx = new RestPartContext(_ctx, getState()); - enterRule(_localctx, 36, RULE_restPart); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(440); - match(T__46); - setState(441); - match(T__7); - setState(442); - ((RestPartContext)_localctx).partName = match(STRING); - setState(443); - match(T__21); - setState(444); - ((RestPartContext)_localctx).partData = match(STRING); - setState(449); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__47) { - { - { - setState(445); - match(T__47); - setState(446); - ((RestPartContext)_localctx).type = match(STRING); - } - } - setState(451); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(452); - match(T__2); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExportCsvContext extends ParserRuleContext { - public Token name; - public Token source; - public Token executionSource; - public Token stmt; - public Token targetLocation; - public ExpressionContext condition; - public Token writeThreadCount; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public ExportCsvContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_exportCsv; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterExportCsv(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitExportCsv(this); - } - } - - public final ExportCsvContext exportCsv() throws RecognitionException { - ExportCsvContext _localctx = new ExportCsvContext(_ctx, getState()); - enterRule(_localctx, 38, RULE_exportCsv); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(454); - match(T__48); - setState(455); - match(T__7); - setState(456); - ((ExportCsvContext)_localctx).name = match(STRING); - setState(457); - match(T__37); - setState(458); - ((ExportCsvContext)_localctx).source = match(STRING); - setState(459); - match(T__49); - setState(460); - ((ExportCsvContext)_localctx).executionSource = match(STRING); - setState(465); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__9) { - { - { - setState(461); - match(T__9); - setState(462); - ((ExportCsvContext)_localctx).stmt = match(STRING); - } - } - setState(467); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(468); - match(T__50); - setState(469); - ((ExportCsvContext)_localctx).targetLocation = match(STRING); - setState(470); - match(T__9); - setState(471); - match(T__1); - setState(472); - match(T__2); - setState(477); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(473); - match(T__10); - setState(474); - ((ExportCsvContext)_localctx).condition = expression(); - } - } - setState(479); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(484); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__11) { - { - { - setState(480); - match(T__11); - setState(481); - ((ExportCsvContext)_localctx).writeThreadCount = match(STRING); - } - } - setState(486); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ImportCsvToDBContext extends ParserRuleContext { - public Token name; - public ResourceContext target; - public Token tableName; - public Token STRING; - public List value = new ArrayList(); - public ExpressionContext condition; - public Token writeThreadCount; - public Token batchSize; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public ResourceContext resource() { - return getRuleContext(ResourceContext.class,0); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public ImportCsvToDBContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_importCsvToDB; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterImportCsvToDB(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitImportCsvToDB(this); - } - } - - public final ImportCsvToDBContext importCsvToDB() throws RecognitionException { - ImportCsvToDBContext _localctx = new ImportCsvToDBContext(_ctx, getState()); - enterRule(_localctx, 40, RULE_importCsvToDB); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(487); - match(T__51); - setState(488); - match(T__7); - setState(489); - ((ImportCsvToDBContext)_localctx).name = match(STRING); - setState(490); - match(T__52); - setState(491); - ((ImportCsvToDBContext)_localctx).target = resource(); - setState(492); - match(T__8); - setState(493); - ((ImportCsvToDBContext)_localctx).tableName = match(STRING); - setState(494); - match(T__9); - setState(495); - match(T__1); - setState(496); - ((ImportCsvToDBContext)_localctx).STRING = match(STRING); - ((ImportCsvToDBContext)_localctx).value.add(((ImportCsvToDBContext)_localctx).STRING); - setState(497); - match(T__2); - setState(502); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(498); - match(T__10); - setState(499); - ((ImportCsvToDBContext)_localctx).condition = expression(); - } - } - setState(504); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(509); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__11) { - { - { - setState(505); - match(T__11); - setState(506); - ((ImportCsvToDBContext)_localctx).writeThreadCount = match(STRING); - } - } - setState(511); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(516); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__53) { - { - { - setState(512); - match(T__53); - setState(513); - ((ImportCsvToDBContext)_localctx).batchSize = match(STRING); - } - } - setState(518); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExtractTARContext extends ParserRuleContext { - public Token name; - public Token source; - public Token destination; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public ExtractTARContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_extractTAR; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterExtractTAR(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitExtractTAR(this); - } - } - - public final ExtractTARContext extractTAR() throws RecognitionException { - ExtractTARContext _localctx = new ExtractTARContext(_ctx, getState()); - enterRule(_localctx, 42, RULE_extractTAR); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(519); - match(T__54); - setState(520); - match(T__7); - setState(521); - ((ExtractTARContext)_localctx).name = match(STRING); - setState(522); - match(T__13); - setState(523); - ((ExtractTARContext)_localctx).source = match(STRING); - setState(524); - match(T__55); - setState(525); - ((ExtractTARContext)_localctx).destination = match(STRING); - setState(526); - match(T__9); - setState(527); - match(T__1); - setState(528); - match(T__2); - setState(533); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(529); - match(T__10); - setState(530); - ((ExtractTARContext)_localctx).condition = expression(); - } - } - setState(535); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CreateTARContext extends ParserRuleContext { - public Token name; - public Token source; - public Token destination; - public Token extension; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public CreateTARContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_createTAR; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCreateTAR(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCreateTAR(this); - } - } - - public final CreateTARContext createTAR() throws RecognitionException { - CreateTARContext _localctx = new CreateTARContext(_ctx, getState()); - enterRule(_localctx, 44, RULE_createTAR); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(536); - match(T__56); - setState(537); - match(T__7); - setState(538); - ((CreateTARContext)_localctx).name = match(STRING); - setState(539); - match(T__13); - setState(540); - ((CreateTARContext)_localctx).source = match(STRING); - setState(541); - match(T__55); - setState(542); - ((CreateTARContext)_localctx).destination = match(STRING); - setState(543); - match(T__57); - setState(544); - ((CreateTARContext)_localctx).extension = match(STRING); - setState(545); - match(T__9); - setState(546); - match(T__1); - setState(547); - match(T__2); - setState(552); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(548); - match(T__10); - setState(549); - ((CreateTARContext)_localctx).condition = expression(); - } - } - setState(554); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CreateDirectoryContext extends ParserRuleContext { - public Token name; - public Token STRING; - public List directoryPath = new ArrayList(); - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public CreateDirectoryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_createDirectory; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCreateDirectory(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCreateDirectory(this); - } - } - - public final CreateDirectoryContext createDirectory() throws RecognitionException { - CreateDirectoryContext _localctx = new CreateDirectoryContext(_ctx, getState()); - enterRule(_localctx, 46, RULE_createDirectory); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(555); - match(T__58); - setState(556); - match(T__7); - setState(557); - ((CreateDirectoryContext)_localctx).name = match(STRING); - setState(558); - match(T__9); - setState(559); - match(T__1); - setState(560); - ((CreateDirectoryContext)_localctx).STRING = match(STRING); - ((CreateDirectoryContext)_localctx).directoryPath.add(((CreateDirectoryContext)_localctx).STRING); - setState(561); - match(T__2); - setState(566); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(562); - match(T__10); - setState(563); - ((CreateDirectoryContext)_localctx).condition = expression(); - } - } - setState(568); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CreateFileContext extends ParserRuleContext { - public Token name; - public Token location; - public Token fileName; - public Token extension; - public Token value; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public CreateFileContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_createFile; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCreateFile(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCreateFile(this); - } - } - - public final CreateFileContext createFile() throws RecognitionException { - CreateFileContext _localctx = new CreateFileContext(_ctx, getState()); - enterRule(_localctx, 48, RULE_createFile); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(569); - match(T__59); - setState(570); - match(T__7); - setState(571); - ((CreateFileContext)_localctx).name = match(STRING); - setState(572); - match(T__60); - setState(573); - ((CreateFileContext)_localctx).location = match(STRING); - setState(574); - match(T__61); - setState(575); - ((CreateFileContext)_localctx).fileName = match(STRING); - setState(576); - match(T__57); - setState(577); - ((CreateFileContext)_localctx).extension = match(STRING); - setState(578); - match(T__9); - setState(579); - match(T__1); - setState(580); - ((CreateFileContext)_localctx).value = match(STRING); - setState(581); - match(T__2); - setState(586); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(582); - match(T__10); - setState(583); - ((CreateFileContext)_localctx).condition = expression(); - } - } - setState(588); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class DeleteFileDirectoryContext extends ParserRuleContext { - public Token name; - public Token STRING; - public List path = new ArrayList(); - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public DeleteFileDirectoryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_deleteFileDirectory; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDeleteFileDirectory(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDeleteFileDirectory(this); - } - } - - public final DeleteFileDirectoryContext deleteFileDirectory() throws RecognitionException { - DeleteFileDirectoryContext _localctx = new DeleteFileDirectoryContext(_ctx, getState()); - enterRule(_localctx, 50, RULE_deleteFileDirectory); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(589); - match(T__62); - setState(590); - match(T__7); - setState(591); - ((DeleteFileDirectoryContext)_localctx).name = match(STRING); - setState(592); - match(T__9); - setState(593); - match(T__1); - setState(594); - ((DeleteFileDirectoryContext)_localctx).STRING = match(STRING); - ((DeleteFileDirectoryContext)_localctx).path.add(((DeleteFileDirectoryContext)_localctx).STRING); - setState(595); - match(T__2); - setState(600); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(596); - match(T__10); - setState(597); - ((DeleteFileDirectoryContext)_localctx).condition = expression(); - } - } - setState(602); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TransferFileDirectoryContext extends ParserRuleContext { - public Token name; - public Token source; - public Token to; - public Token operation; - public Token value; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public TransferFileDirectoryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_transferFileDirectory; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterTransferFileDirectory(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitTransferFileDirectory(this); - } - } - - public final TransferFileDirectoryContext transferFileDirectory() throws RecognitionException { - TransferFileDirectoryContext _localctx = new TransferFileDirectoryContext(_ctx, getState()); - enterRule(_localctx, 52, RULE_transferFileDirectory); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(603); - match(T__63); - setState(604); - match(T__7); - setState(605); - ((TransferFileDirectoryContext)_localctx).name = match(STRING); - setState(606); - match(T__13); - setState(607); - ((TransferFileDirectoryContext)_localctx).source = match(STRING); - setState(608); - match(T__14); - setState(609); - ((TransferFileDirectoryContext)_localctx).to = match(STRING); - setState(610); - match(T__64); - setState(611); - ((TransferFileDirectoryContext)_localctx).operation = match(STRING); - setState(612); - match(T__9); - setState(613); - ((TransferFileDirectoryContext)_localctx).value = match(STRING); - setState(614); - match(T__2); - setState(619); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(615); - match(T__10); - setState(616); - ((TransferFileDirectoryContext)_localctx).condition = expression(); - } - } - setState(621); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ProducerConsumerModelContext extends ParserRuleContext { - public Token name; - public ResourceContext source; - public ProducerContext producer; - public List produce = new ArrayList(); - public Token produceThreadCount; - public ConsumerContext consumer; - public List consume = new ArrayList(); - public Token consumeThreadCount; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public ResourceContext resource() { - return getRuleContext(ResourceContext.class,0); - } - public ProducerContext producer() { - return getRuleContext(ProducerContext.class,0); - } - public ConsumerContext consumer() { - return getRuleContext(ConsumerContext.class,0); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public ProducerConsumerModelContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_producerConsumerModel; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterProducerConsumerModel(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitProducerConsumerModel(this); - } - } - - public final ProducerConsumerModelContext producerConsumerModel() throws RecognitionException { - ProducerConsumerModelContext _localctx = new ProducerConsumerModelContext(_ctx, getState()); - enterRule(_localctx, 54, RULE_producerConsumerModel); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(622); - match(T__65); - setState(623); - match(T__7); - setState(624); - ((ProducerConsumerModelContext)_localctx).name = match(STRING); - setState(625); - match(T__66); - setState(626); - ((ProducerConsumerModelContext)_localctx).source = resource(); - setState(627); - match(T__67); - setState(628); - match(T__1); - setState(629); - ((ProducerConsumerModelContext)_localctx).producer = producer(); - ((ProducerConsumerModelContext)_localctx).produce.add(((ProducerConsumerModelContext)_localctx).producer); - setState(630); - match(T__2); - setState(635); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__11) { - { - { - setState(631); - match(T__11); - setState(632); - ((ProducerConsumerModelContext)_localctx).produceThreadCount = match(STRING); - } - } - setState(637); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(638); - match(T__68); - setState(639); - match(T__1); - setState(640); - ((ProducerConsumerModelContext)_localctx).consumer = consumer(); - ((ProducerConsumerModelContext)_localctx).consume.add(((ProducerConsumerModelContext)_localctx).consumer); - setState(641); - match(T__2); - setState(646); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__11) { - { - { - setState(642); - match(T__11); - setState(643); - ((ProducerConsumerModelContext)_localctx).consumeThreadCount = match(STRING); - } - } - setState(648); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(653); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(649); - match(T__10); - setState(650); - ((ProducerConsumerModelContext)_localctx).condition = expression(); - } - } - setState(655); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ProducerContext extends ParserRuleContext { - public Token name; - public Token push; - public ResourceContext source; - public Token stmt; - public ActionContext action; - public List actions = new ArrayList(); - public ExpressionContext condition; - public Token threadCount; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List resource() { - return getRuleContexts(ResourceContext.class); - } - public ResourceContext resource(int i) { - return getRuleContext(ResourceContext.class,i); - } - public List action() { - return getRuleContexts(ActionContext.class); - } - public ActionContext action(int i) { - return getRuleContext(ActionContext.class,i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public ProducerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_producer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterProducer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitProducer(this); - } - } - - public final ProducerContext producer() throws RecognitionException { - ProducerContext _localctx = new ProducerContext(_ctx, getState()); - enterRule(_localctx, 56, RULE_producer); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(656); - match(T__69); - setState(657); - match(T__7); - setState(658); - ((ProducerContext)_localctx).name = match(STRING); - setState(663); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__70) { - { - { - setState(659); - match(T__70); - setState(660); - ((ProducerContext)_localctx).push = match(STRING); - } - } - setState(665); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(670); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__66) { - { - { - setState(666); - match(T__66); - setState(667); - ((ProducerContext)_localctx).source = resource(); - } - } - setState(672); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(673); - match(T__27); - setState(674); - match(T__1); - setState(675); - ((ProducerContext)_localctx).stmt = match(STRING); - setState(676); - match(T__2); - setState(677); - match(T__71); - setState(678); - match(T__1); - setState(682); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__12) | (1L << T__17) | (1L << T__19) | (1L << T__23) | (1L << T__24) | (1L << T__29) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__38) | (1L << T__40) | (1L << T__48) | (1L << T__51) | (1L << T__54) | (1L << T__56) | (1L << T__58) | (1L << T__59) | (1L << T__62))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (T__63 - 64)) | (1L << (T__65 - 64)) | (1L << (T__69 - 64)) | (1L << (T__72 - 64)) | (1L << (T__77 - 64)) | (1L << (T__80 - 64)))) != 0)) { - { - { - setState(679); - ((ProducerContext)_localctx).action = action(); - ((ProducerContext)_localctx).actions.add(((ProducerContext)_localctx).action); - } - } - setState(684); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(685); - match(T__2); - setState(690); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(686); - match(T__10); - setState(687); - ((ProducerContext)_localctx).condition = expression(); - } - } - setState(692); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(697); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__11) { - { - { - setState(693); - match(T__11); - setState(694); - ((ProducerContext)_localctx).threadCount = match(STRING); - } - } - setState(699); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConsumerContext extends ParserRuleContext { - public Token name; - public Token event; - public ResourceContext source; - public Token pop; - public Token limit; - public ActionContext action; - public List actions = new ArrayList(); - public ExpressionContext condition; - public Token threadCount; - public ExpressionContext standalone; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List resource() { - return getRuleContexts(ResourceContext.class); - } - public ResourceContext resource(int i) { - return getRuleContext(ResourceContext.class,i); - } - public List action() { - return getRuleContexts(ActionContext.class); - } - public ActionContext action(int i) { - return getRuleContext(ActionContext.class,i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public ConsumerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_consumer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterConsumer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitConsumer(this); - } - } - - public final ConsumerContext consumer() throws RecognitionException { - ConsumerContext _localctx = new ConsumerContext(_ctx, getState()); - enterRule(_localctx, 58, RULE_consumer); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(700); - match(T__72); - setState(701); - match(T__7); - setState(702); - ((ConsumerContext)_localctx).name = match(STRING); - setState(709); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__73) { - { - { - setState(703); - match(T__73); - setState(704); - ((ConsumerContext)_localctx).event = match(STRING); - setState(705); - match(T__66); - setState(706); - ((ConsumerContext)_localctx).source = resource(); - } - } - setState(711); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(718); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__74) { - { - { - setState(712); - match(T__74); - setState(713); - ((ConsumerContext)_localctx).pop = match(STRING); - setState(714); - match(T__75); - setState(715); - ((ConsumerContext)_localctx).limit = match(STRING); - } - } - setState(720); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(721); - match(T__71); - setState(722); - match(T__1); - setState(726); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__12) | (1L << T__17) | (1L << T__19) | (1L << T__23) | (1L << T__24) | (1L << T__29) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__38) | (1L << T__40) | (1L << T__48) | (1L << T__51) | (1L << T__54) | (1L << T__56) | (1L << T__58) | (1L << T__59) | (1L << T__62))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (T__63 - 64)) | (1L << (T__65 - 64)) | (1L << (T__69 - 64)) | (1L << (T__72 - 64)) | (1L << (T__77 - 64)) | (1L << (T__80 - 64)))) != 0)) { - { - { - setState(723); - ((ConsumerContext)_localctx).action = action(); - ((ConsumerContext)_localctx).actions.add(((ConsumerContext)_localctx).action); - } - } - setState(728); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(729); - match(T__2); - setState(734); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(730); - match(T__10); - setState(731); - ((ConsumerContext)_localctx).condition = expression(); - } - } - setState(736); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(741); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__11) { - { - { - setState(737); - match(T__11); - setState(738); - ((ConsumerContext)_localctx).threadCount = match(STRING); - } - } - setState(743); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(748); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__76) { - { - { - setState(744); - match(T__76); - setState(745); - ((ConsumerContext)_localctx).standalone = expression(); - } - } - setState(750); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PushJsonContext extends ParserRuleContext { - public Token name; - public Token key; - public JsonContext value; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public JsonContext json() { - return getRuleContext(JsonContext.class,0); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public PushJsonContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_pushJson; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterPushJson(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitPushJson(this); - } - } - - public final PushJsonContext pushJson() throws RecognitionException { - PushJsonContext _localctx = new PushJsonContext(_ctx, getState()); - enterRule(_localctx, 60, RULE_pushJson); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(751); - match(T__77); - setState(752); - match(T__7); - setState(753); - ((PushJsonContext)_localctx).name = match(STRING); - setState(754); - match(T__78); - setState(755); - ((PushJsonContext)_localctx).key = match(STRING); - setState(756); - match(T__79); - setState(757); - match(T__1); - setState(758); - ((PushJsonContext)_localctx).value = json(); - setState(759); - match(T__2); - setState(764); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(760); - match(T__10); - setState(761); - ((PushJsonContext)_localctx).condition = expression(); - } - } - setState(766); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MapJsonContextContext extends ParserRuleContext { - public Token name; - public Token value; - public ExpressionContext condition; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public MapJsonContextContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_mapJsonContext; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterMapJsonContext(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitMapJsonContext(this); - } - } - - public final MapJsonContextContext mapJsonContext() throws RecognitionException { - MapJsonContextContext _localctx = new MapJsonContextContext(_ctx, getState()); - enterRule(_localctx, 62, RULE_mapJsonContext); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(767); - match(T__80); - setState(768); - match(T__7); - setState(769); - ((MapJsonContextContext)_localctx).name = match(STRING); - setState(770); - match(T__9); - setState(771); - match(T__1); - setState(772); - ((MapJsonContextContext)_localctx).value = match(STRING); - setState(773); - match(T__2); - setState(778); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__10) { - { - { - setState(774); - match(T__10); - setState(775); - ((MapJsonContextContext)_localctx).condition = expression(); - } - } - setState(780); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExpressionContext extends ParserRuleContext { - public Token lhs; - public Token operator; - public Token rhs; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public TerminalNode Operator() { return getToken(RavenParser.Operator, 0); } - public ExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_expression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitExpression(this); - } - } - - public final ExpressionContext expression() throws RecognitionException { - ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); - enterRule(_localctx, 64, RULE_expression); - try { - enterOuterAlt(_localctx, 1); - { - setState(781); - match(T__81); - { - setState(782); - ((ExpressionContext)_localctx).lhs = match(STRING); - setState(783); - ((ExpressionContext)_localctx).operator = match(Operator); - setState(784); - ((ExpressionContext)_localctx).rhs = match(STRING); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LogContext extends ParserRuleContext { - public Token level; - public Token message; - public List STRING() { return getTokens(RavenParser.STRING); } - public TerminalNode STRING(int i) { - return getToken(RavenParser.STRING, i); - } - public LogContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_log; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterLog(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitLog(this); - } - } - - public final LogContext log() throws RecognitionException { - LogContext _localctx = new LogContext(_ctx, getState()); - enterRule(_localctx, 66, RULE_log); - try { - enterOuterAlt(_localctx, 1); - { - setState(786); - match(T__82); - setState(787); - match(T__7); - setState(788); - match(T__83); - setState(789); - ((LogContext)_localctx).level = match(STRING); - setState(790); - match(T__21); - setState(791); - match(T__84); - setState(792); - match(T__1); - setState(793); - ((LogContext)_localctx).message = match(STRING); - setState(794); - match(T__2); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExceptionContext extends ParserRuleContext { - public Token message; - public TerminalNode STRING() { return getToken(RavenParser.STRING, 0); } - public ExceptionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_exception; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterException(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitException(this); - } - } - - public final ExceptionContext exception() throws RecognitionException { - ExceptionContext _localctx = new ExceptionContext(_ctx, getState()); - enterRule(_localctx, 68, RULE_exception); - try { - enterOuterAlt(_localctx, 1); - { - setState(796); - match(T__85); - setState(797); - match(T__1); - setState(798); - ((ExceptionContext)_localctx).message = match(STRING); - setState(799); - match(T__2); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ResourceContext extends ParserRuleContext { - public TerminalNode STRING() { return getToken(RavenParser.STRING, 0); } - public ResourceContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_resource; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterResource(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitResource(this); - } - } - - public final ResourceContext resource() throws RecognitionException { - ResourceContext _localctx = new ResourceContext(_ctx, getState()); - enterRule(_localctx, 70, RULE_resource); - try { - enterOuterAlt(_localctx, 1); - { - setState(801); - match(STRING); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class JsonContext extends ParserRuleContext { - public ObjContext obj() { - return getRuleContext(ObjContext.class,0); - } - public ArrContext arr() { - return getRuleContext(ArrContext.class,0); - } - public JsonContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_json; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterJson(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitJson(this); - } - } - - public final JsonContext json() throws RecognitionException { - JsonContext _localctx = new JsonContext(_ctx, getState()); - enterRule(_localctx, 72, RULE_json); - try { - setState(805); - _errHandler.sync(this); - switch (_input.LA(1)) { - case T__1: - enterOuterAlt(_localctx, 1); - { - setState(803); - obj(); - } - break; - case T__88: - enterOuterAlt(_localctx, 2); - { - setState(804); - arr(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ObjContext extends ParserRuleContext { - public List pair() { - return getRuleContexts(PairContext.class); - } - public PairContext pair(int i) { - return getRuleContext(PairContext.class,i); - } - public ObjContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_obj; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterObj(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitObj(this); - } - } - - public final ObjContext obj() throws RecognitionException { - ObjContext _localctx = new ObjContext(_ctx, getState()); - enterRule(_localctx, 74, RULE_obj); - int _la; - try { - setState(820); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,59,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(807); - match(T__1); - setState(808); - pair(); - setState(813); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__86) { - { - { - setState(809); - match(T__86); - setState(810); - pair(); - } - } - setState(815); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(816); - match(T__2); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(818); - match(T__1); - setState(819); - match(T__2); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PairContext extends ParserRuleContext { - public TerminalNode STRING() { return getToken(RavenParser.STRING, 0); } - public JValueContext jValue() { - return getRuleContext(JValueContext.class,0); - } - public PairContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_pair; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterPair(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitPair(this); - } - } - - public final PairContext pair() throws RecognitionException { - PairContext _localctx = new PairContext(_ctx, getState()); - enterRule(_localctx, 76, RULE_pair); - try { - enterOuterAlt(_localctx, 1); - { - setState(822); - match(STRING); - setState(823); - match(T__87); - setState(824); - jValue(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArrContext extends ParserRuleContext { - public List jValue() { - return getRuleContexts(JValueContext.class); - } - public JValueContext jValue(int i) { - return getRuleContext(JValueContext.class,i); - } - public ArrContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arr; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterArr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitArr(this); - } - } - - public final ArrContext arr() throws RecognitionException { - ArrContext _localctx = new ArrContext(_ctx, getState()); - enterRule(_localctx, 78, RULE_arr); - int _la; - try { - setState(839); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,61,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(826); - match(T__88); - setState(827); - jValue(); - setState(832); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==T__86) { - { - { - setState(828); - match(T__86); - setState(829); - jValue(); - } - } - setState(834); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(835); - match(T__89); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(837); - match(T__88); - setState(838); - match(T__89); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class JValueContext extends ParserRuleContext { - public TerminalNode STRING() { return getToken(RavenParser.STRING, 0); } - public TerminalNode NUMBER() { return getToken(RavenParser.NUMBER, 0); } - public ObjContext obj() { - return getRuleContext(ObjContext.class,0); - } - public ArrContext arr() { - return getRuleContext(ArrContext.class,0); - } - public JValueContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_jValue; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).enterJValue(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof RavenListener ) ((RavenListener)listener).exitJValue(this); - } - } - - public final JValueContext jValue() throws RecognitionException { - JValueContext _localctx = new JValueContext(_ctx, getState()); - enterRule(_localctx, 80, RULE_jValue); - try { - setState(848); - _errHandler.sync(this); - switch (_input.LA(1)) { - case STRING: - enterOuterAlt(_localctx, 1); - { - setState(841); - match(STRING); - } - break; - case NUMBER: - enterOuterAlt(_localctx, 2); - { - setState(842); - match(NUMBER); - } - break; - case T__1: - enterOuterAlt(_localctx, 3); - { - setState(843); - obj(); - } - break; - case T__88: - enterOuterAlt(_localctx, 4); - { - setState(844); - arr(); - } - break; - case T__90: - enterOuterAlt(_localctx, 5); - { - setState(845); - match(T__90); - } - break; - case T__91: - enterOuterAlt(_localctx, 6); - { - setState(846); - match(T__91); - } - break; - case T__92: - enterOuterAlt(_localctx, 7); - { - setState(847); - match(T__92); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static final String _serializedATN = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3g\u0355\4\2\t\2\4"+ - "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ - "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ - "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ - "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ - "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\3\2\3\2"+ - "\3\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\7\3`\n\3\f\3\16\3c\13\3\3\3\3\3\3"+ - "\4\3\4\3\4\7\4j\n\4\f\4\16\4m\13\4\3\4\3\4\3\5\3\5\3\5\7\5t\n\5\f\5\16"+ - "\5w\13\5\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3"+ - "\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\5\6\u0094\n\6\3\7\3\7\3"+ - "\7\3\7\3\7\7\7\u009b\n\7\f\7\16\7\u009e\13\7\3\7\3\7\3\7\7\7\u00a3\n\7"+ - "\f\7\16\7\u00a6\13\7\3\7\3\7\3\7\7\7\u00ab\n\7\f\7\16\7\u00ae\13\7\3\7"+ - "\3\7\7\7\u00b2\n\7\f\7\16\7\u00b5\13\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+ - "\3\b\3\b\3\b\3\b\3\b\7\b\u00c4\n\b\f\b\16\b\u00c7\13\b\3\b\3\b\7\b\u00cb"+ - "\n\b\f\b\16\b\u00ce\13\b\3\b\3\b\7\b\u00d2\n\b\f\b\16\b\u00d5\13\b\3\b"+ - "\3\b\7\b\u00d9\n\b\f\b\16\b\u00dc\13\b\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t"+ - "\3\t\3\t\3\t\7\t\u00e9\n\t\f\t\16\t\u00ec\13\t\3\t\3\t\7\t\u00f0\n\t\f"+ - "\t\16\t\u00f3\13\t\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n"+ - "\3\n\3\n\3\n\3\n\3\n\3\n\7\n\u0108\n\n\f\n\16\n\u010b\13\n\3\13\3\13\3"+ - "\13\3\13\3\13\3\13\3\13\3\13\7\13\u0115\n\13\f\13\16\13\u0118\13\13\3"+ - "\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\7\f\u0129\n"+ - "\f\f\f\16\f\u012c\13\f\3\f\3\f\7\f\u0130\n\f\f\f\16\f\u0133\13\f\3\r\3"+ - "\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\7\r\u0144\n\r\f"+ - "\r\16\r\u0147\13\r\3\r\3\r\7\r\u014b\n\r\f\r\16\r\u014e\13\r\3\16\3\16"+ - "\3\16\3\16\3\16\3\16\3\16\3\16\3\16\7\16\u0159\n\16\f\16\16\16\u015c\13"+ - "\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\7\17\u0169"+ - "\n\17\f\17\16\17\u016c\13\17\3\20\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3"+ - "\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\7\21\u017e\n\21\f\21\16\21\u0181"+ - "\13\21\3\22\3\22\3\22\3\22\3\22\3\22\3\22\7\22\u018a\n\22\f\22\16\22\u018d"+ - "\13\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\7\23"+ - "\u019b\n\23\f\23\16\23\u019e\13\23\3\23\3\23\7\23\u01a2\n\23\f\23\16\23"+ - "\u01a5\13\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\7\23\u01ae\n\23\f\23\16"+ - "\23\u01b1\13\23\3\23\3\23\3\23\7\23\u01b6\n\23\f\23\16\23\u01b9\13\23"+ - "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\7\24\u01c2\n\24\f\24\16\24\u01c5\13"+ - "\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\7\25\u01d2"+ - "\n\25\f\25\16\25\u01d5\13\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\7\25\u01de"+ - "\n\25\f\25\16\25\u01e1\13\25\3\25\3\25\7\25\u01e5\n\25\f\25\16\25\u01e8"+ - "\13\25\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26"+ - "\7\26\u01f7\n\26\f\26\16\26\u01fa\13\26\3\26\3\26\7\26\u01fe\n\26\f\26"+ - "\16\26\u0201\13\26\3\26\3\26\7\26\u0205\n\26\f\26\16\26\u0208\13\26\3"+ - "\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\7\27\u0216"+ - "\n\27\f\27\16\27\u0219\13\27\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3"+ - "\30\3\30\3\30\3\30\3\30\3\30\7\30\u0229\n\30\f\30\16\30\u022c\13\30\3"+ - "\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\7\31\u0237\n\31\f\31\16\31"+ - "\u023a\13\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3"+ - "\32\3\32\3\32\3\32\7\32\u024b\n\32\f\32\16\32\u024e\13\32\3\33\3\33\3"+ - "\33\3\33\3\33\3\33\3\33\3\33\3\33\7\33\u0259\n\33\f\33\16\33\u025c\13"+ - "\33\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3"+ - "\34\7\34\u026c\n\34\f\34\16\34\u026f\13\34\3\35\3\35\3\35\3\35\3\35\3"+ - "\35\3\35\3\35\3\35\3\35\3\35\7\35\u027c\n\35\f\35\16\35\u027f\13\35\3"+ - "\35\3\35\3\35\3\35\3\35\3\35\7\35\u0287\n\35\f\35\16\35\u028a\13\35\3"+ - "\35\3\35\7\35\u028e\n\35\f\35\16\35\u0291\13\35\3\36\3\36\3\36\3\36\3"+ - "\36\7\36\u0298\n\36\f\36\16\36\u029b\13\36\3\36\3\36\7\36\u029f\n\36\f"+ - "\36\16\36\u02a2\13\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\7\36\u02ab\n"+ - "\36\f\36\16\36\u02ae\13\36\3\36\3\36\3\36\7\36\u02b3\n\36\f\36\16\36\u02b6"+ - "\13\36\3\36\3\36\7\36\u02ba\n\36\f\36\16\36\u02bd\13\36\3\37\3\37\3\37"+ - "\3\37\3\37\3\37\3\37\7\37\u02c6\n\37\f\37\16\37\u02c9\13\37\3\37\3\37"+ - "\3\37\3\37\7\37\u02cf\n\37\f\37\16\37\u02d2\13\37\3\37\3\37\3\37\7\37"+ - "\u02d7\n\37\f\37\16\37\u02da\13\37\3\37\3\37\3\37\7\37\u02df\n\37\f\37"+ - "\16\37\u02e2\13\37\3\37\3\37\7\37\u02e6\n\37\f\37\16\37\u02e9\13\37\3"+ - "\37\3\37\7\37\u02ed\n\37\f\37\16\37\u02f0\13\37\3 \3 \3 \3 \3 \3 \3 \3"+ - " \3 \3 \3 \7 \u02fd\n \f \16 \u0300\13 \3!\3!\3!\3!\3!\3!\3!\3!\3!\7!"+ - "\u030b\n!\f!\16!\u030e\13!\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#\3"+ - "#\3#\3#\3$\3$\3$\3$\3$\3%\3%\3&\3&\5&\u0328\n&\3\'\3\'\3\'\3\'\7\'\u032e"+ - "\n\'\f\'\16\'\u0331\13\'\3\'\3\'\3\'\3\'\5\'\u0337\n\'\3(\3(\3(\3(\3)"+ - "\3)\3)\3)\7)\u0341\n)\f)\16)\u0344\13)\3)\3)\3)\3)\5)\u034a\n)\3*\3*\3"+ - "*\3*\3*\3*\3*\5*\u0353\n*\3*\2\2+\2\4\6\b\n\f\16\20\22\24\26\30\32\34"+ - "\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPR\2\2\2\u0386\2T\3\2\2\2\4\\\3\2"+ - "\2\2\6f\3\2\2\2\bp\3\2\2\2\n\u0093\3\2\2\2\f\u0095\3\2\2\2\16\u00b6\3"+ - "\2\2\2\20\u00dd\3\2\2\2\22\u00f4\3\2\2\2\24\u010c\3\2\2\2\26\u0119\3\2"+ - "\2\2\30\u0134\3\2\2\2\32\u014f\3\2\2\2\34\u015d\3\2\2\2\36\u016d\3\2\2"+ - "\2 \u0172\3\2\2\2\"\u0182\3\2\2\2$\u018e\3\2\2\2&\u01ba\3\2\2\2(\u01c8"+ - "\3\2\2\2*\u01e9\3\2\2\2,\u0209\3\2\2\2.\u021a\3\2\2\2\60\u022d\3\2\2\2"+ - "\62\u023b\3\2\2\2\64\u024f\3\2\2\2\66\u025d\3\2\2\28\u0270\3\2\2\2:\u0292"+ - "\3\2\2\2<\u02be\3\2\2\2>\u02f1\3\2\2\2@\u0301\3\2\2\2B\u030f\3\2\2\2D"+ - "\u0314\3\2\2\2F\u031e\3\2\2\2H\u0323\3\2\2\2J\u0327\3\2\2\2L\u0336\3\2"+ - "\2\2N\u0338\3\2\2\2P\u0349\3\2\2\2R\u0352\3\2\2\2TU\7\3\2\2UV\7a\2\2V"+ - "W\7\4\2\2WX\5\4\3\2XY\5\b\5\2YZ\5\6\4\2Z[\7\5\2\2[\3\3\2\2\2\\]\7\6\2"+ - "\2]a\7\4\2\2^`\5\n\6\2_^\3\2\2\2`c\3\2\2\2a_\3\2\2\2ab\3\2\2\2bd\3\2\2"+ - "\2ca\3\2\2\2de\7\5\2\2e\5\3\2\2\2fg\7\7\2\2gk\7\4\2\2hj\5\n\6\2ih\3\2"+ - "\2\2jm\3\2\2\2ki\3\2\2\2kl\3\2\2\2ln\3\2\2\2mk\3\2\2\2no\7\5\2\2o\7\3"+ - "\2\2\2pq\7\b\2\2qu\7\4\2\2rt\5\n\6\2sr\3\2\2\2tw\3\2\2\2us\3\2\2\2uv\3"+ - "\2\2\2vx\3\2\2\2wu\3\2\2\2xy\7\5\2\2y\t\3\2\2\2z\u0094\5\24\13\2{\u0094"+ - "\5 \21\2|\u0094\5\26\f\2}\u0094\5\30\r\2~\u0094\5\32\16\2\177\u0094\5"+ - "\34\17\2\u0080\u0094\5\16\b\2\u0081\u0094\5\"\22\2\u0082\u0094\5\22\n"+ - "\2\u0083\u0094\5$\23\2\u0084\u0094\5\20\t\2\u0085\u0094\5\f\7\2\u0086"+ - "\u0094\5(\25\2\u0087\u0094\5\60\31\2\u0088\u0094\5\62\32\2\u0089\u0094"+ - "\5\64\33\2\u008a\u0094\5\66\34\2\u008b\u0094\5.\30\2\u008c\u0094\5,\27"+ - "\2\u008d\u0094\5*\26\2\u008e\u0094\58\35\2\u008f\u0094\5:\36\2\u0090\u0094"+ - "\5<\37\2\u0091\u0094\5> \2\u0092\u0094\5@!\2\u0093z\3\2\2\2\u0093{\3\2"+ - "\2\2\u0093|\3\2\2\2\u0093}\3\2\2\2\u0093~\3\2\2\2\u0093\177\3\2\2\2\u0093"+ - "\u0080\3\2\2\2\u0093\u0081\3\2\2\2\u0093\u0082\3\2\2\2\u0093\u0083\3\2"+ - "\2\2\u0093\u0084\3\2\2\2\u0093\u0085\3\2\2\2\u0093\u0086\3\2\2\2\u0093"+ - "\u0087\3\2\2\2\u0093\u0088\3\2\2\2\u0093\u0089\3\2\2\2\u0093\u008a\3\2"+ - "\2\2\u0093\u008b\3\2\2\2\u0093\u008c\3\2\2\2\u0093\u008d\3\2\2\2\u0093"+ - "\u008e\3\2\2\2\u0093\u008f\3\2\2\2\u0093\u0090\3\2\2\2\u0093\u0091\3\2"+ - "\2\2\u0093\u0092\3\2\2\2\u0094\13\3\2\2\2\u0095\u0096\7\t\2\2\u0096\u0097"+ - "\7\n\2\2\u0097\u009c\7a\2\2\u0098\u0099\7\13\2\2\u0099\u009b\7a\2\2\u009a"+ - "\u0098\3\2\2\2\u009b\u009e\3\2\2\2\u009c\u009a\3\2\2\2\u009c\u009d\3\2"+ - "\2\2\u009d\u009f\3\2\2\2\u009e\u009c\3\2\2\2\u009f\u00a0\7\f\2\2\u00a0"+ - "\u00a4\7\4\2\2\u00a1\u00a3\5\n\6\2\u00a2\u00a1\3\2\2\2\u00a3\u00a6\3\2"+ - "\2\2\u00a4\u00a2\3\2\2\2\u00a4\u00a5\3\2\2\2\u00a5\u00a7\3\2\2\2\u00a6"+ - "\u00a4\3\2\2\2\u00a7\u00ac\7\5\2\2\u00a8\u00a9\7\r\2\2\u00a9\u00ab\5B"+ - "\"\2\u00aa\u00a8\3\2\2\2\u00ab\u00ae\3\2\2\2\u00ac\u00aa\3\2\2\2\u00ac"+ - "\u00ad\3\2\2\2\u00ad\u00b3\3\2\2\2\u00ae\u00ac\3\2\2\2\u00af\u00b0\7\16"+ - "\2\2\u00b0\u00b2\7`\2\2\u00b1\u00af\3\2\2\2\u00b2\u00b5\3\2\2\2\u00b3"+ - "\u00b1\3\2\2\2\u00b3\u00b4\3\2\2\2\u00b4\r\3\2\2\2\u00b5\u00b3\3\2\2\2"+ - "\u00b6\u00b7\7\17\2\2\u00b7\u00b8\7\n\2\2\u00b8\u00b9\7a\2\2\u00b9\u00ba"+ - "\7\20\2\2\u00ba\u00bb\7a\2\2\u00bb\u00bc\7\21\2\2\u00bc\u00bd\7a\2\2\u00bd"+ - "\u00be\7\f\2\2\u00be\u00bf\7\4\2\2\u00bf\u00c0\7a\2\2\u00c0\u00c5\7\5"+ - "\2\2\u00c1\u00c2\7\r\2\2\u00c2\u00c4\5B\"\2\u00c3\u00c1\3\2\2\2\u00c4"+ - "\u00c7\3\2\2\2\u00c5\u00c3\3\2\2\2\u00c5\u00c6\3\2\2\2\u00c6\u00cc\3\2"+ - "\2\2\u00c7\u00c5\3\2\2\2\u00c8\u00c9\7\16\2\2\u00c9\u00cb\7`\2\2\u00ca"+ - "\u00c8\3\2\2\2\u00cb\u00ce\3\2\2\2\u00cc\u00ca\3\2\2\2\u00cc\u00cd\3\2"+ - "\2\2\u00cd\u00d3\3\2\2\2\u00ce\u00cc\3\2\2\2\u00cf\u00d0\7\22\2\2\u00d0"+ - "\u00d2\7`\2\2\u00d1\u00cf\3\2\2\2\u00d2\u00d5\3\2\2\2\u00d3\u00d1\3\2"+ - "\2\2\u00d3\u00d4\3\2\2\2\u00d4\u00da\3\2\2\2\u00d5\u00d3\3\2\2\2\u00d6"+ - "\u00d7\7\23\2\2\u00d7\u00d9\7`\2\2\u00d8\u00d6\3\2\2\2\u00d9\u00dc\3\2"+ - "\2\2\u00da\u00d8\3\2\2\2\u00da\u00db\3\2\2\2\u00db\17\3\2\2\2\u00dc\u00da"+ - "\3\2\2\2\u00dd\u00de\7\24\2\2\u00de\u00df\7\n\2\2\u00df\u00e0\7a\2\2\u00e0"+ - "\u00e1\7\13\2\2\u00e1\u00e2\7a\2\2\u00e2\u00e3\7\f\2\2\u00e3\u00e4\7\4"+ - "\2\2\u00e4\u00e5\7a\2\2\u00e5\u00ea\7\5\2\2\u00e6\u00e7\7\r\2\2\u00e7"+ - "\u00e9\5B\"\2\u00e8\u00e6\3\2\2\2\u00e9\u00ec\3\2\2\2\u00ea\u00e8\3\2"+ - "\2\2\u00ea\u00eb\3\2\2\2\u00eb\u00f1\3\2\2\2\u00ec\u00ea\3\2\2\2\u00ed"+ - "\u00ee\7\25\2\2\u00ee\u00f0\5B\"\2\u00ef\u00ed\3\2\2\2\u00f0\u00f3\3\2"+ - "\2\2\u00f1\u00ef\3\2\2\2\u00f1\u00f2\3\2\2\2\u00f2\21\3\2\2\2\u00f3\u00f1"+ - "\3\2\2\2\u00f4\u00f5\7\26\2\2\u00f5\u00f6\7\n\2\2\u00f6\u00f7\7a\2\2\u00f7"+ - "\u00f8\7\27\2\2\u00f8\u00f9\7a\2\2\u00f9\u00fa\7\20\2\2\u00fa\u00fb\7"+ - "a\2\2\u00fb\u00fc\7\21\2\2\u00fc\u00fd\7a\2\2\u00fd\u00fe\7\30\2\2\u00fe"+ - "\u00ff\7a\2\2\u00ff\u0100\7\31\2\2\u0100\u0101\7a\2\2\u0101\u0102\7\f"+ - "\2\2\u0102\u0103\7\4\2\2\u0103\u0104\7a\2\2\u0104\u0109\7\5\2\2\u0105"+ - "\u0106\7\r\2\2\u0106\u0108\5B\"\2\u0107\u0105\3\2\2\2\u0108\u010b\3\2"+ - "\2\2\u0109\u0107\3\2\2\2\u0109\u010a\3\2\2\2\u010a\23\3\2\2\2\u010b\u0109"+ - "\3\2\2\2\u010c\u010d\7\32\2\2\u010d\u010e\7\n\2\2\u010e\u010f\7a\2\2\u010f"+ - "\u0110\7\4\2\2\u0110\u0111\7a\2\2\u0111\u0116\7\5\2\2\u0112\u0113\7\r"+ - "\2\2\u0113\u0115\5B\"\2\u0114\u0112\3\2\2\2\u0115\u0118\3\2\2\2\u0116"+ - "\u0114\3\2\2\2\u0116\u0117\3\2\2\2\u0117\25\3\2\2\2\u0118\u0116\3\2\2"+ - "\2\u0119\u011a\7\33\2\2\u011a\u011b\7\n\2\2\u011b\u011c\7a\2\2\u011c\u011d"+ - "\7\34\2\2\u011d\u011e\7a\2\2\u011e\u011f\7\35\2\2\u011f\u0120\7a\2\2\u0120"+ - "\u0121\7\f\2\2\u0121\u0122\7a\2\2\u0122\u0123\7\36\2\2\u0123\u0124\7\4"+ - "\2\2\u0124\u0125\7a\2\2\u0125\u012a\7\5\2\2\u0126\u0127\7\r\2\2\u0127"+ - "\u0129\5B\"\2\u0128\u0126\3\2\2\2\u0129\u012c\3\2\2\2\u012a\u0128\3\2"+ - "\2\2\u012a\u012b\3\2\2\2\u012b\u0131\3\2\2\2\u012c\u012a\3\2\2\2\u012d"+ - "\u012e\7\37\2\2\u012e\u0130\7a\2\2\u012f\u012d\3\2\2\2\u0130\u0133\3\2"+ - "\2\2\u0131\u012f\3\2\2\2\u0131\u0132\3\2\2\2\u0132\27\3\2\2\2\u0133\u0131"+ - "\3\2\2\2\u0134\u0135\7 \2\2\u0135\u0136\7\n\2\2\u0136\u0137\7a\2\2\u0137"+ - "\u0138\7\34\2\2\u0138\u0139\7a\2\2\u0139\u013a\7\35\2\2\u013a\u013b\7"+ - "a\2\2\u013b\u013c\7\f\2\2\u013c\u013d\7a\2\2\u013d\u013e\7\36\2\2\u013e"+ - "\u013f\7\4\2\2\u013f\u0140\7a\2\2\u0140\u0145\7\5\2\2\u0141\u0142\7!\2"+ - "\2\u0142\u0144\7a\2\2\u0143\u0141\3\2\2\2\u0144\u0147\3\2\2\2\u0145\u0143"+ - "\3\2\2\2\u0145\u0146\3\2\2\2\u0146\u014c\3\2\2\2\u0147\u0145\3\2\2\2\u0148"+ - "\u0149\7\r\2\2\u0149\u014b\5B\"\2\u014a\u0148\3\2\2\2\u014b\u014e\3\2"+ - "\2\2\u014c\u014a\3\2\2\2\u014c\u014d\3\2\2\2\u014d\31\3\2\2\2\u014e\u014c"+ - "\3\2\2\2\u014f\u0150\7\"\2\2\u0150\u0151\7\n\2\2\u0151\u0152\7a\2\2\u0152"+ - "\u0153\7\34\2\2\u0153\u0154\7a\2\2\u0154\u0155\7\35\2\2\u0155\u015a\7"+ - "a\2\2\u0156\u0157\7\r\2\2\u0157\u0159\5B\"\2\u0158\u0156\3\2\2\2\u0159"+ - "\u015c\3\2\2\2\u015a\u0158\3\2\2\2\u015a\u015b\3\2\2\2\u015b\33\3\2\2"+ - "\2\u015c\u015a\3\2\2\2\u015d\u015e\7#\2\2\u015e\u015f\7\n\2\2\u015f\u0160"+ - "\7a\2\2\u0160\u0161\7$\2\2\u0161\u0162\7a\2\2\u0162\u0163\7\f\2\2\u0163"+ - "\u0164\7\4\2\2\u0164\u0165\5\36\20\2\u0165\u016a\7\5\2\2\u0166\u0167\7"+ - "\r\2\2\u0167\u0169\5B\"\2\u0168\u0166\3\2\2\2\u0169\u016c\3\2\2\2\u016a"+ - "\u0168\3\2\2\2\u016a\u016b\3\2\2\2\u016b\35\3\2\2\2\u016c\u016a\3\2\2"+ - "\2\u016d\u016e\7%\2\2\u016e\u016f\7a\2\2\u016f\u0170\7&\2\2\u0170\u0171"+ - "\7a\2\2\u0171\37\3\2\2\2\u0172\u0173\7\'\2\2\u0173\u0174\7\n\2\2\u0174"+ - "\u0175\7a\2\2\u0175\u0176\7(\2\2\u0176\u0177\7a\2\2\u0177\u0178\7\f\2"+ - "\2\u0178\u0179\7\4\2\2\u0179\u017a\7a\2\2\u017a\u017f\7\5\2\2\u017b\u017c"+ - "\7\r\2\2\u017c\u017e\5B\"\2\u017d\u017b\3\2\2\2\u017e\u0181\3\2\2\2\u017f"+ - "\u017d\3\2\2\2\u017f\u0180\3\2\2\2\u0180!\3\2\2\2\u0181\u017f\3\2\2\2"+ - "\u0182\u0183\7)\2\2\u0183\u0184\7\n\2\2\u0184\u0185\7a\2\2\u0185\u0186"+ - "\7*\2\2\u0186\u018b\7a\2\2\u0187\u0188\7\r\2\2\u0188\u018a\5B\"\2\u0189"+ - "\u0187\3\2\2\2\u018a\u018d\3\2\2\2\u018b\u0189\3\2\2\2\u018b\u018c\3\2"+ - "\2\2\u018c#\3\2\2\2\u018d\u018b\3\2\2\2\u018e\u018f\7+\2\2\u018f\u0190"+ - "\7\n\2\2\u0190\u0191\7a\2\2\u0191\u0192\7(\2\2\u0192\u0193\7a\2\2\u0193"+ - "\u0194\7\f\2\2\u0194\u0195\7,\2\2\u0195\u0196\7a\2\2\u0196\u0197\7-\2"+ - "\2\u0197\u019c\7a\2\2\u0198\u0199\7.\2\2\u0199\u019b\5J&\2\u019a\u0198"+ - "\3\2\2\2\u019b\u019e\3\2\2\2\u019c\u019a\3\2\2\2\u019c\u019d\3\2\2\2\u019d"+ - "\u01a3\3\2\2\2\u019e\u019c\3\2\2\2\u019f\u01a0\7/\2\2\u01a0\u01a2\5J&"+ - "\2\u01a1\u019f\3\2\2\2\u01a2\u01a5\3\2\2\2\u01a3\u01a1\3\2\2\2\u01a3\u01a4"+ - "\3\2\2\2\u01a4\u01a6\3\2\2\2\u01a5\u01a3\3\2\2\2\u01a6\u01a7\7\60\2\2"+ - "\u01a7\u01a8\7\4\2\2\u01a8\u01a9\7a\2\2\u01a9\u01aa\7\5\2\2\u01aa\u01ab"+ - "\3\2\2\2\u01ab\u01af\7\4\2\2\u01ac\u01ae\5&\24\2\u01ad\u01ac\3\2\2\2\u01ae"+ - "\u01b1\3\2\2\2\u01af\u01ad\3\2\2\2\u01af\u01b0\3\2\2\2\u01b0\u01b2\3\2"+ - "\2\2\u01b1\u01af\3\2\2\2\u01b2\u01b7\7\5\2\2\u01b3\u01b4\7\r\2\2\u01b4"+ - "\u01b6\5B\"\2\u01b5\u01b3\3\2\2\2\u01b6\u01b9\3\2\2\2\u01b7\u01b5\3\2"+ - "\2\2\u01b7\u01b8\3\2\2\2\u01b8%\3\2\2\2\u01b9\u01b7\3\2\2\2\u01ba\u01bb"+ - "\7\61\2\2\u01bb\u01bc\7\n\2\2\u01bc\u01bd\7a\2\2\u01bd\u01be\7\30\2\2"+ - "\u01be\u01c3\7a\2\2\u01bf\u01c0\7\62\2\2\u01c0\u01c2\7a\2\2\u01c1\u01bf"+ - "\3\2\2\2\u01c2\u01c5\3\2\2\2\u01c3\u01c1\3\2\2\2\u01c3\u01c4\3\2\2\2\u01c4"+ - "\u01c6\3\2\2\2\u01c5\u01c3\3\2\2\2\u01c6\u01c7\7\5\2\2\u01c7\'\3\2\2\2"+ - "\u01c8\u01c9\7\63\2\2\u01c9\u01ca\7\n\2\2\u01ca\u01cb\7a\2\2\u01cb\u01cc"+ - "\7(\2\2\u01cc\u01cd\7a\2\2\u01cd\u01ce\7\64\2\2\u01ce\u01d3\7a\2\2\u01cf"+ - "\u01d0\7\f\2\2\u01d0\u01d2\7a\2\2\u01d1\u01cf\3\2\2\2\u01d2\u01d5\3\2"+ - "\2\2\u01d3\u01d1\3\2\2\2\u01d3\u01d4\3\2\2\2\u01d4\u01d6\3\2\2\2\u01d5"+ - "\u01d3\3\2\2\2\u01d6\u01d7\7\65\2\2\u01d7\u01d8\7a\2\2\u01d8\u01d9\7\f"+ - "\2\2\u01d9\u01da\7\4\2\2\u01da\u01df\7\5\2\2\u01db\u01dc\7\r\2\2\u01dc"+ - "\u01de\5B\"\2\u01dd\u01db\3\2\2\2\u01de\u01e1\3\2\2\2\u01df\u01dd\3\2"+ - "\2\2\u01df\u01e0\3\2\2\2\u01e0\u01e6\3\2\2\2\u01e1\u01df\3\2\2\2\u01e2"+ - "\u01e3\7\16\2\2\u01e3\u01e5\7a\2\2\u01e4\u01e2\3\2\2\2\u01e5\u01e8\3\2"+ - "\2\2\u01e6\u01e4\3\2\2\2\u01e6\u01e7\3\2\2\2\u01e7)\3\2\2\2\u01e8\u01e6"+ - "\3\2\2\2\u01e9\u01ea\7\66\2\2\u01ea\u01eb\7\n\2\2\u01eb\u01ec\7a\2\2\u01ec"+ - "\u01ed\7\67\2\2\u01ed\u01ee\5H%\2\u01ee\u01ef\7\13\2\2\u01ef\u01f0\7a"+ - "\2\2\u01f0\u01f1\7\f\2\2\u01f1\u01f2\7\4\2\2\u01f2\u01f3\7a\2\2\u01f3"+ - "\u01f8\7\5\2\2\u01f4\u01f5\7\r\2\2\u01f5\u01f7\5B\"\2\u01f6\u01f4\3\2"+ - "\2\2\u01f7\u01fa\3\2\2\2\u01f8\u01f6\3\2\2\2\u01f8\u01f9\3\2\2\2\u01f9"+ - "\u01ff\3\2\2\2\u01fa\u01f8\3\2\2\2\u01fb\u01fc\7\16\2\2\u01fc\u01fe\7"+ - "a\2\2\u01fd\u01fb\3\2\2\2\u01fe\u0201\3\2\2\2\u01ff\u01fd\3\2\2\2\u01ff"+ - "\u0200\3\2\2\2\u0200\u0206\3\2\2\2\u0201\u01ff\3\2\2\2\u0202\u0203\78"+ - "\2\2\u0203\u0205\7a\2\2\u0204\u0202\3\2\2\2\u0205\u0208\3\2\2\2\u0206"+ - "\u0204\3\2\2\2\u0206\u0207\3\2\2\2\u0207+\3\2\2\2\u0208\u0206\3\2\2\2"+ - "\u0209\u020a\79\2\2\u020a\u020b\7\n\2\2\u020b\u020c\7a\2\2\u020c\u020d"+ - "\7\20\2\2\u020d\u020e\7a\2\2\u020e\u020f\7:\2\2\u020f\u0210\7a\2\2\u0210"+ - "\u0211\7\f\2\2\u0211\u0212\7\4\2\2\u0212\u0217\7\5\2\2\u0213\u0214\7\r"+ - "\2\2\u0214\u0216\5B\"\2\u0215\u0213\3\2\2\2\u0216\u0219\3\2\2\2\u0217"+ - "\u0215\3\2\2\2\u0217\u0218\3\2\2\2\u0218-\3\2\2\2\u0219\u0217\3\2\2\2"+ - "\u021a\u021b\7;\2\2\u021b\u021c\7\n\2\2\u021c\u021d\7a\2\2\u021d\u021e"+ - "\7\20\2\2\u021e\u021f\7a\2\2\u021f\u0220\7:\2\2\u0220\u0221\7a\2\2\u0221"+ - "\u0222\7<\2\2\u0222\u0223\7a\2\2\u0223\u0224\7\f\2\2\u0224\u0225\7\4\2"+ - "\2\u0225\u022a\7\5\2\2\u0226\u0227\7\r\2\2\u0227\u0229\5B\"\2\u0228\u0226"+ - "\3\2\2\2\u0229\u022c\3\2\2\2\u022a\u0228\3\2\2\2\u022a\u022b\3\2\2\2\u022b"+ - "/\3\2\2\2\u022c\u022a\3\2\2\2\u022d\u022e\7=\2\2\u022e\u022f\7\n\2\2\u022f"+ - "\u0230\7a\2\2\u0230\u0231\7\f\2\2\u0231\u0232\7\4\2\2\u0232\u0233\7a\2"+ - "\2\u0233\u0238\7\5\2\2\u0234\u0235\7\r\2\2\u0235\u0237\5B\"\2\u0236\u0234"+ - "\3\2\2\2\u0237\u023a\3\2\2\2\u0238\u0236\3\2\2\2\u0238\u0239\3\2\2\2\u0239"+ - "\61\3\2\2\2\u023a\u0238\3\2\2\2\u023b\u023c\7>\2\2\u023c\u023d\7\n\2\2"+ - "\u023d\u023e\7a\2\2\u023e\u023f\7?\2\2\u023f\u0240\7a\2\2\u0240\u0241"+ - "\7@\2\2\u0241\u0242\7a\2\2\u0242\u0243\7<\2\2\u0243\u0244\7a\2\2\u0244"+ - "\u0245\7\f\2\2\u0245\u0246\7\4\2\2\u0246\u0247\7a\2\2\u0247\u024c\7\5"+ - "\2\2\u0248\u0249\7\r\2\2\u0249\u024b\5B\"\2\u024a\u0248\3\2\2\2\u024b"+ - "\u024e\3\2\2\2\u024c\u024a\3\2\2\2\u024c\u024d\3\2\2\2\u024d\63\3\2\2"+ - "\2\u024e\u024c\3\2\2\2\u024f\u0250\7A\2\2\u0250\u0251\7\n\2\2\u0251\u0252"+ - "\7a\2\2\u0252\u0253\7\f\2\2\u0253\u0254\7\4\2\2\u0254\u0255\7a\2\2\u0255"+ - "\u025a\7\5\2\2\u0256\u0257\7\r\2\2\u0257\u0259\5B\"\2\u0258\u0256\3\2"+ - "\2\2\u0259\u025c\3\2\2\2\u025a\u0258\3\2\2\2\u025a\u025b\3\2\2\2\u025b"+ - "\65\3\2\2\2\u025c\u025a\3\2\2\2\u025d\u025e\7B\2\2\u025e\u025f\7\n\2\2"+ - "\u025f\u0260\7a\2\2\u0260\u0261\7\20\2\2\u0261\u0262\7a\2\2\u0262\u0263"+ - "\7\21\2\2\u0263\u0264\7a\2\2\u0264\u0265\7C\2\2\u0265\u0266\7a\2\2\u0266"+ - "\u0267\7\f\2\2\u0267\u0268\7a\2\2\u0268\u026d\7\5\2\2\u0269\u026a\7\r"+ - "\2\2\u026a\u026c\5B\"\2\u026b\u0269\3\2\2\2\u026c\u026f\3\2\2\2\u026d"+ - "\u026b\3\2\2\2\u026d\u026e\3\2\2\2\u026e\67\3\2\2\2\u026f\u026d\3\2\2"+ - "\2\u0270\u0271\7D\2\2\u0271\u0272\7\n\2\2\u0272\u0273\7a\2\2\u0273\u0274"+ - "\7E\2\2\u0274\u0275\5H%\2\u0275\u0276\7F\2\2\u0276\u0277\7\4\2\2\u0277"+ - "\u0278\5:\36\2\u0278\u027d\7\5\2\2\u0279\u027a\7\16\2\2\u027a\u027c\7"+ - "a\2\2\u027b\u0279\3\2\2\2\u027c\u027f\3\2\2\2\u027d\u027b\3\2\2\2\u027d"+ - "\u027e\3\2\2\2\u027e\u0280\3\2\2\2\u027f\u027d\3\2\2\2\u0280\u0281\7G"+ - "\2\2\u0281\u0282\7\4\2\2\u0282\u0283\5<\37\2\u0283\u0288\7\5\2\2\u0284"+ - "\u0285\7\16\2\2\u0285\u0287\7a\2\2\u0286\u0284\3\2\2\2\u0287\u028a\3\2"+ - "\2\2\u0288\u0286\3\2\2\2\u0288\u0289\3\2\2\2\u0289\u028f\3\2\2\2\u028a"+ - "\u0288\3\2\2\2\u028b\u028c\7\r\2\2\u028c\u028e\5B\"\2\u028d\u028b\3\2"+ - "\2\2\u028e\u0291\3\2\2\2\u028f\u028d\3\2\2\2\u028f\u0290\3\2\2\2\u0290"+ - "9\3\2\2\2\u0291\u028f\3\2\2\2\u0292\u0293\7H\2\2\u0293\u0294\7\n\2\2\u0294"+ - "\u0299\7a\2\2\u0295\u0296\7I\2\2\u0296\u0298\7a\2\2\u0297\u0295\3\2\2"+ - "\2\u0298\u029b\3\2\2\2\u0299\u0297\3\2\2\2\u0299\u029a\3\2\2\2\u029a\u02a0"+ - "\3\2\2\2\u029b\u0299\3\2\2\2\u029c\u029d\7E\2\2\u029d\u029f\5H%\2\u029e"+ - "\u029c\3\2\2\2\u029f\u02a2\3\2\2\2\u02a0\u029e\3\2\2\2\u02a0\u02a1\3\2"+ - "\2\2\u02a1\u02a3\3\2\2\2\u02a2\u02a0\3\2\2\2\u02a3\u02a4\7\36\2\2\u02a4"+ - "\u02a5\7\4\2\2\u02a5\u02a6\7a\2\2\u02a6\u02a7\7\5\2\2\u02a7\u02a8\7J\2"+ - "\2\u02a8\u02ac\7\4\2\2\u02a9\u02ab\5\n\6\2\u02aa\u02a9\3\2\2\2\u02ab\u02ae"+ - "\3\2\2\2\u02ac\u02aa\3\2\2\2\u02ac\u02ad\3\2\2\2\u02ad\u02af\3\2\2\2\u02ae"+ - "\u02ac\3\2\2\2\u02af\u02b4\7\5\2\2\u02b0\u02b1\7\r\2\2\u02b1\u02b3\5B"+ - "\"\2\u02b2\u02b0\3\2\2\2\u02b3\u02b6\3\2\2\2\u02b4\u02b2\3\2\2\2\u02b4"+ - "\u02b5\3\2\2\2\u02b5\u02bb\3\2\2\2\u02b6\u02b4\3\2\2\2\u02b7\u02b8\7\16"+ - "\2\2\u02b8\u02ba\7a\2\2\u02b9\u02b7\3\2\2\2\u02ba\u02bd\3\2\2\2\u02bb"+ - "\u02b9\3\2\2\2\u02bb\u02bc\3\2\2\2\u02bc;\3\2\2\2\u02bd\u02bb\3\2\2\2"+ - "\u02be\u02bf\7K\2\2\u02bf\u02c0\7\n\2\2\u02c0\u02c7\7a\2\2\u02c1\u02c2"+ - "\7L\2\2\u02c2\u02c3\7a\2\2\u02c3\u02c4\7E\2\2\u02c4\u02c6\5H%\2\u02c5"+ - "\u02c1\3\2\2\2\u02c6\u02c9\3\2\2\2\u02c7\u02c5\3\2\2\2\u02c7\u02c8\3\2"+ - "\2\2\u02c8\u02d0\3\2\2\2\u02c9\u02c7\3\2\2\2\u02ca\u02cb\7M\2\2\u02cb"+ - "\u02cc\7a\2\2\u02cc\u02cd\7N\2\2\u02cd\u02cf\7a\2\2\u02ce\u02ca\3\2\2"+ - "\2\u02cf\u02d2\3\2\2\2\u02d0\u02ce\3\2\2\2\u02d0\u02d1\3\2\2\2\u02d1\u02d3"+ - "\3\2\2\2\u02d2\u02d0\3\2\2\2\u02d3\u02d4\7J\2\2\u02d4\u02d8\7\4\2\2\u02d5"+ - "\u02d7\5\n\6\2\u02d6\u02d5\3\2\2\2\u02d7\u02da\3\2\2\2\u02d8\u02d6\3\2"+ - "\2\2\u02d8\u02d9\3\2\2\2\u02d9\u02db\3\2\2\2\u02da\u02d8\3\2\2\2\u02db"+ - "\u02e0\7\5\2\2\u02dc\u02dd\7\r\2\2\u02dd\u02df\5B\"\2\u02de\u02dc\3\2"+ - "\2\2\u02df\u02e2\3\2\2\2\u02e0\u02de\3\2\2\2\u02e0\u02e1\3\2\2\2\u02e1"+ - "\u02e7\3\2\2\2\u02e2\u02e0\3\2\2\2\u02e3\u02e4\7\16\2\2\u02e4\u02e6\7"+ - "a\2\2\u02e5\u02e3\3\2\2\2\u02e6\u02e9\3\2\2\2\u02e7\u02e5\3\2\2\2\u02e7"+ - "\u02e8\3\2\2\2\u02e8\u02ee\3\2\2\2\u02e9\u02e7\3\2\2\2\u02ea\u02eb\7O"+ - "\2\2\u02eb\u02ed\5B\"\2\u02ec\u02ea\3\2\2\2\u02ed\u02f0\3\2\2\2\u02ee"+ - "\u02ec\3\2\2\2\u02ee\u02ef\3\2\2\2\u02ef=\3\2\2\2\u02f0\u02ee\3\2\2\2"+ - "\u02f1\u02f2\7P\2\2\u02f2\u02f3\7\n\2\2\u02f3\u02f4\7a\2\2\u02f4\u02f5"+ - "\7Q\2\2\u02f5\u02f6\7a\2\2\u02f6\u02f7\7R\2\2\u02f7\u02f8\7\4\2\2\u02f8"+ - "\u02f9\5J&\2\u02f9\u02fe\7\5\2\2\u02fa\u02fb\7\r\2\2\u02fb\u02fd\5B\""+ - "\2\u02fc\u02fa\3\2\2\2\u02fd\u0300\3\2\2\2\u02fe\u02fc\3\2\2\2\u02fe\u02ff"+ - "\3\2\2\2\u02ff?\3\2\2\2\u0300\u02fe\3\2\2\2\u0301\u0302\7S\2\2\u0302\u0303"+ - "\7\n\2\2\u0303\u0304\7a\2\2\u0304\u0305\7\f\2\2\u0305\u0306\7\4\2\2\u0306"+ - "\u0307\7a\2\2\u0307\u030c\7\5\2\2\u0308\u0309\7\r\2\2\u0309\u030b\5B\""+ - "\2\u030a\u0308\3\2\2\2\u030b\u030e\3\2\2\2\u030c\u030a\3\2\2\2\u030c\u030d"+ - "\3\2\2\2\u030dA\3\2\2\2\u030e\u030c\3\2\2\2\u030f\u0310\7T\2\2\u0310\u0311"+ - "\7a\2\2\u0311\u0312\7c\2\2\u0312\u0313\7a\2\2\u0313C\3\2\2\2\u0314\u0315"+ - "\7U\2\2\u0315\u0316\7\n\2\2\u0316\u0317\7V\2\2\u0317\u0318\7a\2\2\u0318"+ - "\u0319\7\30\2\2\u0319\u031a\7W\2\2\u031a\u031b\7\4\2\2\u031b\u031c\7a"+ - "\2\2\u031c\u031d\7\5\2\2\u031dE\3\2\2\2\u031e\u031f\7X\2\2\u031f\u0320"+ - "\7\4\2\2\u0320\u0321\7a\2\2\u0321\u0322\7\5\2\2\u0322G\3\2\2\2\u0323\u0324"+ - "\7a\2\2\u0324I\3\2\2\2\u0325\u0328\5L\'\2\u0326\u0328\5P)\2\u0327\u0325"+ - "\3\2\2\2\u0327\u0326\3\2\2\2\u0328K\3\2\2\2\u0329\u032a\7\4\2\2\u032a"+ - "\u032f\5N(\2\u032b\u032c\7Y\2\2\u032c\u032e\5N(\2\u032d\u032b\3\2\2\2"+ - "\u032e\u0331\3\2\2\2\u032f\u032d\3\2\2\2\u032f\u0330\3\2\2\2\u0330\u0332"+ - "\3\2\2\2\u0331\u032f\3\2\2\2\u0332\u0333\7\5\2\2\u0333\u0337\3\2\2\2\u0334"+ - "\u0335\7\4\2\2\u0335\u0337\7\5\2\2\u0336\u0329\3\2\2\2\u0336\u0334\3\2"+ - "\2\2\u0337M\3\2\2\2\u0338\u0339\7a\2\2\u0339\u033a\7Z\2\2\u033a\u033b"+ - "\5R*\2\u033bO\3\2\2\2\u033c\u033d\7[\2\2\u033d\u0342\5R*\2\u033e\u033f"+ - "\7Y\2\2\u033f\u0341\5R*\2\u0340\u033e\3\2\2\2\u0341\u0344\3\2\2\2\u0342"+ - "\u0340\3\2\2\2\u0342\u0343\3\2\2\2\u0343\u0345\3\2\2\2\u0344\u0342\3\2"+ - "\2\2\u0345\u0346\7\\\2\2\u0346\u034a\3\2\2\2\u0347\u0348\7[\2\2\u0348"+ - "\u034a\7\\\2\2\u0349\u033c\3\2\2\2\u0349\u0347\3\2\2\2\u034aQ\3\2\2\2"+ - "\u034b\u0353\7a\2\2\u034c\u0353\7g\2\2\u034d\u0353\5L\'\2\u034e\u0353"+ - "\5P)\2\u034f\u0353\7]\2\2\u0350\u0353\7^\2\2\u0351\u0353\7_\2\2\u0352"+ - "\u034b\3\2\2\2\u0352\u034c\3\2\2\2\u0352\u034d\3\2\2\2\u0352\u034e\3\2"+ - "\2\2\u0352\u034f\3\2\2\2\u0352\u0350\3\2\2\2\u0352\u0351\3\2\2\2\u0353"+ - "S\3\2\2\2Aaku\u0093\u009c\u00a4\u00ac\u00b3\u00c5\u00cc\u00d3\u00da\u00ea"+ - "\u00f1\u0109\u0116\u012a\u0131\u0145\u014c\u015a\u016a\u017f\u018b\u019c"+ - "\u01a3\u01af\u01b7\u01c3\u01d3\u01df\u01e6\u01f8\u01ff\u0206\u0217\u022a"+ - "\u0238\u024c\u025a\u026d\u027d\u0288\u028f\u0299\u02a0\u02ac\u02b4\u02bb"+ - "\u02c7\u02d0\u02d8\u02e0\u02e7\u02ee\u02fe\u030c\u0327\u032f\u0336\u0342"+ - "\u0349\u0352"; - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/gmr/Raven.g4 b/handyman.raven/src/main/antlr/in.handyman.raven/gmr/Raven.g4 deleted file mode 100644 index f2e80f20..00000000 --- a/handyman.raven/src/main/antlr/in.handyman.raven/gmr/Raven.g4 +++ /dev/null @@ -1,265 +0,0 @@ -grammar Raven; - -import JSON; - -process: - 'process' name=STRING - '{' - tryBlock=tryClause - catchBlock=catchClause - finallyBlock= finallyClause - '}'; - -tryClause : - 'try' - '{' - (actions+=action)* - '}' -; - -finallyClause: - 'finally' - '{' - (actions+=action)* - '}' -; - -catchClause: - 'catch' - '{' - (actions+=action)* - '}' -; - -action: - (abort - |assign - |callProcess - |forkProcess - |spawnProcess - |dogLeg - |copyData - |dropFile - |loadCsv - |restApi - |transform - |multitude - |exportCsv - |createDirectory - |createFile - |deleteFileDirectory - |transferFileDirectory - |createTAR - |extractTAR - |importCsvToDB - |producerConsumerModel - |producer - |consumer - |pushJson - |mapJsonContext); - -multitude: - 'multitude' 'as' name=STRING ('on' on= STRING)* 'using' - '{' - (actions+=action)* - '}' ('on-condition' condition=expression)* ('fielding' writeThreadCount=NON_ZERO_DIGIT)*; - -// this is for creating POJO WRT definition -//attribute:(startProcess); - -copyData: - ('copydata' 'as' name=STRING 'from' source=STRING 'to' to=STRING 'using' - '{' - value=STRING - '}' ('on-condition' condition=expression)* ('fielding' writeThreadCount=NON_ZERO_DIGIT)* ('with-fetch-batch-size' fetchBatchSize=NON_ZERO_DIGIT)* ('with-write-batch-size' writeBatchSize=NON_ZERO_DIGIT)*) - ; - -transform: - 'transform' 'as' name= STRING 'on' on= STRING 'using' - '{' - value+=STRING - '}' ('on-condition' condition=expression)* ('do-format' format=expression)*; - -loadCsv: - 'loadcsv' 'as' name=STRING 'pid' pid=STRING 'from' source=STRING 'to' to=STRING 'with' delim=STRING 'by-batch' - limit=STRING 'using' - '{' - value=STRING - '}' ('on-condition' condition=expression)*; - -abort: - 'abort' 'as' name=STRING - '{' - value=STRING - '}' ('on-condition' condition=expression)* -; - -callProcess: - 'callprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING - 'for-every' - '{' - value=STRING - '}' ('on-condition' condition=expression)* ('on-parallel-fielding' forkBatchSize=STRING)*; - - -forkProcess: - 'forkprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING 'for-every' - '{' - value=STRING - '}' ('watermark' forkBatchSize=STRING)* ('on-condition' condition=expression)*; - - -spawnProcess: - 'spawn' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING ('on-condition' condition=expression)*; - - -dogLeg: - 'dogleg' 'as' name=STRING 'use-parent-context' inheritContext=STRING 'using' - '{' - processList+=startProcess - '}' ('on-condition' condition=expression)*; - -startProcess: - 'start-process' name=STRING 'with-file' target=STRING -; - -assign: - 'assign' 'as' name=STRING 'source' source=STRING 'using' - '{' - value=STRING - '}' ('on-condition' condition=expression)* -; - - -dropFile: - 'dropfile' 'as' name=STRING 'in-path' target=STRING ('on-condition' condition=expression)* -; - -restApi: - 'restapi' 'as' name=STRING 'source' source=STRING 'using' 'url' url=STRING 'method' method=STRING - ('with headers' headers=json)* ('with params' params=json )* - ('with body type' '{' bodyType=STRING '}') - '{' - (value+=restPart)* - '}' ('on-condition' condition=expression)*; - -restPart: - '{ part' 'as' partName=STRING 'with' partData=STRING ('type as' type=STRING)* '}'; - - -exportCsv: - 'exportCsv' 'as' name=STRING 'source' source=STRING 'executionSource' executionSource=STRING - ('using' stmt= STRING)* 'targetLocation' targetLocation=STRING - 'using' '{''}' - ('on-condition' condition=expression)* ('fielding' writeThreadCount=STRING)* ; - -importCsvToDB: - 'importCsvToDB' 'as' name= STRING 'target' target=resource 'on' tableName=STRING 'using' - '{' - value+=STRING - '}' ('on-condition' condition=expression)* ('fielding' writeThreadCount=STRING)* ('batch' batchSize=STRING)*; - -extractTAR: - 'extractTAR' 'as' name= STRING 'from' source=STRING 'destination' destination=STRING 'using' - '{''}' ('on-condition' condition=expression)*; - -createTAR: - 'createTAR' 'as' name= STRING 'from' source=STRING 'destination' destination=STRING 'extension' extension=STRING 'using' - '{''}' ('on-condition' condition=expression)*; - -createDirectory: - 'createDirectory' 'as' name= STRING 'using' - '{' - directoryPath+=STRING - '}' ('on-condition' condition=expression)*; - -createFile: - 'createFile' 'as' name= STRING 'location' location=STRING 'fileName' fileName=STRING 'extension' extension=STRING 'using' - '{' - value=STRING - '}' ('on-condition' condition=expression)*; - -deleteFileDirectory: - 'deleteFileDirectory' 'as' name= STRING 'using' - '{' - path+=STRING - '}' ('on-condition' condition=expression)*; - -transferFileDirectory: - 'transferFileDirectory' 'as' name= STRING 'from' source=STRING 'to' to=STRING 'operation' operation=STRING 'using' - - value=STRING - '}' ('on-condition' condition=expression)*; - -producerConsumerModel: - 'pcm' 'as' name=STRING 'on-resource' source=resource - 'produce''{' - produce+=producer - '}' ('fielding' produceThreadCount=STRING)* - 'consume''{' - consume+=consumer - '}'('fielding' consumeThreadCount=STRING)* ('on-condition' condition=expression)*; - -producer: - 'producer''as' name=STRING ('push-result-at' push=STRING)* ('on-resource' source=resource)* - 'for-every''{' - stmt=STRING - '}' - 'execute''{' - (actions+=action)* - '}' ('on-condition' condition=expression)* ('fielding' threadCount=STRING)*; - -consumer: - 'consumer''as' name=STRING ( 'pop-event-from' event=STRING 'on-resource' source=resource )* ('pop-result-from' pop=STRING 'limit' limit=STRING)* 'execute' '{' - (actions+=action)* - '}' ('on-condition' condition=expression)* ('fielding' threadCount=STRING)* ('on-standalone' standalone=expression)* ; - - -pushJson : - 'push-json-into-context' 'as' name=STRING 'with-key' key=STRING 'using-value' '{' - value=json - '}' ('on-condition' condition=expression)* ; - -mapJsonContext : - 'map-json-into-context' 'as' name=STRING 'using' '{' - value=STRING - '}' ('on-condition' condition=expression)* ; - -expression :'if' (lhs=STRING operator=Operator rhs=STRING); - -log: - 'log' 'as' 'level' level=STRING 'with' 'message' '{' message=STRING '}'; - -exception: - 'raise exception' '{' message=STRING '}'; - -resource : STRING; - -//rules - -fragment DIGIT : [0-9]; -fragment NON_Z_DIGIT : [1-9]; -fragment TWODIGIT : DIGIT DIGIT; -fragment LETTER : [A-Za-z]; -fragment -StringCharacters - : StringCharacter+ - ; -fragment -StringCharacter - : ~["\\] - ; -NON_ZERO_DIGIT: NON_Z_DIGIT+; -STRING : '"' StringCharacters? '"'; -CRLF : ('\r'? '\n' | '\r')-> channel(HIDDEN) ; -Operator: - '<'|'>'|'=='|'contains' -; -WS : [ \t\r\n\u000C]+ -> channel(HIDDEN) - ; -COMMENT - : '/*' .*? '*/' -> channel(HIDDEN) - ; -LINE_COMMENT - : '//' ~[\r\n]* -> channel(HIDDEN) - ; diff --git a/handyman.raven/src/main/java/in/handyman/raven/actor/AuditInsertActor.java b/handyman.raven/src/main/java/in/handyman/raven/actor/AuditInsertActor.java deleted file mode 100644 index f5f7b594..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/actor/AuditInsertActor.java +++ /dev/null @@ -1,26 +0,0 @@ -package in.handyman.raven.actor; - -import akka.actor.AbstractActor; -import in.handyman.raven.lambda.access.repo.HandymanRepo; -import in.handyman.raven.lambda.access.repo.HandymanRepoR2Impl; -import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; -import in.handyman.raven.lambda.doa.audit.ActionExecutionStatusAudit; -import in.handyman.raven.lambda.doa.audit.PipelineExecutionAudit; -import in.handyman.raven.lambda.doa.audit.PipelineExecutionStatusAudit; -import in.handyman.raven.lambda.doa.audit.StatementExecutionAudit; - -public class AuditInsertActor extends AbstractActor { - - private final HandymanRepo REPO = new HandymanRepoR2Impl(); - - @Override - public Receive createReceive() { - return receiveBuilder() - .match(PipelineExecutionAudit.class, REPO::insertPipeline) - .match(ActionExecutionAudit.class, REPO::insertAction) - .match(StatementExecutionAudit.class, REPO::insertStatement) - .match(PipelineExecutionStatusAudit.class, REPO::save) - .match(ActionExecutionStatusAudit.class, REPO::save) - .build(); - } -} diff --git a/handyman.raven/src/main/java/in/handyman/raven/actor/AuditUpdateActor.java b/handyman.raven/src/main/java/in/handyman/raven/actor/AuditUpdateActor.java deleted file mode 100644 index 6454b01e..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/actor/AuditUpdateActor.java +++ /dev/null @@ -1,20 +0,0 @@ -package in.handyman.raven.actor; - -import akka.actor.AbstractActor; -import in.handyman.raven.lambda.access.repo.HandymanRepo; -import in.handyman.raven.lambda.access.repo.HandymanRepoR2Impl; -import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; -import in.handyman.raven.lambda.doa.audit.PipelineExecutionAudit; - -public class AuditUpdateActor extends AbstractActor { - - private final HandymanRepo REPO = new HandymanRepoR2Impl(); - - @Override - public Receive createReceive() { - return receiveBuilder() - .match(PipelineExecutionAudit.class, REPO::update) - .match(ActionExecutionAudit.class, REPO::update) - .build(); - } -} diff --git a/handyman.raven/src/main/java/in/handyman/raven/exception/HandymanException.java b/handyman.raven/src/main/java/in/handyman/raven/exception/HandymanException.java deleted file mode 100644 index b0e9cea1..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/exception/HandymanException.java +++ /dev/null @@ -1,12 +0,0 @@ -package in.handyman.raven.exception; - -public class HandymanException extends RuntimeException { - - public HandymanException(final String message) { - super(message); - } - - public HandymanException(final String message, final Exception t) { - super(message, t); - } -} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/ElasticsearchAccessApi.java b/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/ElasticsearchAccessApi.java deleted file mode 100644 index 0064cac2..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/ElasticsearchAccessApi.java +++ /dev/null @@ -1,238 +0,0 @@ -package in.handyman.raven.lambda.access.repo; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import com.google.common.base.CaseFormat; -import com.typesafe.config.ConfigFactory; -import in.handyman.raven.exception.HandymanException; -import lombok.extern.slf4j.Slf4j; -import org.apache.http.HttpHost; -import org.apache.http.auth.AuthScope; -import org.apache.http.auth.UsernamePasswordCredentials; -import org.apache.http.client.CredentialsProvider; -import org.apache.http.impl.client.BasicCredentialsProvider; -import org.apache.http.impl.nio.reactor.IOReactorConfig; -import org.apache.http.util.EntityUtils; -import org.elasticsearch.action.delete.DeleteRequest; -import org.elasticsearch.action.delete.DeleteResponse; -import org.elasticsearch.action.get.GetRequest; -import org.elasticsearch.action.get.GetResponse; -import org.elasticsearch.action.index.IndexRequest; -import org.elasticsearch.action.index.IndexResponse; -import org.elasticsearch.action.update.UpdateRequest; -import org.elasticsearch.action.update.UpdateResponse; -import org.elasticsearch.client.Request; -import org.elasticsearch.client.RequestOptions; -import org.elasticsearch.client.RestClient; -import org.elasticsearch.client.RestClientBuilder; -import org.elasticsearch.client.RestHighLevelClient; -import org.elasticsearch.client.indices.CreateIndexRequest; -import org.elasticsearch.client.indices.CreateIndexResponse; -import org.elasticsearch.client.indices.GetIndexRequest; -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.xcontent.XContentBuilder; -import org.elasticsearch.xcontent.XContentFactory; -import org.elasticsearch.xcontent.XContentType; - -import java.io.IOException; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - - -@Slf4j -public class ElasticsearchAccessApi { - - public static final ObjectMapper MAPPER = new ObjectMapper(); - private static final String RAVEN_CONFIGSTORE_PROPS = "config.props"; - private static final RestHighLevelClient CLIENT = getRestHighLevelClientConnection(); - - static { - MAPPER.registerModule(new JavaTimeModule()); - } - - private static RestHighLevelClient getRestHighLevelClientConnection() { - //TODO move to config - var config = ConfigFactory.parseResources(RAVEN_CONFIGSTORE_PROPS); - final CredentialsProvider credentialsProvider = - new BasicCredentialsProvider(); - credentialsProvider.setCredentials(AuthScope.ANY, - new UsernamePasswordCredentials(config.getString("config.es.username"), config.getString("config.es.password"))); - final RestClientBuilder builder = RestClient - .builder(new HttpHost(config.getString("config.es.host"), config.getInt("config.es.port"))) - .setHttpClientConfigCallback(httpAsyncClientBuilder -> { - httpAsyncClientBuilder.setMaxConnTotal(500); - httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider); - httpAsyncClientBuilder.setDefaultIOReactorConfig( - IOReactorConfig.custom() - .setIoThreadCount(10) - .build()); - return httpAsyncClientBuilder; - }); - return new RestHighLevelClient(builder); - } - - public static void createIndices(final Set> indexNames) { - try { - indexNames.stream().map(ElasticsearchAccessApi::toIndexName).forEach(indexName -> { - log.info("Index creation for {} has been initiated", indexName); - try { - final boolean exists = isExists(indexName); - if (!exists) { - final CreateIndexRequest request = new CreateIndexRequest(indexName); - request.settings(Settings.builder().put("number_of_shards", 2).put("number_of_replicas", 1) - .put("mapping.total_fields.limit", 200000000)); - final CreateIndexResponse createIndexResponse = CLIENT.indices().create(request, - RequestOptions.DEFAULT); - log.debug("response status {} shard {}", createIndexResponse.isAcknowledged(), - createIndexResponse.isShardsAcknowledged()); - } - } catch (Exception ex) { - throw new HandymanException("Index creation failed for " + indexName, ex); - } - log.info("{} has already exists", indexName); - }); - } catch (Exception ex) { - throw new HandymanException("Index creation failed", ex); - } - - } - - public static String toIndexName(final Class aClass) { - return CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, aClass.getSimpleName()); - } - - public static boolean isExists(final String indexName) throws IOException { - return CLIENT.indices().exists(new GetIndexRequest(indexName), RequestOptions.DEFAULT); - } - - public static void saveIndex(final String indexId, final Object payload) { - try { - final String indexName = toIndexName(payload.getClass()); - log.debug("save IndexName {} ID {} payload {}", indexName, indexId, payload); - final IndexRequest request = getIndexRequest(indexName, indexId, payload); - final IndexResponse indexResponse = CLIENT.index(request, RequestOptions.DEFAULT); - log.debug("response status {} payload {}", indexResponse.status(), indexResponse.getResult()); - } catch (Exception ex) { - throw new HandymanException("Index save failed", ex); - } - } - - private static IndexRequest getIndexRequest(final String indexName, final String indexId, final Object payload) throws JsonProcessingException { - final IndexRequest request = new IndexRequest(indexName); - request.id(indexId); - request.source(MAPPER.writeValueAsString(payload), XContentType.JSON); - return request; - } - - protected static DeleteResponse deleteIndex(final String indexName, final String indexId) { - try { - log.debug("{} ID {} has been requested to delete", indexName, indexId); - var deleteRequest = new DeleteRequest(indexName, indexId); - final DeleteResponse deleteResponse = CLIENT.delete(deleteRequest, RequestOptions.DEFAULT); - log.debug("response status {} payload {}", deleteResponse.status(), deleteResponse.getResult()); - log.info("{} ID {} has been deleted", indexName, indexId); - return deleteResponse; - } catch (Exception ex) { - throw new HandymanException("Index deletion failed", ex); - } - } - - protected static void updateIndexAttribute(final Class name, final String indexId, final Map attributes) { - try { - final String indexName = toIndexName(name); - log.debug("update field for IndexName {} ID {} attributes {} ", indexName, indexId, - attributes); - final UpdateRequest updateRequest = new UpdateRequest(); - final XContentBuilder xContentBuilder = XContentFactory.jsonBuilder().startObject(); - attributes.forEach((s, s2) -> { - try { - xContentBuilder.field(s, s2); - } catch (IOException e) { - throw new HandymanException("Index update failed by " + s, e); - } - }); - final XContentBuilder builder = xContentBuilder.endObject(); - updateRequest.doc(builder); - updateRequest.id(indexId); - updateRequest.index(indexName); - final UpdateResponse updateResponse = CLIENT.update(updateRequest, RequestOptions.DEFAULT); - log.debug("response status {} payload {}", updateResponse.status(), updateResponse.getResult()); - } catch (Exception ex) { - throw new HandymanException("Index update failed", ex); - } - } - - protected static Optional getDocument(final Class aClass, final String indexId) { - try { - final String indexName = toIndexName(aClass); - final GetRequest request = new GetRequest(indexName, indexId); - final GetResponse response = CLIENT.get(request, RequestOptions.DEFAULT); - if (response.isExists()) { - var version = response.getVersion(); - var sourceAsString = response.getSourceAsString(); - log.debug("fetch for IndexName {} ID {} version {} source {}", indexName, indexId, - version, sourceAsString); - return Optional.of(MAPPER.readValue(sourceAsString, aClass)); - } - return Optional.empty(); - } catch (Exception ex) { - throw new HandymanException("GetDOC failed", ex); - } - } - - public static ArrayNode fetch(final String query) { - final Request request = new Request("POST", "/_sql?format=json"); - request.setJsonEntity(String.format("{\"query\":\"%s\"}", query)); - try { - var response = CLIENT.getLowLevelClient().performRequest(request); - var responseBody = EntityUtils.toString(response.getEntity()); - final JsonNode jsonNode = MAPPER.readTree(responseBody); - return toResult(jsonNode); - } catch (Exception ex) { - throw new HandymanException("fetch Failed", ex); - } - } - - private static ArrayNode toResult(final JsonNode jsonNode) { - - final Optional optionalColumns = Optional.of(jsonNode.get("columns")).map(ArrayNode.class::cast); - final Optional optionalRows = Optional.of(jsonNode.get("rows")).map(ArrayNode.class::cast); - - final List columns = optionalColumns - .map(node -> StreamSupport.stream(node.spliterator(), false) - .map(node1 -> Optional.ofNullable(node1.get("name")).map(JsonNode::asText).orElse(null)) - .collect(Collectors.toList())) - .orElse(Collections.emptyList()); - - final ArrayNode nodes = MAPPER.createArrayNode(); - return optionalRows - .filter(node -> !columns.isEmpty()) - .map(node -> { - final int size = columns.size(); - StreamSupport.stream(node.spliterator(), false).forEach(node1 -> { - final AtomicInteger index = new AtomicInteger(); - final ObjectNode objectNode = MAPPER.createObjectNode(); - node1.forEach(node2 -> { - if (index.get() < size) { - objectNode.set(columns.get(index.getAndIncrement()), node2); - } - }); - nodes.add(objectNode); - }); - return nodes; - }) - .orElse(nodes); - - } - -} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoESImpl.java b/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoESImpl.java deleted file mode 100644 index 0ca1d294..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoESImpl.java +++ /dev/null @@ -1,113 +0,0 @@ -package in.handyman.raven.lambda.access.repo; - -//public class HandymanRepoESImpl extends AbstractAccess implements HandymanRepo { -// -// private final Config config; -// -// public HandymanRepoESImpl() { -// ElasticsearchAccessApi.createIndices(Set.of(ResourceConnection.class, ConfigStore.class, Pipeline.class, -// Action.class, Statement.class)); -// config = ConfigFactory.parseResources("config.props"); -// } -// -// @Override -// public Map getAllConfig(final String pipelineName) { -// final String lambdaName = getLambdaName(pipelineName); -// final Map pipelineConfig = toMap(findConfigEntities(ConfigType.PIPELINE, pipelineName)); -// final Map lambdaConfig = toMap(findConfigEntities(ConfigType.LAMBDA, lambdaName)); -// final Map commonConfig = getCommonConfig(); -// final Map finalMap = new HashMap<>(pipelineConfig); -// finalMap.putAll(lambdaConfig); -// finalMap.putAll(commonConfig); -// return Map.copyOf(finalMap); -// } -// -// @Override -// public List findConfigEntities(final ConfigType configType, final String configName) { -// final String format = String.format(config.getString("config.config_select_stmt_by_name"), configType.getId(), configName); -// final ArrayNode fetch = ElasticsearchAccessApi.fetch(format); -// return ElasticsearchAccessApi.MAPPER.convertValue(fetch, new TypeReference<>() { -// }); -// } -// -// @Override -// public Map getCommonConfig() { -// return toMap(findConfigEntities(ConfigType.COMMON)); -// } -// -// private List findConfigEntities(final ConfigType configType) { -// final String format = String.format(config.getString("config.config_select_stmt"), configType.getId()); -// final ArrayNode fetch = ElasticsearchAccessApi.fetch(format); -// return ElasticsearchAccessApi.MAPPER.convertValue(fetch, new TypeReference<>() { -// }); -// } -// -// @Override -// public ResourceConnection getResourceConfig(final String name) { -// final String format = String.format(config.getString("config.resource_connection_select_stmt"), name); -// final ArrayNode fetch = ElasticsearchAccessApi.fetch(format); -// final List connections = getList(fetch); -// return connections.stream().findFirst().orElseThrow(() -> new HandymanException("Not found")); -// } -// -// private List getList(final ArrayNode fetch) { -// return ElasticsearchAccessApi.MAPPER.convertValue(fetch, new TypeReference<>() { -// }); -// } -// -// @Override -// public String findValueCommonConfig(final String configName, final String variable) { -// return findConfigEntities(ConfigType.COMMON, configName, variable).map(ConfigStore::getValue).orElse(null); -// } -// -// @Override -// public Optional findConfigEntities(final ConfigType configType, final String configName, final String variable) { -// final String format = String.format(config.getString("config.config_select_stmt_by_var"), configType.getId(), configName, variable); -// final ArrayNode fetch = ElasticsearchAccessApi.fetch(format); -// final List configStore = ElasticsearchAccessApi.MAPPER.convertValue(fetch, new TypeReference<>() { -// }); -// return configStore.stream().findFirst(); -// } -// -// @Override -// public Set getPackageAction() { -// return findConfigEntities(ConfigType.COMMON, SYS_PACKAGE).stream().map(ConfigStore::getValue).collect(Collectors.toSet()); -// } -// -// @Override -// public void insertPipeline(final Pipeline audit) { -// ElasticsearchAccessApi.saveIndex(String.valueOf(audit.getPipelineId()), audit); -// } -// -// @Override -// public void insertAction(final Action audit) { -// ElasticsearchAccessApi.saveIndex(String.valueOf(audit.getActionId()), audit); -// } -// -// @Override -// public void insertStatement(final Statement audit) { -// ElasticsearchAccessApi.saveIndex(String.valueOf(audit.getStatementId()), audit); -// } -// -// @Override -// public void insert(final LambdaExecutionAudit audit) { -// -// } -// -// @Override -// public void insert(final ActionExecutionAudit audit) { -// -// } -// -// @Override -// public void update(final Pipeline audit) { -// -// } -// -// @Override -// public void update(final Action audit) { -// -// } -// -// -//} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2ImplEM.java b/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2ImplEM.java deleted file mode 100644 index fea2a86e..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2ImplEM.java +++ /dev/null @@ -1,203 +0,0 @@ -package in.handyman.raven.lambda.access.repo; - -//public class HandymanRepoR2ImplEM extends AbstractAccess implements HandymanRepo { -// -// protected static final String CONFIG_URL = "config.r2.url"; -// private static final String CONFIG_PASSWORD = "config.r2.password"; -// private static final String CONFIG_USER = "config.r2.user"; -// private static final String CONFIG_DRIVER = "config.r2.driver"; -// private static final String CONFIG_TYPE_ID = "configTypeId"; -// private static final String NAME = "name"; -// private static final String VARIABLE = "variable"; -// -// private final EntityManager ENTITY_MANAGER; -// -// public HandymanRepoR2ImplEM() { -// var config = ConfigFactory.parseResources("config.props"); -// log.info("Initializing the config store from config file {}", config.origin().url()); -// -// final String driver = config.getString(CONFIG_DRIVER); -// final String username = config.getString(CONFIG_USER); -// final String password = config.getString(CONFIG_PASSWORD); -// final String url = config.getString(CONFIG_URL); -// -// try { -// var configuration = new Configuration(); -// var settings = new Properties(); -// settings.put(AvailableSettings.DRIVER, driver); -// settings.put(AvailableSettings.URL, url); -// settings.put(AvailableSettings.USER, username); -// settings.put(AvailableSettings.PASS, password); -// settings.put(AvailableSettings.DIALECT, "org.hibernate.dialect.MariaDBDialect"); -// settings.put(AvailableSettings.HBM2DDL_AUTO, "none"); -// settings.put(AvailableSettings.SHOW_SQL, "true"); -// settings.put(AvailableSettings.STORAGE_ENGINE, "innodb"); -// settings.put(AvailableSettings.FORMAT_SQL, "true"); -// settings.put(AvailableSettings.CURRENT_SESSION_CONTEXT_CLASS, "thread"); -// settings.put(AvailableSettings.AUTOCOMMIT, "true"); -// -// configuration.setProperties(settings); -// -// var serviceRegistry = new StandardServiceRegistryBuilder() -// .applySettings(configuration.getProperties()).build(); -// -// var reflections = new Reflections("in.handyman"); -// -// var classes = reflections.getTypesAnnotatedWith(javax.persistence.Entity.class); -// -// for (Class clazz : classes) { -// configuration.addAnnotatedClass(clazz); -// } -// -// var sessionFactory = configuration.buildSessionFactory(serviceRegistry); -// ENTITY_MANAGER = sessionFactory.createEntityManager(); -// } catch (Exception e) { -// throw new HandymanException("DB Init failed", e); -// } -// } -// -// -// @Override -// public Map getAllConfig(final String pipelineName) { -// final String lambdaName = getLambdaName(pipelineName); -// final Map pipelineConfig = toMap(findConfigEntities(ConfigType.PIPELINE, pipelineName)); -// final Map lambdaConfig = toMap(findConfigEntities(ConfigType.LAMBDA, lambdaName)); -// final Map commonConfig = getCommonConfig(); -// final Map finalMap = new HashMap<>(pipelineConfig); -// finalMap.putAll(lambdaConfig); -// finalMap.putAll(commonConfig); -// return Map.copyOf(finalMap); -// } -// -// @Override -// public List findConfigEntities(final ConfigType configType, final String configName) { -// return configStores(configName, configType.getId()); -// } -// -// @Override -// public Map getCommonConfig() { -// final Class clazz = ConfigStore.class; -// final CriteriaBuilder criteriaBuilder = ENTITY_MANAGER.getCriteriaBuilder(); -// final CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(clazz); -// final Root root = criteriaQuery.from(clazz); -// criteriaBuilder.and(criteriaBuilder.equal(root.get(CONFIG_TYPE_ID), ConfigType.COMMON.getId())); -// criteriaQuery.select(root); -// var typedQuery = ENTITY_MANAGER.createQuery(criteriaQuery); -// return toMap(typedQuery.getResultList()); -// } -// -// @Override -// public ResourceConnection getResourceConfig(final String name) { -// final Class clazz = ResourceConnection.class; -// final CriteriaBuilder criteriaBuilder = ENTITY_MANAGER.getCriteriaBuilder(); -// final CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(clazz); -// final Root root = criteriaQuery.from(clazz); -// criteriaBuilder.equal(root.get(NAME), name); -// criteriaQuery.select(root); -// var typedQuery = ENTITY_MANAGER.createQuery(criteriaQuery); -// return typedQuery.getResultStream().findFirst().orElse(null); -// } -// -// @Override -// public String findValueCommonConfig(final String configName, final String variable) { -// final Class clazz = ConfigStore.class; -// final CriteriaBuilder criteriaBuilder = ENTITY_MANAGER.getCriteriaBuilder(); -// final CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(clazz); -// final Root root = criteriaQuery.from(clazz); -// criteriaBuilder.equal(root.get(NAME), configName); -// criteriaBuilder.equal(root.get(VARIABLE), variable); -// criteriaQuery.select(root); -// var typedQuery = ENTITY_MANAGER.createQuery(criteriaQuery); -// return typedQuery.getResultStream().findFirst().map(ConfigStore::getValue).orElse(null); -// } -// -// @Override -// public Set getPackageAction() { -// return configStores(SYS_PACKAGE, ConfigType.COMMON.getId()).stream().map(ConfigStore::getValue).collect(Collectors.toSet()); -// } -// -// private List configStores(final String configName, final Integer configTypeId) { -// return ENTITY_MANAGER.createNativeQuery("SELECT id, active, config_type_id, name, value, variable, created_by, created_date, last_modified_by, last_modified_date, configTypeId FROM handyman_vm.config_store where name = ? and config_type_id = ?", ConfigStore.class) -// .setParameter(1, configName) -// .setParameter(2, configTypeId) -// .getResultList(); -// -// } -// -// @Override -// public void insertPipeline(final Pipeline audit) { -// audit.setLastModifiedDate(LocalDateTime.now()); -// ENTITY_MANAGER.createNativeQuery("INSERT INTO handyman_vm.pipeline (pipeline_id, created_by, created_date, last_modified_by, last_modified_date, context_node, execution_status_id, lambda_name, parent_action_id, parent_action_name, parent_pipeline_id, parent_pipeline_name, pipeline_name, file_content, host_name, mode_of_execution, pipeline_load_type, relative_path, request_body, thread_name) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") -// .setParameter(1, audit.getPipelineId()) -// .setParameter(2, audit.getCreatedBy()) -// .setParameter(3, audit.getCreatedDate()) -// .setParameter(4, audit.getLastModifiedBy()) -// .setParameter(5, audit.getLastModifiedDate()) -// .setParameter(6, audit.getContextNode()) -// .setParameter(7, audit.getExecutionStatusId()) -// .setParameter(8, audit.getLambdaName()) -// .setParameter(9, audit.getParentActionId()) -// .setParameter(10, audit.getParentActionName()) -// .setParameter(11, audit.getParentPipelineId()) -// .setParameter(12, audit.getParentPipelineName()) -// .setParameter(13, audit.getPipelineName()) -// .setParameter(14, audit.getFileContent()) -// .setParameter(15, audit.getHostName()) -// .setParameter(16, audit.getModeOfExecution()) -// .setParameter(17, audit.getPipelineLoadType()) -// .setParameter(18, audit.getRelativePath()) -// .setParameter(19, audit.getRequestBody()) -// .setParameter(20, audit.getThreadName()); -// -// } -// -// private void save(final Object audit) { -// //ENTITY_MANAGER.persist(audit); -// } -// -// @Override -// public void insertAction(final Action audit) { -// audit.setLastModifiedDate(LocalDateTime.now()); -// save(audit); -// -// -// } -// -// @Override -// public void insertStatement(final Statement audit) { -// audit.setLastModifiedDate(LocalDateTime.now()); -// save(audit); -// -// -// } -// -// @Override -// public void insert(final LambdaExecutionAudit audit) { -// audit.setLastModifiedDate(LocalDateTime.now()); -// save(audit); -// -// -// } -// -// @Override -// public void insert(final ActionExecutionAudit audit) { -// audit.setLastModifiedDate(LocalDateTime.now()); -// save(audit); -// } -// -// @Override -// public void update(final Pipeline audit) { -// audit.setLastModifiedDate(LocalDateTime.now()); -// save(audit); -// } -// -// @Override -// public void update(final Action audit) { -// audit.setLastModifiedDate(LocalDateTime.now()); -// save(audit); -// -// -// } -// -// -//} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/PipelineExecutionAuditRepo.java b/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/PipelineExecutionAuditRepo.java deleted file mode 100644 index c33fa22a..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/PipelineExecutionAuditRepo.java +++ /dev/null @@ -1,45 +0,0 @@ -package in.handyman.raven.lambda.access.repo; - - -import in.handyman.raven.lambda.doa.audit.PipelineExecutionAudit; -import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; -import org.jdbi.v3.sqlobject.customizer.Bind; -import org.jdbi.v3.sqlobject.customizer.BindBean; -import org.jdbi.v3.sqlobject.statement.SqlQuery; -import org.jdbi.v3.sqlobject.statement.SqlUpdate; - -import java.util.List; -import java.util.Optional; - -public interface PipelineExecutionAuditRepo { - - String COLUMNS = " pipeline_id, created_by, created_date, last_modified_by, last_modified_date, context_node, execution_status_id, lambda_name, parent_action_id, parent_action_name, parent_pipeline_id, parent_pipeline_name, pipeline_name, file_content, host_name, mode_of_execution, pipeline_load_type, relative_path, request_body, thread_name, process_name, root_pipeline_id, process_id "; - - @SqlUpdate("insert into " + PipelineExecutionAudit.SCHEMA_NAME + "." + PipelineExecutionAudit.TABLE_NAME + " ( " + COLUMNS + " ) VALUES( :pipelineId,:createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :contextNode,:executionStatusId,:lambdaName,:parentActionId, :parentActionName, :parentPipelineId, :parentPipelineName, :pipelineName, :fileContent,:hostName,:modeOfExecution,:pipelineLoadType,:relativePath,:requestBody,:threadName,:processName,:rootPipelineId,:processId ); ") - void insert(@BindBean final PipelineExecutionAudit actionExecutionAudit); - - @SqlUpdate("update " + PipelineExecutionAudit.SCHEMA_NAME + "." + PipelineExecutionAudit.TABLE_NAME + " SET created_by = :createdBy, created_date = :createdDate, last_modified_by = :lastModifiedBy, last_modified_date = :lastModifiedDate, context_node = :contextNode, execution_status_id = :executionStatusId, lambda_name = :lambdaName, parent_action_id = :parentActionId, parent_action_name = :parentActionName, parent_pipeline_id = :parentPipelineId, parent_pipeline_name = :parentPipelineName, pipeline_name = :pipelineName, file_content = :fileContent, host_name = :hostName, mode_of_execution = :modeOfExecution, pipeline_load_type = :pipelineLoadType , relative_path = :relativePath, request_body = :requestBody, process_name = :processName , root_pipeline_id = :rootPipelineId , process_id = :processId WHERE pipeline_id = :pipelineId ") - void update(@BindBean final PipelineExecutionAudit actionExecutionAudit); - - - @SqlQuery("SELECT " + COLUMNS + " FROM " + PipelineExecutionAudit.SCHEMA_NAME + "." + PipelineExecutionAudit.TABLE_NAME + " ; ") - @RegisterBeanMapper(value = PipelineExecutionAudit.class) - List findAllPipelines(); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + PipelineExecutionAudit.SCHEMA_NAME + "." + PipelineExecutionAudit.TABLE_NAME + " where root_pipeline_id= :rootPipelineId ; ") - @RegisterBeanMapper(value = PipelineExecutionAudit.class) - List findAllPipelinesByRootPipelineId(@Bind("rootPipelineId") final Long rootPipelineId); - - - @SqlQuery("SELECT " + COLUMNS + " FROM " + PipelineExecutionAudit.SCHEMA_NAME + "." + PipelineExecutionAudit.TABLE_NAME + " where pipeline_name= :pipelineName ; ") - @RegisterBeanMapper(value = PipelineExecutionAudit.class) - List findAllByPipelineName(@Bind("pipelineName") final String pipelineName); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + PipelineExecutionAudit.SCHEMA_NAME + "." + PipelineExecutionAudit.TABLE_NAME + " where parent_action_id= :parentActionId ; ") - @RegisterBeanMapper(value = PipelineExecutionAudit.class) - List findAllPipelinesByParentActionId(@Bind("parentActionId") final Long parentActionId); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + PipelineExecutionAudit.SCHEMA_NAME + "." + PipelineExecutionAudit.TABLE_NAME + " where pipeline_id= :pipelineId ; ") - @RegisterBeanMapper(value = PipelineExecutionAudit.class) - Optional findOneByPipelineId(@Bind("pipelineId") final Long pipelineId); -} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwCommonConfigRepo.java b/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwCommonConfigRepo.java deleted file mode 100644 index 2abe9980..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwCommonConfigRepo.java +++ /dev/null @@ -1,37 +0,0 @@ -package in.handyman.raven.lambda.access.repo; - -import in.handyman.raven.lambda.doa.config.SpwCommonConfig; -import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; -import org.jdbi.v3.sqlobject.customizer.Bind; -import org.jdbi.v3.sqlobject.customizer.BindBean; -import org.jdbi.v3.sqlobject.statement.SqlQuery; -import org.jdbi.v3.sqlobject.statement.SqlUpdate; - -import java.util.List; -import java.util.Optional; - -public interface SpwCommonConfigRepo { - - String COLUMNS = " id, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version "; - - @SqlUpdate("insert into " + SpwCommonConfig.SCHEMA_NAME + "." + SpwCommonConfig.TABLE_NAME + " ( variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version) " + - "VALUES ( :variable, :value,:active,:createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :version)") - void insert(@BindBean final SpwCommonConfig spwCommonConfig); - - @SqlUpdate("UPDATE " + SpwCommonConfig.SCHEMA_NAME + "." + SpwCommonConfig.TABLE_NAME + " SET active=:active, created_by= :createdBy , created_date= :createdDate," + - " last_modified_by= :lastModifiedBy, last_modified_date= :lastModifiedDate , variable= :variable , value= :value WHERE id = :id ") - void update(@BindBean final SpwCommonConfig spwCommonConfig); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwCommonConfig.SCHEMA_NAME + "." + SpwCommonConfig.TABLE_NAME + " where active=1 ; ") - @RegisterBeanMapper(value = SpwCommonConfig.class) - List findAll(); - - @SqlQuery("SELECT count(1)+1 FROM " + SpwCommonConfig.SCHEMA_NAME + "." + SpwCommonConfig.TABLE_NAME + " where variable= :variable ; ") - @RegisterBeanMapper(value = SpwCommonConfig.class) - Long getNextVersion(@BindBean final SpwCommonConfig spwCommonConfig); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwCommonConfig.SCHEMA_NAME + "." + SpwCommonConfig.TABLE_NAME + " where variable= :variable and active=1 order by version desc limit 1; ") - @RegisterBeanMapper(value = SpwCommonConfig.class) - Optional findOne(@Bind("variable") final String variable); - -} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwInstanceConfigRepo.java b/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwInstanceConfigRepo.java deleted file mode 100644 index a701f7cd..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwInstanceConfigRepo.java +++ /dev/null @@ -1,52 +0,0 @@ -package in.handyman.raven.lambda.access.repo; - -import in.handyman.raven.lambda.doa.config.SpwInstanceConfig; -import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; -import org.jdbi.v3.sqlobject.customizer.Bind; -import org.jdbi.v3.sqlobject.customizer.BindBean; -import org.jdbi.v3.sqlobject.statement.SqlQuery; -import org.jdbi.v3.sqlobject.statement.SqlUpdate; - -import java.util.List; -import java.util.Optional; - -public interface SpwInstanceConfigRepo { - - String COLUMNS = " id, `instance`, process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version "; - - @SqlUpdate("insert into " + SpwInstanceConfig.SCHEMA_NAME + "." + SpwInstanceConfig.TABLE_NAME + " (instance,process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version) " + - "VALUES (:instance, :process, :variable, :value,:active,:createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :version)") - void insert(@BindBean final SpwInstanceConfig spwInstanceConfig); - - @SqlUpdate("UPDATE " + SpwInstanceConfig.SCHEMA_NAME + "." + SpwInstanceConfig.TABLE_NAME + " SET active=:active, created_by= :createdBy , created_date= :createdDate," + - " last_modified_by= :lastModifiedBy, last_modified_date= :lastModifiedDate , instance= :instance, process= :process , variable= :variable , value= :value WHERE id = :id ") - void update(@BindBean final SpwInstanceConfig spwInstanceConfig); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwInstanceConfig.SCHEMA_NAME + "." + SpwInstanceConfig.TABLE_NAME + " where active=1 ; ") - @RegisterBeanMapper(value = SpwInstanceConfig.class) - List findAll(); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwInstanceConfig.SCHEMA_NAME + "." + SpwInstanceConfig.TABLE_NAME + " where instance= :instance and active=1 ; ") - @RegisterBeanMapper(value = SpwInstanceConfig.class) - List findAllByInstance(@Bind("instance") final String instance); - - @SqlQuery("SELECT count(1)+1 FROM " + SpwInstanceConfig.SCHEMA_NAME + "." + SpwInstanceConfig.TABLE_NAME + " where instance= :instance and variable= :variable ; ") - @RegisterBeanMapper(value = SpwInstanceConfig.class) - Long getNextVersion(@BindBean final SpwInstanceConfig spwInstanceConfig); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwInstanceConfig.SCHEMA_NAME + "." + SpwInstanceConfig.TABLE_NAME + " where instance= :instance and variable= :variable and active=1 order by version desc limit 1; ") - @RegisterBeanMapper(value = SpwInstanceConfig.class) - Optional findOne(@Bind("instance") final String instance, @Bind("variable") final String variable); - - - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwInstanceConfig.SCHEMA_NAME + "." + SpwInstanceConfig.TABLE_NAME + " where variable= :variable and active=1 ; ") - @RegisterBeanMapper(value = SpwInstanceConfig.class) - List findAllByInstanceVariable(@Bind("variable") final String variable); - - @SqlQuery("select count(1) from " + SpwInstanceConfig.SCHEMA_NAME + " where name = :name and variable= :variable and config_type_id= :configTypeId") - Integer count(@Bind("name") final String name, @Bind("variable") final String variable, @Bind("configTypeId") final Integer configTypeId); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwInstanceConfig.SCHEMA_NAME + "." + SpwInstanceConfig.TABLE_NAME + " where name = :name and variable= :variable and config_type_id= :configTypeId and active=1 order by version desc limit 1; ") - @RegisterBeanMapper(value = SpwInstanceConfig.class) - Optional get(@Bind("name") final String name, @Bind("variable") final String variable, @Bind("configTypeId") final Integer configTypeId); -} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwProcessConfigRepo.java b/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwProcessConfigRepo.java deleted file mode 100644 index 30695b3f..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwProcessConfigRepo.java +++ /dev/null @@ -1,41 +0,0 @@ -package in.handyman.raven.lambda.access.repo; - -import in.handyman.raven.lambda.doa.config.SpwProcessConfig; -import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; -import org.jdbi.v3.sqlobject.customizer.Bind; -import org.jdbi.v3.sqlobject.customizer.BindBean; -import org.jdbi.v3.sqlobject.statement.SqlQuery; -import org.jdbi.v3.sqlobject.statement.SqlUpdate; - -import java.util.List; -import java.util.Optional; - -public interface SpwProcessConfigRepo { - - String COLUMNS = " id, process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version "; - - @SqlUpdate("insert into " + SpwProcessConfig.SCHEMA_NAME + "." + SpwProcessConfig.TABLE_NAME + " (process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version) " + - "VALUES ( :process, :variable, :value,:active,:createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :version)") - void insert(@BindBean final SpwProcessConfig spwProcessConfig); - - @SqlUpdate("UPDATE " + SpwProcessConfig.SCHEMA_NAME + "." + SpwProcessConfig.TABLE_NAME + " SET active=:active, created_by= :createdBy , created_date= :createdDate," + - " last_modified_by= :lastModifiedBy, last_modified_date= :lastModifiedDate , process= :process , variable= :variable , value= :value WHERE id = :id ") - void update(@BindBean final SpwProcessConfig spwProcessConfig); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwProcessConfig.SCHEMA_NAME + "." + SpwProcessConfig.TABLE_NAME + " where active=1 ; ") - @RegisterBeanMapper(value = SpwProcessConfig.class) - List findAll(); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwProcessConfig.SCHEMA_NAME + "." + SpwProcessConfig.TABLE_NAME + " where process= :process and active=1 ; ") - @RegisterBeanMapper(value = SpwProcessConfig.class) - List findAllByProcess(@Bind("process") final String process); - - @SqlQuery("SELECT count(1)+1 FROM " + SpwProcessConfig.SCHEMA_NAME + "." + SpwProcessConfig.TABLE_NAME + " where process= :process and variable= :variable ; ") - @RegisterBeanMapper(value = SpwProcessConfig.class) - Long getNextVersion(@BindBean final SpwProcessConfig spwProcessConfig); - - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwProcessConfig.SCHEMA_NAME + "." + SpwProcessConfig.TABLE_NAME + " where process= :process and variable= :variable and active=1 order by version desc limit 1; ") - @RegisterBeanMapper(value = SpwProcessConfig.class) - Optional findOne(@Bind("process") final String process, @Bind("variable") final String variable); - -} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/CreateFileAction.java b/handyman.raven/src/main/java/in/handyman/raven/lib/CreateFileAction.java deleted file mode 100644 index 0d2d39e6..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/CreateFileAction.java +++ /dev/null @@ -1,102 +0,0 @@ -package in.handyman.raven.lib; - -import in.handyman.raven.lambda.action.ActionExecution; -import in.handyman.raven.lambda.action.IActionExecution; -import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; -import in.handyman.raven.lib.model.CreateFile; -import org.apache.pdfbox.pdmodel.PDDocument; -import org.apache.pdfbox.pdmodel.PDPage; -import org.apache.poi.hslf.usermodel.HSLFSlideShow; -import org.apache.poi.sl.usermodel.Slide; -import org.apache.poi.sl.usermodel.SlideShow; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.apache.poi.xwpf.usermodel.XWPFDocument; -import org.odftoolkit.odfdom.doc.OdfTextDocument; -import org.slf4j.Logger; -import org.slf4j.Marker; -import org.slf4j.MarkerFactory; - -import java.io.File; -import java.io.FileOutputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; - -/** - * Auto Generated By Raven - */ -@ActionExecution( - actionName = "CreateFile" -) -public class CreateFileAction implements IActionExecution { - private final ActionExecutionAudit actionExecutionAudit; - - private final Logger log; - - private final CreateFile createFile; - - private final Marker aMarker; - - public CreateFileAction(final ActionExecutionAudit actionExecutionAudit, final Logger log, final Object createFile) { - this.createFile = (CreateFile) createFile; - this.actionExecutionAudit = actionExecutionAudit; - this.log = log; - this.aMarker = MarkerFactory.getMarker("CreateFile"); - } - - @Override - public void execute() throws Exception { - String fileLocation = createFile.getLocation(); - String fileName = createFile.getFileName(); - String extension = createFile.getExtension(); - - String createFile = fileLocation.concat(fileName + extension); - Path path = Paths.get(createFile); - if (!Files.exists(path)) { - switch (extension) { - case ".doc": - case ".docx": - XWPFDocument xwpfdocument = new XWPFDocument(); - File file = new File(createFile); - try (FileOutputStream ostream = new FileOutputStream(file)) { - xwpfdocument.write(ostream); - } - break; - case ".html": - case ".htm": - case ".txt": - Files.createFile(path); - case ".odt": - OdfTextDocument odt = OdfTextDocument.newTextDocument(); - odt.save(createFile); - case ".pdf": - try (PDDocument document = new PDDocument()) { - document.addPage(new PDPage()); - document.save(createFile); - } - case ".xls": - case ".xlsx": - XSSFWorkbook workbook = new XSSFWorkbook(); - try (FileOutputStream out = new FileOutputStream(new File(createFile))) { - workbook.write(out); - } - case ".ppt": - case ".pptx": - try (SlideShow slideShow = new HSLFSlideShow()) { - Slide slide = slideShow.createSlide(); - FileOutputStream out1 = new FileOutputStream(createFile); - slideShow.write(out1); - } - default: - //log.info("No Extension found"); - } - } else { - //log.info("{} File already exists",path); - } - } - - @Override - public boolean executeIf() throws Exception { - return false; - } -} diff --git a/handyman.raven/src/main/java/in/handyman/raven/metric/Metric.java b/handyman.raven/src/main/java/in/handyman/raven/metric/Metric.java deleted file mode 100644 index c14bf79d..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/metric/Metric.java +++ /dev/null @@ -1,32 +0,0 @@ -package in.handyman.raven.metric; - -import lombok.Data; - -import java.lang.management.ClassLoadingMXBean; -import java.lang.management.CompilationMXBean; -import java.lang.management.ManagementFactory; - -public class Metric { - - void classLoaderMetrics(final MetricPayload payload) { - final ClassLoadingMXBean classLoadingBean = ManagementFactory.getClassLoadingMXBean(); - payload.setLoadedClassCount(classLoadingBean.getLoadedClassCount()); - payload.setUnLoadedClassCount(classLoadingBean.getUnloadedClassCount()); - } - - void jvmCompilationMetrics(final MetricPayload payload) { - final CompilationMXBean compilationBean = ManagementFactory.getCompilationMXBean(); - if (compilationBean != null && compilationBean.isCompilationTimeMonitoringSupported()) { - payload.setTotalCompilationTime(compilationBean.getTotalCompilationTime()); - } - } - - @Data - static class MetricPayload { - - private Integer loadedClassCount; - private Long unLoadedClassCount; - private Long totalCompilationTime; - - } -} diff --git a/handyman.raven/src/main/java/in/handyman/raven/metric/MetricUtil.java b/handyman.raven/src/main/java/in/handyman/raven/metric/MetricUtil.java deleted file mode 100644 index 50a35f58..00000000 --- a/handyman.raven/src/main/java/in/handyman/raven/metric/MetricUtil.java +++ /dev/null @@ -1,236 +0,0 @@ -package in.handyman.raven.metric; - -import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; -import in.handyman.raven.lambda.doa.audit.ExecutionStatus; -import io.github.mweirauch.micrometer.jvm.extras.ProcessMemoryMetrics; -import io.github.mweirauch.micrometer.jvm.extras.ProcessThreadMetrics; -import io.micrometer.core.instrument.Counter; -import io.micrometer.core.instrument.DistributionSummary; -import io.micrometer.core.instrument.LongTaskTimer; -import io.micrometer.core.instrument.Timer; -import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics; -import io.micrometer.core.instrument.binder.jvm.DiskSpaceMetrics; -import io.micrometer.core.instrument.binder.jvm.JvmCompilationMetrics; -import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics; -import io.micrometer.core.instrument.binder.jvm.JvmHeapPressureMetrics; -import io.micrometer.core.instrument.binder.jvm.JvmInfoMetrics; -import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics; -import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics; -import io.micrometer.core.instrument.binder.system.FileDescriptorMetrics; -import io.micrometer.core.instrument.binder.system.ProcessorMetrics; -import io.micrometer.core.instrument.binder.system.UptimeMetrics; -import io.micrometer.prometheus.PrometheusConfig; -import io.micrometer.prometheus.PrometheusMeterRegistry; -import lombok.ToString; -import lombok.extern.slf4j.Slf4j; - -import java.io.File; -import java.time.Duration; -import java.util.Optional; -import java.util.concurrent.TimeUnit; - -@Slf4j -public class MetricUtil { - - private static final PrometheusMeterRegistry registry; - private static final String cQuery = "CREATE TABLE if not exists %s ( `name` text NOT NULL, `count` float8 NULL DEFAULT 0, `value` float8 NULL DEFAULT 0, `sum` float8 NULL DEFAULT 0, `mean` float8 NULL DEFAULT 0, `duration` float8 NULL DEFAULT 0, `max` float8 NULL DEFAULT 0, `total` float8 NULL DEFAULT 0, `unknown` float8 NULL DEFAULT 0, `active` float8 NULL DEFAULT 0, `created_on` timestamp DEFAULT current_timestamp() , tags text NULL DEFAULT '[]' ) ENGINE = InnoDB DEFAULT CHARSET = utf8;"; - private static final String iQuery = "INSERT INTO %s (name, count, value, sum, mean, duration, max, active, created_on,tags) VALUES(?,?,?,?,?,?,?,?,current_timestamp(),?);"; - - static { - registry = new PrometheusMeterRegistry(new PrometheusConfig() { - - @Override - public String get(final String key) { - return null; - } - - @Override - public Duration step() { - return Duration.ofSeconds(5); - } - - }); - registry.config().commonTags("instance", "Handyman"); - new JvmCompilationMetrics().bindTo(registry); - new JvmGcMetrics().bindTo(registry); - new JvmHeapPressureMetrics().bindTo(registry); - new JvmInfoMetrics().bindTo(registry); - new JvmMemoryMetrics().bindTo(registry); - new JvmThreadMetrics().bindTo(registry); - new ProcessMemoryMetrics().bindTo(registry); - new ProcessThreadMetrics().bindTo(registry); - new DiskSpaceMetrics(new File(".")).bindTo(registry); - new UptimeMetrics().bindTo(registry); - new ProcessorMetrics().bindTo(registry); - new ClassLoaderMetrics().bindTo(registry); - new FileDescriptorMetrics().bindTo(registry); - } - - public static void addAfter(final ActionExecutionAudit actionExecutionAudit) { - final String name = "process." + actionExecutionAudit.getPipelineName(); - Counter.builder(name) - .tag("LambdaName", actionExecutionAudit.getLambdaName()) - .tag("status", Optional.ofNullable(ExecutionStatus.get(actionExecutionAudit.getExecutionStatusId())).map(ExecutionStatus::name).orElse("")) - .register(registry).increment(); - Counter.builder(name + ".try") - .description("Number of Try Actions") - .tag("LambdaName", actionExecutionAudit.getLambdaName()) - .tag("status", Optional.ofNullable(ExecutionStatus.get(actionExecutionAudit.getExecutionStatusId())).map(ExecutionStatus::name).orElse("")) - .register(registry).increment(); - Counter.builder(name + ".catch") - .description("Number of Catch Actions") - .tag("LambdaName", actionExecutionAudit.getLambdaName()) - .tag("status", Optional.ofNullable(ExecutionStatus.get(actionExecutionAudit.getExecutionStatusId())).map(ExecutionStatus::name).orElse("")) - .register(registry).increment(); - Counter.builder(name + ".finally") - .description("Number of Finally Actions") - .tag("LambdaName", actionExecutionAudit.getLambdaName()) - .tag("status", Optional.ofNullable(ExecutionStatus.get(actionExecutionAudit.getExecutionStatusId())).map(ExecutionStatus::name).orElse("")) - .register(registry).increment(); - final long amount = System.nanoTime() - actionExecutionAudit.getCreatedDate().getNano(); - Timer.builder(name + ".requests") - .tag("LambdaName", actionExecutionAudit.getLambdaName()) - .register(registry) - .record(amount, TimeUnit.NANOSECONDS); - LongTaskTimer.builder(name + ".requests.slow") - .tag("LambdaName", actionExecutionAudit.getLambdaName()) - .register(registry); - DistributionSummary.builder(name + ".detail") - .tag("LambdaName", actionExecutionAudit.getLambdaName()) - .tag("ActionId", String.valueOf(actionExecutionAudit.getActionId())) - .register(registry).record(amount); - persist(); - } - - private static void persist() { - -// var conn = DBAccess.getConnection(); -// conn.createStatement(String.format(cQuery, "`micrometer-metrics`")).execute(); -// final String iFormattedQuery = String.format(iQuery, "`micrometer-metrics`"); -// final List meters = registry.getMeters(); -// for (var meter : meters) { -// var stmt = conn.createStatement(iFormattedQuery); -// final Payload payload = new Payload(); -// meter.use(gauge -> payload.setValue(gauge.value()), -// counter -> payload.setCount(counter.count()), -// timer -> { -// payload.setCount((double) timer.count()); -// payload.setSum(timer.totalTime(getBaseTimeUnit())); -// payload.setMean(timer.mean(getBaseTimeUnit())); -// payload.setMax(timer.max(getBaseTimeUnit())); -// }, distributionSummary -> { -// payload.setCount((double) distributionSummary.count()); -// payload.setSum(distributionSummary.totalAmount()); -// payload.setMean(distributionSummary.mean()); -// payload.setMax(distributionSummary.max()); -// }, longTaskTimer -> { -// payload.setMean(longTaskTimer.mean(getBaseTimeUnit())); -// payload.setMax(longTaskTimer.max(getBaseTimeUnit())); -// payload.setActive((double) longTaskTimer.activeTasks()); -// payload.setDuration(longTaskTimer.duration(getBaseTimeUnit())); -// }, timeGauge -> payload.setValue(timeGauge.value(getBaseTimeUnit())), -// functionCounter -> payload.setCount(functionCounter.count()), functionTimer -> { -// payload.setSum(functionTimer.totalTime(getBaseTimeUnit())); -// payload.setMean(functionTimer.mean(getBaseTimeUnit())); -// payload.setCount(functionTimer.count()); -// }, log::debug); -// final String tags = meter.getId().getTags().stream().map(t -> String.format("{\"%s\":\"%s\"}", t.getKey(), t.getValue())) -// .collect(joining(",", "[", "]")); -// stmt.bind(1, meter.getId().getName()); -// stmt.bind(2, payload.getCount()); -// stmt.bind(3, payload.getValue()); -// stmt.bind(4, payload.getSum()); -// stmt.bind(5, payload.getMean()); -// stmt.bind(6, payload.getDuration()); -// stmt.bind(7, payload.getMax()); -// stmt.bind(8, payload.getActive()); -// stmt.bind(9, tags); -// stmt.execute(); -// } - - } - - private static TimeUnit getBaseTimeUnit() { - return TimeUnit.NANOSECONDS; - } - - @ToString - public static class Payload { - - private String name; - private Double count = 0d; - private Double value = 0d; - private Double sum = 0d; - private Double mean = 0d; - private Double duration = 0d; - private Double max = 0d; - private Double active = 0d; - - public String getName() { - return name; - } - - public void setName(final String name) { - this.name = name; - } - - public Double getCount() { - return Optional.ofNullable(count).filter(aDouble -> !aDouble.isInfinite() && !aDouble.isNaN()).orElse(0d); - } - - public void setCount(final Double count) { - this.count = count; - } - - public Double getValue() { - return Optional.ofNullable(value).filter(aDouble -> !aDouble.isInfinite() && !aDouble.isNaN()).orElse(0d); - } - - public void setValue(final Double value) { - this.value = value; - } - - public Double getSum() { - return Optional.ofNullable(sum).filter(aDouble -> !aDouble.isInfinite() && !aDouble.isNaN()).orElse(0d); - } - - public void setSum(final Double sum) { - this.sum = sum; - } - - public Double getMean() { - return Optional.ofNullable(mean).filter(aDouble -> !aDouble.isInfinite() && !aDouble.isNaN()).orElse(0d); - } - - public void setMean(final Double mean) { - this.mean = mean; - } - - public Double getDuration() { - return Optional.ofNullable(duration).filter(aDouble -> !aDouble.isInfinite() && !aDouble.isNaN()).orElse(0d); - } - - public void setDuration(final Double duration) { - this.duration = duration; - } - - public Double getMax() { - return Optional.ofNullable(max).filter(aDouble -> !aDouble.isInfinite() && !aDouble.isNaN()).orElse(0d); - } - - public void setMax(final Double max) { - this.max = max; - } - - - public Double getActive() { - return Optional.ofNullable(active).filter(aDouble -> !aDouble.isInfinite() && !aDouble.isNaN()).orElse(0d); - } - - public void setActive(final Double active) { - this.active = active; - } - - } - -} diff --git a/handyman.raven/src/main/scala/in/handyman/raven/Test.scala b/handyman.raven/src/main/scala/in/handyman/raven/Test.scala deleted file mode 100644 index 553a8631..00000000 --- a/handyman.raven/src/main/scala/in/handyman/raven/Test.scala +++ /dev/null @@ -1,5 +0,0 @@ -package in.handyman.raven - -class Test { - -} diff --git a/handyman.raven/src/test/java/in/handyman/raven/kafka/ConsumerK.java b/handyman.raven/src/test/java/in/handyman/raven/kafka/ConsumerK.java deleted file mode 100644 index a12f7091..00000000 --- a/handyman.raven/src/test/java/in/handyman/raven/kafka/ConsumerK.java +++ /dev/null @@ -1,41 +0,0 @@ -package in.handyman.raven.kafka; - -import org.apache.kafka.clients.consumer.Consumer; -import org.apache.kafka.clients.consumer.ConsumerConfig; -import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; -import org.apache.kafka.clients.consumer.KafkaConsumer; -import org.junit.jupiter.api.Test; - -import java.time.Duration; -import java.util.List; -import java.util.Properties; - -public class ConsumerK { - - @Test - void testKafkaProducer() { - final String topic = "purchases"; - - // Load consumer configuration settings from a local file - final Properties props = ProducerK.PROPS; - - // Add additional properties. - props.put(ConsumerConfig.GROUP_ID_CONFIG, "kafka-java-getting-started"); - props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); - - // Add additional required properties for this consumer app - try (final Consumer consumer = new KafkaConsumer<>(props)) { - consumer.subscribe(List.of(topic)); - while (true) { - final ConsumerRecords records = consumer.poll(Duration.ofMillis(100)); - for (final ConsumerRecord record : records) { - final String key = record.key(); - final String value = record.value(); - System.out.printf("Consumed event from topic %s: key = %-10s value = %s%n", topic, key, value); - } - } - } - } - -} diff --git a/handyman.raven/src/test/java/in/handyman/raven/kafka/KafkaStreamsApplication.java b/handyman.raven/src/test/java/in/handyman/raven/kafka/KafkaStreamsApplication.java deleted file mode 100644 index 5fb93523..00000000 --- a/handyman.raven/src/test/java/in/handyman/raven/kafka/KafkaStreamsApplication.java +++ /dev/null @@ -1,72 +0,0 @@ -package in.handyman.raven.kafka; - -import org.apache.kafka.common.serialization.Serde; -import org.apache.kafka.common.serialization.Serdes; -import org.apache.kafka.streams.KafkaStreams; -import org.apache.kafka.streams.StreamsBuilder; -import org.apache.kafka.streams.Topology; -import org.apache.kafka.streams.kstream.Consumed; -import org.apache.kafka.streams.kstream.Produced; -import org.apache.kafka.streams.kstream.ValueMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.FileInputStream; -import java.io.InputStream; -import java.util.Properties; -import java.util.concurrent.CountDownLatch; - -public class KafkaStreamsApplication { - - private static final Logger logger = LoggerFactory.getLogger(KafkaStreamsApplication.class); - - static void runKafkaStreams(final KafkaStreams streams) { - final CountDownLatch latch = new CountDownLatch(1); - streams.setStateListener((newState, oldState) -> { - if (oldState == KafkaStreams.State.RUNNING && newState != KafkaStreams.State.RUNNING) { - latch.countDown(); - } - }); - - streams.start(); - - try { - latch.await(); - } catch (final InterruptedException e) { - throw new RuntimeException(e); - } - - logger.info("Streams Closed"); - } - - static Topology buildTopology(String inputTopic, String outputTopic) { - Serde stringSerde = Serdes.String(); - - StreamsBuilder builder = new StreamsBuilder(); - - builder - .stream(inputTopic, Consumed.with(stringSerde, stringSerde)) - .peek((k, v) -> logger.info("Observed event: {}", v)) - .mapValues((ValueMapper) String::toUpperCase) - .peek((k, v) -> logger.info("Transformed event: {}", v)) - .to(outputTopic, Produced.with(stringSerde, stringSerde)); - - return builder.build(); - } - - public static void main(String[] args) throws Exception { - - if (args.length < 1) { - throw new IllegalArgumentException("This program takes one argument: the path to a configuration file."); - } - - Properties props = new Properties(); - try (InputStream inputStream = new FileInputStream(args[0])) { - props.load(inputStream); - } - - final String inputTopic = props.getProperty("input.topic.name"); - final String outputTopic = props.getProperty("output.topic.name"); - - } -} diff --git a/handyman.raven/src/test/java/in/handyman/raven/kafka/ProducerK.java b/handyman.raven/src/test/java/in/handyman/raven/kafka/ProducerK.java deleted file mode 100644 index d5eda6c0..00000000 --- a/handyman.raven/src/test/java/in/handyman/raven/kafka/ProducerK.java +++ /dev/null @@ -1,106 +0,0 @@ -package in.handyman.raven.kafka; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.kafka.clients.admin.Admin; -import org.apache.kafka.clients.admin.AdminClientConfig; -import org.apache.kafka.clients.admin.DeleteTopicsResult; -import org.apache.kafka.clients.admin.NewTopic; -import org.apache.kafka.clients.producer.KafkaProducer; -import org.apache.kafka.clients.producer.Producer; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.apache.kafka.common.KafkaFuture; -import org.apache.kafka.common.serialization.StringDeserializer; -import org.apache.kafka.common.serialization.StringSerializer; -import org.junit.jupiter.api.Test; - -import java.util.Collections; -import java.util.List; -import java.util.Properties; -import java.util.Random; -import java.util.Set; -import java.util.concurrent.ExecutionException; - -class ProducerK { - - // Load producer configuration settings from a local file - protected static final Properties PROPS = new Properties(); - protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - - static { - PROPS.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); - PROPS.put("key.serializer", StringSerializer.class.getName()); - PROPS.put("value.serializer", StringSerializer.class.getName()); - PROPS.put("key.deserializer", StringDeserializer.class.getName()); - PROPS.put("value.deserializer", StringDeserializer.class.getName()); - - } - - @Test - void testKafkaProducer() { - final String topic = "purchases"; - - createTopic(topic); - - - final String[] users = {"eabara", "jsmith", "sgarcia", "jbernard", "htanaka", "awalther"}; - final String[] items = {"book", "alarm clock", "t-shirts", "gift card", "batteries"}; - - try (final Producer producer = new KafkaProducer<>(PROPS)) { - final long numMessages = 10L; - for (long i = 0L; i < numMessages; i++) { - final Random rnd = new Random(); - final String user = users[rnd.nextInt(users.length)]; - final FileContext item = FileContext.builder().filePath(items[rnd.nextInt(items.length)]).build(); - - producer.send( - new ProducerRecord<>(topic, user, OBJECT_MAPPER.writeValueAsString(item)), - (event, ex) -> { - if (ex != null) - ex.printStackTrace(); - else - System.out.printf("Produced event to topic %s: key = %-10s value = %s%n", topic, user, item); - }); - } - - producer.flush(); - System.out.printf("%s events were produced to topic %s%n", numMessages, topic); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } - } - - - /** - * We'll reuse this function to load properties from the Consumer as well - */ - private void createTopic(final String topicName) { - try (Admin admin = Admin.create(PROPS)) { - int partitions = 1; - short replicationFactor = 1; - var newTopic = new NewTopic(topicName, partitions, replicationFactor); - final List singleton = Collections.singletonList(topicName); - final KafkaFuture> listTopics = admin.listTopics().names(); - listTopics.whenComplete((topics, throwable) -> { - final KafkaFuture deleteTopic; - if (topics.contains(topicName)) { - final DeleteTopicsResult deleteTopicsResult = admin.deleteTopics(singleton); - deleteTopic = deleteTopicsResult.all(); - } else { - deleteTopic = KafkaFuture.completedFuture(null); - } - deleteTopic.whenComplete((unused, throwable1) -> { - var createTopic = admin.createTopics(Collections.singletonList(newTopic)); - try { - createTopic.values().get(topicName).get(); - } catch (InterruptedException | ExecutionException e) { - throw new RuntimeException(e); - } - }); - - }); - } - } - - -} diff --git a/handyman.raven/src/test/java/in/handyman/raven/lambda/access/ElasticsearchAccessApiTest.java b/handyman.raven/src/test/java/in/handyman/raven/lambda/access/ElasticsearchAccessApiTest.java deleted file mode 100644 index 1b9519c2..00000000 --- a/handyman.raven/src/test/java/in/handyman/raven/lambda/access/ElasticsearchAccessApiTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package in.handyman.raven.lambda.access; - -import in.handyman.raven.exception.HandymanException; -import in.handyman.raven.lambda.access.repo.ElasticsearchAccessApi; -import in.handyman.raven.lambda.doa.config.SpwResourceConfig; - -import java.io.IOException; -import java.util.UUID; - -class ElasticsearchAccessApiTest { - - - // @Test - void init() { - try { - if (ElasticsearchAccessApi.isExists(ElasticsearchAccessApi.toIndexName(SpwResourceConfig.class))) { - ElasticsearchAccessApi.saveIndex(UUID.randomUUID().toString(), SpwResourceConfig.builder() - .active(false) - .driverClass("") - .configName("") - .password("") - .resourceUrl("") - .userName("") - .build()); - } -// if (ElasticsearchAccessApi.isExists(ElasticsearchAccessApi.toIndexName(SpwResourceConfig.class))) { -// ElasticsearchAccessApi.saveIndex(UUID.randomUUID().toString(), SpwResourceConfig.builder() -// .active(false) -// .name("") -// .configTypeId(0) -// .variable("") -// .id(1L) -// .value("") -// .build()); -// } - } catch (IOException e) { - throw new HandymanException("Init failed", e); - } - } - -} diff --git a/handyman.raven/src/test/resources/test-file/restapi.test.lmd b/handyman.raven/src/test/resources/test-file/restapi.test.lmd deleted file mode 100644 index c9dc1e28..00000000 --- a/handyman.raven/src/test/resources/test-file/restapi.test.lmd +++ /dev/null @@ -1,35 +0,0 @@ -process "cub.test" -{ - try { - - multitude as "test audit entry with multitude" on "PARALLEL" using { - - restapi as "test audit entry with none" source "${cub_eval}" using url "https://vada-chennai.free.beeceptor.com" - method "POST" with body type {"NONE"} - {} - - restapi as "test audit entry with JSON" source "${cub_eval}" using url "https://vada-chennai.free.beeceptor.com" - method "POST" with body type {"JSON"} - { - { part as "attribute1" with "select 1"} - } - - restapi as "test audit entry with FORM" source "${cub_eval}" using url "https://vada-chennai.free.beeceptor.com" - method "POST" with body type {"FORM"} - { - { part as "attribute1" with "select 1" type as "TEXT" } - { part as "attribute2" with "select 'src/main/resources/init.sql'" type as "FILE" } - } - - } fielding 2 - - } - - catch { - - } - - finally { - - } -} diff --git a/handyman.raven/src/test/scala/in/handyman/raven/DTest.scala b/handyman.raven/src/test/scala/in/handyman/raven/DTest.scala deleted file mode 100644 index 681583f3..00000000 --- a/handyman.raven/src/test/scala/in/handyman/raven/DTest.scala +++ /dev/null @@ -1,13 +0,0 @@ -package in.handyman.raven - -import org.junit.jupiter.api - -class DTest { - - @api.Test - def testyClass(): Unit = { - // assert(new Test() != null); - } - - -} diff --git a/handyman.server/config.env b/handyman.server/config.env deleted file mode 100644 index 2c8337a6..00000000 --- a/handyman.server/config.env +++ /dev/null @@ -1,4 +0,0 @@ -handyman.config.location=config/config.props -logback.configurationFile=config/logback.xml -handyman.log.path=logs/ -handyman.server.config.location=config/config.yaml diff --git a/handyman.server/config/config.props b/handyman.server/config/config.props deleted file mode 100644 index ea4326ce..00000000 --- a/handyman.server/config/config.props +++ /dev/null @@ -1,8 +0,0 @@ -config= { - - driver = org.mariadb.jdbc.Driver - url ="jdbc:mariadb://192.168.0.3:3306/handyman_vm?useSSL=false" - user=root - password=password - -} diff --git a/handyman.server/config/config.yaml b/handyman.server/config/config.yaml deleted file mode 100644 index 3023b2f7..00000000 --- a/handyman.server/config/config.yaml +++ /dev/null @@ -1,20 +0,0 @@ -server: - applicationContextPath: /handyman - applicationConnectors: - - type: http - port: 8099 -logging: - level: INFO - loggers: - "io.dropwizard": INFO - "in.handyman.server": - level: DEBUG - additive: false - appenders: - - type: file - currentLogFilename: log/handyman-vm.log - archivedLogFilenamePattern: log/handyman-vm-%d.log.gz - archivedFileCount: 5 - appenders: - - type: console - diff --git a/handyman.server/config/logback.xml b/handyman.server/config/logback.xml deleted file mode 100644 index 0ab9d70d..00000000 --- a/handyman.server/config/logback.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - %d %green([%thread]) %highlight(%level) %logger{50} - %msg%n - - - - - /home/shankar/data/handyman/logs/process-%d{yyyy-MM-dd}.log - - - 10MB - - - %d %green([%thread]) %highlight(%level) %logger{50} - %msg%n - - - - - - - - - - - diff --git a/handyman.server/docker-compose.yml b/handyman.server/docker-compose.yml deleted file mode 100644 index d142c524..00000000 --- a/handyman.server/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: "3.2" -services: - handyman-server: - image: openjdk:11 - container_name: handyman-server - restart: always - ports: - - "8099:8099" - - "8081:8081" - environment: - TZ: "Asia/Kolkata" - env_file: - - config.env - volumes: - - ./target/handyman-server.jar:/handyman-server.jar - - ./config:/config - command: [ 'java', '-jar', '/handyman-server.jar' ] diff --git a/handyman.server/pom.xml b/handyman.server/pom.xml deleted file mode 100644 index 1ff10ff8..00000000 --- a/handyman.server/pom.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - in.handyman - handyman.parent - 1.0.0 - - 4.0.0 - - handyman.server - - - 11 - 11 - - - - - - com.typesafe.scala-logging - scala-logging_2.13 - 3.9.4 - - - - - org.restlet.jee - org.restlet - 3.0-M1 - - - - com.typesafe - config - 1.4.1 - - - - - org.mariadb.jdbc - mariadb-java-client - 2.7.3 - - - - org.jdbi - jdbi3-core - 3.25.0 - - - - - - org.projectlombok - lombok - 1.18.22 - provided - - - - org.quartz-scheduler - quartz - 2.3.2 - - - - io.dropwizard - dropwizard-core - 2.0.28 - - - in.handyman - handyman.raven - 1.0.0 - compile - - - in.handyman - handyman.legacy.server - 1.0.0 - - - org.apache.logging.log4j - log4j-core - 2.17.0 - - - com.fasterxml.jackson.core - jackson-core - 2.13.1 - - - - - - - - - - - org.reflections - reflections - 0.10.2 - - - - - handyman-server - - - - maven.restlet.org - maven.restlet.org - https://maven.restlet.org - - - diff --git a/handyman.server/src/main/java/in/handyman/server/HandymanApplication.java b/handyman.server/src/main/java/in/handyman/server/HandymanApplication.java deleted file mode 100644 index 4c27a39f..00000000 --- a/handyman.server/src/main/java/in/handyman/server/HandymanApplication.java +++ /dev/null @@ -1,64 +0,0 @@ -package in.handyman.server; - -import in.handyman.server.config.ApplicationHealthCheck; -import in.handyman.server.resource.HRavenResource; -import in.handyman.server.schedular.InstanceJobCreator; -import io.dropwizard.Application; -import io.dropwizard.Configuration; -import io.dropwizard.lifecycle.Managed; -import io.dropwizard.setup.Environment; -import lombok.extern.slf4j.Slf4j; -import org.quartz.SchedulerException; - -@Slf4j -public class HandymanApplication extends Application { - - - public static void main(final String[] args) throws Exception { - new HandymanApplication().run("server", System.getenv("handyman.server.config.location")); - } - - @Override - public void run(final Configuration configuration, final Environment environment) throws SchedulerException { - final HRavenResource hRavenResource = new HRavenResource(); - environment - .jersey() - .register(hRavenResource); - initScheduler(environment); - final ApplicationHealthCheck healthCheck = new ApplicationHealthCheck(); - environment - .healthChecks() - .register("application", healthCheck); - } - - private void initScheduler(final Environment environment) throws SchedulerException { - var scheduler = InstanceJobCreator.init(); - environment.lifecycle().manage(new Managed() { - @Override - public void start() throws SchedulerException { - scheduler.start(); - } - - @Override - public void stop() throws Exception { - scheduler.shutdown(); - } - }); - } - - -// @Override -// public void initialize(final Bootstrap bootstrap) { -// bootstrap.setConfigurationSourceProvider(new ResourceConfigurationSourceProvider()); -// bootstrap.addBundle(new SwaggerBundle<>() { -// @Override -// protected SwaggerBundleConfiguration getSwaggerBundleConfiguration(final Configuration swaggerConfiguration) { -// final SwaggerBundleConfiguration swaggerBundleConfiguration = new SwaggerBundleConfiguration(); -// swaggerBundleConfiguration.setResourcePackage(this.getClass().getPackageName()); -// return swaggerBundleConfiguration; -// } -// -// }); -// super.initialize(bootstrap); -// } -} diff --git a/handyman.server/src/main/java/in/handyman/server/config/ApplicationHealthCheck.java b/handyman.server/src/main/java/in/handyman/server/config/ApplicationHealthCheck.java deleted file mode 100644 index 65f4a1a0..00000000 --- a/handyman.server/src/main/java/in/handyman/server/config/ApplicationHealthCheck.java +++ /dev/null @@ -1,10 +0,0 @@ -package in.handyman.server.config; - -import com.codahale.metrics.health.HealthCheck; - -public class ApplicationHealthCheck extends HealthCheck { - @Override - protected Result check() { - return Result.healthy(); - } -} diff --git a/handyman.server/src/main/java/in/handyman/server/legacy/HLegacyRepo.java b/handyman.server/src/main/java/in/handyman/server/legacy/HLegacyRepo.java deleted file mode 100644 index fb4174b1..00000000 --- a/handyman.server/src/main/java/in/handyman/server/legacy/HLegacyRepo.java +++ /dev/null @@ -1,20 +0,0 @@ -package in.handyman.server.legacy; - -import org.jdbi.v3.core.Jdbi; - -import java.util.List; - -public class HLegacyRepo { - - private final Jdbi spwConfig; - - public HLegacyRepo() { - spwConfig = Jdbi.create("jdbc:mariadb://localhost:3306/spw_config", "root", "password"); - } - - public List findInstanceConfigsByVariable(final String variable) { - return spwConfig.withHandle(handle -> handle.createQuery("SELECT * FROM spw_instance_config where variable = ? and active ='Y' ") - .bind(0,variable) - .mapToBean(InstanceConfig.class).list()); - } -} diff --git a/handyman.server/src/main/java/in/handyman/server/legacy/InstanceConfig.java b/handyman.server/src/main/java/in/handyman/server/legacy/InstanceConfig.java deleted file mode 100644 index bf76a9d1..00000000 --- a/handyman.server/src/main/java/in/handyman/server/legacy/InstanceConfig.java +++ /dev/null @@ -1,31 +0,0 @@ -package in.handyman.server.legacy; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; - -@Getter -@Setter -@ToString -@NoArgsConstructor -@AllArgsConstructor -@Builder -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonInclude(JsonInclude.Include.NON_NULL) -public class InstanceConfig { - - - private String instance; - private String process; - private String variable; - private String value; - private boolean active; - - -} diff --git a/handyman.server/src/main/java/in/handyman/server/resource/HLegacyResource.java b/handyman.server/src/main/java/in/handyman/server/resource/HLegacyResource.java deleted file mode 100644 index c29ad4b5..00000000 --- a/handyman.server/src/main/java/in/handyman/server/resource/HLegacyResource.java +++ /dev/null @@ -1,30 +0,0 @@ -package in.handyman.server.resource; - -import in.handyman.server.StartProcess; - -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -//@Api -@Path("/legacy-vm") -@Produces(MediaType.APPLICATION_JSON) -public class HLegacyResource { - - @POST - @Path("/{instanceName}") - public String runPipeline(@PathParam("instanceName") final String instanceName) { - return new StartProcess().start(instanceName); - } - - - @POST - @Path("/{instanceName}/schedule") - public String setCronExpression(@PathParam("instanceName") final String instanceName, - final String expression) { - return new StartProcess().start(instanceName); - } - -} diff --git a/handyman.server/src/main/java/in/handyman/server/resource/HRavenResource.java b/handyman.server/src/main/java/in/handyman/server/resource/HRavenResource.java deleted file mode 100644 index dc5df61c..00000000 --- a/handyman.server/src/main/java/in/handyman/server/resource/HRavenResource.java +++ /dev/null @@ -1,23 +0,0 @@ -package in.handyman.server.resource; - -import in.handyman.raven.lambda.doa.audit.PipelineExecutionAudit; -import in.handyman.raven.lambda.process.LContext; -import in.handyman.raven.lambda.process.LambdaEngine; - -import javax.validation.Valid; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -//@Api -@Path("/raven-vm") -@Produces(MediaType.APPLICATION_JSON) -public class HRavenResource { - - @POST - public PipelineExecutionAudit runPipeline(@Valid final LContext lContext) { - return LambdaEngine.start(lContext); - } - -} diff --git a/handyman.server/src/main/java/in/handyman/server/schedular/Instance.java b/handyman.server/src/main/java/in/handyman/server/schedular/Instance.java deleted file mode 100644 index c5ea8fe1..00000000 --- a/handyman.server/src/main/java/in/handyman/server/schedular/Instance.java +++ /dev/null @@ -1,12 +0,0 @@ -package in.handyman.server.schedular; - - -import lombok.Data; - -@Data -public class Instance { - - private String name; - - -} diff --git a/handyman.server/src/main/java/in/handyman/server/schedular/InstanceJob.java b/handyman.server/src/main/java/in/handyman/server/schedular/InstanceJob.java deleted file mode 100644 index 7b718f9e..00000000 --- a/handyman.server/src/main/java/in/handyman/server/schedular/InstanceJob.java +++ /dev/null @@ -1,47 +0,0 @@ -package in.handyman.server.schedular; - -import in.handyman.raven.lambda.process.LContext; -import in.handyman.raven.lambda.process.LambdaEngine; -import in.handyman.server.StartProcess; -import lombok.extern.slf4j.Slf4j; -import org.quartz.Job; -import org.quartz.JobDataMap; -import org.quartz.JobExecutionContext; - -@Slf4j -public class InstanceJob implements Job { - - public static final String VM = "VM"; - public static final String NAME = "NAME"; - public static final String LOAD_TYPE = "loadType"; - public static final String QRTZ = "QRTZ"; - public static final String CRON = "CRON"; - public static final String LOAD_TYPE_VARIABLE = "LOAD_TYPE"; - - public enum HandymanVM { - RAVEN_VM, LEGACY - } - - @Override - public void execute(final JobExecutionContext jobExecutionContext) { - - final JobDataMap jobDataMap = jobExecutionContext.getJobDetail().getJobDataMap(); - final String name = jobDataMap - .getString(NAME); - final String vmString = jobDataMap - .getString(VM); - final HandymanVM handymanVM = HandymanVM.valueOf(vmString); - - if (handymanVM == HandymanVM.RAVEN_VM) { - LambdaEngine.start(LContext.builder() - .pipelineName(name) - .processLoadType(jobDataMap - .getString(LOAD_TYPE)) - .build()); - } else if (handymanVM == HandymanVM.LEGACY) { - new StartProcess().start(name); - } - - - } -} diff --git a/handyman.server/src/main/java/in/handyman/server/schedular/InstanceJobCreator.java b/handyman.server/src/main/java/in/handyman/server/schedular/InstanceJobCreator.java deleted file mode 100644 index b090cd89..00000000 --- a/handyman.server/src/main/java/in/handyman/server/schedular/InstanceJobCreator.java +++ /dev/null @@ -1,167 +0,0 @@ -package in.handyman.server.schedular; - -import in.handyman.raven.exception.HandymanException; -import in.handyman.raven.lambda.access.repo.HandymanRepo; -import in.handyman.raven.lambda.access.repo.HandymanRepoR2Impl; -import in.handyman.raven.lambda.doa.config.SpwInstanceConfig; -import in.handyman.server.legacy.HLegacyRepo; -import lombok.extern.slf4j.Slf4j; -import org.quartz.CronScheduleBuilder; -import org.quartz.Job; -import org.quartz.JobBuilder; -import org.quartz.JobDataMap; -import org.quartz.JobExecutionContext; -import org.quartz.Scheduler; -import org.quartz.SchedulerException; -import org.quartz.SimpleScheduleBuilder; -import org.quartz.TriggerBuilder; -import org.quartz.impl.StdSchedulerFactory; - -import java.util.Properties; -import java.util.Set; - -@Slf4j -public class InstanceJobCreator implements Job { - - private static final QuartzRepo REPO = new QuartzRepo(); - private static final HandymanRepo HANDYMAN_REPO = new HandymanRepoR2Impl(); - private static final HLegacyRepo LEGACY_REPO = new HLegacyRepo(); - private static final String INSTANCE_JOB_CREATOR = "InstanceJobCreator"; - - public static Scheduler init() throws SchedulerException { - final Scheduler scheduler = getScheduler(); - final Set awaitingTriggers = REPO.findAwaitingTriggers(); - if (!awaitingTriggers.contains(INSTANCE_JOB_CREATOR)) { - - // define the job and tie it to our HelloJob class - var jobBuilder = JobBuilder.newJob(InstanceJobCreator.class); - - var jobDetail = jobBuilder - .withIdentity(INSTANCE_JOB_CREATOR) - .build(); - - var trigger = TriggerBuilder.newTrigger() - .withIdentity(INSTANCE_JOB_CREATOR) -// .withSchedule(CronScheduleBuilder.cronSchedule("0 0/20 * 1/1 * ? *")) - .withSchedule(SimpleScheduleBuilder.repeatMinutelyForever(20)) - .build(); - scheduler.scheduleJob(jobDetail, trigger); - - } - - return scheduler; - } - - private static Scheduler getScheduler() throws SchedulerException { - final Properties properties = getProperties(); - var schedulerFactory = new StdSchedulerFactory(properties); - return schedulerFactory.getScheduler(); - } - - private static Properties getProperties() { - var prop = new Properties(); - //RMI configuration to make the client to connect to the -// Quartz server - prop.put("org.quartz.scheduler.rmi.export", "true"); - prop.put("org.quartz.scheduler.rmi.createRegistry", "true"); - prop.put("org.quartz.scheduler.rmi.registryHost", "localhost"); - prop.put("org.quartz.scheduler.rmi.registryPort", "1099"); - prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool"); - prop.put("org.quartz.threadPool.threadCount", "2"); - //Quartz Server Properties - prop.put("quartz.scheduler.instanceName", "ServerScheduler"); - prop.put("org.quartz.scheduler.instanceId", "AUTO"); - prop.put("org.quartz.scheduler.skipUpdateCheck", "true"); - prop.put("org.quartz.scheduler.jobFactory.class", "org.quartz.simpl.SimpleJobFactory"); - prop.put("org.quartz.jobStore.class", "org.quartz.impl.jdbcjobstore.JobStoreTX"); - prop.put("org.quartz.jobStore.driverDelegateClass", "org.quartz.impl.jdbcjobstore.StdJDBCDelegate"); - prop.put("org.quartz.jobStore.dataSource", "quartzDataSource"); - prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_"); - prop.put("org.quartz.jobStore.isClustered", "false"); - //MYSQL DATABASE CONFIGURATION - //If we do not specify this configuration, QUARTZ will -// use RAM(in-memory) to store jobs - //Once we restart QUARTZ, the jobs will not be persisted - // Configure your MySQL properties - prop.put("org.quartz.dataSource.quartzDataSource.driver", "org.mariadb.jdbc.Driver"); - prop.put("org.quartz.dataSource.quartzDataSource.URL", "jdbc:mariadb://localhost:3306/handyman_qrtz"); - prop.put("org.quartz.dataSource.quartzDataSource.user", "root"); - prop.put("org.quartz.dataSource.quartzDataSource.password", "password"); - return prop; - } - - @Override - public void execute(final JobExecutionContext jobExecutionContext) { - log.info("Initiated InstanceJobCreator {}", jobExecutionContext); - final Set awaitingTriggers = REPO.findAwaitingTriggers(); - //RavenVM - doRavenVM(jobExecutionContext, awaitingTriggers); - //Legacy - doLegacy(jobExecutionContext, awaitingTriggers); - } - - private void doLegacy(final JobExecutionContext jobExecutionContext, final Set awaitingTriggers) { - LEGACY_REPO.findInstanceConfigsByVariable(InstanceJob.CRON).stream() - .filter(instanceConfig -> !awaitingTriggers.contains(genUnique(InstanceJob.HandymanVM.LEGACY, instanceConfig.getInstance()))) - .forEach(instanceConfig -> { - final String processName = instanceConfig.getInstance(); - final InstanceJob.HandymanVM legacy = InstanceJob.HandymanVM.LEGACY; - final String name = genUnique(legacy, processName); - final String expression = instanceConfig.getValue(); - - var data = new JobDataMap(); - data.put(InstanceJob.NAME, processName); - data.put(InstanceJob.VM, legacy.name()); - - addJob(jobExecutionContext, name, expression, data); - }); - - } - - private void doRavenVM(final JobExecutionContext jobExecutionContext, final Set awaitingTriggers) { - HANDYMAN_REPO.findAllByInstanceVariable(InstanceJob.CRON) - .stream() - .filter(config -> !awaitingTriggers.contains(genUnique(InstanceJob.HandymanVM.RAVEN_VM, config.getInstance()))) - .forEach(config -> { - - final String instance = config.getInstance(); - final InstanceJob.HandymanVM ravenVm = InstanceJob.HandymanVM.RAVEN_VM; - final String name = genUnique(ravenVm, instance); - final String expression = config.getValue(); - - - var data = new JobDataMap(); - data.put(InstanceJob.NAME, instance); - data.put(InstanceJob.VM, ravenVm.name()); - data.put(InstanceJob.LOAD_TYPE, HANDYMAN_REPO.findOneInstance(instance, - InstanceJob.LOAD_TYPE_VARIABLE).map(SpwInstanceConfig::getValue) - .orElse(null)); - - addJob(jobExecutionContext, name, expression, data); - }); - } - - private void addJob(final JobExecutionContext jobExecutionContext, final String name, final String expression, final JobDataMap data) { - var triggerNew = TriggerBuilder.newTrigger() - .withIdentity(name) - .withSchedule(CronScheduleBuilder.cronSchedule(expression)).build(); - var jobBuilder = JobBuilder.newJob(InstanceJob.class); - var jobDetail = jobBuilder - .usingJobData(data) - .withIdentity(name) - .build(); - try { - - jobExecutionContext.getScheduler().scheduleJob(jobDetail, triggerNew); - log.info("added {}", jobDetail); - - } catch (SchedulerException e) { - throw new HandymanException("scheduler Failed", e); - } - } - - - protected static String genUnique(final InstanceJob.HandymanVM handymanVM, final String name) { - return String.format("%S#%S", handymanVM.name(), name); - } -} diff --git a/handyman.server/src/main/java/in/handyman/server/schedular/JobProducer.java b/handyman.server/src/main/java/in/handyman/server/schedular/JobProducer.java deleted file mode 100644 index 74a44da4..00000000 --- a/handyman.server/src/main/java/in/handyman/server/schedular/JobProducer.java +++ /dev/null @@ -1,13 +0,0 @@ -package in.handyman.server.schedular; - -public class JobProducer implements Runnable { - - @Override - public void run() { - - - - } - - -} diff --git a/handyman.server/src/main/java/in/handyman/server/schedular/QuartzRepo.java b/handyman.server/src/main/java/in/handyman/server/schedular/QuartzRepo.java deleted file mode 100644 index 70208b8f..00000000 --- a/handyman.server/src/main/java/in/handyman/server/schedular/QuartzRepo.java +++ /dev/null @@ -1,20 +0,0 @@ -package in.handyman.server.schedular; - -import org.jdbi.v3.core.Jdbi; - -import java.util.Set; -import java.util.stream.Collectors; - -public class QuartzRepo { - - private final Jdbi jdbi; - - public QuartzRepo() { - jdbi = Jdbi.create("jdbc:mariadb://localhost:3306/handyman_qrtz", "root", "password"); - } - - public Set findAwaitingTriggers() { - return jdbi.withHandle(handle -> handle.createQuery("select TRIGGER_NAME from QRTZ_TRIGGERS where TRIGGER_STATE='WAITING' ") - .mapTo(String.class).stream().collect(Collectors.toSet())); - } -} diff --git a/handyman.server/src/main/resources/log4j2.xml b/handyman.server/src/main/resources/log4j2.xml deleted file mode 100644 index 0189b4eb..00000000 --- a/handyman.server/src/main/resources/log4j2.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - log/ - - - %d{yyyy-MM-dd HH:mm:ss.SSS} %5p --- %m%n%ex - - - - - - - - - - - ${LOG_PATTERN_CONSOLE} - - - - - - - - - - - - - - - - - - - - diff --git a/pom.xml b/pom.xml index 36551be2..90da0111 100644 --- a/pom.xml +++ b/pom.xml @@ -1,28 +1,334 @@ - + 4.0.0 + in.handyman - 1.0.0 - handyman.parent - pom + raven + 2.0.0 + 4.11.1 + 2.6.15 + 1.9.0 + v1-rev20210903-1.32.1 + v3-rev20220422-1.32.1 + 5.9.0 + 2.14.0 + 3.36.0 11 11 11 - 2.13.6 + 2.0.5 + 3.1.0 + 5.2.2 + + + + + com.google.inject + guice + 5.1.0 + + + + + org.postgresql + postgresql + 42.5.1 + - UTF-8 - ${encoding} - ${encoding} - ${encoding} - ${encoding} + + + + + + + + org.mariadb.jdbc + mariadb-java-client + 3.0.6 + + + com.zaxxer + HikariCP + 5.0.1 + + + + org.jdbi + jdbi3-core + ${jdbi.version} + + + org.jdbi + jdbi3-sqlobject + ${jdbi.version} + + + + + org.projectlombok + lombok + 1.18.24 + provided + + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + - - - handyman.legacy - handyman.raven - handyman.server - + + + org.junit.jupiter + junit-jupiter + ${junit.version} + + + + + org.antlr + antlr4-runtime + ${antlr4.version} + + + com.opencsv + opencsv + 5.5.1 + + + + + com.squareup + javapoet + 1.13.0 + + + org.reflections + reflections + 0.10.2 + + + + + org.apache.commons + commons-text + 1.10.0 + + + + org.json + json + 20220924 + + + + + commons-net + commons-net + 3.9.0 + + + + + com.jcraft + jsch + 0.1.55 + + + + + com.github.jsqlparser + jsqlparser + 4.5 + + + + + + + + + + + com.squareup.okhttp3 + okhttp + 4.10.0 + + + + com.opencsv + opencsv + 5.5.1 + + + + com.google.guava + guava + 31.1-jre + + + com.fasterxml.uuid + java-uuid-generator + 4.0.1 + + + + com.microsoft.sqlserver + mssql-jdbc + 11.2.2.jre11 + + + + + + + + + + + + + + + + org.simplejavamail + simple-java-mail + 7.5.2 + + + + org.apache.commons + commons-compress + 1.21 + + + + + org.apache.pdfbox + pdfbox + 2.0.27 + + + org.apache.poi + poi-scratchpad + ${poi.version} + + + org.apache.poi + poi + ${poi.version} + + + + org.apache.poi + poi-ooxml + ${poi.version} + + + + commons-io + commons-io + 2.11.0 + + + + + com.fasterxml.jackson.dataformat + jackson-dataformat-csv + ${jackson.version} + + + org.simpleflatmapper + sfm-csv + 8.2.3 + + + + org.elasticsearch.client + elasticsearch-rest-client + 8.5.3 + + + + co.elastic.clients + elasticsearch-java + 8.5.3 + + + + org.apache.httpcomponents + httpcore-nio + 4.4.15 + + + + jakarta.json + jakarta.json-api + 2.1.1 + + + + com.sendgrid + sendgrid-java + 4.4.1 + + + + + + handyman-raven-vm-${project.version} + + + org.antlr + antlr4-maven-plugin + ${antlr4.version} + + + src/main/antlr/in.handyman.raven/gmr + + + src/main/antlr/in.handyman.raven/compiler + + + + + + antlr4 + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M5 + + + org.junit.jupiter + junit-jupiter-engine + ${junit.version} + + + + + org.apache.maven.plugins + maven-clean-plugin + 3.1.0 + + src/main/antlr/in.handyman.raven/compiler + + + + + diff --git a/run.sh b/run.sh deleted file mode 100644 index 007d6f27..00000000 --- a/run.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -# shellcheck disable=SC2164 -sh build.sh - -# shellcheck disable=SC2103 -cd handyman.server/ - -docker-compose up handyman-server diff --git a/src/main/antlr/in.handyman.raven/compiler/JSON.interp b/src/main/antlr/in.handyman.raven/compiler/JSON.interp new file mode 100644 index 00000000..cc6e582f --- /dev/null +++ b/src/main/antlr/in.handyman.raven/compiler/JSON.interp @@ -0,0 +1,40 @@ +token literal names: +null +'{' +',' +'}' +':' +'[' +']' +'true' +'false' +'null' +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +STRING +NUMBER +WS + +rule names: +json +obj +pair +arr +jValue + + +atn: +[4, 1, 12, 58, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 1, 0, 1, 0, 3, 0, 13, 8, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 19, 8, 1, 10, 1, 12, 1, 22, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 28, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 5, 3, 38, 8, 3, 10, 3, 12, 3, 41, 9, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 47, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 56, 8, 4, 1, 4, 0, 0, 5, 0, 2, 4, 6, 8, 0, 0, 63, 0, 12, 1, 0, 0, 0, 2, 27, 1, 0, 0, 0, 4, 29, 1, 0, 0, 0, 6, 46, 1, 0, 0, 0, 8, 55, 1, 0, 0, 0, 10, 13, 3, 2, 1, 0, 11, 13, 3, 6, 3, 0, 12, 10, 1, 0, 0, 0, 12, 11, 1, 0, 0, 0, 13, 1, 1, 0, 0, 0, 14, 15, 5, 1, 0, 0, 15, 20, 3, 4, 2, 0, 16, 17, 5, 2, 0, 0, 17, 19, 3, 4, 2, 0, 18, 16, 1, 0, 0, 0, 19, 22, 1, 0, 0, 0, 20, 18, 1, 0, 0, 0, 20, 21, 1, 0, 0, 0, 21, 23, 1, 0, 0, 0, 22, 20, 1, 0, 0, 0, 23, 24, 5, 3, 0, 0, 24, 28, 1, 0, 0, 0, 25, 26, 5, 1, 0, 0, 26, 28, 5, 3, 0, 0, 27, 14, 1, 0, 0, 0, 27, 25, 1, 0, 0, 0, 28, 3, 1, 0, 0, 0, 29, 30, 5, 10, 0, 0, 30, 31, 5, 4, 0, 0, 31, 32, 3, 8, 4, 0, 32, 5, 1, 0, 0, 0, 33, 34, 5, 5, 0, 0, 34, 39, 3, 8, 4, 0, 35, 36, 5, 2, 0, 0, 36, 38, 3, 8, 4, 0, 37, 35, 1, 0, 0, 0, 38, 41, 1, 0, 0, 0, 39, 37, 1, 0, 0, 0, 39, 40, 1, 0, 0, 0, 40, 42, 1, 0, 0, 0, 41, 39, 1, 0, 0, 0, 42, 43, 5, 6, 0, 0, 43, 47, 1, 0, 0, 0, 44, 45, 5, 5, 0, 0, 45, 47, 5, 6, 0, 0, 46, 33, 1, 0, 0, 0, 46, 44, 1, 0, 0, 0, 47, 7, 1, 0, 0, 0, 48, 56, 5, 10, 0, 0, 49, 56, 5, 11, 0, 0, 50, 56, 3, 2, 1, 0, 51, 56, 3, 6, 3, 0, 52, 56, 5, 7, 0, 0, 53, 56, 5, 8, 0, 0, 54, 56, 5, 9, 0, 0, 55, 48, 1, 0, 0, 0, 55, 49, 1, 0, 0, 0, 55, 50, 1, 0, 0, 0, 55, 51, 1, 0, 0, 0, 55, 52, 1, 0, 0, 0, 55, 53, 1, 0, 0, 0, 55, 54, 1, 0, 0, 0, 56, 9, 1, 0, 0, 0, 6, 12, 20, 27, 39, 46, 55] \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSON.tokens b/src/main/antlr/in.handyman.raven/compiler/JSON.tokens similarity index 100% rename from handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSON.tokens rename to src/main/antlr/in.handyman.raven/compiler/JSON.tokens diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONBaseListener.java b/src/main/antlr/in.handyman.raven/compiler/JSONBaseListener.java similarity index 96% rename from handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONBaseListener.java rename to src/main/antlr/in.handyman.raven/compiler/JSONBaseListener.java index 378c29c5..f0e7cf37 100644 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONBaseListener.java +++ b/src/main/antlr/in.handyman.raven/compiler/JSONBaseListener.java @@ -1,4 +1,4 @@ -// Generated from JSON.g4 by ANTLR 4.9.3 +// Generated from java-escape by ANTLR 4.11.1 package in.handyman.raven.compiler; @@ -12,6 +12,7 @@ * which can be extended to create a listener which only needs to handle a subset * of the available methods. */ +@SuppressWarnings("CheckReturnValue") public class JSONBaseListener implements JSONListener { /** * {@inheritDoc} diff --git a/src/main/antlr/in.handyman.raven/compiler/JSONLexer.interp b/src/main/antlr/in.handyman.raven/compiler/JSONLexer.interp new file mode 100644 index 00000000..87b26fcc --- /dev/null +++ b/src/main/antlr/in.handyman.raven/compiler/JSONLexer.interp @@ -0,0 +1,59 @@ +token literal names: +null +'{' +',' +'}' +':' +'[' +']' +'true' +'false' +'null' +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +STRING +NUMBER +WS + +rule names: +T__0 +T__1 +T__2 +T__3 +T__4 +T__5 +T__6 +T__7 +T__8 +STRING +ESC +UNICODE +HEX +SAFECODEPOINT +NUMBER +INT +EXP +WS + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 12, 128, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 5, 9, 69, 8, 9, 10, 9, 12, 9, 72, 9, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 3, 10, 79, 8, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 3, 14, 92, 8, 14, 1, 14, 1, 14, 1, 14, 4, 14, 97, 8, 14, 11, 14, 12, 14, 98, 3, 14, 101, 8, 14, 1, 14, 3, 14, 104, 8, 14, 1, 15, 1, 15, 1, 15, 5, 15, 109, 8, 15, 10, 15, 12, 15, 112, 9, 15, 3, 15, 114, 8, 15, 1, 16, 1, 16, 3, 16, 118, 8, 16, 1, 16, 1, 16, 1, 17, 4, 17, 123, 8, 17, 11, 17, 12, 17, 124, 1, 17, 1, 17, 0, 0, 18, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 0, 23, 0, 25, 0, 27, 0, 29, 11, 31, 0, 33, 0, 35, 12, 1, 0, 8, 8, 0, 34, 34, 47, 47, 92, 92, 98, 98, 102, 102, 110, 110, 114, 114, 116, 116, 3, 0, 48, 57, 65, 70, 97, 102, 3, 0, 0, 31, 34, 34, 92, 92, 1, 0, 48, 57, 1, 0, 49, 57, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 3, 0, 9, 10, 13, 13, 32, 32, 132, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 1, 37, 1, 0, 0, 0, 3, 39, 1, 0, 0, 0, 5, 41, 1, 0, 0, 0, 7, 43, 1, 0, 0, 0, 9, 45, 1, 0, 0, 0, 11, 47, 1, 0, 0, 0, 13, 49, 1, 0, 0, 0, 15, 54, 1, 0, 0, 0, 17, 60, 1, 0, 0, 0, 19, 65, 1, 0, 0, 0, 21, 75, 1, 0, 0, 0, 23, 80, 1, 0, 0, 0, 25, 86, 1, 0, 0, 0, 27, 88, 1, 0, 0, 0, 29, 91, 1, 0, 0, 0, 31, 113, 1, 0, 0, 0, 33, 115, 1, 0, 0, 0, 35, 122, 1, 0, 0, 0, 37, 38, 5, 123, 0, 0, 38, 2, 1, 0, 0, 0, 39, 40, 5, 44, 0, 0, 40, 4, 1, 0, 0, 0, 41, 42, 5, 125, 0, 0, 42, 6, 1, 0, 0, 0, 43, 44, 5, 58, 0, 0, 44, 8, 1, 0, 0, 0, 45, 46, 5, 91, 0, 0, 46, 10, 1, 0, 0, 0, 47, 48, 5, 93, 0, 0, 48, 12, 1, 0, 0, 0, 49, 50, 5, 116, 0, 0, 50, 51, 5, 114, 0, 0, 51, 52, 5, 117, 0, 0, 52, 53, 5, 101, 0, 0, 53, 14, 1, 0, 0, 0, 54, 55, 5, 102, 0, 0, 55, 56, 5, 97, 0, 0, 56, 57, 5, 108, 0, 0, 57, 58, 5, 115, 0, 0, 58, 59, 5, 101, 0, 0, 59, 16, 1, 0, 0, 0, 60, 61, 5, 110, 0, 0, 61, 62, 5, 117, 0, 0, 62, 63, 5, 108, 0, 0, 63, 64, 5, 108, 0, 0, 64, 18, 1, 0, 0, 0, 65, 70, 5, 34, 0, 0, 66, 69, 3, 21, 10, 0, 67, 69, 3, 27, 13, 0, 68, 66, 1, 0, 0, 0, 68, 67, 1, 0, 0, 0, 69, 72, 1, 0, 0, 0, 70, 68, 1, 0, 0, 0, 70, 71, 1, 0, 0, 0, 71, 73, 1, 0, 0, 0, 72, 70, 1, 0, 0, 0, 73, 74, 5, 34, 0, 0, 74, 20, 1, 0, 0, 0, 75, 78, 5, 92, 0, 0, 76, 79, 7, 0, 0, 0, 77, 79, 3, 23, 11, 0, 78, 76, 1, 0, 0, 0, 78, 77, 1, 0, 0, 0, 79, 22, 1, 0, 0, 0, 80, 81, 5, 117, 0, 0, 81, 82, 3, 25, 12, 0, 82, 83, 3, 25, 12, 0, 83, 84, 3, 25, 12, 0, 84, 85, 3, 25, 12, 0, 85, 24, 1, 0, 0, 0, 86, 87, 7, 1, 0, 0, 87, 26, 1, 0, 0, 0, 88, 89, 8, 2, 0, 0, 89, 28, 1, 0, 0, 0, 90, 92, 5, 45, 0, 0, 91, 90, 1, 0, 0, 0, 91, 92, 1, 0, 0, 0, 92, 93, 1, 0, 0, 0, 93, 100, 3, 31, 15, 0, 94, 96, 5, 46, 0, 0, 95, 97, 7, 3, 0, 0, 96, 95, 1, 0, 0, 0, 97, 98, 1, 0, 0, 0, 98, 96, 1, 0, 0, 0, 98, 99, 1, 0, 0, 0, 99, 101, 1, 0, 0, 0, 100, 94, 1, 0, 0, 0, 100, 101, 1, 0, 0, 0, 101, 103, 1, 0, 0, 0, 102, 104, 3, 33, 16, 0, 103, 102, 1, 0, 0, 0, 103, 104, 1, 0, 0, 0, 104, 30, 1, 0, 0, 0, 105, 114, 5, 48, 0, 0, 106, 110, 7, 4, 0, 0, 107, 109, 7, 3, 0, 0, 108, 107, 1, 0, 0, 0, 109, 112, 1, 0, 0, 0, 110, 108, 1, 0, 0, 0, 110, 111, 1, 0, 0, 0, 111, 114, 1, 0, 0, 0, 112, 110, 1, 0, 0, 0, 113, 105, 1, 0, 0, 0, 113, 106, 1, 0, 0, 0, 114, 32, 1, 0, 0, 0, 115, 117, 7, 5, 0, 0, 116, 118, 7, 6, 0, 0, 117, 116, 1, 0, 0, 0, 117, 118, 1, 0, 0, 0, 118, 119, 1, 0, 0, 0, 119, 120, 3, 31, 15, 0, 120, 34, 1, 0, 0, 0, 121, 123, 7, 7, 0, 0, 122, 121, 1, 0, 0, 0, 123, 124, 1, 0, 0, 0, 124, 122, 1, 0, 0, 0, 124, 125, 1, 0, 0, 0, 125, 126, 1, 0, 0, 0, 126, 127, 6, 17, 0, 0, 127, 36, 1, 0, 0, 0, 12, 0, 68, 70, 78, 91, 98, 100, 103, 110, 113, 117, 124, 1, 6, 0, 0] \ No newline at end of file diff --git a/src/main/antlr/in.handyman.raven/compiler/JSONLexer.java b/src/main/antlr/in.handyman.raven/compiler/JSONLexer.java new file mode 100644 index 00000000..5523e56c --- /dev/null +++ b/src/main/antlr/in.handyman.raven/compiler/JSONLexer.java @@ -0,0 +1,196 @@ +// Generated from java-escape by ANTLR 4.11.1 + +package in.handyman.raven.compiler; + +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) +public class JSONLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + STRING=10, NUMBER=11, WS=12; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", + "STRING", "ESC", "UNICODE", "HEX", "SAFECODEPOINT", "NUMBER", "INT", + "EXP", "WS" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "'{'", "','", "'}'", "':'", "'['", "']'", "'true'", "'false'", + "'null'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, "STRING", + "NUMBER", "WS" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public JSONLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "JSON.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + public static final String _serializedATN = + "\u0004\u0000\f\u0080\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002\u0001"+ + "\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004"+ + "\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007"+ + "\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b"+ + "\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002"+ + "\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0001"+ + "\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001"+ + "\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0005\u0001\u0005\u0001"+ + "\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0007\u0001"+ + "\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b"+ + "\u0001\b\u0001\b\u0001\b\u0001\t\u0001\t\u0001\t\u0005\tE\b\t\n\t\f\t"+ + "H\t\t\u0001\t\u0001\t\u0001\n\u0001\n\u0001\n\u0003\nO\b\n\u0001\u000b"+ + "\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\f\u0001"+ + "\f\u0001\r\u0001\r\u0001\u000e\u0003\u000e\\\b\u000e\u0001\u000e\u0001"+ + "\u000e\u0001\u000e\u0004\u000ea\b\u000e\u000b\u000e\f\u000eb\u0003\u000e"+ + "e\b\u000e\u0001\u000e\u0003\u000eh\b\u000e\u0001\u000f\u0001\u000f\u0001"+ + "\u000f\u0005\u000fm\b\u000f\n\u000f\f\u000fp\t\u000f\u0003\u000fr\b\u000f"+ + "\u0001\u0010\u0001\u0010\u0003\u0010v\b\u0010\u0001\u0010\u0001\u0010"+ + "\u0001\u0011\u0004\u0011{\b\u0011\u000b\u0011\f\u0011|\u0001\u0011\u0001"+ + "\u0011\u0000\u0000\u0012\u0001\u0001\u0003\u0002\u0005\u0003\u0007\u0004"+ + "\t\u0005\u000b\u0006\r\u0007\u000f\b\u0011\t\u0013\n\u0015\u0000\u0017"+ + "\u0000\u0019\u0000\u001b\u0000\u001d\u000b\u001f\u0000!\u0000#\f\u0001"+ + "\u0000\b\b\u0000\"\"//\\\\bbffnnrrtt\u0003\u000009AFaf\u0003\u0000\u0000"+ + "\u001f\"\"\\\\\u0001\u000009\u0001\u000019\u0002\u0000EEee\u0002\u0000"+ + "++--\u0003\u0000\t\n\r\r \u0084\u0000\u0001\u0001\u0000\u0000\u0000\u0000"+ + "\u0003\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000\u0000\u0000\u0000"+ + "\u0007\u0001\u0000\u0000\u0000\u0000\t\u0001\u0000\u0000\u0000\u0000\u000b"+ + "\u0001\u0000\u0000\u0000\u0000\r\u0001\u0000\u0000\u0000\u0000\u000f\u0001"+ + "\u0000\u0000\u0000\u0000\u0011\u0001\u0000\u0000\u0000\u0000\u0013\u0001"+ + "\u0000\u0000\u0000\u0000\u001d\u0001\u0000\u0000\u0000\u0000#\u0001\u0000"+ + "\u0000\u0000\u0001%\u0001\u0000\u0000\u0000\u0003\'\u0001\u0000\u0000"+ + "\u0000\u0005)\u0001\u0000\u0000\u0000\u0007+\u0001\u0000\u0000\u0000\t"+ + "-\u0001\u0000\u0000\u0000\u000b/\u0001\u0000\u0000\u0000\r1\u0001\u0000"+ + "\u0000\u0000\u000f6\u0001\u0000\u0000\u0000\u0011<\u0001\u0000\u0000\u0000"+ + "\u0013A\u0001\u0000\u0000\u0000\u0015K\u0001\u0000\u0000\u0000\u0017P"+ + "\u0001\u0000\u0000\u0000\u0019V\u0001\u0000\u0000\u0000\u001bX\u0001\u0000"+ + "\u0000\u0000\u001d[\u0001\u0000\u0000\u0000\u001fq\u0001\u0000\u0000\u0000"+ + "!s\u0001\u0000\u0000\u0000#z\u0001\u0000\u0000\u0000%&\u0005{\u0000\u0000"+ + "&\u0002\u0001\u0000\u0000\u0000\'(\u0005,\u0000\u0000(\u0004\u0001\u0000"+ + "\u0000\u0000)*\u0005}\u0000\u0000*\u0006\u0001\u0000\u0000\u0000+,\u0005"+ + ":\u0000\u0000,\b\u0001\u0000\u0000\u0000-.\u0005[\u0000\u0000.\n\u0001"+ + "\u0000\u0000\u0000/0\u0005]\u0000\u00000\f\u0001\u0000\u0000\u000012\u0005"+ + "t\u0000\u000023\u0005r\u0000\u000034\u0005u\u0000\u000045\u0005e\u0000"+ + "\u00005\u000e\u0001\u0000\u0000\u000067\u0005f\u0000\u000078\u0005a\u0000"+ + "\u000089\u0005l\u0000\u00009:\u0005s\u0000\u0000:;\u0005e\u0000\u0000"+ + ";\u0010\u0001\u0000\u0000\u0000<=\u0005n\u0000\u0000=>\u0005u\u0000\u0000"+ + ">?\u0005l\u0000\u0000?@\u0005l\u0000\u0000@\u0012\u0001\u0000\u0000\u0000"+ + "AF\u0005\"\u0000\u0000BE\u0003\u0015\n\u0000CE\u0003\u001b\r\u0000DB\u0001"+ + "\u0000\u0000\u0000DC\u0001\u0000\u0000\u0000EH\u0001\u0000\u0000\u0000"+ + "FD\u0001\u0000\u0000\u0000FG\u0001\u0000\u0000\u0000GI\u0001\u0000\u0000"+ + "\u0000HF\u0001\u0000\u0000\u0000IJ\u0005\"\u0000\u0000J\u0014\u0001\u0000"+ + "\u0000\u0000KN\u0005\\\u0000\u0000LO\u0007\u0000\u0000\u0000MO\u0003\u0017"+ + "\u000b\u0000NL\u0001\u0000\u0000\u0000NM\u0001\u0000\u0000\u0000O\u0016"+ + "\u0001\u0000\u0000\u0000PQ\u0005u\u0000\u0000QR\u0003\u0019\f\u0000RS"+ + "\u0003\u0019\f\u0000ST\u0003\u0019\f\u0000TU\u0003\u0019\f\u0000U\u0018"+ + "\u0001\u0000\u0000\u0000VW\u0007\u0001\u0000\u0000W\u001a\u0001\u0000"+ + "\u0000\u0000XY\b\u0002\u0000\u0000Y\u001c\u0001\u0000\u0000\u0000Z\\\u0005"+ + "-\u0000\u0000[Z\u0001\u0000\u0000\u0000[\\\u0001\u0000\u0000\u0000\\]"+ + "\u0001\u0000\u0000\u0000]d\u0003\u001f\u000f\u0000^`\u0005.\u0000\u0000"+ + "_a\u0007\u0003\u0000\u0000`_\u0001\u0000\u0000\u0000ab\u0001\u0000\u0000"+ + "\u0000b`\u0001\u0000\u0000\u0000bc\u0001\u0000\u0000\u0000ce\u0001\u0000"+ + "\u0000\u0000d^\u0001\u0000\u0000\u0000de\u0001\u0000\u0000\u0000eg\u0001"+ + "\u0000\u0000\u0000fh\u0003!\u0010\u0000gf\u0001\u0000\u0000\u0000gh\u0001"+ + "\u0000\u0000\u0000h\u001e\u0001\u0000\u0000\u0000ir\u00050\u0000\u0000"+ + "jn\u0007\u0004\u0000\u0000km\u0007\u0003\u0000\u0000lk\u0001\u0000\u0000"+ + "\u0000mp\u0001\u0000\u0000\u0000nl\u0001\u0000\u0000\u0000no\u0001\u0000"+ + "\u0000\u0000or\u0001\u0000\u0000\u0000pn\u0001\u0000\u0000\u0000qi\u0001"+ + "\u0000\u0000\u0000qj\u0001\u0000\u0000\u0000r \u0001\u0000\u0000\u0000"+ + "su\u0007\u0005\u0000\u0000tv\u0007\u0006\u0000\u0000ut\u0001\u0000\u0000"+ + "\u0000uv\u0001\u0000\u0000\u0000vw\u0001\u0000\u0000\u0000wx\u0003\u001f"+ + "\u000f\u0000x\"\u0001\u0000\u0000\u0000y{\u0007\u0007\u0000\u0000zy\u0001"+ + "\u0000\u0000\u0000{|\u0001\u0000\u0000\u0000|z\u0001\u0000\u0000\u0000"+ + "|}\u0001\u0000\u0000\u0000}~\u0001\u0000\u0000\u0000~\u007f\u0006\u0011"+ + "\u0000\u0000\u007f$\u0001\u0000\u0000\u0000\f\u0000DFN[bdgnqu|\u0001\u0006"+ + "\u0000\u0000"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONLexer.tokens b/src/main/antlr/in.handyman.raven/compiler/JSONLexer.tokens similarity index 100% rename from handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONLexer.tokens rename to src/main/antlr/in.handyman.raven/compiler/JSONLexer.tokens diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONListener.java b/src/main/antlr/in.handyman.raven/compiler/JSONListener.java similarity index 97% rename from handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONListener.java rename to src/main/antlr/in.handyman.raven/compiler/JSONListener.java index bc387cfe..ed4cf624 100644 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONListener.java +++ b/src/main/antlr/in.handyman.raven/compiler/JSONListener.java @@ -1,4 +1,4 @@ -// Generated from JSON.g4 by ANTLR 4.9.3 +// Generated from java-escape by ANTLR 4.11.1 package in.handyman.raven.compiler; diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONParser.java b/src/main/antlr/in.handyman.raven/compiler/JSONParser.java similarity index 77% rename from handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONParser.java rename to src/main/antlr/in.handyman.raven/compiler/JSONParser.java index d3531d43..8cf36170 100644 --- a/handyman.raven/src/main/antlr/in.handyman.raven/compiler/JSONParser.java +++ b/src/main/antlr/in.handyman.raven/compiler/JSONParser.java @@ -1,4 +1,4 @@ -// Generated from JSON.g4 by ANTLR 4.9.3 +// Generated from java-escape by ANTLR 4.11.1 package in.handyman.raven.compiler; @@ -11,9 +11,9 @@ import java.util.Iterator; import java.util.ArrayList; -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) public class JSONParser extends Parser { - static { RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION); } + static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = @@ -78,7 +78,7 @@ public Vocabulary getVocabulary() { } @Override - public String getGrammarFileName() { return "JSON.g4"; } + public String getGrammarFileName() { return "java-escape"; } @Override public String[] getRuleNames() { return ruleNames; } @@ -94,6 +94,7 @@ public JSONParser(TokenStream input) { _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); } + @SuppressWarnings("CheckReturnValue") public static class JsonContext extends ParserRuleContext { public ObjContext obj() { return getRuleContext(ObjContext.class,0); @@ -151,6 +152,7 @@ public final JsonContext json() throws RecognitionException { return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class ObjContext extends ParserRuleContext { public List pair() { return getRuleContexts(PairContext.class); @@ -229,6 +231,7 @@ public final ObjContext obj() throws RecognitionException { return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class PairContext extends ParserRuleContext { public TerminalNode STRING() { return getToken(JSONParser.STRING, 0); } public JValueContext jValue() { @@ -273,6 +276,7 @@ public final PairContext pair() throws RecognitionException { return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class ArrContext extends ParserRuleContext { public List jValue() { return getRuleContexts(JValueContext.class); @@ -351,6 +355,7 @@ public final ArrContext arr() throws RecognitionException { return _localctx; } + @SuppressWarnings("CheckReturnValue") public static class JValueContext extends ParserRuleContext { public TerminalNode STRING() { return getToken(JSONParser.STRING, 0); } public TerminalNode NUMBER() { return getToken(JSONParser.NUMBER, 0); } @@ -446,23 +451,43 @@ public final JValueContext jValue() throws RecognitionException { } public static final String _serializedATN = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\16<\4\2\t\2\4\3\t"+ - "\3\4\4\t\4\4\5\t\5\4\6\t\6\3\2\3\2\5\2\17\n\2\3\3\3\3\3\3\3\3\7\3\25\n"+ - "\3\f\3\16\3\30\13\3\3\3\3\3\3\3\3\3\5\3\36\n\3\3\4\3\4\3\4\3\4\3\5\3\5"+ - "\3\5\3\5\7\5(\n\5\f\5\16\5+\13\5\3\5\3\5\3\5\3\5\5\5\61\n\5\3\6\3\6\3"+ - "\6\3\6\3\6\3\6\3\6\5\6:\n\6\3\6\2\2\7\2\4\6\b\n\2\2\2A\2\16\3\2\2\2\4"+ - "\35\3\2\2\2\6\37\3\2\2\2\b\60\3\2\2\2\n9\3\2\2\2\f\17\5\4\3\2\r\17\5\b"+ - "\5\2\16\f\3\2\2\2\16\r\3\2\2\2\17\3\3\2\2\2\20\21\7\3\2\2\21\26\5\6\4"+ - "\2\22\23\7\4\2\2\23\25\5\6\4\2\24\22\3\2\2\2\25\30\3\2\2\2\26\24\3\2\2"+ - "\2\26\27\3\2\2\2\27\31\3\2\2\2\30\26\3\2\2\2\31\32\7\5\2\2\32\36\3\2\2"+ - "\2\33\34\7\3\2\2\34\36\7\5\2\2\35\20\3\2\2\2\35\33\3\2\2\2\36\5\3\2\2"+ - "\2\37 \7\f\2\2 !\7\6\2\2!\"\5\n\6\2\"\7\3\2\2\2#$\7\7\2\2$)\5\n\6\2%&"+ - "\7\4\2\2&(\5\n\6\2\'%\3\2\2\2(+\3\2\2\2)\'\3\2\2\2)*\3\2\2\2*,\3\2\2\2"+ - "+)\3\2\2\2,-\7\b\2\2-\61\3\2\2\2./\7\7\2\2/\61\7\b\2\2\60#\3\2\2\2\60"+ - ".\3\2\2\2\61\t\3\2\2\2\62:\7\f\2\2\63:\7\r\2\2\64:\5\4\3\2\65:\5\b\5\2"+ - "\66:\7\t\2\2\67:\7\n\2\28:\7\13\2\29\62\3\2\2\29\63\3\2\2\29\64\3\2\2"+ - "\29\65\3\2\2\29\66\3\2\2\29\67\3\2\2\298\3\2\2\2:\13\3\2\2\2\b\16\26\35"+ - ")\609"; + "\u0004\u0001\f:\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001\u0002"+ + "\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004\u0001"+ + "\u0000\u0001\u0000\u0003\u0000\r\b\u0000\u0001\u0001\u0001\u0001\u0001"+ + "\u0001\u0001\u0001\u0005\u0001\u0013\b\u0001\n\u0001\f\u0001\u0016\t\u0001"+ + "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0003\u0001\u001c\b\u0001"+ + "\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0003\u0001\u0003"+ + "\u0001\u0003\u0001\u0003\u0005\u0003&\b\u0003\n\u0003\f\u0003)\t\u0003"+ + "\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0003\u0003/\b\u0003"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0003\u00048\b\u0004\u0001\u0004\u0000\u0000\u0005\u0000"+ + "\u0002\u0004\u0006\b\u0000\u0000?\u0000\f\u0001\u0000\u0000\u0000\u0002"+ + "\u001b\u0001\u0000\u0000\u0000\u0004\u001d\u0001\u0000\u0000\u0000\u0006"+ + ".\u0001\u0000\u0000\u0000\b7\u0001\u0000\u0000\u0000\n\r\u0003\u0002\u0001"+ + "\u0000\u000b\r\u0003\u0006\u0003\u0000\f\n\u0001\u0000\u0000\u0000\f\u000b"+ + "\u0001\u0000\u0000\u0000\r\u0001\u0001\u0000\u0000\u0000\u000e\u000f\u0005"+ + "\u0001\u0000\u0000\u000f\u0014\u0003\u0004\u0002\u0000\u0010\u0011\u0005"+ + "\u0002\u0000\u0000\u0011\u0013\u0003\u0004\u0002\u0000\u0012\u0010\u0001"+ + "\u0000\u0000\u0000\u0013\u0016\u0001\u0000\u0000\u0000\u0014\u0012\u0001"+ + "\u0000\u0000\u0000\u0014\u0015\u0001\u0000\u0000\u0000\u0015\u0017\u0001"+ + "\u0000\u0000\u0000\u0016\u0014\u0001\u0000\u0000\u0000\u0017\u0018\u0005"+ + "\u0003\u0000\u0000\u0018\u001c\u0001\u0000\u0000\u0000\u0019\u001a\u0005"+ + "\u0001\u0000\u0000\u001a\u001c\u0005\u0003\u0000\u0000\u001b\u000e\u0001"+ + "\u0000\u0000\u0000\u001b\u0019\u0001\u0000\u0000\u0000\u001c\u0003\u0001"+ + "\u0000\u0000\u0000\u001d\u001e\u0005\n\u0000\u0000\u001e\u001f\u0005\u0004"+ + "\u0000\u0000\u001f \u0003\b\u0004\u0000 \u0005\u0001\u0000\u0000\u0000"+ + "!\"\u0005\u0005\u0000\u0000\"\'\u0003\b\u0004\u0000#$\u0005\u0002\u0000"+ + "\u0000$&\u0003\b\u0004\u0000%#\u0001\u0000\u0000\u0000&)\u0001\u0000\u0000"+ + "\u0000\'%\u0001\u0000\u0000\u0000\'(\u0001\u0000\u0000\u0000(*\u0001\u0000"+ + "\u0000\u0000)\'\u0001\u0000\u0000\u0000*+\u0005\u0006\u0000\u0000+/\u0001"+ + "\u0000\u0000\u0000,-\u0005\u0005\u0000\u0000-/\u0005\u0006\u0000\u0000"+ + ".!\u0001\u0000\u0000\u0000.,\u0001\u0000\u0000\u0000/\u0007\u0001\u0000"+ + "\u0000\u000008\u0005\n\u0000\u000018\u0005\u000b\u0000\u000028\u0003\u0002"+ + "\u0001\u000038\u0003\u0006\u0003\u000048\u0005\u0007\u0000\u000058\u0005"+ + "\b\u0000\u000068\u0005\t\u0000\u000070\u0001\u0000\u0000\u000071\u0001"+ + "\u0000\u0000\u000072\u0001\u0000\u0000\u000073\u0001\u0000\u0000\u0000"+ + "74\u0001\u0000\u0000\u000075\u0001\u0000\u0000\u000076\u0001\u0000\u0000"+ + "\u00008\t\u0001\u0000\u0000\u0000\u0006\f\u0014\u001b\'.7"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { diff --git a/src/main/antlr/in.handyman.raven/compiler/Raven.interp b/src/main/antlr/in.handyman.raven/compiler/Raven.interp new file mode 100644 index 00000000..66b343a9 --- /dev/null +++ b/src/main/antlr/in.handyman.raven/compiler/Raven.interp @@ -0,0 +1,769 @@ +token literal names: +null +'process' +'{' +'}' +'try' +'finally' +'catch' +'multitude' +'as' +'on' +'using' +'on-condition' +'fielding' +'copydata' +'from' +'to' +'with-fetch-batch-size' +'with-write-batch-size' +'transform' +'do-format' +'loadcsv' +'pid' +'with' +'by-batch' +'abort' +'callprocess' +'with-target' +'from-file' +'for-every' +'on-parallel-fielding' +'forkprocess' +'watermark' +'spawn' +'dogleg' +'use-parent-context' +'start-process' +'with-file' +'assign' +'source' +'dropfile' +'in-path' +'restapi' +'url' +'method' +'with headers' +'with params' +'with body type' +'{ part' +'type as' +'exportCsv' +'executionSource' +'targetLocation' +'importCsvToDB' +'target' +'batch' +'extractTAR' +'destination' +'createTAR' +'extension' +'createDirectory' +'createFile' +'location' +'fileName' +'deleteFileDirectory' +'transferFileDirectory' +'operation' +'pcm' +'on-resource' +'produce' +'consume' +'producer' +'push-result-at' +'execute' +'consumer' +'pop-event-from' +'pop-result-from' +'limit' +'on-standalone' +'push-json-into-context' +'with-key' +'using-value' +'map-json-into-context' +'sharepoint' +'client-id' +'tenant-id' +'client-secret' +'org-name' +'action-type' +'site-url' +'source-relative-path' +'file-name' +'target-relative-path' +'if' +'log' +'level' +'message' +'raise exception' +'checksum' +'fileSize' +'download-asset' +'from-url' +'at' +'paper-itemization' +'from-target-file' +'autoRotation' +'output-dir' +'process-id' +'resource-conn' +'blankPageRemover' +'qrAttribution' +'uploadAsset' +'template-id' +'auth-token' +'fileMerger' +'in' +'ftps_upload' +'with-remote-host' +'port' +'user-name' +'password' +'session-timeout' +'source-file-to-upload' +'in-destination-to-save' +'upload-check' +'ftps_download' +'source-file-to-download' +'download-check' +'sftp' +'channel-timeout' +'ftp' +'create-zip' +'extract-zip' +'sorGroupDetails' +'keyfields' +'searchfields' +'groupbyfields' +'targettable' +'zeroShotClassifier' +'with-candidate-labels' +'loadExtractedData' +'file-path' +'paper-no' +'intics-reference-id' +'batch-id' +'target-dir' +'absentKeyFilter' +'sor-list' +'sorFilter' +'search-value' +'triage' +'in-output-dir' +'with-labelled-classifier-model-path' +'with-handwritten-extractor-model-path' +'with-checkbox-extractor-model-path' +'using-synonyms' +'using-labelled-classifier-labels' +'using-vilt-coco-labels' +'add-vilt-question-config' +'add-vilt-coco-overide-config' +'add-vilt-coco-threshold-config' +'add-config-vgg-img-width' +'add-config-vgg-img-height' +'save-response-as' +'docnetAttribution' +'for-input-file' +'on-resource-conn' +'using-attribute-questions' +'tqa-filter' +'using-truth-extractor-url' +'add-config-max-doctr-inner-join-diff' +'add-config-max-question-spacing-diff' +'using-synonmys' +'using-input-files' +'text-filtering' +'key-filtering' +'with-doc-id' +'for-paper' +'group-id' +'entity-key-filtering' +'with-mandatory-key-filtering' +'check-threshold' +'threshold-value' +'jsonToFile' +'export-into' +'docnetResult' +'using-copro' +'using-weightage' +'setContextValue' +'context-key' +'context-value' +'evalPatientName' +'patient-name' +'word-count-limit' +'char-count-limit' +'ner-api' +'word-count-threshold' +'char-count-threshold' +'ner-api-threshold' +'evalMemberId' +'member-id' +'special-character' +'validator-threshold' +'evalDateOfBirth' +'date-of-birth' +'comparable-year' +'date-formats' +'dirPath' +'fileDetails' +'dirpath' +'groupId' +'inboundId' +'wordcount' +'word-threshold' +'input-value' +'word-limit' +'charactercount' +'char-threshold' +'char-limit' +'datevalidator' +'allowed-date-formats' +'comparable-date' +'alphavalidator' +'allowed-special-characters' +'alphanumericvalidator' +'numericvalidator' +'nervalidator' +'ner-threshold' +'urgencyTriage' +'input-file-path' +'binary-classifier-model-file-path' +'multi-classifier-model-file-path' +'checkbox-classifier-model-file-path' +'synonyms' +'binary-classifier-labels' +'multi-classifier-labels' +'checkbox-classifier-labels' +'binary-image-width' +'binary-image-height' +'multi-image-width' +'multi-image-height' +'checkbox-image-width' +'checkbox-image-height' +'donut-docqa' +'scalarAdapter' +'using-docnut-result' +'phrase-match-paper-filter' +'for-process-id' +'thread-count' +'read-batch-size' +'write-batch-size' +'with-input-query' +'zero-shot-classifier-paper-filter' +'assetInfo' +'get-audit-table' +'result-table' +'dataExtraction' +'episodeOfCoverage' +'origin-id' +'total-pages' +'output-table' +'grouping-item' +'patient-eoc-count' +'qr-grouping' +'eoc-grouping' +'pnd-grouping' +'userRegistration' +'authToken' +'eocJsonGenerator' +'document-id' +'eoc-id' +'zipContentList' +'zip-file-path' +'hwDetection' +'outputDir' +'modelPath' +'intellimatch' +'match-result' +'checkbox-vqa' +'cad-model-path' +'cd-model-path' +'cr-model-path' +'text-model' +'cr-width' +'cr-height' +'pixel-classifier-urgency-triage' +'qr-extraction' +'paperItemizer' +'processId' +'nerAdapter' +'coproStart' +'for' +'copro-server-url' +'export-command' +'coproStop' +'outbound-delivery-notify' +'intics-zip-uri' +'masterdataComparison' +'zipBatch' +'drugMatch' +'drug-compare' +'urgencyTriageModel' +'donut-impira-qa' +'templateDetection' +'copro-url' +'input-table' +'ouput-table' +'trinity-docqa' +'api-endpoint' +'file-bucketing' +',' +':' +'[' +']' +'true' +'false' +'null' +null +null +null +null +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +NON_ZERO_DIGIT +STRING +CRLF +Operator +WS +COMMENT +LINE_COMMENT +NUMBER + +rule names: +process +tryClause +finallyClause +catchClause +action +multitude +copyData +transform +loadCsv +abort +callProcess +forkProcess +spawnProcess +dogLeg +startProcess +assign +dropFile +restApi +restPart +exportCsv +importCsvToDB +extractTAR +createTAR +createDirectory +createFile +deleteFileDirectory +transferFileDirectory +producerConsumerModel +producer +consumer +pushJson +mapJsonContext +sharePoint +expression +log +ravenVmException +checksum +fileSize +downloadAsset +paperItemization +autoRotation +blankPageRemover +qrAttribution +uploadAsset +fileMerger +ftpsUpload +ftpsDownload +sftpConnector +createZip +extractZip +sorGroupDetails +zeroShotClassifier +loadExtractedData +absentKeyFilter +sorFilter +triageAttribution +docnetAttribution +tqaFilter +textFilter +entityFilter +thresholdCheck +jsonToFile +docnetResult +setContextValue +evalPatientName +evalMemberId +evalDateOfBirth +dirPath +fileDetails +wordcount +charactercount +datevalidator +alphavalidator +alphanumericvalidator +numericvalidator +nervalidator +urgencyTriage +donutDocQa +scalarAdapter +phraseMatchPaperFilter +zeroShotClassifierPaperFilter +assetInfo +dataExtraction +episodeOfCoverage +userRegistration +authToken +eocJsonGenerator +zipContentList +hwDetection +intellimatch +checkboxVqa +pixelClassifierUrgencyTriage +qrExtraction +paperItemizer +nerAdapter +resource +coproStart +coproStop +outboundDeliveryNotify +masterdataComparison +zipBatch +drugMatch +urgencyTriageModel +donutImpiraQa +templateDetection +trinityModel +fileBucketing +json +obj +pair +arr +jValue + + +atn: +[4, 1, 323, 2684, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 5, 1, 236, 8, 1, 10, 1, 12, 1, 239, 9, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 5, 2, 246, 8, 2, 10, 2, 12, 2, 249, 9, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 5, 3, 256, 8, 3, 10, 3, 12, 3, 259, 9, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 362, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 369, 8, 5, 10, 5, 12, 5, 372, 9, 5, 1, 5, 1, 5, 1, 5, 5, 5, 377, 8, 5, 10, 5, 12, 5, 380, 9, 5, 1, 5, 1, 5, 1, 5, 5, 5, 385, 8, 5, 10, 5, 12, 5, 388, 9, 5, 1, 5, 1, 5, 5, 5, 392, 8, 5, 10, 5, 12, 5, 395, 9, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 5, 6, 410, 8, 6, 10, 6, 12, 6, 413, 9, 6, 1, 6, 1, 6, 5, 6, 417, 8, 6, 10, 6, 12, 6, 420, 9, 6, 1, 6, 1, 6, 5, 6, 424, 8, 6, 10, 6, 12, 6, 427, 9, 6, 1, 6, 1, 6, 5, 6, 431, 8, 6, 10, 6, 12, 6, 434, 9, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 447, 8, 7, 10, 7, 12, 7, 450, 9, 7, 1, 7, 1, 7, 5, 7, 454, 8, 7, 10, 7, 12, 7, 457, 9, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 478, 8, 8, 10, 8, 12, 8, 481, 9, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 5, 9, 491, 8, 9, 10, 9, 12, 9, 494, 9, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 5, 10, 511, 8, 10, 10, 10, 12, 10, 514, 9, 10, 1, 10, 1, 10, 5, 10, 518, 8, 10, 10, 10, 12, 10, 521, 9, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 5, 11, 538, 8, 11, 10, 11, 12, 11, 541, 9, 11, 1, 11, 1, 11, 5, 11, 545, 8, 11, 10, 11, 12, 11, 548, 9, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 5, 12, 559, 8, 12, 10, 12, 12, 12, 562, 9, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 5, 13, 575, 8, 13, 10, 13, 12, 13, 578, 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 596, 8, 15, 10, 15, 12, 15, 599, 9, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 608, 8, 16, 10, 16, 12, 16, 611, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 625, 8, 17, 10, 17, 12, 17, 628, 9, 17, 1, 17, 1, 17, 5, 17, 632, 8, 17, 10, 17, 12, 17, 635, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 644, 8, 17, 10, 17, 12, 17, 647, 9, 17, 1, 17, 1, 17, 1, 17, 5, 17, 652, 8, 17, 10, 17, 12, 17, 655, 9, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 664, 8, 18, 10, 18, 12, 18, 667, 9, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 5, 19, 680, 8, 19, 10, 19, 12, 19, 683, 9, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 5, 19, 692, 8, 19, 10, 19, 12, 19, 695, 9, 19, 1, 19, 1, 19, 5, 19, 699, 8, 19, 10, 19, 12, 19, 702, 9, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 717, 8, 20, 10, 20, 12, 20, 720, 9, 20, 1, 20, 1, 20, 5, 20, 724, 8, 20, 10, 20, 12, 20, 727, 9, 20, 1, 20, 1, 20, 5, 20, 731, 8, 20, 10, 20, 12, 20, 734, 9, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 748, 8, 21, 10, 21, 12, 21, 751, 9, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 5, 22, 767, 8, 22, 10, 22, 12, 22, 770, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 781, 8, 23, 10, 23, 12, 23, 784, 9, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 5, 24, 801, 8, 24, 10, 24, 12, 24, 804, 9, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 815, 8, 25, 10, 25, 12, 25, 818, 9, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26, 834, 8, 26, 10, 26, 12, 26, 837, 9, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 850, 8, 27, 10, 27, 12, 27, 853, 9, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 861, 8, 27, 10, 27, 12, 27, 864, 9, 27, 1, 27, 1, 27, 5, 27, 868, 8, 27, 10, 27, 12, 27, 871, 9, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 5, 28, 878, 8, 28, 10, 28, 12, 28, 881, 9, 28, 1, 28, 1, 28, 5, 28, 885, 8, 28, 10, 28, 12, 28, 888, 9, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 5, 28, 897, 8, 28, 10, 28, 12, 28, 900, 9, 28, 1, 28, 1, 28, 1, 28, 5, 28, 905, 8, 28, 10, 28, 12, 28, 908, 9, 28, 1, 28, 1, 28, 5, 28, 912, 8, 28, 10, 28, 12, 28, 915, 9, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 924, 8, 29, 10, 29, 12, 29, 927, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 933, 8, 29, 10, 29, 12, 29, 936, 9, 29, 1, 29, 1, 29, 1, 29, 5, 29, 941, 8, 29, 10, 29, 12, 29, 944, 9, 29, 1, 29, 1, 29, 1, 29, 5, 29, 949, 8, 29, 10, 29, 12, 29, 952, 9, 29, 1, 29, 1, 29, 5, 29, 956, 8, 29, 10, 29, 12, 29, 959, 9, 29, 1, 29, 1, 29, 5, 29, 963, 8, 29, 10, 29, 12, 29, 966, 9, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 979, 8, 30, 10, 30, 12, 30, 982, 9, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 993, 8, 31, 10, 31, 12, 31, 996, 9, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 1025, 8, 32, 10, 32, 12, 32, 1028, 9, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 5, 35, 1054, 8, 35, 10, 35, 12, 35, 1057, 9, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 5, 36, 1068, 8, 36, 10, 36, 12, 36, 1071, 9, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 1082, 8, 37, 10, 37, 12, 37, 1085, 9, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 5, 38, 1099, 8, 38, 10, 38, 12, 38, 1102, 9, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 1116, 8, 39, 10, 39, 12, 39, 1119, 9, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 5, 40, 1136, 8, 40, 10, 40, 12, 40, 1139, 9, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 5, 41, 1156, 8, 41, 10, 41, 12, 41, 1159, 9, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, 1170, 8, 42, 10, 42, 12, 42, 1173, 9, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 5, 43, 1189, 8, 43, 10, 43, 12, 43, 1192, 9, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5, 44, 1205, 8, 44, 10, 44, 12, 44, 1208, 9, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 5, 45, 1234, 8, 45, 10, 45, 12, 45, 1237, 9, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 5, 46, 1263, 8, 46, 10, 46, 12, 46, 1266, 9, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 5, 47, 1309, 8, 47, 10, 47, 12, 47, 1312, 9, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 5, 48, 1327, 8, 48, 10, 48, 12, 48, 1330, 9, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 5, 49, 1343, 8, 49, 10, 49, 12, 49, 1346, 9, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 5, 50, 1367, 8, 50, 10, 50, 12, 50, 1370, 9, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 1383, 8, 51, 10, 51, 12, 51, 1386, 9, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 5, 52, 1406, 8, 52, 10, 52, 12, 52, 1409, 9, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 5, 53, 1429, 8, 53, 10, 53, 12, 53, 1432, 9, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 1448, 8, 54, 10, 54, 12, 54, 1451, 9, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 1487, 8, 55, 10, 55, 12, 55, 1490, 9, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 1511, 8, 56, 10, 56, 12, 56, 1514, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 1539, 8, 57, 10, 57, 12, 57, 1542, 9, 57, 1, 57, 1, 57, 5, 57, 1546, 8, 57, 10, 57, 12, 57, 1549, 9, 57, 1, 57, 1, 57, 5, 57, 1553, 8, 57, 10, 57, 12, 57, 1556, 9, 57, 1, 57, 1, 57, 5, 57, 1560, 8, 57, 10, 57, 12, 57, 1563, 9, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 5, 58, 1576, 8, 58, 10, 58, 12, 58, 1579, 9, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 5, 59, 1602, 8, 59, 10, 59, 12, 59, 1605, 9, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 5, 60, 1617, 8, 60, 10, 60, 12, 60, 1620, 9, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 5, 61, 1635, 8, 61, 10, 61, 12, 61, 1638, 9, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 5, 62, 1655, 8, 62, 10, 62, 12, 62, 1658, 9, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 5, 63, 1672, 8, 63, 10, 63, 12, 63, 1675, 9, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 5, 64, 1699, 8, 64, 10, 64, 12, 64, 1702, 9, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 5, 65, 1726, 8, 65, 10, 65, 12, 65, 1729, 9, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 5, 66, 1755, 8, 66, 10, 66, 12, 66, 1758, 9, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 5, 67, 1771, 8, 67, 10, 67, 12, 67, 1774, 9, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 5, 68, 1792, 8, 68, 10, 68, 12, 68, 1795, 9, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 5, 69, 1811, 8, 69, 10, 69, 12, 69, 1814, 9, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 5, 70, 1830, 8, 70, 10, 70, 12, 70, 1833, 9, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 5, 71, 1851, 8, 71, 10, 71, 12, 71, 1854, 9, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 5, 72, 1870, 8, 72, 10, 72, 12, 72, 1873, 9, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 5, 73, 1889, 8, 73, 10, 73, 12, 73, 1892, 9, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 5, 74, 1908, 8, 74, 10, 74, 12, 74, 1911, 9, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 5, 75, 1925, 8, 75, 10, 75, 12, 75, 1928, 9, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 5, 76, 1968, 8, 76, 10, 76, 12, 76, 1971, 9, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 5, 77, 1988, 8, 77, 10, 77, 12, 77, 1991, 9, 77, 1, 77, 1, 77, 5, 77, 1995, 8, 77, 10, 77, 12, 77, 1998, 9, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 5, 78, 2013, 8, 78, 10, 78, 12, 78, 2016, 9, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 5, 79, 2037, 8, 79, 10, 79, 12, 79, 2040, 9, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 5, 80, 2061, 8, 80, 10, 80, 12, 80, 2064, 9, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 5, 81, 2081, 8, 81, 10, 81, 12, 81, 2084, 9, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 5, 82, 2101, 8, 82, 10, 82, 12, 82, 2104, 9, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 5, 83, 2141, 8, 83, 10, 83, 12, 83, 2144, 9, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 5, 84, 2156, 8, 84, 10, 84, 12, 84, 2159, 9, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 5, 85, 2171, 8, 85, 10, 85, 12, 85, 2174, 9, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 5, 86, 2196, 8, 86, 10, 86, 12, 86, 2199, 9, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 5, 87, 2217, 8, 87, 10, 87, 12, 87, 2220, 9, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 5, 88, 2237, 8, 88, 10, 88, 12, 88, 2240, 9, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 5, 89, 2255, 8, 89, 10, 89, 12, 89, 2258, 9, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 5, 90, 2287, 8, 90, 10, 90, 12, 90, 2290, 9, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 5, 91, 2333, 8, 91, 10, 91, 12, 91, 2336, 9, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 5, 92, 2353, 8, 92, 10, 92, 12, 92, 2356, 9, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 5, 93, 2375, 8, 93, 10, 93, 12, 93, 2378, 9, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 5, 94, 2393, 8, 94, 10, 94, 12, 94, 2396, 9, 94, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 5, 96, 2419, 8, 96, 10, 96, 12, 96, 2422, 9, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 5, 97, 2441, 8, 97, 10, 97, 12, 97, 2444, 9, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 5, 98, 2463, 8, 98, 10, 98, 12, 98, 2466, 9, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 5, 99, 2481, 8, 99, 10, 99, 12, 99, 2484, 9, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 5, 100, 2500, 8, 100, 10, 100, 12, 100, 2503, 9, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 5, 101, 2518, 8, 101, 10, 101, 12, 101, 2521, 9, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 5, 102, 2536, 8, 102, 10, 102, 12, 102, 2539, 9, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 5, 103, 2556, 8, 103, 10, 103, 12, 103, 2559, 9, 103, 1, 103, 1, 103, 5, 103, 2563, 8, 103, 10, 103, 12, 103, 2566, 9, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 5, 104, 2587, 8, 104, 10, 104, 12, 104, 2590, 9, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 5, 105, 2609, 8, 105, 10, 105, 12, 105, 2612, 9, 105, 1, 105, 1, 105, 5, 105, 2616, 8, 105, 10, 105, 12, 105, 2619, 9, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 5, 106, 2632, 8, 106, 10, 106, 12, 106, 2635, 9, 106, 1, 107, 1, 107, 3, 107, 2639, 8, 107, 1, 108, 1, 108, 1, 108, 1, 108, 5, 108, 2645, 8, 108, 10, 108, 12, 108, 2648, 9, 108, 1, 108, 1, 108, 1, 108, 1, 108, 3, 108, 2654, 8, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 5, 110, 2664, 8, 110, 10, 110, 12, 110, 2667, 9, 110, 1, 110, 1, 110, 1, 110, 1, 110, 3, 110, 2673, 8, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 3, 111, 2682, 8, 111, 1, 111, 0, 0, 112, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 0, 0, 2814, 0, 224, 1, 0, 0, 0, 2, 232, 1, 0, 0, 0, 4, 242, 1, 0, 0, 0, 6, 252, 1, 0, 0, 0, 8, 361, 1, 0, 0, 0, 10, 363, 1, 0, 0, 0, 12, 396, 1, 0, 0, 0, 14, 435, 1, 0, 0, 0, 16, 458, 1, 0, 0, 0, 18, 482, 1, 0, 0, 0, 20, 495, 1, 0, 0, 0, 22, 522, 1, 0, 0, 0, 24, 549, 1, 0, 0, 0, 26, 563, 1, 0, 0, 0, 28, 579, 1, 0, 0, 0, 30, 584, 1, 0, 0, 0, 32, 600, 1, 0, 0, 0, 34, 612, 1, 0, 0, 0, 36, 656, 1, 0, 0, 0, 38, 670, 1, 0, 0, 0, 40, 703, 1, 0, 0, 0, 42, 735, 1, 0, 0, 0, 44, 752, 1, 0, 0, 0, 46, 771, 1, 0, 0, 0, 48, 785, 1, 0, 0, 0, 50, 805, 1, 0, 0, 0, 52, 819, 1, 0, 0, 0, 54, 838, 1, 0, 0, 0, 56, 872, 1, 0, 0, 0, 58, 916, 1, 0, 0, 0, 60, 967, 1, 0, 0, 0, 62, 983, 1, 0, 0, 0, 64, 997, 1, 0, 0, 0, 66, 1029, 1, 0, 0, 0, 68, 1034, 1, 0, 0, 0, 70, 1044, 1, 0, 0, 0, 72, 1058, 1, 0, 0, 0, 74, 1072, 1, 0, 0, 0, 76, 1086, 1, 0, 0, 0, 78, 1103, 1, 0, 0, 0, 80, 1120, 1, 0, 0, 0, 82, 1140, 1, 0, 0, 0, 84, 1160, 1, 0, 0, 0, 86, 1174, 1, 0, 0, 0, 88, 1193, 1, 0, 0, 0, 90, 1209, 1, 0, 0, 0, 92, 1238, 1, 0, 0, 0, 94, 1267, 1, 0, 0, 0, 96, 1313, 1, 0, 0, 0, 98, 1331, 1, 0, 0, 0, 100, 1347, 1, 0, 0, 0, 102, 1371, 1, 0, 0, 0, 104, 1387, 1, 0, 0, 0, 106, 1410, 1, 0, 0, 0, 108, 1433, 1, 0, 0, 0, 110, 1452, 1, 0, 0, 0, 112, 1491, 1, 0, 0, 0, 114, 1515, 1, 0, 0, 0, 116, 1564, 1, 0, 0, 0, 118, 1580, 1, 0, 0, 0, 120, 1606, 1, 0, 0, 0, 122, 1621, 1, 0, 0, 0, 124, 1639, 1, 0, 0, 0, 126, 1659, 1, 0, 0, 0, 128, 1676, 1, 0, 0, 0, 130, 1703, 1, 0, 0, 0, 132, 1730, 1, 0, 0, 0, 134, 1759, 1, 0, 0, 0, 136, 1775, 1, 0, 0, 0, 138, 1796, 1, 0, 0, 0, 140, 1815, 1, 0, 0, 0, 142, 1834, 1, 0, 0, 0, 144, 1855, 1, 0, 0, 0, 146, 1874, 1, 0, 0, 0, 148, 1893, 1, 0, 0, 0, 150, 1912, 1, 0, 0, 0, 152, 1929, 1, 0, 0, 0, 154, 1972, 1, 0, 0, 0, 156, 1999, 1, 0, 0, 0, 158, 2017, 1, 0, 0, 0, 160, 2041, 1, 0, 0, 0, 162, 2065, 1, 0, 0, 0, 164, 2085, 1, 0, 0, 0, 166, 2105, 1, 0, 0, 0, 168, 2145, 1, 0, 0, 0, 170, 2160, 1, 0, 0, 0, 172, 2175, 1, 0, 0, 0, 174, 2200, 1, 0, 0, 0, 176, 2221, 1, 0, 0, 0, 178, 2241, 1, 0, 0, 0, 180, 2259, 1, 0, 0, 0, 182, 2291, 1, 0, 0, 0, 184, 2337, 1, 0, 0, 0, 186, 2357, 1, 0, 0, 0, 188, 2379, 1, 0, 0, 0, 190, 2397, 1, 0, 0, 0, 192, 2399, 1, 0, 0, 0, 194, 2423, 1, 0, 0, 0, 196, 2445, 1, 0, 0, 0, 198, 2467, 1, 0, 0, 0, 200, 2485, 1, 0, 0, 0, 202, 2504, 1, 0, 0, 0, 204, 2522, 1, 0, 0, 0, 206, 2540, 1, 0, 0, 0, 208, 2567, 1, 0, 0, 0, 210, 2591, 1, 0, 0, 0, 212, 2620, 1, 0, 0, 0, 214, 2638, 1, 0, 0, 0, 216, 2653, 1, 0, 0, 0, 218, 2655, 1, 0, 0, 0, 220, 2672, 1, 0, 0, 0, 222, 2681, 1, 0, 0, 0, 224, 225, 5, 1, 0, 0, 225, 226, 5, 317, 0, 0, 226, 227, 5, 2, 0, 0, 227, 228, 3, 2, 1, 0, 228, 229, 3, 6, 3, 0, 229, 230, 3, 4, 2, 0, 230, 231, 5, 3, 0, 0, 231, 1, 1, 0, 0, 0, 232, 233, 5, 4, 0, 0, 233, 237, 5, 2, 0, 0, 234, 236, 3, 8, 4, 0, 235, 234, 1, 0, 0, 0, 236, 239, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 237, 238, 1, 0, 0, 0, 238, 240, 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 240, 241, 5, 3, 0, 0, 241, 3, 1, 0, 0, 0, 242, 243, 5, 5, 0, 0, 243, 247, 5, 2, 0, 0, 244, 246, 3, 8, 4, 0, 245, 244, 1, 0, 0, 0, 246, 249, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0, 247, 248, 1, 0, 0, 0, 248, 250, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 250, 251, 5, 3, 0, 0, 251, 5, 1, 0, 0, 0, 252, 253, 5, 6, 0, 0, 253, 257, 5, 2, 0, 0, 254, 256, 3, 8, 4, 0, 255, 254, 1, 0, 0, 0, 256, 259, 1, 0, 0, 0, 257, 255, 1, 0, 0, 0, 257, 258, 1, 0, 0, 0, 258, 260, 1, 0, 0, 0, 259, 257, 1, 0, 0, 0, 260, 261, 5, 3, 0, 0, 261, 7, 1, 0, 0, 0, 262, 362, 3, 18, 9, 0, 263, 362, 3, 30, 15, 0, 264, 362, 3, 20, 10, 0, 265, 362, 3, 22, 11, 0, 266, 362, 3, 24, 12, 0, 267, 362, 3, 26, 13, 0, 268, 362, 3, 12, 6, 0, 269, 362, 3, 32, 16, 0, 270, 362, 3, 16, 8, 0, 271, 362, 3, 34, 17, 0, 272, 362, 3, 14, 7, 0, 273, 362, 3, 10, 5, 0, 274, 362, 3, 38, 19, 0, 275, 362, 3, 46, 23, 0, 276, 362, 3, 48, 24, 0, 277, 362, 3, 50, 25, 0, 278, 362, 3, 52, 26, 0, 279, 362, 3, 44, 22, 0, 280, 362, 3, 42, 21, 0, 281, 362, 3, 40, 20, 0, 282, 362, 3, 54, 27, 0, 283, 362, 3, 56, 28, 0, 284, 362, 3, 58, 29, 0, 285, 362, 3, 60, 30, 0, 286, 362, 3, 62, 31, 0, 287, 362, 3, 64, 32, 0, 288, 362, 3, 76, 38, 0, 289, 362, 3, 78, 39, 0, 290, 362, 3, 80, 40, 0, 291, 362, 3, 82, 41, 0, 292, 362, 3, 84, 42, 0, 293, 362, 3, 88, 44, 0, 294, 362, 3, 72, 36, 0, 295, 362, 3, 74, 37, 0, 296, 362, 3, 70, 35, 0, 297, 362, 3, 86, 43, 0, 298, 362, 3, 112, 56, 0, 299, 362, 3, 96, 48, 0, 300, 362, 3, 98, 49, 0, 301, 362, 3, 100, 50, 0, 302, 362, 3, 90, 45, 0, 303, 362, 3, 92, 46, 0, 304, 362, 3, 94, 47, 0, 305, 362, 3, 102, 51, 0, 306, 362, 3, 104, 52, 0, 307, 362, 3, 106, 53, 0, 308, 362, 3, 110, 55, 0, 309, 362, 3, 104, 52, 0, 310, 362, 3, 106, 53, 0, 311, 362, 3, 108, 54, 0, 312, 362, 3, 114, 57, 0, 313, 362, 3, 122, 61, 0, 314, 362, 3, 116, 58, 0, 315, 362, 3, 118, 59, 0, 316, 362, 3, 134, 67, 0, 317, 362, 3, 136, 68, 0, 318, 362, 3, 152, 76, 0, 319, 362, 3, 124, 62, 0, 320, 362, 3, 126, 63, 0, 321, 362, 3, 128, 64, 0, 322, 362, 3, 130, 65, 0, 323, 362, 3, 132, 66, 0, 324, 362, 3, 120, 60, 0, 325, 362, 3, 138, 69, 0, 326, 362, 3, 140, 70, 0, 327, 362, 3, 142, 71, 0, 328, 362, 3, 144, 72, 0, 329, 362, 3, 146, 73, 0, 330, 362, 3, 148, 74, 0, 331, 362, 3, 150, 75, 0, 332, 362, 3, 154, 77, 0, 333, 362, 3, 156, 78, 0, 334, 362, 3, 158, 79, 0, 335, 362, 3, 160, 80, 0, 336, 362, 3, 164, 82, 0, 337, 362, 3, 162, 81, 0, 338, 362, 3, 166, 83, 0, 339, 362, 3, 168, 84, 0, 340, 362, 3, 170, 85, 0, 341, 362, 3, 172, 86, 0, 342, 362, 3, 174, 87, 0, 343, 362, 3, 176, 88, 0, 344, 362, 3, 178, 89, 0, 345, 362, 3, 180, 90, 0, 346, 362, 3, 182, 91, 0, 347, 362, 3, 184, 92, 0, 348, 362, 3, 186, 93, 0, 349, 362, 3, 188, 94, 0, 350, 362, 3, 192, 96, 0, 351, 362, 3, 194, 97, 0, 352, 362, 3, 196, 98, 0, 353, 362, 3, 198, 99, 0, 354, 362, 3, 200, 100, 0, 355, 362, 3, 202, 101, 0, 356, 362, 3, 204, 102, 0, 357, 362, 3, 206, 103, 0, 358, 362, 3, 210, 105, 0, 359, 362, 3, 208, 104, 0, 360, 362, 3, 212, 106, 0, 361, 262, 1, 0, 0, 0, 361, 263, 1, 0, 0, 0, 361, 264, 1, 0, 0, 0, 361, 265, 1, 0, 0, 0, 361, 266, 1, 0, 0, 0, 361, 267, 1, 0, 0, 0, 361, 268, 1, 0, 0, 0, 361, 269, 1, 0, 0, 0, 361, 270, 1, 0, 0, 0, 361, 271, 1, 0, 0, 0, 361, 272, 1, 0, 0, 0, 361, 273, 1, 0, 0, 0, 361, 274, 1, 0, 0, 0, 361, 275, 1, 0, 0, 0, 361, 276, 1, 0, 0, 0, 361, 277, 1, 0, 0, 0, 361, 278, 1, 0, 0, 0, 361, 279, 1, 0, 0, 0, 361, 280, 1, 0, 0, 0, 361, 281, 1, 0, 0, 0, 361, 282, 1, 0, 0, 0, 361, 283, 1, 0, 0, 0, 361, 284, 1, 0, 0, 0, 361, 285, 1, 0, 0, 0, 361, 286, 1, 0, 0, 0, 361, 287, 1, 0, 0, 0, 361, 288, 1, 0, 0, 0, 361, 289, 1, 0, 0, 0, 361, 290, 1, 0, 0, 0, 361, 291, 1, 0, 0, 0, 361, 292, 1, 0, 0, 0, 361, 293, 1, 0, 0, 0, 361, 294, 1, 0, 0, 0, 361, 295, 1, 0, 0, 0, 361, 296, 1, 0, 0, 0, 361, 297, 1, 0, 0, 0, 361, 298, 1, 0, 0, 0, 361, 299, 1, 0, 0, 0, 361, 300, 1, 0, 0, 0, 361, 301, 1, 0, 0, 0, 361, 302, 1, 0, 0, 0, 361, 303, 1, 0, 0, 0, 361, 304, 1, 0, 0, 0, 361, 305, 1, 0, 0, 0, 361, 306, 1, 0, 0, 0, 361, 307, 1, 0, 0, 0, 361, 308, 1, 0, 0, 0, 361, 309, 1, 0, 0, 0, 361, 310, 1, 0, 0, 0, 361, 311, 1, 0, 0, 0, 361, 312, 1, 0, 0, 0, 361, 313, 1, 0, 0, 0, 361, 314, 1, 0, 0, 0, 361, 315, 1, 0, 0, 0, 361, 316, 1, 0, 0, 0, 361, 317, 1, 0, 0, 0, 361, 318, 1, 0, 0, 0, 361, 319, 1, 0, 0, 0, 361, 320, 1, 0, 0, 0, 361, 321, 1, 0, 0, 0, 361, 322, 1, 0, 0, 0, 361, 323, 1, 0, 0, 0, 361, 324, 1, 0, 0, 0, 361, 325, 1, 0, 0, 0, 361, 326, 1, 0, 0, 0, 361, 327, 1, 0, 0, 0, 361, 328, 1, 0, 0, 0, 361, 329, 1, 0, 0, 0, 361, 330, 1, 0, 0, 0, 361, 331, 1, 0, 0, 0, 361, 332, 1, 0, 0, 0, 361, 333, 1, 0, 0, 0, 361, 334, 1, 0, 0, 0, 361, 335, 1, 0, 0, 0, 361, 336, 1, 0, 0, 0, 361, 337, 1, 0, 0, 0, 361, 338, 1, 0, 0, 0, 361, 339, 1, 0, 0, 0, 361, 340, 1, 0, 0, 0, 361, 341, 1, 0, 0, 0, 361, 342, 1, 0, 0, 0, 361, 343, 1, 0, 0, 0, 361, 344, 1, 0, 0, 0, 361, 345, 1, 0, 0, 0, 361, 346, 1, 0, 0, 0, 361, 347, 1, 0, 0, 0, 361, 348, 1, 0, 0, 0, 361, 349, 1, 0, 0, 0, 361, 350, 1, 0, 0, 0, 361, 351, 1, 0, 0, 0, 361, 352, 1, 0, 0, 0, 361, 353, 1, 0, 0, 0, 361, 354, 1, 0, 0, 0, 361, 355, 1, 0, 0, 0, 361, 356, 1, 0, 0, 0, 361, 357, 1, 0, 0, 0, 361, 358, 1, 0, 0, 0, 361, 359, 1, 0, 0, 0, 361, 360, 1, 0, 0, 0, 362, 9, 1, 0, 0, 0, 363, 364, 5, 7, 0, 0, 364, 365, 5, 8, 0, 0, 365, 370, 5, 317, 0, 0, 366, 367, 5, 9, 0, 0, 367, 369, 5, 317, 0, 0, 368, 366, 1, 0, 0, 0, 369, 372, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 370, 371, 1, 0, 0, 0, 371, 373, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 373, 374, 5, 10, 0, 0, 374, 378, 5, 2, 0, 0, 375, 377, 3, 8, 4, 0, 376, 375, 1, 0, 0, 0, 377, 380, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 378, 379, 1, 0, 0, 0, 379, 381, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 381, 386, 5, 3, 0, 0, 382, 383, 5, 11, 0, 0, 383, 385, 3, 66, 33, 0, 384, 382, 1, 0, 0, 0, 385, 388, 1, 0, 0, 0, 386, 384, 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 393, 1, 0, 0, 0, 388, 386, 1, 0, 0, 0, 389, 390, 5, 12, 0, 0, 390, 392, 5, 316, 0, 0, 391, 389, 1, 0, 0, 0, 392, 395, 1, 0, 0, 0, 393, 391, 1, 0, 0, 0, 393, 394, 1, 0, 0, 0, 394, 11, 1, 0, 0, 0, 395, 393, 1, 0, 0, 0, 396, 397, 5, 13, 0, 0, 397, 398, 5, 8, 0, 0, 398, 399, 5, 317, 0, 0, 399, 400, 5, 14, 0, 0, 400, 401, 5, 317, 0, 0, 401, 402, 5, 15, 0, 0, 402, 403, 5, 317, 0, 0, 403, 404, 5, 10, 0, 0, 404, 405, 5, 2, 0, 0, 405, 406, 5, 317, 0, 0, 406, 411, 5, 3, 0, 0, 407, 408, 5, 11, 0, 0, 408, 410, 3, 66, 33, 0, 409, 407, 1, 0, 0, 0, 410, 413, 1, 0, 0, 0, 411, 409, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 418, 1, 0, 0, 0, 413, 411, 1, 0, 0, 0, 414, 415, 5, 12, 0, 0, 415, 417, 5, 316, 0, 0, 416, 414, 1, 0, 0, 0, 417, 420, 1, 0, 0, 0, 418, 416, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 425, 1, 0, 0, 0, 420, 418, 1, 0, 0, 0, 421, 422, 5, 16, 0, 0, 422, 424, 5, 316, 0, 0, 423, 421, 1, 0, 0, 0, 424, 427, 1, 0, 0, 0, 425, 423, 1, 0, 0, 0, 425, 426, 1, 0, 0, 0, 426, 432, 1, 0, 0, 0, 427, 425, 1, 0, 0, 0, 428, 429, 5, 17, 0, 0, 429, 431, 5, 316, 0, 0, 430, 428, 1, 0, 0, 0, 431, 434, 1, 0, 0, 0, 432, 430, 1, 0, 0, 0, 432, 433, 1, 0, 0, 0, 433, 13, 1, 0, 0, 0, 434, 432, 1, 0, 0, 0, 435, 436, 5, 18, 0, 0, 436, 437, 5, 8, 0, 0, 437, 438, 5, 317, 0, 0, 438, 439, 5, 9, 0, 0, 439, 440, 5, 317, 0, 0, 440, 441, 5, 10, 0, 0, 441, 442, 5, 2, 0, 0, 442, 443, 5, 317, 0, 0, 443, 448, 5, 3, 0, 0, 444, 445, 5, 11, 0, 0, 445, 447, 3, 66, 33, 0, 446, 444, 1, 0, 0, 0, 447, 450, 1, 0, 0, 0, 448, 446, 1, 0, 0, 0, 448, 449, 1, 0, 0, 0, 449, 455, 1, 0, 0, 0, 450, 448, 1, 0, 0, 0, 451, 452, 5, 19, 0, 0, 452, 454, 3, 66, 33, 0, 453, 451, 1, 0, 0, 0, 454, 457, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 15, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 458, 459, 5, 20, 0, 0, 459, 460, 5, 8, 0, 0, 460, 461, 5, 317, 0, 0, 461, 462, 5, 21, 0, 0, 462, 463, 5, 317, 0, 0, 463, 464, 5, 14, 0, 0, 464, 465, 5, 317, 0, 0, 465, 466, 5, 15, 0, 0, 466, 467, 5, 317, 0, 0, 467, 468, 5, 22, 0, 0, 468, 469, 5, 317, 0, 0, 469, 470, 5, 23, 0, 0, 470, 471, 5, 317, 0, 0, 471, 472, 5, 10, 0, 0, 472, 473, 5, 2, 0, 0, 473, 474, 5, 317, 0, 0, 474, 479, 5, 3, 0, 0, 475, 476, 5, 11, 0, 0, 476, 478, 3, 66, 33, 0, 477, 475, 1, 0, 0, 0, 478, 481, 1, 0, 0, 0, 479, 477, 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 17, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 482, 483, 5, 24, 0, 0, 483, 484, 5, 8, 0, 0, 484, 485, 5, 317, 0, 0, 485, 486, 5, 2, 0, 0, 486, 487, 5, 317, 0, 0, 487, 492, 5, 3, 0, 0, 488, 489, 5, 11, 0, 0, 489, 491, 3, 66, 33, 0, 490, 488, 1, 0, 0, 0, 491, 494, 1, 0, 0, 0, 492, 490, 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 19, 1, 0, 0, 0, 494, 492, 1, 0, 0, 0, 495, 496, 5, 25, 0, 0, 496, 497, 5, 8, 0, 0, 497, 498, 5, 317, 0, 0, 498, 499, 5, 26, 0, 0, 499, 500, 5, 317, 0, 0, 500, 501, 5, 27, 0, 0, 501, 502, 5, 317, 0, 0, 502, 503, 5, 10, 0, 0, 503, 504, 5, 317, 0, 0, 504, 505, 5, 28, 0, 0, 505, 506, 5, 2, 0, 0, 506, 507, 5, 317, 0, 0, 507, 512, 5, 3, 0, 0, 508, 509, 5, 11, 0, 0, 509, 511, 3, 66, 33, 0, 510, 508, 1, 0, 0, 0, 511, 514, 1, 0, 0, 0, 512, 510, 1, 0, 0, 0, 512, 513, 1, 0, 0, 0, 513, 519, 1, 0, 0, 0, 514, 512, 1, 0, 0, 0, 515, 516, 5, 29, 0, 0, 516, 518, 5, 317, 0, 0, 517, 515, 1, 0, 0, 0, 518, 521, 1, 0, 0, 0, 519, 517, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 21, 1, 0, 0, 0, 521, 519, 1, 0, 0, 0, 522, 523, 5, 30, 0, 0, 523, 524, 5, 8, 0, 0, 524, 525, 5, 317, 0, 0, 525, 526, 5, 26, 0, 0, 526, 527, 5, 317, 0, 0, 527, 528, 5, 27, 0, 0, 528, 529, 5, 317, 0, 0, 529, 530, 5, 10, 0, 0, 530, 531, 5, 317, 0, 0, 531, 532, 5, 28, 0, 0, 532, 533, 5, 2, 0, 0, 533, 534, 5, 317, 0, 0, 534, 539, 5, 3, 0, 0, 535, 536, 5, 31, 0, 0, 536, 538, 5, 317, 0, 0, 537, 535, 1, 0, 0, 0, 538, 541, 1, 0, 0, 0, 539, 537, 1, 0, 0, 0, 539, 540, 1, 0, 0, 0, 540, 546, 1, 0, 0, 0, 541, 539, 1, 0, 0, 0, 542, 543, 5, 11, 0, 0, 543, 545, 3, 66, 33, 0, 544, 542, 1, 0, 0, 0, 545, 548, 1, 0, 0, 0, 546, 544, 1, 0, 0, 0, 546, 547, 1, 0, 0, 0, 547, 23, 1, 0, 0, 0, 548, 546, 1, 0, 0, 0, 549, 550, 5, 32, 0, 0, 550, 551, 5, 8, 0, 0, 551, 552, 5, 317, 0, 0, 552, 553, 5, 26, 0, 0, 553, 554, 5, 317, 0, 0, 554, 555, 5, 27, 0, 0, 555, 560, 5, 317, 0, 0, 556, 557, 5, 11, 0, 0, 557, 559, 3, 66, 33, 0, 558, 556, 1, 0, 0, 0, 559, 562, 1, 0, 0, 0, 560, 558, 1, 0, 0, 0, 560, 561, 1, 0, 0, 0, 561, 25, 1, 0, 0, 0, 562, 560, 1, 0, 0, 0, 563, 564, 5, 33, 0, 0, 564, 565, 5, 8, 0, 0, 565, 566, 5, 317, 0, 0, 566, 567, 5, 34, 0, 0, 567, 568, 5, 317, 0, 0, 568, 569, 5, 10, 0, 0, 569, 570, 5, 2, 0, 0, 570, 571, 3, 28, 14, 0, 571, 576, 5, 3, 0, 0, 572, 573, 5, 11, 0, 0, 573, 575, 3, 66, 33, 0, 574, 572, 1, 0, 0, 0, 575, 578, 1, 0, 0, 0, 576, 574, 1, 0, 0, 0, 576, 577, 1, 0, 0, 0, 577, 27, 1, 0, 0, 0, 578, 576, 1, 0, 0, 0, 579, 580, 5, 35, 0, 0, 580, 581, 5, 317, 0, 0, 581, 582, 5, 36, 0, 0, 582, 583, 5, 317, 0, 0, 583, 29, 1, 0, 0, 0, 584, 585, 5, 37, 0, 0, 585, 586, 5, 8, 0, 0, 586, 587, 5, 317, 0, 0, 587, 588, 5, 38, 0, 0, 588, 589, 5, 317, 0, 0, 589, 590, 5, 10, 0, 0, 590, 591, 5, 2, 0, 0, 591, 592, 5, 317, 0, 0, 592, 597, 5, 3, 0, 0, 593, 594, 5, 11, 0, 0, 594, 596, 3, 66, 33, 0, 595, 593, 1, 0, 0, 0, 596, 599, 1, 0, 0, 0, 597, 595, 1, 0, 0, 0, 597, 598, 1, 0, 0, 0, 598, 31, 1, 0, 0, 0, 599, 597, 1, 0, 0, 0, 600, 601, 5, 39, 0, 0, 601, 602, 5, 8, 0, 0, 602, 603, 5, 317, 0, 0, 603, 604, 5, 40, 0, 0, 604, 609, 5, 317, 0, 0, 605, 606, 5, 11, 0, 0, 606, 608, 3, 66, 33, 0, 607, 605, 1, 0, 0, 0, 608, 611, 1, 0, 0, 0, 609, 607, 1, 0, 0, 0, 609, 610, 1, 0, 0, 0, 610, 33, 1, 0, 0, 0, 611, 609, 1, 0, 0, 0, 612, 613, 5, 41, 0, 0, 613, 614, 5, 8, 0, 0, 614, 615, 5, 317, 0, 0, 615, 616, 5, 38, 0, 0, 616, 617, 5, 317, 0, 0, 617, 618, 5, 10, 0, 0, 618, 619, 5, 42, 0, 0, 619, 620, 5, 317, 0, 0, 620, 621, 5, 43, 0, 0, 621, 626, 5, 317, 0, 0, 622, 623, 5, 44, 0, 0, 623, 625, 3, 214, 107, 0, 624, 622, 1, 0, 0, 0, 625, 628, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 633, 1, 0, 0, 0, 628, 626, 1, 0, 0, 0, 629, 630, 5, 45, 0, 0, 630, 632, 3, 214, 107, 0, 631, 629, 1, 0, 0, 0, 632, 635, 1, 0, 0, 0, 633, 631, 1, 0, 0, 0, 633, 634, 1, 0, 0, 0, 634, 636, 1, 0, 0, 0, 635, 633, 1, 0, 0, 0, 636, 637, 5, 46, 0, 0, 637, 638, 5, 2, 0, 0, 638, 639, 5, 317, 0, 0, 639, 640, 5, 3, 0, 0, 640, 641, 1, 0, 0, 0, 641, 645, 5, 2, 0, 0, 642, 644, 3, 36, 18, 0, 643, 642, 1, 0, 0, 0, 644, 647, 1, 0, 0, 0, 645, 643, 1, 0, 0, 0, 645, 646, 1, 0, 0, 0, 646, 648, 1, 0, 0, 0, 647, 645, 1, 0, 0, 0, 648, 653, 5, 3, 0, 0, 649, 650, 5, 11, 0, 0, 650, 652, 3, 66, 33, 0, 651, 649, 1, 0, 0, 0, 652, 655, 1, 0, 0, 0, 653, 651, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 35, 1, 0, 0, 0, 655, 653, 1, 0, 0, 0, 656, 657, 5, 47, 0, 0, 657, 658, 5, 8, 0, 0, 658, 659, 5, 317, 0, 0, 659, 660, 5, 22, 0, 0, 660, 665, 5, 317, 0, 0, 661, 662, 5, 48, 0, 0, 662, 664, 5, 317, 0, 0, 663, 661, 1, 0, 0, 0, 664, 667, 1, 0, 0, 0, 665, 663, 1, 0, 0, 0, 665, 666, 1, 0, 0, 0, 666, 668, 1, 0, 0, 0, 667, 665, 1, 0, 0, 0, 668, 669, 5, 3, 0, 0, 669, 37, 1, 0, 0, 0, 670, 671, 5, 49, 0, 0, 671, 672, 5, 8, 0, 0, 672, 673, 5, 317, 0, 0, 673, 674, 5, 38, 0, 0, 674, 675, 5, 317, 0, 0, 675, 676, 5, 50, 0, 0, 676, 681, 5, 317, 0, 0, 677, 678, 5, 10, 0, 0, 678, 680, 5, 317, 0, 0, 679, 677, 1, 0, 0, 0, 680, 683, 1, 0, 0, 0, 681, 679, 1, 0, 0, 0, 681, 682, 1, 0, 0, 0, 682, 684, 1, 0, 0, 0, 683, 681, 1, 0, 0, 0, 684, 685, 5, 51, 0, 0, 685, 686, 5, 317, 0, 0, 686, 687, 5, 10, 0, 0, 687, 688, 5, 2, 0, 0, 688, 693, 5, 3, 0, 0, 689, 690, 5, 11, 0, 0, 690, 692, 3, 66, 33, 0, 691, 689, 1, 0, 0, 0, 692, 695, 1, 0, 0, 0, 693, 691, 1, 0, 0, 0, 693, 694, 1, 0, 0, 0, 694, 700, 1, 0, 0, 0, 695, 693, 1, 0, 0, 0, 696, 697, 5, 12, 0, 0, 697, 699, 5, 317, 0, 0, 698, 696, 1, 0, 0, 0, 699, 702, 1, 0, 0, 0, 700, 698, 1, 0, 0, 0, 700, 701, 1, 0, 0, 0, 701, 39, 1, 0, 0, 0, 702, 700, 1, 0, 0, 0, 703, 704, 5, 52, 0, 0, 704, 705, 5, 8, 0, 0, 705, 706, 5, 317, 0, 0, 706, 707, 5, 53, 0, 0, 707, 708, 3, 190, 95, 0, 708, 709, 5, 9, 0, 0, 709, 710, 5, 317, 0, 0, 710, 711, 5, 10, 0, 0, 711, 712, 5, 2, 0, 0, 712, 713, 5, 317, 0, 0, 713, 718, 5, 3, 0, 0, 714, 715, 5, 11, 0, 0, 715, 717, 3, 66, 33, 0, 716, 714, 1, 0, 0, 0, 717, 720, 1, 0, 0, 0, 718, 716, 1, 0, 0, 0, 718, 719, 1, 0, 0, 0, 719, 725, 1, 0, 0, 0, 720, 718, 1, 0, 0, 0, 721, 722, 5, 12, 0, 0, 722, 724, 5, 317, 0, 0, 723, 721, 1, 0, 0, 0, 724, 727, 1, 0, 0, 0, 725, 723, 1, 0, 0, 0, 725, 726, 1, 0, 0, 0, 726, 732, 1, 0, 0, 0, 727, 725, 1, 0, 0, 0, 728, 729, 5, 54, 0, 0, 729, 731, 5, 317, 0, 0, 730, 728, 1, 0, 0, 0, 731, 734, 1, 0, 0, 0, 732, 730, 1, 0, 0, 0, 732, 733, 1, 0, 0, 0, 733, 41, 1, 0, 0, 0, 734, 732, 1, 0, 0, 0, 735, 736, 5, 55, 0, 0, 736, 737, 5, 8, 0, 0, 737, 738, 5, 317, 0, 0, 738, 739, 5, 14, 0, 0, 739, 740, 5, 317, 0, 0, 740, 741, 5, 56, 0, 0, 741, 742, 5, 317, 0, 0, 742, 743, 5, 10, 0, 0, 743, 744, 5, 2, 0, 0, 744, 749, 5, 3, 0, 0, 745, 746, 5, 11, 0, 0, 746, 748, 3, 66, 33, 0, 747, 745, 1, 0, 0, 0, 748, 751, 1, 0, 0, 0, 749, 747, 1, 0, 0, 0, 749, 750, 1, 0, 0, 0, 750, 43, 1, 0, 0, 0, 751, 749, 1, 0, 0, 0, 752, 753, 5, 57, 0, 0, 753, 754, 5, 8, 0, 0, 754, 755, 5, 317, 0, 0, 755, 756, 5, 14, 0, 0, 756, 757, 5, 317, 0, 0, 757, 758, 5, 56, 0, 0, 758, 759, 5, 317, 0, 0, 759, 760, 5, 58, 0, 0, 760, 761, 5, 317, 0, 0, 761, 762, 5, 10, 0, 0, 762, 763, 5, 2, 0, 0, 763, 768, 5, 3, 0, 0, 764, 765, 5, 11, 0, 0, 765, 767, 3, 66, 33, 0, 766, 764, 1, 0, 0, 0, 767, 770, 1, 0, 0, 0, 768, 766, 1, 0, 0, 0, 768, 769, 1, 0, 0, 0, 769, 45, 1, 0, 0, 0, 770, 768, 1, 0, 0, 0, 771, 772, 5, 59, 0, 0, 772, 773, 5, 8, 0, 0, 773, 774, 5, 317, 0, 0, 774, 775, 5, 10, 0, 0, 775, 776, 5, 2, 0, 0, 776, 777, 5, 317, 0, 0, 777, 782, 5, 3, 0, 0, 778, 779, 5, 11, 0, 0, 779, 781, 3, 66, 33, 0, 780, 778, 1, 0, 0, 0, 781, 784, 1, 0, 0, 0, 782, 780, 1, 0, 0, 0, 782, 783, 1, 0, 0, 0, 783, 47, 1, 0, 0, 0, 784, 782, 1, 0, 0, 0, 785, 786, 5, 60, 0, 0, 786, 787, 5, 8, 0, 0, 787, 788, 5, 317, 0, 0, 788, 789, 5, 61, 0, 0, 789, 790, 5, 317, 0, 0, 790, 791, 5, 62, 0, 0, 791, 792, 5, 317, 0, 0, 792, 793, 5, 58, 0, 0, 793, 794, 5, 317, 0, 0, 794, 795, 5, 10, 0, 0, 795, 796, 5, 2, 0, 0, 796, 797, 5, 317, 0, 0, 797, 802, 5, 3, 0, 0, 798, 799, 5, 11, 0, 0, 799, 801, 3, 66, 33, 0, 800, 798, 1, 0, 0, 0, 801, 804, 1, 0, 0, 0, 802, 800, 1, 0, 0, 0, 802, 803, 1, 0, 0, 0, 803, 49, 1, 0, 0, 0, 804, 802, 1, 0, 0, 0, 805, 806, 5, 63, 0, 0, 806, 807, 5, 8, 0, 0, 807, 808, 5, 317, 0, 0, 808, 809, 5, 10, 0, 0, 809, 810, 5, 2, 0, 0, 810, 811, 5, 317, 0, 0, 811, 816, 5, 3, 0, 0, 812, 813, 5, 11, 0, 0, 813, 815, 3, 66, 33, 0, 814, 812, 1, 0, 0, 0, 815, 818, 1, 0, 0, 0, 816, 814, 1, 0, 0, 0, 816, 817, 1, 0, 0, 0, 817, 51, 1, 0, 0, 0, 818, 816, 1, 0, 0, 0, 819, 820, 5, 64, 0, 0, 820, 821, 5, 8, 0, 0, 821, 822, 5, 317, 0, 0, 822, 823, 5, 14, 0, 0, 823, 824, 5, 317, 0, 0, 824, 825, 5, 15, 0, 0, 825, 826, 5, 317, 0, 0, 826, 827, 5, 65, 0, 0, 827, 828, 5, 317, 0, 0, 828, 829, 5, 10, 0, 0, 829, 830, 5, 2, 0, 0, 830, 835, 5, 3, 0, 0, 831, 832, 5, 11, 0, 0, 832, 834, 3, 66, 33, 0, 833, 831, 1, 0, 0, 0, 834, 837, 1, 0, 0, 0, 835, 833, 1, 0, 0, 0, 835, 836, 1, 0, 0, 0, 836, 53, 1, 0, 0, 0, 837, 835, 1, 0, 0, 0, 838, 839, 5, 66, 0, 0, 839, 840, 5, 8, 0, 0, 840, 841, 5, 317, 0, 0, 841, 842, 5, 67, 0, 0, 842, 843, 3, 190, 95, 0, 843, 844, 5, 68, 0, 0, 844, 845, 5, 2, 0, 0, 845, 846, 3, 56, 28, 0, 846, 851, 5, 3, 0, 0, 847, 848, 5, 12, 0, 0, 848, 850, 5, 317, 0, 0, 849, 847, 1, 0, 0, 0, 850, 853, 1, 0, 0, 0, 851, 849, 1, 0, 0, 0, 851, 852, 1, 0, 0, 0, 852, 854, 1, 0, 0, 0, 853, 851, 1, 0, 0, 0, 854, 855, 5, 69, 0, 0, 855, 856, 5, 2, 0, 0, 856, 857, 3, 58, 29, 0, 857, 862, 5, 3, 0, 0, 858, 859, 5, 12, 0, 0, 859, 861, 5, 317, 0, 0, 860, 858, 1, 0, 0, 0, 861, 864, 1, 0, 0, 0, 862, 860, 1, 0, 0, 0, 862, 863, 1, 0, 0, 0, 863, 869, 1, 0, 0, 0, 864, 862, 1, 0, 0, 0, 865, 866, 5, 11, 0, 0, 866, 868, 3, 66, 33, 0, 867, 865, 1, 0, 0, 0, 868, 871, 1, 0, 0, 0, 869, 867, 1, 0, 0, 0, 869, 870, 1, 0, 0, 0, 870, 55, 1, 0, 0, 0, 871, 869, 1, 0, 0, 0, 872, 873, 5, 70, 0, 0, 873, 874, 5, 8, 0, 0, 874, 879, 5, 317, 0, 0, 875, 876, 5, 71, 0, 0, 876, 878, 5, 317, 0, 0, 877, 875, 1, 0, 0, 0, 878, 881, 1, 0, 0, 0, 879, 877, 1, 0, 0, 0, 879, 880, 1, 0, 0, 0, 880, 886, 1, 0, 0, 0, 881, 879, 1, 0, 0, 0, 882, 883, 5, 67, 0, 0, 883, 885, 3, 190, 95, 0, 884, 882, 1, 0, 0, 0, 885, 888, 1, 0, 0, 0, 886, 884, 1, 0, 0, 0, 886, 887, 1, 0, 0, 0, 887, 889, 1, 0, 0, 0, 888, 886, 1, 0, 0, 0, 889, 890, 5, 28, 0, 0, 890, 891, 5, 2, 0, 0, 891, 892, 5, 317, 0, 0, 892, 893, 5, 3, 0, 0, 893, 894, 5, 72, 0, 0, 894, 898, 5, 2, 0, 0, 895, 897, 3, 8, 4, 0, 896, 895, 1, 0, 0, 0, 897, 900, 1, 0, 0, 0, 898, 896, 1, 0, 0, 0, 898, 899, 1, 0, 0, 0, 899, 901, 1, 0, 0, 0, 900, 898, 1, 0, 0, 0, 901, 906, 5, 3, 0, 0, 902, 903, 5, 11, 0, 0, 903, 905, 3, 66, 33, 0, 904, 902, 1, 0, 0, 0, 905, 908, 1, 0, 0, 0, 906, 904, 1, 0, 0, 0, 906, 907, 1, 0, 0, 0, 907, 913, 1, 0, 0, 0, 908, 906, 1, 0, 0, 0, 909, 910, 5, 12, 0, 0, 910, 912, 5, 317, 0, 0, 911, 909, 1, 0, 0, 0, 912, 915, 1, 0, 0, 0, 913, 911, 1, 0, 0, 0, 913, 914, 1, 0, 0, 0, 914, 57, 1, 0, 0, 0, 915, 913, 1, 0, 0, 0, 916, 917, 5, 73, 0, 0, 917, 918, 5, 8, 0, 0, 918, 925, 5, 317, 0, 0, 919, 920, 5, 74, 0, 0, 920, 921, 5, 317, 0, 0, 921, 922, 5, 67, 0, 0, 922, 924, 3, 190, 95, 0, 923, 919, 1, 0, 0, 0, 924, 927, 1, 0, 0, 0, 925, 923, 1, 0, 0, 0, 925, 926, 1, 0, 0, 0, 926, 934, 1, 0, 0, 0, 927, 925, 1, 0, 0, 0, 928, 929, 5, 75, 0, 0, 929, 930, 5, 317, 0, 0, 930, 931, 5, 76, 0, 0, 931, 933, 5, 317, 0, 0, 932, 928, 1, 0, 0, 0, 933, 936, 1, 0, 0, 0, 934, 932, 1, 0, 0, 0, 934, 935, 1, 0, 0, 0, 935, 937, 1, 0, 0, 0, 936, 934, 1, 0, 0, 0, 937, 938, 5, 72, 0, 0, 938, 942, 5, 2, 0, 0, 939, 941, 3, 8, 4, 0, 940, 939, 1, 0, 0, 0, 941, 944, 1, 0, 0, 0, 942, 940, 1, 0, 0, 0, 942, 943, 1, 0, 0, 0, 943, 945, 1, 0, 0, 0, 944, 942, 1, 0, 0, 0, 945, 950, 5, 3, 0, 0, 946, 947, 5, 11, 0, 0, 947, 949, 3, 66, 33, 0, 948, 946, 1, 0, 0, 0, 949, 952, 1, 0, 0, 0, 950, 948, 1, 0, 0, 0, 950, 951, 1, 0, 0, 0, 951, 957, 1, 0, 0, 0, 952, 950, 1, 0, 0, 0, 953, 954, 5, 12, 0, 0, 954, 956, 5, 317, 0, 0, 955, 953, 1, 0, 0, 0, 956, 959, 1, 0, 0, 0, 957, 955, 1, 0, 0, 0, 957, 958, 1, 0, 0, 0, 958, 964, 1, 0, 0, 0, 959, 957, 1, 0, 0, 0, 960, 961, 5, 77, 0, 0, 961, 963, 3, 66, 33, 0, 962, 960, 1, 0, 0, 0, 963, 966, 1, 0, 0, 0, 964, 962, 1, 0, 0, 0, 964, 965, 1, 0, 0, 0, 965, 59, 1, 0, 0, 0, 966, 964, 1, 0, 0, 0, 967, 968, 5, 78, 0, 0, 968, 969, 5, 8, 0, 0, 969, 970, 5, 317, 0, 0, 970, 971, 5, 79, 0, 0, 971, 972, 5, 317, 0, 0, 972, 973, 5, 80, 0, 0, 973, 974, 5, 2, 0, 0, 974, 975, 3, 214, 107, 0, 975, 980, 5, 3, 0, 0, 976, 977, 5, 11, 0, 0, 977, 979, 3, 66, 33, 0, 978, 976, 1, 0, 0, 0, 979, 982, 1, 0, 0, 0, 980, 978, 1, 0, 0, 0, 980, 981, 1, 0, 0, 0, 981, 61, 1, 0, 0, 0, 982, 980, 1, 0, 0, 0, 983, 984, 5, 81, 0, 0, 984, 985, 5, 8, 0, 0, 985, 986, 5, 317, 0, 0, 986, 987, 5, 10, 0, 0, 987, 988, 5, 2, 0, 0, 988, 989, 5, 317, 0, 0, 989, 994, 5, 3, 0, 0, 990, 991, 5, 11, 0, 0, 991, 993, 3, 66, 33, 0, 992, 990, 1, 0, 0, 0, 993, 996, 1, 0, 0, 0, 994, 992, 1, 0, 0, 0, 994, 995, 1, 0, 0, 0, 995, 63, 1, 0, 0, 0, 996, 994, 1, 0, 0, 0, 997, 998, 5, 82, 0, 0, 998, 999, 5, 8, 0, 0, 999, 1000, 5, 317, 0, 0, 1000, 1001, 5, 83, 0, 0, 1001, 1002, 5, 317, 0, 0, 1002, 1003, 5, 84, 0, 0, 1003, 1004, 5, 317, 0, 0, 1004, 1005, 5, 85, 0, 0, 1005, 1006, 5, 317, 0, 0, 1006, 1007, 5, 86, 0, 0, 1007, 1008, 5, 317, 0, 0, 1008, 1009, 5, 87, 0, 0, 1009, 1010, 5, 317, 0, 0, 1010, 1011, 5, 88, 0, 0, 1011, 1012, 5, 317, 0, 0, 1012, 1013, 5, 89, 0, 0, 1013, 1014, 5, 317, 0, 0, 1014, 1015, 5, 90, 0, 0, 1015, 1016, 5, 317, 0, 0, 1016, 1017, 5, 91, 0, 0, 1017, 1018, 5, 317, 0, 0, 1018, 1019, 5, 10, 0, 0, 1019, 1020, 5, 2, 0, 0, 1020, 1021, 5, 317, 0, 0, 1021, 1026, 5, 3, 0, 0, 1022, 1023, 5, 11, 0, 0, 1023, 1025, 3, 66, 33, 0, 1024, 1022, 1, 0, 0, 0, 1025, 1028, 1, 0, 0, 0, 1026, 1024, 1, 0, 0, 0, 1026, 1027, 1, 0, 0, 0, 1027, 65, 1, 0, 0, 0, 1028, 1026, 1, 0, 0, 0, 1029, 1030, 5, 92, 0, 0, 1030, 1031, 5, 317, 0, 0, 1031, 1032, 5, 319, 0, 0, 1032, 1033, 5, 317, 0, 0, 1033, 67, 1, 0, 0, 0, 1034, 1035, 5, 93, 0, 0, 1035, 1036, 5, 8, 0, 0, 1036, 1037, 5, 94, 0, 0, 1037, 1038, 5, 317, 0, 0, 1038, 1039, 5, 22, 0, 0, 1039, 1040, 5, 95, 0, 0, 1040, 1041, 5, 2, 0, 0, 1041, 1042, 5, 317, 0, 0, 1042, 1043, 5, 3, 0, 0, 1043, 69, 1, 0, 0, 0, 1044, 1045, 5, 96, 0, 0, 1045, 1046, 5, 8, 0, 0, 1046, 1047, 5, 317, 0, 0, 1047, 1048, 5, 10, 0, 0, 1048, 1049, 5, 2, 0, 0, 1049, 1050, 5, 317, 0, 0, 1050, 1055, 5, 3, 0, 0, 1051, 1052, 5, 11, 0, 0, 1052, 1054, 3, 66, 33, 0, 1053, 1051, 1, 0, 0, 0, 1054, 1057, 1, 0, 0, 0, 1055, 1053, 1, 0, 0, 0, 1055, 1056, 1, 0, 0, 0, 1056, 71, 1, 0, 0, 0, 1057, 1055, 1, 0, 0, 0, 1058, 1059, 5, 97, 0, 0, 1059, 1060, 5, 8, 0, 0, 1060, 1061, 5, 317, 0, 0, 1061, 1062, 5, 10, 0, 0, 1062, 1063, 5, 2, 0, 0, 1063, 1064, 5, 317, 0, 0, 1064, 1069, 5, 3, 0, 0, 1065, 1066, 5, 11, 0, 0, 1066, 1068, 3, 66, 33, 0, 1067, 1065, 1, 0, 0, 0, 1068, 1071, 1, 0, 0, 0, 1069, 1067, 1, 0, 0, 0, 1069, 1070, 1, 0, 0, 0, 1070, 73, 1, 0, 0, 0, 1071, 1069, 1, 0, 0, 0, 1072, 1073, 5, 98, 0, 0, 1073, 1074, 5, 8, 0, 0, 1074, 1075, 5, 317, 0, 0, 1075, 1076, 5, 10, 0, 0, 1076, 1077, 5, 2, 0, 0, 1077, 1078, 5, 317, 0, 0, 1078, 1083, 5, 3, 0, 0, 1079, 1080, 5, 11, 0, 0, 1080, 1082, 3, 66, 33, 0, 1081, 1079, 1, 0, 0, 0, 1082, 1085, 1, 0, 0, 0, 1083, 1081, 1, 0, 0, 0, 1083, 1084, 1, 0, 0, 0, 1084, 75, 1, 0, 0, 0, 1085, 1083, 1, 0, 0, 0, 1086, 1087, 5, 99, 0, 0, 1087, 1088, 5, 8, 0, 0, 1088, 1089, 5, 317, 0, 0, 1089, 1090, 5, 100, 0, 0, 1090, 1091, 5, 317, 0, 0, 1091, 1092, 5, 101, 0, 0, 1092, 1093, 5, 317, 0, 0, 1093, 1094, 5, 10, 0, 0, 1094, 1095, 5, 2, 0, 0, 1095, 1100, 5, 3, 0, 0, 1096, 1097, 5, 11, 0, 0, 1097, 1099, 3, 66, 33, 0, 1098, 1096, 1, 0, 0, 0, 1099, 1102, 1, 0, 0, 0, 1100, 1098, 1, 0, 0, 0, 1100, 1101, 1, 0, 0, 0, 1101, 77, 1, 0, 0, 0, 1102, 1100, 1, 0, 0, 0, 1103, 1104, 5, 102, 0, 0, 1104, 1105, 5, 8, 0, 0, 1105, 1106, 5, 317, 0, 0, 1106, 1107, 5, 103, 0, 0, 1107, 1108, 5, 317, 0, 0, 1108, 1109, 5, 10, 0, 0, 1109, 1110, 5, 317, 0, 0, 1110, 1111, 5, 10, 0, 0, 1111, 1112, 5, 2, 0, 0, 1112, 1117, 5, 3, 0, 0, 1113, 1114, 5, 11, 0, 0, 1114, 1116, 3, 66, 33, 0, 1115, 1113, 1, 0, 0, 0, 1116, 1119, 1, 0, 0, 0, 1117, 1115, 1, 0, 0, 0, 1117, 1118, 1, 0, 0, 0, 1118, 79, 1, 0, 0, 0, 1119, 1117, 1, 0, 0, 0, 1120, 1121, 5, 104, 0, 0, 1121, 1122, 5, 8, 0, 0, 1122, 1123, 5, 317, 0, 0, 1123, 1124, 5, 105, 0, 0, 1124, 1125, 5, 317, 0, 0, 1125, 1126, 5, 106, 0, 0, 1126, 1127, 5, 317, 0, 0, 1127, 1128, 5, 107, 0, 0, 1128, 1129, 5, 317, 0, 0, 1129, 1130, 5, 10, 0, 0, 1130, 1131, 5, 2, 0, 0, 1131, 1132, 5, 317, 0, 0, 1132, 1137, 5, 3, 0, 0, 1133, 1134, 5, 11, 0, 0, 1134, 1136, 3, 66, 33, 0, 1135, 1133, 1, 0, 0, 0, 1136, 1139, 1, 0, 0, 0, 1137, 1135, 1, 0, 0, 0, 1137, 1138, 1, 0, 0, 0, 1138, 81, 1, 0, 0, 0, 1139, 1137, 1, 0, 0, 0, 1140, 1141, 5, 108, 0, 0, 1141, 1142, 5, 8, 0, 0, 1142, 1143, 5, 317, 0, 0, 1143, 1144, 5, 105, 0, 0, 1144, 1145, 5, 317, 0, 0, 1145, 1146, 5, 106, 0, 0, 1146, 1147, 5, 317, 0, 0, 1147, 1148, 5, 107, 0, 0, 1148, 1149, 5, 317, 0, 0, 1149, 1150, 5, 10, 0, 0, 1150, 1151, 5, 2, 0, 0, 1151, 1152, 5, 317, 0, 0, 1152, 1157, 5, 3, 0, 0, 1153, 1154, 5, 11, 0, 0, 1154, 1156, 3, 66, 33, 0, 1155, 1153, 1, 0, 0, 0, 1156, 1159, 1, 0, 0, 0, 1157, 1155, 1, 0, 0, 0, 1157, 1158, 1, 0, 0, 0, 1158, 83, 1, 0, 0, 0, 1159, 1157, 1, 0, 0, 0, 1160, 1161, 5, 109, 0, 0, 1161, 1162, 5, 8, 0, 0, 1162, 1163, 5, 317, 0, 0, 1163, 1164, 5, 10, 0, 0, 1164, 1165, 5, 2, 0, 0, 1165, 1166, 5, 317, 0, 0, 1166, 1171, 5, 3, 0, 0, 1167, 1168, 5, 11, 0, 0, 1168, 1170, 3, 66, 33, 0, 1169, 1167, 1, 0, 0, 0, 1170, 1173, 1, 0, 0, 0, 1171, 1169, 1, 0, 0, 0, 1171, 1172, 1, 0, 0, 0, 1172, 85, 1, 0, 0, 0, 1173, 1171, 1, 0, 0, 0, 1174, 1175, 5, 110, 0, 0, 1175, 1176, 5, 8, 0, 0, 1176, 1177, 5, 317, 0, 0, 1177, 1178, 5, 103, 0, 0, 1178, 1179, 5, 317, 0, 0, 1179, 1180, 5, 111, 0, 0, 1180, 1181, 5, 317, 0, 0, 1181, 1182, 5, 112, 0, 0, 1182, 1183, 5, 317, 0, 0, 1183, 1184, 5, 10, 0, 0, 1184, 1185, 5, 2, 0, 0, 1185, 1190, 5, 3, 0, 0, 1186, 1187, 5, 11, 0, 0, 1187, 1189, 3, 66, 33, 0, 1188, 1186, 1, 0, 0, 0, 1189, 1192, 1, 0, 0, 0, 1190, 1188, 1, 0, 0, 0, 1190, 1191, 1, 0, 0, 0, 1191, 87, 1, 0, 0, 0, 1192, 1190, 1, 0, 0, 0, 1193, 1194, 5, 113, 0, 0, 1194, 1195, 5, 8, 0, 0, 1195, 1196, 5, 317, 0, 0, 1196, 1197, 5, 114, 0, 0, 1197, 1198, 5, 317, 0, 0, 1198, 1199, 5, 10, 0, 0, 1199, 1200, 5, 2, 0, 0, 1200, 1201, 5, 317, 0, 0, 1201, 1206, 5, 3, 0, 0, 1202, 1203, 5, 11, 0, 0, 1203, 1205, 3, 66, 33, 0, 1204, 1202, 1, 0, 0, 0, 1205, 1208, 1, 0, 0, 0, 1206, 1204, 1, 0, 0, 0, 1206, 1207, 1, 0, 0, 0, 1207, 89, 1, 0, 0, 0, 1208, 1206, 1, 0, 0, 0, 1209, 1210, 5, 115, 0, 0, 1210, 1211, 5, 8, 0, 0, 1211, 1212, 5, 317, 0, 0, 1212, 1213, 5, 116, 0, 0, 1213, 1214, 5, 317, 0, 0, 1214, 1215, 5, 117, 0, 0, 1215, 1216, 5, 317, 0, 0, 1216, 1217, 5, 118, 0, 0, 1217, 1218, 5, 317, 0, 0, 1218, 1219, 5, 119, 0, 0, 1219, 1220, 5, 317, 0, 0, 1220, 1221, 5, 120, 0, 0, 1221, 1222, 5, 317, 0, 0, 1222, 1223, 5, 121, 0, 0, 1223, 1224, 5, 317, 0, 0, 1224, 1225, 5, 122, 0, 0, 1225, 1226, 5, 317, 0, 0, 1226, 1227, 5, 123, 0, 0, 1227, 1228, 5, 317, 0, 0, 1228, 1229, 5, 10, 0, 0, 1229, 1230, 5, 2, 0, 0, 1230, 1235, 5, 3, 0, 0, 1231, 1232, 5, 11, 0, 0, 1232, 1234, 3, 66, 33, 0, 1233, 1231, 1, 0, 0, 0, 1234, 1237, 1, 0, 0, 0, 1235, 1233, 1, 0, 0, 0, 1235, 1236, 1, 0, 0, 0, 1236, 91, 1, 0, 0, 0, 1237, 1235, 1, 0, 0, 0, 1238, 1239, 5, 124, 0, 0, 1239, 1240, 5, 8, 0, 0, 1240, 1241, 5, 317, 0, 0, 1241, 1242, 5, 116, 0, 0, 1242, 1243, 5, 317, 0, 0, 1243, 1244, 5, 117, 0, 0, 1244, 1245, 5, 317, 0, 0, 1245, 1246, 5, 118, 0, 0, 1246, 1247, 5, 317, 0, 0, 1247, 1248, 5, 119, 0, 0, 1248, 1249, 5, 317, 0, 0, 1249, 1250, 5, 120, 0, 0, 1250, 1251, 5, 317, 0, 0, 1251, 1252, 5, 125, 0, 0, 1252, 1253, 5, 317, 0, 0, 1253, 1254, 5, 122, 0, 0, 1254, 1255, 5, 317, 0, 0, 1255, 1256, 5, 126, 0, 0, 1256, 1257, 5, 317, 0, 0, 1257, 1258, 5, 10, 0, 0, 1258, 1259, 5, 2, 0, 0, 1259, 1264, 5, 3, 0, 0, 1260, 1261, 5, 11, 0, 0, 1261, 1263, 3, 66, 33, 0, 1262, 1260, 1, 0, 0, 0, 1263, 1266, 1, 0, 0, 0, 1264, 1262, 1, 0, 0, 0, 1264, 1265, 1, 0, 0, 0, 1265, 93, 1, 0, 0, 0, 1266, 1264, 1, 0, 0, 0, 1267, 1268, 5, 127, 0, 0, 1268, 1269, 5, 8, 0, 0, 1269, 1270, 5, 317, 0, 0, 1270, 1271, 5, 116, 0, 0, 1271, 1272, 5, 317, 0, 0, 1272, 1273, 5, 117, 0, 0, 1273, 1274, 5, 317, 0, 0, 1274, 1275, 5, 118, 0, 0, 1275, 1276, 5, 317, 0, 0, 1276, 1277, 5, 119, 0, 0, 1277, 1278, 5, 317, 0, 0, 1278, 1279, 5, 120, 0, 0, 1279, 1280, 5, 317, 0, 0, 1280, 1281, 5, 128, 0, 0, 1281, 1282, 5, 317, 0, 0, 1282, 1283, 5, 125, 0, 0, 1283, 1284, 5, 317, 0, 0, 1284, 1285, 5, 122, 0, 0, 1285, 1286, 5, 317, 0, 0, 1286, 1287, 5, 129, 0, 0, 1287, 1288, 5, 8, 0, 0, 1288, 1289, 5, 317, 0, 0, 1289, 1290, 5, 116, 0, 0, 1290, 1291, 5, 317, 0, 0, 1291, 1292, 5, 117, 0, 0, 1292, 1293, 5, 317, 0, 0, 1293, 1294, 5, 118, 0, 0, 1294, 1295, 5, 317, 0, 0, 1295, 1296, 5, 119, 0, 0, 1296, 1297, 5, 317, 0, 0, 1297, 1298, 5, 120, 0, 0, 1298, 1299, 5, 317, 0, 0, 1299, 1300, 5, 125, 0, 0, 1300, 1301, 5, 317, 0, 0, 1301, 1302, 5, 122, 0, 0, 1302, 1303, 5, 317, 0, 0, 1303, 1304, 5, 10, 0, 0, 1304, 1305, 5, 2, 0, 0, 1305, 1310, 5, 3, 0, 0, 1306, 1307, 5, 11, 0, 0, 1307, 1309, 3, 66, 33, 0, 1308, 1306, 1, 0, 0, 0, 1309, 1312, 1, 0, 0, 0, 1310, 1308, 1, 0, 0, 0, 1310, 1311, 1, 0, 0, 0, 1311, 95, 1, 0, 0, 0, 1312, 1310, 1, 0, 0, 0, 1313, 1314, 5, 130, 0, 0, 1314, 1315, 5, 317, 0, 0, 1315, 1316, 5, 90, 0, 0, 1316, 1317, 5, 317, 0, 0, 1317, 1318, 5, 14, 0, 0, 1318, 1319, 5, 317, 0, 0, 1319, 1320, 5, 56, 0, 0, 1320, 1321, 5, 317, 0, 0, 1321, 1322, 5, 10, 0, 0, 1322, 1323, 5, 2, 0, 0, 1323, 1328, 5, 3, 0, 0, 1324, 1325, 5, 11, 0, 0, 1325, 1327, 3, 66, 33, 0, 1326, 1324, 1, 0, 0, 0, 1327, 1330, 1, 0, 0, 0, 1328, 1326, 1, 0, 0, 0, 1328, 1329, 1, 0, 0, 0, 1329, 97, 1, 0, 0, 0, 1330, 1328, 1, 0, 0, 0, 1331, 1332, 5, 131, 0, 0, 1332, 1333, 5, 317, 0, 0, 1333, 1334, 5, 14, 0, 0, 1334, 1335, 5, 317, 0, 0, 1335, 1336, 5, 56, 0, 0, 1336, 1337, 5, 317, 0, 0, 1337, 1338, 5, 10, 0, 0, 1338, 1339, 5, 2, 0, 0, 1339, 1344, 5, 3, 0, 0, 1340, 1341, 5, 11, 0, 0, 1341, 1343, 3, 66, 33, 0, 1342, 1340, 1, 0, 0, 0, 1343, 1346, 1, 0, 0, 0, 1344, 1342, 1, 0, 0, 0, 1344, 1345, 1, 0, 0, 0, 1345, 99, 1, 0, 0, 0, 1346, 1344, 1, 0, 0, 0, 1347, 1348, 5, 132, 0, 0, 1348, 1349, 5, 8, 0, 0, 1349, 1350, 5, 317, 0, 0, 1350, 1351, 5, 9, 0, 0, 1351, 1352, 5, 317, 0, 0, 1352, 1353, 5, 133, 0, 0, 1353, 1354, 5, 317, 0, 0, 1354, 1355, 5, 134, 0, 0, 1355, 1356, 5, 317, 0, 0, 1356, 1357, 5, 135, 0, 0, 1357, 1358, 5, 317, 0, 0, 1358, 1359, 5, 136, 0, 0, 1359, 1360, 5, 317, 0, 0, 1360, 1361, 5, 10, 0, 0, 1361, 1362, 5, 2, 0, 0, 1362, 1363, 5, 317, 0, 0, 1363, 1368, 5, 3, 0, 0, 1364, 1365, 5, 11, 0, 0, 1365, 1367, 3, 66, 33, 0, 1366, 1364, 1, 0, 0, 0, 1367, 1370, 1, 0, 0, 0, 1368, 1366, 1, 0, 0, 0, 1368, 1369, 1, 0, 0, 0, 1369, 101, 1, 0, 0, 0, 1370, 1368, 1, 0, 0, 0, 1371, 1372, 5, 137, 0, 0, 1372, 1373, 5, 8, 0, 0, 1373, 1374, 5, 317, 0, 0, 1374, 1375, 5, 138, 0, 0, 1375, 1376, 5, 317, 0, 0, 1376, 1377, 5, 10, 0, 0, 1377, 1378, 5, 2, 0, 0, 1378, 1379, 5, 317, 0, 0, 1379, 1384, 5, 3, 0, 0, 1380, 1381, 5, 11, 0, 0, 1381, 1383, 3, 66, 33, 0, 1382, 1380, 1, 0, 0, 0, 1383, 1386, 1, 0, 0, 0, 1384, 1382, 1, 0, 0, 0, 1384, 1385, 1, 0, 0, 0, 1385, 103, 1, 0, 0, 0, 1386, 1384, 1, 0, 0, 0, 1387, 1388, 5, 139, 0, 0, 1388, 1389, 5, 8, 0, 0, 1389, 1390, 5, 317, 0, 0, 1390, 1391, 5, 140, 0, 0, 1391, 1392, 5, 317, 0, 0, 1392, 1393, 5, 141, 0, 0, 1393, 1394, 5, 317, 0, 0, 1394, 1395, 5, 142, 0, 0, 1395, 1396, 5, 317, 0, 0, 1396, 1397, 5, 143, 0, 0, 1397, 1398, 5, 317, 0, 0, 1398, 1399, 5, 144, 0, 0, 1399, 1400, 5, 317, 0, 0, 1400, 1401, 5, 10, 0, 0, 1401, 1402, 5, 2, 0, 0, 1402, 1407, 5, 3, 0, 0, 1403, 1404, 5, 11, 0, 0, 1404, 1406, 3, 66, 33, 0, 1405, 1403, 1, 0, 0, 0, 1406, 1409, 1, 0, 0, 0, 1407, 1405, 1, 0, 0, 0, 1407, 1408, 1, 0, 0, 0, 1408, 105, 1, 0, 0, 0, 1409, 1407, 1, 0, 0, 0, 1410, 1411, 5, 145, 0, 0, 1411, 1412, 5, 8, 0, 0, 1412, 1413, 5, 317, 0, 0, 1413, 1414, 5, 140, 0, 0, 1414, 1415, 5, 317, 0, 0, 1415, 1416, 5, 141, 0, 0, 1416, 1417, 5, 317, 0, 0, 1417, 1418, 5, 142, 0, 0, 1418, 1419, 5, 317, 0, 0, 1419, 1420, 5, 143, 0, 0, 1420, 1421, 5, 317, 0, 0, 1421, 1422, 5, 146, 0, 0, 1422, 1423, 5, 317, 0, 0, 1423, 1424, 5, 10, 0, 0, 1424, 1425, 5, 2, 0, 0, 1425, 1430, 5, 3, 0, 0, 1426, 1427, 5, 11, 0, 0, 1427, 1429, 3, 66, 33, 0, 1428, 1426, 1, 0, 0, 0, 1429, 1432, 1, 0, 0, 0, 1430, 1428, 1, 0, 0, 0, 1430, 1431, 1, 0, 0, 0, 1431, 107, 1, 0, 0, 0, 1432, 1430, 1, 0, 0, 0, 1433, 1434, 5, 147, 0, 0, 1434, 1435, 5, 8, 0, 0, 1435, 1436, 5, 317, 0, 0, 1436, 1437, 5, 140, 0, 0, 1437, 1438, 5, 317, 0, 0, 1438, 1439, 5, 142, 0, 0, 1439, 1440, 5, 317, 0, 0, 1440, 1441, 5, 148, 0, 0, 1441, 1442, 5, 317, 0, 0, 1442, 1443, 5, 10, 0, 0, 1443, 1444, 5, 2, 0, 0, 1444, 1449, 5, 3, 0, 0, 1445, 1446, 5, 11, 0, 0, 1446, 1448, 3, 66, 33, 0, 1447, 1445, 1, 0, 0, 0, 1448, 1451, 1, 0, 0, 0, 1449, 1447, 1, 0, 0, 0, 1449, 1450, 1, 0, 0, 0, 1450, 109, 1, 0, 0, 0, 1451, 1449, 1, 0, 0, 0, 1452, 1453, 5, 149, 0, 0, 1453, 1454, 5, 8, 0, 0, 1454, 1455, 5, 317, 0, 0, 1455, 1456, 5, 150, 0, 0, 1456, 1457, 5, 317, 0, 0, 1457, 1458, 5, 151, 0, 0, 1458, 1459, 5, 317, 0, 0, 1459, 1460, 5, 152, 0, 0, 1460, 1461, 5, 317, 0, 0, 1461, 1462, 5, 153, 0, 0, 1462, 1463, 5, 317, 0, 0, 1463, 1464, 5, 154, 0, 0, 1464, 1465, 5, 317, 0, 0, 1465, 1466, 5, 155, 0, 0, 1466, 1467, 5, 317, 0, 0, 1467, 1468, 5, 156, 0, 0, 1468, 1469, 5, 317, 0, 0, 1469, 1470, 5, 157, 0, 0, 1470, 1471, 5, 317, 0, 0, 1471, 1472, 5, 158, 0, 0, 1472, 1473, 5, 317, 0, 0, 1473, 1474, 5, 159, 0, 0, 1474, 1475, 5, 317, 0, 0, 1475, 1476, 5, 160, 0, 0, 1476, 1477, 5, 317, 0, 0, 1477, 1478, 5, 161, 0, 0, 1478, 1479, 5, 317, 0, 0, 1479, 1480, 5, 162, 0, 0, 1480, 1481, 5, 317, 0, 0, 1481, 1482, 5, 2, 0, 0, 1482, 1483, 5, 317, 0, 0, 1483, 1488, 5, 3, 0, 0, 1484, 1485, 5, 11, 0, 0, 1485, 1487, 3, 66, 33, 0, 1486, 1484, 1, 0, 0, 0, 1487, 1490, 1, 0, 0, 0, 1488, 1486, 1, 0, 0, 0, 1488, 1489, 1, 0, 0, 0, 1489, 111, 1, 0, 0, 0, 1490, 1488, 1, 0, 0, 0, 1491, 1492, 5, 163, 0, 0, 1492, 1493, 5, 8, 0, 0, 1493, 1494, 5, 317, 0, 0, 1494, 1495, 5, 150, 0, 0, 1495, 1496, 5, 317, 0, 0, 1496, 1497, 5, 162, 0, 0, 1497, 1498, 5, 317, 0, 0, 1498, 1499, 5, 164, 0, 0, 1499, 1500, 5, 2, 0, 0, 1500, 1501, 5, 317, 0, 0, 1501, 1502, 5, 3, 0, 0, 1502, 1503, 5, 165, 0, 0, 1503, 1504, 5, 317, 0, 0, 1504, 1505, 5, 166, 0, 0, 1505, 1506, 5, 2, 0, 0, 1506, 1507, 5, 317, 0, 0, 1507, 1512, 5, 3, 0, 0, 1508, 1509, 5, 11, 0, 0, 1509, 1511, 3, 66, 33, 0, 1510, 1508, 1, 0, 0, 0, 1511, 1514, 1, 0, 0, 0, 1512, 1510, 1, 0, 0, 0, 1512, 1513, 1, 0, 0, 0, 1513, 113, 1, 0, 0, 0, 1514, 1512, 1, 0, 0, 0, 1515, 1516, 5, 167, 0, 0, 1516, 1517, 5, 8, 0, 0, 1517, 1518, 5, 317, 0, 0, 1518, 1519, 5, 150, 0, 0, 1519, 1520, 5, 317, 0, 0, 1520, 1521, 5, 168, 0, 0, 1521, 1522, 5, 317, 0, 0, 1522, 1523, 5, 169, 0, 0, 1523, 1524, 5, 317, 0, 0, 1524, 1525, 5, 170, 0, 0, 1525, 1526, 5, 317, 0, 0, 1526, 1527, 5, 165, 0, 0, 1527, 1528, 5, 317, 0, 0, 1528, 1529, 5, 171, 0, 0, 1529, 1530, 5, 2, 0, 0, 1530, 1531, 5, 317, 0, 0, 1531, 1532, 5, 3, 0, 0, 1532, 1533, 5, 172, 0, 0, 1533, 1534, 5, 2, 0, 0, 1534, 1535, 5, 317, 0, 0, 1535, 1540, 5, 3, 0, 0, 1536, 1537, 5, 11, 0, 0, 1537, 1539, 3, 66, 33, 0, 1538, 1536, 1, 0, 0, 0, 1539, 1542, 1, 0, 0, 0, 1540, 1538, 1, 0, 0, 0, 1540, 1541, 1, 0, 0, 0, 1541, 1547, 1, 0, 0, 0, 1542, 1540, 1, 0, 0, 0, 1543, 1544, 5, 12, 0, 0, 1544, 1546, 5, 316, 0, 0, 1545, 1543, 1, 0, 0, 0, 1546, 1549, 1, 0, 0, 0, 1547, 1545, 1, 0, 0, 0, 1547, 1548, 1, 0, 0, 0, 1548, 1554, 1, 0, 0, 0, 1549, 1547, 1, 0, 0, 0, 1550, 1551, 5, 16, 0, 0, 1551, 1553, 5, 316, 0, 0, 1552, 1550, 1, 0, 0, 0, 1553, 1556, 1, 0, 0, 0, 1554, 1552, 1, 0, 0, 0, 1554, 1555, 1, 0, 0, 0, 1555, 1561, 1, 0, 0, 0, 1556, 1554, 1, 0, 0, 0, 1557, 1558, 5, 17, 0, 0, 1558, 1560, 5, 316, 0, 0, 1559, 1557, 1, 0, 0, 0, 1560, 1563, 1, 0, 0, 0, 1561, 1559, 1, 0, 0, 0, 1561, 1562, 1, 0, 0, 0, 1562, 115, 1, 0, 0, 0, 1563, 1561, 1, 0, 0, 0, 1564, 1565, 5, 173, 0, 0, 1565, 1566, 5, 8, 0, 0, 1566, 1567, 5, 317, 0, 0, 1567, 1568, 5, 174, 0, 0, 1568, 1569, 5, 317, 0, 0, 1569, 1570, 5, 164, 0, 0, 1570, 1571, 5, 2, 0, 0, 1571, 1572, 5, 317, 0, 0, 1572, 1577, 5, 3, 0, 0, 1573, 1574, 5, 11, 0, 0, 1574, 1576, 3, 66, 33, 0, 1575, 1573, 1, 0, 0, 0, 1576, 1579, 1, 0, 0, 0, 1577, 1575, 1, 0, 0, 0, 1577, 1578, 1, 0, 0, 0, 1578, 117, 1, 0, 0, 0, 1579, 1577, 1, 0, 0, 0, 1580, 1581, 5, 173, 0, 0, 1581, 1582, 5, 8, 0, 0, 1582, 1583, 5, 317, 0, 0, 1583, 1584, 5, 175, 0, 0, 1584, 1585, 5, 317, 0, 0, 1585, 1586, 5, 176, 0, 0, 1586, 1587, 5, 317, 0, 0, 1587, 1588, 5, 177, 0, 0, 1588, 1589, 5, 317, 0, 0, 1589, 1590, 5, 165, 0, 0, 1590, 1591, 5, 317, 0, 0, 1591, 1592, 5, 178, 0, 0, 1592, 1593, 5, 317, 0, 0, 1593, 1594, 5, 179, 0, 0, 1594, 1595, 5, 317, 0, 0, 1595, 1596, 5, 164, 0, 0, 1596, 1597, 5, 2, 0, 0, 1597, 1598, 5, 317, 0, 0, 1598, 1603, 5, 3, 0, 0, 1599, 1600, 5, 11, 0, 0, 1600, 1602, 3, 66, 33, 0, 1601, 1599, 1, 0, 0, 0, 1602, 1605, 1, 0, 0, 0, 1603, 1601, 1, 0, 0, 0, 1603, 1604, 1, 0, 0, 0, 1604, 119, 1, 0, 0, 0, 1605, 1603, 1, 0, 0, 0, 1606, 1607, 5, 180, 0, 0, 1607, 1608, 5, 8, 0, 0, 1608, 1609, 5, 317, 0, 0, 1609, 1610, 5, 181, 0, 0, 1610, 1611, 5, 317, 0, 0, 1611, 1612, 5, 2, 0, 0, 1612, 1613, 5, 317, 0, 0, 1613, 1618, 5, 3, 0, 0, 1614, 1615, 5, 11, 0, 0, 1615, 1617, 3, 66, 33, 0, 1616, 1614, 1, 0, 0, 0, 1617, 1620, 1, 0, 0, 0, 1618, 1616, 1, 0, 0, 0, 1618, 1619, 1, 0, 0, 0, 1619, 121, 1, 0, 0, 0, 1620, 1618, 1, 0, 0, 0, 1621, 1622, 5, 182, 0, 0, 1622, 1623, 5, 8, 0, 0, 1623, 1624, 5, 317, 0, 0, 1624, 1625, 5, 183, 0, 0, 1625, 1626, 5, 317, 0, 0, 1626, 1627, 5, 165, 0, 0, 1627, 1628, 5, 317, 0, 0, 1628, 1629, 5, 10, 0, 0, 1629, 1630, 5, 2, 0, 0, 1630, 1631, 5, 317, 0, 0, 1631, 1636, 5, 3, 0, 0, 1632, 1633, 5, 11, 0, 0, 1633, 1635, 3, 66, 33, 0, 1634, 1632, 1, 0, 0, 0, 1635, 1638, 1, 0, 0, 0, 1636, 1634, 1, 0, 0, 0, 1636, 1637, 1, 0, 0, 0, 1637, 123, 1, 0, 0, 0, 1638, 1636, 1, 0, 0, 0, 1639, 1640, 5, 184, 0, 0, 1640, 1641, 5, 8, 0, 0, 1641, 1642, 5, 317, 0, 0, 1642, 1643, 5, 165, 0, 0, 1643, 1644, 5, 317, 0, 0, 1644, 1645, 5, 185, 0, 0, 1645, 1646, 5, 2, 0, 0, 1646, 1647, 5, 317, 0, 0, 1647, 1648, 5, 3, 0, 0, 1648, 1649, 5, 186, 0, 0, 1649, 1650, 5, 2, 0, 0, 1650, 1651, 5, 317, 0, 0, 1651, 1656, 5, 3, 0, 0, 1652, 1653, 5, 11, 0, 0, 1653, 1655, 3, 66, 33, 0, 1654, 1652, 1, 0, 0, 0, 1655, 1658, 1, 0, 0, 0, 1656, 1654, 1, 0, 0, 0, 1656, 1657, 1, 0, 0, 0, 1657, 125, 1, 0, 0, 0, 1658, 1656, 1, 0, 0, 0, 1659, 1660, 5, 187, 0, 0, 1660, 1661, 5, 8, 0, 0, 1661, 1662, 5, 317, 0, 0, 1662, 1663, 5, 188, 0, 0, 1663, 1664, 5, 317, 0, 0, 1664, 1665, 5, 189, 0, 0, 1665, 1666, 5, 317, 0, 0, 1666, 1667, 5, 10, 0, 0, 1667, 1668, 5, 2, 0, 0, 1668, 1673, 5, 3, 0, 0, 1669, 1670, 5, 11, 0, 0, 1670, 1672, 3, 66, 33, 0, 1671, 1669, 1, 0, 0, 0, 1672, 1675, 1, 0, 0, 0, 1673, 1671, 1, 0, 0, 0, 1673, 1674, 1, 0, 0, 0, 1674, 127, 1, 0, 0, 0, 1675, 1673, 1, 0, 0, 0, 1676, 1677, 5, 190, 0, 0, 1677, 1678, 5, 8, 0, 0, 1678, 1679, 5, 317, 0, 0, 1679, 1680, 5, 191, 0, 0, 1680, 1681, 5, 317, 0, 0, 1681, 1682, 5, 192, 0, 0, 1682, 1683, 5, 317, 0, 0, 1683, 1684, 5, 193, 0, 0, 1684, 1685, 5, 317, 0, 0, 1685, 1686, 5, 194, 0, 0, 1686, 1687, 5, 317, 0, 0, 1687, 1688, 5, 195, 0, 0, 1688, 1689, 5, 317, 0, 0, 1689, 1690, 5, 196, 0, 0, 1690, 1691, 5, 317, 0, 0, 1691, 1692, 5, 197, 0, 0, 1692, 1693, 5, 317, 0, 0, 1693, 1694, 5, 10, 0, 0, 1694, 1695, 5, 2, 0, 0, 1695, 1700, 5, 3, 0, 0, 1696, 1697, 5, 11, 0, 0, 1697, 1699, 3, 66, 33, 0, 1698, 1696, 1, 0, 0, 0, 1699, 1702, 1, 0, 0, 0, 1700, 1698, 1, 0, 0, 0, 1700, 1701, 1, 0, 0, 0, 1701, 129, 1, 0, 0, 0, 1702, 1700, 1, 0, 0, 0, 1703, 1704, 5, 198, 0, 0, 1704, 1705, 5, 8, 0, 0, 1705, 1706, 5, 317, 0, 0, 1706, 1707, 5, 199, 0, 0, 1707, 1708, 5, 317, 0, 0, 1708, 1709, 5, 192, 0, 0, 1709, 1710, 5, 317, 0, 0, 1710, 1711, 5, 193, 0, 0, 1711, 1712, 5, 317, 0, 0, 1712, 1713, 5, 200, 0, 0, 1713, 1714, 5, 317, 0, 0, 1714, 1715, 5, 195, 0, 0, 1715, 1716, 5, 317, 0, 0, 1716, 1717, 5, 196, 0, 0, 1717, 1718, 5, 317, 0, 0, 1718, 1719, 5, 201, 0, 0, 1719, 1720, 5, 317, 0, 0, 1720, 1721, 5, 10, 0, 0, 1721, 1722, 5, 2, 0, 0, 1722, 1727, 5, 3, 0, 0, 1723, 1724, 5, 11, 0, 0, 1724, 1726, 3, 66, 33, 0, 1725, 1723, 1, 0, 0, 0, 1726, 1729, 1, 0, 0, 0, 1727, 1725, 1, 0, 0, 0, 1727, 1728, 1, 0, 0, 0, 1728, 131, 1, 0, 0, 0, 1729, 1727, 1, 0, 0, 0, 1730, 1731, 5, 202, 0, 0, 1731, 1732, 5, 8, 0, 0, 1732, 1733, 5, 317, 0, 0, 1733, 1734, 5, 203, 0, 0, 1734, 1735, 5, 317, 0, 0, 1735, 1736, 5, 192, 0, 0, 1736, 1737, 5, 317, 0, 0, 1737, 1738, 5, 193, 0, 0, 1738, 1739, 5, 317, 0, 0, 1739, 1740, 5, 195, 0, 0, 1740, 1741, 5, 317, 0, 0, 1741, 1742, 5, 196, 0, 0, 1742, 1743, 5, 317, 0, 0, 1743, 1744, 5, 204, 0, 0, 1744, 1745, 5, 317, 0, 0, 1745, 1746, 5, 205, 0, 0, 1746, 1747, 5, 317, 0, 0, 1747, 1748, 5, 201, 0, 0, 1748, 1749, 5, 317, 0, 0, 1749, 1750, 5, 10, 0, 0, 1750, 1751, 5, 2, 0, 0, 1751, 1756, 5, 3, 0, 0, 1752, 1753, 5, 11, 0, 0, 1753, 1755, 3, 66, 33, 0, 1754, 1752, 1, 0, 0, 0, 1755, 1758, 1, 0, 0, 0, 1756, 1754, 1, 0, 0, 0, 1756, 1757, 1, 0, 0, 0, 1757, 133, 1, 0, 0, 0, 1758, 1756, 1, 0, 0, 0, 1759, 1760, 5, 206, 0, 0, 1760, 1761, 5, 8, 0, 0, 1761, 1762, 5, 317, 0, 0, 1762, 1763, 5, 165, 0, 0, 1763, 1764, 5, 317, 0, 0, 1764, 1765, 5, 10, 0, 0, 1765, 1766, 5, 2, 0, 0, 1766, 1767, 5, 317, 0, 0, 1767, 1772, 5, 3, 0, 0, 1768, 1769, 5, 11, 0, 0, 1769, 1771, 3, 66, 33, 0, 1770, 1768, 1, 0, 0, 0, 1771, 1774, 1, 0, 0, 0, 1772, 1770, 1, 0, 0, 0, 1772, 1773, 1, 0, 0, 0, 1773, 135, 1, 0, 0, 0, 1774, 1772, 1, 0, 0, 0, 1775, 1776, 5, 207, 0, 0, 1776, 1777, 5, 8, 0, 0, 1777, 1778, 5, 317, 0, 0, 1778, 1779, 5, 208, 0, 0, 1779, 1780, 5, 317, 0, 0, 1780, 1781, 5, 209, 0, 0, 1781, 1782, 5, 317, 0, 0, 1782, 1783, 5, 210, 0, 0, 1783, 1784, 5, 317, 0, 0, 1784, 1785, 5, 165, 0, 0, 1785, 1786, 5, 317, 0, 0, 1786, 1787, 5, 10, 0, 0, 1787, 1788, 5, 2, 0, 0, 1788, 1793, 5, 3, 0, 0, 1789, 1790, 5, 11, 0, 0, 1790, 1792, 3, 66, 33, 0, 1791, 1789, 1, 0, 0, 0, 1792, 1795, 1, 0, 0, 0, 1793, 1791, 1, 0, 0, 0, 1793, 1794, 1, 0, 0, 0, 1794, 137, 1, 0, 0, 0, 1795, 1793, 1, 0, 0, 0, 1796, 1797, 5, 211, 0, 0, 1797, 1798, 5, 8, 0, 0, 1798, 1799, 5, 317, 0, 0, 1799, 1800, 5, 212, 0, 0, 1800, 1801, 5, 317, 0, 0, 1801, 1802, 5, 213, 0, 0, 1802, 1803, 5, 317, 0, 0, 1803, 1804, 5, 214, 0, 0, 1804, 1805, 5, 317, 0, 0, 1805, 1806, 5, 10, 0, 0, 1806, 1807, 5, 2, 0, 0, 1807, 1812, 5, 3, 0, 0, 1808, 1809, 5, 11, 0, 0, 1809, 1811, 3, 66, 33, 0, 1810, 1808, 1, 0, 0, 0, 1811, 1814, 1, 0, 0, 0, 1812, 1810, 1, 0, 0, 0, 1812, 1813, 1, 0, 0, 0, 1813, 139, 1, 0, 0, 0, 1814, 1812, 1, 0, 0, 0, 1815, 1816, 5, 215, 0, 0, 1816, 1817, 5, 8, 0, 0, 1817, 1818, 5, 317, 0, 0, 1818, 1819, 5, 216, 0, 0, 1819, 1820, 5, 317, 0, 0, 1820, 1821, 5, 213, 0, 0, 1821, 1822, 5, 317, 0, 0, 1822, 1823, 5, 217, 0, 0, 1823, 1824, 5, 317, 0, 0, 1824, 1825, 5, 10, 0, 0, 1825, 1826, 5, 2, 0, 0, 1826, 1831, 5, 3, 0, 0, 1827, 1828, 5, 11, 0, 0, 1828, 1830, 3, 66, 33, 0, 1829, 1827, 1, 0, 0, 0, 1830, 1833, 1, 0, 0, 0, 1831, 1829, 1, 0, 0, 0, 1831, 1832, 1, 0, 0, 0, 1832, 141, 1, 0, 0, 0, 1833, 1831, 1, 0, 0, 0, 1834, 1835, 5, 218, 0, 0, 1835, 1836, 5, 8, 0, 0, 1836, 1837, 5, 317, 0, 0, 1837, 1838, 5, 201, 0, 0, 1838, 1839, 5, 317, 0, 0, 1839, 1840, 5, 213, 0, 0, 1840, 1841, 5, 317, 0, 0, 1841, 1842, 5, 219, 0, 0, 1842, 1843, 5, 317, 0, 0, 1843, 1844, 5, 220, 0, 0, 1844, 1845, 5, 317, 0, 0, 1845, 1846, 5, 10, 0, 0, 1846, 1847, 5, 2, 0, 0, 1847, 1852, 5, 3, 0, 0, 1848, 1849, 5, 11, 0, 0, 1849, 1851, 3, 66, 33, 0, 1850, 1848, 1, 0, 0, 0, 1851, 1854, 1, 0, 0, 0, 1852, 1850, 1, 0, 0, 0, 1852, 1853, 1, 0, 0, 0, 1853, 143, 1, 0, 0, 0, 1854, 1852, 1, 0, 0, 0, 1855, 1856, 5, 221, 0, 0, 1856, 1857, 5, 8, 0, 0, 1857, 1858, 5, 317, 0, 0, 1858, 1859, 5, 201, 0, 0, 1859, 1860, 5, 317, 0, 0, 1860, 1861, 5, 213, 0, 0, 1861, 1862, 5, 317, 0, 0, 1862, 1863, 5, 222, 0, 0, 1863, 1864, 5, 317, 0, 0, 1864, 1865, 5, 10, 0, 0, 1865, 1866, 5, 2, 0, 0, 1866, 1871, 5, 3, 0, 0, 1867, 1868, 5, 11, 0, 0, 1868, 1870, 3, 66, 33, 0, 1869, 1867, 1, 0, 0, 0, 1870, 1873, 1, 0, 0, 0, 1871, 1869, 1, 0, 0, 0, 1871, 1872, 1, 0, 0, 0, 1872, 145, 1, 0, 0, 0, 1873, 1871, 1, 0, 0, 0, 1874, 1875, 5, 223, 0, 0, 1875, 1876, 5, 8, 0, 0, 1876, 1877, 5, 317, 0, 0, 1877, 1878, 5, 201, 0, 0, 1878, 1879, 5, 317, 0, 0, 1879, 1880, 5, 213, 0, 0, 1880, 1881, 5, 317, 0, 0, 1881, 1882, 5, 222, 0, 0, 1882, 1883, 5, 317, 0, 0, 1883, 1884, 5, 10, 0, 0, 1884, 1885, 5, 2, 0, 0, 1885, 1890, 5, 3, 0, 0, 1886, 1887, 5, 11, 0, 0, 1887, 1889, 3, 66, 33, 0, 1888, 1886, 1, 0, 0, 0, 1889, 1892, 1, 0, 0, 0, 1890, 1888, 1, 0, 0, 0, 1890, 1891, 1, 0, 0, 0, 1891, 147, 1, 0, 0, 0, 1892, 1890, 1, 0, 0, 0, 1893, 1894, 5, 224, 0, 0, 1894, 1895, 5, 8, 0, 0, 1895, 1896, 5, 317, 0, 0, 1896, 1897, 5, 201, 0, 0, 1897, 1898, 5, 317, 0, 0, 1898, 1899, 5, 213, 0, 0, 1899, 1900, 5, 317, 0, 0, 1900, 1901, 5, 222, 0, 0, 1901, 1902, 5, 317, 0, 0, 1902, 1903, 5, 10, 0, 0, 1903, 1904, 5, 2, 0, 0, 1904, 1909, 5, 3, 0, 0, 1905, 1906, 5, 11, 0, 0, 1906, 1908, 3, 66, 33, 0, 1907, 1905, 1, 0, 0, 0, 1908, 1911, 1, 0, 0, 0, 1909, 1907, 1, 0, 0, 0, 1909, 1910, 1, 0, 0, 0, 1910, 149, 1, 0, 0, 0, 1911, 1909, 1, 0, 0, 0, 1912, 1913, 5, 225, 0, 0, 1913, 1914, 5, 8, 0, 0, 1914, 1915, 5, 317, 0, 0, 1915, 1916, 5, 226, 0, 0, 1916, 1917, 5, 317, 0, 0, 1917, 1918, 5, 213, 0, 0, 1918, 1919, 5, 317, 0, 0, 1919, 1920, 5, 10, 0, 0, 1920, 1921, 5, 2, 0, 0, 1921, 1926, 5, 3, 0, 0, 1922, 1923, 5, 11, 0, 0, 1923, 1925, 3, 66, 33, 0, 1924, 1922, 1, 0, 0, 0, 1925, 1928, 1, 0, 0, 0, 1926, 1924, 1, 0, 0, 0, 1926, 1927, 1, 0, 0, 0, 1927, 151, 1, 0, 0, 0, 1928, 1926, 1, 0, 0, 0, 1929, 1930, 5, 227, 0, 0, 1930, 1931, 5, 8, 0, 0, 1931, 1932, 5, 317, 0, 0, 1932, 1933, 5, 228, 0, 0, 1933, 1934, 5, 317, 0, 0, 1934, 1935, 5, 229, 0, 0, 1935, 1936, 5, 317, 0, 0, 1936, 1937, 5, 230, 0, 0, 1937, 1938, 5, 317, 0, 0, 1938, 1939, 5, 231, 0, 0, 1939, 1940, 5, 317, 0, 0, 1940, 1941, 5, 232, 0, 0, 1941, 1942, 5, 317, 0, 0, 1942, 1943, 5, 233, 0, 0, 1943, 1944, 5, 317, 0, 0, 1944, 1945, 5, 234, 0, 0, 1945, 1946, 5, 317, 0, 0, 1946, 1947, 5, 235, 0, 0, 1947, 1948, 5, 317, 0, 0, 1948, 1949, 5, 105, 0, 0, 1949, 1950, 5, 317, 0, 0, 1950, 1951, 5, 236, 0, 0, 1951, 1952, 5, 317, 0, 0, 1952, 1953, 5, 237, 0, 0, 1953, 1954, 5, 317, 0, 0, 1954, 1955, 5, 238, 0, 0, 1955, 1956, 5, 317, 0, 0, 1956, 1957, 5, 239, 0, 0, 1957, 1958, 5, 317, 0, 0, 1958, 1959, 5, 240, 0, 0, 1959, 1960, 5, 317, 0, 0, 1960, 1961, 5, 241, 0, 0, 1961, 1962, 5, 317, 0, 0, 1962, 1963, 5, 10, 0, 0, 1963, 1964, 5, 2, 0, 0, 1964, 1969, 5, 3, 0, 0, 1965, 1966, 5, 11, 0, 0, 1966, 1968, 3, 66, 33, 0, 1967, 1965, 1, 0, 0, 0, 1968, 1971, 1, 0, 0, 0, 1969, 1967, 1, 0, 0, 0, 1969, 1970, 1, 0, 0, 0, 1970, 153, 1, 0, 0, 0, 1971, 1969, 1, 0, 0, 0, 1972, 1973, 5, 242, 0, 0, 1973, 1974, 5, 8, 0, 0, 1974, 1975, 5, 317, 0, 0, 1975, 1976, 5, 150, 0, 0, 1976, 1977, 5, 317, 0, 0, 1977, 1978, 5, 165, 0, 0, 1978, 1979, 5, 317, 0, 0, 1979, 1980, 5, 162, 0, 0, 1980, 1981, 5, 317, 0, 0, 1981, 1982, 5, 10, 0, 0, 1982, 1983, 5, 2, 0, 0, 1983, 1984, 5, 317, 0, 0, 1984, 1989, 5, 3, 0, 0, 1985, 1986, 5, 11, 0, 0, 1986, 1988, 3, 66, 33, 0, 1987, 1985, 1, 0, 0, 0, 1988, 1991, 1, 0, 0, 0, 1989, 1987, 1, 0, 0, 0, 1989, 1990, 1, 0, 0, 0, 1990, 1996, 1, 0, 0, 0, 1991, 1989, 1, 0, 0, 0, 1992, 1993, 5, 29, 0, 0, 1993, 1995, 5, 317, 0, 0, 1994, 1992, 1, 0, 0, 0, 1995, 1998, 1, 0, 0, 0, 1996, 1994, 1, 0, 0, 0, 1996, 1997, 1, 0, 0, 0, 1997, 155, 1, 0, 0, 0, 1998, 1996, 1, 0, 0, 0, 1999, 2000, 5, 243, 0, 0, 2000, 2001, 5, 8, 0, 0, 2001, 2002, 5, 317, 0, 0, 2002, 2003, 5, 165, 0, 0, 2003, 2004, 5, 317, 0, 0, 2004, 2005, 5, 106, 0, 0, 2005, 2006, 5, 317, 0, 0, 2006, 2007, 5, 244, 0, 0, 2007, 2008, 5, 2, 0, 0, 2008, 2009, 5, 317, 0, 0, 2009, 2014, 5, 3, 0, 0, 2010, 2011, 5, 11, 0, 0, 2011, 2013, 3, 66, 33, 0, 2012, 2010, 1, 0, 0, 0, 2013, 2016, 1, 0, 0, 0, 2014, 2012, 1, 0, 0, 0, 2014, 2015, 1, 0, 0, 0, 2015, 157, 1, 0, 0, 0, 2016, 2014, 1, 0, 0, 0, 2017, 2018, 5, 245, 0, 0, 2018, 2019, 5, 8, 0, 0, 2019, 2020, 5, 317, 0, 0, 2020, 2021, 5, 165, 0, 0, 2021, 2022, 5, 317, 0, 0, 2022, 2023, 5, 246, 0, 0, 2023, 2024, 5, 317, 0, 0, 2024, 2025, 5, 247, 0, 0, 2025, 2026, 5, 317, 0, 0, 2026, 2027, 5, 248, 0, 0, 2027, 2028, 5, 317, 0, 0, 2028, 2029, 5, 249, 0, 0, 2029, 2030, 5, 317, 0, 0, 2030, 2031, 5, 250, 0, 0, 2031, 2032, 5, 2, 0, 0, 2032, 2033, 5, 317, 0, 0, 2033, 2038, 5, 3, 0, 0, 2034, 2035, 5, 11, 0, 0, 2035, 2037, 3, 66, 33, 0, 2036, 2034, 1, 0, 0, 0, 2037, 2040, 1, 0, 0, 0, 2038, 2036, 1, 0, 0, 0, 2038, 2039, 1, 0, 0, 0, 2039, 159, 1, 0, 0, 0, 2040, 2038, 1, 0, 0, 0, 2041, 2042, 5, 251, 0, 0, 2042, 2043, 5, 8, 0, 0, 2043, 2044, 5, 317, 0, 0, 2044, 2045, 5, 165, 0, 0, 2045, 2046, 5, 317, 0, 0, 2046, 2047, 5, 246, 0, 0, 2047, 2048, 5, 317, 0, 0, 2048, 2049, 5, 247, 0, 0, 2049, 2050, 5, 317, 0, 0, 2050, 2051, 5, 248, 0, 0, 2051, 2052, 5, 317, 0, 0, 2052, 2053, 5, 249, 0, 0, 2053, 2054, 5, 317, 0, 0, 2054, 2055, 5, 250, 0, 0, 2055, 2056, 5, 2, 0, 0, 2056, 2057, 5, 317, 0, 0, 2057, 2062, 5, 3, 0, 0, 2058, 2059, 5, 11, 0, 0, 2059, 2061, 3, 66, 33, 0, 2060, 2058, 1, 0, 0, 0, 2061, 2064, 1, 0, 0, 0, 2062, 2060, 1, 0, 0, 0, 2062, 2063, 1, 0, 0, 0, 2063, 161, 1, 0, 0, 0, 2064, 2062, 1, 0, 0, 0, 2065, 2066, 5, 252, 0, 0, 2066, 2067, 5, 8, 0, 0, 2067, 2068, 5, 317, 0, 0, 2068, 2069, 5, 165, 0, 0, 2069, 2070, 5, 317, 0, 0, 2070, 2071, 5, 253, 0, 0, 2071, 2072, 5, 317, 0, 0, 2072, 2073, 5, 254, 0, 0, 2073, 2074, 5, 317, 0, 0, 2074, 2075, 5, 10, 0, 0, 2075, 2076, 5, 2, 0, 0, 2076, 2077, 5, 317, 0, 0, 2077, 2082, 5, 3, 0, 0, 2078, 2079, 5, 11, 0, 0, 2079, 2081, 3, 66, 33, 0, 2080, 2078, 1, 0, 0, 0, 2081, 2084, 1, 0, 0, 0, 2082, 2080, 1, 0, 0, 0, 2082, 2083, 1, 0, 0, 0, 2083, 163, 1, 0, 0, 0, 2084, 2082, 1, 0, 0, 0, 2085, 2086, 5, 255, 0, 0, 2086, 2087, 5, 8, 0, 0, 2087, 2088, 5, 317, 0, 0, 2088, 2089, 5, 107, 0, 0, 2089, 2090, 5, 317, 0, 0, 2090, 2091, 5, 254, 0, 0, 2091, 2092, 5, 317, 0, 0, 2092, 2093, 5, 106, 0, 0, 2093, 2094, 5, 317, 0, 0, 2094, 2095, 5, 10, 0, 0, 2095, 2096, 5, 2, 0, 0, 2096, 2097, 5, 317, 0, 0, 2097, 2102, 5, 3, 0, 0, 2098, 2099, 5, 11, 0, 0, 2099, 2101, 3, 66, 33, 0, 2100, 2098, 1, 0, 0, 0, 2101, 2104, 1, 0, 0, 0, 2102, 2100, 1, 0, 0, 0, 2102, 2103, 1, 0, 0, 0, 2103, 165, 1, 0, 0, 0, 2104, 2102, 1, 0, 0, 0, 2105, 2106, 5, 256, 0, 0, 2106, 2107, 5, 8, 0, 0, 2107, 2108, 5, 317, 0, 0, 2108, 2109, 5, 165, 0, 0, 2109, 2110, 5, 317, 0, 0, 2110, 2111, 5, 257, 0, 0, 2111, 2112, 5, 317, 0, 0, 2112, 2113, 5, 177, 0, 0, 2113, 2114, 5, 317, 0, 0, 2114, 2115, 5, 258, 0, 0, 2115, 2116, 5, 317, 0, 0, 2116, 2117, 5, 259, 0, 0, 2117, 2118, 5, 317, 0, 0, 2118, 2119, 5, 260, 0, 0, 2119, 2120, 5, 317, 0, 0, 2120, 2121, 5, 261, 0, 0, 2121, 2122, 5, 317, 0, 0, 2122, 2123, 5, 228, 0, 0, 2123, 2124, 5, 2, 0, 0, 2124, 2125, 5, 317, 0, 0, 2125, 2126, 5, 3, 0, 0, 2126, 2127, 5, 262, 0, 0, 2127, 2128, 5, 2, 0, 0, 2128, 2129, 5, 317, 0, 0, 2129, 2130, 5, 3, 0, 0, 2130, 2131, 5, 263, 0, 0, 2131, 2132, 5, 2, 0, 0, 2132, 2133, 5, 317, 0, 0, 2133, 2134, 5, 3, 0, 0, 2134, 2135, 5, 264, 0, 0, 2135, 2136, 5, 2, 0, 0, 2136, 2137, 5, 317, 0, 0, 2137, 2142, 5, 3, 0, 0, 2138, 2139, 5, 11, 0, 0, 2139, 2141, 3, 66, 33, 0, 2140, 2138, 1, 0, 0, 0, 2141, 2144, 1, 0, 0, 0, 2142, 2140, 1, 0, 0, 0, 2142, 2143, 1, 0, 0, 0, 2143, 167, 1, 0, 0, 0, 2144, 2142, 1, 0, 0, 0, 2145, 2146, 5, 265, 0, 0, 2146, 2147, 5, 8, 0, 0, 2147, 2148, 5, 317, 0, 0, 2148, 2149, 5, 165, 0, 0, 2149, 2150, 5, 317, 0, 0, 2150, 2151, 5, 10, 0, 0, 2151, 2152, 5, 2, 0, 0, 2152, 2157, 5, 3, 0, 0, 2153, 2154, 5, 11, 0, 0, 2154, 2156, 3, 66, 33, 0, 2155, 2153, 1, 0, 0, 0, 2156, 2159, 1, 0, 0, 0, 2157, 2155, 1, 0, 0, 0, 2157, 2158, 1, 0, 0, 0, 2158, 169, 1, 0, 0, 0, 2159, 2157, 1, 0, 0, 0, 2160, 2161, 5, 266, 0, 0, 2161, 2162, 5, 8, 0, 0, 2162, 2163, 5, 317, 0, 0, 2163, 2164, 5, 165, 0, 0, 2164, 2165, 5, 317, 0, 0, 2165, 2166, 5, 10, 0, 0, 2166, 2167, 5, 2, 0, 0, 2167, 2172, 5, 3, 0, 0, 2168, 2169, 5, 11, 0, 0, 2169, 2171, 3, 66, 33, 0, 2170, 2168, 1, 0, 0, 0, 2171, 2174, 1, 0, 0, 0, 2172, 2170, 1, 0, 0, 0, 2172, 2173, 1, 0, 0, 0, 2173, 171, 1, 0, 0, 0, 2174, 2172, 1, 0, 0, 0, 2175, 2176, 5, 267, 0, 0, 2176, 2177, 5, 8, 0, 0, 2177, 2178, 5, 317, 0, 0, 2178, 2179, 5, 165, 0, 0, 2179, 2180, 5, 317, 0, 0, 2180, 2181, 5, 268, 0, 0, 2181, 2182, 5, 317, 0, 0, 2182, 2183, 5, 269, 0, 0, 2183, 2184, 5, 317, 0, 0, 2184, 2185, 5, 257, 0, 0, 2185, 2186, 5, 317, 0, 0, 2186, 2187, 5, 177, 0, 0, 2187, 2188, 5, 317, 0, 0, 2188, 2189, 5, 112, 0, 0, 2189, 2190, 5, 317, 0, 0, 2190, 2191, 5, 10, 0, 0, 2191, 2192, 5, 2, 0, 0, 2192, 2197, 5, 3, 0, 0, 2193, 2194, 5, 11, 0, 0, 2194, 2196, 3, 66, 33, 0, 2195, 2193, 1, 0, 0, 0, 2196, 2199, 1, 0, 0, 0, 2197, 2195, 1, 0, 0, 0, 2197, 2198, 1, 0, 0, 0, 2198, 173, 1, 0, 0, 0, 2199, 2197, 1, 0, 0, 0, 2200, 2201, 5, 270, 0, 0, 2201, 2202, 5, 8, 0, 0, 2202, 2203, 5, 317, 0, 0, 2203, 2204, 5, 165, 0, 0, 2204, 2205, 5, 317, 0, 0, 2205, 2206, 5, 268, 0, 0, 2206, 2207, 5, 317, 0, 0, 2207, 2208, 5, 257, 0, 0, 2208, 2209, 5, 317, 0, 0, 2209, 2210, 5, 271, 0, 0, 2210, 2211, 5, 317, 0, 0, 2211, 2212, 5, 10, 0, 0, 2212, 2213, 5, 2, 0, 0, 2213, 2218, 5, 3, 0, 0, 2214, 2215, 5, 11, 0, 0, 2215, 2217, 3, 66, 33, 0, 2216, 2214, 1, 0, 0, 0, 2217, 2220, 1, 0, 0, 0, 2218, 2216, 1, 0, 0, 0, 2218, 2219, 1, 0, 0, 0, 2219, 175, 1, 0, 0, 0, 2220, 2218, 1, 0, 0, 0, 2221, 2222, 5, 272, 0, 0, 2222, 2223, 5, 8, 0, 0, 2223, 2224, 5, 317, 0, 0, 2224, 2225, 5, 165, 0, 0, 2225, 2226, 5, 317, 0, 0, 2226, 2227, 5, 273, 0, 0, 2227, 2228, 5, 317, 0, 0, 2228, 2229, 5, 274, 0, 0, 2229, 2230, 5, 317, 0, 0, 2230, 2231, 5, 10, 0, 0, 2231, 2232, 5, 2, 0, 0, 2232, 2233, 5, 317, 0, 0, 2233, 2238, 5, 3, 0, 0, 2234, 2235, 5, 11, 0, 0, 2235, 2237, 3, 66, 33, 0, 2236, 2234, 1, 0, 0, 0, 2237, 2240, 1, 0, 0, 0, 2238, 2236, 1, 0, 0, 0, 2238, 2239, 1, 0, 0, 0, 2239, 177, 1, 0, 0, 0, 2240, 2238, 1, 0, 0, 0, 2241, 2242, 5, 275, 0, 0, 2242, 2243, 5, 8, 0, 0, 2243, 2244, 5, 317, 0, 0, 2244, 2245, 5, 165, 0, 0, 2245, 2246, 5, 317, 0, 0, 2246, 2247, 5, 276, 0, 0, 2247, 2248, 5, 317, 0, 0, 2248, 2249, 5, 10, 0, 0, 2249, 2250, 5, 2, 0, 0, 2250, 2251, 5, 317, 0, 0, 2251, 2256, 5, 3, 0, 0, 2252, 2253, 5, 11, 0, 0, 2253, 2255, 3, 66, 33, 0, 2254, 2252, 1, 0, 0, 0, 2255, 2258, 1, 0, 0, 0, 2256, 2254, 1, 0, 0, 0, 2256, 2257, 1, 0, 0, 0, 2257, 179, 1, 0, 0, 0, 2258, 2256, 1, 0, 0, 0, 2259, 2260, 5, 277, 0, 0, 2260, 2261, 5, 8, 0, 0, 2261, 2262, 5, 317, 0, 0, 2262, 2263, 5, 165, 0, 0, 2263, 2264, 5, 317, 0, 0, 2264, 2265, 5, 106, 0, 0, 2265, 2266, 5, 317, 0, 0, 2266, 2267, 5, 278, 0, 0, 2267, 2268, 5, 317, 0, 0, 2268, 2269, 5, 279, 0, 0, 2269, 2270, 5, 317, 0, 0, 2270, 2271, 5, 280, 0, 0, 2271, 2272, 5, 317, 0, 0, 2272, 2273, 5, 281, 0, 0, 2273, 2274, 5, 317, 0, 0, 2274, 2275, 5, 282, 0, 0, 2275, 2276, 5, 317, 0, 0, 2276, 2277, 5, 283, 0, 0, 2277, 2278, 5, 317, 0, 0, 2278, 2279, 5, 105, 0, 0, 2279, 2280, 5, 317, 0, 0, 2280, 2281, 5, 10, 0, 0, 2281, 2282, 5, 2, 0, 0, 2282, 2283, 5, 317, 0, 0, 2283, 2288, 5, 3, 0, 0, 2284, 2285, 5, 11, 0, 0, 2285, 2287, 3, 66, 33, 0, 2286, 2284, 1, 0, 0, 0, 2287, 2290, 1, 0, 0, 0, 2288, 2286, 1, 0, 0, 0, 2288, 2289, 1, 0, 0, 0, 2289, 181, 1, 0, 0, 0, 2290, 2288, 1, 0, 0, 0, 2291, 2292, 5, 284, 0, 0, 2292, 2293, 5, 8, 0, 0, 2293, 2294, 5, 317, 0, 0, 2294, 2295, 5, 165, 0, 0, 2295, 2296, 5, 317, 0, 0, 2296, 2297, 5, 106, 0, 0, 2297, 2298, 5, 317, 0, 0, 2298, 2299, 5, 229, 0, 0, 2299, 2300, 5, 317, 0, 0, 2300, 2301, 5, 230, 0, 0, 2301, 2302, 5, 317, 0, 0, 2302, 2303, 5, 231, 0, 0, 2303, 2304, 5, 317, 0, 0, 2304, 2305, 5, 232, 0, 0, 2305, 2306, 5, 317, 0, 0, 2306, 2307, 5, 233, 0, 0, 2307, 2308, 5, 317, 0, 0, 2308, 2309, 5, 234, 0, 0, 2309, 2310, 5, 317, 0, 0, 2310, 2311, 5, 235, 0, 0, 2311, 2312, 5, 317, 0, 0, 2312, 2313, 5, 105, 0, 0, 2313, 2314, 5, 317, 0, 0, 2314, 2315, 5, 236, 0, 0, 2315, 2316, 5, 317, 0, 0, 2316, 2317, 5, 237, 0, 0, 2317, 2318, 5, 317, 0, 0, 2318, 2319, 5, 238, 0, 0, 2319, 2320, 5, 317, 0, 0, 2320, 2321, 5, 239, 0, 0, 2321, 2322, 5, 317, 0, 0, 2322, 2323, 5, 240, 0, 0, 2323, 2324, 5, 317, 0, 0, 2324, 2325, 5, 241, 0, 0, 2325, 2326, 5, 317, 0, 0, 2326, 2327, 5, 10, 0, 0, 2327, 2328, 5, 2, 0, 0, 2328, 2329, 5, 317, 0, 0, 2329, 2334, 5, 3, 0, 0, 2330, 2331, 5, 11, 0, 0, 2331, 2333, 3, 66, 33, 0, 2332, 2330, 1, 0, 0, 0, 2333, 2336, 1, 0, 0, 0, 2334, 2332, 1, 0, 0, 0, 2334, 2335, 1, 0, 0, 0, 2335, 183, 1, 0, 0, 0, 2336, 2334, 1, 0, 0, 0, 2337, 2338, 5, 285, 0, 0, 2338, 2339, 5, 8, 0, 0, 2339, 2340, 5, 317, 0, 0, 2340, 2341, 5, 165, 0, 0, 2341, 2342, 5, 317, 0, 0, 2342, 2343, 5, 106, 0, 0, 2343, 2344, 5, 317, 0, 0, 2344, 2345, 5, 259, 0, 0, 2345, 2346, 5, 317, 0, 0, 2346, 2347, 5, 10, 0, 0, 2347, 2348, 5, 2, 0, 0, 2348, 2349, 5, 317, 0, 0, 2349, 2354, 5, 3, 0, 0, 2350, 2351, 5, 11, 0, 0, 2351, 2353, 3, 66, 33, 0, 2352, 2350, 1, 0, 0, 0, 2353, 2356, 1, 0, 0, 0, 2354, 2352, 1, 0, 0, 0, 2354, 2355, 1, 0, 0, 0, 2355, 185, 1, 0, 0, 0, 2356, 2354, 1, 0, 0, 0, 2357, 2358, 5, 286, 0, 0, 2358, 2359, 5, 8, 0, 0, 2359, 2360, 5, 317, 0, 0, 2360, 2361, 5, 273, 0, 0, 2361, 2362, 5, 317, 0, 0, 2362, 2363, 5, 254, 0, 0, 2363, 2364, 5, 317, 0, 0, 2364, 2365, 5, 287, 0, 0, 2365, 2366, 5, 317, 0, 0, 2366, 2367, 5, 107, 0, 0, 2367, 2368, 5, 317, 0, 0, 2368, 2369, 5, 10, 0, 0, 2369, 2370, 5, 2, 0, 0, 2370, 2371, 5, 317, 0, 0, 2371, 2376, 5, 3, 0, 0, 2372, 2373, 5, 11, 0, 0, 2373, 2375, 3, 66, 33, 0, 2374, 2372, 1, 0, 0, 0, 2375, 2378, 1, 0, 0, 0, 2376, 2374, 1, 0, 0, 0, 2376, 2377, 1, 0, 0, 0, 2377, 187, 1, 0, 0, 0, 2378, 2376, 1, 0, 0, 0, 2379, 2380, 5, 288, 0, 0, 2380, 2381, 5, 8, 0, 0, 2381, 2382, 5, 317, 0, 0, 2382, 2383, 5, 165, 0, 0, 2383, 2384, 5, 317, 0, 0, 2384, 2385, 5, 254, 0, 0, 2385, 2386, 5, 317, 0, 0, 2386, 2387, 5, 244, 0, 0, 2387, 2388, 5, 2, 0, 0, 2388, 2389, 5, 317, 0, 0, 2389, 2394, 5, 3, 0, 0, 2390, 2391, 5, 11, 0, 0, 2391, 2393, 3, 66, 33, 0, 2392, 2390, 1, 0, 0, 0, 2393, 2396, 1, 0, 0, 0, 2394, 2392, 1, 0, 0, 0, 2394, 2395, 1, 0, 0, 0, 2395, 189, 1, 0, 0, 0, 2396, 2394, 1, 0, 0, 0, 2397, 2398, 5, 317, 0, 0, 2398, 191, 1, 0, 0, 0, 2399, 2400, 5, 289, 0, 0, 2400, 2401, 5, 8, 0, 0, 2401, 2402, 5, 317, 0, 0, 2402, 2403, 5, 290, 0, 0, 2403, 2404, 5, 317, 0, 0, 2404, 2405, 5, 291, 0, 0, 2405, 2406, 5, 317, 0, 0, 2406, 2407, 5, 292, 0, 0, 2407, 2408, 5, 317, 0, 0, 2408, 2409, 5, 106, 0, 0, 2409, 2410, 5, 317, 0, 0, 2410, 2411, 5, 107, 0, 0, 2411, 2412, 5, 317, 0, 0, 2412, 2413, 5, 10, 0, 0, 2413, 2414, 5, 2, 0, 0, 2414, 2415, 5, 317, 0, 0, 2415, 2420, 5, 3, 0, 0, 2416, 2417, 5, 11, 0, 0, 2417, 2419, 3, 66, 33, 0, 2418, 2416, 1, 0, 0, 0, 2419, 2422, 1, 0, 0, 0, 2420, 2418, 1, 0, 0, 0, 2420, 2421, 1, 0, 0, 0, 2421, 193, 1, 0, 0, 0, 2422, 2420, 1, 0, 0, 0, 2423, 2424, 5, 293, 0, 0, 2424, 2425, 5, 8, 0, 0, 2425, 2426, 5, 317, 0, 0, 2426, 2427, 5, 290, 0, 0, 2427, 2428, 5, 317, 0, 0, 2428, 2429, 5, 291, 0, 0, 2429, 2430, 5, 317, 0, 0, 2430, 2431, 5, 106, 0, 0, 2431, 2432, 5, 317, 0, 0, 2432, 2433, 5, 107, 0, 0, 2433, 2434, 5, 317, 0, 0, 2434, 2435, 5, 10, 0, 0, 2435, 2436, 5, 2, 0, 0, 2436, 2437, 5, 317, 0, 0, 2437, 2442, 5, 3, 0, 0, 2438, 2439, 5, 11, 0, 0, 2439, 2441, 3, 66, 33, 0, 2440, 2438, 1, 0, 0, 0, 2441, 2444, 1, 0, 0, 0, 2442, 2440, 1, 0, 0, 0, 2442, 2443, 1, 0, 0, 0, 2443, 195, 1, 0, 0, 0, 2444, 2442, 1, 0, 0, 0, 2445, 2446, 5, 294, 0, 0, 2446, 2447, 5, 8, 0, 0, 2447, 2448, 5, 317, 0, 0, 2448, 2449, 5, 268, 0, 0, 2449, 2450, 5, 317, 0, 0, 2450, 2451, 5, 295, 0, 0, 2451, 2452, 5, 317, 0, 0, 2452, 2453, 5, 97, 0, 0, 2453, 2454, 5, 317, 0, 0, 2454, 2455, 5, 107, 0, 0, 2455, 2456, 5, 317, 0, 0, 2456, 2457, 5, 10, 0, 0, 2457, 2458, 5, 2, 0, 0, 2458, 2459, 5, 317, 0, 0, 2459, 2464, 5, 3, 0, 0, 2460, 2461, 5, 11, 0, 0, 2461, 2463, 3, 66, 33, 0, 2462, 2460, 1, 0, 0, 0, 2463, 2466, 1, 0, 0, 0, 2464, 2462, 1, 0, 0, 0, 2464, 2465, 1, 0, 0, 0, 2465, 197, 1, 0, 0, 0, 2466, 2464, 1, 0, 0, 0, 2467, 2468, 5, 296, 0, 0, 2468, 2469, 5, 8, 0, 0, 2469, 2470, 5, 317, 0, 0, 2470, 2471, 5, 165, 0, 0, 2471, 2472, 5, 317, 0, 0, 2472, 2473, 5, 276, 0, 0, 2473, 2474, 5, 317, 0, 0, 2474, 2475, 5, 10, 0, 0, 2475, 2476, 5, 2, 0, 0, 2476, 2477, 5, 317, 0, 0, 2477, 2482, 5, 3, 0, 0, 2478, 2479, 5, 11, 0, 0, 2479, 2481, 3, 66, 33, 0, 2480, 2478, 1, 0, 0, 0, 2481, 2484, 1, 0, 0, 0, 2482, 2480, 1, 0, 0, 0, 2482, 2483, 1, 0, 0, 0, 2483, 199, 1, 0, 0, 0, 2484, 2482, 1, 0, 0, 0, 2485, 2486, 5, 297, 0, 0, 2486, 2487, 5, 8, 0, 0, 2487, 2488, 5, 317, 0, 0, 2488, 2489, 5, 177, 0, 0, 2489, 2490, 5, 317, 0, 0, 2490, 2491, 5, 105, 0, 0, 2491, 2492, 5, 317, 0, 0, 2492, 2493, 5, 165, 0, 0, 2493, 2494, 5, 317, 0, 0, 2494, 2495, 5, 10, 0, 0, 2495, 2496, 5, 2, 0, 0, 2496, 2501, 5, 3, 0, 0, 2497, 2498, 5, 11, 0, 0, 2498, 2500, 3, 66, 33, 0, 2499, 2497, 1, 0, 0, 0, 2500, 2503, 1, 0, 0, 0, 2501, 2499, 1, 0, 0, 0, 2501, 2502, 1, 0, 0, 0, 2502, 201, 1, 0, 0, 0, 2503, 2501, 1, 0, 0, 0, 2504, 2505, 5, 298, 0, 0, 2505, 2506, 5, 8, 0, 0, 2506, 2507, 5, 317, 0, 0, 2507, 2508, 5, 165, 0, 0, 2508, 2509, 5, 317, 0, 0, 2509, 2510, 5, 299, 0, 0, 2510, 2511, 5, 317, 0, 0, 2511, 2512, 5, 10, 0, 0, 2512, 2513, 5, 2, 0, 0, 2513, 2514, 5, 317, 0, 0, 2514, 2519, 5, 3, 0, 0, 2515, 2516, 5, 11, 0, 0, 2516, 2518, 3, 66, 33, 0, 2517, 2515, 1, 0, 0, 0, 2518, 2521, 1, 0, 0, 0, 2519, 2517, 1, 0, 0, 0, 2519, 2520, 1, 0, 0, 0, 2520, 203, 1, 0, 0, 0, 2521, 2519, 1, 0, 0, 0, 2522, 2523, 5, 300, 0, 0, 2523, 2524, 5, 8, 0, 0, 2524, 2525, 5, 317, 0, 0, 2525, 2526, 5, 105, 0, 0, 2526, 2527, 5, 317, 0, 0, 2527, 2528, 5, 107, 0, 0, 2528, 2529, 5, 317, 0, 0, 2529, 2530, 5, 10, 0, 0, 2530, 2531, 5, 2, 0, 0, 2531, 2532, 5, 317, 0, 0, 2532, 2537, 5, 3, 0, 0, 2533, 2534, 5, 11, 0, 0, 2534, 2536, 3, 66, 33, 0, 2535, 2533, 1, 0, 0, 0, 2536, 2539, 1, 0, 0, 0, 2537, 2535, 1, 0, 0, 0, 2537, 2538, 1, 0, 0, 0, 2538, 205, 1, 0, 0, 0, 2539, 2537, 1, 0, 0, 0, 2540, 2541, 5, 301, 0, 0, 2541, 2542, 5, 8, 0, 0, 2542, 2543, 5, 317, 0, 0, 2543, 2544, 5, 150, 0, 0, 2544, 2545, 5, 317, 0, 0, 2545, 2546, 5, 165, 0, 0, 2546, 2547, 5, 317, 0, 0, 2547, 2548, 5, 162, 0, 0, 2548, 2549, 5, 317, 0, 0, 2549, 2550, 5, 10, 0, 0, 2550, 2551, 5, 2, 0, 0, 2551, 2552, 5, 317, 0, 0, 2552, 2557, 5, 3, 0, 0, 2553, 2554, 5, 11, 0, 0, 2554, 2556, 3, 66, 33, 0, 2555, 2553, 1, 0, 0, 0, 2556, 2559, 1, 0, 0, 0, 2557, 2555, 1, 0, 0, 0, 2557, 2558, 1, 0, 0, 0, 2558, 2564, 1, 0, 0, 0, 2559, 2557, 1, 0, 0, 0, 2560, 2561, 5, 29, 0, 0, 2561, 2563, 5, 317, 0, 0, 2562, 2560, 1, 0, 0, 0, 2563, 2566, 1, 0, 0, 0, 2564, 2562, 1, 0, 0, 0, 2564, 2565, 1, 0, 0, 0, 2565, 207, 1, 0, 0, 0, 2566, 2564, 1, 0, 0, 0, 2567, 2568, 5, 302, 0, 0, 2568, 2569, 5, 8, 0, 0, 2569, 2570, 5, 317, 0, 0, 2570, 2571, 5, 303, 0, 0, 2571, 2572, 5, 317, 0, 0, 2572, 2573, 5, 107, 0, 0, 2573, 2574, 5, 317, 0, 0, 2574, 2575, 5, 304, 0, 0, 2575, 2576, 5, 317, 0, 0, 2576, 2577, 5, 106, 0, 0, 2577, 2578, 5, 317, 0, 0, 2578, 2579, 5, 305, 0, 0, 2579, 2580, 5, 317, 0, 0, 2580, 2581, 5, 10, 0, 0, 2581, 2582, 5, 2, 0, 0, 2582, 2583, 5, 317, 0, 0, 2583, 2588, 5, 3, 0, 0, 2584, 2585, 5, 11, 0, 0, 2585, 2587, 3, 66, 33, 0, 2586, 2584, 1, 0, 0, 0, 2587, 2590, 1, 0, 0, 0, 2588, 2586, 1, 0, 0, 0, 2588, 2589, 1, 0, 0, 0, 2589, 209, 1, 0, 0, 0, 2590, 2588, 1, 0, 0, 0, 2591, 2592, 5, 306, 0, 0, 2592, 2593, 5, 8, 0, 0, 2593, 2594, 5, 317, 0, 0, 2594, 2595, 5, 150, 0, 0, 2595, 2596, 5, 317, 0, 0, 2596, 2597, 5, 165, 0, 0, 2597, 2598, 5, 317, 0, 0, 2598, 2599, 5, 162, 0, 0, 2599, 2600, 5, 317, 0, 0, 2600, 2601, 5, 307, 0, 0, 2601, 2602, 5, 317, 0, 0, 2602, 2603, 5, 10, 0, 0, 2603, 2604, 5, 2, 0, 0, 2604, 2605, 5, 317, 0, 0, 2605, 2610, 5, 3, 0, 0, 2606, 2607, 5, 11, 0, 0, 2607, 2609, 3, 66, 33, 0, 2608, 2606, 1, 0, 0, 0, 2609, 2612, 1, 0, 0, 0, 2610, 2608, 1, 0, 0, 0, 2610, 2611, 1, 0, 0, 0, 2611, 2617, 1, 0, 0, 0, 2612, 2610, 1, 0, 0, 0, 2613, 2614, 5, 29, 0, 0, 2614, 2616, 5, 317, 0, 0, 2615, 2613, 1, 0, 0, 0, 2616, 2619, 1, 0, 0, 0, 2617, 2615, 1, 0, 0, 0, 2617, 2618, 1, 0, 0, 0, 2618, 211, 1, 0, 0, 0, 2619, 2617, 1, 0, 0, 0, 2620, 2621, 5, 308, 0, 0, 2621, 2622, 5, 8, 0, 0, 2622, 2623, 5, 317, 0, 0, 2623, 2624, 5, 105, 0, 0, 2624, 2625, 5, 317, 0, 0, 2625, 2626, 5, 10, 0, 0, 2626, 2627, 5, 2, 0, 0, 2627, 2628, 5, 317, 0, 0, 2628, 2633, 5, 3, 0, 0, 2629, 2630, 5, 11, 0, 0, 2630, 2632, 3, 66, 33, 0, 2631, 2629, 1, 0, 0, 0, 2632, 2635, 1, 0, 0, 0, 2633, 2631, 1, 0, 0, 0, 2633, 2634, 1, 0, 0, 0, 2634, 213, 1, 0, 0, 0, 2635, 2633, 1, 0, 0, 0, 2636, 2639, 3, 216, 108, 0, 2637, 2639, 3, 220, 110, 0, 2638, 2636, 1, 0, 0, 0, 2638, 2637, 1, 0, 0, 0, 2639, 215, 1, 0, 0, 0, 2640, 2641, 5, 2, 0, 0, 2641, 2646, 3, 218, 109, 0, 2642, 2643, 5, 309, 0, 0, 2643, 2645, 3, 218, 109, 0, 2644, 2642, 1, 0, 0, 0, 2645, 2648, 1, 0, 0, 0, 2646, 2644, 1, 0, 0, 0, 2646, 2647, 1, 0, 0, 0, 2647, 2649, 1, 0, 0, 0, 2648, 2646, 1, 0, 0, 0, 2649, 2650, 5, 3, 0, 0, 2650, 2654, 1, 0, 0, 0, 2651, 2652, 5, 2, 0, 0, 2652, 2654, 5, 3, 0, 0, 2653, 2640, 1, 0, 0, 0, 2653, 2651, 1, 0, 0, 0, 2654, 217, 1, 0, 0, 0, 2655, 2656, 5, 317, 0, 0, 2656, 2657, 5, 310, 0, 0, 2657, 2658, 3, 222, 111, 0, 2658, 219, 1, 0, 0, 0, 2659, 2660, 5, 311, 0, 0, 2660, 2665, 3, 222, 111, 0, 2661, 2662, 5, 309, 0, 0, 2662, 2664, 3, 222, 111, 0, 2663, 2661, 1, 0, 0, 0, 2664, 2667, 1, 0, 0, 0, 2665, 2663, 1, 0, 0, 0, 2665, 2666, 1, 0, 0, 0, 2666, 2668, 1, 0, 0, 0, 2667, 2665, 1, 0, 0, 0, 2668, 2669, 5, 312, 0, 0, 2669, 2673, 1, 0, 0, 0, 2670, 2671, 5, 311, 0, 0, 2671, 2673, 5, 312, 0, 0, 2672, 2659, 1, 0, 0, 0, 2672, 2670, 1, 0, 0, 0, 2673, 221, 1, 0, 0, 0, 2674, 2682, 5, 317, 0, 0, 2675, 2682, 5, 323, 0, 0, 2676, 2682, 3, 216, 108, 0, 2677, 2682, 3, 220, 110, 0, 2678, 2682, 5, 313, 0, 0, 2679, 2682, 5, 314, 0, 0, 2680, 2682, 5, 315, 0, 0, 2681, 2674, 1, 0, 0, 0, 2681, 2675, 1, 0, 0, 0, 2681, 2676, 1, 0, 0, 0, 2681, 2677, 1, 0, 0, 0, 2681, 2678, 1, 0, 0, 0, 2681, 2679, 1, 0, 0, 0, 2681, 2680, 1, 0, 0, 0, 2682, 223, 1, 0, 0, 0, 141, 237, 247, 257, 361, 370, 378, 386, 393, 411, 418, 425, 432, 448, 455, 479, 492, 512, 519, 539, 546, 560, 576, 597, 609, 626, 633, 645, 653, 665, 681, 693, 700, 718, 725, 732, 749, 768, 782, 802, 816, 835, 851, 862, 869, 879, 886, 898, 906, 913, 925, 934, 942, 950, 957, 964, 980, 994, 1026, 1055, 1069, 1083, 1100, 1117, 1137, 1157, 1171, 1190, 1206, 1235, 1264, 1310, 1328, 1344, 1368, 1384, 1407, 1430, 1449, 1488, 1512, 1540, 1547, 1554, 1561, 1577, 1603, 1618, 1636, 1656, 1673, 1700, 1727, 1756, 1772, 1793, 1812, 1831, 1852, 1871, 1890, 1909, 1926, 1969, 1989, 1996, 2014, 2038, 2062, 2082, 2102, 2142, 2157, 2172, 2197, 2218, 2238, 2256, 2288, 2334, 2354, 2376, 2394, 2420, 2442, 2464, 2482, 2501, 2519, 2537, 2557, 2564, 2588, 2610, 2617, 2633, 2638, 2646, 2653, 2665, 2672, 2681] \ No newline at end of file diff --git a/src/main/antlr/in.handyman.raven/compiler/Raven.tokens b/src/main/antlr/in.handyman.raven/compiler/Raven.tokens new file mode 100644 index 00000000..c8d3ce0e --- /dev/null +++ b/src/main/antlr/in.handyman.raven/compiler/Raven.tokens @@ -0,0 +1,638 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +T__13=14 +T__14=15 +T__15=16 +T__16=17 +T__17=18 +T__18=19 +T__19=20 +T__20=21 +T__21=22 +T__22=23 +T__23=24 +T__24=25 +T__25=26 +T__26=27 +T__27=28 +T__28=29 +T__29=30 +T__30=31 +T__31=32 +T__32=33 +T__33=34 +T__34=35 +T__35=36 +T__36=37 +T__37=38 +T__38=39 +T__39=40 +T__40=41 +T__41=42 +T__42=43 +T__43=44 +T__44=45 +T__45=46 +T__46=47 +T__47=48 +T__48=49 +T__49=50 +T__50=51 +T__51=52 +T__52=53 +T__53=54 +T__54=55 +T__55=56 +T__56=57 +T__57=58 +T__58=59 +T__59=60 +T__60=61 +T__61=62 +T__62=63 +T__63=64 +T__64=65 +T__65=66 +T__66=67 +T__67=68 +T__68=69 +T__69=70 +T__70=71 +T__71=72 +T__72=73 +T__73=74 +T__74=75 +T__75=76 +T__76=77 +T__77=78 +T__78=79 +T__79=80 +T__80=81 +T__81=82 +T__82=83 +T__83=84 +T__84=85 +T__85=86 +T__86=87 +T__87=88 +T__88=89 +T__89=90 +T__90=91 +T__91=92 +T__92=93 +T__93=94 +T__94=95 +T__95=96 +T__96=97 +T__97=98 +T__98=99 +T__99=100 +T__100=101 +T__101=102 +T__102=103 +T__103=104 +T__104=105 +T__105=106 +T__106=107 +T__107=108 +T__108=109 +T__109=110 +T__110=111 +T__111=112 +T__112=113 +T__113=114 +T__114=115 +T__115=116 +T__116=117 +T__117=118 +T__118=119 +T__119=120 +T__120=121 +T__121=122 +T__122=123 +T__123=124 +T__124=125 +T__125=126 +T__126=127 +T__127=128 +T__128=129 +T__129=130 +T__130=131 +T__131=132 +T__132=133 +T__133=134 +T__134=135 +T__135=136 +T__136=137 +T__137=138 +T__138=139 +T__139=140 +T__140=141 +T__141=142 +T__142=143 +T__143=144 +T__144=145 +T__145=146 +T__146=147 +T__147=148 +T__148=149 +T__149=150 +T__150=151 +T__151=152 +T__152=153 +T__153=154 +T__154=155 +T__155=156 +T__156=157 +T__157=158 +T__158=159 +T__159=160 +T__160=161 +T__161=162 +T__162=163 +T__163=164 +T__164=165 +T__165=166 +T__166=167 +T__167=168 +T__168=169 +T__169=170 +T__170=171 +T__171=172 +T__172=173 +T__173=174 +T__174=175 +T__175=176 +T__176=177 +T__177=178 +T__178=179 +T__179=180 +T__180=181 +T__181=182 +T__182=183 +T__183=184 +T__184=185 +T__185=186 +T__186=187 +T__187=188 +T__188=189 +T__189=190 +T__190=191 +T__191=192 +T__192=193 +T__193=194 +T__194=195 +T__195=196 +T__196=197 +T__197=198 +T__198=199 +T__199=200 +T__200=201 +T__201=202 +T__202=203 +T__203=204 +T__204=205 +T__205=206 +T__206=207 +T__207=208 +T__208=209 +T__209=210 +T__210=211 +T__211=212 +T__212=213 +T__213=214 +T__214=215 +T__215=216 +T__216=217 +T__217=218 +T__218=219 +T__219=220 +T__220=221 +T__221=222 +T__222=223 +T__223=224 +T__224=225 +T__225=226 +T__226=227 +T__227=228 +T__228=229 +T__229=230 +T__230=231 +T__231=232 +T__232=233 +T__233=234 +T__234=235 +T__235=236 +T__236=237 +T__237=238 +T__238=239 +T__239=240 +T__240=241 +T__241=242 +T__242=243 +T__243=244 +T__244=245 +T__245=246 +T__246=247 +T__247=248 +T__248=249 +T__249=250 +T__250=251 +T__251=252 +T__252=253 +T__253=254 +T__254=255 +T__255=256 +T__256=257 +T__257=258 +T__258=259 +T__259=260 +T__260=261 +T__261=262 +T__262=263 +T__263=264 +T__264=265 +T__265=266 +T__266=267 +T__267=268 +T__268=269 +T__269=270 +T__270=271 +T__271=272 +T__272=273 +T__273=274 +T__274=275 +T__275=276 +T__276=277 +T__277=278 +T__278=279 +T__279=280 +T__280=281 +T__281=282 +T__282=283 +T__283=284 +T__284=285 +T__285=286 +T__286=287 +T__287=288 +T__288=289 +T__289=290 +T__290=291 +T__291=292 +T__292=293 +T__293=294 +T__294=295 +T__295=296 +T__296=297 +T__297=298 +T__298=299 +T__299=300 +T__300=301 +T__301=302 +T__302=303 +T__303=304 +T__304=305 +T__305=306 +T__306=307 +T__307=308 +T__308=309 +T__309=310 +T__310=311 +T__311=312 +T__312=313 +T__313=314 +T__314=315 +NON_ZERO_DIGIT=316 +STRING=317 +CRLF=318 +Operator=319 +WS=320 +COMMENT=321 +LINE_COMMENT=322 +NUMBER=323 +'process'=1 +'{'=2 +'}'=3 +'try'=4 +'finally'=5 +'catch'=6 +'multitude'=7 +'as'=8 +'on'=9 +'using'=10 +'on-condition'=11 +'fielding'=12 +'copydata'=13 +'from'=14 +'to'=15 +'with-fetch-batch-size'=16 +'with-write-batch-size'=17 +'transform'=18 +'do-format'=19 +'loadcsv'=20 +'pid'=21 +'with'=22 +'by-batch'=23 +'abort'=24 +'callprocess'=25 +'with-target'=26 +'from-file'=27 +'for-every'=28 +'on-parallel-fielding'=29 +'forkprocess'=30 +'watermark'=31 +'spawn'=32 +'dogleg'=33 +'use-parent-context'=34 +'start-process'=35 +'with-file'=36 +'assign'=37 +'source'=38 +'dropfile'=39 +'in-path'=40 +'restapi'=41 +'url'=42 +'method'=43 +'with headers'=44 +'with params'=45 +'with body type'=46 +'{ part'=47 +'type as'=48 +'exportCsv'=49 +'executionSource'=50 +'targetLocation'=51 +'importCsvToDB'=52 +'target'=53 +'batch'=54 +'extractTAR'=55 +'destination'=56 +'createTAR'=57 +'extension'=58 +'createDirectory'=59 +'createFile'=60 +'location'=61 +'fileName'=62 +'deleteFileDirectory'=63 +'transferFileDirectory'=64 +'operation'=65 +'pcm'=66 +'on-resource'=67 +'produce'=68 +'consume'=69 +'producer'=70 +'push-result-at'=71 +'execute'=72 +'consumer'=73 +'pop-event-from'=74 +'pop-result-from'=75 +'limit'=76 +'on-standalone'=77 +'push-json-into-context'=78 +'with-key'=79 +'using-value'=80 +'map-json-into-context'=81 +'sharepoint'=82 +'client-id'=83 +'tenant-id'=84 +'client-secret'=85 +'org-name'=86 +'action-type'=87 +'site-url'=88 +'source-relative-path'=89 +'file-name'=90 +'target-relative-path'=91 +'if'=92 +'log'=93 +'level'=94 +'message'=95 +'raise exception'=96 +'checksum'=97 +'fileSize'=98 +'download-asset'=99 +'from-url'=100 +'at'=101 +'paper-itemization'=102 +'from-target-file'=103 +'autoRotation'=104 +'output-dir'=105 +'process-id'=106 +'resource-conn'=107 +'blankPageRemover'=108 +'qrAttribution'=109 +'uploadAsset'=110 +'template-id'=111 +'auth-token'=112 +'fileMerger'=113 +'in'=114 +'ftps_upload'=115 +'with-remote-host'=116 +'port'=117 +'user-name'=118 +'password'=119 +'session-timeout'=120 +'source-file-to-upload'=121 +'in-destination-to-save'=122 +'upload-check'=123 +'ftps_download'=124 +'source-file-to-download'=125 +'download-check'=126 +'sftp'=127 +'channel-timeout'=128 +'ftp'=129 +'create-zip'=130 +'extract-zip'=131 +'sorGroupDetails'=132 +'keyfields'=133 +'searchfields'=134 +'groupbyfields'=135 +'targettable'=136 +'zeroShotClassifier'=137 +'with-candidate-labels'=138 +'loadExtractedData'=139 +'file-path'=140 +'paper-no'=141 +'intics-reference-id'=142 +'batch-id'=143 +'target-dir'=144 +'absentKeyFilter'=145 +'sor-list'=146 +'sorFilter'=147 +'search-value'=148 +'triage'=149 +'in-output-dir'=150 +'with-labelled-classifier-model-path'=151 +'with-handwritten-extractor-model-path'=152 +'with-checkbox-extractor-model-path'=153 +'using-synonyms'=154 +'using-labelled-classifier-labels'=155 +'using-vilt-coco-labels'=156 +'add-vilt-question-config'=157 +'add-vilt-coco-overide-config'=158 +'add-vilt-coco-threshold-config'=159 +'add-config-vgg-img-width'=160 +'add-config-vgg-img-height'=161 +'save-response-as'=162 +'docnetAttribution'=163 +'for-input-file'=164 +'on-resource-conn'=165 +'using-attribute-questions'=166 +'tqa-filter'=167 +'using-truth-extractor-url'=168 +'add-config-max-doctr-inner-join-diff'=169 +'add-config-max-question-spacing-diff'=170 +'using-synonmys'=171 +'using-input-files'=172 +'text-filtering'=173 +'key-filtering'=174 +'with-doc-id'=175 +'for-paper'=176 +'group-id'=177 +'entity-key-filtering'=178 +'with-mandatory-key-filtering'=179 +'check-threshold'=180 +'threshold-value'=181 +'jsonToFile'=182 +'export-into'=183 +'docnetResult'=184 +'using-copro'=185 +'using-weightage'=186 +'setContextValue'=187 +'context-key'=188 +'context-value'=189 +'evalPatientName'=190 +'patient-name'=191 +'word-count-limit'=192 +'char-count-limit'=193 +'ner-api'=194 +'word-count-threshold'=195 +'char-count-threshold'=196 +'ner-api-threshold'=197 +'evalMemberId'=198 +'member-id'=199 +'special-character'=200 +'validator-threshold'=201 +'evalDateOfBirth'=202 +'date-of-birth'=203 +'comparable-year'=204 +'date-formats'=205 +'dirPath'=206 +'fileDetails'=207 +'dirpath'=208 +'groupId'=209 +'inboundId'=210 +'wordcount'=211 +'word-threshold'=212 +'input-value'=213 +'word-limit'=214 +'charactercount'=215 +'char-threshold'=216 +'char-limit'=217 +'datevalidator'=218 +'allowed-date-formats'=219 +'comparable-date'=220 +'alphavalidator'=221 +'allowed-special-characters'=222 +'alphanumericvalidator'=223 +'numericvalidator'=224 +'nervalidator'=225 +'ner-threshold'=226 +'urgencyTriage'=227 +'input-file-path'=228 +'binary-classifier-model-file-path'=229 +'multi-classifier-model-file-path'=230 +'checkbox-classifier-model-file-path'=231 +'synonyms'=232 +'binary-classifier-labels'=233 +'multi-classifier-labels'=234 +'checkbox-classifier-labels'=235 +'binary-image-width'=236 +'binary-image-height'=237 +'multi-image-width'=238 +'multi-image-height'=239 +'checkbox-image-width'=240 +'checkbox-image-height'=241 +'donut-docqa'=242 +'scalarAdapter'=243 +'using-docnut-result'=244 +'phrase-match-paper-filter'=245 +'for-process-id'=246 +'thread-count'=247 +'read-batch-size'=248 +'write-batch-size'=249 +'with-input-query'=250 +'zero-shot-classifier-paper-filter'=251 +'assetInfo'=252 +'get-audit-table'=253 +'result-table'=254 +'dataExtraction'=255 +'episodeOfCoverage'=256 +'origin-id'=257 +'total-pages'=258 +'output-table'=259 +'grouping-item'=260 +'patient-eoc-count'=261 +'qr-grouping'=262 +'eoc-grouping'=263 +'pnd-grouping'=264 +'userRegistration'=265 +'authToken'=266 +'eocJsonGenerator'=267 +'document-id'=268 +'eoc-id'=269 +'zipContentList'=270 +'zip-file-path'=271 +'hwDetection'=272 +'outputDir'=273 +'modelPath'=274 +'intellimatch'=275 +'match-result'=276 +'checkbox-vqa'=277 +'cad-model-path'=278 +'cd-model-path'=279 +'cr-model-path'=280 +'text-model'=281 +'cr-width'=282 +'cr-height'=283 +'pixel-classifier-urgency-triage'=284 +'qr-extraction'=285 +'paperItemizer'=286 +'processId'=287 +'nerAdapter'=288 +'coproStart'=289 +'for'=290 +'copro-server-url'=291 +'export-command'=292 +'coproStop'=293 +'outbound-delivery-notify'=294 +'intics-zip-uri'=295 +'masterdataComparison'=296 +'zipBatch'=297 +'drugMatch'=298 +'drug-compare'=299 +'urgencyTriageModel'=300 +'donut-impira-qa'=301 +'templateDetection'=302 +'copro-url'=303 +'input-table'=304 +'ouput-table'=305 +'trinity-docqa'=306 +'api-endpoint'=307 +'file-bucketing'=308 +','=309 +':'=310 +'['=311 +']'=312 +'true'=313 +'false'=314 +'null'=315 diff --git a/src/main/antlr/in.handyman.raven/compiler/RavenBaseListener.java b/src/main/antlr/in.handyman.raven/compiler/RavenBaseListener.java new file mode 100644 index 00000000..cccfd7b2 --- /dev/null +++ b/src/main/antlr/in.handyman.raven/compiler/RavenBaseListener.java @@ -0,0 +1,1386 @@ +// Generated from java-escape by ANTLR 4.11.1 + +package in.handyman.raven.compiler; + + +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link RavenListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +@SuppressWarnings("CheckReturnValue") +public class RavenBaseListener implements RavenListener { + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProcess(RavenParser.ProcessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProcess(RavenParser.ProcessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTryClause(RavenParser.TryClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTryClause(RavenParser.TryClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFinallyClause(RavenParser.FinallyClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFinallyClause(RavenParser.FinallyClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatchClause(RavenParser.CatchClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatchClause(RavenParser.CatchClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAction(RavenParser.ActionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAction(RavenParser.ActionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMultitude(RavenParser.MultitudeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMultitude(RavenParser.MultitudeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCopyData(RavenParser.CopyDataContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCopyData(RavenParser.CopyDataContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTransform(RavenParser.TransformContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTransform(RavenParser.TransformContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLoadCsv(RavenParser.LoadCsvContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLoadCsv(RavenParser.LoadCsvContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAbort(RavenParser.AbortContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAbort(RavenParser.AbortContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCallProcess(RavenParser.CallProcessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCallProcess(RavenParser.CallProcessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForkProcess(RavenParser.ForkProcessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForkProcess(RavenParser.ForkProcessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSpawnProcess(RavenParser.SpawnProcessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSpawnProcess(RavenParser.SpawnProcessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDogLeg(RavenParser.DogLegContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDogLeg(RavenParser.DogLegContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStartProcess(RavenParser.StartProcessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStartProcess(RavenParser.StartProcessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssign(RavenParser.AssignContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssign(RavenParser.AssignContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDropFile(RavenParser.DropFileContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDropFile(RavenParser.DropFileContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRestApi(RavenParser.RestApiContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRestApi(RavenParser.RestApiContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRestPart(RavenParser.RestPartContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRestPart(RavenParser.RestPartContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExportCsv(RavenParser.ExportCsvContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExportCsv(RavenParser.ExportCsvContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImportCsvToDB(RavenParser.ImportCsvToDBContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImportCsvToDB(RavenParser.ImportCsvToDBContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExtractTAR(RavenParser.ExtractTARContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExtractTAR(RavenParser.ExtractTARContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateTAR(RavenParser.CreateTARContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateTAR(RavenParser.CreateTARContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateDirectory(RavenParser.CreateDirectoryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateDirectory(RavenParser.CreateDirectoryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateFile(RavenParser.CreateFileContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateFile(RavenParser.CreateFileContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDeleteFileDirectory(RavenParser.DeleteFileDirectoryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDeleteFileDirectory(RavenParser.DeleteFileDirectoryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTransferFileDirectory(RavenParser.TransferFileDirectoryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTransferFileDirectory(RavenParser.TransferFileDirectoryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProducerConsumerModel(RavenParser.ProducerConsumerModelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProducerConsumerModel(RavenParser.ProducerConsumerModelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProducer(RavenParser.ProducerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProducer(RavenParser.ProducerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConsumer(RavenParser.ConsumerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConsumer(RavenParser.ConsumerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPushJson(RavenParser.PushJsonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPushJson(RavenParser.PushJsonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMapJsonContext(RavenParser.MapJsonContextContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMapJsonContext(RavenParser.MapJsonContextContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSharePoint(RavenParser.SharePointContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSharePoint(RavenParser.SharePointContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpression(RavenParser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpression(RavenParser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLog(RavenParser.LogContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLog(RavenParser.LogContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRavenVmException(RavenParser.RavenVmExceptionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRavenVmException(RavenParser.RavenVmExceptionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterChecksum(RavenParser.ChecksumContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitChecksum(RavenParser.ChecksumContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFileSize(RavenParser.FileSizeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFileSize(RavenParser.FileSizeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDownloadAsset(RavenParser.DownloadAssetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDownloadAsset(RavenParser.DownloadAssetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPaperItemization(RavenParser.PaperItemizationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPaperItemization(RavenParser.PaperItemizationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAutoRotation(RavenParser.AutoRotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAutoRotation(RavenParser.AutoRotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBlankPageRemover(RavenParser.BlankPageRemoverContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBlankPageRemover(RavenParser.BlankPageRemoverContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQrAttribution(RavenParser.QrAttributionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQrAttribution(RavenParser.QrAttributionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUploadAsset(RavenParser.UploadAssetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUploadAsset(RavenParser.UploadAssetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFileMerger(RavenParser.FileMergerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFileMerger(RavenParser.FileMergerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFtpsUpload(RavenParser.FtpsUploadContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFtpsUpload(RavenParser.FtpsUploadContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFtpsDownload(RavenParser.FtpsDownloadContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFtpsDownload(RavenParser.FtpsDownloadContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSftpConnector(RavenParser.SftpConnectorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSftpConnector(RavenParser.SftpConnectorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateZip(RavenParser.CreateZipContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateZip(RavenParser.CreateZipContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExtractZip(RavenParser.ExtractZipContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExtractZip(RavenParser.ExtractZipContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSorGroupDetails(RavenParser.SorGroupDetailsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSorGroupDetails(RavenParser.SorGroupDetailsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterZeroShotClassifier(RavenParser.ZeroShotClassifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitZeroShotClassifier(RavenParser.ZeroShotClassifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLoadExtractedData(RavenParser.LoadExtractedDataContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLoadExtractedData(RavenParser.LoadExtractedDataContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAbsentKeyFilter(RavenParser.AbsentKeyFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAbsentKeyFilter(RavenParser.AbsentKeyFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSorFilter(RavenParser.SorFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSorFilter(RavenParser.SorFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTriageAttribution(RavenParser.TriageAttributionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTriageAttribution(RavenParser.TriageAttributionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDocnetAttribution(RavenParser.DocnetAttributionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDocnetAttribution(RavenParser.DocnetAttributionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTqaFilter(RavenParser.TqaFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTqaFilter(RavenParser.TqaFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTextFilter(RavenParser.TextFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTextFilter(RavenParser.TextFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEntityFilter(RavenParser.EntityFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEntityFilter(RavenParser.EntityFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterThresholdCheck(RavenParser.ThresholdCheckContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitThresholdCheck(RavenParser.ThresholdCheckContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterJsonToFile(RavenParser.JsonToFileContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitJsonToFile(RavenParser.JsonToFileContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDocnetResult(RavenParser.DocnetResultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDocnetResult(RavenParser.DocnetResultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetContextValue(RavenParser.SetContextValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetContextValue(RavenParser.SetContextValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEvalPatientName(RavenParser.EvalPatientNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEvalPatientName(RavenParser.EvalPatientNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEvalMemberId(RavenParser.EvalMemberIdContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEvalMemberId(RavenParser.EvalMemberIdContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEvalDateOfBirth(RavenParser.EvalDateOfBirthContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEvalDateOfBirth(RavenParser.EvalDateOfBirthContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDirPath(RavenParser.DirPathContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDirPath(RavenParser.DirPathContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFileDetails(RavenParser.FileDetailsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFileDetails(RavenParser.FileDetailsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWordcount(RavenParser.WordcountContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWordcount(RavenParser.WordcountContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCharactercount(RavenParser.CharactercountContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCharactercount(RavenParser.CharactercountContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatevalidator(RavenParser.DatevalidatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatevalidator(RavenParser.DatevalidatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlphavalidator(RavenParser.AlphavalidatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlphavalidator(RavenParser.AlphavalidatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlphanumericvalidator(RavenParser.AlphanumericvalidatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlphanumericvalidator(RavenParser.AlphanumericvalidatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumericvalidator(RavenParser.NumericvalidatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumericvalidator(RavenParser.NumericvalidatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNervalidator(RavenParser.NervalidatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNervalidator(RavenParser.NervalidatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUrgencyTriage(RavenParser.UrgencyTriageContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUrgencyTriage(RavenParser.UrgencyTriageContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDonutDocQa(RavenParser.DonutDocQaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDonutDocQa(RavenParser.DonutDocQaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterScalarAdapter(RavenParser.ScalarAdapterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitScalarAdapter(RavenParser.ScalarAdapterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPhraseMatchPaperFilter(RavenParser.PhraseMatchPaperFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPhraseMatchPaperFilter(RavenParser.PhraseMatchPaperFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterZeroShotClassifierPaperFilter(RavenParser.ZeroShotClassifierPaperFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitZeroShotClassifierPaperFilter(RavenParser.ZeroShotClassifierPaperFilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssetInfo(RavenParser.AssetInfoContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssetInfo(RavenParser.AssetInfoContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDataExtraction(RavenParser.DataExtractionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDataExtraction(RavenParser.DataExtractionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEpisodeOfCoverage(RavenParser.EpisodeOfCoverageContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEpisodeOfCoverage(RavenParser.EpisodeOfCoverageContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUserRegistration(RavenParser.UserRegistrationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUserRegistration(RavenParser.UserRegistrationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAuthToken(RavenParser.AuthTokenContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAuthToken(RavenParser.AuthTokenContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEocJsonGenerator(RavenParser.EocJsonGeneratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEocJsonGenerator(RavenParser.EocJsonGeneratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterZipContentList(RavenParser.ZipContentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitZipContentList(RavenParser.ZipContentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterHwDetection(RavenParser.HwDetectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitHwDetection(RavenParser.HwDetectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIntellimatch(RavenParser.IntellimatchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIntellimatch(RavenParser.IntellimatchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCheckboxVqa(RavenParser.CheckboxVqaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCheckboxVqa(RavenParser.CheckboxVqaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPixelClassifierUrgencyTriage(RavenParser.PixelClassifierUrgencyTriageContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPixelClassifierUrgencyTriage(RavenParser.PixelClassifierUrgencyTriageContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQrExtraction(RavenParser.QrExtractionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQrExtraction(RavenParser.QrExtractionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPaperItemizer(RavenParser.PaperItemizerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPaperItemizer(RavenParser.PaperItemizerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNerAdapter(RavenParser.NerAdapterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNerAdapter(RavenParser.NerAdapterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterResource(RavenParser.ResourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitResource(RavenParser.ResourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCoproStart(RavenParser.CoproStartContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCoproStart(RavenParser.CoproStartContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCoproStop(RavenParser.CoproStopContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCoproStop(RavenParser.CoproStopContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOutboundDeliveryNotify(RavenParser.OutboundDeliveryNotifyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOutboundDeliveryNotify(RavenParser.OutboundDeliveryNotifyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMasterdataComparison(RavenParser.MasterdataComparisonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMasterdataComparison(RavenParser.MasterdataComparisonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterZipBatch(RavenParser.ZipBatchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitZipBatch(RavenParser.ZipBatchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrugMatch(RavenParser.DrugMatchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrugMatch(RavenParser.DrugMatchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUrgencyTriageModel(RavenParser.UrgencyTriageModelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUrgencyTriageModel(RavenParser.UrgencyTriageModelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDonutImpiraQa(RavenParser.DonutImpiraQaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDonutImpiraQa(RavenParser.DonutImpiraQaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTemplateDetection(RavenParser.TemplateDetectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTemplateDetection(RavenParser.TemplateDetectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrinityModel(RavenParser.TrinityModelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrinityModel(RavenParser.TrinityModelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFileBucketing(RavenParser.FileBucketingContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFileBucketing(RavenParser.FileBucketingContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterJson(RavenParser.JsonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitJson(RavenParser.JsonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObj(RavenParser.ObjContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObj(RavenParser.ObjContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPair(RavenParser.PairContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPair(RavenParser.PairContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArr(RavenParser.ArrContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArr(RavenParser.ArrContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterJValue(RavenParser.JValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitJValue(RavenParser.JValueContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitTerminal(TerminalNode node) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } +} \ No newline at end of file diff --git a/src/main/antlr/in.handyman.raven/compiler/RavenLexer.interp b/src/main/antlr/in.handyman.raven/compiler/RavenLexer.interp new file mode 100644 index 00000000..104e8e20 --- /dev/null +++ b/src/main/antlr/in.handyman.raven/compiler/RavenLexer.interp @@ -0,0 +1,998 @@ +token literal names: +null +'process' +'{' +'}' +'try' +'finally' +'catch' +'multitude' +'as' +'on' +'using' +'on-condition' +'fielding' +'copydata' +'from' +'to' +'with-fetch-batch-size' +'with-write-batch-size' +'transform' +'do-format' +'loadcsv' +'pid' +'with' +'by-batch' +'abort' +'callprocess' +'with-target' +'from-file' +'for-every' +'on-parallel-fielding' +'forkprocess' +'watermark' +'spawn' +'dogleg' +'use-parent-context' +'start-process' +'with-file' +'assign' +'source' +'dropfile' +'in-path' +'restapi' +'url' +'method' +'with headers' +'with params' +'with body type' +'{ part' +'type as' +'exportCsv' +'executionSource' +'targetLocation' +'importCsvToDB' +'target' +'batch' +'extractTAR' +'destination' +'createTAR' +'extension' +'createDirectory' +'createFile' +'location' +'fileName' +'deleteFileDirectory' +'transferFileDirectory' +'operation' +'pcm' +'on-resource' +'produce' +'consume' +'producer' +'push-result-at' +'execute' +'consumer' +'pop-event-from' +'pop-result-from' +'limit' +'on-standalone' +'push-json-into-context' +'with-key' +'using-value' +'map-json-into-context' +'sharepoint' +'client-id' +'tenant-id' +'client-secret' +'org-name' +'action-type' +'site-url' +'source-relative-path' +'file-name' +'target-relative-path' +'if' +'log' +'level' +'message' +'raise exception' +'checksum' +'fileSize' +'download-asset' +'from-url' +'at' +'paper-itemization' +'from-target-file' +'autoRotation' +'output-dir' +'process-id' +'resource-conn' +'blankPageRemover' +'qrAttribution' +'uploadAsset' +'template-id' +'auth-token' +'fileMerger' +'in' +'ftps_upload' +'with-remote-host' +'port' +'user-name' +'password' +'session-timeout' +'source-file-to-upload' +'in-destination-to-save' +'upload-check' +'ftps_download' +'source-file-to-download' +'download-check' +'sftp' +'channel-timeout' +'ftp' +'create-zip' +'extract-zip' +'sorGroupDetails' +'keyfields' +'searchfields' +'groupbyfields' +'targettable' +'zeroShotClassifier' +'with-candidate-labels' +'loadExtractedData' +'file-path' +'paper-no' +'intics-reference-id' +'batch-id' +'target-dir' +'absentKeyFilter' +'sor-list' +'sorFilter' +'search-value' +'triage' +'in-output-dir' +'with-labelled-classifier-model-path' +'with-handwritten-extractor-model-path' +'with-checkbox-extractor-model-path' +'using-synonyms' +'using-labelled-classifier-labels' +'using-vilt-coco-labels' +'add-vilt-question-config' +'add-vilt-coco-overide-config' +'add-vilt-coco-threshold-config' +'add-config-vgg-img-width' +'add-config-vgg-img-height' +'save-response-as' +'docnetAttribution' +'for-input-file' +'on-resource-conn' +'using-attribute-questions' +'tqa-filter' +'using-truth-extractor-url' +'add-config-max-doctr-inner-join-diff' +'add-config-max-question-spacing-diff' +'using-synonmys' +'using-input-files' +'text-filtering' +'key-filtering' +'with-doc-id' +'for-paper' +'group-id' +'entity-key-filtering' +'with-mandatory-key-filtering' +'check-threshold' +'threshold-value' +'jsonToFile' +'export-into' +'docnetResult' +'using-copro' +'using-weightage' +'setContextValue' +'context-key' +'context-value' +'evalPatientName' +'patient-name' +'word-count-limit' +'char-count-limit' +'ner-api' +'word-count-threshold' +'char-count-threshold' +'ner-api-threshold' +'evalMemberId' +'member-id' +'special-character' +'validator-threshold' +'evalDateOfBirth' +'date-of-birth' +'comparable-year' +'date-formats' +'dirPath' +'fileDetails' +'dirpath' +'groupId' +'inboundId' +'wordcount' +'word-threshold' +'input-value' +'word-limit' +'charactercount' +'char-threshold' +'char-limit' +'datevalidator' +'allowed-date-formats' +'comparable-date' +'alphavalidator' +'allowed-special-characters' +'alphanumericvalidator' +'numericvalidator' +'nervalidator' +'ner-threshold' +'urgencyTriage' +'input-file-path' +'binary-classifier-model-file-path' +'multi-classifier-model-file-path' +'checkbox-classifier-model-file-path' +'synonyms' +'binary-classifier-labels' +'multi-classifier-labels' +'checkbox-classifier-labels' +'binary-image-width' +'binary-image-height' +'multi-image-width' +'multi-image-height' +'checkbox-image-width' +'checkbox-image-height' +'donut-docqa' +'scalarAdapter' +'using-docnut-result' +'phrase-match-paper-filter' +'for-process-id' +'thread-count' +'read-batch-size' +'write-batch-size' +'with-input-query' +'zero-shot-classifier-paper-filter' +'assetInfo' +'get-audit-table' +'result-table' +'dataExtraction' +'episodeOfCoverage' +'origin-id' +'total-pages' +'output-table' +'grouping-item' +'patient-eoc-count' +'qr-grouping' +'eoc-grouping' +'pnd-grouping' +'userRegistration' +'authToken' +'eocJsonGenerator' +'document-id' +'eoc-id' +'zipContentList' +'zip-file-path' +'hwDetection' +'outputDir' +'modelPath' +'intellimatch' +'match-result' +'checkbox-vqa' +'cad-model-path' +'cd-model-path' +'cr-model-path' +'text-model' +'cr-width' +'cr-height' +'pixel-classifier-urgency-triage' +'qr-extraction' +'paperItemizer' +'processId' +'nerAdapter' +'coproStart' +'for' +'copro-server-url' +'export-command' +'coproStop' +'outbound-delivery-notify' +'intics-zip-uri' +'masterdataComparison' +'zipBatch' +'drugMatch' +'drug-compare' +'urgencyTriageModel' +'donut-impira-qa' +'templateDetection' +'copro-url' +'input-table' +'ouput-table' +'trinity-docqa' +'api-endpoint' +'file-bucketing' +',' +':' +'[' +']' +'true' +'false' +'null' +null +null +null +null +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +NON_ZERO_DIGIT +STRING +CRLF +Operator +WS +COMMENT +LINE_COMMENT +NUMBER + +rule names: +T__0 +T__1 +T__2 +T__3 +T__4 +T__5 +T__6 +T__7 +T__8 +T__9 +T__10 +T__11 +T__12 +T__13 +T__14 +T__15 +T__16 +T__17 +T__18 +T__19 +T__20 +T__21 +T__22 +T__23 +T__24 +T__25 +T__26 +T__27 +T__28 +T__29 +T__30 +T__31 +T__32 +T__33 +T__34 +T__35 +T__36 +T__37 +T__38 +T__39 +T__40 +T__41 +T__42 +T__43 +T__44 +T__45 +T__46 +T__47 +T__48 +T__49 +T__50 +T__51 +T__52 +T__53 +T__54 +T__55 +T__56 +T__57 +T__58 +T__59 +T__60 +T__61 +T__62 +T__63 +T__64 +T__65 +T__66 +T__67 +T__68 +T__69 +T__70 +T__71 +T__72 +T__73 +T__74 +T__75 +T__76 +T__77 +T__78 +T__79 +T__80 +T__81 +T__82 +T__83 +T__84 +T__85 +T__86 +T__87 +T__88 +T__89 +T__90 +T__91 +T__92 +T__93 +T__94 +T__95 +T__96 +T__97 +T__98 +T__99 +T__100 +T__101 +T__102 +T__103 +T__104 +T__105 +T__106 +T__107 +T__108 +T__109 +T__110 +T__111 +T__112 +T__113 +T__114 +T__115 +T__116 +T__117 +T__118 +T__119 +T__120 +T__121 +T__122 +T__123 +T__124 +T__125 +T__126 +T__127 +T__128 +T__129 +T__130 +T__131 +T__132 +T__133 +T__134 +T__135 +T__136 +T__137 +T__138 +T__139 +T__140 +T__141 +T__142 +T__143 +T__144 +T__145 +T__146 +T__147 +T__148 +T__149 +T__150 +T__151 +T__152 +T__153 +T__154 +T__155 +T__156 +T__157 +T__158 +T__159 +T__160 +T__161 +T__162 +T__163 +T__164 +T__165 +T__166 +T__167 +T__168 +T__169 +T__170 +T__171 +T__172 +T__173 +T__174 +T__175 +T__176 +T__177 +T__178 +T__179 +T__180 +T__181 +T__182 +T__183 +T__184 +T__185 +T__186 +T__187 +T__188 +T__189 +T__190 +T__191 +T__192 +T__193 +T__194 +T__195 +T__196 +T__197 +T__198 +T__199 +T__200 +T__201 +T__202 +T__203 +T__204 +T__205 +T__206 +T__207 +T__208 +T__209 +T__210 +T__211 +T__212 +T__213 +T__214 +T__215 +T__216 +T__217 +T__218 +T__219 +T__220 +T__221 +T__222 +T__223 +T__224 +T__225 +T__226 +T__227 +T__228 +T__229 +T__230 +T__231 +T__232 +T__233 +T__234 +T__235 +T__236 +T__237 +T__238 +T__239 +T__240 +T__241 +T__242 +T__243 +T__244 +T__245 +T__246 +T__247 +T__248 +T__249 +T__250 +T__251 +T__252 +T__253 +T__254 +T__255 +T__256 +T__257 +T__258 +T__259 +T__260 +T__261 +T__262 +T__263 +T__264 +T__265 +T__266 +T__267 +T__268 +T__269 +T__270 +T__271 +T__272 +T__273 +T__274 +T__275 +T__276 +T__277 +T__278 +T__279 +T__280 +T__281 +T__282 +T__283 +T__284 +T__285 +T__286 +T__287 +T__288 +T__289 +T__290 +T__291 +T__292 +T__293 +T__294 +T__295 +T__296 +T__297 +T__298 +T__299 +T__300 +T__301 +T__302 +T__303 +T__304 +T__305 +T__306 +T__307 +T__308 +T__309 +T__310 +T__311 +T__312 +T__313 +T__314 +DIGIT +NON_Z_DIGIT +TWODIGIT +LETTER +StringCharacters +StringCharacter +NON_ZERO_DIGIT +STRING +CRLF +Operator +WS +COMMENT +LINE_COMMENT +ESC +UNICODE +HEX +SAFECODEPOINT +NUMBER +INT +EXP + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 323, 5148, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 308, 1, 308, 1, 309, 1, 309, 1, 310, 1, 310, 1, 311, 1, 311, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 315, 1, 315, 1, 316, 1, 316, 1, 317, 1, 317, 1, 317, 1, 318, 1, 318, 1, 319, 4, 319, 5032, 8, 319, 11, 319, 12, 319, 5033, 1, 320, 1, 320, 1, 321, 4, 321, 5039, 8, 321, 11, 321, 12, 321, 5040, 1, 322, 1, 322, 3, 322, 5045, 8, 322, 1, 322, 1, 322, 1, 323, 3, 323, 5050, 8, 323, 1, 323, 1, 323, 3, 323, 5054, 8, 323, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 3, 324, 5069, 8, 324, 1, 325, 4, 325, 5072, 8, 325, 11, 325, 12, 325, 5073, 1, 325, 1, 325, 1, 326, 1, 326, 1, 326, 1, 326, 5, 326, 5082, 8, 326, 10, 326, 12, 326, 5085, 9, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 5, 327, 5096, 8, 327, 10, 327, 12, 327, 5099, 9, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 3, 328, 5106, 8, 328, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 330, 1, 330, 1, 331, 1, 331, 1, 332, 3, 332, 5119, 8, 332, 1, 332, 1, 332, 1, 332, 4, 332, 5124, 8, 332, 11, 332, 12, 332, 5125, 3, 332, 5128, 8, 332, 1, 332, 3, 332, 5131, 8, 332, 1, 333, 1, 333, 1, 333, 5, 333, 5136, 8, 333, 10, 333, 12, 333, 5139, 9, 333, 3, 333, 5141, 8, 333, 1, 334, 1, 334, 3, 334, 5145, 8, 334, 1, 334, 1, 334, 1, 5083, 0, 335, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, 179, 90, 181, 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, 96, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101, 203, 102, 205, 103, 207, 104, 209, 105, 211, 106, 213, 107, 215, 108, 217, 109, 219, 110, 221, 111, 223, 112, 225, 113, 227, 114, 229, 115, 231, 116, 233, 117, 235, 118, 237, 119, 239, 120, 241, 121, 243, 122, 245, 123, 247, 124, 249, 125, 251, 126, 253, 127, 255, 128, 257, 129, 259, 130, 261, 131, 263, 132, 265, 133, 267, 134, 269, 135, 271, 136, 273, 137, 275, 138, 277, 139, 279, 140, 281, 141, 283, 142, 285, 143, 287, 144, 289, 145, 291, 146, 293, 147, 295, 148, 297, 149, 299, 150, 301, 151, 303, 152, 305, 153, 307, 154, 309, 155, 311, 156, 313, 157, 315, 158, 317, 159, 319, 160, 321, 161, 323, 162, 325, 163, 327, 164, 329, 165, 331, 166, 333, 167, 335, 168, 337, 169, 339, 170, 341, 171, 343, 172, 345, 173, 347, 174, 349, 175, 351, 176, 353, 177, 355, 178, 357, 179, 359, 180, 361, 181, 363, 182, 365, 183, 367, 184, 369, 185, 371, 186, 373, 187, 375, 188, 377, 189, 379, 190, 381, 191, 383, 192, 385, 193, 387, 194, 389, 195, 391, 196, 393, 197, 395, 198, 397, 199, 399, 200, 401, 201, 403, 202, 405, 203, 407, 204, 409, 205, 411, 206, 413, 207, 415, 208, 417, 209, 419, 210, 421, 211, 423, 212, 425, 213, 427, 214, 429, 215, 431, 216, 433, 217, 435, 218, 437, 219, 439, 220, 441, 221, 443, 222, 445, 223, 447, 224, 449, 225, 451, 226, 453, 227, 455, 228, 457, 229, 459, 230, 461, 231, 463, 232, 465, 233, 467, 234, 469, 235, 471, 236, 473, 237, 475, 238, 477, 239, 479, 240, 481, 241, 483, 242, 485, 243, 487, 244, 489, 245, 491, 246, 493, 247, 495, 248, 497, 249, 499, 250, 501, 251, 503, 252, 505, 253, 507, 254, 509, 255, 511, 256, 513, 257, 515, 258, 517, 259, 519, 260, 521, 261, 523, 262, 525, 263, 527, 264, 529, 265, 531, 266, 533, 267, 535, 268, 537, 269, 539, 270, 541, 271, 543, 272, 545, 273, 547, 274, 549, 275, 551, 276, 553, 277, 555, 278, 557, 279, 559, 280, 561, 281, 563, 282, 565, 283, 567, 284, 569, 285, 571, 286, 573, 287, 575, 288, 577, 289, 579, 290, 581, 291, 583, 292, 585, 293, 587, 294, 589, 295, 591, 296, 593, 297, 595, 298, 597, 299, 599, 300, 601, 301, 603, 302, 605, 303, 607, 304, 609, 305, 611, 306, 613, 307, 615, 308, 617, 309, 619, 310, 621, 311, 623, 312, 625, 313, 627, 314, 629, 315, 631, 0, 633, 0, 635, 0, 637, 0, 639, 0, 641, 0, 643, 316, 645, 317, 647, 318, 649, 319, 651, 320, 653, 321, 655, 322, 657, 0, 659, 0, 661, 0, 663, 0, 665, 323, 667, 0, 669, 0, 1, 0, 12, 1, 0, 48, 57, 1, 0, 49, 57, 2, 0, 65, 90, 97, 122, 2, 0, 34, 34, 92, 92, 2, 0, 60, 60, 62, 62, 3, 0, 9, 10, 12, 13, 32, 32, 2, 0, 10, 10, 13, 13, 8, 0, 34, 34, 47, 47, 92, 92, 98, 98, 102, 102, 110, 110, 114, 114, 116, 116, 3, 0, 48, 57, 65, 70, 97, 102, 3, 0, 0, 31, 34, 34, 92, 92, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 5153, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 0, 463, 1, 0, 0, 0, 0, 465, 1, 0, 0, 0, 0, 467, 1, 0, 0, 0, 0, 469, 1, 0, 0, 0, 0, 471, 1, 0, 0, 0, 0, 473, 1, 0, 0, 0, 0, 475, 1, 0, 0, 0, 0, 477, 1, 0, 0, 0, 0, 479, 1, 0, 0, 0, 0, 481, 1, 0, 0, 0, 0, 483, 1, 0, 0, 0, 0, 485, 1, 0, 0, 0, 0, 487, 1, 0, 0, 0, 0, 489, 1, 0, 0, 0, 0, 491, 1, 0, 0, 0, 0, 493, 1, 0, 0, 0, 0, 495, 1, 0, 0, 0, 0, 497, 1, 0, 0, 0, 0, 499, 1, 0, 0, 0, 0, 501, 1, 0, 0, 0, 0, 503, 1, 0, 0, 0, 0, 505, 1, 0, 0, 0, 0, 507, 1, 0, 0, 0, 0, 509, 1, 0, 0, 0, 0, 511, 1, 0, 0, 0, 0, 513, 1, 0, 0, 0, 0, 515, 1, 0, 0, 0, 0, 517, 1, 0, 0, 0, 0, 519, 1, 0, 0, 0, 0, 521, 1, 0, 0, 0, 0, 523, 1, 0, 0, 0, 0, 525, 1, 0, 0, 0, 0, 527, 1, 0, 0, 0, 0, 529, 1, 0, 0, 0, 0, 531, 1, 0, 0, 0, 0, 533, 1, 0, 0, 0, 0, 535, 1, 0, 0, 0, 0, 537, 1, 0, 0, 0, 0, 539, 1, 0, 0, 0, 0, 541, 1, 0, 0, 0, 0, 543, 1, 0, 0, 0, 0, 545, 1, 0, 0, 0, 0, 547, 1, 0, 0, 0, 0, 549, 1, 0, 0, 0, 0, 551, 1, 0, 0, 0, 0, 553, 1, 0, 0, 0, 0, 555, 1, 0, 0, 0, 0, 557, 1, 0, 0, 0, 0, 559, 1, 0, 0, 0, 0, 561, 1, 0, 0, 0, 0, 563, 1, 0, 0, 0, 0, 565, 1, 0, 0, 0, 0, 567, 1, 0, 0, 0, 0, 569, 1, 0, 0, 0, 0, 571, 1, 0, 0, 0, 0, 573, 1, 0, 0, 0, 0, 575, 1, 0, 0, 0, 0, 577, 1, 0, 0, 0, 0, 579, 1, 0, 0, 0, 0, 581, 1, 0, 0, 0, 0, 583, 1, 0, 0, 0, 0, 585, 1, 0, 0, 0, 0, 587, 1, 0, 0, 0, 0, 589, 1, 0, 0, 0, 0, 591, 1, 0, 0, 0, 0, 593, 1, 0, 0, 0, 0, 595, 1, 0, 0, 0, 0, 597, 1, 0, 0, 0, 0, 599, 1, 0, 0, 0, 0, 601, 1, 0, 0, 0, 0, 603, 1, 0, 0, 0, 0, 605, 1, 0, 0, 0, 0, 607, 1, 0, 0, 0, 0, 609, 1, 0, 0, 0, 0, 611, 1, 0, 0, 0, 0, 613, 1, 0, 0, 0, 0, 615, 1, 0, 0, 0, 0, 617, 1, 0, 0, 0, 0, 619, 1, 0, 0, 0, 0, 621, 1, 0, 0, 0, 0, 623, 1, 0, 0, 0, 0, 625, 1, 0, 0, 0, 0, 627, 1, 0, 0, 0, 0, 629, 1, 0, 0, 0, 0, 643, 1, 0, 0, 0, 0, 645, 1, 0, 0, 0, 0, 647, 1, 0, 0, 0, 0, 649, 1, 0, 0, 0, 0, 651, 1, 0, 0, 0, 0, 653, 1, 0, 0, 0, 0, 655, 1, 0, 0, 0, 0, 665, 1, 0, 0, 0, 1, 671, 1, 0, 0, 0, 3, 679, 1, 0, 0, 0, 5, 681, 1, 0, 0, 0, 7, 683, 1, 0, 0, 0, 9, 687, 1, 0, 0, 0, 11, 695, 1, 0, 0, 0, 13, 701, 1, 0, 0, 0, 15, 711, 1, 0, 0, 0, 17, 714, 1, 0, 0, 0, 19, 717, 1, 0, 0, 0, 21, 723, 1, 0, 0, 0, 23, 736, 1, 0, 0, 0, 25, 745, 1, 0, 0, 0, 27, 754, 1, 0, 0, 0, 29, 759, 1, 0, 0, 0, 31, 762, 1, 0, 0, 0, 33, 784, 1, 0, 0, 0, 35, 806, 1, 0, 0, 0, 37, 816, 1, 0, 0, 0, 39, 826, 1, 0, 0, 0, 41, 834, 1, 0, 0, 0, 43, 838, 1, 0, 0, 0, 45, 843, 1, 0, 0, 0, 47, 852, 1, 0, 0, 0, 49, 858, 1, 0, 0, 0, 51, 870, 1, 0, 0, 0, 53, 882, 1, 0, 0, 0, 55, 892, 1, 0, 0, 0, 57, 902, 1, 0, 0, 0, 59, 923, 1, 0, 0, 0, 61, 935, 1, 0, 0, 0, 63, 945, 1, 0, 0, 0, 65, 951, 1, 0, 0, 0, 67, 958, 1, 0, 0, 0, 69, 977, 1, 0, 0, 0, 71, 991, 1, 0, 0, 0, 73, 1001, 1, 0, 0, 0, 75, 1008, 1, 0, 0, 0, 77, 1015, 1, 0, 0, 0, 79, 1024, 1, 0, 0, 0, 81, 1032, 1, 0, 0, 0, 83, 1040, 1, 0, 0, 0, 85, 1044, 1, 0, 0, 0, 87, 1051, 1, 0, 0, 0, 89, 1064, 1, 0, 0, 0, 91, 1076, 1, 0, 0, 0, 93, 1091, 1, 0, 0, 0, 95, 1098, 1, 0, 0, 0, 97, 1106, 1, 0, 0, 0, 99, 1116, 1, 0, 0, 0, 101, 1132, 1, 0, 0, 0, 103, 1147, 1, 0, 0, 0, 105, 1161, 1, 0, 0, 0, 107, 1168, 1, 0, 0, 0, 109, 1174, 1, 0, 0, 0, 111, 1185, 1, 0, 0, 0, 113, 1197, 1, 0, 0, 0, 115, 1207, 1, 0, 0, 0, 117, 1217, 1, 0, 0, 0, 119, 1233, 1, 0, 0, 0, 121, 1244, 1, 0, 0, 0, 123, 1253, 1, 0, 0, 0, 125, 1262, 1, 0, 0, 0, 127, 1282, 1, 0, 0, 0, 129, 1304, 1, 0, 0, 0, 131, 1314, 1, 0, 0, 0, 133, 1318, 1, 0, 0, 0, 135, 1330, 1, 0, 0, 0, 137, 1338, 1, 0, 0, 0, 139, 1346, 1, 0, 0, 0, 141, 1355, 1, 0, 0, 0, 143, 1370, 1, 0, 0, 0, 145, 1378, 1, 0, 0, 0, 147, 1387, 1, 0, 0, 0, 149, 1402, 1, 0, 0, 0, 151, 1418, 1, 0, 0, 0, 153, 1424, 1, 0, 0, 0, 155, 1438, 1, 0, 0, 0, 157, 1461, 1, 0, 0, 0, 159, 1470, 1, 0, 0, 0, 161, 1482, 1, 0, 0, 0, 163, 1504, 1, 0, 0, 0, 165, 1515, 1, 0, 0, 0, 167, 1525, 1, 0, 0, 0, 169, 1535, 1, 0, 0, 0, 171, 1549, 1, 0, 0, 0, 173, 1558, 1, 0, 0, 0, 175, 1570, 1, 0, 0, 0, 177, 1579, 1, 0, 0, 0, 179, 1600, 1, 0, 0, 0, 181, 1610, 1, 0, 0, 0, 183, 1631, 1, 0, 0, 0, 185, 1634, 1, 0, 0, 0, 187, 1638, 1, 0, 0, 0, 189, 1644, 1, 0, 0, 0, 191, 1652, 1, 0, 0, 0, 193, 1668, 1, 0, 0, 0, 195, 1677, 1, 0, 0, 0, 197, 1686, 1, 0, 0, 0, 199, 1701, 1, 0, 0, 0, 201, 1710, 1, 0, 0, 0, 203, 1713, 1, 0, 0, 0, 205, 1731, 1, 0, 0, 0, 207, 1748, 1, 0, 0, 0, 209, 1761, 1, 0, 0, 0, 211, 1772, 1, 0, 0, 0, 213, 1783, 1, 0, 0, 0, 215, 1797, 1, 0, 0, 0, 217, 1814, 1, 0, 0, 0, 219, 1828, 1, 0, 0, 0, 221, 1840, 1, 0, 0, 0, 223, 1852, 1, 0, 0, 0, 225, 1863, 1, 0, 0, 0, 227, 1874, 1, 0, 0, 0, 229, 1877, 1, 0, 0, 0, 231, 1889, 1, 0, 0, 0, 233, 1906, 1, 0, 0, 0, 235, 1911, 1, 0, 0, 0, 237, 1921, 1, 0, 0, 0, 239, 1930, 1, 0, 0, 0, 241, 1946, 1, 0, 0, 0, 243, 1968, 1, 0, 0, 0, 245, 1991, 1, 0, 0, 0, 247, 2004, 1, 0, 0, 0, 249, 2018, 1, 0, 0, 0, 251, 2042, 1, 0, 0, 0, 253, 2057, 1, 0, 0, 0, 255, 2062, 1, 0, 0, 0, 257, 2078, 1, 0, 0, 0, 259, 2082, 1, 0, 0, 0, 261, 2093, 1, 0, 0, 0, 263, 2105, 1, 0, 0, 0, 265, 2121, 1, 0, 0, 0, 267, 2131, 1, 0, 0, 0, 269, 2144, 1, 0, 0, 0, 271, 2158, 1, 0, 0, 0, 273, 2170, 1, 0, 0, 0, 275, 2189, 1, 0, 0, 0, 277, 2211, 1, 0, 0, 0, 279, 2229, 1, 0, 0, 0, 281, 2239, 1, 0, 0, 0, 283, 2248, 1, 0, 0, 0, 285, 2268, 1, 0, 0, 0, 287, 2277, 1, 0, 0, 0, 289, 2288, 1, 0, 0, 0, 291, 2304, 1, 0, 0, 0, 293, 2313, 1, 0, 0, 0, 295, 2323, 1, 0, 0, 0, 297, 2336, 1, 0, 0, 0, 299, 2343, 1, 0, 0, 0, 301, 2357, 1, 0, 0, 0, 303, 2393, 1, 0, 0, 0, 305, 2431, 1, 0, 0, 0, 307, 2466, 1, 0, 0, 0, 309, 2481, 1, 0, 0, 0, 311, 2514, 1, 0, 0, 0, 313, 2537, 1, 0, 0, 0, 315, 2562, 1, 0, 0, 0, 317, 2591, 1, 0, 0, 0, 319, 2622, 1, 0, 0, 0, 321, 2647, 1, 0, 0, 0, 323, 2673, 1, 0, 0, 0, 325, 2690, 1, 0, 0, 0, 327, 2708, 1, 0, 0, 0, 329, 2723, 1, 0, 0, 0, 331, 2740, 1, 0, 0, 0, 333, 2766, 1, 0, 0, 0, 335, 2777, 1, 0, 0, 0, 337, 2803, 1, 0, 0, 0, 339, 2840, 1, 0, 0, 0, 341, 2877, 1, 0, 0, 0, 343, 2892, 1, 0, 0, 0, 345, 2910, 1, 0, 0, 0, 347, 2925, 1, 0, 0, 0, 349, 2939, 1, 0, 0, 0, 351, 2951, 1, 0, 0, 0, 353, 2961, 1, 0, 0, 0, 355, 2970, 1, 0, 0, 0, 357, 2991, 1, 0, 0, 0, 359, 3020, 1, 0, 0, 0, 361, 3036, 1, 0, 0, 0, 363, 3052, 1, 0, 0, 0, 365, 3063, 1, 0, 0, 0, 367, 3075, 1, 0, 0, 0, 369, 3088, 1, 0, 0, 0, 371, 3100, 1, 0, 0, 0, 373, 3116, 1, 0, 0, 0, 375, 3132, 1, 0, 0, 0, 377, 3144, 1, 0, 0, 0, 379, 3158, 1, 0, 0, 0, 381, 3174, 1, 0, 0, 0, 383, 3187, 1, 0, 0, 0, 385, 3204, 1, 0, 0, 0, 387, 3221, 1, 0, 0, 0, 389, 3229, 1, 0, 0, 0, 391, 3250, 1, 0, 0, 0, 393, 3271, 1, 0, 0, 0, 395, 3289, 1, 0, 0, 0, 397, 3302, 1, 0, 0, 0, 399, 3312, 1, 0, 0, 0, 401, 3330, 1, 0, 0, 0, 403, 3350, 1, 0, 0, 0, 405, 3366, 1, 0, 0, 0, 407, 3380, 1, 0, 0, 0, 409, 3396, 1, 0, 0, 0, 411, 3409, 1, 0, 0, 0, 413, 3417, 1, 0, 0, 0, 415, 3429, 1, 0, 0, 0, 417, 3437, 1, 0, 0, 0, 419, 3445, 1, 0, 0, 0, 421, 3455, 1, 0, 0, 0, 423, 3465, 1, 0, 0, 0, 425, 3480, 1, 0, 0, 0, 427, 3492, 1, 0, 0, 0, 429, 3503, 1, 0, 0, 0, 431, 3518, 1, 0, 0, 0, 433, 3533, 1, 0, 0, 0, 435, 3544, 1, 0, 0, 0, 437, 3558, 1, 0, 0, 0, 439, 3579, 1, 0, 0, 0, 441, 3595, 1, 0, 0, 0, 443, 3610, 1, 0, 0, 0, 445, 3637, 1, 0, 0, 0, 447, 3659, 1, 0, 0, 0, 449, 3676, 1, 0, 0, 0, 451, 3689, 1, 0, 0, 0, 453, 3703, 1, 0, 0, 0, 455, 3717, 1, 0, 0, 0, 457, 3733, 1, 0, 0, 0, 459, 3767, 1, 0, 0, 0, 461, 3800, 1, 0, 0, 0, 463, 3836, 1, 0, 0, 0, 465, 3845, 1, 0, 0, 0, 467, 3870, 1, 0, 0, 0, 469, 3894, 1, 0, 0, 0, 471, 3921, 1, 0, 0, 0, 473, 3940, 1, 0, 0, 0, 475, 3960, 1, 0, 0, 0, 477, 3978, 1, 0, 0, 0, 479, 3997, 1, 0, 0, 0, 481, 4018, 1, 0, 0, 0, 483, 4040, 1, 0, 0, 0, 485, 4052, 1, 0, 0, 0, 487, 4066, 1, 0, 0, 0, 489, 4086, 1, 0, 0, 0, 491, 4112, 1, 0, 0, 0, 493, 4127, 1, 0, 0, 0, 495, 4140, 1, 0, 0, 0, 497, 4156, 1, 0, 0, 0, 499, 4173, 1, 0, 0, 0, 501, 4190, 1, 0, 0, 0, 503, 4224, 1, 0, 0, 0, 505, 4234, 1, 0, 0, 0, 507, 4250, 1, 0, 0, 0, 509, 4263, 1, 0, 0, 0, 511, 4278, 1, 0, 0, 0, 513, 4296, 1, 0, 0, 0, 515, 4306, 1, 0, 0, 0, 517, 4318, 1, 0, 0, 0, 519, 4331, 1, 0, 0, 0, 521, 4345, 1, 0, 0, 0, 523, 4363, 1, 0, 0, 0, 525, 4375, 1, 0, 0, 0, 527, 4388, 1, 0, 0, 0, 529, 4401, 1, 0, 0, 0, 531, 4418, 1, 0, 0, 0, 533, 4428, 1, 0, 0, 0, 535, 4445, 1, 0, 0, 0, 537, 4457, 1, 0, 0, 0, 539, 4464, 1, 0, 0, 0, 541, 4479, 1, 0, 0, 0, 543, 4493, 1, 0, 0, 0, 545, 4505, 1, 0, 0, 0, 547, 4515, 1, 0, 0, 0, 549, 4525, 1, 0, 0, 0, 551, 4538, 1, 0, 0, 0, 553, 4551, 1, 0, 0, 0, 555, 4564, 1, 0, 0, 0, 557, 4579, 1, 0, 0, 0, 559, 4593, 1, 0, 0, 0, 561, 4607, 1, 0, 0, 0, 563, 4618, 1, 0, 0, 0, 565, 4627, 1, 0, 0, 0, 567, 4637, 1, 0, 0, 0, 569, 4669, 1, 0, 0, 0, 571, 4683, 1, 0, 0, 0, 573, 4697, 1, 0, 0, 0, 575, 4707, 1, 0, 0, 0, 577, 4718, 1, 0, 0, 0, 579, 4729, 1, 0, 0, 0, 581, 4733, 1, 0, 0, 0, 583, 4750, 1, 0, 0, 0, 585, 4765, 1, 0, 0, 0, 587, 4775, 1, 0, 0, 0, 589, 4800, 1, 0, 0, 0, 591, 4815, 1, 0, 0, 0, 593, 4836, 1, 0, 0, 0, 595, 4845, 1, 0, 0, 0, 597, 4855, 1, 0, 0, 0, 599, 4868, 1, 0, 0, 0, 601, 4887, 1, 0, 0, 0, 603, 4903, 1, 0, 0, 0, 605, 4921, 1, 0, 0, 0, 607, 4931, 1, 0, 0, 0, 609, 4943, 1, 0, 0, 0, 611, 4955, 1, 0, 0, 0, 613, 4969, 1, 0, 0, 0, 615, 4982, 1, 0, 0, 0, 617, 4997, 1, 0, 0, 0, 619, 4999, 1, 0, 0, 0, 621, 5001, 1, 0, 0, 0, 623, 5003, 1, 0, 0, 0, 625, 5005, 1, 0, 0, 0, 627, 5010, 1, 0, 0, 0, 629, 5016, 1, 0, 0, 0, 631, 5021, 1, 0, 0, 0, 633, 5023, 1, 0, 0, 0, 635, 5025, 1, 0, 0, 0, 637, 5028, 1, 0, 0, 0, 639, 5031, 1, 0, 0, 0, 641, 5035, 1, 0, 0, 0, 643, 5038, 1, 0, 0, 0, 645, 5042, 1, 0, 0, 0, 647, 5053, 1, 0, 0, 0, 649, 5068, 1, 0, 0, 0, 651, 5071, 1, 0, 0, 0, 653, 5077, 1, 0, 0, 0, 655, 5091, 1, 0, 0, 0, 657, 5102, 1, 0, 0, 0, 659, 5107, 1, 0, 0, 0, 661, 5113, 1, 0, 0, 0, 663, 5115, 1, 0, 0, 0, 665, 5118, 1, 0, 0, 0, 667, 5140, 1, 0, 0, 0, 669, 5142, 1, 0, 0, 0, 671, 672, 5, 112, 0, 0, 672, 673, 5, 114, 0, 0, 673, 674, 5, 111, 0, 0, 674, 675, 5, 99, 0, 0, 675, 676, 5, 101, 0, 0, 676, 677, 5, 115, 0, 0, 677, 678, 5, 115, 0, 0, 678, 2, 1, 0, 0, 0, 679, 680, 5, 123, 0, 0, 680, 4, 1, 0, 0, 0, 681, 682, 5, 125, 0, 0, 682, 6, 1, 0, 0, 0, 683, 684, 5, 116, 0, 0, 684, 685, 5, 114, 0, 0, 685, 686, 5, 121, 0, 0, 686, 8, 1, 0, 0, 0, 687, 688, 5, 102, 0, 0, 688, 689, 5, 105, 0, 0, 689, 690, 5, 110, 0, 0, 690, 691, 5, 97, 0, 0, 691, 692, 5, 108, 0, 0, 692, 693, 5, 108, 0, 0, 693, 694, 5, 121, 0, 0, 694, 10, 1, 0, 0, 0, 695, 696, 5, 99, 0, 0, 696, 697, 5, 97, 0, 0, 697, 698, 5, 116, 0, 0, 698, 699, 5, 99, 0, 0, 699, 700, 5, 104, 0, 0, 700, 12, 1, 0, 0, 0, 701, 702, 5, 109, 0, 0, 702, 703, 5, 117, 0, 0, 703, 704, 5, 108, 0, 0, 704, 705, 5, 116, 0, 0, 705, 706, 5, 105, 0, 0, 706, 707, 5, 116, 0, 0, 707, 708, 5, 117, 0, 0, 708, 709, 5, 100, 0, 0, 709, 710, 5, 101, 0, 0, 710, 14, 1, 0, 0, 0, 711, 712, 5, 97, 0, 0, 712, 713, 5, 115, 0, 0, 713, 16, 1, 0, 0, 0, 714, 715, 5, 111, 0, 0, 715, 716, 5, 110, 0, 0, 716, 18, 1, 0, 0, 0, 717, 718, 5, 117, 0, 0, 718, 719, 5, 115, 0, 0, 719, 720, 5, 105, 0, 0, 720, 721, 5, 110, 0, 0, 721, 722, 5, 103, 0, 0, 722, 20, 1, 0, 0, 0, 723, 724, 5, 111, 0, 0, 724, 725, 5, 110, 0, 0, 725, 726, 5, 45, 0, 0, 726, 727, 5, 99, 0, 0, 727, 728, 5, 111, 0, 0, 728, 729, 5, 110, 0, 0, 729, 730, 5, 100, 0, 0, 730, 731, 5, 105, 0, 0, 731, 732, 5, 116, 0, 0, 732, 733, 5, 105, 0, 0, 733, 734, 5, 111, 0, 0, 734, 735, 5, 110, 0, 0, 735, 22, 1, 0, 0, 0, 736, 737, 5, 102, 0, 0, 737, 738, 5, 105, 0, 0, 738, 739, 5, 101, 0, 0, 739, 740, 5, 108, 0, 0, 740, 741, 5, 100, 0, 0, 741, 742, 5, 105, 0, 0, 742, 743, 5, 110, 0, 0, 743, 744, 5, 103, 0, 0, 744, 24, 1, 0, 0, 0, 745, 746, 5, 99, 0, 0, 746, 747, 5, 111, 0, 0, 747, 748, 5, 112, 0, 0, 748, 749, 5, 121, 0, 0, 749, 750, 5, 100, 0, 0, 750, 751, 5, 97, 0, 0, 751, 752, 5, 116, 0, 0, 752, 753, 5, 97, 0, 0, 753, 26, 1, 0, 0, 0, 754, 755, 5, 102, 0, 0, 755, 756, 5, 114, 0, 0, 756, 757, 5, 111, 0, 0, 757, 758, 5, 109, 0, 0, 758, 28, 1, 0, 0, 0, 759, 760, 5, 116, 0, 0, 760, 761, 5, 111, 0, 0, 761, 30, 1, 0, 0, 0, 762, 763, 5, 119, 0, 0, 763, 764, 5, 105, 0, 0, 764, 765, 5, 116, 0, 0, 765, 766, 5, 104, 0, 0, 766, 767, 5, 45, 0, 0, 767, 768, 5, 102, 0, 0, 768, 769, 5, 101, 0, 0, 769, 770, 5, 116, 0, 0, 770, 771, 5, 99, 0, 0, 771, 772, 5, 104, 0, 0, 772, 773, 5, 45, 0, 0, 773, 774, 5, 98, 0, 0, 774, 775, 5, 97, 0, 0, 775, 776, 5, 116, 0, 0, 776, 777, 5, 99, 0, 0, 777, 778, 5, 104, 0, 0, 778, 779, 5, 45, 0, 0, 779, 780, 5, 115, 0, 0, 780, 781, 5, 105, 0, 0, 781, 782, 5, 122, 0, 0, 782, 783, 5, 101, 0, 0, 783, 32, 1, 0, 0, 0, 784, 785, 5, 119, 0, 0, 785, 786, 5, 105, 0, 0, 786, 787, 5, 116, 0, 0, 787, 788, 5, 104, 0, 0, 788, 789, 5, 45, 0, 0, 789, 790, 5, 119, 0, 0, 790, 791, 5, 114, 0, 0, 791, 792, 5, 105, 0, 0, 792, 793, 5, 116, 0, 0, 793, 794, 5, 101, 0, 0, 794, 795, 5, 45, 0, 0, 795, 796, 5, 98, 0, 0, 796, 797, 5, 97, 0, 0, 797, 798, 5, 116, 0, 0, 798, 799, 5, 99, 0, 0, 799, 800, 5, 104, 0, 0, 800, 801, 5, 45, 0, 0, 801, 802, 5, 115, 0, 0, 802, 803, 5, 105, 0, 0, 803, 804, 5, 122, 0, 0, 804, 805, 5, 101, 0, 0, 805, 34, 1, 0, 0, 0, 806, 807, 5, 116, 0, 0, 807, 808, 5, 114, 0, 0, 808, 809, 5, 97, 0, 0, 809, 810, 5, 110, 0, 0, 810, 811, 5, 115, 0, 0, 811, 812, 5, 102, 0, 0, 812, 813, 5, 111, 0, 0, 813, 814, 5, 114, 0, 0, 814, 815, 5, 109, 0, 0, 815, 36, 1, 0, 0, 0, 816, 817, 5, 100, 0, 0, 817, 818, 5, 111, 0, 0, 818, 819, 5, 45, 0, 0, 819, 820, 5, 102, 0, 0, 820, 821, 5, 111, 0, 0, 821, 822, 5, 114, 0, 0, 822, 823, 5, 109, 0, 0, 823, 824, 5, 97, 0, 0, 824, 825, 5, 116, 0, 0, 825, 38, 1, 0, 0, 0, 826, 827, 5, 108, 0, 0, 827, 828, 5, 111, 0, 0, 828, 829, 5, 97, 0, 0, 829, 830, 5, 100, 0, 0, 830, 831, 5, 99, 0, 0, 831, 832, 5, 115, 0, 0, 832, 833, 5, 118, 0, 0, 833, 40, 1, 0, 0, 0, 834, 835, 5, 112, 0, 0, 835, 836, 5, 105, 0, 0, 836, 837, 5, 100, 0, 0, 837, 42, 1, 0, 0, 0, 838, 839, 5, 119, 0, 0, 839, 840, 5, 105, 0, 0, 840, 841, 5, 116, 0, 0, 841, 842, 5, 104, 0, 0, 842, 44, 1, 0, 0, 0, 843, 844, 5, 98, 0, 0, 844, 845, 5, 121, 0, 0, 845, 846, 5, 45, 0, 0, 846, 847, 5, 98, 0, 0, 847, 848, 5, 97, 0, 0, 848, 849, 5, 116, 0, 0, 849, 850, 5, 99, 0, 0, 850, 851, 5, 104, 0, 0, 851, 46, 1, 0, 0, 0, 852, 853, 5, 97, 0, 0, 853, 854, 5, 98, 0, 0, 854, 855, 5, 111, 0, 0, 855, 856, 5, 114, 0, 0, 856, 857, 5, 116, 0, 0, 857, 48, 1, 0, 0, 0, 858, 859, 5, 99, 0, 0, 859, 860, 5, 97, 0, 0, 860, 861, 5, 108, 0, 0, 861, 862, 5, 108, 0, 0, 862, 863, 5, 112, 0, 0, 863, 864, 5, 114, 0, 0, 864, 865, 5, 111, 0, 0, 865, 866, 5, 99, 0, 0, 866, 867, 5, 101, 0, 0, 867, 868, 5, 115, 0, 0, 868, 869, 5, 115, 0, 0, 869, 50, 1, 0, 0, 0, 870, 871, 5, 119, 0, 0, 871, 872, 5, 105, 0, 0, 872, 873, 5, 116, 0, 0, 873, 874, 5, 104, 0, 0, 874, 875, 5, 45, 0, 0, 875, 876, 5, 116, 0, 0, 876, 877, 5, 97, 0, 0, 877, 878, 5, 114, 0, 0, 878, 879, 5, 103, 0, 0, 879, 880, 5, 101, 0, 0, 880, 881, 5, 116, 0, 0, 881, 52, 1, 0, 0, 0, 882, 883, 5, 102, 0, 0, 883, 884, 5, 114, 0, 0, 884, 885, 5, 111, 0, 0, 885, 886, 5, 109, 0, 0, 886, 887, 5, 45, 0, 0, 887, 888, 5, 102, 0, 0, 888, 889, 5, 105, 0, 0, 889, 890, 5, 108, 0, 0, 890, 891, 5, 101, 0, 0, 891, 54, 1, 0, 0, 0, 892, 893, 5, 102, 0, 0, 893, 894, 5, 111, 0, 0, 894, 895, 5, 114, 0, 0, 895, 896, 5, 45, 0, 0, 896, 897, 5, 101, 0, 0, 897, 898, 5, 118, 0, 0, 898, 899, 5, 101, 0, 0, 899, 900, 5, 114, 0, 0, 900, 901, 5, 121, 0, 0, 901, 56, 1, 0, 0, 0, 902, 903, 5, 111, 0, 0, 903, 904, 5, 110, 0, 0, 904, 905, 5, 45, 0, 0, 905, 906, 5, 112, 0, 0, 906, 907, 5, 97, 0, 0, 907, 908, 5, 114, 0, 0, 908, 909, 5, 97, 0, 0, 909, 910, 5, 108, 0, 0, 910, 911, 5, 108, 0, 0, 911, 912, 5, 101, 0, 0, 912, 913, 5, 108, 0, 0, 913, 914, 5, 45, 0, 0, 914, 915, 5, 102, 0, 0, 915, 916, 5, 105, 0, 0, 916, 917, 5, 101, 0, 0, 917, 918, 5, 108, 0, 0, 918, 919, 5, 100, 0, 0, 919, 920, 5, 105, 0, 0, 920, 921, 5, 110, 0, 0, 921, 922, 5, 103, 0, 0, 922, 58, 1, 0, 0, 0, 923, 924, 5, 102, 0, 0, 924, 925, 5, 111, 0, 0, 925, 926, 5, 114, 0, 0, 926, 927, 5, 107, 0, 0, 927, 928, 5, 112, 0, 0, 928, 929, 5, 114, 0, 0, 929, 930, 5, 111, 0, 0, 930, 931, 5, 99, 0, 0, 931, 932, 5, 101, 0, 0, 932, 933, 5, 115, 0, 0, 933, 934, 5, 115, 0, 0, 934, 60, 1, 0, 0, 0, 935, 936, 5, 119, 0, 0, 936, 937, 5, 97, 0, 0, 937, 938, 5, 116, 0, 0, 938, 939, 5, 101, 0, 0, 939, 940, 5, 114, 0, 0, 940, 941, 5, 109, 0, 0, 941, 942, 5, 97, 0, 0, 942, 943, 5, 114, 0, 0, 943, 944, 5, 107, 0, 0, 944, 62, 1, 0, 0, 0, 945, 946, 5, 115, 0, 0, 946, 947, 5, 112, 0, 0, 947, 948, 5, 97, 0, 0, 948, 949, 5, 119, 0, 0, 949, 950, 5, 110, 0, 0, 950, 64, 1, 0, 0, 0, 951, 952, 5, 100, 0, 0, 952, 953, 5, 111, 0, 0, 953, 954, 5, 103, 0, 0, 954, 955, 5, 108, 0, 0, 955, 956, 5, 101, 0, 0, 956, 957, 5, 103, 0, 0, 957, 66, 1, 0, 0, 0, 958, 959, 5, 117, 0, 0, 959, 960, 5, 115, 0, 0, 960, 961, 5, 101, 0, 0, 961, 962, 5, 45, 0, 0, 962, 963, 5, 112, 0, 0, 963, 964, 5, 97, 0, 0, 964, 965, 5, 114, 0, 0, 965, 966, 5, 101, 0, 0, 966, 967, 5, 110, 0, 0, 967, 968, 5, 116, 0, 0, 968, 969, 5, 45, 0, 0, 969, 970, 5, 99, 0, 0, 970, 971, 5, 111, 0, 0, 971, 972, 5, 110, 0, 0, 972, 973, 5, 116, 0, 0, 973, 974, 5, 101, 0, 0, 974, 975, 5, 120, 0, 0, 975, 976, 5, 116, 0, 0, 976, 68, 1, 0, 0, 0, 977, 978, 5, 115, 0, 0, 978, 979, 5, 116, 0, 0, 979, 980, 5, 97, 0, 0, 980, 981, 5, 114, 0, 0, 981, 982, 5, 116, 0, 0, 982, 983, 5, 45, 0, 0, 983, 984, 5, 112, 0, 0, 984, 985, 5, 114, 0, 0, 985, 986, 5, 111, 0, 0, 986, 987, 5, 99, 0, 0, 987, 988, 5, 101, 0, 0, 988, 989, 5, 115, 0, 0, 989, 990, 5, 115, 0, 0, 990, 70, 1, 0, 0, 0, 991, 992, 5, 119, 0, 0, 992, 993, 5, 105, 0, 0, 993, 994, 5, 116, 0, 0, 994, 995, 5, 104, 0, 0, 995, 996, 5, 45, 0, 0, 996, 997, 5, 102, 0, 0, 997, 998, 5, 105, 0, 0, 998, 999, 5, 108, 0, 0, 999, 1000, 5, 101, 0, 0, 1000, 72, 1, 0, 0, 0, 1001, 1002, 5, 97, 0, 0, 1002, 1003, 5, 115, 0, 0, 1003, 1004, 5, 115, 0, 0, 1004, 1005, 5, 105, 0, 0, 1005, 1006, 5, 103, 0, 0, 1006, 1007, 5, 110, 0, 0, 1007, 74, 1, 0, 0, 0, 1008, 1009, 5, 115, 0, 0, 1009, 1010, 5, 111, 0, 0, 1010, 1011, 5, 117, 0, 0, 1011, 1012, 5, 114, 0, 0, 1012, 1013, 5, 99, 0, 0, 1013, 1014, 5, 101, 0, 0, 1014, 76, 1, 0, 0, 0, 1015, 1016, 5, 100, 0, 0, 1016, 1017, 5, 114, 0, 0, 1017, 1018, 5, 111, 0, 0, 1018, 1019, 5, 112, 0, 0, 1019, 1020, 5, 102, 0, 0, 1020, 1021, 5, 105, 0, 0, 1021, 1022, 5, 108, 0, 0, 1022, 1023, 5, 101, 0, 0, 1023, 78, 1, 0, 0, 0, 1024, 1025, 5, 105, 0, 0, 1025, 1026, 5, 110, 0, 0, 1026, 1027, 5, 45, 0, 0, 1027, 1028, 5, 112, 0, 0, 1028, 1029, 5, 97, 0, 0, 1029, 1030, 5, 116, 0, 0, 1030, 1031, 5, 104, 0, 0, 1031, 80, 1, 0, 0, 0, 1032, 1033, 5, 114, 0, 0, 1033, 1034, 5, 101, 0, 0, 1034, 1035, 5, 115, 0, 0, 1035, 1036, 5, 116, 0, 0, 1036, 1037, 5, 97, 0, 0, 1037, 1038, 5, 112, 0, 0, 1038, 1039, 5, 105, 0, 0, 1039, 82, 1, 0, 0, 0, 1040, 1041, 5, 117, 0, 0, 1041, 1042, 5, 114, 0, 0, 1042, 1043, 5, 108, 0, 0, 1043, 84, 1, 0, 0, 0, 1044, 1045, 5, 109, 0, 0, 1045, 1046, 5, 101, 0, 0, 1046, 1047, 5, 116, 0, 0, 1047, 1048, 5, 104, 0, 0, 1048, 1049, 5, 111, 0, 0, 1049, 1050, 5, 100, 0, 0, 1050, 86, 1, 0, 0, 0, 1051, 1052, 5, 119, 0, 0, 1052, 1053, 5, 105, 0, 0, 1053, 1054, 5, 116, 0, 0, 1054, 1055, 5, 104, 0, 0, 1055, 1056, 5, 32, 0, 0, 1056, 1057, 5, 104, 0, 0, 1057, 1058, 5, 101, 0, 0, 1058, 1059, 5, 97, 0, 0, 1059, 1060, 5, 100, 0, 0, 1060, 1061, 5, 101, 0, 0, 1061, 1062, 5, 114, 0, 0, 1062, 1063, 5, 115, 0, 0, 1063, 88, 1, 0, 0, 0, 1064, 1065, 5, 119, 0, 0, 1065, 1066, 5, 105, 0, 0, 1066, 1067, 5, 116, 0, 0, 1067, 1068, 5, 104, 0, 0, 1068, 1069, 5, 32, 0, 0, 1069, 1070, 5, 112, 0, 0, 1070, 1071, 5, 97, 0, 0, 1071, 1072, 5, 114, 0, 0, 1072, 1073, 5, 97, 0, 0, 1073, 1074, 5, 109, 0, 0, 1074, 1075, 5, 115, 0, 0, 1075, 90, 1, 0, 0, 0, 1076, 1077, 5, 119, 0, 0, 1077, 1078, 5, 105, 0, 0, 1078, 1079, 5, 116, 0, 0, 1079, 1080, 5, 104, 0, 0, 1080, 1081, 5, 32, 0, 0, 1081, 1082, 5, 98, 0, 0, 1082, 1083, 5, 111, 0, 0, 1083, 1084, 5, 100, 0, 0, 1084, 1085, 5, 121, 0, 0, 1085, 1086, 5, 32, 0, 0, 1086, 1087, 5, 116, 0, 0, 1087, 1088, 5, 121, 0, 0, 1088, 1089, 5, 112, 0, 0, 1089, 1090, 5, 101, 0, 0, 1090, 92, 1, 0, 0, 0, 1091, 1092, 5, 123, 0, 0, 1092, 1093, 5, 32, 0, 0, 1093, 1094, 5, 112, 0, 0, 1094, 1095, 5, 97, 0, 0, 1095, 1096, 5, 114, 0, 0, 1096, 1097, 5, 116, 0, 0, 1097, 94, 1, 0, 0, 0, 1098, 1099, 5, 116, 0, 0, 1099, 1100, 5, 121, 0, 0, 1100, 1101, 5, 112, 0, 0, 1101, 1102, 5, 101, 0, 0, 1102, 1103, 5, 32, 0, 0, 1103, 1104, 5, 97, 0, 0, 1104, 1105, 5, 115, 0, 0, 1105, 96, 1, 0, 0, 0, 1106, 1107, 5, 101, 0, 0, 1107, 1108, 5, 120, 0, 0, 1108, 1109, 5, 112, 0, 0, 1109, 1110, 5, 111, 0, 0, 1110, 1111, 5, 114, 0, 0, 1111, 1112, 5, 116, 0, 0, 1112, 1113, 5, 67, 0, 0, 1113, 1114, 5, 115, 0, 0, 1114, 1115, 5, 118, 0, 0, 1115, 98, 1, 0, 0, 0, 1116, 1117, 5, 101, 0, 0, 1117, 1118, 5, 120, 0, 0, 1118, 1119, 5, 101, 0, 0, 1119, 1120, 5, 99, 0, 0, 1120, 1121, 5, 117, 0, 0, 1121, 1122, 5, 116, 0, 0, 1122, 1123, 5, 105, 0, 0, 1123, 1124, 5, 111, 0, 0, 1124, 1125, 5, 110, 0, 0, 1125, 1126, 5, 83, 0, 0, 1126, 1127, 5, 111, 0, 0, 1127, 1128, 5, 117, 0, 0, 1128, 1129, 5, 114, 0, 0, 1129, 1130, 5, 99, 0, 0, 1130, 1131, 5, 101, 0, 0, 1131, 100, 1, 0, 0, 0, 1132, 1133, 5, 116, 0, 0, 1133, 1134, 5, 97, 0, 0, 1134, 1135, 5, 114, 0, 0, 1135, 1136, 5, 103, 0, 0, 1136, 1137, 5, 101, 0, 0, 1137, 1138, 5, 116, 0, 0, 1138, 1139, 5, 76, 0, 0, 1139, 1140, 5, 111, 0, 0, 1140, 1141, 5, 99, 0, 0, 1141, 1142, 5, 97, 0, 0, 1142, 1143, 5, 116, 0, 0, 1143, 1144, 5, 105, 0, 0, 1144, 1145, 5, 111, 0, 0, 1145, 1146, 5, 110, 0, 0, 1146, 102, 1, 0, 0, 0, 1147, 1148, 5, 105, 0, 0, 1148, 1149, 5, 109, 0, 0, 1149, 1150, 5, 112, 0, 0, 1150, 1151, 5, 111, 0, 0, 1151, 1152, 5, 114, 0, 0, 1152, 1153, 5, 116, 0, 0, 1153, 1154, 5, 67, 0, 0, 1154, 1155, 5, 115, 0, 0, 1155, 1156, 5, 118, 0, 0, 1156, 1157, 5, 84, 0, 0, 1157, 1158, 5, 111, 0, 0, 1158, 1159, 5, 68, 0, 0, 1159, 1160, 5, 66, 0, 0, 1160, 104, 1, 0, 0, 0, 1161, 1162, 5, 116, 0, 0, 1162, 1163, 5, 97, 0, 0, 1163, 1164, 5, 114, 0, 0, 1164, 1165, 5, 103, 0, 0, 1165, 1166, 5, 101, 0, 0, 1166, 1167, 5, 116, 0, 0, 1167, 106, 1, 0, 0, 0, 1168, 1169, 5, 98, 0, 0, 1169, 1170, 5, 97, 0, 0, 1170, 1171, 5, 116, 0, 0, 1171, 1172, 5, 99, 0, 0, 1172, 1173, 5, 104, 0, 0, 1173, 108, 1, 0, 0, 0, 1174, 1175, 5, 101, 0, 0, 1175, 1176, 5, 120, 0, 0, 1176, 1177, 5, 116, 0, 0, 1177, 1178, 5, 114, 0, 0, 1178, 1179, 5, 97, 0, 0, 1179, 1180, 5, 99, 0, 0, 1180, 1181, 5, 116, 0, 0, 1181, 1182, 5, 84, 0, 0, 1182, 1183, 5, 65, 0, 0, 1183, 1184, 5, 82, 0, 0, 1184, 110, 1, 0, 0, 0, 1185, 1186, 5, 100, 0, 0, 1186, 1187, 5, 101, 0, 0, 1187, 1188, 5, 115, 0, 0, 1188, 1189, 5, 116, 0, 0, 1189, 1190, 5, 105, 0, 0, 1190, 1191, 5, 110, 0, 0, 1191, 1192, 5, 97, 0, 0, 1192, 1193, 5, 116, 0, 0, 1193, 1194, 5, 105, 0, 0, 1194, 1195, 5, 111, 0, 0, 1195, 1196, 5, 110, 0, 0, 1196, 112, 1, 0, 0, 0, 1197, 1198, 5, 99, 0, 0, 1198, 1199, 5, 114, 0, 0, 1199, 1200, 5, 101, 0, 0, 1200, 1201, 5, 97, 0, 0, 1201, 1202, 5, 116, 0, 0, 1202, 1203, 5, 101, 0, 0, 1203, 1204, 5, 84, 0, 0, 1204, 1205, 5, 65, 0, 0, 1205, 1206, 5, 82, 0, 0, 1206, 114, 1, 0, 0, 0, 1207, 1208, 5, 101, 0, 0, 1208, 1209, 5, 120, 0, 0, 1209, 1210, 5, 116, 0, 0, 1210, 1211, 5, 101, 0, 0, 1211, 1212, 5, 110, 0, 0, 1212, 1213, 5, 115, 0, 0, 1213, 1214, 5, 105, 0, 0, 1214, 1215, 5, 111, 0, 0, 1215, 1216, 5, 110, 0, 0, 1216, 116, 1, 0, 0, 0, 1217, 1218, 5, 99, 0, 0, 1218, 1219, 5, 114, 0, 0, 1219, 1220, 5, 101, 0, 0, 1220, 1221, 5, 97, 0, 0, 1221, 1222, 5, 116, 0, 0, 1222, 1223, 5, 101, 0, 0, 1223, 1224, 5, 68, 0, 0, 1224, 1225, 5, 105, 0, 0, 1225, 1226, 5, 114, 0, 0, 1226, 1227, 5, 101, 0, 0, 1227, 1228, 5, 99, 0, 0, 1228, 1229, 5, 116, 0, 0, 1229, 1230, 5, 111, 0, 0, 1230, 1231, 5, 114, 0, 0, 1231, 1232, 5, 121, 0, 0, 1232, 118, 1, 0, 0, 0, 1233, 1234, 5, 99, 0, 0, 1234, 1235, 5, 114, 0, 0, 1235, 1236, 5, 101, 0, 0, 1236, 1237, 5, 97, 0, 0, 1237, 1238, 5, 116, 0, 0, 1238, 1239, 5, 101, 0, 0, 1239, 1240, 5, 70, 0, 0, 1240, 1241, 5, 105, 0, 0, 1241, 1242, 5, 108, 0, 0, 1242, 1243, 5, 101, 0, 0, 1243, 120, 1, 0, 0, 0, 1244, 1245, 5, 108, 0, 0, 1245, 1246, 5, 111, 0, 0, 1246, 1247, 5, 99, 0, 0, 1247, 1248, 5, 97, 0, 0, 1248, 1249, 5, 116, 0, 0, 1249, 1250, 5, 105, 0, 0, 1250, 1251, 5, 111, 0, 0, 1251, 1252, 5, 110, 0, 0, 1252, 122, 1, 0, 0, 0, 1253, 1254, 5, 102, 0, 0, 1254, 1255, 5, 105, 0, 0, 1255, 1256, 5, 108, 0, 0, 1256, 1257, 5, 101, 0, 0, 1257, 1258, 5, 78, 0, 0, 1258, 1259, 5, 97, 0, 0, 1259, 1260, 5, 109, 0, 0, 1260, 1261, 5, 101, 0, 0, 1261, 124, 1, 0, 0, 0, 1262, 1263, 5, 100, 0, 0, 1263, 1264, 5, 101, 0, 0, 1264, 1265, 5, 108, 0, 0, 1265, 1266, 5, 101, 0, 0, 1266, 1267, 5, 116, 0, 0, 1267, 1268, 5, 101, 0, 0, 1268, 1269, 5, 70, 0, 0, 1269, 1270, 5, 105, 0, 0, 1270, 1271, 5, 108, 0, 0, 1271, 1272, 5, 101, 0, 0, 1272, 1273, 5, 68, 0, 0, 1273, 1274, 5, 105, 0, 0, 1274, 1275, 5, 114, 0, 0, 1275, 1276, 5, 101, 0, 0, 1276, 1277, 5, 99, 0, 0, 1277, 1278, 5, 116, 0, 0, 1278, 1279, 5, 111, 0, 0, 1279, 1280, 5, 114, 0, 0, 1280, 1281, 5, 121, 0, 0, 1281, 126, 1, 0, 0, 0, 1282, 1283, 5, 116, 0, 0, 1283, 1284, 5, 114, 0, 0, 1284, 1285, 5, 97, 0, 0, 1285, 1286, 5, 110, 0, 0, 1286, 1287, 5, 115, 0, 0, 1287, 1288, 5, 102, 0, 0, 1288, 1289, 5, 101, 0, 0, 1289, 1290, 5, 114, 0, 0, 1290, 1291, 5, 70, 0, 0, 1291, 1292, 5, 105, 0, 0, 1292, 1293, 5, 108, 0, 0, 1293, 1294, 5, 101, 0, 0, 1294, 1295, 5, 68, 0, 0, 1295, 1296, 5, 105, 0, 0, 1296, 1297, 5, 114, 0, 0, 1297, 1298, 5, 101, 0, 0, 1298, 1299, 5, 99, 0, 0, 1299, 1300, 5, 116, 0, 0, 1300, 1301, 5, 111, 0, 0, 1301, 1302, 5, 114, 0, 0, 1302, 1303, 5, 121, 0, 0, 1303, 128, 1, 0, 0, 0, 1304, 1305, 5, 111, 0, 0, 1305, 1306, 5, 112, 0, 0, 1306, 1307, 5, 101, 0, 0, 1307, 1308, 5, 114, 0, 0, 1308, 1309, 5, 97, 0, 0, 1309, 1310, 5, 116, 0, 0, 1310, 1311, 5, 105, 0, 0, 1311, 1312, 5, 111, 0, 0, 1312, 1313, 5, 110, 0, 0, 1313, 130, 1, 0, 0, 0, 1314, 1315, 5, 112, 0, 0, 1315, 1316, 5, 99, 0, 0, 1316, 1317, 5, 109, 0, 0, 1317, 132, 1, 0, 0, 0, 1318, 1319, 5, 111, 0, 0, 1319, 1320, 5, 110, 0, 0, 1320, 1321, 5, 45, 0, 0, 1321, 1322, 5, 114, 0, 0, 1322, 1323, 5, 101, 0, 0, 1323, 1324, 5, 115, 0, 0, 1324, 1325, 5, 111, 0, 0, 1325, 1326, 5, 117, 0, 0, 1326, 1327, 5, 114, 0, 0, 1327, 1328, 5, 99, 0, 0, 1328, 1329, 5, 101, 0, 0, 1329, 134, 1, 0, 0, 0, 1330, 1331, 5, 112, 0, 0, 1331, 1332, 5, 114, 0, 0, 1332, 1333, 5, 111, 0, 0, 1333, 1334, 5, 100, 0, 0, 1334, 1335, 5, 117, 0, 0, 1335, 1336, 5, 99, 0, 0, 1336, 1337, 5, 101, 0, 0, 1337, 136, 1, 0, 0, 0, 1338, 1339, 5, 99, 0, 0, 1339, 1340, 5, 111, 0, 0, 1340, 1341, 5, 110, 0, 0, 1341, 1342, 5, 115, 0, 0, 1342, 1343, 5, 117, 0, 0, 1343, 1344, 5, 109, 0, 0, 1344, 1345, 5, 101, 0, 0, 1345, 138, 1, 0, 0, 0, 1346, 1347, 5, 112, 0, 0, 1347, 1348, 5, 114, 0, 0, 1348, 1349, 5, 111, 0, 0, 1349, 1350, 5, 100, 0, 0, 1350, 1351, 5, 117, 0, 0, 1351, 1352, 5, 99, 0, 0, 1352, 1353, 5, 101, 0, 0, 1353, 1354, 5, 114, 0, 0, 1354, 140, 1, 0, 0, 0, 1355, 1356, 5, 112, 0, 0, 1356, 1357, 5, 117, 0, 0, 1357, 1358, 5, 115, 0, 0, 1358, 1359, 5, 104, 0, 0, 1359, 1360, 5, 45, 0, 0, 1360, 1361, 5, 114, 0, 0, 1361, 1362, 5, 101, 0, 0, 1362, 1363, 5, 115, 0, 0, 1363, 1364, 5, 117, 0, 0, 1364, 1365, 5, 108, 0, 0, 1365, 1366, 5, 116, 0, 0, 1366, 1367, 5, 45, 0, 0, 1367, 1368, 5, 97, 0, 0, 1368, 1369, 5, 116, 0, 0, 1369, 142, 1, 0, 0, 0, 1370, 1371, 5, 101, 0, 0, 1371, 1372, 5, 120, 0, 0, 1372, 1373, 5, 101, 0, 0, 1373, 1374, 5, 99, 0, 0, 1374, 1375, 5, 117, 0, 0, 1375, 1376, 5, 116, 0, 0, 1376, 1377, 5, 101, 0, 0, 1377, 144, 1, 0, 0, 0, 1378, 1379, 5, 99, 0, 0, 1379, 1380, 5, 111, 0, 0, 1380, 1381, 5, 110, 0, 0, 1381, 1382, 5, 115, 0, 0, 1382, 1383, 5, 117, 0, 0, 1383, 1384, 5, 109, 0, 0, 1384, 1385, 5, 101, 0, 0, 1385, 1386, 5, 114, 0, 0, 1386, 146, 1, 0, 0, 0, 1387, 1388, 5, 112, 0, 0, 1388, 1389, 5, 111, 0, 0, 1389, 1390, 5, 112, 0, 0, 1390, 1391, 5, 45, 0, 0, 1391, 1392, 5, 101, 0, 0, 1392, 1393, 5, 118, 0, 0, 1393, 1394, 5, 101, 0, 0, 1394, 1395, 5, 110, 0, 0, 1395, 1396, 5, 116, 0, 0, 1396, 1397, 5, 45, 0, 0, 1397, 1398, 5, 102, 0, 0, 1398, 1399, 5, 114, 0, 0, 1399, 1400, 5, 111, 0, 0, 1400, 1401, 5, 109, 0, 0, 1401, 148, 1, 0, 0, 0, 1402, 1403, 5, 112, 0, 0, 1403, 1404, 5, 111, 0, 0, 1404, 1405, 5, 112, 0, 0, 1405, 1406, 5, 45, 0, 0, 1406, 1407, 5, 114, 0, 0, 1407, 1408, 5, 101, 0, 0, 1408, 1409, 5, 115, 0, 0, 1409, 1410, 5, 117, 0, 0, 1410, 1411, 5, 108, 0, 0, 1411, 1412, 5, 116, 0, 0, 1412, 1413, 5, 45, 0, 0, 1413, 1414, 5, 102, 0, 0, 1414, 1415, 5, 114, 0, 0, 1415, 1416, 5, 111, 0, 0, 1416, 1417, 5, 109, 0, 0, 1417, 150, 1, 0, 0, 0, 1418, 1419, 5, 108, 0, 0, 1419, 1420, 5, 105, 0, 0, 1420, 1421, 5, 109, 0, 0, 1421, 1422, 5, 105, 0, 0, 1422, 1423, 5, 116, 0, 0, 1423, 152, 1, 0, 0, 0, 1424, 1425, 5, 111, 0, 0, 1425, 1426, 5, 110, 0, 0, 1426, 1427, 5, 45, 0, 0, 1427, 1428, 5, 115, 0, 0, 1428, 1429, 5, 116, 0, 0, 1429, 1430, 5, 97, 0, 0, 1430, 1431, 5, 110, 0, 0, 1431, 1432, 5, 100, 0, 0, 1432, 1433, 5, 97, 0, 0, 1433, 1434, 5, 108, 0, 0, 1434, 1435, 5, 111, 0, 0, 1435, 1436, 5, 110, 0, 0, 1436, 1437, 5, 101, 0, 0, 1437, 154, 1, 0, 0, 0, 1438, 1439, 5, 112, 0, 0, 1439, 1440, 5, 117, 0, 0, 1440, 1441, 5, 115, 0, 0, 1441, 1442, 5, 104, 0, 0, 1442, 1443, 5, 45, 0, 0, 1443, 1444, 5, 106, 0, 0, 1444, 1445, 5, 115, 0, 0, 1445, 1446, 5, 111, 0, 0, 1446, 1447, 5, 110, 0, 0, 1447, 1448, 5, 45, 0, 0, 1448, 1449, 5, 105, 0, 0, 1449, 1450, 5, 110, 0, 0, 1450, 1451, 5, 116, 0, 0, 1451, 1452, 5, 111, 0, 0, 1452, 1453, 5, 45, 0, 0, 1453, 1454, 5, 99, 0, 0, 1454, 1455, 5, 111, 0, 0, 1455, 1456, 5, 110, 0, 0, 1456, 1457, 5, 116, 0, 0, 1457, 1458, 5, 101, 0, 0, 1458, 1459, 5, 120, 0, 0, 1459, 1460, 5, 116, 0, 0, 1460, 156, 1, 0, 0, 0, 1461, 1462, 5, 119, 0, 0, 1462, 1463, 5, 105, 0, 0, 1463, 1464, 5, 116, 0, 0, 1464, 1465, 5, 104, 0, 0, 1465, 1466, 5, 45, 0, 0, 1466, 1467, 5, 107, 0, 0, 1467, 1468, 5, 101, 0, 0, 1468, 1469, 5, 121, 0, 0, 1469, 158, 1, 0, 0, 0, 1470, 1471, 5, 117, 0, 0, 1471, 1472, 5, 115, 0, 0, 1472, 1473, 5, 105, 0, 0, 1473, 1474, 5, 110, 0, 0, 1474, 1475, 5, 103, 0, 0, 1475, 1476, 5, 45, 0, 0, 1476, 1477, 5, 118, 0, 0, 1477, 1478, 5, 97, 0, 0, 1478, 1479, 5, 108, 0, 0, 1479, 1480, 5, 117, 0, 0, 1480, 1481, 5, 101, 0, 0, 1481, 160, 1, 0, 0, 0, 1482, 1483, 5, 109, 0, 0, 1483, 1484, 5, 97, 0, 0, 1484, 1485, 5, 112, 0, 0, 1485, 1486, 5, 45, 0, 0, 1486, 1487, 5, 106, 0, 0, 1487, 1488, 5, 115, 0, 0, 1488, 1489, 5, 111, 0, 0, 1489, 1490, 5, 110, 0, 0, 1490, 1491, 5, 45, 0, 0, 1491, 1492, 5, 105, 0, 0, 1492, 1493, 5, 110, 0, 0, 1493, 1494, 5, 116, 0, 0, 1494, 1495, 5, 111, 0, 0, 1495, 1496, 5, 45, 0, 0, 1496, 1497, 5, 99, 0, 0, 1497, 1498, 5, 111, 0, 0, 1498, 1499, 5, 110, 0, 0, 1499, 1500, 5, 116, 0, 0, 1500, 1501, 5, 101, 0, 0, 1501, 1502, 5, 120, 0, 0, 1502, 1503, 5, 116, 0, 0, 1503, 162, 1, 0, 0, 0, 1504, 1505, 5, 115, 0, 0, 1505, 1506, 5, 104, 0, 0, 1506, 1507, 5, 97, 0, 0, 1507, 1508, 5, 114, 0, 0, 1508, 1509, 5, 101, 0, 0, 1509, 1510, 5, 112, 0, 0, 1510, 1511, 5, 111, 0, 0, 1511, 1512, 5, 105, 0, 0, 1512, 1513, 5, 110, 0, 0, 1513, 1514, 5, 116, 0, 0, 1514, 164, 1, 0, 0, 0, 1515, 1516, 5, 99, 0, 0, 1516, 1517, 5, 108, 0, 0, 1517, 1518, 5, 105, 0, 0, 1518, 1519, 5, 101, 0, 0, 1519, 1520, 5, 110, 0, 0, 1520, 1521, 5, 116, 0, 0, 1521, 1522, 5, 45, 0, 0, 1522, 1523, 5, 105, 0, 0, 1523, 1524, 5, 100, 0, 0, 1524, 166, 1, 0, 0, 0, 1525, 1526, 5, 116, 0, 0, 1526, 1527, 5, 101, 0, 0, 1527, 1528, 5, 110, 0, 0, 1528, 1529, 5, 97, 0, 0, 1529, 1530, 5, 110, 0, 0, 1530, 1531, 5, 116, 0, 0, 1531, 1532, 5, 45, 0, 0, 1532, 1533, 5, 105, 0, 0, 1533, 1534, 5, 100, 0, 0, 1534, 168, 1, 0, 0, 0, 1535, 1536, 5, 99, 0, 0, 1536, 1537, 5, 108, 0, 0, 1537, 1538, 5, 105, 0, 0, 1538, 1539, 5, 101, 0, 0, 1539, 1540, 5, 110, 0, 0, 1540, 1541, 5, 116, 0, 0, 1541, 1542, 5, 45, 0, 0, 1542, 1543, 5, 115, 0, 0, 1543, 1544, 5, 101, 0, 0, 1544, 1545, 5, 99, 0, 0, 1545, 1546, 5, 114, 0, 0, 1546, 1547, 5, 101, 0, 0, 1547, 1548, 5, 116, 0, 0, 1548, 170, 1, 0, 0, 0, 1549, 1550, 5, 111, 0, 0, 1550, 1551, 5, 114, 0, 0, 1551, 1552, 5, 103, 0, 0, 1552, 1553, 5, 45, 0, 0, 1553, 1554, 5, 110, 0, 0, 1554, 1555, 5, 97, 0, 0, 1555, 1556, 5, 109, 0, 0, 1556, 1557, 5, 101, 0, 0, 1557, 172, 1, 0, 0, 0, 1558, 1559, 5, 97, 0, 0, 1559, 1560, 5, 99, 0, 0, 1560, 1561, 5, 116, 0, 0, 1561, 1562, 5, 105, 0, 0, 1562, 1563, 5, 111, 0, 0, 1563, 1564, 5, 110, 0, 0, 1564, 1565, 5, 45, 0, 0, 1565, 1566, 5, 116, 0, 0, 1566, 1567, 5, 121, 0, 0, 1567, 1568, 5, 112, 0, 0, 1568, 1569, 5, 101, 0, 0, 1569, 174, 1, 0, 0, 0, 1570, 1571, 5, 115, 0, 0, 1571, 1572, 5, 105, 0, 0, 1572, 1573, 5, 116, 0, 0, 1573, 1574, 5, 101, 0, 0, 1574, 1575, 5, 45, 0, 0, 1575, 1576, 5, 117, 0, 0, 1576, 1577, 5, 114, 0, 0, 1577, 1578, 5, 108, 0, 0, 1578, 176, 1, 0, 0, 0, 1579, 1580, 5, 115, 0, 0, 1580, 1581, 5, 111, 0, 0, 1581, 1582, 5, 117, 0, 0, 1582, 1583, 5, 114, 0, 0, 1583, 1584, 5, 99, 0, 0, 1584, 1585, 5, 101, 0, 0, 1585, 1586, 5, 45, 0, 0, 1586, 1587, 5, 114, 0, 0, 1587, 1588, 5, 101, 0, 0, 1588, 1589, 5, 108, 0, 0, 1589, 1590, 5, 97, 0, 0, 1590, 1591, 5, 116, 0, 0, 1591, 1592, 5, 105, 0, 0, 1592, 1593, 5, 118, 0, 0, 1593, 1594, 5, 101, 0, 0, 1594, 1595, 5, 45, 0, 0, 1595, 1596, 5, 112, 0, 0, 1596, 1597, 5, 97, 0, 0, 1597, 1598, 5, 116, 0, 0, 1598, 1599, 5, 104, 0, 0, 1599, 178, 1, 0, 0, 0, 1600, 1601, 5, 102, 0, 0, 1601, 1602, 5, 105, 0, 0, 1602, 1603, 5, 108, 0, 0, 1603, 1604, 5, 101, 0, 0, 1604, 1605, 5, 45, 0, 0, 1605, 1606, 5, 110, 0, 0, 1606, 1607, 5, 97, 0, 0, 1607, 1608, 5, 109, 0, 0, 1608, 1609, 5, 101, 0, 0, 1609, 180, 1, 0, 0, 0, 1610, 1611, 5, 116, 0, 0, 1611, 1612, 5, 97, 0, 0, 1612, 1613, 5, 114, 0, 0, 1613, 1614, 5, 103, 0, 0, 1614, 1615, 5, 101, 0, 0, 1615, 1616, 5, 116, 0, 0, 1616, 1617, 5, 45, 0, 0, 1617, 1618, 5, 114, 0, 0, 1618, 1619, 5, 101, 0, 0, 1619, 1620, 5, 108, 0, 0, 1620, 1621, 5, 97, 0, 0, 1621, 1622, 5, 116, 0, 0, 1622, 1623, 5, 105, 0, 0, 1623, 1624, 5, 118, 0, 0, 1624, 1625, 5, 101, 0, 0, 1625, 1626, 5, 45, 0, 0, 1626, 1627, 5, 112, 0, 0, 1627, 1628, 5, 97, 0, 0, 1628, 1629, 5, 116, 0, 0, 1629, 1630, 5, 104, 0, 0, 1630, 182, 1, 0, 0, 0, 1631, 1632, 5, 105, 0, 0, 1632, 1633, 5, 102, 0, 0, 1633, 184, 1, 0, 0, 0, 1634, 1635, 5, 108, 0, 0, 1635, 1636, 5, 111, 0, 0, 1636, 1637, 5, 103, 0, 0, 1637, 186, 1, 0, 0, 0, 1638, 1639, 5, 108, 0, 0, 1639, 1640, 5, 101, 0, 0, 1640, 1641, 5, 118, 0, 0, 1641, 1642, 5, 101, 0, 0, 1642, 1643, 5, 108, 0, 0, 1643, 188, 1, 0, 0, 0, 1644, 1645, 5, 109, 0, 0, 1645, 1646, 5, 101, 0, 0, 1646, 1647, 5, 115, 0, 0, 1647, 1648, 5, 115, 0, 0, 1648, 1649, 5, 97, 0, 0, 1649, 1650, 5, 103, 0, 0, 1650, 1651, 5, 101, 0, 0, 1651, 190, 1, 0, 0, 0, 1652, 1653, 5, 114, 0, 0, 1653, 1654, 5, 97, 0, 0, 1654, 1655, 5, 105, 0, 0, 1655, 1656, 5, 115, 0, 0, 1656, 1657, 5, 101, 0, 0, 1657, 1658, 5, 32, 0, 0, 1658, 1659, 5, 101, 0, 0, 1659, 1660, 5, 120, 0, 0, 1660, 1661, 5, 99, 0, 0, 1661, 1662, 5, 101, 0, 0, 1662, 1663, 5, 112, 0, 0, 1663, 1664, 5, 116, 0, 0, 1664, 1665, 5, 105, 0, 0, 1665, 1666, 5, 111, 0, 0, 1666, 1667, 5, 110, 0, 0, 1667, 192, 1, 0, 0, 0, 1668, 1669, 5, 99, 0, 0, 1669, 1670, 5, 104, 0, 0, 1670, 1671, 5, 101, 0, 0, 1671, 1672, 5, 99, 0, 0, 1672, 1673, 5, 107, 0, 0, 1673, 1674, 5, 115, 0, 0, 1674, 1675, 5, 117, 0, 0, 1675, 1676, 5, 109, 0, 0, 1676, 194, 1, 0, 0, 0, 1677, 1678, 5, 102, 0, 0, 1678, 1679, 5, 105, 0, 0, 1679, 1680, 5, 108, 0, 0, 1680, 1681, 5, 101, 0, 0, 1681, 1682, 5, 83, 0, 0, 1682, 1683, 5, 105, 0, 0, 1683, 1684, 5, 122, 0, 0, 1684, 1685, 5, 101, 0, 0, 1685, 196, 1, 0, 0, 0, 1686, 1687, 5, 100, 0, 0, 1687, 1688, 5, 111, 0, 0, 1688, 1689, 5, 119, 0, 0, 1689, 1690, 5, 110, 0, 0, 1690, 1691, 5, 108, 0, 0, 1691, 1692, 5, 111, 0, 0, 1692, 1693, 5, 97, 0, 0, 1693, 1694, 5, 100, 0, 0, 1694, 1695, 5, 45, 0, 0, 1695, 1696, 5, 97, 0, 0, 1696, 1697, 5, 115, 0, 0, 1697, 1698, 5, 115, 0, 0, 1698, 1699, 5, 101, 0, 0, 1699, 1700, 5, 116, 0, 0, 1700, 198, 1, 0, 0, 0, 1701, 1702, 5, 102, 0, 0, 1702, 1703, 5, 114, 0, 0, 1703, 1704, 5, 111, 0, 0, 1704, 1705, 5, 109, 0, 0, 1705, 1706, 5, 45, 0, 0, 1706, 1707, 5, 117, 0, 0, 1707, 1708, 5, 114, 0, 0, 1708, 1709, 5, 108, 0, 0, 1709, 200, 1, 0, 0, 0, 1710, 1711, 5, 97, 0, 0, 1711, 1712, 5, 116, 0, 0, 1712, 202, 1, 0, 0, 0, 1713, 1714, 5, 112, 0, 0, 1714, 1715, 5, 97, 0, 0, 1715, 1716, 5, 112, 0, 0, 1716, 1717, 5, 101, 0, 0, 1717, 1718, 5, 114, 0, 0, 1718, 1719, 5, 45, 0, 0, 1719, 1720, 5, 105, 0, 0, 1720, 1721, 5, 116, 0, 0, 1721, 1722, 5, 101, 0, 0, 1722, 1723, 5, 109, 0, 0, 1723, 1724, 5, 105, 0, 0, 1724, 1725, 5, 122, 0, 0, 1725, 1726, 5, 97, 0, 0, 1726, 1727, 5, 116, 0, 0, 1727, 1728, 5, 105, 0, 0, 1728, 1729, 5, 111, 0, 0, 1729, 1730, 5, 110, 0, 0, 1730, 204, 1, 0, 0, 0, 1731, 1732, 5, 102, 0, 0, 1732, 1733, 5, 114, 0, 0, 1733, 1734, 5, 111, 0, 0, 1734, 1735, 5, 109, 0, 0, 1735, 1736, 5, 45, 0, 0, 1736, 1737, 5, 116, 0, 0, 1737, 1738, 5, 97, 0, 0, 1738, 1739, 5, 114, 0, 0, 1739, 1740, 5, 103, 0, 0, 1740, 1741, 5, 101, 0, 0, 1741, 1742, 5, 116, 0, 0, 1742, 1743, 5, 45, 0, 0, 1743, 1744, 5, 102, 0, 0, 1744, 1745, 5, 105, 0, 0, 1745, 1746, 5, 108, 0, 0, 1746, 1747, 5, 101, 0, 0, 1747, 206, 1, 0, 0, 0, 1748, 1749, 5, 97, 0, 0, 1749, 1750, 5, 117, 0, 0, 1750, 1751, 5, 116, 0, 0, 1751, 1752, 5, 111, 0, 0, 1752, 1753, 5, 82, 0, 0, 1753, 1754, 5, 111, 0, 0, 1754, 1755, 5, 116, 0, 0, 1755, 1756, 5, 97, 0, 0, 1756, 1757, 5, 116, 0, 0, 1757, 1758, 5, 105, 0, 0, 1758, 1759, 5, 111, 0, 0, 1759, 1760, 5, 110, 0, 0, 1760, 208, 1, 0, 0, 0, 1761, 1762, 5, 111, 0, 0, 1762, 1763, 5, 117, 0, 0, 1763, 1764, 5, 116, 0, 0, 1764, 1765, 5, 112, 0, 0, 1765, 1766, 5, 117, 0, 0, 1766, 1767, 5, 116, 0, 0, 1767, 1768, 5, 45, 0, 0, 1768, 1769, 5, 100, 0, 0, 1769, 1770, 5, 105, 0, 0, 1770, 1771, 5, 114, 0, 0, 1771, 210, 1, 0, 0, 0, 1772, 1773, 5, 112, 0, 0, 1773, 1774, 5, 114, 0, 0, 1774, 1775, 5, 111, 0, 0, 1775, 1776, 5, 99, 0, 0, 1776, 1777, 5, 101, 0, 0, 1777, 1778, 5, 115, 0, 0, 1778, 1779, 5, 115, 0, 0, 1779, 1780, 5, 45, 0, 0, 1780, 1781, 5, 105, 0, 0, 1781, 1782, 5, 100, 0, 0, 1782, 212, 1, 0, 0, 0, 1783, 1784, 5, 114, 0, 0, 1784, 1785, 5, 101, 0, 0, 1785, 1786, 5, 115, 0, 0, 1786, 1787, 5, 111, 0, 0, 1787, 1788, 5, 117, 0, 0, 1788, 1789, 5, 114, 0, 0, 1789, 1790, 5, 99, 0, 0, 1790, 1791, 5, 101, 0, 0, 1791, 1792, 5, 45, 0, 0, 1792, 1793, 5, 99, 0, 0, 1793, 1794, 5, 111, 0, 0, 1794, 1795, 5, 110, 0, 0, 1795, 1796, 5, 110, 0, 0, 1796, 214, 1, 0, 0, 0, 1797, 1798, 5, 98, 0, 0, 1798, 1799, 5, 108, 0, 0, 1799, 1800, 5, 97, 0, 0, 1800, 1801, 5, 110, 0, 0, 1801, 1802, 5, 107, 0, 0, 1802, 1803, 5, 80, 0, 0, 1803, 1804, 5, 97, 0, 0, 1804, 1805, 5, 103, 0, 0, 1805, 1806, 5, 101, 0, 0, 1806, 1807, 5, 82, 0, 0, 1807, 1808, 5, 101, 0, 0, 1808, 1809, 5, 109, 0, 0, 1809, 1810, 5, 111, 0, 0, 1810, 1811, 5, 118, 0, 0, 1811, 1812, 5, 101, 0, 0, 1812, 1813, 5, 114, 0, 0, 1813, 216, 1, 0, 0, 0, 1814, 1815, 5, 113, 0, 0, 1815, 1816, 5, 114, 0, 0, 1816, 1817, 5, 65, 0, 0, 1817, 1818, 5, 116, 0, 0, 1818, 1819, 5, 116, 0, 0, 1819, 1820, 5, 114, 0, 0, 1820, 1821, 5, 105, 0, 0, 1821, 1822, 5, 98, 0, 0, 1822, 1823, 5, 117, 0, 0, 1823, 1824, 5, 116, 0, 0, 1824, 1825, 5, 105, 0, 0, 1825, 1826, 5, 111, 0, 0, 1826, 1827, 5, 110, 0, 0, 1827, 218, 1, 0, 0, 0, 1828, 1829, 5, 117, 0, 0, 1829, 1830, 5, 112, 0, 0, 1830, 1831, 5, 108, 0, 0, 1831, 1832, 5, 111, 0, 0, 1832, 1833, 5, 97, 0, 0, 1833, 1834, 5, 100, 0, 0, 1834, 1835, 5, 65, 0, 0, 1835, 1836, 5, 115, 0, 0, 1836, 1837, 5, 115, 0, 0, 1837, 1838, 5, 101, 0, 0, 1838, 1839, 5, 116, 0, 0, 1839, 220, 1, 0, 0, 0, 1840, 1841, 5, 116, 0, 0, 1841, 1842, 5, 101, 0, 0, 1842, 1843, 5, 109, 0, 0, 1843, 1844, 5, 112, 0, 0, 1844, 1845, 5, 108, 0, 0, 1845, 1846, 5, 97, 0, 0, 1846, 1847, 5, 116, 0, 0, 1847, 1848, 5, 101, 0, 0, 1848, 1849, 5, 45, 0, 0, 1849, 1850, 5, 105, 0, 0, 1850, 1851, 5, 100, 0, 0, 1851, 222, 1, 0, 0, 0, 1852, 1853, 5, 97, 0, 0, 1853, 1854, 5, 117, 0, 0, 1854, 1855, 5, 116, 0, 0, 1855, 1856, 5, 104, 0, 0, 1856, 1857, 5, 45, 0, 0, 1857, 1858, 5, 116, 0, 0, 1858, 1859, 5, 111, 0, 0, 1859, 1860, 5, 107, 0, 0, 1860, 1861, 5, 101, 0, 0, 1861, 1862, 5, 110, 0, 0, 1862, 224, 1, 0, 0, 0, 1863, 1864, 5, 102, 0, 0, 1864, 1865, 5, 105, 0, 0, 1865, 1866, 5, 108, 0, 0, 1866, 1867, 5, 101, 0, 0, 1867, 1868, 5, 77, 0, 0, 1868, 1869, 5, 101, 0, 0, 1869, 1870, 5, 114, 0, 0, 1870, 1871, 5, 103, 0, 0, 1871, 1872, 5, 101, 0, 0, 1872, 1873, 5, 114, 0, 0, 1873, 226, 1, 0, 0, 0, 1874, 1875, 5, 105, 0, 0, 1875, 1876, 5, 110, 0, 0, 1876, 228, 1, 0, 0, 0, 1877, 1878, 5, 102, 0, 0, 1878, 1879, 5, 116, 0, 0, 1879, 1880, 5, 112, 0, 0, 1880, 1881, 5, 115, 0, 0, 1881, 1882, 5, 95, 0, 0, 1882, 1883, 5, 117, 0, 0, 1883, 1884, 5, 112, 0, 0, 1884, 1885, 5, 108, 0, 0, 1885, 1886, 5, 111, 0, 0, 1886, 1887, 5, 97, 0, 0, 1887, 1888, 5, 100, 0, 0, 1888, 230, 1, 0, 0, 0, 1889, 1890, 5, 119, 0, 0, 1890, 1891, 5, 105, 0, 0, 1891, 1892, 5, 116, 0, 0, 1892, 1893, 5, 104, 0, 0, 1893, 1894, 5, 45, 0, 0, 1894, 1895, 5, 114, 0, 0, 1895, 1896, 5, 101, 0, 0, 1896, 1897, 5, 109, 0, 0, 1897, 1898, 5, 111, 0, 0, 1898, 1899, 5, 116, 0, 0, 1899, 1900, 5, 101, 0, 0, 1900, 1901, 5, 45, 0, 0, 1901, 1902, 5, 104, 0, 0, 1902, 1903, 5, 111, 0, 0, 1903, 1904, 5, 115, 0, 0, 1904, 1905, 5, 116, 0, 0, 1905, 232, 1, 0, 0, 0, 1906, 1907, 5, 112, 0, 0, 1907, 1908, 5, 111, 0, 0, 1908, 1909, 5, 114, 0, 0, 1909, 1910, 5, 116, 0, 0, 1910, 234, 1, 0, 0, 0, 1911, 1912, 5, 117, 0, 0, 1912, 1913, 5, 115, 0, 0, 1913, 1914, 5, 101, 0, 0, 1914, 1915, 5, 114, 0, 0, 1915, 1916, 5, 45, 0, 0, 1916, 1917, 5, 110, 0, 0, 1917, 1918, 5, 97, 0, 0, 1918, 1919, 5, 109, 0, 0, 1919, 1920, 5, 101, 0, 0, 1920, 236, 1, 0, 0, 0, 1921, 1922, 5, 112, 0, 0, 1922, 1923, 5, 97, 0, 0, 1923, 1924, 5, 115, 0, 0, 1924, 1925, 5, 115, 0, 0, 1925, 1926, 5, 119, 0, 0, 1926, 1927, 5, 111, 0, 0, 1927, 1928, 5, 114, 0, 0, 1928, 1929, 5, 100, 0, 0, 1929, 238, 1, 0, 0, 0, 1930, 1931, 5, 115, 0, 0, 1931, 1932, 5, 101, 0, 0, 1932, 1933, 5, 115, 0, 0, 1933, 1934, 5, 115, 0, 0, 1934, 1935, 5, 105, 0, 0, 1935, 1936, 5, 111, 0, 0, 1936, 1937, 5, 110, 0, 0, 1937, 1938, 5, 45, 0, 0, 1938, 1939, 5, 116, 0, 0, 1939, 1940, 5, 105, 0, 0, 1940, 1941, 5, 109, 0, 0, 1941, 1942, 5, 101, 0, 0, 1942, 1943, 5, 111, 0, 0, 1943, 1944, 5, 117, 0, 0, 1944, 1945, 5, 116, 0, 0, 1945, 240, 1, 0, 0, 0, 1946, 1947, 5, 115, 0, 0, 1947, 1948, 5, 111, 0, 0, 1948, 1949, 5, 117, 0, 0, 1949, 1950, 5, 114, 0, 0, 1950, 1951, 5, 99, 0, 0, 1951, 1952, 5, 101, 0, 0, 1952, 1953, 5, 45, 0, 0, 1953, 1954, 5, 102, 0, 0, 1954, 1955, 5, 105, 0, 0, 1955, 1956, 5, 108, 0, 0, 1956, 1957, 5, 101, 0, 0, 1957, 1958, 5, 45, 0, 0, 1958, 1959, 5, 116, 0, 0, 1959, 1960, 5, 111, 0, 0, 1960, 1961, 5, 45, 0, 0, 1961, 1962, 5, 117, 0, 0, 1962, 1963, 5, 112, 0, 0, 1963, 1964, 5, 108, 0, 0, 1964, 1965, 5, 111, 0, 0, 1965, 1966, 5, 97, 0, 0, 1966, 1967, 5, 100, 0, 0, 1967, 242, 1, 0, 0, 0, 1968, 1969, 5, 105, 0, 0, 1969, 1970, 5, 110, 0, 0, 1970, 1971, 5, 45, 0, 0, 1971, 1972, 5, 100, 0, 0, 1972, 1973, 5, 101, 0, 0, 1973, 1974, 5, 115, 0, 0, 1974, 1975, 5, 116, 0, 0, 1975, 1976, 5, 105, 0, 0, 1976, 1977, 5, 110, 0, 0, 1977, 1978, 5, 97, 0, 0, 1978, 1979, 5, 116, 0, 0, 1979, 1980, 5, 105, 0, 0, 1980, 1981, 5, 111, 0, 0, 1981, 1982, 5, 110, 0, 0, 1982, 1983, 5, 45, 0, 0, 1983, 1984, 5, 116, 0, 0, 1984, 1985, 5, 111, 0, 0, 1985, 1986, 5, 45, 0, 0, 1986, 1987, 5, 115, 0, 0, 1987, 1988, 5, 97, 0, 0, 1988, 1989, 5, 118, 0, 0, 1989, 1990, 5, 101, 0, 0, 1990, 244, 1, 0, 0, 0, 1991, 1992, 5, 117, 0, 0, 1992, 1993, 5, 112, 0, 0, 1993, 1994, 5, 108, 0, 0, 1994, 1995, 5, 111, 0, 0, 1995, 1996, 5, 97, 0, 0, 1996, 1997, 5, 100, 0, 0, 1997, 1998, 5, 45, 0, 0, 1998, 1999, 5, 99, 0, 0, 1999, 2000, 5, 104, 0, 0, 2000, 2001, 5, 101, 0, 0, 2001, 2002, 5, 99, 0, 0, 2002, 2003, 5, 107, 0, 0, 2003, 246, 1, 0, 0, 0, 2004, 2005, 5, 102, 0, 0, 2005, 2006, 5, 116, 0, 0, 2006, 2007, 5, 112, 0, 0, 2007, 2008, 5, 115, 0, 0, 2008, 2009, 5, 95, 0, 0, 2009, 2010, 5, 100, 0, 0, 2010, 2011, 5, 111, 0, 0, 2011, 2012, 5, 119, 0, 0, 2012, 2013, 5, 110, 0, 0, 2013, 2014, 5, 108, 0, 0, 2014, 2015, 5, 111, 0, 0, 2015, 2016, 5, 97, 0, 0, 2016, 2017, 5, 100, 0, 0, 2017, 248, 1, 0, 0, 0, 2018, 2019, 5, 115, 0, 0, 2019, 2020, 5, 111, 0, 0, 2020, 2021, 5, 117, 0, 0, 2021, 2022, 5, 114, 0, 0, 2022, 2023, 5, 99, 0, 0, 2023, 2024, 5, 101, 0, 0, 2024, 2025, 5, 45, 0, 0, 2025, 2026, 5, 102, 0, 0, 2026, 2027, 5, 105, 0, 0, 2027, 2028, 5, 108, 0, 0, 2028, 2029, 5, 101, 0, 0, 2029, 2030, 5, 45, 0, 0, 2030, 2031, 5, 116, 0, 0, 2031, 2032, 5, 111, 0, 0, 2032, 2033, 5, 45, 0, 0, 2033, 2034, 5, 100, 0, 0, 2034, 2035, 5, 111, 0, 0, 2035, 2036, 5, 119, 0, 0, 2036, 2037, 5, 110, 0, 0, 2037, 2038, 5, 108, 0, 0, 2038, 2039, 5, 111, 0, 0, 2039, 2040, 5, 97, 0, 0, 2040, 2041, 5, 100, 0, 0, 2041, 250, 1, 0, 0, 0, 2042, 2043, 5, 100, 0, 0, 2043, 2044, 5, 111, 0, 0, 2044, 2045, 5, 119, 0, 0, 2045, 2046, 5, 110, 0, 0, 2046, 2047, 5, 108, 0, 0, 2047, 2048, 5, 111, 0, 0, 2048, 2049, 5, 97, 0, 0, 2049, 2050, 5, 100, 0, 0, 2050, 2051, 5, 45, 0, 0, 2051, 2052, 5, 99, 0, 0, 2052, 2053, 5, 104, 0, 0, 2053, 2054, 5, 101, 0, 0, 2054, 2055, 5, 99, 0, 0, 2055, 2056, 5, 107, 0, 0, 2056, 252, 1, 0, 0, 0, 2057, 2058, 5, 115, 0, 0, 2058, 2059, 5, 102, 0, 0, 2059, 2060, 5, 116, 0, 0, 2060, 2061, 5, 112, 0, 0, 2061, 254, 1, 0, 0, 0, 2062, 2063, 5, 99, 0, 0, 2063, 2064, 5, 104, 0, 0, 2064, 2065, 5, 97, 0, 0, 2065, 2066, 5, 110, 0, 0, 2066, 2067, 5, 110, 0, 0, 2067, 2068, 5, 101, 0, 0, 2068, 2069, 5, 108, 0, 0, 2069, 2070, 5, 45, 0, 0, 2070, 2071, 5, 116, 0, 0, 2071, 2072, 5, 105, 0, 0, 2072, 2073, 5, 109, 0, 0, 2073, 2074, 5, 101, 0, 0, 2074, 2075, 5, 111, 0, 0, 2075, 2076, 5, 117, 0, 0, 2076, 2077, 5, 116, 0, 0, 2077, 256, 1, 0, 0, 0, 2078, 2079, 5, 102, 0, 0, 2079, 2080, 5, 116, 0, 0, 2080, 2081, 5, 112, 0, 0, 2081, 258, 1, 0, 0, 0, 2082, 2083, 5, 99, 0, 0, 2083, 2084, 5, 114, 0, 0, 2084, 2085, 5, 101, 0, 0, 2085, 2086, 5, 97, 0, 0, 2086, 2087, 5, 116, 0, 0, 2087, 2088, 5, 101, 0, 0, 2088, 2089, 5, 45, 0, 0, 2089, 2090, 5, 122, 0, 0, 2090, 2091, 5, 105, 0, 0, 2091, 2092, 5, 112, 0, 0, 2092, 260, 1, 0, 0, 0, 2093, 2094, 5, 101, 0, 0, 2094, 2095, 5, 120, 0, 0, 2095, 2096, 5, 116, 0, 0, 2096, 2097, 5, 114, 0, 0, 2097, 2098, 5, 97, 0, 0, 2098, 2099, 5, 99, 0, 0, 2099, 2100, 5, 116, 0, 0, 2100, 2101, 5, 45, 0, 0, 2101, 2102, 5, 122, 0, 0, 2102, 2103, 5, 105, 0, 0, 2103, 2104, 5, 112, 0, 0, 2104, 262, 1, 0, 0, 0, 2105, 2106, 5, 115, 0, 0, 2106, 2107, 5, 111, 0, 0, 2107, 2108, 5, 114, 0, 0, 2108, 2109, 5, 71, 0, 0, 2109, 2110, 5, 114, 0, 0, 2110, 2111, 5, 111, 0, 0, 2111, 2112, 5, 117, 0, 0, 2112, 2113, 5, 112, 0, 0, 2113, 2114, 5, 68, 0, 0, 2114, 2115, 5, 101, 0, 0, 2115, 2116, 5, 116, 0, 0, 2116, 2117, 5, 97, 0, 0, 2117, 2118, 5, 105, 0, 0, 2118, 2119, 5, 108, 0, 0, 2119, 2120, 5, 115, 0, 0, 2120, 264, 1, 0, 0, 0, 2121, 2122, 5, 107, 0, 0, 2122, 2123, 5, 101, 0, 0, 2123, 2124, 5, 121, 0, 0, 2124, 2125, 5, 102, 0, 0, 2125, 2126, 5, 105, 0, 0, 2126, 2127, 5, 101, 0, 0, 2127, 2128, 5, 108, 0, 0, 2128, 2129, 5, 100, 0, 0, 2129, 2130, 5, 115, 0, 0, 2130, 266, 1, 0, 0, 0, 2131, 2132, 5, 115, 0, 0, 2132, 2133, 5, 101, 0, 0, 2133, 2134, 5, 97, 0, 0, 2134, 2135, 5, 114, 0, 0, 2135, 2136, 5, 99, 0, 0, 2136, 2137, 5, 104, 0, 0, 2137, 2138, 5, 102, 0, 0, 2138, 2139, 5, 105, 0, 0, 2139, 2140, 5, 101, 0, 0, 2140, 2141, 5, 108, 0, 0, 2141, 2142, 5, 100, 0, 0, 2142, 2143, 5, 115, 0, 0, 2143, 268, 1, 0, 0, 0, 2144, 2145, 5, 103, 0, 0, 2145, 2146, 5, 114, 0, 0, 2146, 2147, 5, 111, 0, 0, 2147, 2148, 5, 117, 0, 0, 2148, 2149, 5, 112, 0, 0, 2149, 2150, 5, 98, 0, 0, 2150, 2151, 5, 121, 0, 0, 2151, 2152, 5, 102, 0, 0, 2152, 2153, 5, 105, 0, 0, 2153, 2154, 5, 101, 0, 0, 2154, 2155, 5, 108, 0, 0, 2155, 2156, 5, 100, 0, 0, 2156, 2157, 5, 115, 0, 0, 2157, 270, 1, 0, 0, 0, 2158, 2159, 5, 116, 0, 0, 2159, 2160, 5, 97, 0, 0, 2160, 2161, 5, 114, 0, 0, 2161, 2162, 5, 103, 0, 0, 2162, 2163, 5, 101, 0, 0, 2163, 2164, 5, 116, 0, 0, 2164, 2165, 5, 116, 0, 0, 2165, 2166, 5, 97, 0, 0, 2166, 2167, 5, 98, 0, 0, 2167, 2168, 5, 108, 0, 0, 2168, 2169, 5, 101, 0, 0, 2169, 272, 1, 0, 0, 0, 2170, 2171, 5, 122, 0, 0, 2171, 2172, 5, 101, 0, 0, 2172, 2173, 5, 114, 0, 0, 2173, 2174, 5, 111, 0, 0, 2174, 2175, 5, 83, 0, 0, 2175, 2176, 5, 104, 0, 0, 2176, 2177, 5, 111, 0, 0, 2177, 2178, 5, 116, 0, 0, 2178, 2179, 5, 67, 0, 0, 2179, 2180, 5, 108, 0, 0, 2180, 2181, 5, 97, 0, 0, 2181, 2182, 5, 115, 0, 0, 2182, 2183, 5, 115, 0, 0, 2183, 2184, 5, 105, 0, 0, 2184, 2185, 5, 102, 0, 0, 2185, 2186, 5, 105, 0, 0, 2186, 2187, 5, 101, 0, 0, 2187, 2188, 5, 114, 0, 0, 2188, 274, 1, 0, 0, 0, 2189, 2190, 5, 119, 0, 0, 2190, 2191, 5, 105, 0, 0, 2191, 2192, 5, 116, 0, 0, 2192, 2193, 5, 104, 0, 0, 2193, 2194, 5, 45, 0, 0, 2194, 2195, 5, 99, 0, 0, 2195, 2196, 5, 97, 0, 0, 2196, 2197, 5, 110, 0, 0, 2197, 2198, 5, 100, 0, 0, 2198, 2199, 5, 105, 0, 0, 2199, 2200, 5, 100, 0, 0, 2200, 2201, 5, 97, 0, 0, 2201, 2202, 5, 116, 0, 0, 2202, 2203, 5, 101, 0, 0, 2203, 2204, 5, 45, 0, 0, 2204, 2205, 5, 108, 0, 0, 2205, 2206, 5, 97, 0, 0, 2206, 2207, 5, 98, 0, 0, 2207, 2208, 5, 101, 0, 0, 2208, 2209, 5, 108, 0, 0, 2209, 2210, 5, 115, 0, 0, 2210, 276, 1, 0, 0, 0, 2211, 2212, 5, 108, 0, 0, 2212, 2213, 5, 111, 0, 0, 2213, 2214, 5, 97, 0, 0, 2214, 2215, 5, 100, 0, 0, 2215, 2216, 5, 69, 0, 0, 2216, 2217, 5, 120, 0, 0, 2217, 2218, 5, 116, 0, 0, 2218, 2219, 5, 114, 0, 0, 2219, 2220, 5, 97, 0, 0, 2220, 2221, 5, 99, 0, 0, 2221, 2222, 5, 116, 0, 0, 2222, 2223, 5, 101, 0, 0, 2223, 2224, 5, 100, 0, 0, 2224, 2225, 5, 68, 0, 0, 2225, 2226, 5, 97, 0, 0, 2226, 2227, 5, 116, 0, 0, 2227, 2228, 5, 97, 0, 0, 2228, 278, 1, 0, 0, 0, 2229, 2230, 5, 102, 0, 0, 2230, 2231, 5, 105, 0, 0, 2231, 2232, 5, 108, 0, 0, 2232, 2233, 5, 101, 0, 0, 2233, 2234, 5, 45, 0, 0, 2234, 2235, 5, 112, 0, 0, 2235, 2236, 5, 97, 0, 0, 2236, 2237, 5, 116, 0, 0, 2237, 2238, 5, 104, 0, 0, 2238, 280, 1, 0, 0, 0, 2239, 2240, 5, 112, 0, 0, 2240, 2241, 5, 97, 0, 0, 2241, 2242, 5, 112, 0, 0, 2242, 2243, 5, 101, 0, 0, 2243, 2244, 5, 114, 0, 0, 2244, 2245, 5, 45, 0, 0, 2245, 2246, 5, 110, 0, 0, 2246, 2247, 5, 111, 0, 0, 2247, 282, 1, 0, 0, 0, 2248, 2249, 5, 105, 0, 0, 2249, 2250, 5, 110, 0, 0, 2250, 2251, 5, 116, 0, 0, 2251, 2252, 5, 105, 0, 0, 2252, 2253, 5, 99, 0, 0, 2253, 2254, 5, 115, 0, 0, 2254, 2255, 5, 45, 0, 0, 2255, 2256, 5, 114, 0, 0, 2256, 2257, 5, 101, 0, 0, 2257, 2258, 5, 102, 0, 0, 2258, 2259, 5, 101, 0, 0, 2259, 2260, 5, 114, 0, 0, 2260, 2261, 5, 101, 0, 0, 2261, 2262, 5, 110, 0, 0, 2262, 2263, 5, 99, 0, 0, 2263, 2264, 5, 101, 0, 0, 2264, 2265, 5, 45, 0, 0, 2265, 2266, 5, 105, 0, 0, 2266, 2267, 5, 100, 0, 0, 2267, 284, 1, 0, 0, 0, 2268, 2269, 5, 98, 0, 0, 2269, 2270, 5, 97, 0, 0, 2270, 2271, 5, 116, 0, 0, 2271, 2272, 5, 99, 0, 0, 2272, 2273, 5, 104, 0, 0, 2273, 2274, 5, 45, 0, 0, 2274, 2275, 5, 105, 0, 0, 2275, 2276, 5, 100, 0, 0, 2276, 286, 1, 0, 0, 0, 2277, 2278, 5, 116, 0, 0, 2278, 2279, 5, 97, 0, 0, 2279, 2280, 5, 114, 0, 0, 2280, 2281, 5, 103, 0, 0, 2281, 2282, 5, 101, 0, 0, 2282, 2283, 5, 116, 0, 0, 2283, 2284, 5, 45, 0, 0, 2284, 2285, 5, 100, 0, 0, 2285, 2286, 5, 105, 0, 0, 2286, 2287, 5, 114, 0, 0, 2287, 288, 1, 0, 0, 0, 2288, 2289, 5, 97, 0, 0, 2289, 2290, 5, 98, 0, 0, 2290, 2291, 5, 115, 0, 0, 2291, 2292, 5, 101, 0, 0, 2292, 2293, 5, 110, 0, 0, 2293, 2294, 5, 116, 0, 0, 2294, 2295, 5, 75, 0, 0, 2295, 2296, 5, 101, 0, 0, 2296, 2297, 5, 121, 0, 0, 2297, 2298, 5, 70, 0, 0, 2298, 2299, 5, 105, 0, 0, 2299, 2300, 5, 108, 0, 0, 2300, 2301, 5, 116, 0, 0, 2301, 2302, 5, 101, 0, 0, 2302, 2303, 5, 114, 0, 0, 2303, 290, 1, 0, 0, 0, 2304, 2305, 5, 115, 0, 0, 2305, 2306, 5, 111, 0, 0, 2306, 2307, 5, 114, 0, 0, 2307, 2308, 5, 45, 0, 0, 2308, 2309, 5, 108, 0, 0, 2309, 2310, 5, 105, 0, 0, 2310, 2311, 5, 115, 0, 0, 2311, 2312, 5, 116, 0, 0, 2312, 292, 1, 0, 0, 0, 2313, 2314, 5, 115, 0, 0, 2314, 2315, 5, 111, 0, 0, 2315, 2316, 5, 114, 0, 0, 2316, 2317, 5, 70, 0, 0, 2317, 2318, 5, 105, 0, 0, 2318, 2319, 5, 108, 0, 0, 2319, 2320, 5, 116, 0, 0, 2320, 2321, 5, 101, 0, 0, 2321, 2322, 5, 114, 0, 0, 2322, 294, 1, 0, 0, 0, 2323, 2324, 5, 115, 0, 0, 2324, 2325, 5, 101, 0, 0, 2325, 2326, 5, 97, 0, 0, 2326, 2327, 5, 114, 0, 0, 2327, 2328, 5, 99, 0, 0, 2328, 2329, 5, 104, 0, 0, 2329, 2330, 5, 45, 0, 0, 2330, 2331, 5, 118, 0, 0, 2331, 2332, 5, 97, 0, 0, 2332, 2333, 5, 108, 0, 0, 2333, 2334, 5, 117, 0, 0, 2334, 2335, 5, 101, 0, 0, 2335, 296, 1, 0, 0, 0, 2336, 2337, 5, 116, 0, 0, 2337, 2338, 5, 114, 0, 0, 2338, 2339, 5, 105, 0, 0, 2339, 2340, 5, 97, 0, 0, 2340, 2341, 5, 103, 0, 0, 2341, 2342, 5, 101, 0, 0, 2342, 298, 1, 0, 0, 0, 2343, 2344, 5, 105, 0, 0, 2344, 2345, 5, 110, 0, 0, 2345, 2346, 5, 45, 0, 0, 2346, 2347, 5, 111, 0, 0, 2347, 2348, 5, 117, 0, 0, 2348, 2349, 5, 116, 0, 0, 2349, 2350, 5, 112, 0, 0, 2350, 2351, 5, 117, 0, 0, 2351, 2352, 5, 116, 0, 0, 2352, 2353, 5, 45, 0, 0, 2353, 2354, 5, 100, 0, 0, 2354, 2355, 5, 105, 0, 0, 2355, 2356, 5, 114, 0, 0, 2356, 300, 1, 0, 0, 0, 2357, 2358, 5, 119, 0, 0, 2358, 2359, 5, 105, 0, 0, 2359, 2360, 5, 116, 0, 0, 2360, 2361, 5, 104, 0, 0, 2361, 2362, 5, 45, 0, 0, 2362, 2363, 5, 108, 0, 0, 2363, 2364, 5, 97, 0, 0, 2364, 2365, 5, 98, 0, 0, 2365, 2366, 5, 101, 0, 0, 2366, 2367, 5, 108, 0, 0, 2367, 2368, 5, 108, 0, 0, 2368, 2369, 5, 101, 0, 0, 2369, 2370, 5, 100, 0, 0, 2370, 2371, 5, 45, 0, 0, 2371, 2372, 5, 99, 0, 0, 2372, 2373, 5, 108, 0, 0, 2373, 2374, 5, 97, 0, 0, 2374, 2375, 5, 115, 0, 0, 2375, 2376, 5, 115, 0, 0, 2376, 2377, 5, 105, 0, 0, 2377, 2378, 5, 102, 0, 0, 2378, 2379, 5, 105, 0, 0, 2379, 2380, 5, 101, 0, 0, 2380, 2381, 5, 114, 0, 0, 2381, 2382, 5, 45, 0, 0, 2382, 2383, 5, 109, 0, 0, 2383, 2384, 5, 111, 0, 0, 2384, 2385, 5, 100, 0, 0, 2385, 2386, 5, 101, 0, 0, 2386, 2387, 5, 108, 0, 0, 2387, 2388, 5, 45, 0, 0, 2388, 2389, 5, 112, 0, 0, 2389, 2390, 5, 97, 0, 0, 2390, 2391, 5, 116, 0, 0, 2391, 2392, 5, 104, 0, 0, 2392, 302, 1, 0, 0, 0, 2393, 2394, 5, 119, 0, 0, 2394, 2395, 5, 105, 0, 0, 2395, 2396, 5, 116, 0, 0, 2396, 2397, 5, 104, 0, 0, 2397, 2398, 5, 45, 0, 0, 2398, 2399, 5, 104, 0, 0, 2399, 2400, 5, 97, 0, 0, 2400, 2401, 5, 110, 0, 0, 2401, 2402, 5, 100, 0, 0, 2402, 2403, 5, 119, 0, 0, 2403, 2404, 5, 114, 0, 0, 2404, 2405, 5, 105, 0, 0, 2405, 2406, 5, 116, 0, 0, 2406, 2407, 5, 116, 0, 0, 2407, 2408, 5, 101, 0, 0, 2408, 2409, 5, 110, 0, 0, 2409, 2410, 5, 45, 0, 0, 2410, 2411, 5, 101, 0, 0, 2411, 2412, 5, 120, 0, 0, 2412, 2413, 5, 116, 0, 0, 2413, 2414, 5, 114, 0, 0, 2414, 2415, 5, 97, 0, 0, 2415, 2416, 5, 99, 0, 0, 2416, 2417, 5, 116, 0, 0, 2417, 2418, 5, 111, 0, 0, 2418, 2419, 5, 114, 0, 0, 2419, 2420, 5, 45, 0, 0, 2420, 2421, 5, 109, 0, 0, 2421, 2422, 5, 111, 0, 0, 2422, 2423, 5, 100, 0, 0, 2423, 2424, 5, 101, 0, 0, 2424, 2425, 5, 108, 0, 0, 2425, 2426, 5, 45, 0, 0, 2426, 2427, 5, 112, 0, 0, 2427, 2428, 5, 97, 0, 0, 2428, 2429, 5, 116, 0, 0, 2429, 2430, 5, 104, 0, 0, 2430, 304, 1, 0, 0, 0, 2431, 2432, 5, 119, 0, 0, 2432, 2433, 5, 105, 0, 0, 2433, 2434, 5, 116, 0, 0, 2434, 2435, 5, 104, 0, 0, 2435, 2436, 5, 45, 0, 0, 2436, 2437, 5, 99, 0, 0, 2437, 2438, 5, 104, 0, 0, 2438, 2439, 5, 101, 0, 0, 2439, 2440, 5, 99, 0, 0, 2440, 2441, 5, 107, 0, 0, 2441, 2442, 5, 98, 0, 0, 2442, 2443, 5, 111, 0, 0, 2443, 2444, 5, 120, 0, 0, 2444, 2445, 5, 45, 0, 0, 2445, 2446, 5, 101, 0, 0, 2446, 2447, 5, 120, 0, 0, 2447, 2448, 5, 116, 0, 0, 2448, 2449, 5, 114, 0, 0, 2449, 2450, 5, 97, 0, 0, 2450, 2451, 5, 99, 0, 0, 2451, 2452, 5, 116, 0, 0, 2452, 2453, 5, 111, 0, 0, 2453, 2454, 5, 114, 0, 0, 2454, 2455, 5, 45, 0, 0, 2455, 2456, 5, 109, 0, 0, 2456, 2457, 5, 111, 0, 0, 2457, 2458, 5, 100, 0, 0, 2458, 2459, 5, 101, 0, 0, 2459, 2460, 5, 108, 0, 0, 2460, 2461, 5, 45, 0, 0, 2461, 2462, 5, 112, 0, 0, 2462, 2463, 5, 97, 0, 0, 2463, 2464, 5, 116, 0, 0, 2464, 2465, 5, 104, 0, 0, 2465, 306, 1, 0, 0, 0, 2466, 2467, 5, 117, 0, 0, 2467, 2468, 5, 115, 0, 0, 2468, 2469, 5, 105, 0, 0, 2469, 2470, 5, 110, 0, 0, 2470, 2471, 5, 103, 0, 0, 2471, 2472, 5, 45, 0, 0, 2472, 2473, 5, 115, 0, 0, 2473, 2474, 5, 121, 0, 0, 2474, 2475, 5, 110, 0, 0, 2475, 2476, 5, 111, 0, 0, 2476, 2477, 5, 110, 0, 0, 2477, 2478, 5, 121, 0, 0, 2478, 2479, 5, 109, 0, 0, 2479, 2480, 5, 115, 0, 0, 2480, 308, 1, 0, 0, 0, 2481, 2482, 5, 117, 0, 0, 2482, 2483, 5, 115, 0, 0, 2483, 2484, 5, 105, 0, 0, 2484, 2485, 5, 110, 0, 0, 2485, 2486, 5, 103, 0, 0, 2486, 2487, 5, 45, 0, 0, 2487, 2488, 5, 108, 0, 0, 2488, 2489, 5, 97, 0, 0, 2489, 2490, 5, 98, 0, 0, 2490, 2491, 5, 101, 0, 0, 2491, 2492, 5, 108, 0, 0, 2492, 2493, 5, 108, 0, 0, 2493, 2494, 5, 101, 0, 0, 2494, 2495, 5, 100, 0, 0, 2495, 2496, 5, 45, 0, 0, 2496, 2497, 5, 99, 0, 0, 2497, 2498, 5, 108, 0, 0, 2498, 2499, 5, 97, 0, 0, 2499, 2500, 5, 115, 0, 0, 2500, 2501, 5, 115, 0, 0, 2501, 2502, 5, 105, 0, 0, 2502, 2503, 5, 102, 0, 0, 2503, 2504, 5, 105, 0, 0, 2504, 2505, 5, 101, 0, 0, 2505, 2506, 5, 114, 0, 0, 2506, 2507, 5, 45, 0, 0, 2507, 2508, 5, 108, 0, 0, 2508, 2509, 5, 97, 0, 0, 2509, 2510, 5, 98, 0, 0, 2510, 2511, 5, 101, 0, 0, 2511, 2512, 5, 108, 0, 0, 2512, 2513, 5, 115, 0, 0, 2513, 310, 1, 0, 0, 0, 2514, 2515, 5, 117, 0, 0, 2515, 2516, 5, 115, 0, 0, 2516, 2517, 5, 105, 0, 0, 2517, 2518, 5, 110, 0, 0, 2518, 2519, 5, 103, 0, 0, 2519, 2520, 5, 45, 0, 0, 2520, 2521, 5, 118, 0, 0, 2521, 2522, 5, 105, 0, 0, 2522, 2523, 5, 108, 0, 0, 2523, 2524, 5, 116, 0, 0, 2524, 2525, 5, 45, 0, 0, 2525, 2526, 5, 99, 0, 0, 2526, 2527, 5, 111, 0, 0, 2527, 2528, 5, 99, 0, 0, 2528, 2529, 5, 111, 0, 0, 2529, 2530, 5, 45, 0, 0, 2530, 2531, 5, 108, 0, 0, 2531, 2532, 5, 97, 0, 0, 2532, 2533, 5, 98, 0, 0, 2533, 2534, 5, 101, 0, 0, 2534, 2535, 5, 108, 0, 0, 2535, 2536, 5, 115, 0, 0, 2536, 312, 1, 0, 0, 0, 2537, 2538, 5, 97, 0, 0, 2538, 2539, 5, 100, 0, 0, 2539, 2540, 5, 100, 0, 0, 2540, 2541, 5, 45, 0, 0, 2541, 2542, 5, 118, 0, 0, 2542, 2543, 5, 105, 0, 0, 2543, 2544, 5, 108, 0, 0, 2544, 2545, 5, 116, 0, 0, 2545, 2546, 5, 45, 0, 0, 2546, 2547, 5, 113, 0, 0, 2547, 2548, 5, 117, 0, 0, 2548, 2549, 5, 101, 0, 0, 2549, 2550, 5, 115, 0, 0, 2550, 2551, 5, 116, 0, 0, 2551, 2552, 5, 105, 0, 0, 2552, 2553, 5, 111, 0, 0, 2553, 2554, 5, 110, 0, 0, 2554, 2555, 5, 45, 0, 0, 2555, 2556, 5, 99, 0, 0, 2556, 2557, 5, 111, 0, 0, 2557, 2558, 5, 110, 0, 0, 2558, 2559, 5, 102, 0, 0, 2559, 2560, 5, 105, 0, 0, 2560, 2561, 5, 103, 0, 0, 2561, 314, 1, 0, 0, 0, 2562, 2563, 5, 97, 0, 0, 2563, 2564, 5, 100, 0, 0, 2564, 2565, 5, 100, 0, 0, 2565, 2566, 5, 45, 0, 0, 2566, 2567, 5, 118, 0, 0, 2567, 2568, 5, 105, 0, 0, 2568, 2569, 5, 108, 0, 0, 2569, 2570, 5, 116, 0, 0, 2570, 2571, 5, 45, 0, 0, 2571, 2572, 5, 99, 0, 0, 2572, 2573, 5, 111, 0, 0, 2573, 2574, 5, 99, 0, 0, 2574, 2575, 5, 111, 0, 0, 2575, 2576, 5, 45, 0, 0, 2576, 2577, 5, 111, 0, 0, 2577, 2578, 5, 118, 0, 0, 2578, 2579, 5, 101, 0, 0, 2579, 2580, 5, 114, 0, 0, 2580, 2581, 5, 105, 0, 0, 2581, 2582, 5, 100, 0, 0, 2582, 2583, 5, 101, 0, 0, 2583, 2584, 5, 45, 0, 0, 2584, 2585, 5, 99, 0, 0, 2585, 2586, 5, 111, 0, 0, 2586, 2587, 5, 110, 0, 0, 2587, 2588, 5, 102, 0, 0, 2588, 2589, 5, 105, 0, 0, 2589, 2590, 5, 103, 0, 0, 2590, 316, 1, 0, 0, 0, 2591, 2592, 5, 97, 0, 0, 2592, 2593, 5, 100, 0, 0, 2593, 2594, 5, 100, 0, 0, 2594, 2595, 5, 45, 0, 0, 2595, 2596, 5, 118, 0, 0, 2596, 2597, 5, 105, 0, 0, 2597, 2598, 5, 108, 0, 0, 2598, 2599, 5, 116, 0, 0, 2599, 2600, 5, 45, 0, 0, 2600, 2601, 5, 99, 0, 0, 2601, 2602, 5, 111, 0, 0, 2602, 2603, 5, 99, 0, 0, 2603, 2604, 5, 111, 0, 0, 2604, 2605, 5, 45, 0, 0, 2605, 2606, 5, 116, 0, 0, 2606, 2607, 5, 104, 0, 0, 2607, 2608, 5, 114, 0, 0, 2608, 2609, 5, 101, 0, 0, 2609, 2610, 5, 115, 0, 0, 2610, 2611, 5, 104, 0, 0, 2611, 2612, 5, 111, 0, 0, 2612, 2613, 5, 108, 0, 0, 2613, 2614, 5, 100, 0, 0, 2614, 2615, 5, 45, 0, 0, 2615, 2616, 5, 99, 0, 0, 2616, 2617, 5, 111, 0, 0, 2617, 2618, 5, 110, 0, 0, 2618, 2619, 5, 102, 0, 0, 2619, 2620, 5, 105, 0, 0, 2620, 2621, 5, 103, 0, 0, 2621, 318, 1, 0, 0, 0, 2622, 2623, 5, 97, 0, 0, 2623, 2624, 5, 100, 0, 0, 2624, 2625, 5, 100, 0, 0, 2625, 2626, 5, 45, 0, 0, 2626, 2627, 5, 99, 0, 0, 2627, 2628, 5, 111, 0, 0, 2628, 2629, 5, 110, 0, 0, 2629, 2630, 5, 102, 0, 0, 2630, 2631, 5, 105, 0, 0, 2631, 2632, 5, 103, 0, 0, 2632, 2633, 5, 45, 0, 0, 2633, 2634, 5, 118, 0, 0, 2634, 2635, 5, 103, 0, 0, 2635, 2636, 5, 103, 0, 0, 2636, 2637, 5, 45, 0, 0, 2637, 2638, 5, 105, 0, 0, 2638, 2639, 5, 109, 0, 0, 2639, 2640, 5, 103, 0, 0, 2640, 2641, 5, 45, 0, 0, 2641, 2642, 5, 119, 0, 0, 2642, 2643, 5, 105, 0, 0, 2643, 2644, 5, 100, 0, 0, 2644, 2645, 5, 116, 0, 0, 2645, 2646, 5, 104, 0, 0, 2646, 320, 1, 0, 0, 0, 2647, 2648, 5, 97, 0, 0, 2648, 2649, 5, 100, 0, 0, 2649, 2650, 5, 100, 0, 0, 2650, 2651, 5, 45, 0, 0, 2651, 2652, 5, 99, 0, 0, 2652, 2653, 5, 111, 0, 0, 2653, 2654, 5, 110, 0, 0, 2654, 2655, 5, 102, 0, 0, 2655, 2656, 5, 105, 0, 0, 2656, 2657, 5, 103, 0, 0, 2657, 2658, 5, 45, 0, 0, 2658, 2659, 5, 118, 0, 0, 2659, 2660, 5, 103, 0, 0, 2660, 2661, 5, 103, 0, 0, 2661, 2662, 5, 45, 0, 0, 2662, 2663, 5, 105, 0, 0, 2663, 2664, 5, 109, 0, 0, 2664, 2665, 5, 103, 0, 0, 2665, 2666, 5, 45, 0, 0, 2666, 2667, 5, 104, 0, 0, 2667, 2668, 5, 101, 0, 0, 2668, 2669, 5, 105, 0, 0, 2669, 2670, 5, 103, 0, 0, 2670, 2671, 5, 104, 0, 0, 2671, 2672, 5, 116, 0, 0, 2672, 322, 1, 0, 0, 0, 2673, 2674, 5, 115, 0, 0, 2674, 2675, 5, 97, 0, 0, 2675, 2676, 5, 118, 0, 0, 2676, 2677, 5, 101, 0, 0, 2677, 2678, 5, 45, 0, 0, 2678, 2679, 5, 114, 0, 0, 2679, 2680, 5, 101, 0, 0, 2680, 2681, 5, 115, 0, 0, 2681, 2682, 5, 112, 0, 0, 2682, 2683, 5, 111, 0, 0, 2683, 2684, 5, 110, 0, 0, 2684, 2685, 5, 115, 0, 0, 2685, 2686, 5, 101, 0, 0, 2686, 2687, 5, 45, 0, 0, 2687, 2688, 5, 97, 0, 0, 2688, 2689, 5, 115, 0, 0, 2689, 324, 1, 0, 0, 0, 2690, 2691, 5, 100, 0, 0, 2691, 2692, 5, 111, 0, 0, 2692, 2693, 5, 99, 0, 0, 2693, 2694, 5, 110, 0, 0, 2694, 2695, 5, 101, 0, 0, 2695, 2696, 5, 116, 0, 0, 2696, 2697, 5, 65, 0, 0, 2697, 2698, 5, 116, 0, 0, 2698, 2699, 5, 116, 0, 0, 2699, 2700, 5, 114, 0, 0, 2700, 2701, 5, 105, 0, 0, 2701, 2702, 5, 98, 0, 0, 2702, 2703, 5, 117, 0, 0, 2703, 2704, 5, 116, 0, 0, 2704, 2705, 5, 105, 0, 0, 2705, 2706, 5, 111, 0, 0, 2706, 2707, 5, 110, 0, 0, 2707, 326, 1, 0, 0, 0, 2708, 2709, 5, 102, 0, 0, 2709, 2710, 5, 111, 0, 0, 2710, 2711, 5, 114, 0, 0, 2711, 2712, 5, 45, 0, 0, 2712, 2713, 5, 105, 0, 0, 2713, 2714, 5, 110, 0, 0, 2714, 2715, 5, 112, 0, 0, 2715, 2716, 5, 117, 0, 0, 2716, 2717, 5, 116, 0, 0, 2717, 2718, 5, 45, 0, 0, 2718, 2719, 5, 102, 0, 0, 2719, 2720, 5, 105, 0, 0, 2720, 2721, 5, 108, 0, 0, 2721, 2722, 5, 101, 0, 0, 2722, 328, 1, 0, 0, 0, 2723, 2724, 5, 111, 0, 0, 2724, 2725, 5, 110, 0, 0, 2725, 2726, 5, 45, 0, 0, 2726, 2727, 5, 114, 0, 0, 2727, 2728, 5, 101, 0, 0, 2728, 2729, 5, 115, 0, 0, 2729, 2730, 5, 111, 0, 0, 2730, 2731, 5, 117, 0, 0, 2731, 2732, 5, 114, 0, 0, 2732, 2733, 5, 99, 0, 0, 2733, 2734, 5, 101, 0, 0, 2734, 2735, 5, 45, 0, 0, 2735, 2736, 5, 99, 0, 0, 2736, 2737, 5, 111, 0, 0, 2737, 2738, 5, 110, 0, 0, 2738, 2739, 5, 110, 0, 0, 2739, 330, 1, 0, 0, 0, 2740, 2741, 5, 117, 0, 0, 2741, 2742, 5, 115, 0, 0, 2742, 2743, 5, 105, 0, 0, 2743, 2744, 5, 110, 0, 0, 2744, 2745, 5, 103, 0, 0, 2745, 2746, 5, 45, 0, 0, 2746, 2747, 5, 97, 0, 0, 2747, 2748, 5, 116, 0, 0, 2748, 2749, 5, 116, 0, 0, 2749, 2750, 5, 114, 0, 0, 2750, 2751, 5, 105, 0, 0, 2751, 2752, 5, 98, 0, 0, 2752, 2753, 5, 117, 0, 0, 2753, 2754, 5, 116, 0, 0, 2754, 2755, 5, 101, 0, 0, 2755, 2756, 5, 45, 0, 0, 2756, 2757, 5, 113, 0, 0, 2757, 2758, 5, 117, 0, 0, 2758, 2759, 5, 101, 0, 0, 2759, 2760, 5, 115, 0, 0, 2760, 2761, 5, 116, 0, 0, 2761, 2762, 5, 105, 0, 0, 2762, 2763, 5, 111, 0, 0, 2763, 2764, 5, 110, 0, 0, 2764, 2765, 5, 115, 0, 0, 2765, 332, 1, 0, 0, 0, 2766, 2767, 5, 116, 0, 0, 2767, 2768, 5, 113, 0, 0, 2768, 2769, 5, 97, 0, 0, 2769, 2770, 5, 45, 0, 0, 2770, 2771, 5, 102, 0, 0, 2771, 2772, 5, 105, 0, 0, 2772, 2773, 5, 108, 0, 0, 2773, 2774, 5, 116, 0, 0, 2774, 2775, 5, 101, 0, 0, 2775, 2776, 5, 114, 0, 0, 2776, 334, 1, 0, 0, 0, 2777, 2778, 5, 117, 0, 0, 2778, 2779, 5, 115, 0, 0, 2779, 2780, 5, 105, 0, 0, 2780, 2781, 5, 110, 0, 0, 2781, 2782, 5, 103, 0, 0, 2782, 2783, 5, 45, 0, 0, 2783, 2784, 5, 116, 0, 0, 2784, 2785, 5, 114, 0, 0, 2785, 2786, 5, 117, 0, 0, 2786, 2787, 5, 116, 0, 0, 2787, 2788, 5, 104, 0, 0, 2788, 2789, 5, 45, 0, 0, 2789, 2790, 5, 101, 0, 0, 2790, 2791, 5, 120, 0, 0, 2791, 2792, 5, 116, 0, 0, 2792, 2793, 5, 114, 0, 0, 2793, 2794, 5, 97, 0, 0, 2794, 2795, 5, 99, 0, 0, 2795, 2796, 5, 116, 0, 0, 2796, 2797, 5, 111, 0, 0, 2797, 2798, 5, 114, 0, 0, 2798, 2799, 5, 45, 0, 0, 2799, 2800, 5, 117, 0, 0, 2800, 2801, 5, 114, 0, 0, 2801, 2802, 5, 108, 0, 0, 2802, 336, 1, 0, 0, 0, 2803, 2804, 5, 97, 0, 0, 2804, 2805, 5, 100, 0, 0, 2805, 2806, 5, 100, 0, 0, 2806, 2807, 5, 45, 0, 0, 2807, 2808, 5, 99, 0, 0, 2808, 2809, 5, 111, 0, 0, 2809, 2810, 5, 110, 0, 0, 2810, 2811, 5, 102, 0, 0, 2811, 2812, 5, 105, 0, 0, 2812, 2813, 5, 103, 0, 0, 2813, 2814, 5, 45, 0, 0, 2814, 2815, 5, 109, 0, 0, 2815, 2816, 5, 97, 0, 0, 2816, 2817, 5, 120, 0, 0, 2817, 2818, 5, 45, 0, 0, 2818, 2819, 5, 100, 0, 0, 2819, 2820, 5, 111, 0, 0, 2820, 2821, 5, 99, 0, 0, 2821, 2822, 5, 116, 0, 0, 2822, 2823, 5, 114, 0, 0, 2823, 2824, 5, 45, 0, 0, 2824, 2825, 5, 105, 0, 0, 2825, 2826, 5, 110, 0, 0, 2826, 2827, 5, 110, 0, 0, 2827, 2828, 5, 101, 0, 0, 2828, 2829, 5, 114, 0, 0, 2829, 2830, 5, 45, 0, 0, 2830, 2831, 5, 106, 0, 0, 2831, 2832, 5, 111, 0, 0, 2832, 2833, 5, 105, 0, 0, 2833, 2834, 5, 110, 0, 0, 2834, 2835, 5, 45, 0, 0, 2835, 2836, 5, 100, 0, 0, 2836, 2837, 5, 105, 0, 0, 2837, 2838, 5, 102, 0, 0, 2838, 2839, 5, 102, 0, 0, 2839, 338, 1, 0, 0, 0, 2840, 2841, 5, 97, 0, 0, 2841, 2842, 5, 100, 0, 0, 2842, 2843, 5, 100, 0, 0, 2843, 2844, 5, 45, 0, 0, 2844, 2845, 5, 99, 0, 0, 2845, 2846, 5, 111, 0, 0, 2846, 2847, 5, 110, 0, 0, 2847, 2848, 5, 102, 0, 0, 2848, 2849, 5, 105, 0, 0, 2849, 2850, 5, 103, 0, 0, 2850, 2851, 5, 45, 0, 0, 2851, 2852, 5, 109, 0, 0, 2852, 2853, 5, 97, 0, 0, 2853, 2854, 5, 120, 0, 0, 2854, 2855, 5, 45, 0, 0, 2855, 2856, 5, 113, 0, 0, 2856, 2857, 5, 117, 0, 0, 2857, 2858, 5, 101, 0, 0, 2858, 2859, 5, 115, 0, 0, 2859, 2860, 5, 116, 0, 0, 2860, 2861, 5, 105, 0, 0, 2861, 2862, 5, 111, 0, 0, 2862, 2863, 5, 110, 0, 0, 2863, 2864, 5, 45, 0, 0, 2864, 2865, 5, 115, 0, 0, 2865, 2866, 5, 112, 0, 0, 2866, 2867, 5, 97, 0, 0, 2867, 2868, 5, 99, 0, 0, 2868, 2869, 5, 105, 0, 0, 2869, 2870, 5, 110, 0, 0, 2870, 2871, 5, 103, 0, 0, 2871, 2872, 5, 45, 0, 0, 2872, 2873, 5, 100, 0, 0, 2873, 2874, 5, 105, 0, 0, 2874, 2875, 5, 102, 0, 0, 2875, 2876, 5, 102, 0, 0, 2876, 340, 1, 0, 0, 0, 2877, 2878, 5, 117, 0, 0, 2878, 2879, 5, 115, 0, 0, 2879, 2880, 5, 105, 0, 0, 2880, 2881, 5, 110, 0, 0, 2881, 2882, 5, 103, 0, 0, 2882, 2883, 5, 45, 0, 0, 2883, 2884, 5, 115, 0, 0, 2884, 2885, 5, 121, 0, 0, 2885, 2886, 5, 110, 0, 0, 2886, 2887, 5, 111, 0, 0, 2887, 2888, 5, 110, 0, 0, 2888, 2889, 5, 109, 0, 0, 2889, 2890, 5, 121, 0, 0, 2890, 2891, 5, 115, 0, 0, 2891, 342, 1, 0, 0, 0, 2892, 2893, 5, 117, 0, 0, 2893, 2894, 5, 115, 0, 0, 2894, 2895, 5, 105, 0, 0, 2895, 2896, 5, 110, 0, 0, 2896, 2897, 5, 103, 0, 0, 2897, 2898, 5, 45, 0, 0, 2898, 2899, 5, 105, 0, 0, 2899, 2900, 5, 110, 0, 0, 2900, 2901, 5, 112, 0, 0, 2901, 2902, 5, 117, 0, 0, 2902, 2903, 5, 116, 0, 0, 2903, 2904, 5, 45, 0, 0, 2904, 2905, 5, 102, 0, 0, 2905, 2906, 5, 105, 0, 0, 2906, 2907, 5, 108, 0, 0, 2907, 2908, 5, 101, 0, 0, 2908, 2909, 5, 115, 0, 0, 2909, 344, 1, 0, 0, 0, 2910, 2911, 5, 116, 0, 0, 2911, 2912, 5, 101, 0, 0, 2912, 2913, 5, 120, 0, 0, 2913, 2914, 5, 116, 0, 0, 2914, 2915, 5, 45, 0, 0, 2915, 2916, 5, 102, 0, 0, 2916, 2917, 5, 105, 0, 0, 2917, 2918, 5, 108, 0, 0, 2918, 2919, 5, 116, 0, 0, 2919, 2920, 5, 101, 0, 0, 2920, 2921, 5, 114, 0, 0, 2921, 2922, 5, 105, 0, 0, 2922, 2923, 5, 110, 0, 0, 2923, 2924, 5, 103, 0, 0, 2924, 346, 1, 0, 0, 0, 2925, 2926, 5, 107, 0, 0, 2926, 2927, 5, 101, 0, 0, 2927, 2928, 5, 121, 0, 0, 2928, 2929, 5, 45, 0, 0, 2929, 2930, 5, 102, 0, 0, 2930, 2931, 5, 105, 0, 0, 2931, 2932, 5, 108, 0, 0, 2932, 2933, 5, 116, 0, 0, 2933, 2934, 5, 101, 0, 0, 2934, 2935, 5, 114, 0, 0, 2935, 2936, 5, 105, 0, 0, 2936, 2937, 5, 110, 0, 0, 2937, 2938, 5, 103, 0, 0, 2938, 348, 1, 0, 0, 0, 2939, 2940, 5, 119, 0, 0, 2940, 2941, 5, 105, 0, 0, 2941, 2942, 5, 116, 0, 0, 2942, 2943, 5, 104, 0, 0, 2943, 2944, 5, 45, 0, 0, 2944, 2945, 5, 100, 0, 0, 2945, 2946, 5, 111, 0, 0, 2946, 2947, 5, 99, 0, 0, 2947, 2948, 5, 45, 0, 0, 2948, 2949, 5, 105, 0, 0, 2949, 2950, 5, 100, 0, 0, 2950, 350, 1, 0, 0, 0, 2951, 2952, 5, 102, 0, 0, 2952, 2953, 5, 111, 0, 0, 2953, 2954, 5, 114, 0, 0, 2954, 2955, 5, 45, 0, 0, 2955, 2956, 5, 112, 0, 0, 2956, 2957, 5, 97, 0, 0, 2957, 2958, 5, 112, 0, 0, 2958, 2959, 5, 101, 0, 0, 2959, 2960, 5, 114, 0, 0, 2960, 352, 1, 0, 0, 0, 2961, 2962, 5, 103, 0, 0, 2962, 2963, 5, 114, 0, 0, 2963, 2964, 5, 111, 0, 0, 2964, 2965, 5, 117, 0, 0, 2965, 2966, 5, 112, 0, 0, 2966, 2967, 5, 45, 0, 0, 2967, 2968, 5, 105, 0, 0, 2968, 2969, 5, 100, 0, 0, 2969, 354, 1, 0, 0, 0, 2970, 2971, 5, 101, 0, 0, 2971, 2972, 5, 110, 0, 0, 2972, 2973, 5, 116, 0, 0, 2973, 2974, 5, 105, 0, 0, 2974, 2975, 5, 116, 0, 0, 2975, 2976, 5, 121, 0, 0, 2976, 2977, 5, 45, 0, 0, 2977, 2978, 5, 107, 0, 0, 2978, 2979, 5, 101, 0, 0, 2979, 2980, 5, 121, 0, 0, 2980, 2981, 5, 45, 0, 0, 2981, 2982, 5, 102, 0, 0, 2982, 2983, 5, 105, 0, 0, 2983, 2984, 5, 108, 0, 0, 2984, 2985, 5, 116, 0, 0, 2985, 2986, 5, 101, 0, 0, 2986, 2987, 5, 114, 0, 0, 2987, 2988, 5, 105, 0, 0, 2988, 2989, 5, 110, 0, 0, 2989, 2990, 5, 103, 0, 0, 2990, 356, 1, 0, 0, 0, 2991, 2992, 5, 119, 0, 0, 2992, 2993, 5, 105, 0, 0, 2993, 2994, 5, 116, 0, 0, 2994, 2995, 5, 104, 0, 0, 2995, 2996, 5, 45, 0, 0, 2996, 2997, 5, 109, 0, 0, 2997, 2998, 5, 97, 0, 0, 2998, 2999, 5, 110, 0, 0, 2999, 3000, 5, 100, 0, 0, 3000, 3001, 5, 97, 0, 0, 3001, 3002, 5, 116, 0, 0, 3002, 3003, 5, 111, 0, 0, 3003, 3004, 5, 114, 0, 0, 3004, 3005, 5, 121, 0, 0, 3005, 3006, 5, 45, 0, 0, 3006, 3007, 5, 107, 0, 0, 3007, 3008, 5, 101, 0, 0, 3008, 3009, 5, 121, 0, 0, 3009, 3010, 5, 45, 0, 0, 3010, 3011, 5, 102, 0, 0, 3011, 3012, 5, 105, 0, 0, 3012, 3013, 5, 108, 0, 0, 3013, 3014, 5, 116, 0, 0, 3014, 3015, 5, 101, 0, 0, 3015, 3016, 5, 114, 0, 0, 3016, 3017, 5, 105, 0, 0, 3017, 3018, 5, 110, 0, 0, 3018, 3019, 5, 103, 0, 0, 3019, 358, 1, 0, 0, 0, 3020, 3021, 5, 99, 0, 0, 3021, 3022, 5, 104, 0, 0, 3022, 3023, 5, 101, 0, 0, 3023, 3024, 5, 99, 0, 0, 3024, 3025, 5, 107, 0, 0, 3025, 3026, 5, 45, 0, 0, 3026, 3027, 5, 116, 0, 0, 3027, 3028, 5, 104, 0, 0, 3028, 3029, 5, 114, 0, 0, 3029, 3030, 5, 101, 0, 0, 3030, 3031, 5, 115, 0, 0, 3031, 3032, 5, 104, 0, 0, 3032, 3033, 5, 111, 0, 0, 3033, 3034, 5, 108, 0, 0, 3034, 3035, 5, 100, 0, 0, 3035, 360, 1, 0, 0, 0, 3036, 3037, 5, 116, 0, 0, 3037, 3038, 5, 104, 0, 0, 3038, 3039, 5, 114, 0, 0, 3039, 3040, 5, 101, 0, 0, 3040, 3041, 5, 115, 0, 0, 3041, 3042, 5, 104, 0, 0, 3042, 3043, 5, 111, 0, 0, 3043, 3044, 5, 108, 0, 0, 3044, 3045, 5, 100, 0, 0, 3045, 3046, 5, 45, 0, 0, 3046, 3047, 5, 118, 0, 0, 3047, 3048, 5, 97, 0, 0, 3048, 3049, 5, 108, 0, 0, 3049, 3050, 5, 117, 0, 0, 3050, 3051, 5, 101, 0, 0, 3051, 362, 1, 0, 0, 0, 3052, 3053, 5, 106, 0, 0, 3053, 3054, 5, 115, 0, 0, 3054, 3055, 5, 111, 0, 0, 3055, 3056, 5, 110, 0, 0, 3056, 3057, 5, 84, 0, 0, 3057, 3058, 5, 111, 0, 0, 3058, 3059, 5, 70, 0, 0, 3059, 3060, 5, 105, 0, 0, 3060, 3061, 5, 108, 0, 0, 3061, 3062, 5, 101, 0, 0, 3062, 364, 1, 0, 0, 0, 3063, 3064, 5, 101, 0, 0, 3064, 3065, 5, 120, 0, 0, 3065, 3066, 5, 112, 0, 0, 3066, 3067, 5, 111, 0, 0, 3067, 3068, 5, 114, 0, 0, 3068, 3069, 5, 116, 0, 0, 3069, 3070, 5, 45, 0, 0, 3070, 3071, 5, 105, 0, 0, 3071, 3072, 5, 110, 0, 0, 3072, 3073, 5, 116, 0, 0, 3073, 3074, 5, 111, 0, 0, 3074, 366, 1, 0, 0, 0, 3075, 3076, 5, 100, 0, 0, 3076, 3077, 5, 111, 0, 0, 3077, 3078, 5, 99, 0, 0, 3078, 3079, 5, 110, 0, 0, 3079, 3080, 5, 101, 0, 0, 3080, 3081, 5, 116, 0, 0, 3081, 3082, 5, 82, 0, 0, 3082, 3083, 5, 101, 0, 0, 3083, 3084, 5, 115, 0, 0, 3084, 3085, 5, 117, 0, 0, 3085, 3086, 5, 108, 0, 0, 3086, 3087, 5, 116, 0, 0, 3087, 368, 1, 0, 0, 0, 3088, 3089, 5, 117, 0, 0, 3089, 3090, 5, 115, 0, 0, 3090, 3091, 5, 105, 0, 0, 3091, 3092, 5, 110, 0, 0, 3092, 3093, 5, 103, 0, 0, 3093, 3094, 5, 45, 0, 0, 3094, 3095, 5, 99, 0, 0, 3095, 3096, 5, 111, 0, 0, 3096, 3097, 5, 112, 0, 0, 3097, 3098, 5, 114, 0, 0, 3098, 3099, 5, 111, 0, 0, 3099, 370, 1, 0, 0, 0, 3100, 3101, 5, 117, 0, 0, 3101, 3102, 5, 115, 0, 0, 3102, 3103, 5, 105, 0, 0, 3103, 3104, 5, 110, 0, 0, 3104, 3105, 5, 103, 0, 0, 3105, 3106, 5, 45, 0, 0, 3106, 3107, 5, 119, 0, 0, 3107, 3108, 5, 101, 0, 0, 3108, 3109, 5, 105, 0, 0, 3109, 3110, 5, 103, 0, 0, 3110, 3111, 5, 104, 0, 0, 3111, 3112, 5, 116, 0, 0, 3112, 3113, 5, 97, 0, 0, 3113, 3114, 5, 103, 0, 0, 3114, 3115, 5, 101, 0, 0, 3115, 372, 1, 0, 0, 0, 3116, 3117, 5, 115, 0, 0, 3117, 3118, 5, 101, 0, 0, 3118, 3119, 5, 116, 0, 0, 3119, 3120, 5, 67, 0, 0, 3120, 3121, 5, 111, 0, 0, 3121, 3122, 5, 110, 0, 0, 3122, 3123, 5, 116, 0, 0, 3123, 3124, 5, 101, 0, 0, 3124, 3125, 5, 120, 0, 0, 3125, 3126, 5, 116, 0, 0, 3126, 3127, 5, 86, 0, 0, 3127, 3128, 5, 97, 0, 0, 3128, 3129, 5, 108, 0, 0, 3129, 3130, 5, 117, 0, 0, 3130, 3131, 5, 101, 0, 0, 3131, 374, 1, 0, 0, 0, 3132, 3133, 5, 99, 0, 0, 3133, 3134, 5, 111, 0, 0, 3134, 3135, 5, 110, 0, 0, 3135, 3136, 5, 116, 0, 0, 3136, 3137, 5, 101, 0, 0, 3137, 3138, 5, 120, 0, 0, 3138, 3139, 5, 116, 0, 0, 3139, 3140, 5, 45, 0, 0, 3140, 3141, 5, 107, 0, 0, 3141, 3142, 5, 101, 0, 0, 3142, 3143, 5, 121, 0, 0, 3143, 376, 1, 0, 0, 0, 3144, 3145, 5, 99, 0, 0, 3145, 3146, 5, 111, 0, 0, 3146, 3147, 5, 110, 0, 0, 3147, 3148, 5, 116, 0, 0, 3148, 3149, 5, 101, 0, 0, 3149, 3150, 5, 120, 0, 0, 3150, 3151, 5, 116, 0, 0, 3151, 3152, 5, 45, 0, 0, 3152, 3153, 5, 118, 0, 0, 3153, 3154, 5, 97, 0, 0, 3154, 3155, 5, 108, 0, 0, 3155, 3156, 5, 117, 0, 0, 3156, 3157, 5, 101, 0, 0, 3157, 378, 1, 0, 0, 0, 3158, 3159, 5, 101, 0, 0, 3159, 3160, 5, 118, 0, 0, 3160, 3161, 5, 97, 0, 0, 3161, 3162, 5, 108, 0, 0, 3162, 3163, 5, 80, 0, 0, 3163, 3164, 5, 97, 0, 0, 3164, 3165, 5, 116, 0, 0, 3165, 3166, 5, 105, 0, 0, 3166, 3167, 5, 101, 0, 0, 3167, 3168, 5, 110, 0, 0, 3168, 3169, 5, 116, 0, 0, 3169, 3170, 5, 78, 0, 0, 3170, 3171, 5, 97, 0, 0, 3171, 3172, 5, 109, 0, 0, 3172, 3173, 5, 101, 0, 0, 3173, 380, 1, 0, 0, 0, 3174, 3175, 5, 112, 0, 0, 3175, 3176, 5, 97, 0, 0, 3176, 3177, 5, 116, 0, 0, 3177, 3178, 5, 105, 0, 0, 3178, 3179, 5, 101, 0, 0, 3179, 3180, 5, 110, 0, 0, 3180, 3181, 5, 116, 0, 0, 3181, 3182, 5, 45, 0, 0, 3182, 3183, 5, 110, 0, 0, 3183, 3184, 5, 97, 0, 0, 3184, 3185, 5, 109, 0, 0, 3185, 3186, 5, 101, 0, 0, 3186, 382, 1, 0, 0, 0, 3187, 3188, 5, 119, 0, 0, 3188, 3189, 5, 111, 0, 0, 3189, 3190, 5, 114, 0, 0, 3190, 3191, 5, 100, 0, 0, 3191, 3192, 5, 45, 0, 0, 3192, 3193, 5, 99, 0, 0, 3193, 3194, 5, 111, 0, 0, 3194, 3195, 5, 117, 0, 0, 3195, 3196, 5, 110, 0, 0, 3196, 3197, 5, 116, 0, 0, 3197, 3198, 5, 45, 0, 0, 3198, 3199, 5, 108, 0, 0, 3199, 3200, 5, 105, 0, 0, 3200, 3201, 5, 109, 0, 0, 3201, 3202, 5, 105, 0, 0, 3202, 3203, 5, 116, 0, 0, 3203, 384, 1, 0, 0, 0, 3204, 3205, 5, 99, 0, 0, 3205, 3206, 5, 104, 0, 0, 3206, 3207, 5, 97, 0, 0, 3207, 3208, 5, 114, 0, 0, 3208, 3209, 5, 45, 0, 0, 3209, 3210, 5, 99, 0, 0, 3210, 3211, 5, 111, 0, 0, 3211, 3212, 5, 117, 0, 0, 3212, 3213, 5, 110, 0, 0, 3213, 3214, 5, 116, 0, 0, 3214, 3215, 5, 45, 0, 0, 3215, 3216, 5, 108, 0, 0, 3216, 3217, 5, 105, 0, 0, 3217, 3218, 5, 109, 0, 0, 3218, 3219, 5, 105, 0, 0, 3219, 3220, 5, 116, 0, 0, 3220, 386, 1, 0, 0, 0, 3221, 3222, 5, 110, 0, 0, 3222, 3223, 5, 101, 0, 0, 3223, 3224, 5, 114, 0, 0, 3224, 3225, 5, 45, 0, 0, 3225, 3226, 5, 97, 0, 0, 3226, 3227, 5, 112, 0, 0, 3227, 3228, 5, 105, 0, 0, 3228, 388, 1, 0, 0, 0, 3229, 3230, 5, 119, 0, 0, 3230, 3231, 5, 111, 0, 0, 3231, 3232, 5, 114, 0, 0, 3232, 3233, 5, 100, 0, 0, 3233, 3234, 5, 45, 0, 0, 3234, 3235, 5, 99, 0, 0, 3235, 3236, 5, 111, 0, 0, 3236, 3237, 5, 117, 0, 0, 3237, 3238, 5, 110, 0, 0, 3238, 3239, 5, 116, 0, 0, 3239, 3240, 5, 45, 0, 0, 3240, 3241, 5, 116, 0, 0, 3241, 3242, 5, 104, 0, 0, 3242, 3243, 5, 114, 0, 0, 3243, 3244, 5, 101, 0, 0, 3244, 3245, 5, 115, 0, 0, 3245, 3246, 5, 104, 0, 0, 3246, 3247, 5, 111, 0, 0, 3247, 3248, 5, 108, 0, 0, 3248, 3249, 5, 100, 0, 0, 3249, 390, 1, 0, 0, 0, 3250, 3251, 5, 99, 0, 0, 3251, 3252, 5, 104, 0, 0, 3252, 3253, 5, 97, 0, 0, 3253, 3254, 5, 114, 0, 0, 3254, 3255, 5, 45, 0, 0, 3255, 3256, 5, 99, 0, 0, 3256, 3257, 5, 111, 0, 0, 3257, 3258, 5, 117, 0, 0, 3258, 3259, 5, 110, 0, 0, 3259, 3260, 5, 116, 0, 0, 3260, 3261, 5, 45, 0, 0, 3261, 3262, 5, 116, 0, 0, 3262, 3263, 5, 104, 0, 0, 3263, 3264, 5, 114, 0, 0, 3264, 3265, 5, 101, 0, 0, 3265, 3266, 5, 115, 0, 0, 3266, 3267, 5, 104, 0, 0, 3267, 3268, 5, 111, 0, 0, 3268, 3269, 5, 108, 0, 0, 3269, 3270, 5, 100, 0, 0, 3270, 392, 1, 0, 0, 0, 3271, 3272, 5, 110, 0, 0, 3272, 3273, 5, 101, 0, 0, 3273, 3274, 5, 114, 0, 0, 3274, 3275, 5, 45, 0, 0, 3275, 3276, 5, 97, 0, 0, 3276, 3277, 5, 112, 0, 0, 3277, 3278, 5, 105, 0, 0, 3278, 3279, 5, 45, 0, 0, 3279, 3280, 5, 116, 0, 0, 3280, 3281, 5, 104, 0, 0, 3281, 3282, 5, 114, 0, 0, 3282, 3283, 5, 101, 0, 0, 3283, 3284, 5, 115, 0, 0, 3284, 3285, 5, 104, 0, 0, 3285, 3286, 5, 111, 0, 0, 3286, 3287, 5, 108, 0, 0, 3287, 3288, 5, 100, 0, 0, 3288, 394, 1, 0, 0, 0, 3289, 3290, 5, 101, 0, 0, 3290, 3291, 5, 118, 0, 0, 3291, 3292, 5, 97, 0, 0, 3292, 3293, 5, 108, 0, 0, 3293, 3294, 5, 77, 0, 0, 3294, 3295, 5, 101, 0, 0, 3295, 3296, 5, 109, 0, 0, 3296, 3297, 5, 98, 0, 0, 3297, 3298, 5, 101, 0, 0, 3298, 3299, 5, 114, 0, 0, 3299, 3300, 5, 73, 0, 0, 3300, 3301, 5, 100, 0, 0, 3301, 396, 1, 0, 0, 0, 3302, 3303, 5, 109, 0, 0, 3303, 3304, 5, 101, 0, 0, 3304, 3305, 5, 109, 0, 0, 3305, 3306, 5, 98, 0, 0, 3306, 3307, 5, 101, 0, 0, 3307, 3308, 5, 114, 0, 0, 3308, 3309, 5, 45, 0, 0, 3309, 3310, 5, 105, 0, 0, 3310, 3311, 5, 100, 0, 0, 3311, 398, 1, 0, 0, 0, 3312, 3313, 5, 115, 0, 0, 3313, 3314, 5, 112, 0, 0, 3314, 3315, 5, 101, 0, 0, 3315, 3316, 5, 99, 0, 0, 3316, 3317, 5, 105, 0, 0, 3317, 3318, 5, 97, 0, 0, 3318, 3319, 5, 108, 0, 0, 3319, 3320, 5, 45, 0, 0, 3320, 3321, 5, 99, 0, 0, 3321, 3322, 5, 104, 0, 0, 3322, 3323, 5, 97, 0, 0, 3323, 3324, 5, 114, 0, 0, 3324, 3325, 5, 97, 0, 0, 3325, 3326, 5, 99, 0, 0, 3326, 3327, 5, 116, 0, 0, 3327, 3328, 5, 101, 0, 0, 3328, 3329, 5, 114, 0, 0, 3329, 400, 1, 0, 0, 0, 3330, 3331, 5, 118, 0, 0, 3331, 3332, 5, 97, 0, 0, 3332, 3333, 5, 108, 0, 0, 3333, 3334, 5, 105, 0, 0, 3334, 3335, 5, 100, 0, 0, 3335, 3336, 5, 97, 0, 0, 3336, 3337, 5, 116, 0, 0, 3337, 3338, 5, 111, 0, 0, 3338, 3339, 5, 114, 0, 0, 3339, 3340, 5, 45, 0, 0, 3340, 3341, 5, 116, 0, 0, 3341, 3342, 5, 104, 0, 0, 3342, 3343, 5, 114, 0, 0, 3343, 3344, 5, 101, 0, 0, 3344, 3345, 5, 115, 0, 0, 3345, 3346, 5, 104, 0, 0, 3346, 3347, 5, 111, 0, 0, 3347, 3348, 5, 108, 0, 0, 3348, 3349, 5, 100, 0, 0, 3349, 402, 1, 0, 0, 0, 3350, 3351, 5, 101, 0, 0, 3351, 3352, 5, 118, 0, 0, 3352, 3353, 5, 97, 0, 0, 3353, 3354, 5, 108, 0, 0, 3354, 3355, 5, 68, 0, 0, 3355, 3356, 5, 97, 0, 0, 3356, 3357, 5, 116, 0, 0, 3357, 3358, 5, 101, 0, 0, 3358, 3359, 5, 79, 0, 0, 3359, 3360, 5, 102, 0, 0, 3360, 3361, 5, 66, 0, 0, 3361, 3362, 5, 105, 0, 0, 3362, 3363, 5, 114, 0, 0, 3363, 3364, 5, 116, 0, 0, 3364, 3365, 5, 104, 0, 0, 3365, 404, 1, 0, 0, 0, 3366, 3367, 5, 100, 0, 0, 3367, 3368, 5, 97, 0, 0, 3368, 3369, 5, 116, 0, 0, 3369, 3370, 5, 101, 0, 0, 3370, 3371, 5, 45, 0, 0, 3371, 3372, 5, 111, 0, 0, 3372, 3373, 5, 102, 0, 0, 3373, 3374, 5, 45, 0, 0, 3374, 3375, 5, 98, 0, 0, 3375, 3376, 5, 105, 0, 0, 3376, 3377, 5, 114, 0, 0, 3377, 3378, 5, 116, 0, 0, 3378, 3379, 5, 104, 0, 0, 3379, 406, 1, 0, 0, 0, 3380, 3381, 5, 99, 0, 0, 3381, 3382, 5, 111, 0, 0, 3382, 3383, 5, 109, 0, 0, 3383, 3384, 5, 112, 0, 0, 3384, 3385, 5, 97, 0, 0, 3385, 3386, 5, 114, 0, 0, 3386, 3387, 5, 97, 0, 0, 3387, 3388, 5, 98, 0, 0, 3388, 3389, 5, 108, 0, 0, 3389, 3390, 5, 101, 0, 0, 3390, 3391, 5, 45, 0, 0, 3391, 3392, 5, 121, 0, 0, 3392, 3393, 5, 101, 0, 0, 3393, 3394, 5, 97, 0, 0, 3394, 3395, 5, 114, 0, 0, 3395, 408, 1, 0, 0, 0, 3396, 3397, 5, 100, 0, 0, 3397, 3398, 5, 97, 0, 0, 3398, 3399, 5, 116, 0, 0, 3399, 3400, 5, 101, 0, 0, 3400, 3401, 5, 45, 0, 0, 3401, 3402, 5, 102, 0, 0, 3402, 3403, 5, 111, 0, 0, 3403, 3404, 5, 114, 0, 0, 3404, 3405, 5, 109, 0, 0, 3405, 3406, 5, 97, 0, 0, 3406, 3407, 5, 116, 0, 0, 3407, 3408, 5, 115, 0, 0, 3408, 410, 1, 0, 0, 0, 3409, 3410, 5, 100, 0, 0, 3410, 3411, 5, 105, 0, 0, 3411, 3412, 5, 114, 0, 0, 3412, 3413, 5, 80, 0, 0, 3413, 3414, 5, 97, 0, 0, 3414, 3415, 5, 116, 0, 0, 3415, 3416, 5, 104, 0, 0, 3416, 412, 1, 0, 0, 0, 3417, 3418, 5, 102, 0, 0, 3418, 3419, 5, 105, 0, 0, 3419, 3420, 5, 108, 0, 0, 3420, 3421, 5, 101, 0, 0, 3421, 3422, 5, 68, 0, 0, 3422, 3423, 5, 101, 0, 0, 3423, 3424, 5, 116, 0, 0, 3424, 3425, 5, 97, 0, 0, 3425, 3426, 5, 105, 0, 0, 3426, 3427, 5, 108, 0, 0, 3427, 3428, 5, 115, 0, 0, 3428, 414, 1, 0, 0, 0, 3429, 3430, 5, 100, 0, 0, 3430, 3431, 5, 105, 0, 0, 3431, 3432, 5, 114, 0, 0, 3432, 3433, 5, 112, 0, 0, 3433, 3434, 5, 97, 0, 0, 3434, 3435, 5, 116, 0, 0, 3435, 3436, 5, 104, 0, 0, 3436, 416, 1, 0, 0, 0, 3437, 3438, 5, 103, 0, 0, 3438, 3439, 5, 114, 0, 0, 3439, 3440, 5, 111, 0, 0, 3440, 3441, 5, 117, 0, 0, 3441, 3442, 5, 112, 0, 0, 3442, 3443, 5, 73, 0, 0, 3443, 3444, 5, 100, 0, 0, 3444, 418, 1, 0, 0, 0, 3445, 3446, 5, 105, 0, 0, 3446, 3447, 5, 110, 0, 0, 3447, 3448, 5, 98, 0, 0, 3448, 3449, 5, 111, 0, 0, 3449, 3450, 5, 117, 0, 0, 3450, 3451, 5, 110, 0, 0, 3451, 3452, 5, 100, 0, 0, 3452, 3453, 5, 73, 0, 0, 3453, 3454, 5, 100, 0, 0, 3454, 420, 1, 0, 0, 0, 3455, 3456, 5, 119, 0, 0, 3456, 3457, 5, 111, 0, 0, 3457, 3458, 5, 114, 0, 0, 3458, 3459, 5, 100, 0, 0, 3459, 3460, 5, 99, 0, 0, 3460, 3461, 5, 111, 0, 0, 3461, 3462, 5, 117, 0, 0, 3462, 3463, 5, 110, 0, 0, 3463, 3464, 5, 116, 0, 0, 3464, 422, 1, 0, 0, 0, 3465, 3466, 5, 119, 0, 0, 3466, 3467, 5, 111, 0, 0, 3467, 3468, 5, 114, 0, 0, 3468, 3469, 5, 100, 0, 0, 3469, 3470, 5, 45, 0, 0, 3470, 3471, 5, 116, 0, 0, 3471, 3472, 5, 104, 0, 0, 3472, 3473, 5, 114, 0, 0, 3473, 3474, 5, 101, 0, 0, 3474, 3475, 5, 115, 0, 0, 3475, 3476, 5, 104, 0, 0, 3476, 3477, 5, 111, 0, 0, 3477, 3478, 5, 108, 0, 0, 3478, 3479, 5, 100, 0, 0, 3479, 424, 1, 0, 0, 0, 3480, 3481, 5, 105, 0, 0, 3481, 3482, 5, 110, 0, 0, 3482, 3483, 5, 112, 0, 0, 3483, 3484, 5, 117, 0, 0, 3484, 3485, 5, 116, 0, 0, 3485, 3486, 5, 45, 0, 0, 3486, 3487, 5, 118, 0, 0, 3487, 3488, 5, 97, 0, 0, 3488, 3489, 5, 108, 0, 0, 3489, 3490, 5, 117, 0, 0, 3490, 3491, 5, 101, 0, 0, 3491, 426, 1, 0, 0, 0, 3492, 3493, 5, 119, 0, 0, 3493, 3494, 5, 111, 0, 0, 3494, 3495, 5, 114, 0, 0, 3495, 3496, 5, 100, 0, 0, 3496, 3497, 5, 45, 0, 0, 3497, 3498, 5, 108, 0, 0, 3498, 3499, 5, 105, 0, 0, 3499, 3500, 5, 109, 0, 0, 3500, 3501, 5, 105, 0, 0, 3501, 3502, 5, 116, 0, 0, 3502, 428, 1, 0, 0, 0, 3503, 3504, 5, 99, 0, 0, 3504, 3505, 5, 104, 0, 0, 3505, 3506, 5, 97, 0, 0, 3506, 3507, 5, 114, 0, 0, 3507, 3508, 5, 97, 0, 0, 3508, 3509, 5, 99, 0, 0, 3509, 3510, 5, 116, 0, 0, 3510, 3511, 5, 101, 0, 0, 3511, 3512, 5, 114, 0, 0, 3512, 3513, 5, 99, 0, 0, 3513, 3514, 5, 111, 0, 0, 3514, 3515, 5, 117, 0, 0, 3515, 3516, 5, 110, 0, 0, 3516, 3517, 5, 116, 0, 0, 3517, 430, 1, 0, 0, 0, 3518, 3519, 5, 99, 0, 0, 3519, 3520, 5, 104, 0, 0, 3520, 3521, 5, 97, 0, 0, 3521, 3522, 5, 114, 0, 0, 3522, 3523, 5, 45, 0, 0, 3523, 3524, 5, 116, 0, 0, 3524, 3525, 5, 104, 0, 0, 3525, 3526, 5, 114, 0, 0, 3526, 3527, 5, 101, 0, 0, 3527, 3528, 5, 115, 0, 0, 3528, 3529, 5, 104, 0, 0, 3529, 3530, 5, 111, 0, 0, 3530, 3531, 5, 108, 0, 0, 3531, 3532, 5, 100, 0, 0, 3532, 432, 1, 0, 0, 0, 3533, 3534, 5, 99, 0, 0, 3534, 3535, 5, 104, 0, 0, 3535, 3536, 5, 97, 0, 0, 3536, 3537, 5, 114, 0, 0, 3537, 3538, 5, 45, 0, 0, 3538, 3539, 5, 108, 0, 0, 3539, 3540, 5, 105, 0, 0, 3540, 3541, 5, 109, 0, 0, 3541, 3542, 5, 105, 0, 0, 3542, 3543, 5, 116, 0, 0, 3543, 434, 1, 0, 0, 0, 3544, 3545, 5, 100, 0, 0, 3545, 3546, 5, 97, 0, 0, 3546, 3547, 5, 116, 0, 0, 3547, 3548, 5, 101, 0, 0, 3548, 3549, 5, 118, 0, 0, 3549, 3550, 5, 97, 0, 0, 3550, 3551, 5, 108, 0, 0, 3551, 3552, 5, 105, 0, 0, 3552, 3553, 5, 100, 0, 0, 3553, 3554, 5, 97, 0, 0, 3554, 3555, 5, 116, 0, 0, 3555, 3556, 5, 111, 0, 0, 3556, 3557, 5, 114, 0, 0, 3557, 436, 1, 0, 0, 0, 3558, 3559, 5, 97, 0, 0, 3559, 3560, 5, 108, 0, 0, 3560, 3561, 5, 108, 0, 0, 3561, 3562, 5, 111, 0, 0, 3562, 3563, 5, 119, 0, 0, 3563, 3564, 5, 101, 0, 0, 3564, 3565, 5, 100, 0, 0, 3565, 3566, 5, 45, 0, 0, 3566, 3567, 5, 100, 0, 0, 3567, 3568, 5, 97, 0, 0, 3568, 3569, 5, 116, 0, 0, 3569, 3570, 5, 101, 0, 0, 3570, 3571, 5, 45, 0, 0, 3571, 3572, 5, 102, 0, 0, 3572, 3573, 5, 111, 0, 0, 3573, 3574, 5, 114, 0, 0, 3574, 3575, 5, 109, 0, 0, 3575, 3576, 5, 97, 0, 0, 3576, 3577, 5, 116, 0, 0, 3577, 3578, 5, 115, 0, 0, 3578, 438, 1, 0, 0, 0, 3579, 3580, 5, 99, 0, 0, 3580, 3581, 5, 111, 0, 0, 3581, 3582, 5, 109, 0, 0, 3582, 3583, 5, 112, 0, 0, 3583, 3584, 5, 97, 0, 0, 3584, 3585, 5, 114, 0, 0, 3585, 3586, 5, 97, 0, 0, 3586, 3587, 5, 98, 0, 0, 3587, 3588, 5, 108, 0, 0, 3588, 3589, 5, 101, 0, 0, 3589, 3590, 5, 45, 0, 0, 3590, 3591, 5, 100, 0, 0, 3591, 3592, 5, 97, 0, 0, 3592, 3593, 5, 116, 0, 0, 3593, 3594, 5, 101, 0, 0, 3594, 440, 1, 0, 0, 0, 3595, 3596, 5, 97, 0, 0, 3596, 3597, 5, 108, 0, 0, 3597, 3598, 5, 112, 0, 0, 3598, 3599, 5, 104, 0, 0, 3599, 3600, 5, 97, 0, 0, 3600, 3601, 5, 118, 0, 0, 3601, 3602, 5, 97, 0, 0, 3602, 3603, 5, 108, 0, 0, 3603, 3604, 5, 105, 0, 0, 3604, 3605, 5, 100, 0, 0, 3605, 3606, 5, 97, 0, 0, 3606, 3607, 5, 116, 0, 0, 3607, 3608, 5, 111, 0, 0, 3608, 3609, 5, 114, 0, 0, 3609, 442, 1, 0, 0, 0, 3610, 3611, 5, 97, 0, 0, 3611, 3612, 5, 108, 0, 0, 3612, 3613, 5, 108, 0, 0, 3613, 3614, 5, 111, 0, 0, 3614, 3615, 5, 119, 0, 0, 3615, 3616, 5, 101, 0, 0, 3616, 3617, 5, 100, 0, 0, 3617, 3618, 5, 45, 0, 0, 3618, 3619, 5, 115, 0, 0, 3619, 3620, 5, 112, 0, 0, 3620, 3621, 5, 101, 0, 0, 3621, 3622, 5, 99, 0, 0, 3622, 3623, 5, 105, 0, 0, 3623, 3624, 5, 97, 0, 0, 3624, 3625, 5, 108, 0, 0, 3625, 3626, 5, 45, 0, 0, 3626, 3627, 5, 99, 0, 0, 3627, 3628, 5, 104, 0, 0, 3628, 3629, 5, 97, 0, 0, 3629, 3630, 5, 114, 0, 0, 3630, 3631, 5, 97, 0, 0, 3631, 3632, 5, 99, 0, 0, 3632, 3633, 5, 116, 0, 0, 3633, 3634, 5, 101, 0, 0, 3634, 3635, 5, 114, 0, 0, 3635, 3636, 5, 115, 0, 0, 3636, 444, 1, 0, 0, 0, 3637, 3638, 5, 97, 0, 0, 3638, 3639, 5, 108, 0, 0, 3639, 3640, 5, 112, 0, 0, 3640, 3641, 5, 104, 0, 0, 3641, 3642, 5, 97, 0, 0, 3642, 3643, 5, 110, 0, 0, 3643, 3644, 5, 117, 0, 0, 3644, 3645, 5, 109, 0, 0, 3645, 3646, 5, 101, 0, 0, 3646, 3647, 5, 114, 0, 0, 3647, 3648, 5, 105, 0, 0, 3648, 3649, 5, 99, 0, 0, 3649, 3650, 5, 118, 0, 0, 3650, 3651, 5, 97, 0, 0, 3651, 3652, 5, 108, 0, 0, 3652, 3653, 5, 105, 0, 0, 3653, 3654, 5, 100, 0, 0, 3654, 3655, 5, 97, 0, 0, 3655, 3656, 5, 116, 0, 0, 3656, 3657, 5, 111, 0, 0, 3657, 3658, 5, 114, 0, 0, 3658, 446, 1, 0, 0, 0, 3659, 3660, 5, 110, 0, 0, 3660, 3661, 5, 117, 0, 0, 3661, 3662, 5, 109, 0, 0, 3662, 3663, 5, 101, 0, 0, 3663, 3664, 5, 114, 0, 0, 3664, 3665, 5, 105, 0, 0, 3665, 3666, 5, 99, 0, 0, 3666, 3667, 5, 118, 0, 0, 3667, 3668, 5, 97, 0, 0, 3668, 3669, 5, 108, 0, 0, 3669, 3670, 5, 105, 0, 0, 3670, 3671, 5, 100, 0, 0, 3671, 3672, 5, 97, 0, 0, 3672, 3673, 5, 116, 0, 0, 3673, 3674, 5, 111, 0, 0, 3674, 3675, 5, 114, 0, 0, 3675, 448, 1, 0, 0, 0, 3676, 3677, 5, 110, 0, 0, 3677, 3678, 5, 101, 0, 0, 3678, 3679, 5, 114, 0, 0, 3679, 3680, 5, 118, 0, 0, 3680, 3681, 5, 97, 0, 0, 3681, 3682, 5, 108, 0, 0, 3682, 3683, 5, 105, 0, 0, 3683, 3684, 5, 100, 0, 0, 3684, 3685, 5, 97, 0, 0, 3685, 3686, 5, 116, 0, 0, 3686, 3687, 5, 111, 0, 0, 3687, 3688, 5, 114, 0, 0, 3688, 450, 1, 0, 0, 0, 3689, 3690, 5, 110, 0, 0, 3690, 3691, 5, 101, 0, 0, 3691, 3692, 5, 114, 0, 0, 3692, 3693, 5, 45, 0, 0, 3693, 3694, 5, 116, 0, 0, 3694, 3695, 5, 104, 0, 0, 3695, 3696, 5, 114, 0, 0, 3696, 3697, 5, 101, 0, 0, 3697, 3698, 5, 115, 0, 0, 3698, 3699, 5, 104, 0, 0, 3699, 3700, 5, 111, 0, 0, 3700, 3701, 5, 108, 0, 0, 3701, 3702, 5, 100, 0, 0, 3702, 452, 1, 0, 0, 0, 3703, 3704, 5, 117, 0, 0, 3704, 3705, 5, 114, 0, 0, 3705, 3706, 5, 103, 0, 0, 3706, 3707, 5, 101, 0, 0, 3707, 3708, 5, 110, 0, 0, 3708, 3709, 5, 99, 0, 0, 3709, 3710, 5, 121, 0, 0, 3710, 3711, 5, 84, 0, 0, 3711, 3712, 5, 114, 0, 0, 3712, 3713, 5, 105, 0, 0, 3713, 3714, 5, 97, 0, 0, 3714, 3715, 5, 103, 0, 0, 3715, 3716, 5, 101, 0, 0, 3716, 454, 1, 0, 0, 0, 3717, 3718, 5, 105, 0, 0, 3718, 3719, 5, 110, 0, 0, 3719, 3720, 5, 112, 0, 0, 3720, 3721, 5, 117, 0, 0, 3721, 3722, 5, 116, 0, 0, 3722, 3723, 5, 45, 0, 0, 3723, 3724, 5, 102, 0, 0, 3724, 3725, 5, 105, 0, 0, 3725, 3726, 5, 108, 0, 0, 3726, 3727, 5, 101, 0, 0, 3727, 3728, 5, 45, 0, 0, 3728, 3729, 5, 112, 0, 0, 3729, 3730, 5, 97, 0, 0, 3730, 3731, 5, 116, 0, 0, 3731, 3732, 5, 104, 0, 0, 3732, 456, 1, 0, 0, 0, 3733, 3734, 5, 98, 0, 0, 3734, 3735, 5, 105, 0, 0, 3735, 3736, 5, 110, 0, 0, 3736, 3737, 5, 97, 0, 0, 3737, 3738, 5, 114, 0, 0, 3738, 3739, 5, 121, 0, 0, 3739, 3740, 5, 45, 0, 0, 3740, 3741, 5, 99, 0, 0, 3741, 3742, 5, 108, 0, 0, 3742, 3743, 5, 97, 0, 0, 3743, 3744, 5, 115, 0, 0, 3744, 3745, 5, 115, 0, 0, 3745, 3746, 5, 105, 0, 0, 3746, 3747, 5, 102, 0, 0, 3747, 3748, 5, 105, 0, 0, 3748, 3749, 5, 101, 0, 0, 3749, 3750, 5, 114, 0, 0, 3750, 3751, 5, 45, 0, 0, 3751, 3752, 5, 109, 0, 0, 3752, 3753, 5, 111, 0, 0, 3753, 3754, 5, 100, 0, 0, 3754, 3755, 5, 101, 0, 0, 3755, 3756, 5, 108, 0, 0, 3756, 3757, 5, 45, 0, 0, 3757, 3758, 5, 102, 0, 0, 3758, 3759, 5, 105, 0, 0, 3759, 3760, 5, 108, 0, 0, 3760, 3761, 5, 101, 0, 0, 3761, 3762, 5, 45, 0, 0, 3762, 3763, 5, 112, 0, 0, 3763, 3764, 5, 97, 0, 0, 3764, 3765, 5, 116, 0, 0, 3765, 3766, 5, 104, 0, 0, 3766, 458, 1, 0, 0, 0, 3767, 3768, 5, 109, 0, 0, 3768, 3769, 5, 117, 0, 0, 3769, 3770, 5, 108, 0, 0, 3770, 3771, 5, 116, 0, 0, 3771, 3772, 5, 105, 0, 0, 3772, 3773, 5, 45, 0, 0, 3773, 3774, 5, 99, 0, 0, 3774, 3775, 5, 108, 0, 0, 3775, 3776, 5, 97, 0, 0, 3776, 3777, 5, 115, 0, 0, 3777, 3778, 5, 115, 0, 0, 3778, 3779, 5, 105, 0, 0, 3779, 3780, 5, 102, 0, 0, 3780, 3781, 5, 105, 0, 0, 3781, 3782, 5, 101, 0, 0, 3782, 3783, 5, 114, 0, 0, 3783, 3784, 5, 45, 0, 0, 3784, 3785, 5, 109, 0, 0, 3785, 3786, 5, 111, 0, 0, 3786, 3787, 5, 100, 0, 0, 3787, 3788, 5, 101, 0, 0, 3788, 3789, 5, 108, 0, 0, 3789, 3790, 5, 45, 0, 0, 3790, 3791, 5, 102, 0, 0, 3791, 3792, 5, 105, 0, 0, 3792, 3793, 5, 108, 0, 0, 3793, 3794, 5, 101, 0, 0, 3794, 3795, 5, 45, 0, 0, 3795, 3796, 5, 112, 0, 0, 3796, 3797, 5, 97, 0, 0, 3797, 3798, 5, 116, 0, 0, 3798, 3799, 5, 104, 0, 0, 3799, 460, 1, 0, 0, 0, 3800, 3801, 5, 99, 0, 0, 3801, 3802, 5, 104, 0, 0, 3802, 3803, 5, 101, 0, 0, 3803, 3804, 5, 99, 0, 0, 3804, 3805, 5, 107, 0, 0, 3805, 3806, 5, 98, 0, 0, 3806, 3807, 5, 111, 0, 0, 3807, 3808, 5, 120, 0, 0, 3808, 3809, 5, 45, 0, 0, 3809, 3810, 5, 99, 0, 0, 3810, 3811, 5, 108, 0, 0, 3811, 3812, 5, 97, 0, 0, 3812, 3813, 5, 115, 0, 0, 3813, 3814, 5, 115, 0, 0, 3814, 3815, 5, 105, 0, 0, 3815, 3816, 5, 102, 0, 0, 3816, 3817, 5, 105, 0, 0, 3817, 3818, 5, 101, 0, 0, 3818, 3819, 5, 114, 0, 0, 3819, 3820, 5, 45, 0, 0, 3820, 3821, 5, 109, 0, 0, 3821, 3822, 5, 111, 0, 0, 3822, 3823, 5, 100, 0, 0, 3823, 3824, 5, 101, 0, 0, 3824, 3825, 5, 108, 0, 0, 3825, 3826, 5, 45, 0, 0, 3826, 3827, 5, 102, 0, 0, 3827, 3828, 5, 105, 0, 0, 3828, 3829, 5, 108, 0, 0, 3829, 3830, 5, 101, 0, 0, 3830, 3831, 5, 45, 0, 0, 3831, 3832, 5, 112, 0, 0, 3832, 3833, 5, 97, 0, 0, 3833, 3834, 5, 116, 0, 0, 3834, 3835, 5, 104, 0, 0, 3835, 462, 1, 0, 0, 0, 3836, 3837, 5, 115, 0, 0, 3837, 3838, 5, 121, 0, 0, 3838, 3839, 5, 110, 0, 0, 3839, 3840, 5, 111, 0, 0, 3840, 3841, 5, 110, 0, 0, 3841, 3842, 5, 121, 0, 0, 3842, 3843, 5, 109, 0, 0, 3843, 3844, 5, 115, 0, 0, 3844, 464, 1, 0, 0, 0, 3845, 3846, 5, 98, 0, 0, 3846, 3847, 5, 105, 0, 0, 3847, 3848, 5, 110, 0, 0, 3848, 3849, 5, 97, 0, 0, 3849, 3850, 5, 114, 0, 0, 3850, 3851, 5, 121, 0, 0, 3851, 3852, 5, 45, 0, 0, 3852, 3853, 5, 99, 0, 0, 3853, 3854, 5, 108, 0, 0, 3854, 3855, 5, 97, 0, 0, 3855, 3856, 5, 115, 0, 0, 3856, 3857, 5, 115, 0, 0, 3857, 3858, 5, 105, 0, 0, 3858, 3859, 5, 102, 0, 0, 3859, 3860, 5, 105, 0, 0, 3860, 3861, 5, 101, 0, 0, 3861, 3862, 5, 114, 0, 0, 3862, 3863, 5, 45, 0, 0, 3863, 3864, 5, 108, 0, 0, 3864, 3865, 5, 97, 0, 0, 3865, 3866, 5, 98, 0, 0, 3866, 3867, 5, 101, 0, 0, 3867, 3868, 5, 108, 0, 0, 3868, 3869, 5, 115, 0, 0, 3869, 466, 1, 0, 0, 0, 3870, 3871, 5, 109, 0, 0, 3871, 3872, 5, 117, 0, 0, 3872, 3873, 5, 108, 0, 0, 3873, 3874, 5, 116, 0, 0, 3874, 3875, 5, 105, 0, 0, 3875, 3876, 5, 45, 0, 0, 3876, 3877, 5, 99, 0, 0, 3877, 3878, 5, 108, 0, 0, 3878, 3879, 5, 97, 0, 0, 3879, 3880, 5, 115, 0, 0, 3880, 3881, 5, 115, 0, 0, 3881, 3882, 5, 105, 0, 0, 3882, 3883, 5, 102, 0, 0, 3883, 3884, 5, 105, 0, 0, 3884, 3885, 5, 101, 0, 0, 3885, 3886, 5, 114, 0, 0, 3886, 3887, 5, 45, 0, 0, 3887, 3888, 5, 108, 0, 0, 3888, 3889, 5, 97, 0, 0, 3889, 3890, 5, 98, 0, 0, 3890, 3891, 5, 101, 0, 0, 3891, 3892, 5, 108, 0, 0, 3892, 3893, 5, 115, 0, 0, 3893, 468, 1, 0, 0, 0, 3894, 3895, 5, 99, 0, 0, 3895, 3896, 5, 104, 0, 0, 3896, 3897, 5, 101, 0, 0, 3897, 3898, 5, 99, 0, 0, 3898, 3899, 5, 107, 0, 0, 3899, 3900, 5, 98, 0, 0, 3900, 3901, 5, 111, 0, 0, 3901, 3902, 5, 120, 0, 0, 3902, 3903, 5, 45, 0, 0, 3903, 3904, 5, 99, 0, 0, 3904, 3905, 5, 108, 0, 0, 3905, 3906, 5, 97, 0, 0, 3906, 3907, 5, 115, 0, 0, 3907, 3908, 5, 115, 0, 0, 3908, 3909, 5, 105, 0, 0, 3909, 3910, 5, 102, 0, 0, 3910, 3911, 5, 105, 0, 0, 3911, 3912, 5, 101, 0, 0, 3912, 3913, 5, 114, 0, 0, 3913, 3914, 5, 45, 0, 0, 3914, 3915, 5, 108, 0, 0, 3915, 3916, 5, 97, 0, 0, 3916, 3917, 5, 98, 0, 0, 3917, 3918, 5, 101, 0, 0, 3918, 3919, 5, 108, 0, 0, 3919, 3920, 5, 115, 0, 0, 3920, 470, 1, 0, 0, 0, 3921, 3922, 5, 98, 0, 0, 3922, 3923, 5, 105, 0, 0, 3923, 3924, 5, 110, 0, 0, 3924, 3925, 5, 97, 0, 0, 3925, 3926, 5, 114, 0, 0, 3926, 3927, 5, 121, 0, 0, 3927, 3928, 5, 45, 0, 0, 3928, 3929, 5, 105, 0, 0, 3929, 3930, 5, 109, 0, 0, 3930, 3931, 5, 97, 0, 0, 3931, 3932, 5, 103, 0, 0, 3932, 3933, 5, 101, 0, 0, 3933, 3934, 5, 45, 0, 0, 3934, 3935, 5, 119, 0, 0, 3935, 3936, 5, 105, 0, 0, 3936, 3937, 5, 100, 0, 0, 3937, 3938, 5, 116, 0, 0, 3938, 3939, 5, 104, 0, 0, 3939, 472, 1, 0, 0, 0, 3940, 3941, 5, 98, 0, 0, 3941, 3942, 5, 105, 0, 0, 3942, 3943, 5, 110, 0, 0, 3943, 3944, 5, 97, 0, 0, 3944, 3945, 5, 114, 0, 0, 3945, 3946, 5, 121, 0, 0, 3946, 3947, 5, 45, 0, 0, 3947, 3948, 5, 105, 0, 0, 3948, 3949, 5, 109, 0, 0, 3949, 3950, 5, 97, 0, 0, 3950, 3951, 5, 103, 0, 0, 3951, 3952, 5, 101, 0, 0, 3952, 3953, 5, 45, 0, 0, 3953, 3954, 5, 104, 0, 0, 3954, 3955, 5, 101, 0, 0, 3955, 3956, 5, 105, 0, 0, 3956, 3957, 5, 103, 0, 0, 3957, 3958, 5, 104, 0, 0, 3958, 3959, 5, 116, 0, 0, 3959, 474, 1, 0, 0, 0, 3960, 3961, 5, 109, 0, 0, 3961, 3962, 5, 117, 0, 0, 3962, 3963, 5, 108, 0, 0, 3963, 3964, 5, 116, 0, 0, 3964, 3965, 5, 105, 0, 0, 3965, 3966, 5, 45, 0, 0, 3966, 3967, 5, 105, 0, 0, 3967, 3968, 5, 109, 0, 0, 3968, 3969, 5, 97, 0, 0, 3969, 3970, 5, 103, 0, 0, 3970, 3971, 5, 101, 0, 0, 3971, 3972, 5, 45, 0, 0, 3972, 3973, 5, 119, 0, 0, 3973, 3974, 5, 105, 0, 0, 3974, 3975, 5, 100, 0, 0, 3975, 3976, 5, 116, 0, 0, 3976, 3977, 5, 104, 0, 0, 3977, 476, 1, 0, 0, 0, 3978, 3979, 5, 109, 0, 0, 3979, 3980, 5, 117, 0, 0, 3980, 3981, 5, 108, 0, 0, 3981, 3982, 5, 116, 0, 0, 3982, 3983, 5, 105, 0, 0, 3983, 3984, 5, 45, 0, 0, 3984, 3985, 5, 105, 0, 0, 3985, 3986, 5, 109, 0, 0, 3986, 3987, 5, 97, 0, 0, 3987, 3988, 5, 103, 0, 0, 3988, 3989, 5, 101, 0, 0, 3989, 3990, 5, 45, 0, 0, 3990, 3991, 5, 104, 0, 0, 3991, 3992, 5, 101, 0, 0, 3992, 3993, 5, 105, 0, 0, 3993, 3994, 5, 103, 0, 0, 3994, 3995, 5, 104, 0, 0, 3995, 3996, 5, 116, 0, 0, 3996, 478, 1, 0, 0, 0, 3997, 3998, 5, 99, 0, 0, 3998, 3999, 5, 104, 0, 0, 3999, 4000, 5, 101, 0, 0, 4000, 4001, 5, 99, 0, 0, 4001, 4002, 5, 107, 0, 0, 4002, 4003, 5, 98, 0, 0, 4003, 4004, 5, 111, 0, 0, 4004, 4005, 5, 120, 0, 0, 4005, 4006, 5, 45, 0, 0, 4006, 4007, 5, 105, 0, 0, 4007, 4008, 5, 109, 0, 0, 4008, 4009, 5, 97, 0, 0, 4009, 4010, 5, 103, 0, 0, 4010, 4011, 5, 101, 0, 0, 4011, 4012, 5, 45, 0, 0, 4012, 4013, 5, 119, 0, 0, 4013, 4014, 5, 105, 0, 0, 4014, 4015, 5, 100, 0, 0, 4015, 4016, 5, 116, 0, 0, 4016, 4017, 5, 104, 0, 0, 4017, 480, 1, 0, 0, 0, 4018, 4019, 5, 99, 0, 0, 4019, 4020, 5, 104, 0, 0, 4020, 4021, 5, 101, 0, 0, 4021, 4022, 5, 99, 0, 0, 4022, 4023, 5, 107, 0, 0, 4023, 4024, 5, 98, 0, 0, 4024, 4025, 5, 111, 0, 0, 4025, 4026, 5, 120, 0, 0, 4026, 4027, 5, 45, 0, 0, 4027, 4028, 5, 105, 0, 0, 4028, 4029, 5, 109, 0, 0, 4029, 4030, 5, 97, 0, 0, 4030, 4031, 5, 103, 0, 0, 4031, 4032, 5, 101, 0, 0, 4032, 4033, 5, 45, 0, 0, 4033, 4034, 5, 104, 0, 0, 4034, 4035, 5, 101, 0, 0, 4035, 4036, 5, 105, 0, 0, 4036, 4037, 5, 103, 0, 0, 4037, 4038, 5, 104, 0, 0, 4038, 4039, 5, 116, 0, 0, 4039, 482, 1, 0, 0, 0, 4040, 4041, 5, 100, 0, 0, 4041, 4042, 5, 111, 0, 0, 4042, 4043, 5, 110, 0, 0, 4043, 4044, 5, 117, 0, 0, 4044, 4045, 5, 116, 0, 0, 4045, 4046, 5, 45, 0, 0, 4046, 4047, 5, 100, 0, 0, 4047, 4048, 5, 111, 0, 0, 4048, 4049, 5, 99, 0, 0, 4049, 4050, 5, 113, 0, 0, 4050, 4051, 5, 97, 0, 0, 4051, 484, 1, 0, 0, 0, 4052, 4053, 5, 115, 0, 0, 4053, 4054, 5, 99, 0, 0, 4054, 4055, 5, 97, 0, 0, 4055, 4056, 5, 108, 0, 0, 4056, 4057, 5, 97, 0, 0, 4057, 4058, 5, 114, 0, 0, 4058, 4059, 5, 65, 0, 0, 4059, 4060, 5, 100, 0, 0, 4060, 4061, 5, 97, 0, 0, 4061, 4062, 5, 112, 0, 0, 4062, 4063, 5, 116, 0, 0, 4063, 4064, 5, 101, 0, 0, 4064, 4065, 5, 114, 0, 0, 4065, 486, 1, 0, 0, 0, 4066, 4067, 5, 117, 0, 0, 4067, 4068, 5, 115, 0, 0, 4068, 4069, 5, 105, 0, 0, 4069, 4070, 5, 110, 0, 0, 4070, 4071, 5, 103, 0, 0, 4071, 4072, 5, 45, 0, 0, 4072, 4073, 5, 100, 0, 0, 4073, 4074, 5, 111, 0, 0, 4074, 4075, 5, 99, 0, 0, 4075, 4076, 5, 110, 0, 0, 4076, 4077, 5, 117, 0, 0, 4077, 4078, 5, 116, 0, 0, 4078, 4079, 5, 45, 0, 0, 4079, 4080, 5, 114, 0, 0, 4080, 4081, 5, 101, 0, 0, 4081, 4082, 5, 115, 0, 0, 4082, 4083, 5, 117, 0, 0, 4083, 4084, 5, 108, 0, 0, 4084, 4085, 5, 116, 0, 0, 4085, 488, 1, 0, 0, 0, 4086, 4087, 5, 112, 0, 0, 4087, 4088, 5, 104, 0, 0, 4088, 4089, 5, 114, 0, 0, 4089, 4090, 5, 97, 0, 0, 4090, 4091, 5, 115, 0, 0, 4091, 4092, 5, 101, 0, 0, 4092, 4093, 5, 45, 0, 0, 4093, 4094, 5, 109, 0, 0, 4094, 4095, 5, 97, 0, 0, 4095, 4096, 5, 116, 0, 0, 4096, 4097, 5, 99, 0, 0, 4097, 4098, 5, 104, 0, 0, 4098, 4099, 5, 45, 0, 0, 4099, 4100, 5, 112, 0, 0, 4100, 4101, 5, 97, 0, 0, 4101, 4102, 5, 112, 0, 0, 4102, 4103, 5, 101, 0, 0, 4103, 4104, 5, 114, 0, 0, 4104, 4105, 5, 45, 0, 0, 4105, 4106, 5, 102, 0, 0, 4106, 4107, 5, 105, 0, 0, 4107, 4108, 5, 108, 0, 0, 4108, 4109, 5, 116, 0, 0, 4109, 4110, 5, 101, 0, 0, 4110, 4111, 5, 114, 0, 0, 4111, 490, 1, 0, 0, 0, 4112, 4113, 5, 102, 0, 0, 4113, 4114, 5, 111, 0, 0, 4114, 4115, 5, 114, 0, 0, 4115, 4116, 5, 45, 0, 0, 4116, 4117, 5, 112, 0, 0, 4117, 4118, 5, 114, 0, 0, 4118, 4119, 5, 111, 0, 0, 4119, 4120, 5, 99, 0, 0, 4120, 4121, 5, 101, 0, 0, 4121, 4122, 5, 115, 0, 0, 4122, 4123, 5, 115, 0, 0, 4123, 4124, 5, 45, 0, 0, 4124, 4125, 5, 105, 0, 0, 4125, 4126, 5, 100, 0, 0, 4126, 492, 1, 0, 0, 0, 4127, 4128, 5, 116, 0, 0, 4128, 4129, 5, 104, 0, 0, 4129, 4130, 5, 114, 0, 0, 4130, 4131, 5, 101, 0, 0, 4131, 4132, 5, 97, 0, 0, 4132, 4133, 5, 100, 0, 0, 4133, 4134, 5, 45, 0, 0, 4134, 4135, 5, 99, 0, 0, 4135, 4136, 5, 111, 0, 0, 4136, 4137, 5, 117, 0, 0, 4137, 4138, 5, 110, 0, 0, 4138, 4139, 5, 116, 0, 0, 4139, 494, 1, 0, 0, 0, 4140, 4141, 5, 114, 0, 0, 4141, 4142, 5, 101, 0, 0, 4142, 4143, 5, 97, 0, 0, 4143, 4144, 5, 100, 0, 0, 4144, 4145, 5, 45, 0, 0, 4145, 4146, 5, 98, 0, 0, 4146, 4147, 5, 97, 0, 0, 4147, 4148, 5, 116, 0, 0, 4148, 4149, 5, 99, 0, 0, 4149, 4150, 5, 104, 0, 0, 4150, 4151, 5, 45, 0, 0, 4151, 4152, 5, 115, 0, 0, 4152, 4153, 5, 105, 0, 0, 4153, 4154, 5, 122, 0, 0, 4154, 4155, 5, 101, 0, 0, 4155, 496, 1, 0, 0, 0, 4156, 4157, 5, 119, 0, 0, 4157, 4158, 5, 114, 0, 0, 4158, 4159, 5, 105, 0, 0, 4159, 4160, 5, 116, 0, 0, 4160, 4161, 5, 101, 0, 0, 4161, 4162, 5, 45, 0, 0, 4162, 4163, 5, 98, 0, 0, 4163, 4164, 5, 97, 0, 0, 4164, 4165, 5, 116, 0, 0, 4165, 4166, 5, 99, 0, 0, 4166, 4167, 5, 104, 0, 0, 4167, 4168, 5, 45, 0, 0, 4168, 4169, 5, 115, 0, 0, 4169, 4170, 5, 105, 0, 0, 4170, 4171, 5, 122, 0, 0, 4171, 4172, 5, 101, 0, 0, 4172, 498, 1, 0, 0, 0, 4173, 4174, 5, 119, 0, 0, 4174, 4175, 5, 105, 0, 0, 4175, 4176, 5, 116, 0, 0, 4176, 4177, 5, 104, 0, 0, 4177, 4178, 5, 45, 0, 0, 4178, 4179, 5, 105, 0, 0, 4179, 4180, 5, 110, 0, 0, 4180, 4181, 5, 112, 0, 0, 4181, 4182, 5, 117, 0, 0, 4182, 4183, 5, 116, 0, 0, 4183, 4184, 5, 45, 0, 0, 4184, 4185, 5, 113, 0, 0, 4185, 4186, 5, 117, 0, 0, 4186, 4187, 5, 101, 0, 0, 4187, 4188, 5, 114, 0, 0, 4188, 4189, 5, 121, 0, 0, 4189, 500, 1, 0, 0, 0, 4190, 4191, 5, 122, 0, 0, 4191, 4192, 5, 101, 0, 0, 4192, 4193, 5, 114, 0, 0, 4193, 4194, 5, 111, 0, 0, 4194, 4195, 5, 45, 0, 0, 4195, 4196, 5, 115, 0, 0, 4196, 4197, 5, 104, 0, 0, 4197, 4198, 5, 111, 0, 0, 4198, 4199, 5, 116, 0, 0, 4199, 4200, 5, 45, 0, 0, 4200, 4201, 5, 99, 0, 0, 4201, 4202, 5, 108, 0, 0, 4202, 4203, 5, 97, 0, 0, 4203, 4204, 5, 115, 0, 0, 4204, 4205, 5, 115, 0, 0, 4205, 4206, 5, 105, 0, 0, 4206, 4207, 5, 102, 0, 0, 4207, 4208, 5, 105, 0, 0, 4208, 4209, 5, 101, 0, 0, 4209, 4210, 5, 114, 0, 0, 4210, 4211, 5, 45, 0, 0, 4211, 4212, 5, 112, 0, 0, 4212, 4213, 5, 97, 0, 0, 4213, 4214, 5, 112, 0, 0, 4214, 4215, 5, 101, 0, 0, 4215, 4216, 5, 114, 0, 0, 4216, 4217, 5, 45, 0, 0, 4217, 4218, 5, 102, 0, 0, 4218, 4219, 5, 105, 0, 0, 4219, 4220, 5, 108, 0, 0, 4220, 4221, 5, 116, 0, 0, 4221, 4222, 5, 101, 0, 0, 4222, 4223, 5, 114, 0, 0, 4223, 502, 1, 0, 0, 0, 4224, 4225, 5, 97, 0, 0, 4225, 4226, 5, 115, 0, 0, 4226, 4227, 5, 115, 0, 0, 4227, 4228, 5, 101, 0, 0, 4228, 4229, 5, 116, 0, 0, 4229, 4230, 5, 73, 0, 0, 4230, 4231, 5, 110, 0, 0, 4231, 4232, 5, 102, 0, 0, 4232, 4233, 5, 111, 0, 0, 4233, 504, 1, 0, 0, 0, 4234, 4235, 5, 103, 0, 0, 4235, 4236, 5, 101, 0, 0, 4236, 4237, 5, 116, 0, 0, 4237, 4238, 5, 45, 0, 0, 4238, 4239, 5, 97, 0, 0, 4239, 4240, 5, 117, 0, 0, 4240, 4241, 5, 100, 0, 0, 4241, 4242, 5, 105, 0, 0, 4242, 4243, 5, 116, 0, 0, 4243, 4244, 5, 45, 0, 0, 4244, 4245, 5, 116, 0, 0, 4245, 4246, 5, 97, 0, 0, 4246, 4247, 5, 98, 0, 0, 4247, 4248, 5, 108, 0, 0, 4248, 4249, 5, 101, 0, 0, 4249, 506, 1, 0, 0, 0, 4250, 4251, 5, 114, 0, 0, 4251, 4252, 5, 101, 0, 0, 4252, 4253, 5, 115, 0, 0, 4253, 4254, 5, 117, 0, 0, 4254, 4255, 5, 108, 0, 0, 4255, 4256, 5, 116, 0, 0, 4256, 4257, 5, 45, 0, 0, 4257, 4258, 5, 116, 0, 0, 4258, 4259, 5, 97, 0, 0, 4259, 4260, 5, 98, 0, 0, 4260, 4261, 5, 108, 0, 0, 4261, 4262, 5, 101, 0, 0, 4262, 508, 1, 0, 0, 0, 4263, 4264, 5, 100, 0, 0, 4264, 4265, 5, 97, 0, 0, 4265, 4266, 5, 116, 0, 0, 4266, 4267, 5, 97, 0, 0, 4267, 4268, 5, 69, 0, 0, 4268, 4269, 5, 120, 0, 0, 4269, 4270, 5, 116, 0, 0, 4270, 4271, 5, 114, 0, 0, 4271, 4272, 5, 97, 0, 0, 4272, 4273, 5, 99, 0, 0, 4273, 4274, 5, 116, 0, 0, 4274, 4275, 5, 105, 0, 0, 4275, 4276, 5, 111, 0, 0, 4276, 4277, 5, 110, 0, 0, 4277, 510, 1, 0, 0, 0, 4278, 4279, 5, 101, 0, 0, 4279, 4280, 5, 112, 0, 0, 4280, 4281, 5, 105, 0, 0, 4281, 4282, 5, 115, 0, 0, 4282, 4283, 5, 111, 0, 0, 4283, 4284, 5, 100, 0, 0, 4284, 4285, 5, 101, 0, 0, 4285, 4286, 5, 79, 0, 0, 4286, 4287, 5, 102, 0, 0, 4287, 4288, 5, 67, 0, 0, 4288, 4289, 5, 111, 0, 0, 4289, 4290, 5, 118, 0, 0, 4290, 4291, 5, 101, 0, 0, 4291, 4292, 5, 114, 0, 0, 4292, 4293, 5, 97, 0, 0, 4293, 4294, 5, 103, 0, 0, 4294, 4295, 5, 101, 0, 0, 4295, 512, 1, 0, 0, 0, 4296, 4297, 5, 111, 0, 0, 4297, 4298, 5, 114, 0, 0, 4298, 4299, 5, 105, 0, 0, 4299, 4300, 5, 103, 0, 0, 4300, 4301, 5, 105, 0, 0, 4301, 4302, 5, 110, 0, 0, 4302, 4303, 5, 45, 0, 0, 4303, 4304, 5, 105, 0, 0, 4304, 4305, 5, 100, 0, 0, 4305, 514, 1, 0, 0, 0, 4306, 4307, 5, 116, 0, 0, 4307, 4308, 5, 111, 0, 0, 4308, 4309, 5, 116, 0, 0, 4309, 4310, 5, 97, 0, 0, 4310, 4311, 5, 108, 0, 0, 4311, 4312, 5, 45, 0, 0, 4312, 4313, 5, 112, 0, 0, 4313, 4314, 5, 97, 0, 0, 4314, 4315, 5, 103, 0, 0, 4315, 4316, 5, 101, 0, 0, 4316, 4317, 5, 115, 0, 0, 4317, 516, 1, 0, 0, 0, 4318, 4319, 5, 111, 0, 0, 4319, 4320, 5, 117, 0, 0, 4320, 4321, 5, 116, 0, 0, 4321, 4322, 5, 112, 0, 0, 4322, 4323, 5, 117, 0, 0, 4323, 4324, 5, 116, 0, 0, 4324, 4325, 5, 45, 0, 0, 4325, 4326, 5, 116, 0, 0, 4326, 4327, 5, 97, 0, 0, 4327, 4328, 5, 98, 0, 0, 4328, 4329, 5, 108, 0, 0, 4329, 4330, 5, 101, 0, 0, 4330, 518, 1, 0, 0, 0, 4331, 4332, 5, 103, 0, 0, 4332, 4333, 5, 114, 0, 0, 4333, 4334, 5, 111, 0, 0, 4334, 4335, 5, 117, 0, 0, 4335, 4336, 5, 112, 0, 0, 4336, 4337, 5, 105, 0, 0, 4337, 4338, 5, 110, 0, 0, 4338, 4339, 5, 103, 0, 0, 4339, 4340, 5, 45, 0, 0, 4340, 4341, 5, 105, 0, 0, 4341, 4342, 5, 116, 0, 0, 4342, 4343, 5, 101, 0, 0, 4343, 4344, 5, 109, 0, 0, 4344, 520, 1, 0, 0, 0, 4345, 4346, 5, 112, 0, 0, 4346, 4347, 5, 97, 0, 0, 4347, 4348, 5, 116, 0, 0, 4348, 4349, 5, 105, 0, 0, 4349, 4350, 5, 101, 0, 0, 4350, 4351, 5, 110, 0, 0, 4351, 4352, 5, 116, 0, 0, 4352, 4353, 5, 45, 0, 0, 4353, 4354, 5, 101, 0, 0, 4354, 4355, 5, 111, 0, 0, 4355, 4356, 5, 99, 0, 0, 4356, 4357, 5, 45, 0, 0, 4357, 4358, 5, 99, 0, 0, 4358, 4359, 5, 111, 0, 0, 4359, 4360, 5, 117, 0, 0, 4360, 4361, 5, 110, 0, 0, 4361, 4362, 5, 116, 0, 0, 4362, 522, 1, 0, 0, 0, 4363, 4364, 5, 113, 0, 0, 4364, 4365, 5, 114, 0, 0, 4365, 4366, 5, 45, 0, 0, 4366, 4367, 5, 103, 0, 0, 4367, 4368, 5, 114, 0, 0, 4368, 4369, 5, 111, 0, 0, 4369, 4370, 5, 117, 0, 0, 4370, 4371, 5, 112, 0, 0, 4371, 4372, 5, 105, 0, 0, 4372, 4373, 5, 110, 0, 0, 4373, 4374, 5, 103, 0, 0, 4374, 524, 1, 0, 0, 0, 4375, 4376, 5, 101, 0, 0, 4376, 4377, 5, 111, 0, 0, 4377, 4378, 5, 99, 0, 0, 4378, 4379, 5, 45, 0, 0, 4379, 4380, 5, 103, 0, 0, 4380, 4381, 5, 114, 0, 0, 4381, 4382, 5, 111, 0, 0, 4382, 4383, 5, 117, 0, 0, 4383, 4384, 5, 112, 0, 0, 4384, 4385, 5, 105, 0, 0, 4385, 4386, 5, 110, 0, 0, 4386, 4387, 5, 103, 0, 0, 4387, 526, 1, 0, 0, 0, 4388, 4389, 5, 112, 0, 0, 4389, 4390, 5, 110, 0, 0, 4390, 4391, 5, 100, 0, 0, 4391, 4392, 5, 45, 0, 0, 4392, 4393, 5, 103, 0, 0, 4393, 4394, 5, 114, 0, 0, 4394, 4395, 5, 111, 0, 0, 4395, 4396, 5, 117, 0, 0, 4396, 4397, 5, 112, 0, 0, 4397, 4398, 5, 105, 0, 0, 4398, 4399, 5, 110, 0, 0, 4399, 4400, 5, 103, 0, 0, 4400, 528, 1, 0, 0, 0, 4401, 4402, 5, 117, 0, 0, 4402, 4403, 5, 115, 0, 0, 4403, 4404, 5, 101, 0, 0, 4404, 4405, 5, 114, 0, 0, 4405, 4406, 5, 82, 0, 0, 4406, 4407, 5, 101, 0, 0, 4407, 4408, 5, 103, 0, 0, 4408, 4409, 5, 105, 0, 0, 4409, 4410, 5, 115, 0, 0, 4410, 4411, 5, 116, 0, 0, 4411, 4412, 5, 114, 0, 0, 4412, 4413, 5, 97, 0, 0, 4413, 4414, 5, 116, 0, 0, 4414, 4415, 5, 105, 0, 0, 4415, 4416, 5, 111, 0, 0, 4416, 4417, 5, 110, 0, 0, 4417, 530, 1, 0, 0, 0, 4418, 4419, 5, 97, 0, 0, 4419, 4420, 5, 117, 0, 0, 4420, 4421, 5, 116, 0, 0, 4421, 4422, 5, 104, 0, 0, 4422, 4423, 5, 84, 0, 0, 4423, 4424, 5, 111, 0, 0, 4424, 4425, 5, 107, 0, 0, 4425, 4426, 5, 101, 0, 0, 4426, 4427, 5, 110, 0, 0, 4427, 532, 1, 0, 0, 0, 4428, 4429, 5, 101, 0, 0, 4429, 4430, 5, 111, 0, 0, 4430, 4431, 5, 99, 0, 0, 4431, 4432, 5, 74, 0, 0, 4432, 4433, 5, 115, 0, 0, 4433, 4434, 5, 111, 0, 0, 4434, 4435, 5, 110, 0, 0, 4435, 4436, 5, 71, 0, 0, 4436, 4437, 5, 101, 0, 0, 4437, 4438, 5, 110, 0, 0, 4438, 4439, 5, 101, 0, 0, 4439, 4440, 5, 114, 0, 0, 4440, 4441, 5, 97, 0, 0, 4441, 4442, 5, 116, 0, 0, 4442, 4443, 5, 111, 0, 0, 4443, 4444, 5, 114, 0, 0, 4444, 534, 1, 0, 0, 0, 4445, 4446, 5, 100, 0, 0, 4446, 4447, 5, 111, 0, 0, 4447, 4448, 5, 99, 0, 0, 4448, 4449, 5, 117, 0, 0, 4449, 4450, 5, 109, 0, 0, 4450, 4451, 5, 101, 0, 0, 4451, 4452, 5, 110, 0, 0, 4452, 4453, 5, 116, 0, 0, 4453, 4454, 5, 45, 0, 0, 4454, 4455, 5, 105, 0, 0, 4455, 4456, 5, 100, 0, 0, 4456, 536, 1, 0, 0, 0, 4457, 4458, 5, 101, 0, 0, 4458, 4459, 5, 111, 0, 0, 4459, 4460, 5, 99, 0, 0, 4460, 4461, 5, 45, 0, 0, 4461, 4462, 5, 105, 0, 0, 4462, 4463, 5, 100, 0, 0, 4463, 538, 1, 0, 0, 0, 4464, 4465, 5, 122, 0, 0, 4465, 4466, 5, 105, 0, 0, 4466, 4467, 5, 112, 0, 0, 4467, 4468, 5, 67, 0, 0, 4468, 4469, 5, 111, 0, 0, 4469, 4470, 5, 110, 0, 0, 4470, 4471, 5, 116, 0, 0, 4471, 4472, 5, 101, 0, 0, 4472, 4473, 5, 110, 0, 0, 4473, 4474, 5, 116, 0, 0, 4474, 4475, 5, 76, 0, 0, 4475, 4476, 5, 105, 0, 0, 4476, 4477, 5, 115, 0, 0, 4477, 4478, 5, 116, 0, 0, 4478, 540, 1, 0, 0, 0, 4479, 4480, 5, 122, 0, 0, 4480, 4481, 5, 105, 0, 0, 4481, 4482, 5, 112, 0, 0, 4482, 4483, 5, 45, 0, 0, 4483, 4484, 5, 102, 0, 0, 4484, 4485, 5, 105, 0, 0, 4485, 4486, 5, 108, 0, 0, 4486, 4487, 5, 101, 0, 0, 4487, 4488, 5, 45, 0, 0, 4488, 4489, 5, 112, 0, 0, 4489, 4490, 5, 97, 0, 0, 4490, 4491, 5, 116, 0, 0, 4491, 4492, 5, 104, 0, 0, 4492, 542, 1, 0, 0, 0, 4493, 4494, 5, 104, 0, 0, 4494, 4495, 5, 119, 0, 0, 4495, 4496, 5, 68, 0, 0, 4496, 4497, 5, 101, 0, 0, 4497, 4498, 5, 116, 0, 0, 4498, 4499, 5, 101, 0, 0, 4499, 4500, 5, 99, 0, 0, 4500, 4501, 5, 116, 0, 0, 4501, 4502, 5, 105, 0, 0, 4502, 4503, 5, 111, 0, 0, 4503, 4504, 5, 110, 0, 0, 4504, 544, 1, 0, 0, 0, 4505, 4506, 5, 111, 0, 0, 4506, 4507, 5, 117, 0, 0, 4507, 4508, 5, 116, 0, 0, 4508, 4509, 5, 112, 0, 0, 4509, 4510, 5, 117, 0, 0, 4510, 4511, 5, 116, 0, 0, 4511, 4512, 5, 68, 0, 0, 4512, 4513, 5, 105, 0, 0, 4513, 4514, 5, 114, 0, 0, 4514, 546, 1, 0, 0, 0, 4515, 4516, 5, 109, 0, 0, 4516, 4517, 5, 111, 0, 0, 4517, 4518, 5, 100, 0, 0, 4518, 4519, 5, 101, 0, 0, 4519, 4520, 5, 108, 0, 0, 4520, 4521, 5, 80, 0, 0, 4521, 4522, 5, 97, 0, 0, 4522, 4523, 5, 116, 0, 0, 4523, 4524, 5, 104, 0, 0, 4524, 548, 1, 0, 0, 0, 4525, 4526, 5, 105, 0, 0, 4526, 4527, 5, 110, 0, 0, 4527, 4528, 5, 116, 0, 0, 4528, 4529, 5, 101, 0, 0, 4529, 4530, 5, 108, 0, 0, 4530, 4531, 5, 108, 0, 0, 4531, 4532, 5, 105, 0, 0, 4532, 4533, 5, 109, 0, 0, 4533, 4534, 5, 97, 0, 0, 4534, 4535, 5, 116, 0, 0, 4535, 4536, 5, 99, 0, 0, 4536, 4537, 5, 104, 0, 0, 4537, 550, 1, 0, 0, 0, 4538, 4539, 5, 109, 0, 0, 4539, 4540, 5, 97, 0, 0, 4540, 4541, 5, 116, 0, 0, 4541, 4542, 5, 99, 0, 0, 4542, 4543, 5, 104, 0, 0, 4543, 4544, 5, 45, 0, 0, 4544, 4545, 5, 114, 0, 0, 4545, 4546, 5, 101, 0, 0, 4546, 4547, 5, 115, 0, 0, 4547, 4548, 5, 117, 0, 0, 4548, 4549, 5, 108, 0, 0, 4549, 4550, 5, 116, 0, 0, 4550, 552, 1, 0, 0, 0, 4551, 4552, 5, 99, 0, 0, 4552, 4553, 5, 104, 0, 0, 4553, 4554, 5, 101, 0, 0, 4554, 4555, 5, 99, 0, 0, 4555, 4556, 5, 107, 0, 0, 4556, 4557, 5, 98, 0, 0, 4557, 4558, 5, 111, 0, 0, 4558, 4559, 5, 120, 0, 0, 4559, 4560, 5, 45, 0, 0, 4560, 4561, 5, 118, 0, 0, 4561, 4562, 5, 113, 0, 0, 4562, 4563, 5, 97, 0, 0, 4563, 554, 1, 0, 0, 0, 4564, 4565, 5, 99, 0, 0, 4565, 4566, 5, 97, 0, 0, 4566, 4567, 5, 100, 0, 0, 4567, 4568, 5, 45, 0, 0, 4568, 4569, 5, 109, 0, 0, 4569, 4570, 5, 111, 0, 0, 4570, 4571, 5, 100, 0, 0, 4571, 4572, 5, 101, 0, 0, 4572, 4573, 5, 108, 0, 0, 4573, 4574, 5, 45, 0, 0, 4574, 4575, 5, 112, 0, 0, 4575, 4576, 5, 97, 0, 0, 4576, 4577, 5, 116, 0, 0, 4577, 4578, 5, 104, 0, 0, 4578, 556, 1, 0, 0, 0, 4579, 4580, 5, 99, 0, 0, 4580, 4581, 5, 100, 0, 0, 4581, 4582, 5, 45, 0, 0, 4582, 4583, 5, 109, 0, 0, 4583, 4584, 5, 111, 0, 0, 4584, 4585, 5, 100, 0, 0, 4585, 4586, 5, 101, 0, 0, 4586, 4587, 5, 108, 0, 0, 4587, 4588, 5, 45, 0, 0, 4588, 4589, 5, 112, 0, 0, 4589, 4590, 5, 97, 0, 0, 4590, 4591, 5, 116, 0, 0, 4591, 4592, 5, 104, 0, 0, 4592, 558, 1, 0, 0, 0, 4593, 4594, 5, 99, 0, 0, 4594, 4595, 5, 114, 0, 0, 4595, 4596, 5, 45, 0, 0, 4596, 4597, 5, 109, 0, 0, 4597, 4598, 5, 111, 0, 0, 4598, 4599, 5, 100, 0, 0, 4599, 4600, 5, 101, 0, 0, 4600, 4601, 5, 108, 0, 0, 4601, 4602, 5, 45, 0, 0, 4602, 4603, 5, 112, 0, 0, 4603, 4604, 5, 97, 0, 0, 4604, 4605, 5, 116, 0, 0, 4605, 4606, 5, 104, 0, 0, 4606, 560, 1, 0, 0, 0, 4607, 4608, 5, 116, 0, 0, 4608, 4609, 5, 101, 0, 0, 4609, 4610, 5, 120, 0, 0, 4610, 4611, 5, 116, 0, 0, 4611, 4612, 5, 45, 0, 0, 4612, 4613, 5, 109, 0, 0, 4613, 4614, 5, 111, 0, 0, 4614, 4615, 5, 100, 0, 0, 4615, 4616, 5, 101, 0, 0, 4616, 4617, 5, 108, 0, 0, 4617, 562, 1, 0, 0, 0, 4618, 4619, 5, 99, 0, 0, 4619, 4620, 5, 114, 0, 0, 4620, 4621, 5, 45, 0, 0, 4621, 4622, 5, 119, 0, 0, 4622, 4623, 5, 105, 0, 0, 4623, 4624, 5, 100, 0, 0, 4624, 4625, 5, 116, 0, 0, 4625, 4626, 5, 104, 0, 0, 4626, 564, 1, 0, 0, 0, 4627, 4628, 5, 99, 0, 0, 4628, 4629, 5, 114, 0, 0, 4629, 4630, 5, 45, 0, 0, 4630, 4631, 5, 104, 0, 0, 4631, 4632, 5, 101, 0, 0, 4632, 4633, 5, 105, 0, 0, 4633, 4634, 5, 103, 0, 0, 4634, 4635, 5, 104, 0, 0, 4635, 4636, 5, 116, 0, 0, 4636, 566, 1, 0, 0, 0, 4637, 4638, 5, 112, 0, 0, 4638, 4639, 5, 105, 0, 0, 4639, 4640, 5, 120, 0, 0, 4640, 4641, 5, 101, 0, 0, 4641, 4642, 5, 108, 0, 0, 4642, 4643, 5, 45, 0, 0, 4643, 4644, 5, 99, 0, 0, 4644, 4645, 5, 108, 0, 0, 4645, 4646, 5, 97, 0, 0, 4646, 4647, 5, 115, 0, 0, 4647, 4648, 5, 115, 0, 0, 4648, 4649, 5, 105, 0, 0, 4649, 4650, 5, 102, 0, 0, 4650, 4651, 5, 105, 0, 0, 4651, 4652, 5, 101, 0, 0, 4652, 4653, 5, 114, 0, 0, 4653, 4654, 5, 45, 0, 0, 4654, 4655, 5, 117, 0, 0, 4655, 4656, 5, 114, 0, 0, 4656, 4657, 5, 103, 0, 0, 4657, 4658, 5, 101, 0, 0, 4658, 4659, 5, 110, 0, 0, 4659, 4660, 5, 99, 0, 0, 4660, 4661, 5, 121, 0, 0, 4661, 4662, 5, 45, 0, 0, 4662, 4663, 5, 116, 0, 0, 4663, 4664, 5, 114, 0, 0, 4664, 4665, 5, 105, 0, 0, 4665, 4666, 5, 97, 0, 0, 4666, 4667, 5, 103, 0, 0, 4667, 4668, 5, 101, 0, 0, 4668, 568, 1, 0, 0, 0, 4669, 4670, 5, 113, 0, 0, 4670, 4671, 5, 114, 0, 0, 4671, 4672, 5, 45, 0, 0, 4672, 4673, 5, 101, 0, 0, 4673, 4674, 5, 120, 0, 0, 4674, 4675, 5, 116, 0, 0, 4675, 4676, 5, 114, 0, 0, 4676, 4677, 5, 97, 0, 0, 4677, 4678, 5, 99, 0, 0, 4678, 4679, 5, 116, 0, 0, 4679, 4680, 5, 105, 0, 0, 4680, 4681, 5, 111, 0, 0, 4681, 4682, 5, 110, 0, 0, 4682, 570, 1, 0, 0, 0, 4683, 4684, 5, 112, 0, 0, 4684, 4685, 5, 97, 0, 0, 4685, 4686, 5, 112, 0, 0, 4686, 4687, 5, 101, 0, 0, 4687, 4688, 5, 114, 0, 0, 4688, 4689, 5, 73, 0, 0, 4689, 4690, 5, 116, 0, 0, 4690, 4691, 5, 101, 0, 0, 4691, 4692, 5, 109, 0, 0, 4692, 4693, 5, 105, 0, 0, 4693, 4694, 5, 122, 0, 0, 4694, 4695, 5, 101, 0, 0, 4695, 4696, 5, 114, 0, 0, 4696, 572, 1, 0, 0, 0, 4697, 4698, 5, 112, 0, 0, 4698, 4699, 5, 114, 0, 0, 4699, 4700, 5, 111, 0, 0, 4700, 4701, 5, 99, 0, 0, 4701, 4702, 5, 101, 0, 0, 4702, 4703, 5, 115, 0, 0, 4703, 4704, 5, 115, 0, 0, 4704, 4705, 5, 73, 0, 0, 4705, 4706, 5, 100, 0, 0, 4706, 574, 1, 0, 0, 0, 4707, 4708, 5, 110, 0, 0, 4708, 4709, 5, 101, 0, 0, 4709, 4710, 5, 114, 0, 0, 4710, 4711, 5, 65, 0, 0, 4711, 4712, 5, 100, 0, 0, 4712, 4713, 5, 97, 0, 0, 4713, 4714, 5, 112, 0, 0, 4714, 4715, 5, 116, 0, 0, 4715, 4716, 5, 101, 0, 0, 4716, 4717, 5, 114, 0, 0, 4717, 576, 1, 0, 0, 0, 4718, 4719, 5, 99, 0, 0, 4719, 4720, 5, 111, 0, 0, 4720, 4721, 5, 112, 0, 0, 4721, 4722, 5, 114, 0, 0, 4722, 4723, 5, 111, 0, 0, 4723, 4724, 5, 83, 0, 0, 4724, 4725, 5, 116, 0, 0, 4725, 4726, 5, 97, 0, 0, 4726, 4727, 5, 114, 0, 0, 4727, 4728, 5, 116, 0, 0, 4728, 578, 1, 0, 0, 0, 4729, 4730, 5, 102, 0, 0, 4730, 4731, 5, 111, 0, 0, 4731, 4732, 5, 114, 0, 0, 4732, 580, 1, 0, 0, 0, 4733, 4734, 5, 99, 0, 0, 4734, 4735, 5, 111, 0, 0, 4735, 4736, 5, 112, 0, 0, 4736, 4737, 5, 114, 0, 0, 4737, 4738, 5, 111, 0, 0, 4738, 4739, 5, 45, 0, 0, 4739, 4740, 5, 115, 0, 0, 4740, 4741, 5, 101, 0, 0, 4741, 4742, 5, 114, 0, 0, 4742, 4743, 5, 118, 0, 0, 4743, 4744, 5, 101, 0, 0, 4744, 4745, 5, 114, 0, 0, 4745, 4746, 5, 45, 0, 0, 4746, 4747, 5, 117, 0, 0, 4747, 4748, 5, 114, 0, 0, 4748, 4749, 5, 108, 0, 0, 4749, 582, 1, 0, 0, 0, 4750, 4751, 5, 101, 0, 0, 4751, 4752, 5, 120, 0, 0, 4752, 4753, 5, 112, 0, 0, 4753, 4754, 5, 111, 0, 0, 4754, 4755, 5, 114, 0, 0, 4755, 4756, 5, 116, 0, 0, 4756, 4757, 5, 45, 0, 0, 4757, 4758, 5, 99, 0, 0, 4758, 4759, 5, 111, 0, 0, 4759, 4760, 5, 109, 0, 0, 4760, 4761, 5, 109, 0, 0, 4761, 4762, 5, 97, 0, 0, 4762, 4763, 5, 110, 0, 0, 4763, 4764, 5, 100, 0, 0, 4764, 584, 1, 0, 0, 0, 4765, 4766, 5, 99, 0, 0, 4766, 4767, 5, 111, 0, 0, 4767, 4768, 5, 112, 0, 0, 4768, 4769, 5, 114, 0, 0, 4769, 4770, 5, 111, 0, 0, 4770, 4771, 5, 83, 0, 0, 4771, 4772, 5, 116, 0, 0, 4772, 4773, 5, 111, 0, 0, 4773, 4774, 5, 112, 0, 0, 4774, 586, 1, 0, 0, 0, 4775, 4776, 5, 111, 0, 0, 4776, 4777, 5, 117, 0, 0, 4777, 4778, 5, 116, 0, 0, 4778, 4779, 5, 98, 0, 0, 4779, 4780, 5, 111, 0, 0, 4780, 4781, 5, 117, 0, 0, 4781, 4782, 5, 110, 0, 0, 4782, 4783, 5, 100, 0, 0, 4783, 4784, 5, 45, 0, 0, 4784, 4785, 5, 100, 0, 0, 4785, 4786, 5, 101, 0, 0, 4786, 4787, 5, 108, 0, 0, 4787, 4788, 5, 105, 0, 0, 4788, 4789, 5, 118, 0, 0, 4789, 4790, 5, 101, 0, 0, 4790, 4791, 5, 114, 0, 0, 4791, 4792, 5, 121, 0, 0, 4792, 4793, 5, 45, 0, 0, 4793, 4794, 5, 110, 0, 0, 4794, 4795, 5, 111, 0, 0, 4795, 4796, 5, 116, 0, 0, 4796, 4797, 5, 105, 0, 0, 4797, 4798, 5, 102, 0, 0, 4798, 4799, 5, 121, 0, 0, 4799, 588, 1, 0, 0, 0, 4800, 4801, 5, 105, 0, 0, 4801, 4802, 5, 110, 0, 0, 4802, 4803, 5, 116, 0, 0, 4803, 4804, 5, 105, 0, 0, 4804, 4805, 5, 99, 0, 0, 4805, 4806, 5, 115, 0, 0, 4806, 4807, 5, 45, 0, 0, 4807, 4808, 5, 122, 0, 0, 4808, 4809, 5, 105, 0, 0, 4809, 4810, 5, 112, 0, 0, 4810, 4811, 5, 45, 0, 0, 4811, 4812, 5, 117, 0, 0, 4812, 4813, 5, 114, 0, 0, 4813, 4814, 5, 105, 0, 0, 4814, 590, 1, 0, 0, 0, 4815, 4816, 5, 109, 0, 0, 4816, 4817, 5, 97, 0, 0, 4817, 4818, 5, 115, 0, 0, 4818, 4819, 5, 116, 0, 0, 4819, 4820, 5, 101, 0, 0, 4820, 4821, 5, 114, 0, 0, 4821, 4822, 5, 100, 0, 0, 4822, 4823, 5, 97, 0, 0, 4823, 4824, 5, 116, 0, 0, 4824, 4825, 5, 97, 0, 0, 4825, 4826, 5, 67, 0, 0, 4826, 4827, 5, 111, 0, 0, 4827, 4828, 5, 109, 0, 0, 4828, 4829, 5, 112, 0, 0, 4829, 4830, 5, 97, 0, 0, 4830, 4831, 5, 114, 0, 0, 4831, 4832, 5, 105, 0, 0, 4832, 4833, 5, 115, 0, 0, 4833, 4834, 5, 111, 0, 0, 4834, 4835, 5, 110, 0, 0, 4835, 592, 1, 0, 0, 0, 4836, 4837, 5, 122, 0, 0, 4837, 4838, 5, 105, 0, 0, 4838, 4839, 5, 112, 0, 0, 4839, 4840, 5, 66, 0, 0, 4840, 4841, 5, 97, 0, 0, 4841, 4842, 5, 116, 0, 0, 4842, 4843, 5, 99, 0, 0, 4843, 4844, 5, 104, 0, 0, 4844, 594, 1, 0, 0, 0, 4845, 4846, 5, 100, 0, 0, 4846, 4847, 5, 114, 0, 0, 4847, 4848, 5, 117, 0, 0, 4848, 4849, 5, 103, 0, 0, 4849, 4850, 5, 77, 0, 0, 4850, 4851, 5, 97, 0, 0, 4851, 4852, 5, 116, 0, 0, 4852, 4853, 5, 99, 0, 0, 4853, 4854, 5, 104, 0, 0, 4854, 596, 1, 0, 0, 0, 4855, 4856, 5, 100, 0, 0, 4856, 4857, 5, 114, 0, 0, 4857, 4858, 5, 117, 0, 0, 4858, 4859, 5, 103, 0, 0, 4859, 4860, 5, 45, 0, 0, 4860, 4861, 5, 99, 0, 0, 4861, 4862, 5, 111, 0, 0, 4862, 4863, 5, 109, 0, 0, 4863, 4864, 5, 112, 0, 0, 4864, 4865, 5, 97, 0, 0, 4865, 4866, 5, 114, 0, 0, 4866, 4867, 5, 101, 0, 0, 4867, 598, 1, 0, 0, 0, 4868, 4869, 5, 117, 0, 0, 4869, 4870, 5, 114, 0, 0, 4870, 4871, 5, 103, 0, 0, 4871, 4872, 5, 101, 0, 0, 4872, 4873, 5, 110, 0, 0, 4873, 4874, 5, 99, 0, 0, 4874, 4875, 5, 121, 0, 0, 4875, 4876, 5, 84, 0, 0, 4876, 4877, 5, 114, 0, 0, 4877, 4878, 5, 105, 0, 0, 4878, 4879, 5, 97, 0, 0, 4879, 4880, 5, 103, 0, 0, 4880, 4881, 5, 101, 0, 0, 4881, 4882, 5, 77, 0, 0, 4882, 4883, 5, 111, 0, 0, 4883, 4884, 5, 100, 0, 0, 4884, 4885, 5, 101, 0, 0, 4885, 4886, 5, 108, 0, 0, 4886, 600, 1, 0, 0, 0, 4887, 4888, 5, 100, 0, 0, 4888, 4889, 5, 111, 0, 0, 4889, 4890, 5, 110, 0, 0, 4890, 4891, 5, 117, 0, 0, 4891, 4892, 5, 116, 0, 0, 4892, 4893, 5, 45, 0, 0, 4893, 4894, 5, 105, 0, 0, 4894, 4895, 5, 109, 0, 0, 4895, 4896, 5, 112, 0, 0, 4896, 4897, 5, 105, 0, 0, 4897, 4898, 5, 114, 0, 0, 4898, 4899, 5, 97, 0, 0, 4899, 4900, 5, 45, 0, 0, 4900, 4901, 5, 113, 0, 0, 4901, 4902, 5, 97, 0, 0, 4902, 602, 1, 0, 0, 0, 4903, 4904, 5, 116, 0, 0, 4904, 4905, 5, 101, 0, 0, 4905, 4906, 5, 109, 0, 0, 4906, 4907, 5, 112, 0, 0, 4907, 4908, 5, 108, 0, 0, 4908, 4909, 5, 97, 0, 0, 4909, 4910, 5, 116, 0, 0, 4910, 4911, 5, 101, 0, 0, 4911, 4912, 5, 68, 0, 0, 4912, 4913, 5, 101, 0, 0, 4913, 4914, 5, 116, 0, 0, 4914, 4915, 5, 101, 0, 0, 4915, 4916, 5, 99, 0, 0, 4916, 4917, 5, 116, 0, 0, 4917, 4918, 5, 105, 0, 0, 4918, 4919, 5, 111, 0, 0, 4919, 4920, 5, 110, 0, 0, 4920, 604, 1, 0, 0, 0, 4921, 4922, 5, 99, 0, 0, 4922, 4923, 5, 111, 0, 0, 4923, 4924, 5, 112, 0, 0, 4924, 4925, 5, 114, 0, 0, 4925, 4926, 5, 111, 0, 0, 4926, 4927, 5, 45, 0, 0, 4927, 4928, 5, 117, 0, 0, 4928, 4929, 5, 114, 0, 0, 4929, 4930, 5, 108, 0, 0, 4930, 606, 1, 0, 0, 0, 4931, 4932, 5, 105, 0, 0, 4932, 4933, 5, 110, 0, 0, 4933, 4934, 5, 112, 0, 0, 4934, 4935, 5, 117, 0, 0, 4935, 4936, 5, 116, 0, 0, 4936, 4937, 5, 45, 0, 0, 4937, 4938, 5, 116, 0, 0, 4938, 4939, 5, 97, 0, 0, 4939, 4940, 5, 98, 0, 0, 4940, 4941, 5, 108, 0, 0, 4941, 4942, 5, 101, 0, 0, 4942, 608, 1, 0, 0, 0, 4943, 4944, 5, 111, 0, 0, 4944, 4945, 5, 117, 0, 0, 4945, 4946, 5, 112, 0, 0, 4946, 4947, 5, 117, 0, 0, 4947, 4948, 5, 116, 0, 0, 4948, 4949, 5, 45, 0, 0, 4949, 4950, 5, 116, 0, 0, 4950, 4951, 5, 97, 0, 0, 4951, 4952, 5, 98, 0, 0, 4952, 4953, 5, 108, 0, 0, 4953, 4954, 5, 101, 0, 0, 4954, 610, 1, 0, 0, 0, 4955, 4956, 5, 116, 0, 0, 4956, 4957, 5, 114, 0, 0, 4957, 4958, 5, 105, 0, 0, 4958, 4959, 5, 110, 0, 0, 4959, 4960, 5, 105, 0, 0, 4960, 4961, 5, 116, 0, 0, 4961, 4962, 5, 121, 0, 0, 4962, 4963, 5, 45, 0, 0, 4963, 4964, 5, 100, 0, 0, 4964, 4965, 5, 111, 0, 0, 4965, 4966, 5, 99, 0, 0, 4966, 4967, 5, 113, 0, 0, 4967, 4968, 5, 97, 0, 0, 4968, 612, 1, 0, 0, 0, 4969, 4970, 5, 97, 0, 0, 4970, 4971, 5, 112, 0, 0, 4971, 4972, 5, 105, 0, 0, 4972, 4973, 5, 45, 0, 0, 4973, 4974, 5, 101, 0, 0, 4974, 4975, 5, 110, 0, 0, 4975, 4976, 5, 100, 0, 0, 4976, 4977, 5, 112, 0, 0, 4977, 4978, 5, 111, 0, 0, 4978, 4979, 5, 105, 0, 0, 4979, 4980, 5, 110, 0, 0, 4980, 4981, 5, 116, 0, 0, 4981, 614, 1, 0, 0, 0, 4982, 4983, 5, 102, 0, 0, 4983, 4984, 5, 105, 0, 0, 4984, 4985, 5, 108, 0, 0, 4985, 4986, 5, 101, 0, 0, 4986, 4987, 5, 45, 0, 0, 4987, 4988, 5, 98, 0, 0, 4988, 4989, 5, 117, 0, 0, 4989, 4990, 5, 99, 0, 0, 4990, 4991, 5, 107, 0, 0, 4991, 4992, 5, 101, 0, 0, 4992, 4993, 5, 116, 0, 0, 4993, 4994, 5, 105, 0, 0, 4994, 4995, 5, 110, 0, 0, 4995, 4996, 5, 103, 0, 0, 4996, 616, 1, 0, 0, 0, 4997, 4998, 5, 44, 0, 0, 4998, 618, 1, 0, 0, 0, 4999, 5000, 5, 58, 0, 0, 5000, 620, 1, 0, 0, 0, 5001, 5002, 5, 91, 0, 0, 5002, 622, 1, 0, 0, 0, 5003, 5004, 5, 93, 0, 0, 5004, 624, 1, 0, 0, 0, 5005, 5006, 5, 116, 0, 0, 5006, 5007, 5, 114, 0, 0, 5007, 5008, 5, 117, 0, 0, 5008, 5009, 5, 101, 0, 0, 5009, 626, 1, 0, 0, 0, 5010, 5011, 5, 102, 0, 0, 5011, 5012, 5, 97, 0, 0, 5012, 5013, 5, 108, 0, 0, 5013, 5014, 5, 115, 0, 0, 5014, 5015, 5, 101, 0, 0, 5015, 628, 1, 0, 0, 0, 5016, 5017, 5, 110, 0, 0, 5017, 5018, 5, 117, 0, 0, 5018, 5019, 5, 108, 0, 0, 5019, 5020, 5, 108, 0, 0, 5020, 630, 1, 0, 0, 0, 5021, 5022, 7, 0, 0, 0, 5022, 632, 1, 0, 0, 0, 5023, 5024, 7, 1, 0, 0, 5024, 634, 1, 0, 0, 0, 5025, 5026, 3, 631, 315, 0, 5026, 5027, 3, 631, 315, 0, 5027, 636, 1, 0, 0, 0, 5028, 5029, 7, 2, 0, 0, 5029, 638, 1, 0, 0, 0, 5030, 5032, 3, 641, 320, 0, 5031, 5030, 1, 0, 0, 0, 5032, 5033, 1, 0, 0, 0, 5033, 5031, 1, 0, 0, 0, 5033, 5034, 1, 0, 0, 0, 5034, 640, 1, 0, 0, 0, 5035, 5036, 8, 3, 0, 0, 5036, 642, 1, 0, 0, 0, 5037, 5039, 3, 633, 316, 0, 5038, 5037, 1, 0, 0, 0, 5039, 5040, 1, 0, 0, 0, 5040, 5038, 1, 0, 0, 0, 5040, 5041, 1, 0, 0, 0, 5041, 644, 1, 0, 0, 0, 5042, 5044, 5, 34, 0, 0, 5043, 5045, 3, 639, 319, 0, 5044, 5043, 1, 0, 0, 0, 5044, 5045, 1, 0, 0, 0, 5045, 5046, 1, 0, 0, 0, 5046, 5047, 5, 34, 0, 0, 5047, 646, 1, 0, 0, 0, 5048, 5050, 5, 13, 0, 0, 5049, 5048, 1, 0, 0, 0, 5049, 5050, 1, 0, 0, 0, 5050, 5051, 1, 0, 0, 0, 5051, 5054, 5, 10, 0, 0, 5052, 5054, 5, 13, 0, 0, 5053, 5049, 1, 0, 0, 0, 5053, 5052, 1, 0, 0, 0, 5054, 5055, 1, 0, 0, 0, 5055, 5056, 6, 323, 0, 0, 5056, 648, 1, 0, 0, 0, 5057, 5069, 7, 4, 0, 0, 5058, 5059, 5, 61, 0, 0, 5059, 5069, 5, 61, 0, 0, 5060, 5061, 5, 99, 0, 0, 5061, 5062, 5, 111, 0, 0, 5062, 5063, 5, 110, 0, 0, 5063, 5064, 5, 116, 0, 0, 5064, 5065, 5, 97, 0, 0, 5065, 5066, 5, 105, 0, 0, 5066, 5067, 5, 110, 0, 0, 5067, 5069, 5, 115, 0, 0, 5068, 5057, 1, 0, 0, 0, 5068, 5058, 1, 0, 0, 0, 5068, 5060, 1, 0, 0, 0, 5069, 650, 1, 0, 0, 0, 5070, 5072, 7, 5, 0, 0, 5071, 5070, 1, 0, 0, 0, 5072, 5073, 1, 0, 0, 0, 5073, 5071, 1, 0, 0, 0, 5073, 5074, 1, 0, 0, 0, 5074, 5075, 1, 0, 0, 0, 5075, 5076, 6, 325, 0, 0, 5076, 652, 1, 0, 0, 0, 5077, 5078, 5, 47, 0, 0, 5078, 5079, 5, 42, 0, 0, 5079, 5083, 1, 0, 0, 0, 5080, 5082, 9, 0, 0, 0, 5081, 5080, 1, 0, 0, 0, 5082, 5085, 1, 0, 0, 0, 5083, 5084, 1, 0, 0, 0, 5083, 5081, 1, 0, 0, 0, 5084, 5086, 1, 0, 0, 0, 5085, 5083, 1, 0, 0, 0, 5086, 5087, 5, 42, 0, 0, 5087, 5088, 5, 47, 0, 0, 5088, 5089, 1, 0, 0, 0, 5089, 5090, 6, 326, 0, 0, 5090, 654, 1, 0, 0, 0, 5091, 5092, 5, 47, 0, 0, 5092, 5093, 5, 47, 0, 0, 5093, 5097, 1, 0, 0, 0, 5094, 5096, 8, 6, 0, 0, 5095, 5094, 1, 0, 0, 0, 5096, 5099, 1, 0, 0, 0, 5097, 5095, 1, 0, 0, 0, 5097, 5098, 1, 0, 0, 0, 5098, 5100, 1, 0, 0, 0, 5099, 5097, 1, 0, 0, 0, 5100, 5101, 6, 327, 0, 0, 5101, 656, 1, 0, 0, 0, 5102, 5105, 5, 92, 0, 0, 5103, 5106, 7, 7, 0, 0, 5104, 5106, 3, 659, 329, 0, 5105, 5103, 1, 0, 0, 0, 5105, 5104, 1, 0, 0, 0, 5106, 658, 1, 0, 0, 0, 5107, 5108, 5, 117, 0, 0, 5108, 5109, 3, 661, 330, 0, 5109, 5110, 3, 661, 330, 0, 5110, 5111, 3, 661, 330, 0, 5111, 5112, 3, 661, 330, 0, 5112, 660, 1, 0, 0, 0, 5113, 5114, 7, 8, 0, 0, 5114, 662, 1, 0, 0, 0, 5115, 5116, 8, 9, 0, 0, 5116, 664, 1, 0, 0, 0, 5117, 5119, 5, 45, 0, 0, 5118, 5117, 1, 0, 0, 0, 5118, 5119, 1, 0, 0, 0, 5119, 5120, 1, 0, 0, 0, 5120, 5127, 3, 667, 333, 0, 5121, 5123, 5, 46, 0, 0, 5122, 5124, 7, 0, 0, 0, 5123, 5122, 1, 0, 0, 0, 5124, 5125, 1, 0, 0, 0, 5125, 5123, 1, 0, 0, 0, 5125, 5126, 1, 0, 0, 0, 5126, 5128, 1, 0, 0, 0, 5127, 5121, 1, 0, 0, 0, 5127, 5128, 1, 0, 0, 0, 5128, 5130, 1, 0, 0, 0, 5129, 5131, 3, 669, 334, 0, 5130, 5129, 1, 0, 0, 0, 5130, 5131, 1, 0, 0, 0, 5131, 666, 1, 0, 0, 0, 5132, 5141, 5, 48, 0, 0, 5133, 5137, 7, 1, 0, 0, 5134, 5136, 7, 0, 0, 0, 5135, 5134, 1, 0, 0, 0, 5136, 5139, 1, 0, 0, 0, 5137, 5135, 1, 0, 0, 0, 5137, 5138, 1, 0, 0, 0, 5138, 5141, 1, 0, 0, 0, 5139, 5137, 1, 0, 0, 0, 5140, 5132, 1, 0, 0, 0, 5140, 5133, 1, 0, 0, 0, 5141, 668, 1, 0, 0, 0, 5142, 5144, 7, 10, 0, 0, 5143, 5145, 7, 11, 0, 0, 5144, 5143, 1, 0, 0, 0, 5144, 5145, 1, 0, 0, 0, 5145, 5146, 1, 0, 0, 0, 5146, 5147, 3, 667, 333, 0, 5147, 670, 1, 0, 0, 0, 18, 0, 5033, 5040, 5044, 5049, 5053, 5068, 5073, 5083, 5097, 5105, 5118, 5125, 5127, 5130, 5137, 5140, 5144, 1, 0, 1, 0] \ No newline at end of file diff --git a/src/main/antlr/in.handyman.raven/compiler/RavenLexer.java b/src/main/antlr/in.handyman.raven/compiler/RavenLexer.java new file mode 100644 index 00000000..f1fa6eef --- /dev/null +++ b/src/main/antlr/in.handyman.raven/compiler/RavenLexer.java @@ -0,0 +1,3413 @@ +// Generated from java-escape by ANTLR 4.11.1 + +package in.handyman.raven.compiler; + +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) +public class RavenLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, + T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, + T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, + T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45, + T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, T__50=51, T__51=52, + T__52=53, T__53=54, T__54=55, T__55=56, T__56=57, T__57=58, T__58=59, + T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66, + T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73, + T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, T__78=79, T__79=80, + T__80=81, T__81=82, T__82=83, T__83=84, T__84=85, T__85=86, T__86=87, + T__87=88, T__88=89, T__89=90, T__90=91, T__91=92, T__92=93, T__93=94, + T__94=95, T__95=96, T__96=97, T__97=98, T__98=99, T__99=100, T__100=101, + T__101=102, T__102=103, T__103=104, T__104=105, T__105=106, T__106=107, + T__107=108, T__108=109, T__109=110, T__110=111, T__111=112, T__112=113, + T__113=114, T__114=115, T__115=116, T__116=117, T__117=118, T__118=119, + T__119=120, T__120=121, T__121=122, T__122=123, T__123=124, T__124=125, + T__125=126, T__126=127, T__127=128, T__128=129, T__129=130, T__130=131, + T__131=132, T__132=133, T__133=134, T__134=135, T__135=136, T__136=137, + T__137=138, T__138=139, T__139=140, T__140=141, T__141=142, T__142=143, + T__143=144, T__144=145, T__145=146, T__146=147, T__147=148, T__148=149, + T__149=150, T__150=151, T__151=152, T__152=153, T__153=154, T__154=155, + T__155=156, T__156=157, T__157=158, T__158=159, T__159=160, T__160=161, + T__161=162, T__162=163, T__163=164, T__164=165, T__165=166, T__166=167, + T__167=168, T__168=169, T__169=170, T__170=171, T__171=172, T__172=173, + T__173=174, T__174=175, T__175=176, T__176=177, T__177=178, T__178=179, + T__179=180, T__180=181, T__181=182, T__182=183, T__183=184, T__184=185, + T__185=186, T__186=187, T__187=188, T__188=189, T__189=190, T__190=191, + T__191=192, T__192=193, T__193=194, T__194=195, T__195=196, T__196=197, + T__197=198, T__198=199, T__199=200, T__200=201, T__201=202, T__202=203, + T__203=204, T__204=205, T__205=206, T__206=207, T__207=208, T__208=209, + T__209=210, T__210=211, T__211=212, T__212=213, T__213=214, T__214=215, + T__215=216, T__216=217, T__217=218, T__218=219, T__219=220, T__220=221, + T__221=222, T__222=223, T__223=224, T__224=225, T__225=226, T__226=227, + T__227=228, T__228=229, T__229=230, T__230=231, T__231=232, T__232=233, + T__233=234, T__234=235, T__235=236, T__236=237, T__237=238, T__238=239, + T__239=240, T__240=241, T__241=242, T__242=243, T__243=244, T__244=245, + T__245=246, T__246=247, T__247=248, T__248=249, T__249=250, T__250=251, + T__251=252, T__252=253, T__253=254, T__254=255, T__255=256, T__256=257, + T__257=258, T__258=259, T__259=260, T__260=261, T__261=262, T__262=263, + T__263=264, T__264=265, T__265=266, T__266=267, T__267=268, T__268=269, + T__269=270, T__270=271, T__271=272, T__272=273, T__273=274, T__274=275, + T__275=276, T__276=277, T__277=278, T__278=279, T__279=280, T__280=281, + T__281=282, T__282=283, T__283=284, T__284=285, T__285=286, T__286=287, + T__287=288, T__288=289, T__289=290, T__290=291, T__291=292, T__292=293, + T__293=294, T__294=295, T__295=296, T__296=297, T__297=298, T__298=299, + T__299=300, T__300=301, T__301=302, T__302=303, T__303=304, T__304=305, + T__305=306, T__306=307, T__307=308, T__308=309, T__309=310, T__310=311, + T__311=312, T__312=313, T__313=314, T__314=315, NON_ZERO_DIGIT=316, STRING=317, + CRLF=318, Operator=319, WS=320, COMMENT=321, LINE_COMMENT=322, NUMBER=323; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", + "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", + "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24", + "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32", + "T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40", + "T__41", "T__42", "T__43", "T__44", "T__45", "T__46", "T__47", "T__48", + "T__49", "T__50", "T__51", "T__52", "T__53", "T__54", "T__55", "T__56", + "T__57", "T__58", "T__59", "T__60", "T__61", "T__62", "T__63", "T__64", + "T__65", "T__66", "T__67", "T__68", "T__69", "T__70", "T__71", "T__72", + "T__73", "T__74", "T__75", "T__76", "T__77", "T__78", "T__79", "T__80", + "T__81", "T__82", "T__83", "T__84", "T__85", "T__86", "T__87", "T__88", + "T__89", "T__90", "T__91", "T__92", "T__93", "T__94", "T__95", "T__96", + "T__97", "T__98", "T__99", "T__100", "T__101", "T__102", "T__103", "T__104", + "T__105", "T__106", "T__107", "T__108", "T__109", "T__110", "T__111", + "T__112", "T__113", "T__114", "T__115", "T__116", "T__117", "T__118", + "T__119", "T__120", "T__121", "T__122", "T__123", "T__124", "T__125", + "T__126", "T__127", "T__128", "T__129", "T__130", "T__131", "T__132", + "T__133", "T__134", "T__135", "T__136", "T__137", "T__138", "T__139", + "T__140", "T__141", "T__142", "T__143", "T__144", "T__145", "T__146", + "T__147", "T__148", "T__149", "T__150", "T__151", "T__152", "T__153", + "T__154", "T__155", "T__156", "T__157", "T__158", "T__159", "T__160", + "T__161", "T__162", "T__163", "T__164", "T__165", "T__166", "T__167", + "T__168", "T__169", "T__170", "T__171", "T__172", "T__173", "T__174", + "T__175", "T__176", "T__177", "T__178", "T__179", "T__180", "T__181", + "T__182", "T__183", "T__184", "T__185", "T__186", "T__187", "T__188", + "T__189", "T__190", "T__191", "T__192", "T__193", "T__194", "T__195", + "T__196", "T__197", "T__198", "T__199", "T__200", "T__201", "T__202", + "T__203", "T__204", "T__205", "T__206", "T__207", "T__208", "T__209", + "T__210", "T__211", "T__212", "T__213", "T__214", "T__215", "T__216", + "T__217", "T__218", "T__219", "T__220", "T__221", "T__222", "T__223", + "T__224", "T__225", "T__226", "T__227", "T__228", "T__229", "T__230", + "T__231", "T__232", "T__233", "T__234", "T__235", "T__236", "T__237", + "T__238", "T__239", "T__240", "T__241", "T__242", "T__243", "T__244", + "T__245", "T__246", "T__247", "T__248", "T__249", "T__250", "T__251", + "T__252", "T__253", "T__254", "T__255", "T__256", "T__257", "T__258", + "T__259", "T__260", "T__261", "T__262", "T__263", "T__264", "T__265", + "T__266", "T__267", "T__268", "T__269", "T__270", "T__271", "T__272", + "T__273", "T__274", "T__275", "T__276", "T__277", "T__278", "T__279", + "T__280", "T__281", "T__282", "T__283", "T__284", "T__285", "T__286", + "T__287", "T__288", "T__289", "T__290", "T__291", "T__292", "T__293", + "T__294", "T__295", "T__296", "T__297", "T__298", "T__299", "T__300", + "T__301", "T__302", "T__303", "T__304", "T__305", "T__306", "T__307", + "T__308", "T__309", "T__310", "T__311", "T__312", "T__313", "T__314", + "DIGIT", "NON_Z_DIGIT", "TWODIGIT", "LETTER", "StringCharacters", "StringCharacter", + "NON_ZERO_DIGIT", "STRING", "CRLF", "Operator", "WS", "COMMENT", "LINE_COMMENT", + "ESC", "UNICODE", "HEX", "SAFECODEPOINT", "NUMBER", "INT", "EXP" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "'process'", "'{'", "'}'", "'try'", "'finally'", "'catch'", "'multitude'", + "'as'", "'on'", "'using'", "'on-condition'", "'fielding'", "'copydata'", + "'from'", "'to'", "'with-fetch-batch-size'", "'with-write-batch-size'", + "'transform'", "'do-format'", "'loadcsv'", "'pid'", "'with'", "'by-batch'", + "'abort'", "'callprocess'", "'with-target'", "'from-file'", "'for-every'", + "'on-parallel-fielding'", "'forkprocess'", "'watermark'", "'spawn'", + "'dogleg'", "'use-parent-context'", "'start-process'", "'with-file'", + "'assign'", "'source'", "'dropfile'", "'in-path'", "'restapi'", "'url'", + "'method'", "'with headers'", "'with params'", "'with body type'", "'{ part'", + "'type as'", "'exportCsv'", "'executionSource'", "'targetLocation'", + "'importCsvToDB'", "'target'", "'batch'", "'extractTAR'", "'destination'", + "'createTAR'", "'extension'", "'createDirectory'", "'createFile'", "'location'", + "'fileName'", "'deleteFileDirectory'", "'transferFileDirectory'", "'operation'", + "'pcm'", "'on-resource'", "'produce'", "'consume'", "'producer'", "'push-result-at'", + "'execute'", "'consumer'", "'pop-event-from'", "'pop-result-from'", "'limit'", + "'on-standalone'", "'push-json-into-context'", "'with-key'", "'using-value'", + "'map-json-into-context'", "'sharepoint'", "'client-id'", "'tenant-id'", + "'client-secret'", "'org-name'", "'action-type'", "'site-url'", "'source-relative-path'", + "'file-name'", "'target-relative-path'", "'if'", "'log'", "'level'", + "'message'", "'raise exception'", "'checksum'", "'fileSize'", "'download-asset'", + "'from-url'", "'at'", "'paper-itemization'", "'from-target-file'", "'autoRotation'", + "'output-dir'", "'process-id'", "'resource-conn'", "'blankPageRemover'", + "'qrAttribution'", "'uploadAsset'", "'template-id'", "'auth-token'", + "'fileMerger'", "'in'", "'ftps_upload'", "'with-remote-host'", "'port'", + "'user-name'", "'password'", "'session-timeout'", "'source-file-to-upload'", + "'in-destination-to-save'", "'upload-check'", "'ftps_download'", "'source-file-to-download'", + "'download-check'", "'sftp'", "'channel-timeout'", "'ftp'", "'create-zip'", + "'extract-zip'", "'sorGroupDetails'", "'keyfields'", "'searchfields'", + "'groupbyfields'", "'targettable'", "'zeroShotClassifier'", "'with-candidate-labels'", + "'loadExtractedData'", "'file-path'", "'paper-no'", "'intics-reference-id'", + "'batch-id'", "'target-dir'", "'absentKeyFilter'", "'sor-list'", "'sorFilter'", + "'search-value'", "'triage'", "'in-output-dir'", "'with-labelled-classifier-model-path'", + "'with-handwritten-extractor-model-path'", "'with-checkbox-extractor-model-path'", + "'using-synonyms'", "'using-labelled-classifier-labels'", "'using-vilt-coco-labels'", + "'add-vilt-question-config'", "'add-vilt-coco-overide-config'", "'add-vilt-coco-threshold-config'", + "'add-config-vgg-img-width'", "'add-config-vgg-img-height'", "'save-response-as'", + "'docnetAttribution'", "'for-input-file'", "'on-resource-conn'", "'using-attribute-questions'", + "'tqa-filter'", "'using-truth-extractor-url'", "'add-config-max-doctr-inner-join-diff'", + "'add-config-max-question-spacing-diff'", "'using-synonmys'", "'using-input-files'", + "'text-filtering'", "'key-filtering'", "'with-doc-id'", "'for-paper'", + "'group-id'", "'entity-key-filtering'", "'with-mandatory-key-filtering'", + "'check-threshold'", "'threshold-value'", "'jsonToFile'", "'export-into'", + "'docnetResult'", "'using-copro'", "'using-weightage'", "'setContextValue'", + "'context-key'", "'context-value'", "'evalPatientName'", "'patient-name'", + "'word-count-limit'", "'char-count-limit'", "'ner-api'", "'word-count-threshold'", + "'char-count-threshold'", "'ner-api-threshold'", "'evalMemberId'", "'member-id'", + "'special-character'", "'validator-threshold'", "'evalDateOfBirth'", + "'date-of-birth'", "'comparable-year'", "'date-formats'", "'dirPath'", + "'fileDetails'", "'dirpath'", "'groupId'", "'inboundId'", "'wordcount'", + "'word-threshold'", "'input-value'", "'word-limit'", "'charactercount'", + "'char-threshold'", "'char-limit'", "'datevalidator'", "'allowed-date-formats'", + "'comparable-date'", "'alphavalidator'", "'allowed-special-characters'", + "'alphanumericvalidator'", "'numericvalidator'", "'nervalidator'", "'ner-threshold'", + "'urgencyTriage'", "'input-file-path'", "'binary-classifier-model-file-path'", + "'multi-classifier-model-file-path'", "'checkbox-classifier-model-file-path'", + "'synonyms'", "'binary-classifier-labels'", "'multi-classifier-labels'", + "'checkbox-classifier-labels'", "'binary-image-width'", "'binary-image-height'", + "'multi-image-width'", "'multi-image-height'", "'checkbox-image-width'", + "'checkbox-image-height'", "'donut-docqa'", "'scalarAdapter'", "'using-docnut-result'", + "'phrase-match-paper-filter'", "'for-process-id'", "'thread-count'", + "'read-batch-size'", "'write-batch-size'", "'with-input-query'", "'zero-shot-classifier-paper-filter'", + "'assetInfo'", "'get-audit-table'", "'result-table'", "'dataExtraction'", + "'episodeOfCoverage'", "'origin-id'", "'total-pages'", "'output-table'", + "'grouping-item'", "'patient-eoc-count'", "'qr-grouping'", "'eoc-grouping'", + "'pnd-grouping'", "'userRegistration'", "'authToken'", "'eocJsonGenerator'", + "'document-id'", "'eoc-id'", "'zipContentList'", "'zip-file-path'", "'hwDetection'", + "'outputDir'", "'modelPath'", "'intellimatch'", "'match-result'", "'checkbox-vqa'", + "'cad-model-path'", "'cd-model-path'", "'cr-model-path'", "'text-model'", + "'cr-width'", "'cr-height'", "'pixel-classifier-urgency-triage'", "'qr-extraction'", + "'paperItemizer'", "'processId'", "'nerAdapter'", "'coproStart'", "'for'", + "'copro-server-url'", "'export-command'", "'coproStop'", "'outbound-delivery-notify'", + "'intics-zip-uri'", "'masterdataComparison'", "'zipBatch'", "'drugMatch'", + "'drug-compare'", "'urgencyTriageModel'", "'donut-impira-qa'", "'templateDetection'", + "'copro-url'", "'input-table'", "'ouput-table'", "'trinity-docqa'", "'api-endpoint'", + "'file-bucketing'", "','", "':'", "'['", "']'", "'true'", "'false'", + "'null'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, "NON_ZERO_DIGIT", "STRING", "CRLF", "Operator", + "WS", "COMMENT", "LINE_COMMENT", "NUMBER" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public RavenLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "Raven.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + private static final String _serializedATNSegment0 = + "\u0004\u0000\u0143\u141c\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ + "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ + "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ + "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ + "\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+ + "\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+ + "\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+ + "\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+ + "\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a"+ + "\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d"+ + "\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!"+ + "\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002"+ + "&\u0007&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002"+ + "+\u0007+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u0002"+ + "0\u00070\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u0002"+ + "5\u00075\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002"+ + ":\u0007:\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002"+ + "?\u0007?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002"+ + "D\u0007D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002"+ + "I\u0007I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002"+ + "N\u0007N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002"+ + "S\u0007S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002"+ + "X\u0007X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002"+ + "]\u0007]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002"+ + "b\u0007b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002"+ + "g\u0007g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002"+ + "l\u0007l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002"+ + "q\u0007q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002"+ + "v\u0007v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002"+ + "{\u0007{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f"+ + "\u0002\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082"+ + "\u0002\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085"+ + "\u0002\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088"+ + "\u0002\u0089\u0007\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b"+ + "\u0002\u008c\u0007\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e"+ + "\u0002\u008f\u0007\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091"+ + "\u0002\u0092\u0007\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094"+ + "\u0002\u0095\u0007\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097"+ + "\u0002\u0098\u0007\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a"+ + "\u0002\u009b\u0007\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d"+ + "\u0002\u009e\u0007\u009e\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0"+ + "\u0002\u00a1\u0007\u00a1\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3"+ + "\u0002\u00a4\u0007\u00a4\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6"+ + "\u0002\u00a7\u0007\u00a7\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9"+ + "\u0002\u00aa\u0007\u00aa\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac"+ + "\u0002\u00ad\u0007\u00ad\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af"+ + "\u0002\u00b0\u0007\u00b0\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2"+ + "\u0002\u00b3\u0007\u00b3\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5"+ + "\u0002\u00b6\u0007\u00b6\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8"+ + "\u0002\u00b9\u0007\u00b9\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb"+ + "\u0002\u00bc\u0007\u00bc\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be"+ + "\u0002\u00bf\u0007\u00bf\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1"+ + "\u0002\u00c2\u0007\u00c2\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4"+ + "\u0002\u00c5\u0007\u00c5\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7"+ + "\u0002\u00c8\u0007\u00c8\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca"+ + "\u0002\u00cb\u0007\u00cb\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd"+ + "\u0002\u00ce\u0007\u00ce\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0"+ + "\u0002\u00d1\u0007\u00d1\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3"+ + "\u0002\u00d4\u0007\u00d4\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6"+ + "\u0002\u00d7\u0007\u00d7\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9"+ + "\u0002\u00da\u0007\u00da\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc"+ + "\u0002\u00dd\u0007\u00dd\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df"+ + "\u0002\u00e0\u0007\u00e0\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2"+ + "\u0002\u00e3\u0007\u00e3\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5"+ + "\u0002\u00e6\u0007\u00e6\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8"+ + "\u0002\u00e9\u0007\u00e9\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb"+ + "\u0002\u00ec\u0007\u00ec\u0002\u00ed\u0007\u00ed\u0002\u00ee\u0007\u00ee"+ + "\u0002\u00ef\u0007\u00ef\u0002\u00f0\u0007\u00f0\u0002\u00f1\u0007\u00f1"+ + "\u0002\u00f2\u0007\u00f2\u0002\u00f3\u0007\u00f3\u0002\u00f4\u0007\u00f4"+ + "\u0002\u00f5\u0007\u00f5\u0002\u00f6\u0007\u00f6\u0002\u00f7\u0007\u00f7"+ + "\u0002\u00f8\u0007\u00f8\u0002\u00f9\u0007\u00f9\u0002\u00fa\u0007\u00fa"+ + "\u0002\u00fb\u0007\u00fb\u0002\u00fc\u0007\u00fc\u0002\u00fd\u0007\u00fd"+ + "\u0002\u00fe\u0007\u00fe\u0002\u00ff\u0007\u00ff\u0002\u0100\u0007\u0100"+ + "\u0002\u0101\u0007\u0101\u0002\u0102\u0007\u0102\u0002\u0103\u0007\u0103"+ + "\u0002\u0104\u0007\u0104\u0002\u0105\u0007\u0105\u0002\u0106\u0007\u0106"+ + "\u0002\u0107\u0007\u0107\u0002\u0108\u0007\u0108\u0002\u0109\u0007\u0109"+ + "\u0002\u010a\u0007\u010a\u0002\u010b\u0007\u010b\u0002\u010c\u0007\u010c"+ + "\u0002\u010d\u0007\u010d\u0002\u010e\u0007\u010e\u0002\u010f\u0007\u010f"+ + "\u0002\u0110\u0007\u0110\u0002\u0111\u0007\u0111\u0002\u0112\u0007\u0112"+ + "\u0002\u0113\u0007\u0113\u0002\u0114\u0007\u0114\u0002\u0115\u0007\u0115"+ + "\u0002\u0116\u0007\u0116\u0002\u0117\u0007\u0117\u0002\u0118\u0007\u0118"+ + "\u0002\u0119\u0007\u0119\u0002\u011a\u0007\u011a\u0002\u011b\u0007\u011b"+ + "\u0002\u011c\u0007\u011c\u0002\u011d\u0007\u011d\u0002\u011e\u0007\u011e"+ + "\u0002\u011f\u0007\u011f\u0002\u0120\u0007\u0120\u0002\u0121\u0007\u0121"+ + "\u0002\u0122\u0007\u0122\u0002\u0123\u0007\u0123\u0002\u0124\u0007\u0124"+ + "\u0002\u0125\u0007\u0125\u0002\u0126\u0007\u0126\u0002\u0127\u0007\u0127"+ + "\u0002\u0128\u0007\u0128\u0002\u0129\u0007\u0129\u0002\u012a\u0007\u012a"+ + "\u0002\u012b\u0007\u012b\u0002\u012c\u0007\u012c\u0002\u012d\u0007\u012d"+ + "\u0002\u012e\u0007\u012e\u0002\u012f\u0007\u012f\u0002\u0130\u0007\u0130"+ + "\u0002\u0131\u0007\u0131\u0002\u0132\u0007\u0132\u0002\u0133\u0007\u0133"+ + "\u0002\u0134\u0007\u0134\u0002\u0135\u0007\u0135\u0002\u0136\u0007\u0136"+ + "\u0002\u0137\u0007\u0137\u0002\u0138\u0007\u0138\u0002\u0139\u0007\u0139"+ + "\u0002\u013a\u0007\u013a\u0002\u013b\u0007\u013b\u0002\u013c\u0007\u013c"+ + "\u0002\u013d\u0007\u013d\u0002\u013e\u0007\u013e\u0002\u013f\u0007\u013f"+ + "\u0002\u0140\u0007\u0140\u0002\u0141\u0007\u0141\u0002\u0142\u0007\u0142"+ + "\u0002\u0143\u0007\u0143\u0002\u0144\u0007\u0144\u0002\u0145\u0007\u0145"+ + "\u0002\u0146\u0007\u0146\u0002\u0147\u0007\u0147\u0002\u0148\u0007\u0148"+ + "\u0002\u0149\u0007\u0149\u0002\u014a\u0007\u014a\u0002\u014b\u0007\u014b"+ + "\u0002\u014c\u0007\u014c\u0002\u014d\u0007\u014d\u0002\u014e\u0007\u014e"+ + "\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000"+ + "\u0001\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002"+ + "\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005"+ + "\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006"+ + "\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007"+ + "\u0001\u0007\u0001\b\u0001\b\u0001\b\u0001\t\u0001\t\u0001\t\u0001\t\u0001"+ + "\t\u0001\t\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001"+ + "\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\u000b\u0001\u000b\u0001"+ + "\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001"+ + "\u000b\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f"+ + "\u0001\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e"+ + "\u0001\u000e\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+ + "\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+ + "\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+ + "\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u0010"+ + "\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010"+ + "\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010"+ + "\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010"+ + "\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001\u0011"+ + "\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011"+ + "\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012"+ + "\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0013"+ + "\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013"+ + "\u0001\u0013\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015"+ + "\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0016\u0001\u0016"+ + "\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016"+ + "\u0001\u0016\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017"+ + "\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018"+ + "\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018"+ + "\u0001\u0018\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+ + "\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+ + "\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a"+ + "\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001b"+ + "\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b"+ + "\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001c\u0001\u001c\u0001\u001c"+ + "\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c"+ + "\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c"+ + "\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c"+ + "\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d"+ + "\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d"+ + "\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e"+ + "\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001f\u0001\u001f"+ + "\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001 "+ + "\u0001 \u0001 \u0001 \u0001 \u0001!\u0001!\u0001!\u0001!\u0001!\u0001"+ + "!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001"+ + "!\u0001!\u0001!\u0001!\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\""+ + "\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001"+ + "#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001"+ + "$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001"+ + "%\u0001%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001"+ + "&\u0001&\u0001&\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001"+ + "\'\u0001\'\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001"+ + ")\u0001)\u0001)\u0001)\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001"+ + "*\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001"+ + "+\u0001+\u0001+\u0001+\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001"+ + ",\u0001,\u0001,\u0001,\u0001,\u0001,\u0001-\u0001-\u0001-\u0001-\u0001"+ + "-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001"+ + "-\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001/\u0001/\u0001"+ + "/\u0001/\u0001/\u0001/\u0001/\u0001/\u00010\u00010\u00010\u00010\u0001"+ + "0\u00010\u00010\u00010\u00010\u00010\u00011\u00011\u00011\u00011\u0001"+ + "1\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u0001"+ + "1\u00011\u00012\u00012\u00012\u00012\u00012\u00012\u00012\u00012\u0001"+ + "2\u00012\u00012\u00012\u00012\u00012\u00012\u00013\u00013\u00013\u0001"+ + "3\u00013\u00013\u00013\u00013\u00013\u00013\u00013\u00013\u00013\u0001"+ + "3\u00014\u00014\u00014\u00014\u00014\u00014\u00014\u00015\u00015\u0001"+ + "5\u00015\u00015\u00015\u00016\u00016\u00016\u00016\u00016\u00016\u0001"+ + "6\u00016\u00016\u00016\u00016\u00017\u00017\u00017\u00017\u00017\u0001"+ + "7\u00017\u00017\u00017\u00017\u00017\u00017\u00018\u00018\u00018\u0001"+ + "8\u00018\u00018\u00018\u00018\u00018\u00018\u00019\u00019\u00019\u0001"+ + "9\u00019\u00019\u00019\u00019\u00019\u00019\u0001:\u0001:\u0001:\u0001"+ + ":\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001"+ + ":\u0001:\u0001:\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001"+ + ";\u0001;\u0001;\u0001;\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001"+ + "<\u0001<\u0001<\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001"+ + "=\u0001=\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001"+ + ">\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001"+ + ">\u0001>\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001"+ + "?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001"+ + "?\u0001?\u0001?\u0001?\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001"+ + "@\u0001@\u0001@\u0001@\u0001A\u0001A\u0001A\u0001A\u0001B\u0001B\u0001"+ + "B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001"+ + "C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001D\u0001D\u0001"+ + "D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001E\u0001E\u0001E\u0001E\u0001"+ + "E\u0001E\u0001E\u0001E\u0001E\u0001F\u0001F\u0001F\u0001F\u0001F\u0001"+ + "F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001"+ + "G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001H\u0001H\u0001"+ + "H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001I\u0001I\u0001I\u0001"+ + "I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001"+ + "I\u0001I\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001"+ + "J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001K\u0001K\u0001"+ + "K\u0001K\u0001K\u0001K\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001"+ + "L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001M\u0001M\u0001"+ + "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001"+ + "O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001"+ + "O\u0001O\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001"+ + "P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001"+ + "P\u0001P\u0001P\u0001P\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001"+ + "Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001R\u0001R\u0001R\u0001R\u0001R\u0001"+ + "R\u0001R\u0001R\u0001R\u0001R\u0001S\u0001S\u0001S\u0001S\u0001S\u0001"+ + "S\u0001S\u0001S\u0001S\u0001S\u0001T\u0001T\u0001T\u0001T\u0001T\u0001"+ + "T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001U\u0001"+ + "U\u0001U\u0001U\u0001U\u0001U\u0001U\u0001U\u0001U\u0001V\u0001V\u0001"+ + "V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001"+ + "W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001X\u0001"+ + "X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001"+ + "X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001"+ + "Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001[\u0001[\u0001[\u0001\\\u0001\\\u0001\\\u0001\\\u0001]\u0001]\u0001"+ + "]\u0001]\u0001]\u0001]\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001"+ + "^\u0001^\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001"+ + "_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001`\u0001`\u0001"+ + "`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001a\u0001a\u0001a\u0001"+ + "a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001b\u0001b\u0001b\u0001b\u0001"+ + "b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001"+ + "b\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001"+ + "d\u0001d\u0001d\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001"+ + "e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001"+ + "e\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001"+ + "f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001g\u0001g\u0001"+ + "g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ + "g\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001"+ + "h\u0001h\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0001i\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001"+ + "j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001k\u0001k\u0001k\u0001"+ + "k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001"+ + "k\u0001k\u0001k\u0001k\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001"+ + "l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001m\u0001m\u0001"+ + "m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001"+ + "n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001"+ + "n\u0001n\u0001o\u0001o\u0001o\u0001o\u0001o\u0001o\u0001o\u0001o\u0001"+ + "o\u0001o\u0001o\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001"+ + "p\u0001p\u0001p\u0001p\u0001q\u0001q\u0001q\u0001r\u0001r\u0001r\u0001"+ + "r\u0001r\u0001r\u0001r\u0001r\u0001r\u0001r\u0001r\u0001r\u0001s\u0001"+ + "s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001"+ + "s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001t\u0001t\u0001t\u0001t\u0001"+ + "t\u0001u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001"+ + "u\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001"+ + "w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001"+ + "w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001x\u0001x\u0001x\u0001x\u0001"+ + "x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001"+ + "x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001y\u0001y\u0001"+ + "y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001"+ + "y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001"+ + "y\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001"+ + "z\u0001z\u0001z\u0001z\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001"+ + "{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001|\u0001|\u0001"+ + "|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001"+ + "|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001"+ + "|\u0001|\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001"+ + "}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001~\u0001~\u0001~\u0001"+ + "~\u0001~\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001"+ + "\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001"+ + "\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u0080\u0001"+ + "\u0080\u0001\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0081\u0001"+ + "\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001"+ + "\u0081\u0001\u0081\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001"+ + "\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001"+ + "\u0082\u0001\u0082\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001"+ + "\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001"+ + "\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001"+ + "\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001"+ + "\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0085\u0001\u0085\u0001"+ + "\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001"+ + "\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0086\u0001"+ + "\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001"+ + "\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001"+ + "\u0086\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001"+ + "\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001"+ + "\u0087\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001"+ + "\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001"+ + "\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001"+ + "\u0088\u0001\u0088\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001"+ + "\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001"+ + "\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001"+ + "\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001"+ + "\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008c\u0001\u008c\u0001"+ + "\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001"+ + "\u008c\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001"+ + "\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001"+ + "\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001"+ + "\u008d\u0001\u008d\u0001\u008d\u0001\u008e\u0001\u008e\u0001\u008e\u0001"+ + "\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001"+ + "\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001"+ + "\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u0090\u0001"+ + "\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001"+ + "\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001"+ + "\u0090\u0001\u0090\u0001\u0090\u0001\u0091\u0001\u0091\u0001\u0091\u0001"+ + "\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001"+ + "\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001"+ + "\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0093\u0001\u0093\u0001"+ + "\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001"+ + "\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0094\u0001"+ + "\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001"+ + "\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001"+ + "\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001"+ + "\u0095\u0001\u0095\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0098\u0001\u0098\u0001"+ + "\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001"+ + "\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001"+ + "\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001"+ + "\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001"+ + "\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001"+ + "\u0098\u0001\u0098\u0001\u0098\u0001\u0099\u0001\u0099\u0001\u0099\u0001"+ + "\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001"+ + "\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001"+ + "\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001"+ + "\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001"+ + "\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001"+ + "\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001"+ + "\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001"+ + "\u009a\u0001\u009a\u0001\u009a\u0001\u009b\u0001\u009b\u0001\u009b\u0001"+ + "\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001"+ + "\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001"+ + "\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001"+ + "\u009b\u0001\u009b\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001"+ + "\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001"+ + "\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001"+ + "\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001"+ + "\u009c\u0001\u009c\u0001\u009c\u0001\u009d\u0001\u009d\u0001\u009d\u0001"+ + "\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001"+ + "\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001"+ + "\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001"+ + "\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001"+ + "\u009d\u0001\u009d\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001"+ + "\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001"+ + "\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001"+ + "\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001"+ + "\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001"+ + "\u009e\u0001\u009e\u0001\u009e\u0001\u009f\u0001\u009f\u0001\u009f\u0001"+ + "\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001"+ + "\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001"+ + "\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001"+ + "\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u00a0\u0001\u00a0\u0001"+ + "\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001"+ + "\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001"+ + "\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001"+ + "\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001"+ + "\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001"+ + "\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001"+ + "\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a2\u0001"+ + "\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001"+ + "\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001"+ + "\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a3\u0001"+ + "\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001"+ + "\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001"+ + "\u00a3\u0001\u00a3\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001"+ + "\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001"+ + "\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001"+ + "\u00a4\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001"+ + "\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001"+ + "\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001"+ + "\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001"+ + "\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001"+ + "\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001"+ + "\u00a6\u0001\u00a6\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001"+ + "\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001"+ + "\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001"+ + "\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001"+ + "\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a8\u0001\u00a8\u0001"+ + "\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001"+ + "\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001"+ + "\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001"+ + "\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001"+ + "\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001"+ + "\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a9\u0001"+ + "\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001"+ + "\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001"+ + "\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001"+ + "\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001"+ + "\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001"+ + "\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001"+ + "\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001"+ + "\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001"+ + "\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001"+ + "\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001"+ + "\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001"+ + "\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001"+ + "\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001"+ + "\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001"+ + "\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001"+ + "\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001"+ + "\u00ad\u0001\u00ad\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001"+ + "\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001"+ + "\u00ae\u0001\u00ae\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001"+ + "\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001"+ + "\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001"+ + "\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001"+ + "\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001"+ + "\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001"+ + "\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b3\u0001"+ + "\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001"+ + "\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001"+ + "\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001"+ + "\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001"+ + "\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001"+ + "\u00b4\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001"+ + "\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001"+ + "\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001"+ + "\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001"+ + "\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001"+ + "\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001"+ + "\u00b7\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00ba\u0001"+ + "\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001"+ + "\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001"+ + "\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001"+ + "\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001"+ + "\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001"+ + "\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001"+ + "\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bd\u0001"+ + "\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001"+ + "\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001"+ + "\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00be\u0001\u00be\u0001\u00be\u0001"+ + "\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001"+ + "\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00bf\u0001\u00bf\u0001"+ + "\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001"+ + "\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001"+ + "\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001"+ + "\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001"+ + "\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001"+ + "\u00c0\u0001\u00c0\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001"+ + "\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c4\u0001\u00c4\u0001"+ + "\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001"+ + "\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001"+ + "\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c5\u0001\u00c5\u0001"+ + "\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001"+ + "\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c6\u0001"+ + "\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001"+ + "\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001"+ + "\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001"+ + "\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001"+ + "\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00cb\u0001"+ + "\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001"+ + "\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001"+ + "\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001"+ + "\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001"+ + "\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cd\u0001\u00cd\u0001"+ + "\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001"+ + "\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001"+ + "\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001"+ + "\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001"+ + "\u00cf\u0001\u00cf\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001"+ + "\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d1\u0001\u00d1\u0001"+ + "\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001"+ + "\u00d1\u0001\u00d1\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001"+ + "\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001"+ + "\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001"+ + "\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001"+ + "\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001"+ + "\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001"+ + "\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001"+ + "\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001"+ + "\u00d5\u0001\u00d5\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001"+ + "\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001"+ + "\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d7\u0001"+ + "\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001"+ + "\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001"+ + "\u00d7\u0001\u00d7\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001"+ + "\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001"+ + "\u00d8\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001"+ + "\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001"+ + "\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00da\u0001\u00da\u0001\u00da\u0001"+ + "\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001"+ + "\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001"+ + "\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001"+ + "\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001"+ + "\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001"+ + "\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00dc\u0001\u00dc\u0001"+ + "\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001"+ + "\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001"+ + "\u00dc\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001"+ + "\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001"+ + "\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001"+ + "\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001"+ + "\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001"+ + "\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001"+ + "\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001"+ + "\u00df\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001"+ + "\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001"+ + "\u00e0\u0001\u00e0\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001"+ + "\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001"+ + "\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e2\u0001\u00e2\u0001"+ + "\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001"+ + "\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001"+ + "\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001"+ + "\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001"+ + "\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e4\u0001\u00e4\u0001"+ + "\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001"+ + "\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001"+ + "\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001"+ + "\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001"+ + "\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001"+ + "\u00e4\u0001\u00e4\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001"+ + "\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001"+ + "\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001"+ + "\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001"+ + "\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001"+ + "\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e6\u0001"+ + "\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001"+ + "\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001"+ + "\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001"+ + "\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001"+ + "\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001"+ + "\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e7\u0001"+ + "\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001"+ + "\u00e7\u0001\u00e7\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001"+ + "\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001"+ + "\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001"+ + "\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001"+ + "\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001"+ + "\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001"+ + "\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001"+ + "\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001"+ + "\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001"+ + "\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001"+ + "\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001"+ + "\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001"+ + "\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001"+ + "\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001"+ + "\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001"+ + "\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001"+ + "\u00eb\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001"+ + "\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001"+ + "\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001"+ + "\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001"+ + "\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001"+ + "\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001"+ + "\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001"+ + "\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001"+ + "\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001"+ + "\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ef\u0001\u00ef\u0001"+ + "\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001"+ + "\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001"+ + "\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001"+ + "\u00ef\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001"+ + "\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001"+ + "\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001"+ + "\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f1\u0001"+ + "\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001"+ + "\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f2\u0001"+ + "\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001"+ + "\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001"+ + "\u00f2\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001"+ + "\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001"+ + "\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001"+ + "\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001"+ + "\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001"+ + "\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001"+ + "\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001"+ + "\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f5\u0001"+ + "\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001"+ + "\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001"+ + "\u00f5\u0001\u00f5\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001"+ + "\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001"+ + "\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001"+ + "\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001"+ + "\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001"+ + "\u00f7\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001"+ + "\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001"+ + "\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001"+ + "\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001"+ + "\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001"+ + "\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00fa\u0001"+ + "\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001"+ + "\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001"+ + "\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001"+ + "\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001"+ + "\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001"+ + "\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001"+ + "\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001"+ + "\u00fb\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001"+ + "\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001"+ + "\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fd\u0001"+ + "\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001"+ + "\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001"+ + "\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001"+ + "\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001"+ + "\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001"+ + "\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001"+ + "\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001"+ + "\u00ff\u0001\u00ff\u0001\u00ff\u0001\u0100\u0001\u0100\u0001\u0100\u0001"+ + "\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001"+ + "\u0100\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001"+ + "\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001"+ + "\u0101\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001"+ + "\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001"+ + "\u0102\u0001\u0102\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001"+ + "\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001"+ + "\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0104\u0001\u0104\u0001"+ + "\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001"+ + "\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001"+ + "\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0105\u0001\u0105\u0001"+ + "\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001"+ + "\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0106\u0001\u0106\u0001"+ + "\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001"+ + "\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0107\u0001"+ + "\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001"+ + "\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001"+ + "\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001"+ + "\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001"+ + "\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0109\u0001"+ + "\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001"+ + "\u0109\u0001\u0109\u0001\u0109\u0001\u010a\u0001\u010a\u0001\u010a\u0001"+ + "\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001"+ + "\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001"+ + "\u010a\u0001\u010a\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001"+ + "\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001"+ + "\u010b\u0001\u010b\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001"+ + "\u010c\u0001\u010c\u0001\u010c\u0001\u010d\u0001\u010d\u0001\u010d\u0001"+ + "\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001"+ + "\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001"+ + "\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001"+ + "\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001"+ + "\u010e\u0001\u010e\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001"+ + "\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001"+ + "\u010f\u0001\u010f\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001"+ + "\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001"+ + "\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001"+ + "\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0112\u0001\u0112\u0001"+ + "\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001"+ + "\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0113\u0001"+ + "\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001"+ + "\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001"+ + "\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001"+ + "\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001"+ + "\u0114\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001"+ + "\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001"+ + "\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0116\u0001\u0116\u0001"+ + "\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001"+ + "\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001"+ + "\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001"+ + "\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001"+ + "\u0117\u0001\u0117\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001"+ + "\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001"+ + "\u0118\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001"+ + "\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u011a\u0001\u011a\u0001"+ + "\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001"+ + "\u011a\u0001\u011a\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001"+ + "\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001"+ + "\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001"+ + "\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001"+ + "\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001"+ + "\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011c\u0001\u011c\u0001"+ + "\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001"+ + "\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001"+ + "\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001"+ + "\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001"+ + "\u011d\u0001\u011d\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001"+ + "\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001"+ + "\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001"+ + "\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u0120\u0001"+ + "\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001"+ + "\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0121\u0001\u0121\u0001"+ + "\u0121\u0001\u0121\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001"+ + "\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001"+ + "\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001"+ + "\u0122\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001"+ + "\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001"+ + "\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0124\u0001\u0124\u0001"+ + "\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001"+ + "\u0124\u0001\u0124\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001"+ + "\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001"+ + "\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001"+ + "\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001"+ + "\u0125\u0001\u0125\u0001\u0125\u0001\u0126\u0001\u0126\u0001\u0126\u0001"+ + "\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001"+ + "\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001"+ + "\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001"+ + "\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001"+ + "\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001"+ + "\u0127\u0001\u0127\u0001\u0127\u0001\u0128\u0001\u0128\u0001\u0128\u0001"+ + "\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001"+ + "\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001"+ + "\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u012a\u0001\u012a\u0001"+ + "\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001"+ + "\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012b\u0001"+ + "\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001"+ + "\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001"+ + "\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001"+ + "\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001"+ + "\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001"+ + "\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012d\u0001\u012d\u0001"+ + "\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001"+ + "\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001"+ + "\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012e\u0001\u012e\u0001"+ + "\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001"+ + "\u012e\u0001\u012e\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001"+ + "\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001"+ + "\u012f\u0001\u012f\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001"+ + "\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001"+ + "\u0130\u0001\u0130\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001"+ + "\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001"+ + "\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0132\u0001\u0132\u0001"+ + "\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001"+ + "\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0133\u0001"+ + "\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001"+ + "\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001"+ + "\u0133\u0001\u0133\u0001\u0134\u0001\u0134\u0001\u0135\u0001\u0135\u0001"+ + "\u0136\u0001\u0136\u0001\u0137\u0001\u0137\u0001\u0138\u0001\u0138\u0001"+ + "\u0138\u0001\u0138\u0001\u0138\u0001\u0139\u0001\u0139\u0001\u0139\u0001"+ + "\u0139\u0001\u0139\u0001\u0139\u0001\u013a\u0001\u013a\u0001\u013a\u0001"+ + "\u013a\u0001\u013a\u0001\u013b\u0001\u013b\u0001\u013c\u0001\u013c\u0001"+ + "\u013d\u0001\u013d\u0001\u013d\u0001\u013e\u0001\u013e\u0001\u013f\u0004"+ + "\u013f\u13a8\b\u013f\u000b\u013f\f\u013f\u13a9\u0001\u0140\u0001\u0140"+ + "\u0001\u0141\u0004\u0141\u13af\b\u0141\u000b\u0141\f\u0141\u13b0\u0001"+ + "\u0142\u0001\u0142\u0003\u0142\u13b5\b\u0142\u0001\u0142\u0001\u0142\u0001"+ + "\u0143\u0003\u0143\u13ba\b\u0143\u0001\u0143\u0001\u0143\u0003\u0143\u13be"+ + "\b\u0143\u0001\u0143\u0001\u0143\u0001\u0144\u0001\u0144\u0001\u0144\u0001"+ + "\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001"+ + "\u0144\u0001\u0144\u0003\u0144\u13cd\b\u0144\u0001\u0145\u0004\u0145\u13d0"+ + "\b\u0145\u000b\u0145\f\u0145\u13d1\u0001\u0145\u0001\u0145\u0001\u0146"+ + "\u0001\u0146\u0001\u0146\u0001\u0146\u0005\u0146\u13da\b\u0146\n\u0146"+ + "\f\u0146\u13dd\t\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146"+ + "\u0001\u0146\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0005\u0147"+ + "\u13e8\b\u0147\n\u0147\f\u0147\u13eb\t\u0147\u0001\u0147\u0001\u0147\u0001"+ + "\u0148\u0001\u0148\u0001\u0148\u0003\u0148\u13f2\b\u0148\u0001\u0149\u0001"+ + "\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u014a\u0001"+ + "\u014a\u0001\u014b\u0001\u014b\u0001\u014c\u0003\u014c\u13ff\b\u014c\u0001"+ + "\u014c\u0001\u014c\u0001\u014c\u0004\u014c\u1404\b\u014c\u000b\u014c\f"+ + "\u014c\u1405\u0003\u014c\u1408\b\u014c\u0001\u014c\u0003\u014c\u140b\b"+ + "\u014c\u0001\u014d\u0001\u014d\u0001\u014d\u0005\u014d\u1410\b\u014d\n"+ + "\u014d\f\u014d\u1413\t\u014d\u0003\u014d\u1415\b\u014d\u0001\u014e\u0001"+ + "\u014e\u0003\u014e\u1419\b\u014e\u0001\u014e\u0001\u014e\u0001\u13db\u0000"+ + "\u014f\u0001\u0001\u0003\u0002\u0005\u0003\u0007\u0004\t\u0005\u000b\u0006"+ + "\r\u0007\u000f\b\u0011\t\u0013\n\u0015\u000b\u0017\f\u0019\r\u001b\u000e"+ + "\u001d\u000f\u001f\u0010!\u0011#\u0012%\u0013\'\u0014)\u0015+\u0016-\u0017"+ + "/\u00181\u00193\u001a5\u001b7\u001c9\u001d;\u001e=\u001f? A!C\"E#G$I%"+ + "K&M\'O(Q)S*U+W,Y-[.]/_0a1c2e3g4i5k6m7o8q9s:u;w}?\u007f@\u0081A\u0083"+ + "B\u0085C\u0087D\u0089E\u008bF\u008dG\u008fH\u0091I\u0093J\u0095K\u0097"+ + "L\u0099M\u009bN\u009dO\u009fP\u00a1Q\u00a3R\u00a5S\u00a7T\u00a9U\u00ab"+ + "V\u00adW\u00afX\u00b1Y\u00b3Z\u00b5[\u00b7\\\u00b9]\u00bb^\u00bd_\u00bf"+ + "`\u00c1a\u00c3b\u00c5c\u00c7d\u00c9e\u00cbf\u00cdg\u00cfh\u00d1i\u00d3"+ + "j\u00d5k\u00d7l\u00d9m\u00dbn\u00ddo\u00dfp\u00e1q\u00e3r\u00e5s\u00e7"+ + "t\u00e9u\u00ebv\u00edw\u00efx\u00f1y\u00f3z\u00f5{\u00f7|\u00f9}\u00fb"+ + "~\u00fd\u007f\u00ff\u0080\u0101\u0081\u0103\u0082\u0105\u0083\u0107\u0084"+ + "\u0109\u0085\u010b\u0086\u010d\u0087\u010f\u0088\u0111\u0089\u0113\u008a"+ + "\u0115\u008b\u0117\u008c\u0119\u008d\u011b\u008e\u011d\u008f\u011f\u0090"+ + "\u0121\u0091\u0123\u0092\u0125\u0093\u0127\u0094\u0129\u0095\u012b\u0096"+ + "\u012d\u0097\u012f\u0098\u0131\u0099\u0133\u009a\u0135\u009b\u0137\u009c"+ + "\u0139\u009d\u013b\u009e\u013d\u009f\u013f\u00a0\u0141\u00a1\u0143\u00a2"+ + "\u0145\u00a3\u0147\u00a4\u0149\u00a5\u014b\u00a6\u014d\u00a7\u014f\u00a8"+ + "\u0151\u00a9\u0153\u00aa\u0155\u00ab\u0157\u00ac\u0159\u00ad\u015b\u00ae"+ + "\u015d\u00af\u015f\u00b0\u0161\u00b1\u0163\u00b2\u0165\u00b3\u0167\u00b4"+ + "\u0169\u00b5\u016b\u00b6\u016d\u00b7\u016f\u00b8\u0171\u00b9\u0173\u00ba"+ + "\u0175\u00bb\u0177\u00bc\u0179\u00bd\u017b\u00be\u017d\u00bf\u017f\u00c0"+ + "\u0181\u00c1\u0183\u00c2\u0185\u00c3\u0187\u00c4\u0189\u00c5\u018b\u00c6"+ + "\u018d\u00c7\u018f\u00c8\u0191\u00c9\u0193\u00ca\u0195\u00cb\u0197\u00cc"+ + "\u0199\u00cd\u019b\u00ce\u019d\u00cf\u019f\u00d0\u01a1\u00d1\u01a3\u00d2"+ + "\u01a5\u00d3\u01a7\u00d4\u01a9\u00d5\u01ab\u00d6\u01ad\u00d7\u01af\u00d8"+ + "\u01b1\u00d9\u01b3\u00da\u01b5\u00db\u01b7\u00dc\u01b9\u00dd\u01bb\u00de"+ + "\u01bd\u00df\u01bf\u00e0\u01c1\u00e1\u01c3\u00e2\u01c5\u00e3\u01c7\u00e4"+ + "\u01c9\u00e5\u01cb\u00e6\u01cd\u00e7\u01cf\u00e8\u01d1\u00e9\u01d3\u00ea"+ + "\u01d5\u00eb\u01d7\u00ec\u01d9\u00ed\u01db\u00ee\u01dd\u00ef\u01df\u00f0"+ + "\u01e1\u00f1\u01e3\u00f2\u01e5\u00f3\u01e7\u00f4\u01e9\u00f5\u01eb\u00f6"+ + "\u01ed\u00f7\u01ef\u00f8\u01f1\u00f9\u01f3\u00fa\u01f5\u00fb\u01f7\u00fc"+ + "\u01f9\u00fd\u01fb\u00fe\u01fd\u00ff\u01ff\u0100\u0201\u0101\u0203\u0102"+ + "\u0205\u0103\u0207\u0104\u0209\u0105\u020b\u0106\u020d\u0107\u020f\u0108"+ + "\u0211\u0109\u0213\u010a\u0215\u010b\u0217\u010c\u0219\u010d\u021b\u010e"+ + "\u021d\u010f\u021f\u0110\u0221\u0111\u0223\u0112\u0225\u0113\u0227\u0114"+ + "\u0229\u0115\u022b\u0116\u022d\u0117\u022f\u0118\u0231\u0119\u0233\u011a"+ + "\u0235\u011b\u0237\u011c\u0239\u011d\u023b\u011e\u023d\u011f\u023f\u0120"+ + "\u0241\u0121\u0243\u0122\u0245\u0123\u0247\u0124\u0249\u0125\u024b\u0126"+ + "\u024d\u0127\u024f\u0128\u0251\u0129\u0253\u012a\u0255\u012b\u0257\u012c"+ + "\u0259\u012d\u025b\u012e\u025d\u012f\u025f\u0130\u0261\u0131\u0263\u0132"+ + "\u0265\u0133\u0267\u0134\u0269\u0135\u026b\u0136\u026d\u0137\u026f\u0138"+ + "\u0271\u0139\u0273\u013a\u0275\u013b\u0277\u0000\u0279\u0000\u027b\u0000"+ + "\u027d\u0000\u027f\u0000\u0281\u0000\u0283\u013c\u0285\u013d\u0287\u013e"+ + "\u0289\u013f\u028b\u0140\u028d\u0141\u028f\u0142\u0291\u0000\u0293\u0000"+ + "\u0295\u0000\u0297\u0000\u0299\u0143\u029b\u0000\u029d\u0000\u0001\u0000"+ + "\f\u0001\u000009\u0001\u000019\u0002\u0000AZaz\u0002\u0000\"\"\\\\\u0002"+ + "\u0000<<>>\u0003\u0000\t\n\f\r \u0002\u0000\n\n\r\r\b\u0000\"\"//\\\\"+ + "bbffnnrrtt\u0003\u000009AFaf\u0003\u0000\u0000\u001f\"\"\\\\\u0002\u0000"+ + "EEee\u0002\u0000++--\u1421\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0003"+ + "\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000\u0000\u0000\u0000\u0007"+ + "\u0001\u0000\u0000\u0000\u0000\t\u0001\u0000\u0000\u0000\u0000\u000b\u0001"+ + "\u0000\u0000\u0000\u0000\r\u0001\u0000\u0000\u0000\u0000\u000f\u0001\u0000"+ + "\u0000\u0000\u0000\u0011\u0001\u0000\u0000\u0000\u0000\u0013\u0001\u0000"+ + "\u0000\u0000\u0000\u0015\u0001\u0000\u0000\u0000\u0000\u0017\u0001\u0000"+ + "\u0000\u0000\u0000\u0019\u0001\u0000\u0000\u0000\u0000\u001b\u0001\u0000"+ + "\u0000\u0000\u0000\u001d\u0001\u0000\u0000\u0000\u0000\u001f\u0001\u0000"+ + "\u0000\u0000\u0000!\u0001\u0000\u0000\u0000\u0000#\u0001\u0000\u0000\u0000"+ + "\u0000%\u0001\u0000\u0000\u0000\u0000\'\u0001\u0000\u0000\u0000\u0000"+ + ")\u0001\u0000\u0000\u0000\u0000+\u0001\u0000\u0000\u0000\u0000-\u0001"+ + "\u0000\u0000\u0000\u0000/\u0001\u0000\u0000\u0000\u00001\u0001\u0000\u0000"+ + "\u0000\u00003\u0001\u0000\u0000\u0000\u00005\u0001\u0000\u0000\u0000\u0000"+ + "7\u0001\u0000\u0000\u0000\u00009\u0001\u0000\u0000\u0000\u0000;\u0001"+ + "\u0000\u0000\u0000\u0000=\u0001\u0000\u0000\u0000\u0000?\u0001\u0000\u0000"+ + "\u0000\u0000A\u0001\u0000\u0000\u0000\u0000C\u0001\u0000\u0000\u0000\u0000"+ + "E\u0001\u0000\u0000\u0000\u0000G\u0001\u0000\u0000\u0000\u0000I\u0001"+ + "\u0000\u0000\u0000\u0000K\u0001\u0000\u0000\u0000\u0000M\u0001\u0000\u0000"+ + "\u0000\u0000O\u0001\u0000\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000\u0000"+ + "S\u0001\u0000\u0000\u0000\u0000U\u0001\u0000\u0000\u0000\u0000W\u0001"+ + "\u0000\u0000\u0000\u0000Y\u0001\u0000\u0000\u0000\u0000[\u0001\u0000\u0000"+ + "\u0000\u0000]\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000\u0000\u0000"+ + "a\u0001\u0000\u0000\u0000\u0000c\u0001\u0000\u0000\u0000\u0000e\u0001"+ + "\u0000\u0000\u0000\u0000g\u0001\u0000\u0000\u0000\u0000i\u0001\u0000\u0000"+ + "\u0000\u0000k\u0001\u0000\u0000\u0000\u0000m\u0001\u0000\u0000\u0000\u0000"+ + "o\u0001\u0000\u0000\u0000\u0000q\u0001\u0000\u0000\u0000\u0000s\u0001"+ + "\u0000\u0000\u0000\u0000u\u0001\u0000\u0000\u0000\u0000w\u0001\u0000\u0000"+ + "\u0000\u0000y\u0001\u0000\u0000\u0000\u0000{\u0001\u0000\u0000\u0000\u0000"+ + "}\u0001\u0000\u0000\u0000\u0000\u007f\u0001\u0000\u0000\u0000\u0000\u0081"+ + "\u0001\u0000\u0000\u0000\u0000\u0083\u0001\u0000\u0000\u0000\u0000\u0085"+ + "\u0001\u0000\u0000\u0000\u0000\u0087\u0001\u0000\u0000\u0000\u0000\u0089"+ + "\u0001\u0000\u0000\u0000\u0000\u008b\u0001\u0000\u0000\u0000\u0000\u008d"+ + "\u0001\u0000\u0000\u0000\u0000\u008f\u0001\u0000\u0000\u0000\u0000\u0091"+ + "\u0001\u0000\u0000\u0000\u0000\u0093\u0001\u0000\u0000\u0000\u0000\u0095"+ + "\u0001\u0000\u0000\u0000\u0000\u0097\u0001\u0000\u0000\u0000\u0000\u0099"+ + "\u0001\u0000\u0000\u0000\u0000\u009b\u0001\u0000\u0000\u0000\u0000\u009d"+ + "\u0001\u0000\u0000\u0000\u0000\u009f\u0001\u0000\u0000\u0000\u0000\u00a1"+ + "\u0001\u0000\u0000\u0000\u0000\u00a3\u0001\u0000\u0000\u0000\u0000\u00a5"+ + "\u0001\u0000\u0000\u0000\u0000\u00a7\u0001\u0000\u0000\u0000\u0000\u00a9"+ + "\u0001\u0000\u0000\u0000\u0000\u00ab\u0001\u0000\u0000\u0000\u0000\u00ad"+ + "\u0001\u0000\u0000\u0000\u0000\u00af\u0001\u0000\u0000\u0000\u0000\u00b1"+ + "\u0001\u0000\u0000\u0000\u0000\u00b3\u0001\u0000\u0000\u0000\u0000\u00b5"+ + "\u0001\u0000\u0000\u0000\u0000\u00b7\u0001\u0000\u0000\u0000\u0000\u00b9"+ + "\u0001\u0000\u0000\u0000\u0000\u00bb\u0001\u0000\u0000\u0000\u0000\u00bd"+ + "\u0001\u0000\u0000\u0000\u0000\u00bf\u0001\u0000\u0000\u0000\u0000\u00c1"+ + "\u0001\u0000\u0000\u0000\u0000\u00c3\u0001\u0000\u0000\u0000\u0000\u00c5"+ + "\u0001\u0000\u0000\u0000\u0000\u00c7\u0001\u0000\u0000\u0000\u0000\u00c9"+ + "\u0001\u0000\u0000\u0000\u0000\u00cb\u0001\u0000\u0000\u0000\u0000\u00cd"+ + "\u0001\u0000\u0000\u0000\u0000\u00cf\u0001\u0000\u0000\u0000\u0000\u00d1"+ + "\u0001\u0000\u0000\u0000\u0000\u00d3\u0001\u0000\u0000\u0000\u0000\u00d5"+ + "\u0001\u0000\u0000\u0000\u0000\u00d7\u0001\u0000\u0000\u0000\u0000\u00d9"+ + "\u0001\u0000\u0000\u0000\u0000\u00db\u0001\u0000\u0000\u0000\u0000\u00dd"+ + "\u0001\u0000\u0000\u0000\u0000\u00df\u0001\u0000\u0000\u0000\u0000\u00e1"+ + "\u0001\u0000\u0000\u0000\u0000\u00e3\u0001\u0000\u0000\u0000\u0000\u00e5"+ + "\u0001\u0000\u0000\u0000\u0000\u00e7\u0001\u0000\u0000\u0000\u0000\u00e9"+ + "\u0001\u0000\u0000\u0000\u0000\u00eb\u0001\u0000\u0000\u0000\u0000\u00ed"+ + "\u0001\u0000\u0000\u0000\u0000\u00ef\u0001\u0000\u0000\u0000\u0000\u00f1"+ + "\u0001\u0000\u0000\u0000\u0000\u00f3\u0001\u0000\u0000\u0000\u0000\u00f5"+ + "\u0001\u0000\u0000\u0000\u0000\u00f7\u0001\u0000\u0000\u0000\u0000\u00f9"+ + "\u0001\u0000\u0000\u0000\u0000\u00fb\u0001\u0000\u0000\u0000\u0000\u00fd"+ + "\u0001\u0000\u0000\u0000\u0000\u00ff\u0001\u0000\u0000\u0000\u0000\u0101"+ + "\u0001\u0000\u0000\u0000\u0000\u0103\u0001\u0000\u0000\u0000\u0000\u0105"+ + "\u0001\u0000\u0000\u0000\u0000\u0107\u0001\u0000\u0000\u0000\u0000\u0109"+ + "\u0001\u0000\u0000\u0000\u0000\u010b\u0001\u0000\u0000\u0000\u0000\u010d"+ + "\u0001\u0000\u0000\u0000\u0000\u010f\u0001\u0000\u0000\u0000\u0000\u0111"+ + "\u0001\u0000\u0000\u0000\u0000\u0113\u0001\u0000\u0000\u0000\u0000\u0115"+ + "\u0001\u0000\u0000\u0000\u0000\u0117\u0001\u0000\u0000\u0000\u0000\u0119"+ + "\u0001\u0000\u0000\u0000\u0000\u011b\u0001\u0000\u0000\u0000\u0000\u011d"+ + "\u0001\u0000\u0000\u0000\u0000\u011f\u0001\u0000\u0000\u0000\u0000\u0121"+ + "\u0001\u0000\u0000\u0000\u0000\u0123\u0001\u0000\u0000\u0000\u0000\u0125"+ + "\u0001\u0000\u0000\u0000\u0000\u0127\u0001\u0000\u0000\u0000\u0000\u0129"+ + "\u0001\u0000\u0000\u0000\u0000\u012b\u0001\u0000\u0000\u0000\u0000\u012d"+ + "\u0001\u0000\u0000\u0000\u0000\u012f\u0001\u0000\u0000\u0000\u0000\u0131"+ + "\u0001\u0000\u0000\u0000\u0000\u0133\u0001\u0000\u0000\u0000\u0000\u0135"+ + "\u0001\u0000\u0000\u0000\u0000\u0137\u0001\u0000\u0000\u0000\u0000\u0139"+ + "\u0001\u0000\u0000\u0000\u0000\u013b\u0001\u0000\u0000\u0000\u0000\u013d"+ + "\u0001\u0000\u0000\u0000\u0000\u013f\u0001\u0000\u0000\u0000\u0000\u0141"+ + "\u0001\u0000\u0000\u0000\u0000\u0143\u0001\u0000\u0000\u0000\u0000\u0145"+ + "\u0001\u0000\u0000\u0000\u0000\u0147\u0001\u0000\u0000\u0000\u0000\u0149"+ + "\u0001\u0000\u0000\u0000\u0000\u014b\u0001\u0000\u0000\u0000\u0000\u014d"+ + "\u0001\u0000\u0000\u0000\u0000\u014f\u0001\u0000\u0000\u0000\u0000\u0151"+ + "\u0001\u0000\u0000\u0000\u0000\u0153\u0001\u0000\u0000\u0000\u0000\u0155"+ + "\u0001\u0000\u0000\u0000\u0000\u0157\u0001\u0000\u0000\u0000\u0000\u0159"+ + "\u0001\u0000\u0000\u0000\u0000\u015b\u0001\u0000\u0000\u0000\u0000\u015d"+ + "\u0001\u0000\u0000\u0000\u0000\u015f\u0001\u0000\u0000\u0000\u0000\u0161"+ + "\u0001\u0000\u0000\u0000\u0000\u0163\u0001\u0000\u0000\u0000\u0000\u0165"+ + "\u0001\u0000\u0000\u0000\u0000\u0167\u0001\u0000\u0000\u0000\u0000\u0169"+ + "\u0001\u0000\u0000\u0000\u0000\u016b\u0001\u0000\u0000\u0000\u0000\u016d"+ + "\u0001\u0000\u0000\u0000\u0000\u016f\u0001\u0000\u0000\u0000\u0000\u0171"+ + "\u0001\u0000\u0000\u0000\u0000\u0173\u0001\u0000\u0000\u0000\u0000\u0175"+ + "\u0001\u0000\u0000\u0000\u0000\u0177\u0001\u0000\u0000\u0000\u0000\u0179"+ + "\u0001\u0000\u0000\u0000\u0000\u017b\u0001\u0000\u0000\u0000\u0000\u017d"+ + "\u0001\u0000\u0000\u0000\u0000\u017f\u0001\u0000\u0000\u0000\u0000\u0181"+ + "\u0001\u0000\u0000\u0000\u0000\u0183\u0001\u0000\u0000\u0000\u0000\u0185"+ + "\u0001\u0000\u0000\u0000\u0000\u0187\u0001\u0000\u0000\u0000\u0000\u0189"+ + "\u0001\u0000\u0000\u0000\u0000\u018b\u0001\u0000\u0000\u0000\u0000\u018d"+ + "\u0001\u0000\u0000\u0000\u0000\u018f\u0001\u0000\u0000\u0000\u0000\u0191"+ + "\u0001\u0000\u0000\u0000\u0000\u0193\u0001\u0000\u0000\u0000\u0000\u0195"+ + "\u0001\u0000\u0000\u0000\u0000\u0197\u0001\u0000\u0000\u0000\u0000\u0199"+ + "\u0001\u0000\u0000\u0000\u0000\u019b\u0001\u0000\u0000\u0000\u0000\u019d"+ + "\u0001\u0000\u0000\u0000\u0000\u019f\u0001\u0000\u0000\u0000\u0000\u01a1"+ + "\u0001\u0000\u0000\u0000\u0000\u01a3\u0001\u0000\u0000\u0000\u0000\u01a5"+ + "\u0001\u0000\u0000\u0000\u0000\u01a7\u0001\u0000\u0000\u0000\u0000\u01a9"+ + "\u0001\u0000\u0000\u0000\u0000\u01ab\u0001\u0000\u0000\u0000\u0000\u01ad"+ + "\u0001\u0000\u0000\u0000\u0000\u01af\u0001\u0000\u0000\u0000\u0000\u01b1"+ + "\u0001\u0000\u0000\u0000\u0000\u01b3\u0001\u0000\u0000\u0000\u0000\u01b5"+ + "\u0001\u0000\u0000\u0000\u0000\u01b7\u0001\u0000\u0000\u0000\u0000\u01b9"+ + "\u0001\u0000\u0000\u0000\u0000\u01bb\u0001\u0000\u0000\u0000\u0000\u01bd"+ + "\u0001\u0000\u0000\u0000\u0000\u01bf\u0001\u0000\u0000\u0000\u0000\u01c1"+ + "\u0001\u0000\u0000\u0000\u0000\u01c3\u0001\u0000\u0000\u0000\u0000\u01c5"+ + "\u0001\u0000\u0000\u0000\u0000\u01c7\u0001\u0000\u0000\u0000\u0000\u01c9"+ + "\u0001\u0000\u0000\u0000\u0000\u01cb\u0001\u0000\u0000\u0000\u0000\u01cd"+ + "\u0001\u0000\u0000\u0000\u0000\u01cf\u0001\u0000\u0000\u0000\u0000\u01d1"+ + "\u0001\u0000\u0000\u0000\u0000\u01d3\u0001\u0000\u0000\u0000\u0000\u01d5"+ + "\u0001\u0000\u0000\u0000\u0000\u01d7\u0001\u0000\u0000\u0000\u0000\u01d9"+ + "\u0001\u0000\u0000\u0000\u0000\u01db\u0001\u0000\u0000\u0000\u0000\u01dd"+ + "\u0001\u0000\u0000\u0000\u0000\u01df\u0001\u0000\u0000\u0000\u0000\u01e1"+ + "\u0001\u0000\u0000\u0000\u0000\u01e3\u0001\u0000\u0000\u0000\u0000\u01e5"+ + "\u0001\u0000\u0000\u0000\u0000\u01e7\u0001\u0000\u0000\u0000\u0000\u01e9"+ + "\u0001\u0000\u0000\u0000\u0000\u01eb\u0001\u0000\u0000\u0000\u0000\u01ed"+ + "\u0001\u0000\u0000\u0000\u0000\u01ef\u0001\u0000\u0000\u0000\u0000\u01f1"+ + "\u0001\u0000\u0000\u0000\u0000\u01f3\u0001\u0000\u0000\u0000\u0000\u01f5"+ + "\u0001\u0000\u0000\u0000\u0000\u01f7\u0001\u0000\u0000\u0000\u0000\u01f9"+ + "\u0001\u0000\u0000\u0000\u0000\u01fb\u0001\u0000\u0000\u0000\u0000\u01fd"+ + "\u0001\u0000\u0000\u0000\u0000\u01ff\u0001\u0000\u0000\u0000\u0000\u0201"+ + "\u0001\u0000\u0000\u0000\u0000\u0203\u0001\u0000\u0000\u0000\u0000\u0205"+ + "\u0001\u0000\u0000\u0000\u0000\u0207\u0001\u0000\u0000\u0000\u0000\u0209"+ + "\u0001\u0000\u0000\u0000\u0000\u020b\u0001\u0000\u0000\u0000\u0000\u020d"+ + "\u0001\u0000\u0000\u0000\u0000\u020f\u0001\u0000\u0000\u0000\u0000\u0211"+ + "\u0001\u0000\u0000\u0000\u0000\u0213\u0001\u0000\u0000\u0000\u0000\u0215"+ + "\u0001\u0000\u0000\u0000\u0000\u0217\u0001\u0000\u0000\u0000\u0000\u0219"+ + "\u0001\u0000\u0000\u0000\u0000\u021b\u0001\u0000\u0000\u0000\u0000\u021d"+ + "\u0001\u0000\u0000\u0000\u0000\u021f\u0001\u0000\u0000\u0000\u0000\u0221"+ + "\u0001\u0000\u0000\u0000\u0000\u0223\u0001\u0000\u0000\u0000\u0000\u0225"+ + "\u0001\u0000\u0000\u0000\u0000\u0227\u0001\u0000\u0000\u0000\u0000\u0229"+ + "\u0001\u0000\u0000\u0000\u0000\u022b\u0001\u0000\u0000\u0000\u0000\u022d"+ + "\u0001\u0000\u0000\u0000\u0000\u022f\u0001\u0000\u0000\u0000\u0000\u0231"+ + "\u0001\u0000\u0000\u0000\u0000\u0233\u0001\u0000\u0000\u0000\u0000\u0235"+ + "\u0001\u0000\u0000\u0000\u0000\u0237\u0001\u0000\u0000\u0000\u0000\u0239"+ + "\u0001\u0000\u0000\u0000\u0000\u023b\u0001\u0000\u0000\u0000\u0000\u023d"+ + "\u0001\u0000\u0000\u0000\u0000\u023f\u0001\u0000\u0000\u0000\u0000\u0241"+ + "\u0001\u0000\u0000\u0000\u0000\u0243\u0001\u0000\u0000\u0000\u0000\u0245"+ + "\u0001\u0000\u0000\u0000\u0000\u0247\u0001\u0000\u0000\u0000\u0000\u0249"+ + "\u0001\u0000\u0000\u0000\u0000\u024b\u0001\u0000\u0000\u0000\u0000\u024d"+ + "\u0001\u0000\u0000\u0000\u0000\u024f\u0001\u0000\u0000\u0000\u0000\u0251"+ + "\u0001\u0000\u0000\u0000\u0000\u0253\u0001\u0000\u0000\u0000\u0000\u0255"+ + "\u0001\u0000\u0000\u0000\u0000\u0257\u0001\u0000\u0000\u0000\u0000\u0259"+ + "\u0001\u0000\u0000\u0000\u0000\u025b\u0001\u0000\u0000\u0000\u0000\u025d"+ + "\u0001\u0000\u0000\u0000\u0000\u025f\u0001\u0000\u0000\u0000\u0000\u0261"+ + "\u0001\u0000\u0000\u0000\u0000\u0263\u0001\u0000\u0000\u0000\u0000\u0265"+ + "\u0001\u0000\u0000\u0000\u0000\u0267\u0001\u0000\u0000\u0000\u0000\u0269"+ + "\u0001\u0000\u0000\u0000\u0000\u026b\u0001\u0000\u0000\u0000\u0000\u026d"+ + "\u0001\u0000\u0000\u0000\u0000\u026f\u0001\u0000\u0000\u0000\u0000\u0271"+ + "\u0001\u0000\u0000\u0000\u0000\u0273\u0001\u0000\u0000\u0000\u0000\u0275"+ + "\u0001\u0000\u0000\u0000\u0000\u0283\u0001\u0000\u0000\u0000\u0000\u0285"+ + "\u0001\u0000\u0000\u0000\u0000\u0287\u0001\u0000\u0000\u0000\u0000\u0289"+ + "\u0001\u0000\u0000\u0000\u0000\u028b\u0001\u0000\u0000\u0000\u0000\u028d"+ + "\u0001\u0000\u0000\u0000\u0000\u028f\u0001\u0000\u0000\u0000\u0000\u0299"+ + "\u0001\u0000\u0000\u0000\u0001\u029f\u0001\u0000\u0000\u0000\u0003\u02a7"+ + "\u0001\u0000\u0000\u0000\u0005\u02a9\u0001\u0000\u0000\u0000\u0007\u02ab"+ + "\u0001\u0000\u0000\u0000\t\u02af\u0001\u0000\u0000\u0000\u000b\u02b7\u0001"+ + "\u0000\u0000\u0000\r\u02bd\u0001\u0000\u0000\u0000\u000f\u02c7\u0001\u0000"+ + "\u0000\u0000\u0011\u02ca\u0001\u0000\u0000\u0000\u0013\u02cd\u0001\u0000"+ + "\u0000\u0000\u0015\u02d3\u0001\u0000\u0000\u0000\u0017\u02e0\u0001\u0000"+ + "\u0000\u0000\u0019\u02e9\u0001\u0000\u0000\u0000\u001b\u02f2\u0001\u0000"+ + "\u0000\u0000\u001d\u02f7\u0001\u0000\u0000\u0000\u001f\u02fa\u0001\u0000"+ + "\u0000\u0000!\u0310\u0001\u0000\u0000\u0000#\u0326\u0001\u0000\u0000\u0000"+ + "%\u0330\u0001\u0000\u0000\u0000\'\u033a\u0001\u0000\u0000\u0000)\u0342"+ + "\u0001\u0000\u0000\u0000+\u0346\u0001\u0000\u0000\u0000-\u034b\u0001\u0000"+ + "\u0000\u0000/\u0354\u0001\u0000\u0000\u00001\u035a\u0001\u0000\u0000\u0000"+ + "3\u0366\u0001\u0000\u0000\u00005\u0372\u0001\u0000\u0000\u00007\u037c"+ + "\u0001\u0000\u0000\u00009\u0386\u0001\u0000\u0000\u0000;\u039b\u0001\u0000"+ + "\u0000\u0000=\u03a7\u0001\u0000\u0000\u0000?\u03b1\u0001\u0000\u0000\u0000"+ + "A\u03b7\u0001\u0000\u0000\u0000C\u03be\u0001\u0000\u0000\u0000E\u03d1"+ + "\u0001\u0000\u0000\u0000G\u03df\u0001\u0000\u0000\u0000I\u03e9\u0001\u0000"+ + "\u0000\u0000K\u03f0\u0001\u0000\u0000\u0000M\u03f7\u0001\u0000\u0000\u0000"+ + "O\u0400\u0001\u0000\u0000\u0000Q\u0408\u0001\u0000\u0000\u0000S\u0410"+ + "\u0001\u0000\u0000\u0000U\u0414\u0001\u0000\u0000\u0000W\u041b\u0001\u0000"+ + "\u0000\u0000Y\u0428\u0001\u0000\u0000\u0000[\u0434\u0001\u0000\u0000\u0000"+ + "]\u0443\u0001\u0000\u0000\u0000_\u044a\u0001\u0000\u0000\u0000a\u0452"+ + "\u0001\u0000\u0000\u0000c\u045c\u0001\u0000\u0000\u0000e\u046c\u0001\u0000"+ + "\u0000\u0000g\u047b\u0001\u0000\u0000\u0000i\u0489\u0001\u0000\u0000\u0000"+ + "k\u0490\u0001\u0000\u0000\u0000m\u0496\u0001\u0000\u0000\u0000o\u04a1"+ + "\u0001\u0000\u0000\u0000q\u04ad\u0001\u0000\u0000\u0000s\u04b7\u0001\u0000"+ + "\u0000\u0000u\u04c1\u0001\u0000\u0000\u0000w\u04d1\u0001\u0000\u0000\u0000"+ + "y\u04dc\u0001\u0000\u0000\u0000{\u04e5\u0001\u0000\u0000\u0000}\u04ee"+ + "\u0001\u0000\u0000\u0000\u007f\u0502\u0001\u0000\u0000\u0000\u0081\u0518"+ + "\u0001\u0000\u0000\u0000\u0083\u0522\u0001\u0000\u0000\u0000\u0085\u0526"+ + "\u0001\u0000\u0000\u0000\u0087\u0532\u0001\u0000\u0000\u0000\u0089\u053a"+ + "\u0001\u0000\u0000\u0000\u008b\u0542\u0001\u0000\u0000\u0000\u008d\u054b"+ + "\u0001\u0000\u0000\u0000\u008f\u055a\u0001\u0000\u0000\u0000\u0091\u0562"+ + "\u0001\u0000\u0000\u0000\u0093\u056b\u0001\u0000\u0000\u0000\u0095\u057a"+ + "\u0001\u0000\u0000\u0000\u0097\u058a\u0001\u0000\u0000\u0000\u0099\u0590"+ + "\u0001\u0000\u0000\u0000\u009b\u059e\u0001\u0000\u0000\u0000\u009d\u05b5"+ + "\u0001\u0000\u0000\u0000\u009f\u05be\u0001\u0000\u0000\u0000\u00a1\u05ca"+ + "\u0001\u0000\u0000\u0000\u00a3\u05e0\u0001\u0000\u0000\u0000\u00a5\u05eb"+ + "\u0001\u0000\u0000\u0000\u00a7\u05f5\u0001\u0000\u0000\u0000\u00a9\u05ff"+ + "\u0001\u0000\u0000\u0000\u00ab\u060d\u0001\u0000\u0000\u0000\u00ad\u0616"+ + "\u0001\u0000\u0000\u0000\u00af\u0622\u0001\u0000\u0000\u0000\u00b1\u062b"+ + "\u0001\u0000\u0000\u0000\u00b3\u0640\u0001\u0000\u0000\u0000\u00b5\u064a"+ + "\u0001\u0000\u0000\u0000\u00b7\u065f\u0001\u0000\u0000\u0000\u00b9\u0662"+ + "\u0001\u0000\u0000\u0000\u00bb\u0666\u0001\u0000\u0000\u0000\u00bd\u066c"+ + "\u0001\u0000\u0000\u0000\u00bf\u0674\u0001\u0000\u0000\u0000\u00c1\u0684"+ + "\u0001\u0000\u0000\u0000\u00c3\u068d\u0001\u0000\u0000\u0000\u00c5\u0696"+ + "\u0001\u0000\u0000\u0000\u00c7\u06a5\u0001\u0000\u0000\u0000\u00c9\u06ae"+ + "\u0001\u0000\u0000\u0000\u00cb\u06b1\u0001\u0000\u0000\u0000\u00cd\u06c3"+ + "\u0001\u0000\u0000\u0000\u00cf\u06d4\u0001\u0000\u0000\u0000\u00d1\u06e1"+ + "\u0001\u0000\u0000\u0000\u00d3\u06ec\u0001\u0000\u0000\u0000\u00d5\u06f7"+ + "\u0001\u0000\u0000\u0000\u00d7\u0705\u0001\u0000\u0000\u0000\u00d9\u0716"+ + "\u0001\u0000\u0000\u0000\u00db\u0724\u0001\u0000\u0000\u0000\u00dd\u0730"+ + "\u0001\u0000\u0000\u0000\u00df\u073c\u0001\u0000\u0000\u0000\u00e1\u0747"+ + "\u0001\u0000\u0000\u0000\u00e3\u0752\u0001\u0000\u0000\u0000\u00e5\u0755"+ + "\u0001\u0000\u0000\u0000\u00e7\u0761\u0001\u0000\u0000\u0000\u00e9\u0772"+ + "\u0001\u0000\u0000\u0000\u00eb\u0777\u0001\u0000\u0000\u0000\u00ed\u0781"+ + "\u0001\u0000\u0000\u0000\u00ef\u078a\u0001\u0000\u0000\u0000\u00f1\u079a"+ + "\u0001\u0000\u0000\u0000\u00f3\u07b0\u0001\u0000\u0000\u0000\u00f5\u07c7"+ + "\u0001\u0000\u0000\u0000\u00f7\u07d4\u0001\u0000\u0000\u0000\u00f9\u07e2"+ + "\u0001\u0000\u0000\u0000\u00fb\u07fa\u0001\u0000\u0000\u0000\u00fd\u0809"+ + "\u0001\u0000\u0000\u0000\u00ff\u080e\u0001\u0000\u0000\u0000\u0101\u081e"+ + "\u0001\u0000\u0000\u0000\u0103\u0822\u0001\u0000\u0000\u0000\u0105\u082d"+ + "\u0001\u0000\u0000\u0000\u0107\u0839\u0001\u0000\u0000\u0000\u0109\u0849"+ + "\u0001\u0000\u0000\u0000\u010b\u0853\u0001\u0000\u0000\u0000\u010d\u0860"+ + "\u0001\u0000\u0000\u0000\u010f\u086e\u0001\u0000\u0000\u0000\u0111\u087a"+ + "\u0001\u0000\u0000\u0000\u0113\u088d\u0001\u0000\u0000\u0000\u0115\u08a3"+ + "\u0001\u0000\u0000\u0000\u0117\u08b5\u0001\u0000\u0000\u0000\u0119\u08bf"+ + "\u0001\u0000\u0000\u0000\u011b\u08c8\u0001\u0000\u0000\u0000\u011d\u08dc"+ + "\u0001\u0000\u0000\u0000\u011f\u08e5\u0001\u0000\u0000\u0000\u0121\u08f0"+ + "\u0001\u0000\u0000\u0000\u0123\u0900\u0001\u0000\u0000\u0000\u0125\u0909"+ + "\u0001\u0000\u0000\u0000\u0127\u0913\u0001\u0000\u0000\u0000\u0129\u0920"+ + "\u0001\u0000\u0000\u0000\u012b\u0927\u0001\u0000\u0000\u0000\u012d\u0935"+ + "\u0001\u0000\u0000\u0000\u012f\u0959\u0001\u0000\u0000\u0000\u0131\u097f"+ + "\u0001\u0000\u0000\u0000\u0133\u09a2\u0001\u0000\u0000\u0000\u0135\u09b1"+ + "\u0001\u0000\u0000\u0000\u0137\u09d2\u0001\u0000\u0000\u0000\u0139\u09e9"+ + "\u0001\u0000\u0000\u0000\u013b\u0a02\u0001\u0000\u0000\u0000\u013d\u0a1f"+ + "\u0001\u0000\u0000\u0000\u013f\u0a3e\u0001\u0000\u0000\u0000\u0141\u0a57"+ + "\u0001\u0000\u0000\u0000\u0143\u0a71\u0001\u0000\u0000\u0000\u0145\u0a82"+ + "\u0001\u0000\u0000\u0000\u0147\u0a94\u0001\u0000\u0000\u0000\u0149\u0aa3"+ + "\u0001\u0000\u0000\u0000\u014b\u0ab4\u0001\u0000\u0000\u0000\u014d\u0ace"+ + "\u0001\u0000\u0000\u0000\u014f\u0ad9\u0001\u0000\u0000\u0000\u0151\u0af3"+ + "\u0001\u0000\u0000\u0000\u0153\u0b18\u0001\u0000\u0000\u0000\u0155\u0b3d"+ + "\u0001\u0000\u0000\u0000\u0157\u0b4c\u0001\u0000\u0000\u0000\u0159\u0b5e"+ + "\u0001\u0000\u0000\u0000\u015b\u0b6d\u0001\u0000\u0000\u0000\u015d\u0b7b"+ + "\u0001\u0000\u0000\u0000\u015f\u0b87\u0001\u0000\u0000\u0000\u0161\u0b91"+ + "\u0001\u0000\u0000\u0000\u0163\u0b9a\u0001\u0000\u0000\u0000\u0165\u0baf"+ + "\u0001\u0000\u0000\u0000\u0167\u0bcc\u0001\u0000\u0000\u0000\u0169\u0bdc"+ + "\u0001\u0000\u0000\u0000\u016b\u0bec\u0001\u0000\u0000\u0000\u016d\u0bf7"+ + "\u0001\u0000\u0000\u0000\u016f\u0c03\u0001\u0000\u0000\u0000\u0171\u0c10"+ + "\u0001\u0000\u0000\u0000\u0173\u0c1c\u0001\u0000\u0000\u0000\u0175\u0c2c"+ + "\u0001\u0000\u0000\u0000\u0177\u0c3c\u0001\u0000\u0000\u0000\u0179\u0c48"+ + "\u0001\u0000\u0000\u0000\u017b\u0c56\u0001\u0000\u0000\u0000\u017d\u0c66"+ + "\u0001\u0000\u0000\u0000\u017f\u0c73\u0001\u0000\u0000\u0000\u0181\u0c84"+ + "\u0001\u0000\u0000\u0000\u0183\u0c95\u0001\u0000\u0000\u0000\u0185\u0c9d"+ + "\u0001\u0000\u0000\u0000\u0187\u0cb2\u0001\u0000\u0000\u0000\u0189\u0cc7"+ + "\u0001\u0000\u0000\u0000\u018b\u0cd9\u0001\u0000\u0000\u0000\u018d\u0ce6"+ + "\u0001\u0000\u0000\u0000\u018f\u0cf0\u0001\u0000\u0000\u0000\u0191\u0d02"+ + "\u0001\u0000\u0000\u0000\u0193\u0d16\u0001\u0000\u0000\u0000\u0195\u0d26"+ + "\u0001\u0000\u0000\u0000\u0197\u0d34\u0001\u0000\u0000\u0000\u0199\u0d44"+ + "\u0001\u0000\u0000\u0000\u019b\u0d51\u0001\u0000\u0000\u0000\u019d\u0d59"+ + "\u0001\u0000\u0000\u0000\u019f\u0d65\u0001\u0000\u0000\u0000\u01a1\u0d6d"+ + "\u0001\u0000\u0000\u0000\u01a3\u0d75\u0001\u0000\u0000\u0000\u01a5\u0d7f"+ + "\u0001\u0000\u0000\u0000\u01a7\u0d89\u0001\u0000\u0000\u0000\u01a9\u0d98"+ + "\u0001\u0000\u0000\u0000\u01ab\u0da4\u0001\u0000\u0000\u0000\u01ad\u0daf"+ + "\u0001\u0000\u0000\u0000\u01af\u0dbe\u0001\u0000\u0000\u0000\u01b1\u0dcd"+ + "\u0001\u0000\u0000\u0000\u01b3\u0dd8\u0001\u0000\u0000\u0000\u01b5\u0de6"+ + "\u0001\u0000\u0000\u0000\u01b7\u0dfb\u0001\u0000\u0000\u0000\u01b9\u0e0b"+ + "\u0001\u0000\u0000\u0000\u01bb\u0e1a\u0001\u0000\u0000\u0000\u01bd\u0e35"+ + "\u0001\u0000\u0000\u0000\u01bf\u0e4b\u0001\u0000\u0000\u0000\u01c1\u0e5c"+ + "\u0001\u0000\u0000\u0000\u01c3\u0e69\u0001\u0000\u0000\u0000\u01c5\u0e77"+ + "\u0001\u0000\u0000\u0000\u01c7\u0e85\u0001\u0000\u0000\u0000\u01c9\u0e95"+ + "\u0001\u0000\u0000\u0000\u01cb\u0eb7\u0001\u0000\u0000\u0000\u01cd\u0ed8"+ + "\u0001\u0000\u0000\u0000\u01cf\u0efc\u0001\u0000\u0000\u0000\u01d1\u0f05"+ + "\u0001\u0000\u0000\u0000\u01d3\u0f1e\u0001\u0000\u0000\u0000\u01d5\u0f36"+ + "\u0001\u0000\u0000\u0000\u01d7\u0f51\u0001\u0000\u0000\u0000\u01d9\u0f64"+ + "\u0001\u0000\u0000\u0000\u01db\u0f78\u0001\u0000\u0000\u0000\u01dd\u0f8a"+ + "\u0001\u0000\u0000\u0000\u01df\u0f9d\u0001\u0000\u0000\u0000\u01e1\u0fb2"+ + "\u0001\u0000\u0000\u0000\u01e3\u0fc8\u0001\u0000\u0000\u0000\u01e5\u0fd4"+ + "\u0001\u0000\u0000\u0000\u01e7\u0fe2\u0001\u0000\u0000\u0000\u01e9\u0ff6"+ + "\u0001\u0000\u0000\u0000\u01eb\u1010\u0001\u0000\u0000\u0000\u01ed\u101f"+ + "\u0001\u0000\u0000\u0000\u01ef\u102c\u0001\u0000\u0000\u0000\u01f1\u103c"+ + "\u0001\u0000\u0000\u0000\u01f3\u104d\u0001\u0000\u0000\u0000\u01f5\u105e"+ + "\u0001\u0000\u0000\u0000\u01f7\u1080\u0001\u0000\u0000\u0000\u01f9\u108a"+ + "\u0001\u0000\u0000\u0000\u01fb\u109a\u0001\u0000\u0000\u0000\u01fd\u10a7"+ + "\u0001\u0000\u0000\u0000\u01ff\u10b6\u0001\u0000\u0000\u0000\u0201\u10c8"+ + "\u0001\u0000\u0000\u0000\u0203\u10d2\u0001\u0000\u0000\u0000\u0205\u10de"+ + "\u0001\u0000\u0000\u0000\u0207\u10eb\u0001\u0000\u0000\u0000\u0209\u10f9"+ + "\u0001\u0000\u0000\u0000\u020b\u110b\u0001\u0000\u0000\u0000\u020d\u1117"+ + "\u0001\u0000\u0000\u0000\u020f\u1124\u0001\u0000\u0000\u0000\u0211\u1131"+ + "\u0001\u0000\u0000\u0000\u0213\u1142\u0001\u0000\u0000\u0000\u0215\u114c"+ + "\u0001\u0000\u0000\u0000\u0217\u115d\u0001\u0000\u0000\u0000\u0219\u1169"+ + "\u0001\u0000\u0000\u0000\u021b\u1170\u0001\u0000\u0000\u0000\u021d\u117f"+ + "\u0001\u0000\u0000\u0000\u021f\u118d\u0001\u0000\u0000\u0000\u0221\u1199"+ + "\u0001\u0000\u0000\u0000\u0223\u11a3\u0001\u0000\u0000\u0000\u0225\u11ad"+ + "\u0001\u0000\u0000\u0000\u0227\u11ba\u0001\u0000\u0000\u0000\u0229\u11c7"+ + "\u0001\u0000\u0000\u0000\u022b\u11d4\u0001\u0000\u0000\u0000\u022d\u11e3"+ + "\u0001\u0000\u0000\u0000\u022f\u11f1\u0001\u0000\u0000\u0000\u0231\u11ff"+ + "\u0001\u0000\u0000\u0000\u0233\u120a\u0001\u0000\u0000\u0000\u0235\u1213"+ + "\u0001\u0000\u0000\u0000\u0237\u121d\u0001\u0000\u0000\u0000\u0239\u123d"+ + "\u0001\u0000\u0000\u0000\u023b\u124b\u0001\u0000\u0000\u0000\u023d\u1259"+ + "\u0001\u0000\u0000\u0000\u023f\u1263\u0001\u0000\u0000\u0000\u0241\u126e"+ + "\u0001\u0000\u0000\u0000\u0243\u1279\u0001\u0000\u0000\u0000\u0245\u127d"+ + "\u0001\u0000\u0000\u0000\u0247\u128e\u0001\u0000\u0000\u0000\u0249\u129d"+ + "\u0001\u0000\u0000\u0000\u024b\u12a7\u0001\u0000\u0000\u0000\u024d\u12c0"+ + "\u0001\u0000\u0000\u0000\u024f\u12cf\u0001\u0000\u0000\u0000\u0251\u12e4"+ + "\u0001\u0000\u0000\u0000\u0253\u12ed\u0001\u0000\u0000\u0000\u0255\u12f7"+ + "\u0001\u0000\u0000\u0000\u0257\u1304\u0001\u0000\u0000\u0000\u0259\u1317"+ + "\u0001\u0000\u0000\u0000\u025b\u1327\u0001\u0000\u0000\u0000\u025d\u1339"+ + "\u0001\u0000\u0000\u0000\u025f\u1343\u0001\u0000\u0000\u0000\u0261\u134f"+ + "\u0001\u0000\u0000\u0000\u0263\u135b\u0001\u0000\u0000\u0000\u0265\u1369"+ + "\u0001\u0000\u0000\u0000\u0267\u1376\u0001\u0000\u0000\u0000\u0269\u1385"+ + "\u0001\u0000\u0000\u0000\u026b\u1387\u0001\u0000\u0000\u0000\u026d\u1389"+ + "\u0001\u0000\u0000\u0000\u026f\u138b\u0001\u0000\u0000\u0000\u0271\u138d"+ + "\u0001\u0000\u0000\u0000\u0273\u1392\u0001\u0000\u0000\u0000\u0275\u1398"+ + "\u0001\u0000\u0000\u0000\u0277\u139d\u0001\u0000\u0000\u0000\u0279\u139f"+ + "\u0001\u0000\u0000\u0000\u027b\u13a1\u0001\u0000\u0000\u0000\u027d\u13a4"+ + "\u0001\u0000\u0000\u0000\u027f\u13a7\u0001\u0000\u0000\u0000\u0281\u13ab"+ + "\u0001\u0000\u0000\u0000\u0283\u13ae\u0001\u0000\u0000\u0000\u0285\u13b2"+ + "\u0001\u0000\u0000\u0000\u0287\u13bd\u0001\u0000\u0000\u0000\u0289\u13cc"+ + "\u0001\u0000\u0000\u0000\u028b\u13cf\u0001\u0000\u0000\u0000\u028d\u13d5"+ + "\u0001\u0000\u0000\u0000\u028f\u13e3\u0001\u0000\u0000\u0000\u0291\u13ee"+ + "\u0001\u0000\u0000\u0000\u0293\u13f3\u0001\u0000\u0000\u0000\u0295\u13f9"+ + "\u0001\u0000\u0000\u0000\u0297\u13fb\u0001\u0000\u0000\u0000\u0299\u13fe"+ + "\u0001\u0000\u0000\u0000\u029b\u1414\u0001\u0000\u0000\u0000\u029d\u1416"+ + "\u0001\u0000\u0000\u0000\u029f\u02a0\u0005p\u0000\u0000\u02a0\u02a1\u0005"+ + "r\u0000\u0000\u02a1\u02a2\u0005o\u0000\u0000\u02a2\u02a3\u0005c\u0000"+ + "\u0000\u02a3\u02a4\u0005e\u0000\u0000\u02a4\u02a5\u0005s\u0000\u0000\u02a5"+ + "\u02a6\u0005s\u0000\u0000\u02a6\u0002\u0001\u0000\u0000\u0000\u02a7\u02a8"+ + "\u0005{\u0000\u0000\u02a8\u0004\u0001\u0000\u0000\u0000\u02a9\u02aa\u0005"+ + "}\u0000\u0000\u02aa\u0006\u0001\u0000\u0000\u0000\u02ab\u02ac\u0005t\u0000"+ + "\u0000\u02ac\u02ad\u0005r\u0000\u0000\u02ad\u02ae\u0005y\u0000\u0000\u02ae"+ + "\b\u0001\u0000\u0000\u0000\u02af\u02b0\u0005f\u0000\u0000\u02b0\u02b1"+ + "\u0005i\u0000\u0000\u02b1\u02b2\u0005n\u0000\u0000\u02b2\u02b3\u0005a"+ + "\u0000\u0000\u02b3\u02b4\u0005l\u0000\u0000\u02b4\u02b5\u0005l\u0000\u0000"+ + "\u02b5\u02b6\u0005y\u0000\u0000\u02b6\n\u0001\u0000\u0000\u0000\u02b7"+ + "\u02b8\u0005c\u0000\u0000\u02b8\u02b9\u0005a\u0000\u0000\u02b9\u02ba\u0005"+ + "t\u0000\u0000\u02ba\u02bb\u0005c\u0000\u0000\u02bb\u02bc\u0005h\u0000"+ + "\u0000\u02bc\f\u0001\u0000\u0000\u0000\u02bd\u02be\u0005m\u0000\u0000"+ + "\u02be\u02bf\u0005u\u0000\u0000\u02bf\u02c0\u0005l\u0000\u0000\u02c0\u02c1"+ + "\u0005t\u0000\u0000\u02c1\u02c2\u0005i\u0000\u0000\u02c2\u02c3\u0005t"+ + "\u0000\u0000\u02c3\u02c4\u0005u\u0000\u0000\u02c4\u02c5\u0005d\u0000\u0000"+ + "\u02c5\u02c6\u0005e\u0000\u0000\u02c6\u000e\u0001\u0000\u0000\u0000\u02c7"+ + "\u02c8\u0005a\u0000\u0000\u02c8\u02c9\u0005s\u0000\u0000\u02c9\u0010\u0001"+ + "\u0000\u0000\u0000\u02ca\u02cb\u0005o\u0000\u0000\u02cb\u02cc\u0005n\u0000"+ + "\u0000\u02cc\u0012\u0001\u0000\u0000\u0000\u02cd\u02ce\u0005u\u0000\u0000"+ + "\u02ce\u02cf\u0005s\u0000\u0000\u02cf\u02d0\u0005i\u0000\u0000\u02d0\u02d1"+ + "\u0005n\u0000\u0000\u02d1\u02d2\u0005g\u0000\u0000\u02d2\u0014\u0001\u0000"+ + "\u0000\u0000\u02d3\u02d4\u0005o\u0000\u0000\u02d4\u02d5\u0005n\u0000\u0000"+ + "\u02d5\u02d6\u0005-\u0000\u0000\u02d6\u02d7\u0005c\u0000\u0000\u02d7\u02d8"+ + "\u0005o\u0000\u0000\u02d8\u02d9\u0005n\u0000\u0000\u02d9\u02da\u0005d"+ + "\u0000\u0000\u02da\u02db\u0005i\u0000\u0000\u02db\u02dc\u0005t\u0000\u0000"+ + "\u02dc\u02dd\u0005i\u0000\u0000\u02dd\u02de\u0005o\u0000\u0000\u02de\u02df"+ + "\u0005n\u0000\u0000\u02df\u0016\u0001\u0000\u0000\u0000\u02e0\u02e1\u0005"+ + "f\u0000\u0000\u02e1\u02e2\u0005i\u0000\u0000\u02e2\u02e3\u0005e\u0000"+ + "\u0000\u02e3\u02e4\u0005l\u0000\u0000\u02e4\u02e5\u0005d\u0000\u0000\u02e5"+ + "\u02e6\u0005i\u0000\u0000\u02e6\u02e7\u0005n\u0000\u0000\u02e7\u02e8\u0005"+ + "g\u0000\u0000\u02e8\u0018\u0001\u0000\u0000\u0000\u02e9\u02ea\u0005c\u0000"+ + "\u0000\u02ea\u02eb\u0005o\u0000\u0000\u02eb\u02ec\u0005p\u0000\u0000\u02ec"+ + "\u02ed\u0005y\u0000\u0000\u02ed\u02ee\u0005d\u0000\u0000\u02ee\u02ef\u0005"+ + "a\u0000\u0000\u02ef\u02f0\u0005t\u0000\u0000\u02f0\u02f1\u0005a\u0000"+ + "\u0000\u02f1\u001a\u0001\u0000\u0000\u0000\u02f2\u02f3\u0005f\u0000\u0000"+ + "\u02f3\u02f4\u0005r\u0000\u0000\u02f4\u02f5\u0005o\u0000\u0000\u02f5\u02f6"+ + "\u0005m\u0000\u0000\u02f6\u001c\u0001\u0000\u0000\u0000\u02f7\u02f8\u0005"+ + "t\u0000\u0000\u02f8\u02f9\u0005o\u0000\u0000\u02f9\u001e\u0001\u0000\u0000"+ + "\u0000\u02fa\u02fb\u0005w\u0000\u0000\u02fb\u02fc\u0005i\u0000\u0000\u02fc"+ + "\u02fd\u0005t\u0000\u0000\u02fd\u02fe\u0005h\u0000\u0000\u02fe\u02ff\u0005"+ + "-\u0000\u0000\u02ff\u0300\u0005f\u0000\u0000\u0300\u0301\u0005e\u0000"+ + "\u0000\u0301\u0302\u0005t\u0000\u0000\u0302\u0303\u0005c\u0000\u0000\u0303"+ + "\u0304\u0005h\u0000\u0000\u0304\u0305\u0005-\u0000\u0000\u0305\u0306\u0005"+ + "b\u0000\u0000\u0306\u0307\u0005a\u0000\u0000\u0307\u0308\u0005t\u0000"+ + "\u0000\u0308\u0309\u0005c\u0000\u0000\u0309\u030a\u0005h\u0000\u0000\u030a"+ + "\u030b\u0005-\u0000\u0000\u030b\u030c\u0005s\u0000\u0000\u030c\u030d\u0005"+ + "i\u0000\u0000\u030d\u030e\u0005z\u0000\u0000\u030e\u030f\u0005e\u0000"+ + "\u0000\u030f \u0001\u0000\u0000\u0000\u0310\u0311\u0005w\u0000\u0000\u0311"+ + "\u0312\u0005i\u0000\u0000\u0312\u0313\u0005t\u0000\u0000\u0313\u0314\u0005"+ + "h\u0000\u0000\u0314\u0315\u0005-\u0000\u0000\u0315\u0316\u0005w\u0000"+ + "\u0000\u0316\u0317\u0005r\u0000\u0000\u0317\u0318\u0005i\u0000\u0000\u0318"+ + "\u0319\u0005t\u0000\u0000\u0319\u031a\u0005e\u0000\u0000\u031a\u031b\u0005"+ + "-\u0000\u0000\u031b\u031c\u0005b\u0000\u0000\u031c\u031d\u0005a\u0000"+ + "\u0000\u031d\u031e\u0005t\u0000\u0000\u031e\u031f\u0005c\u0000\u0000\u031f"+ + "\u0320\u0005h\u0000\u0000\u0320\u0321\u0005-\u0000\u0000\u0321\u0322\u0005"+ + "s\u0000\u0000\u0322\u0323\u0005i\u0000\u0000\u0323\u0324\u0005z\u0000"+ + "\u0000\u0324\u0325\u0005e\u0000\u0000\u0325\"\u0001\u0000\u0000\u0000"+ + "\u0326\u0327\u0005t\u0000\u0000\u0327\u0328\u0005r\u0000\u0000\u0328\u0329"+ + "\u0005a\u0000\u0000\u0329\u032a\u0005n\u0000\u0000\u032a\u032b\u0005s"+ + "\u0000\u0000\u032b\u032c\u0005f\u0000\u0000\u032c\u032d\u0005o\u0000\u0000"+ + "\u032d\u032e\u0005r\u0000\u0000\u032e\u032f\u0005m\u0000\u0000\u032f$"+ + "\u0001\u0000\u0000\u0000\u0330\u0331\u0005d\u0000\u0000\u0331\u0332\u0005"+ + "o\u0000\u0000\u0332\u0333\u0005-\u0000\u0000\u0333\u0334\u0005f\u0000"+ + "\u0000\u0334\u0335\u0005o\u0000\u0000\u0335\u0336\u0005r\u0000\u0000\u0336"+ + "\u0337\u0005m\u0000\u0000\u0337\u0338\u0005a\u0000\u0000\u0338\u0339\u0005"+ + "t\u0000\u0000\u0339&\u0001\u0000\u0000\u0000\u033a\u033b\u0005l\u0000"+ + "\u0000\u033b\u033c\u0005o\u0000\u0000\u033c\u033d\u0005a\u0000\u0000\u033d"+ + "\u033e\u0005d\u0000\u0000\u033e\u033f\u0005c\u0000\u0000\u033f\u0340\u0005"+ + "s\u0000\u0000\u0340\u0341\u0005v\u0000\u0000\u0341(\u0001\u0000\u0000"+ + "\u0000\u0342\u0343\u0005p\u0000\u0000\u0343\u0344\u0005i\u0000\u0000\u0344"+ + "\u0345\u0005d\u0000\u0000\u0345*\u0001\u0000\u0000\u0000\u0346\u0347\u0005"+ + "w\u0000\u0000\u0347\u0348\u0005i\u0000\u0000\u0348\u0349\u0005t\u0000"+ + "\u0000\u0349\u034a\u0005h\u0000\u0000\u034a,\u0001\u0000\u0000\u0000\u034b"+ + "\u034c\u0005b\u0000\u0000\u034c\u034d\u0005y\u0000\u0000\u034d\u034e\u0005"+ + "-\u0000\u0000\u034e\u034f\u0005b\u0000\u0000\u034f\u0350\u0005a\u0000"+ + "\u0000\u0350\u0351\u0005t\u0000\u0000\u0351\u0352\u0005c\u0000\u0000\u0352"+ + "\u0353\u0005h\u0000\u0000\u0353.\u0001\u0000\u0000\u0000\u0354\u0355\u0005"+ + "a\u0000\u0000\u0355\u0356\u0005b\u0000\u0000\u0356\u0357\u0005o\u0000"+ + "\u0000\u0357\u0358\u0005r\u0000\u0000\u0358\u0359\u0005t\u0000\u0000\u0359"+ + "0\u0001\u0000\u0000\u0000\u035a\u035b\u0005c\u0000\u0000\u035b\u035c\u0005"+ + "a\u0000\u0000\u035c\u035d\u0005l\u0000\u0000\u035d\u035e\u0005l\u0000"+ + "\u0000\u035e\u035f\u0005p\u0000\u0000\u035f\u0360\u0005r\u0000\u0000\u0360"+ + "\u0361\u0005o\u0000\u0000\u0361\u0362\u0005c\u0000\u0000\u0362\u0363\u0005"+ + "e\u0000\u0000\u0363\u0364\u0005s\u0000\u0000\u0364\u0365\u0005s\u0000"+ + "\u0000\u03652\u0001\u0000\u0000\u0000\u0366\u0367\u0005w\u0000\u0000\u0367"+ + "\u0368\u0005i\u0000\u0000\u0368\u0369\u0005t\u0000\u0000\u0369\u036a\u0005"+ + "h\u0000\u0000\u036a\u036b\u0005-\u0000\u0000\u036b\u036c\u0005t\u0000"+ + "\u0000\u036c\u036d\u0005a\u0000\u0000\u036d\u036e\u0005r\u0000\u0000\u036e"+ + "\u036f\u0005g\u0000\u0000\u036f\u0370\u0005e\u0000\u0000\u0370\u0371\u0005"+ + "t\u0000\u0000\u03714\u0001\u0000\u0000\u0000\u0372\u0373\u0005f\u0000"+ + "\u0000\u0373\u0374\u0005r\u0000\u0000\u0374\u0375\u0005o\u0000\u0000\u0375"+ + "\u0376\u0005m\u0000\u0000\u0376\u0377\u0005-\u0000\u0000\u0377\u0378\u0005"+ + "f\u0000\u0000\u0378\u0379\u0005i\u0000\u0000\u0379\u037a\u0005l\u0000"+ + "\u0000\u037a\u037b\u0005e\u0000\u0000\u037b6\u0001\u0000\u0000\u0000\u037c"+ + "\u037d\u0005f\u0000\u0000\u037d\u037e\u0005o\u0000\u0000\u037e\u037f\u0005"+ + "r\u0000\u0000\u037f\u0380\u0005-\u0000\u0000\u0380\u0381\u0005e\u0000"+ + "\u0000\u0381\u0382\u0005v\u0000\u0000\u0382\u0383\u0005e\u0000\u0000\u0383"+ + "\u0384\u0005r\u0000\u0000\u0384\u0385\u0005y\u0000\u0000\u03858\u0001"+ + "\u0000\u0000\u0000\u0386\u0387\u0005o\u0000\u0000\u0387\u0388\u0005n\u0000"+ + "\u0000\u0388\u0389\u0005-\u0000\u0000\u0389\u038a\u0005p\u0000\u0000\u038a"+ + "\u038b\u0005a\u0000\u0000\u038b\u038c\u0005r\u0000\u0000\u038c\u038d\u0005"+ + "a\u0000\u0000\u038d\u038e\u0005l\u0000\u0000\u038e\u038f\u0005l\u0000"+ + "\u0000\u038f\u0390\u0005e\u0000\u0000\u0390\u0391\u0005l\u0000\u0000\u0391"+ + "\u0392\u0005-\u0000\u0000\u0392\u0393\u0005f\u0000\u0000\u0393\u0394\u0005"+ + "i\u0000\u0000\u0394\u0395\u0005e\u0000\u0000\u0395\u0396\u0005l\u0000"+ + "\u0000\u0396\u0397\u0005d\u0000\u0000\u0397\u0398\u0005i\u0000\u0000\u0398"+ + "\u0399\u0005n\u0000\u0000\u0399\u039a\u0005g\u0000\u0000\u039a:\u0001"+ + "\u0000\u0000\u0000\u039b\u039c\u0005f\u0000\u0000\u039c\u039d\u0005o\u0000"+ + "\u0000\u039d\u039e\u0005r\u0000\u0000\u039e\u039f\u0005k\u0000\u0000\u039f"+ + "\u03a0\u0005p\u0000\u0000\u03a0\u03a1\u0005r\u0000\u0000\u03a1\u03a2\u0005"+ + "o\u0000\u0000\u03a2\u03a3\u0005c\u0000\u0000\u03a3\u03a4\u0005e\u0000"+ + "\u0000\u03a4\u03a5\u0005s\u0000\u0000\u03a5\u03a6\u0005s\u0000\u0000\u03a6"+ + "<\u0001\u0000\u0000\u0000\u03a7\u03a8\u0005w\u0000\u0000\u03a8\u03a9\u0005"+ + "a\u0000\u0000\u03a9\u03aa\u0005t\u0000\u0000\u03aa\u03ab\u0005e\u0000"+ + "\u0000\u03ab\u03ac\u0005r\u0000\u0000\u03ac\u03ad\u0005m\u0000\u0000\u03ad"+ + "\u03ae\u0005a\u0000\u0000\u03ae\u03af\u0005r\u0000\u0000\u03af\u03b0\u0005"+ + "k\u0000\u0000\u03b0>\u0001\u0000\u0000\u0000\u03b1\u03b2\u0005s\u0000"+ + "\u0000\u03b2\u03b3\u0005p\u0000\u0000\u03b3\u03b4\u0005a\u0000\u0000\u03b4"+ + "\u03b5\u0005w\u0000\u0000\u03b5\u03b6\u0005n\u0000\u0000\u03b6@\u0001"+ + "\u0000\u0000\u0000\u03b7\u03b8\u0005d\u0000\u0000\u03b8\u03b9\u0005o\u0000"+ + "\u0000\u03b9\u03ba\u0005g\u0000\u0000\u03ba\u03bb\u0005l\u0000\u0000\u03bb"+ + "\u03bc\u0005e\u0000\u0000\u03bc\u03bd\u0005g\u0000\u0000\u03bdB\u0001"+ + "\u0000\u0000\u0000\u03be\u03bf\u0005u\u0000\u0000\u03bf\u03c0\u0005s\u0000"+ + "\u0000\u03c0\u03c1\u0005e\u0000\u0000\u03c1\u03c2\u0005-\u0000\u0000\u03c2"+ + "\u03c3\u0005p\u0000\u0000\u03c3\u03c4\u0005a\u0000\u0000\u03c4\u03c5\u0005"+ + "r\u0000\u0000\u03c5\u03c6\u0005e\u0000\u0000\u03c6\u03c7\u0005n\u0000"+ + "\u0000\u03c7\u03c8\u0005t\u0000\u0000\u03c8\u03c9\u0005-\u0000\u0000\u03c9"+ + "\u03ca\u0005c\u0000\u0000\u03ca\u03cb\u0005o\u0000\u0000\u03cb\u03cc\u0005"+ + "n\u0000\u0000\u03cc\u03cd\u0005t\u0000\u0000\u03cd\u03ce\u0005e\u0000"+ + "\u0000\u03ce\u03cf\u0005x\u0000\u0000\u03cf\u03d0\u0005t\u0000\u0000\u03d0"+ + "D\u0001\u0000\u0000\u0000\u03d1\u03d2\u0005s\u0000\u0000\u03d2\u03d3\u0005"+ + "t\u0000\u0000\u03d3\u03d4\u0005a\u0000\u0000\u03d4\u03d5\u0005r\u0000"+ + "\u0000\u03d5\u03d6\u0005t\u0000\u0000\u03d6\u03d7\u0005-\u0000\u0000\u03d7"+ + "\u03d8\u0005p\u0000\u0000\u03d8\u03d9\u0005r\u0000\u0000\u03d9\u03da\u0005"+ + "o\u0000\u0000\u03da\u03db\u0005c\u0000\u0000\u03db\u03dc\u0005e\u0000"+ + "\u0000\u03dc\u03dd\u0005s\u0000\u0000\u03dd\u03de\u0005s\u0000\u0000\u03de"+ + "F\u0001\u0000\u0000\u0000\u03df\u03e0\u0005w\u0000\u0000\u03e0\u03e1\u0005"+ + "i\u0000\u0000\u03e1\u03e2\u0005t\u0000\u0000\u03e2\u03e3\u0005h\u0000"+ + "\u0000\u03e3\u03e4\u0005-\u0000\u0000\u03e4\u03e5\u0005f\u0000\u0000\u03e5"+ + "\u03e6\u0005i\u0000\u0000\u03e6\u03e7\u0005l\u0000\u0000\u03e7\u03e8\u0005"+ + "e\u0000\u0000\u03e8H\u0001\u0000\u0000\u0000\u03e9\u03ea\u0005a\u0000"+ + "\u0000\u03ea\u03eb\u0005s\u0000\u0000\u03eb\u03ec\u0005s\u0000\u0000\u03ec"+ + "\u03ed\u0005i\u0000\u0000\u03ed\u03ee\u0005g\u0000\u0000\u03ee\u03ef\u0005"+ + "n\u0000\u0000\u03efJ\u0001\u0000\u0000\u0000\u03f0\u03f1\u0005s\u0000"+ + "\u0000\u03f1\u03f2\u0005o\u0000\u0000\u03f2\u03f3\u0005u\u0000\u0000\u03f3"+ + "\u03f4\u0005r\u0000\u0000\u03f4\u03f5\u0005c\u0000\u0000\u03f5\u03f6\u0005"+ + "e\u0000\u0000\u03f6L\u0001\u0000\u0000\u0000\u03f7\u03f8\u0005d\u0000"+ + "\u0000\u03f8\u03f9\u0005r\u0000\u0000\u03f9\u03fa\u0005o\u0000\u0000\u03fa"+ + "\u03fb\u0005p\u0000\u0000\u03fb\u03fc\u0005f\u0000\u0000\u03fc\u03fd\u0005"+ + "i\u0000\u0000\u03fd\u03fe\u0005l\u0000\u0000\u03fe\u03ff\u0005e\u0000"+ + "\u0000\u03ffN\u0001\u0000\u0000\u0000\u0400\u0401\u0005i\u0000\u0000\u0401"+ + "\u0402\u0005n\u0000\u0000\u0402\u0403\u0005-\u0000\u0000\u0403\u0404\u0005"+ + "p\u0000\u0000\u0404\u0405\u0005a\u0000\u0000\u0405\u0406\u0005t\u0000"+ + "\u0000\u0406\u0407\u0005h\u0000\u0000\u0407P\u0001\u0000\u0000\u0000\u0408"+ + "\u0409\u0005r\u0000\u0000\u0409\u040a\u0005e\u0000\u0000\u040a\u040b\u0005"+ + "s\u0000\u0000\u040b\u040c\u0005t\u0000\u0000\u040c\u040d\u0005a\u0000"+ + "\u0000\u040d\u040e\u0005p\u0000\u0000\u040e\u040f\u0005i\u0000\u0000\u040f"+ + "R\u0001\u0000\u0000\u0000\u0410\u0411\u0005u\u0000\u0000\u0411\u0412\u0005"+ + "r\u0000\u0000\u0412\u0413\u0005l\u0000\u0000\u0413T\u0001\u0000\u0000"+ + "\u0000\u0414\u0415\u0005m\u0000\u0000\u0415\u0416\u0005e\u0000\u0000\u0416"+ + "\u0417\u0005t\u0000\u0000\u0417\u0418\u0005h\u0000\u0000\u0418\u0419\u0005"+ + "o\u0000\u0000\u0419\u041a\u0005d\u0000\u0000\u041aV\u0001\u0000\u0000"+ + "\u0000\u041b\u041c\u0005w\u0000\u0000\u041c\u041d\u0005i\u0000\u0000\u041d"+ + "\u041e\u0005t\u0000\u0000\u041e\u041f\u0005h\u0000\u0000\u041f\u0420\u0005"+ + " \u0000\u0000\u0420\u0421\u0005h\u0000\u0000\u0421\u0422\u0005e\u0000"+ + "\u0000\u0422\u0423\u0005a\u0000\u0000\u0423\u0424\u0005d\u0000\u0000\u0424"+ + "\u0425\u0005e\u0000\u0000\u0425\u0426\u0005r\u0000\u0000\u0426\u0427\u0005"+ + "s\u0000\u0000\u0427X\u0001\u0000\u0000\u0000\u0428\u0429\u0005w\u0000"+ + "\u0000\u0429\u042a\u0005i\u0000\u0000\u042a\u042b\u0005t\u0000\u0000\u042b"+ + "\u042c\u0005h\u0000\u0000\u042c\u042d\u0005 \u0000\u0000\u042d\u042e\u0005"+ + "p\u0000\u0000\u042e\u042f\u0005a\u0000\u0000\u042f\u0430\u0005r\u0000"+ + "\u0000\u0430\u0431\u0005a\u0000\u0000\u0431\u0432\u0005m\u0000\u0000\u0432"+ + "\u0433\u0005s\u0000\u0000\u0433Z\u0001\u0000\u0000\u0000\u0434\u0435\u0005"+ + "w\u0000\u0000\u0435\u0436\u0005i\u0000\u0000\u0436\u0437\u0005t\u0000"+ + "\u0000\u0437\u0438\u0005h\u0000\u0000\u0438\u0439\u0005 \u0000\u0000\u0439"+ + "\u043a\u0005b\u0000\u0000\u043a\u043b\u0005o\u0000\u0000\u043b\u043c\u0005"+ + "d\u0000\u0000\u043c\u043d\u0005y\u0000\u0000\u043d\u043e\u0005 \u0000"+ + "\u0000\u043e\u043f\u0005t\u0000\u0000\u043f\u0440\u0005y\u0000\u0000\u0440"+ + "\u0441\u0005p\u0000\u0000\u0441\u0442\u0005e\u0000\u0000\u0442\\\u0001"+ + "\u0000\u0000\u0000\u0443\u0444\u0005{\u0000\u0000\u0444\u0445\u0005 \u0000"+ + "\u0000\u0445\u0446\u0005p\u0000\u0000\u0446\u0447\u0005a\u0000\u0000\u0447"+ + "\u0448\u0005r\u0000\u0000\u0448\u0449\u0005t\u0000\u0000\u0449^\u0001"+ + "\u0000\u0000\u0000\u044a\u044b\u0005t\u0000\u0000\u044b\u044c\u0005y\u0000"+ + "\u0000\u044c\u044d\u0005p\u0000\u0000\u044d\u044e\u0005e\u0000\u0000\u044e"+ + "\u044f\u0005 \u0000\u0000\u044f\u0450\u0005a\u0000\u0000\u0450\u0451\u0005"+ + "s\u0000\u0000\u0451`\u0001\u0000\u0000\u0000\u0452\u0453\u0005e\u0000"+ + "\u0000\u0453\u0454\u0005x\u0000\u0000\u0454\u0455\u0005p\u0000\u0000\u0455"+ + "\u0456\u0005o\u0000\u0000\u0456\u0457\u0005r\u0000\u0000\u0457\u0458\u0005"+ + "t\u0000\u0000\u0458\u0459\u0005C\u0000\u0000\u0459\u045a\u0005s\u0000"+ + "\u0000\u045a\u045b\u0005v\u0000\u0000\u045bb\u0001\u0000\u0000\u0000\u045c"+ + "\u045d\u0005e\u0000\u0000\u045d\u045e\u0005x\u0000\u0000\u045e\u045f\u0005"+ + "e\u0000\u0000\u045f\u0460\u0005c\u0000\u0000\u0460\u0461\u0005u\u0000"+ + "\u0000\u0461\u0462\u0005t\u0000\u0000\u0462\u0463\u0005i\u0000\u0000\u0463"+ + "\u0464\u0005o\u0000\u0000\u0464\u0465\u0005n\u0000\u0000\u0465\u0466\u0005"+ + "S\u0000\u0000\u0466\u0467\u0005o\u0000\u0000\u0467\u0468\u0005u\u0000"+ + "\u0000\u0468\u0469\u0005r\u0000\u0000\u0469\u046a\u0005c\u0000\u0000\u046a"+ + "\u046b\u0005e\u0000\u0000\u046bd\u0001\u0000\u0000\u0000\u046c\u046d\u0005"+ + "t\u0000\u0000\u046d\u046e\u0005a\u0000\u0000\u046e\u046f\u0005r\u0000"+ + "\u0000\u046f\u0470\u0005g\u0000\u0000\u0470\u0471\u0005e\u0000\u0000\u0471"+ + "\u0472\u0005t\u0000\u0000\u0472\u0473\u0005L\u0000\u0000\u0473\u0474\u0005"+ + "o\u0000\u0000\u0474\u0475\u0005c\u0000\u0000\u0475\u0476\u0005a\u0000"+ + "\u0000\u0476\u0477\u0005t\u0000\u0000\u0477\u0478\u0005i\u0000\u0000\u0478"+ + "\u0479\u0005o\u0000\u0000\u0479\u047a\u0005n\u0000\u0000\u047af\u0001"+ + "\u0000\u0000\u0000\u047b\u047c\u0005i\u0000\u0000\u047c\u047d\u0005m\u0000"+ + "\u0000\u047d\u047e\u0005p\u0000\u0000\u047e\u047f\u0005o\u0000\u0000\u047f"+ + "\u0480\u0005r\u0000\u0000\u0480\u0481\u0005t\u0000\u0000\u0481\u0482\u0005"+ + "C\u0000\u0000\u0482\u0483\u0005s\u0000\u0000\u0483\u0484\u0005v\u0000"+ + "\u0000\u0484\u0485\u0005T\u0000\u0000\u0485\u0486\u0005o\u0000\u0000\u0486"+ + "\u0487\u0005D\u0000\u0000\u0487\u0488\u0005B\u0000\u0000\u0488h\u0001"+ + "\u0000\u0000\u0000\u0489\u048a\u0005t\u0000\u0000\u048a\u048b\u0005a\u0000"+ + "\u0000\u048b\u048c\u0005r\u0000\u0000\u048c\u048d\u0005g\u0000\u0000\u048d"+ + "\u048e\u0005e\u0000\u0000\u048e\u048f\u0005t\u0000\u0000\u048fj\u0001"+ + "\u0000\u0000\u0000\u0490\u0491\u0005b\u0000\u0000\u0491\u0492\u0005a\u0000"+ + "\u0000\u0492\u0493\u0005t\u0000\u0000\u0493\u0494\u0005c\u0000\u0000\u0494"+ + "\u0495\u0005h\u0000\u0000\u0495l\u0001\u0000\u0000\u0000\u0496\u0497\u0005"+ + "e\u0000\u0000\u0497\u0498\u0005x\u0000\u0000\u0498\u0499\u0005t\u0000"+ + "\u0000\u0499\u049a\u0005r\u0000\u0000\u049a\u049b\u0005a\u0000\u0000\u049b"+ + "\u049c\u0005c\u0000\u0000\u049c\u049d\u0005t\u0000\u0000\u049d\u049e\u0005"+ + "T\u0000\u0000\u049e\u049f\u0005A\u0000\u0000\u049f\u04a0\u0005R\u0000"+ + "\u0000\u04a0n\u0001\u0000\u0000\u0000\u04a1\u04a2\u0005d\u0000\u0000\u04a2"+ + "\u04a3\u0005e\u0000\u0000\u04a3\u04a4\u0005s\u0000\u0000\u04a4\u04a5\u0005"+ + "t\u0000\u0000\u04a5\u04a6\u0005i\u0000\u0000\u04a6\u04a7\u0005n\u0000"+ + "\u0000\u04a7\u04a8\u0005a\u0000\u0000\u04a8\u04a9\u0005t\u0000\u0000\u04a9"+ + "\u04aa\u0005i\u0000\u0000\u04aa\u04ab\u0005o\u0000\u0000\u04ab\u04ac\u0005"+ + "n\u0000\u0000\u04acp\u0001\u0000\u0000\u0000\u04ad\u04ae\u0005c\u0000"+ + "\u0000\u04ae\u04af\u0005r\u0000\u0000\u04af\u04b0\u0005e\u0000\u0000\u04b0"+ + "\u04b1\u0005a\u0000\u0000\u04b1\u04b2\u0005t\u0000\u0000\u04b2\u04b3\u0005"+ + "e\u0000\u0000\u04b3\u04b4\u0005T\u0000\u0000\u04b4\u04b5\u0005A\u0000"+ + "\u0000\u04b5\u04b6\u0005R\u0000\u0000\u04b6r\u0001\u0000\u0000\u0000\u04b7"+ + "\u04b8\u0005e\u0000\u0000\u04b8\u04b9\u0005x\u0000\u0000\u04b9\u04ba\u0005"+ + "t\u0000\u0000\u04ba\u04bb\u0005e\u0000\u0000\u04bb\u04bc\u0005n\u0000"+ + "\u0000\u04bc\u04bd\u0005s\u0000\u0000\u04bd\u04be\u0005i\u0000\u0000\u04be"+ + "\u04bf\u0005o\u0000\u0000\u04bf\u04c0\u0005n\u0000\u0000\u04c0t\u0001"+ + "\u0000\u0000\u0000\u04c1\u04c2\u0005c\u0000\u0000\u04c2\u04c3\u0005r\u0000"+ + "\u0000\u04c3\u04c4\u0005e\u0000\u0000\u04c4\u04c5\u0005a\u0000\u0000\u04c5"+ + "\u04c6\u0005t\u0000\u0000\u04c6\u04c7\u0005e\u0000\u0000\u04c7\u04c8\u0005"+ + "D\u0000\u0000\u04c8\u04c9\u0005i\u0000\u0000\u04c9\u04ca\u0005r\u0000"+ + "\u0000\u04ca\u04cb\u0005e\u0000\u0000\u04cb\u04cc\u0005c\u0000\u0000\u04cc"+ + "\u04cd\u0005t\u0000\u0000\u04cd\u04ce\u0005o\u0000\u0000\u04ce\u04cf\u0005"+ + "r\u0000\u0000\u04cf\u04d0\u0005y\u0000\u0000\u04d0v\u0001\u0000\u0000"+ + "\u0000\u04d1\u04d2\u0005c\u0000\u0000\u04d2\u04d3\u0005r\u0000\u0000\u04d3"+ + "\u04d4\u0005e\u0000\u0000\u04d4\u04d5\u0005a\u0000\u0000\u04d5\u04d6\u0005"+ + "t\u0000\u0000\u04d6\u04d7\u0005e\u0000\u0000\u04d7\u04d8\u0005F\u0000"+ + "\u0000\u04d8\u04d9\u0005i\u0000\u0000\u04d9\u04da\u0005l\u0000\u0000\u04da"+ + "\u04db\u0005e\u0000\u0000\u04dbx\u0001\u0000\u0000\u0000\u04dc\u04dd\u0005"+ + "l\u0000\u0000\u04dd\u04de\u0005o\u0000\u0000\u04de\u04df\u0005c\u0000"+ + "\u0000\u04df\u04e0\u0005a\u0000\u0000\u04e0\u04e1\u0005t\u0000\u0000\u04e1"+ + "\u04e2\u0005i\u0000\u0000\u04e2\u04e3\u0005o\u0000\u0000\u04e3\u04e4\u0005"+ + "n\u0000\u0000\u04e4z\u0001\u0000\u0000\u0000\u04e5\u04e6\u0005f\u0000"+ + "\u0000\u04e6\u04e7\u0005i\u0000\u0000\u04e7\u04e8\u0005l\u0000\u0000\u04e8"+ + "\u04e9\u0005e\u0000\u0000\u04e9\u04ea\u0005N\u0000\u0000\u04ea\u04eb\u0005"+ + "a\u0000\u0000\u04eb\u04ec\u0005m\u0000\u0000\u04ec\u04ed\u0005e\u0000"+ + "\u0000\u04ed|\u0001\u0000\u0000\u0000\u04ee\u04ef\u0005d\u0000\u0000\u04ef"+ + "\u04f0\u0005e\u0000\u0000\u04f0\u04f1\u0005l\u0000\u0000\u04f1\u04f2\u0005"+ + "e\u0000\u0000\u04f2\u04f3\u0005t\u0000\u0000\u04f3\u04f4\u0005e\u0000"+ + "\u0000\u04f4\u04f5\u0005F\u0000\u0000\u04f5\u04f6\u0005i\u0000\u0000\u04f6"+ + "\u04f7\u0005l\u0000\u0000\u04f7\u04f8\u0005e\u0000\u0000\u04f8\u04f9\u0005"+ + "D\u0000\u0000\u04f9\u04fa\u0005i\u0000\u0000\u04fa\u04fb\u0005r\u0000"+ + "\u0000\u04fb\u04fc\u0005e\u0000\u0000\u04fc\u04fd\u0005c\u0000\u0000\u04fd"+ + "\u04fe\u0005t\u0000\u0000\u04fe\u04ff\u0005o\u0000\u0000\u04ff\u0500\u0005"+ + "r\u0000\u0000\u0500\u0501\u0005y\u0000\u0000\u0501~\u0001\u0000\u0000"+ + "\u0000\u0502\u0503\u0005t\u0000\u0000\u0503\u0504\u0005r\u0000\u0000\u0504"+ + "\u0505\u0005a\u0000\u0000\u0505\u0506\u0005n\u0000\u0000\u0506\u0507\u0005"+ + "s\u0000\u0000\u0507\u0508\u0005f\u0000\u0000\u0508\u0509\u0005e\u0000"+ + "\u0000\u0509\u050a\u0005r\u0000\u0000\u050a\u050b\u0005F\u0000\u0000\u050b"+ + "\u050c\u0005i\u0000\u0000\u050c\u050d\u0005l\u0000\u0000\u050d\u050e\u0005"+ + "e\u0000\u0000\u050e\u050f\u0005D\u0000\u0000\u050f\u0510\u0005i\u0000"+ + "\u0000\u0510\u0511\u0005r\u0000\u0000\u0511\u0512\u0005e\u0000\u0000\u0512"+ + "\u0513\u0005c\u0000\u0000\u0513\u0514\u0005t\u0000\u0000\u0514\u0515\u0005"+ + "o\u0000\u0000\u0515\u0516\u0005r\u0000\u0000\u0516\u0517\u0005y\u0000"+ + "\u0000\u0517\u0080\u0001\u0000\u0000\u0000\u0518\u0519\u0005o\u0000\u0000"+ + "\u0519\u051a\u0005p\u0000\u0000\u051a\u051b\u0005e\u0000\u0000\u051b\u051c"+ + "\u0005r\u0000\u0000\u051c\u051d\u0005a\u0000\u0000\u051d\u051e\u0005t"+ + "\u0000\u0000\u051e\u051f\u0005i\u0000\u0000\u051f\u0520\u0005o\u0000\u0000"+ + "\u0520\u0521\u0005n\u0000\u0000\u0521\u0082\u0001\u0000\u0000\u0000\u0522"+ + "\u0523\u0005p\u0000\u0000\u0523\u0524\u0005c\u0000\u0000\u0524\u0525\u0005"+ + "m\u0000\u0000\u0525\u0084\u0001\u0000\u0000\u0000\u0526\u0527\u0005o\u0000"+ + "\u0000\u0527\u0528\u0005n\u0000\u0000\u0528\u0529\u0005-\u0000\u0000\u0529"+ + "\u052a\u0005r\u0000\u0000\u052a\u052b\u0005e\u0000\u0000\u052b\u052c\u0005"+ + "s\u0000\u0000\u052c\u052d\u0005o\u0000\u0000\u052d\u052e\u0005u\u0000"+ + "\u0000\u052e\u052f\u0005r\u0000\u0000\u052f\u0530\u0005c\u0000\u0000\u0530"+ + "\u0531\u0005e\u0000\u0000\u0531\u0086\u0001\u0000\u0000\u0000\u0532\u0533"+ + "\u0005p\u0000\u0000\u0533\u0534\u0005r\u0000\u0000\u0534\u0535\u0005o"+ + "\u0000\u0000\u0535\u0536\u0005d\u0000\u0000\u0536\u0537\u0005u\u0000\u0000"+ + "\u0537\u0538\u0005c\u0000\u0000\u0538\u0539\u0005e\u0000\u0000\u0539\u0088"+ + "\u0001\u0000\u0000\u0000\u053a\u053b\u0005c\u0000\u0000\u053b\u053c\u0005"+ + "o\u0000\u0000\u053c\u053d\u0005n\u0000\u0000\u053d\u053e\u0005s\u0000"+ + "\u0000\u053e\u053f\u0005u\u0000\u0000\u053f\u0540\u0005m\u0000\u0000\u0540"+ + "\u0541\u0005e\u0000\u0000\u0541\u008a\u0001\u0000\u0000\u0000\u0542\u0543"+ + "\u0005p\u0000\u0000\u0543\u0544\u0005r\u0000\u0000\u0544\u0545\u0005o"+ + "\u0000\u0000\u0545\u0546\u0005d\u0000\u0000\u0546\u0547\u0005u\u0000\u0000"+ + "\u0547\u0548\u0005c\u0000\u0000\u0548\u0549\u0005e\u0000\u0000\u0549\u054a"+ + "\u0005r\u0000\u0000\u054a\u008c\u0001\u0000\u0000\u0000\u054b\u054c\u0005"+ + "p\u0000\u0000\u054c\u054d\u0005u\u0000\u0000\u054d\u054e\u0005s\u0000"+ + "\u0000\u054e\u054f\u0005h\u0000\u0000\u054f\u0550\u0005-\u0000\u0000\u0550"+ + "\u0551\u0005r\u0000\u0000\u0551\u0552\u0005e\u0000\u0000\u0552\u0553\u0005"+ + "s\u0000\u0000\u0553\u0554\u0005u\u0000\u0000\u0554\u0555\u0005l\u0000"+ + "\u0000\u0555\u0556\u0005t\u0000\u0000\u0556\u0557\u0005-\u0000\u0000\u0557"+ + "\u0558\u0005a\u0000\u0000\u0558\u0559\u0005t\u0000\u0000\u0559\u008e\u0001"+ + "\u0000\u0000\u0000\u055a\u055b\u0005e\u0000\u0000\u055b\u055c\u0005x\u0000"+ + "\u0000\u055c\u055d\u0005e\u0000\u0000\u055d\u055e\u0005c\u0000\u0000\u055e"+ + "\u055f\u0005u\u0000\u0000\u055f\u0560\u0005t\u0000\u0000\u0560\u0561\u0005"+ + "e\u0000\u0000\u0561\u0090\u0001\u0000\u0000\u0000\u0562\u0563\u0005c\u0000"+ + "\u0000\u0563\u0564\u0005o\u0000\u0000\u0564\u0565\u0005n\u0000\u0000\u0565"+ + "\u0566\u0005s\u0000\u0000\u0566\u0567\u0005u\u0000\u0000\u0567\u0568\u0005"+ + "m\u0000\u0000\u0568\u0569\u0005e\u0000\u0000\u0569\u056a\u0005r\u0000"+ + "\u0000\u056a\u0092\u0001\u0000\u0000\u0000\u056b\u056c\u0005p\u0000\u0000"+ + "\u056c\u056d\u0005o\u0000\u0000\u056d\u056e\u0005p\u0000\u0000\u056e\u056f"+ + "\u0005-\u0000\u0000\u056f\u0570\u0005e\u0000\u0000\u0570\u0571\u0005v"+ + "\u0000\u0000\u0571\u0572\u0005e\u0000\u0000\u0572\u0573\u0005n\u0000\u0000"+ + "\u0573\u0574\u0005t\u0000\u0000\u0574\u0575\u0005-\u0000\u0000\u0575\u0576"+ + "\u0005f\u0000\u0000\u0576\u0577\u0005r\u0000\u0000\u0577\u0578\u0005o"+ + "\u0000\u0000\u0578\u0579\u0005m\u0000\u0000\u0579\u0094\u0001\u0000\u0000"+ + "\u0000\u057a\u057b\u0005p\u0000\u0000\u057b\u057c\u0005o\u0000\u0000\u057c"+ + "\u057d\u0005p\u0000\u0000\u057d\u057e\u0005-\u0000\u0000\u057e\u057f\u0005"+ + "r\u0000\u0000\u057f\u0580\u0005e\u0000\u0000\u0580\u0581\u0005s\u0000"+ + "\u0000\u0581\u0582\u0005u\u0000\u0000\u0582\u0583\u0005l\u0000\u0000\u0583"+ + "\u0584\u0005t\u0000\u0000\u0584\u0585\u0005-\u0000\u0000\u0585\u0586\u0005"+ + "f\u0000\u0000\u0586\u0587\u0005r\u0000\u0000\u0587\u0588\u0005o\u0000"+ + "\u0000\u0588\u0589\u0005m\u0000\u0000\u0589\u0096\u0001\u0000\u0000\u0000"+ + "\u058a\u058b\u0005l\u0000\u0000\u058b\u058c\u0005i\u0000\u0000\u058c\u058d"+ + "\u0005m\u0000\u0000\u058d\u058e\u0005i\u0000\u0000\u058e\u058f\u0005t"+ + "\u0000\u0000\u058f\u0098\u0001\u0000\u0000\u0000\u0590\u0591\u0005o\u0000"+ + "\u0000\u0591\u0592\u0005n\u0000\u0000\u0592\u0593\u0005-\u0000\u0000\u0593"+ + "\u0594\u0005s\u0000\u0000\u0594\u0595\u0005t\u0000\u0000\u0595\u0596\u0005"+ + "a\u0000\u0000\u0596\u0597\u0005n\u0000\u0000\u0597\u0598\u0005d\u0000"+ + "\u0000\u0598\u0599\u0005a\u0000\u0000\u0599\u059a\u0005l\u0000\u0000\u059a"+ + "\u059b\u0005o\u0000\u0000\u059b\u059c\u0005n\u0000\u0000\u059c\u059d\u0005"+ + "e\u0000\u0000\u059d\u009a\u0001\u0000\u0000\u0000\u059e\u059f\u0005p\u0000"+ + "\u0000\u059f\u05a0\u0005u\u0000\u0000\u05a0\u05a1\u0005s\u0000\u0000\u05a1"+ + "\u05a2\u0005h\u0000\u0000\u05a2\u05a3\u0005-\u0000\u0000\u05a3\u05a4\u0005"+ + "j\u0000\u0000\u05a4\u05a5\u0005s\u0000\u0000\u05a5\u05a6\u0005o\u0000"+ + "\u0000\u05a6\u05a7\u0005n\u0000\u0000\u05a7\u05a8\u0005-\u0000\u0000\u05a8"+ + "\u05a9\u0005i\u0000\u0000\u05a9\u05aa\u0005n\u0000\u0000\u05aa\u05ab\u0005"+ + "t\u0000\u0000\u05ab\u05ac\u0005o\u0000\u0000\u05ac\u05ad\u0005-\u0000"+ + "\u0000\u05ad\u05ae\u0005c\u0000\u0000\u05ae\u05af\u0005o\u0000\u0000\u05af"+ + "\u05b0\u0005n\u0000\u0000\u05b0\u05b1\u0005t\u0000\u0000\u05b1\u05b2\u0005"+ + "e\u0000\u0000\u05b2\u05b3\u0005x\u0000\u0000\u05b3\u05b4\u0005t\u0000"+ + "\u0000\u05b4\u009c\u0001\u0000\u0000\u0000\u05b5\u05b6\u0005w\u0000\u0000"+ + "\u05b6\u05b7\u0005i\u0000\u0000\u05b7\u05b8\u0005t\u0000\u0000\u05b8\u05b9"+ + "\u0005h\u0000\u0000\u05b9\u05ba\u0005-\u0000\u0000\u05ba\u05bb\u0005k"+ + "\u0000\u0000\u05bb\u05bc\u0005e\u0000\u0000\u05bc\u05bd\u0005y\u0000\u0000"+ + "\u05bd\u009e\u0001\u0000\u0000\u0000\u05be\u05bf\u0005u\u0000\u0000\u05bf"+ + "\u05c0\u0005s\u0000\u0000\u05c0\u05c1\u0005i\u0000\u0000\u05c1\u05c2\u0005"+ + "n\u0000\u0000\u05c2\u05c3\u0005g\u0000\u0000\u05c3\u05c4\u0005-\u0000"+ + "\u0000\u05c4\u05c5\u0005v\u0000\u0000\u05c5\u05c6\u0005a\u0000\u0000\u05c6"+ + "\u05c7\u0005l\u0000\u0000\u05c7\u05c8\u0005u\u0000\u0000\u05c8\u05c9\u0005"+ + "e\u0000\u0000\u05c9\u00a0\u0001\u0000\u0000\u0000\u05ca\u05cb\u0005m\u0000"+ + "\u0000\u05cb\u05cc\u0005a\u0000\u0000\u05cc\u05cd\u0005p\u0000\u0000\u05cd"+ + "\u05ce\u0005-\u0000\u0000\u05ce\u05cf\u0005j\u0000\u0000\u05cf\u05d0\u0005"+ + "s\u0000\u0000\u05d0\u05d1\u0005o\u0000\u0000\u05d1\u05d2\u0005n\u0000"+ + "\u0000\u05d2\u05d3\u0005-\u0000\u0000\u05d3\u05d4\u0005i\u0000\u0000\u05d4"+ + "\u05d5\u0005n\u0000\u0000\u05d5\u05d6\u0005t\u0000\u0000\u05d6\u05d7\u0005"+ + "o\u0000\u0000\u05d7\u05d8\u0005-\u0000\u0000\u05d8\u05d9\u0005c\u0000"+ + "\u0000\u05d9\u05da\u0005o\u0000\u0000\u05da\u05db\u0005n\u0000\u0000\u05db"+ + "\u05dc\u0005t\u0000\u0000\u05dc\u05dd\u0005e\u0000\u0000\u05dd\u05de\u0005"+ + "x\u0000\u0000\u05de\u05df\u0005t\u0000\u0000\u05df\u00a2\u0001\u0000\u0000"+ + "\u0000\u05e0\u05e1\u0005s\u0000\u0000\u05e1\u05e2\u0005h\u0000\u0000\u05e2"+ + "\u05e3\u0005a\u0000\u0000\u05e3\u05e4\u0005r\u0000\u0000\u05e4\u05e5\u0005"+ + "e\u0000\u0000\u05e5\u05e6\u0005p\u0000\u0000\u05e6\u05e7\u0005o\u0000"+ + "\u0000\u05e7\u05e8\u0005i\u0000\u0000\u05e8\u05e9\u0005n\u0000\u0000\u05e9"+ + "\u05ea\u0005t\u0000\u0000\u05ea\u00a4\u0001\u0000\u0000\u0000\u05eb\u05ec"+ + "\u0005c\u0000\u0000\u05ec\u05ed\u0005l\u0000\u0000\u05ed\u05ee\u0005i"+ + "\u0000\u0000\u05ee\u05ef\u0005e\u0000\u0000\u05ef\u05f0\u0005n\u0000\u0000"+ + "\u05f0\u05f1\u0005t\u0000\u0000\u05f1\u05f2\u0005-\u0000\u0000\u05f2\u05f3"+ + "\u0005i\u0000\u0000\u05f3\u05f4\u0005d\u0000\u0000\u05f4\u00a6\u0001\u0000"+ + "\u0000\u0000\u05f5\u05f6\u0005t\u0000\u0000\u05f6\u05f7\u0005e\u0000\u0000"+ + "\u05f7\u05f8\u0005n\u0000\u0000\u05f8\u05f9\u0005a\u0000\u0000\u05f9\u05fa"+ + "\u0005n\u0000\u0000\u05fa\u05fb\u0005t\u0000\u0000\u05fb\u05fc\u0005-"+ + "\u0000\u0000\u05fc\u05fd\u0005i\u0000\u0000\u05fd\u05fe\u0005d\u0000\u0000"+ + "\u05fe\u00a8\u0001\u0000\u0000\u0000\u05ff\u0600\u0005c\u0000\u0000\u0600"+ + "\u0601\u0005l\u0000\u0000\u0601\u0602\u0005i\u0000\u0000\u0602\u0603\u0005"+ + "e\u0000\u0000\u0603\u0604\u0005n\u0000\u0000\u0604\u0605\u0005t\u0000"+ + "\u0000\u0605\u0606\u0005-\u0000\u0000\u0606\u0607\u0005s\u0000\u0000\u0607"+ + "\u0608\u0005e\u0000\u0000\u0608\u0609\u0005c\u0000\u0000\u0609\u060a\u0005"+ + "r\u0000\u0000\u060a\u060b\u0005e\u0000\u0000\u060b\u060c\u0005t\u0000"+ + "\u0000\u060c\u00aa\u0001\u0000\u0000\u0000\u060d\u060e\u0005o\u0000\u0000"+ + "\u060e\u060f\u0005r\u0000\u0000\u060f\u0610\u0005g\u0000\u0000\u0610\u0611"+ + "\u0005-\u0000\u0000\u0611\u0612\u0005n\u0000\u0000\u0612\u0613\u0005a"+ + "\u0000\u0000\u0613\u0614\u0005m\u0000\u0000\u0614\u0615\u0005e\u0000\u0000"+ + "\u0615\u00ac\u0001\u0000\u0000\u0000\u0616\u0617\u0005a\u0000\u0000\u0617"+ + "\u0618\u0005c\u0000\u0000\u0618\u0619\u0005t\u0000\u0000\u0619\u061a\u0005"+ + "i\u0000\u0000\u061a\u061b\u0005o\u0000\u0000\u061b\u061c\u0005n\u0000"+ + "\u0000\u061c\u061d\u0005-\u0000\u0000\u061d\u061e\u0005t\u0000\u0000\u061e"+ + "\u061f\u0005y\u0000\u0000\u061f\u0620\u0005p\u0000\u0000\u0620\u0621\u0005"+ + "e\u0000\u0000\u0621\u00ae\u0001\u0000\u0000\u0000\u0622\u0623\u0005s\u0000"+ + "\u0000\u0623\u0624\u0005i\u0000\u0000\u0624\u0625\u0005t\u0000\u0000\u0625"+ + "\u0626\u0005e\u0000\u0000\u0626\u0627\u0005-\u0000\u0000\u0627\u0628\u0005"+ + "u\u0000\u0000\u0628\u0629\u0005r\u0000\u0000\u0629\u062a\u0005l\u0000"+ + "\u0000\u062a\u00b0\u0001\u0000\u0000\u0000\u062b\u062c\u0005s\u0000\u0000"+ + "\u062c\u062d\u0005o\u0000\u0000\u062d\u062e\u0005u\u0000\u0000\u062e\u062f"+ + "\u0005r\u0000\u0000\u062f\u0630\u0005c\u0000\u0000\u0630\u0631\u0005e"+ + "\u0000\u0000\u0631\u0632\u0005-\u0000\u0000\u0632\u0633\u0005r\u0000\u0000"+ + "\u0633\u0634\u0005e\u0000\u0000\u0634\u0635\u0005l\u0000\u0000\u0635\u0636"+ + "\u0005a\u0000\u0000\u0636\u0637\u0005t\u0000\u0000\u0637\u0638\u0005i"+ + "\u0000\u0000\u0638\u0639\u0005v\u0000\u0000\u0639\u063a\u0005e\u0000\u0000"+ + "\u063a\u063b\u0005-\u0000\u0000\u063b\u063c\u0005p\u0000\u0000\u063c\u063d"+ + "\u0005a\u0000\u0000\u063d\u063e\u0005t\u0000\u0000\u063e\u063f\u0005h"+ + "\u0000\u0000\u063f\u00b2\u0001\u0000\u0000\u0000\u0640\u0641\u0005f\u0000"+ + "\u0000\u0641\u0642\u0005i\u0000\u0000\u0642\u0643\u0005l\u0000\u0000\u0643"+ + "\u0644\u0005e\u0000\u0000\u0644\u0645\u0005-\u0000\u0000\u0645\u0646\u0005"+ + "n\u0000\u0000\u0646\u0647\u0005a\u0000\u0000\u0647\u0648\u0005m\u0000"+ + "\u0000\u0648\u0649\u0005e\u0000\u0000\u0649\u00b4\u0001\u0000\u0000\u0000"+ + "\u064a\u064b\u0005t\u0000\u0000\u064b\u064c\u0005a\u0000\u0000\u064c\u064d"+ + "\u0005r\u0000\u0000\u064d\u064e\u0005g\u0000\u0000\u064e\u064f\u0005e"+ + "\u0000\u0000\u064f\u0650\u0005t\u0000\u0000\u0650\u0651\u0005-\u0000\u0000"+ + "\u0651\u0652\u0005r\u0000\u0000\u0652\u0653\u0005e\u0000\u0000\u0653\u0654"+ + "\u0005l\u0000\u0000\u0654\u0655\u0005a\u0000\u0000\u0655\u0656\u0005t"+ + "\u0000\u0000\u0656\u0657\u0005i\u0000\u0000\u0657\u0658\u0005v\u0000\u0000"+ + "\u0658\u0659\u0005e\u0000\u0000\u0659\u065a\u0005-\u0000\u0000\u065a\u065b"+ + "\u0005p\u0000\u0000\u065b\u065c\u0005a\u0000\u0000\u065c\u065d\u0005t"+ + "\u0000\u0000\u065d\u065e\u0005h\u0000\u0000\u065e\u00b6\u0001\u0000\u0000"+ + "\u0000\u065f\u0660\u0005i\u0000\u0000\u0660\u0661\u0005f\u0000\u0000\u0661"+ + "\u00b8\u0001\u0000\u0000\u0000\u0662\u0663\u0005l\u0000\u0000\u0663\u0664"+ + "\u0005o\u0000\u0000\u0664\u0665\u0005g\u0000\u0000\u0665\u00ba\u0001\u0000"+ + "\u0000\u0000\u0666\u0667\u0005l\u0000\u0000\u0667\u0668\u0005e\u0000\u0000"+ + "\u0668\u0669\u0005v\u0000\u0000\u0669\u066a\u0005e\u0000\u0000\u066a\u066b"+ + "\u0005l\u0000\u0000\u066b\u00bc\u0001\u0000\u0000\u0000\u066c\u066d\u0005"+ + "m\u0000\u0000\u066d\u066e\u0005e\u0000\u0000\u066e\u066f\u0005s\u0000"+ + "\u0000\u066f\u0670\u0005s\u0000\u0000\u0670\u0671\u0005a\u0000\u0000\u0671"+ + "\u0672\u0005g\u0000\u0000\u0672\u0673\u0005e\u0000\u0000\u0673\u00be\u0001"+ + "\u0000\u0000\u0000\u0674\u0675\u0005r\u0000\u0000\u0675\u0676\u0005a\u0000"+ + "\u0000\u0676\u0677\u0005i\u0000\u0000\u0677\u0678\u0005s\u0000\u0000\u0678"+ + "\u0679\u0005e\u0000\u0000\u0679\u067a\u0005 \u0000\u0000\u067a\u067b\u0005"+ + "e\u0000\u0000\u067b\u067c\u0005x\u0000\u0000\u067c\u067d\u0005c\u0000"+ + "\u0000\u067d\u067e\u0005e\u0000\u0000\u067e\u067f\u0005p\u0000\u0000\u067f"+ + "\u0680\u0005t\u0000\u0000\u0680\u0681\u0005i\u0000\u0000\u0681\u0682\u0005"+ + "o\u0000\u0000\u0682\u0683\u0005n\u0000\u0000\u0683\u00c0\u0001\u0000\u0000"+ + "\u0000\u0684\u0685\u0005c\u0000\u0000\u0685\u0686\u0005h\u0000\u0000\u0686"+ + "\u0687\u0005e\u0000\u0000\u0687\u0688\u0005c\u0000\u0000\u0688\u0689\u0005"+ + "k\u0000\u0000\u0689\u068a\u0005s\u0000\u0000\u068a\u068b\u0005u\u0000"+ + "\u0000\u068b\u068c\u0005m\u0000\u0000\u068c\u00c2\u0001\u0000\u0000\u0000"+ + "\u068d\u068e\u0005f\u0000\u0000\u068e\u068f\u0005i\u0000\u0000\u068f\u0690"+ + "\u0005l\u0000\u0000\u0690\u0691\u0005e\u0000\u0000\u0691\u0692\u0005S"+ + "\u0000\u0000\u0692\u0693\u0005i\u0000\u0000\u0693\u0694\u0005z\u0000\u0000"+ + "\u0694\u0695\u0005e\u0000\u0000\u0695\u00c4\u0001\u0000\u0000\u0000\u0696"+ + "\u0697\u0005d\u0000\u0000\u0697\u0698\u0005o\u0000\u0000\u0698\u0699\u0005"+ + "w\u0000\u0000\u0699\u069a\u0005n\u0000\u0000\u069a\u069b\u0005l\u0000"+ + "\u0000\u069b\u069c\u0005o\u0000\u0000\u069c\u069d\u0005a\u0000\u0000\u069d"+ + "\u069e\u0005d\u0000\u0000\u069e\u069f\u0005-\u0000\u0000\u069f\u06a0\u0005"+ + "a\u0000\u0000\u06a0\u06a1\u0005s\u0000\u0000\u06a1\u06a2\u0005s\u0000"+ + "\u0000\u06a2\u06a3\u0005e\u0000\u0000\u06a3\u06a4\u0005t\u0000\u0000\u06a4"+ + "\u00c6\u0001\u0000\u0000\u0000\u06a5\u06a6\u0005f\u0000\u0000\u06a6\u06a7"+ + "\u0005r\u0000\u0000\u06a7\u06a8\u0005o\u0000\u0000\u06a8\u06a9\u0005m"+ + "\u0000\u0000\u06a9\u06aa\u0005-\u0000\u0000\u06aa\u06ab\u0005u\u0000\u0000"+ + "\u06ab\u06ac\u0005r\u0000\u0000\u06ac\u06ad\u0005l\u0000\u0000\u06ad\u00c8"+ + "\u0001\u0000\u0000\u0000\u06ae\u06af\u0005a\u0000\u0000\u06af\u06b0\u0005"+ + "t\u0000\u0000\u06b0\u00ca\u0001\u0000\u0000\u0000\u06b1\u06b2\u0005p\u0000"+ + "\u0000\u06b2\u06b3\u0005a\u0000\u0000\u06b3\u06b4\u0005p\u0000\u0000\u06b4"+ + "\u06b5\u0005e\u0000\u0000\u06b5\u06b6\u0005r\u0000\u0000\u06b6\u06b7\u0005"+ + "-\u0000\u0000\u06b7\u06b8\u0005i\u0000\u0000\u06b8\u06b9\u0005t\u0000"+ + "\u0000\u06b9\u06ba\u0005e\u0000\u0000\u06ba\u06bb\u0005m\u0000\u0000\u06bb"+ + "\u06bc\u0005i\u0000\u0000\u06bc\u06bd\u0005z\u0000\u0000\u06bd\u06be\u0005"+ + "a\u0000\u0000\u06be\u06bf\u0005t\u0000\u0000\u06bf\u06c0\u0005i\u0000"+ + "\u0000\u06c0\u06c1\u0005o\u0000\u0000\u06c1\u06c2\u0005n\u0000\u0000\u06c2"+ + "\u00cc\u0001\u0000\u0000\u0000\u06c3\u06c4\u0005f\u0000\u0000\u06c4\u06c5"+ + "\u0005r\u0000\u0000\u06c5\u06c6\u0005o\u0000\u0000\u06c6\u06c7\u0005m"+ + "\u0000\u0000\u06c7\u06c8\u0005-\u0000\u0000\u06c8\u06c9\u0005t\u0000\u0000"+ + "\u06c9\u06ca\u0005a\u0000\u0000\u06ca\u06cb\u0005r\u0000\u0000\u06cb\u06cc"+ + "\u0005g\u0000\u0000\u06cc\u06cd\u0005e\u0000\u0000\u06cd\u06ce\u0005t"+ + "\u0000\u0000\u06ce\u06cf\u0005-\u0000\u0000\u06cf\u06d0\u0005f\u0000\u0000"+ + "\u06d0\u06d1\u0005i\u0000\u0000\u06d1\u06d2\u0005l\u0000\u0000\u06d2\u06d3"+ + "\u0005e\u0000\u0000\u06d3\u00ce\u0001\u0000\u0000\u0000\u06d4\u06d5\u0005"+ + "a\u0000\u0000\u06d5\u06d6\u0005u\u0000\u0000\u06d6\u06d7\u0005t\u0000"+ + "\u0000\u06d7\u06d8\u0005o\u0000\u0000\u06d8\u06d9\u0005R\u0000\u0000\u06d9"+ + "\u06da\u0005o\u0000\u0000\u06da\u06db\u0005t\u0000\u0000\u06db\u06dc\u0005"+ + "a\u0000\u0000\u06dc\u06dd\u0005t\u0000\u0000\u06dd\u06de\u0005i\u0000"+ + "\u0000\u06de\u06df\u0005o\u0000\u0000\u06df\u06e0\u0005n\u0000\u0000\u06e0"+ + "\u00d0\u0001\u0000\u0000\u0000\u06e1\u06e2\u0005o\u0000\u0000\u06e2\u06e3"+ + "\u0005u\u0000\u0000\u06e3\u06e4\u0005t\u0000\u0000\u06e4\u06e5\u0005p"+ + "\u0000\u0000\u06e5\u06e6\u0005u\u0000\u0000\u06e6\u06e7\u0005t\u0000\u0000"+ + "\u06e7\u06e8\u0005-\u0000\u0000\u06e8\u06e9\u0005d\u0000\u0000\u06e9\u06ea"+ + "\u0005i\u0000\u0000\u06ea\u06eb\u0005r\u0000\u0000\u06eb\u00d2\u0001\u0000"+ + "\u0000\u0000\u06ec\u06ed\u0005p\u0000\u0000\u06ed\u06ee\u0005r\u0000\u0000"+ + "\u06ee\u06ef\u0005o\u0000\u0000\u06ef\u06f0\u0005c\u0000\u0000\u06f0\u06f1"+ + "\u0005e\u0000\u0000\u06f1\u06f2\u0005s\u0000\u0000\u06f2\u06f3\u0005s"+ + "\u0000\u0000\u06f3\u06f4\u0005-\u0000\u0000\u06f4\u06f5\u0005i\u0000\u0000"+ + "\u06f5\u06f6\u0005d\u0000\u0000\u06f6\u00d4\u0001\u0000\u0000\u0000\u06f7"+ + "\u06f8\u0005r\u0000\u0000\u06f8\u06f9\u0005e\u0000\u0000\u06f9\u06fa\u0005"+ + "s\u0000\u0000\u06fa\u06fb\u0005o\u0000\u0000\u06fb\u06fc\u0005u\u0000"+ + "\u0000\u06fc\u06fd\u0005r\u0000\u0000\u06fd\u06fe\u0005c\u0000\u0000\u06fe"+ + "\u06ff\u0005e\u0000\u0000\u06ff\u0700\u0005-\u0000\u0000\u0700\u0701\u0005"+ + "c\u0000\u0000\u0701\u0702\u0005o\u0000\u0000\u0702\u0703\u0005n\u0000"+ + "\u0000\u0703\u0704\u0005n\u0000\u0000\u0704\u00d6\u0001\u0000\u0000\u0000"+ + "\u0705\u0706\u0005b\u0000\u0000\u0706\u0707\u0005l\u0000\u0000\u0707\u0708"+ + "\u0005a\u0000\u0000\u0708\u0709\u0005n\u0000\u0000\u0709\u070a\u0005k"+ + "\u0000\u0000\u070a\u070b\u0005P\u0000\u0000\u070b\u070c\u0005a\u0000\u0000"+ + "\u070c\u070d\u0005g\u0000\u0000\u070d\u070e\u0005e"; + private static final String _serializedATNSegment1 = + "\u0000\u0000\u070e\u070f\u0005R\u0000\u0000\u070f\u0710\u0005e\u0000\u0000"+ + "\u0710\u0711\u0005m\u0000\u0000\u0711\u0712\u0005o\u0000\u0000\u0712\u0713"+ + "\u0005v\u0000\u0000\u0713\u0714\u0005e\u0000\u0000\u0714\u0715\u0005r"+ + "\u0000\u0000\u0715\u00d8\u0001\u0000\u0000\u0000\u0716\u0717\u0005q\u0000"+ + "\u0000\u0717\u0718\u0005r\u0000\u0000\u0718\u0719\u0005A\u0000\u0000\u0719"+ + "\u071a\u0005t\u0000\u0000\u071a\u071b\u0005t\u0000\u0000\u071b\u071c\u0005"+ + "r\u0000\u0000\u071c\u071d\u0005i\u0000\u0000\u071d\u071e\u0005b\u0000"+ + "\u0000\u071e\u071f\u0005u\u0000\u0000\u071f\u0720\u0005t\u0000\u0000\u0720"+ + "\u0721\u0005i\u0000\u0000\u0721\u0722\u0005o\u0000\u0000\u0722\u0723\u0005"+ + "n\u0000\u0000\u0723\u00da\u0001\u0000\u0000\u0000\u0724\u0725\u0005u\u0000"+ + "\u0000\u0725\u0726\u0005p\u0000\u0000\u0726\u0727\u0005l\u0000\u0000\u0727"+ + "\u0728\u0005o\u0000\u0000\u0728\u0729\u0005a\u0000\u0000\u0729\u072a\u0005"+ + "d\u0000\u0000\u072a\u072b\u0005A\u0000\u0000\u072b\u072c\u0005s\u0000"+ + "\u0000\u072c\u072d\u0005s\u0000\u0000\u072d\u072e\u0005e\u0000\u0000\u072e"+ + "\u072f\u0005t\u0000\u0000\u072f\u00dc\u0001\u0000\u0000\u0000\u0730\u0731"+ + "\u0005t\u0000\u0000\u0731\u0732\u0005e\u0000\u0000\u0732\u0733\u0005m"+ + "\u0000\u0000\u0733\u0734\u0005p\u0000\u0000\u0734\u0735\u0005l\u0000\u0000"+ + "\u0735\u0736\u0005a\u0000\u0000\u0736\u0737\u0005t\u0000\u0000\u0737\u0738"+ + "\u0005e\u0000\u0000\u0738\u0739\u0005-\u0000\u0000\u0739\u073a\u0005i"+ + "\u0000\u0000\u073a\u073b\u0005d\u0000\u0000\u073b\u00de\u0001\u0000\u0000"+ + "\u0000\u073c\u073d\u0005a\u0000\u0000\u073d\u073e\u0005u\u0000\u0000\u073e"+ + "\u073f\u0005t\u0000\u0000\u073f\u0740\u0005h\u0000\u0000\u0740\u0741\u0005"+ + "-\u0000\u0000\u0741\u0742\u0005t\u0000\u0000\u0742\u0743\u0005o\u0000"+ + "\u0000\u0743\u0744\u0005k\u0000\u0000\u0744\u0745\u0005e\u0000\u0000\u0745"+ + "\u0746\u0005n\u0000\u0000\u0746\u00e0\u0001\u0000\u0000\u0000\u0747\u0748"+ + "\u0005f\u0000\u0000\u0748\u0749\u0005i\u0000\u0000\u0749\u074a\u0005l"+ + "\u0000\u0000\u074a\u074b\u0005e\u0000\u0000\u074b\u074c\u0005M\u0000\u0000"+ + "\u074c\u074d\u0005e\u0000\u0000\u074d\u074e\u0005r\u0000\u0000\u074e\u074f"+ + "\u0005g\u0000\u0000\u074f\u0750\u0005e\u0000\u0000\u0750\u0751\u0005r"+ + "\u0000\u0000\u0751\u00e2\u0001\u0000\u0000\u0000\u0752\u0753\u0005i\u0000"+ + "\u0000\u0753\u0754\u0005n\u0000\u0000\u0754\u00e4\u0001\u0000\u0000\u0000"+ + "\u0755\u0756\u0005f\u0000\u0000\u0756\u0757\u0005t\u0000\u0000\u0757\u0758"+ + "\u0005p\u0000\u0000\u0758\u0759\u0005s\u0000\u0000\u0759\u075a\u0005_"+ + "\u0000\u0000\u075a\u075b\u0005u\u0000\u0000\u075b\u075c\u0005p\u0000\u0000"+ + "\u075c\u075d\u0005l\u0000\u0000\u075d\u075e\u0005o\u0000\u0000\u075e\u075f"+ + "\u0005a\u0000\u0000\u075f\u0760\u0005d\u0000\u0000\u0760\u00e6\u0001\u0000"+ + "\u0000\u0000\u0761\u0762\u0005w\u0000\u0000\u0762\u0763\u0005i\u0000\u0000"+ + "\u0763\u0764\u0005t\u0000\u0000\u0764\u0765\u0005h\u0000\u0000\u0765\u0766"+ + "\u0005-\u0000\u0000\u0766\u0767\u0005r\u0000\u0000\u0767\u0768\u0005e"+ + "\u0000\u0000\u0768\u0769\u0005m\u0000\u0000\u0769\u076a\u0005o\u0000\u0000"+ + "\u076a\u076b\u0005t\u0000\u0000\u076b\u076c\u0005e\u0000\u0000\u076c\u076d"+ + "\u0005-\u0000\u0000\u076d\u076e\u0005h\u0000\u0000\u076e\u076f\u0005o"+ + "\u0000\u0000\u076f\u0770\u0005s\u0000\u0000\u0770\u0771\u0005t\u0000\u0000"+ + "\u0771\u00e8\u0001\u0000\u0000\u0000\u0772\u0773\u0005p\u0000\u0000\u0773"+ + "\u0774\u0005o\u0000\u0000\u0774\u0775\u0005r\u0000\u0000\u0775\u0776\u0005"+ + "t\u0000\u0000\u0776\u00ea\u0001\u0000\u0000\u0000\u0777\u0778\u0005u\u0000"+ + "\u0000\u0778\u0779\u0005s\u0000\u0000\u0779\u077a\u0005e\u0000\u0000\u077a"+ + "\u077b\u0005r\u0000\u0000\u077b\u077c\u0005-\u0000\u0000\u077c\u077d\u0005"+ + "n\u0000\u0000\u077d\u077e\u0005a\u0000\u0000\u077e\u077f\u0005m\u0000"+ + "\u0000\u077f\u0780\u0005e\u0000\u0000\u0780\u00ec\u0001\u0000\u0000\u0000"+ + "\u0781\u0782\u0005p\u0000\u0000\u0782\u0783\u0005a\u0000\u0000\u0783\u0784"+ + "\u0005s\u0000\u0000\u0784\u0785\u0005s\u0000\u0000\u0785\u0786\u0005w"+ + "\u0000\u0000\u0786\u0787\u0005o\u0000\u0000\u0787\u0788\u0005r\u0000\u0000"+ + "\u0788\u0789\u0005d\u0000\u0000\u0789\u00ee\u0001\u0000\u0000\u0000\u078a"+ + "\u078b\u0005s\u0000\u0000\u078b\u078c\u0005e\u0000\u0000\u078c\u078d\u0005"+ + "s\u0000\u0000\u078d\u078e\u0005s\u0000\u0000\u078e\u078f\u0005i\u0000"+ + "\u0000\u078f\u0790\u0005o\u0000\u0000\u0790\u0791\u0005n\u0000\u0000\u0791"+ + "\u0792\u0005-\u0000\u0000\u0792\u0793\u0005t\u0000\u0000\u0793\u0794\u0005"+ + "i\u0000\u0000\u0794\u0795\u0005m\u0000\u0000\u0795\u0796\u0005e\u0000"+ + "\u0000\u0796\u0797\u0005o\u0000\u0000\u0797\u0798\u0005u\u0000\u0000\u0798"+ + "\u0799\u0005t\u0000\u0000\u0799\u00f0\u0001\u0000\u0000\u0000\u079a\u079b"+ + "\u0005s\u0000\u0000\u079b\u079c\u0005o\u0000\u0000\u079c\u079d\u0005u"+ + "\u0000\u0000\u079d\u079e\u0005r\u0000\u0000\u079e\u079f\u0005c\u0000\u0000"+ + "\u079f\u07a0\u0005e\u0000\u0000\u07a0\u07a1\u0005-\u0000\u0000\u07a1\u07a2"+ + "\u0005f\u0000\u0000\u07a2\u07a3\u0005i\u0000\u0000\u07a3\u07a4\u0005l"+ + "\u0000\u0000\u07a4\u07a5\u0005e\u0000\u0000\u07a5\u07a6\u0005-\u0000\u0000"+ + "\u07a6\u07a7\u0005t\u0000\u0000\u07a7\u07a8\u0005o\u0000\u0000\u07a8\u07a9"+ + "\u0005-\u0000\u0000\u07a9\u07aa\u0005u\u0000\u0000\u07aa\u07ab\u0005p"+ + "\u0000\u0000\u07ab\u07ac\u0005l\u0000\u0000\u07ac\u07ad\u0005o\u0000\u0000"+ + "\u07ad\u07ae\u0005a\u0000\u0000\u07ae\u07af\u0005d\u0000\u0000\u07af\u00f2"+ + "\u0001\u0000\u0000\u0000\u07b0\u07b1\u0005i\u0000\u0000\u07b1\u07b2\u0005"+ + "n\u0000\u0000\u07b2\u07b3\u0005-\u0000\u0000\u07b3\u07b4\u0005d\u0000"+ + "\u0000\u07b4\u07b5\u0005e\u0000\u0000\u07b5\u07b6\u0005s\u0000\u0000\u07b6"+ + "\u07b7\u0005t\u0000\u0000\u07b7\u07b8\u0005i\u0000\u0000\u07b8\u07b9\u0005"+ + "n\u0000\u0000\u07b9\u07ba\u0005a\u0000\u0000\u07ba\u07bb\u0005t\u0000"+ + "\u0000\u07bb\u07bc\u0005i\u0000\u0000\u07bc\u07bd\u0005o\u0000\u0000\u07bd"+ + "\u07be\u0005n\u0000\u0000\u07be\u07bf\u0005-\u0000\u0000\u07bf\u07c0\u0005"+ + "t\u0000\u0000\u07c0\u07c1\u0005o\u0000\u0000\u07c1\u07c2\u0005-\u0000"+ + "\u0000\u07c2\u07c3\u0005s\u0000\u0000\u07c3\u07c4\u0005a\u0000\u0000\u07c4"+ + "\u07c5\u0005v\u0000\u0000\u07c5\u07c6\u0005e\u0000\u0000\u07c6\u00f4\u0001"+ + "\u0000\u0000\u0000\u07c7\u07c8\u0005u\u0000\u0000\u07c8\u07c9\u0005p\u0000"+ + "\u0000\u07c9\u07ca\u0005l\u0000\u0000\u07ca\u07cb\u0005o\u0000\u0000\u07cb"+ + "\u07cc\u0005a\u0000\u0000\u07cc\u07cd\u0005d\u0000\u0000\u07cd\u07ce\u0005"+ + "-\u0000\u0000\u07ce\u07cf\u0005c\u0000\u0000\u07cf\u07d0\u0005h\u0000"+ + "\u0000\u07d0\u07d1\u0005e\u0000\u0000\u07d1\u07d2\u0005c\u0000\u0000\u07d2"+ + "\u07d3\u0005k\u0000\u0000\u07d3\u00f6\u0001\u0000\u0000\u0000\u07d4\u07d5"+ + "\u0005f\u0000\u0000\u07d5\u07d6\u0005t\u0000\u0000\u07d6\u07d7\u0005p"+ + "\u0000\u0000\u07d7\u07d8\u0005s\u0000\u0000\u07d8\u07d9\u0005_\u0000\u0000"+ + "\u07d9\u07da\u0005d\u0000\u0000\u07da\u07db\u0005o\u0000\u0000\u07db\u07dc"+ + "\u0005w\u0000\u0000\u07dc\u07dd\u0005n\u0000\u0000\u07dd\u07de\u0005l"+ + "\u0000\u0000\u07de\u07df\u0005o\u0000\u0000\u07df\u07e0\u0005a\u0000\u0000"+ + "\u07e0\u07e1\u0005d\u0000\u0000\u07e1\u00f8\u0001\u0000\u0000\u0000\u07e2"+ + "\u07e3\u0005s\u0000\u0000\u07e3\u07e4\u0005o\u0000\u0000\u07e4\u07e5\u0005"+ + "u\u0000\u0000\u07e5\u07e6\u0005r\u0000\u0000\u07e6\u07e7\u0005c\u0000"+ + "\u0000\u07e7\u07e8\u0005e\u0000\u0000\u07e8\u07e9\u0005-\u0000\u0000\u07e9"+ + "\u07ea\u0005f\u0000\u0000\u07ea\u07eb\u0005i\u0000\u0000\u07eb\u07ec\u0005"+ + "l\u0000\u0000\u07ec\u07ed\u0005e\u0000\u0000\u07ed\u07ee\u0005-\u0000"+ + "\u0000\u07ee\u07ef\u0005t\u0000\u0000\u07ef\u07f0\u0005o\u0000\u0000\u07f0"+ + "\u07f1\u0005-\u0000\u0000\u07f1\u07f2\u0005d\u0000\u0000\u07f2\u07f3\u0005"+ + "o\u0000\u0000\u07f3\u07f4\u0005w\u0000\u0000\u07f4\u07f5\u0005n\u0000"+ + "\u0000\u07f5\u07f6\u0005l\u0000\u0000\u07f6\u07f7\u0005o\u0000\u0000\u07f7"+ + "\u07f8\u0005a\u0000\u0000\u07f8\u07f9\u0005d\u0000\u0000\u07f9\u00fa\u0001"+ + "\u0000\u0000\u0000\u07fa\u07fb\u0005d\u0000\u0000\u07fb\u07fc\u0005o\u0000"+ + "\u0000\u07fc\u07fd\u0005w\u0000\u0000\u07fd\u07fe\u0005n\u0000\u0000\u07fe"+ + "\u07ff\u0005l\u0000\u0000\u07ff\u0800\u0005o\u0000\u0000\u0800\u0801\u0005"+ + "a\u0000\u0000\u0801\u0802\u0005d\u0000\u0000\u0802\u0803\u0005-\u0000"+ + "\u0000\u0803\u0804\u0005c\u0000\u0000\u0804\u0805\u0005h\u0000\u0000\u0805"+ + "\u0806\u0005e\u0000\u0000\u0806\u0807\u0005c\u0000\u0000\u0807\u0808\u0005"+ + "k\u0000\u0000\u0808\u00fc\u0001\u0000\u0000\u0000\u0809\u080a\u0005s\u0000"+ + "\u0000\u080a\u080b\u0005f\u0000\u0000\u080b\u080c\u0005t\u0000\u0000\u080c"+ + "\u080d\u0005p\u0000\u0000\u080d\u00fe\u0001\u0000\u0000\u0000\u080e\u080f"+ + "\u0005c\u0000\u0000\u080f\u0810\u0005h\u0000\u0000\u0810\u0811\u0005a"+ + "\u0000\u0000\u0811\u0812\u0005n\u0000\u0000\u0812\u0813\u0005n\u0000\u0000"+ + "\u0813\u0814\u0005e\u0000\u0000\u0814\u0815\u0005l\u0000\u0000\u0815\u0816"+ + "\u0005-\u0000\u0000\u0816\u0817\u0005t\u0000\u0000\u0817\u0818\u0005i"+ + "\u0000\u0000\u0818\u0819\u0005m\u0000\u0000\u0819\u081a\u0005e\u0000\u0000"+ + "\u081a\u081b\u0005o\u0000\u0000\u081b\u081c\u0005u\u0000\u0000\u081c\u081d"+ + "\u0005t\u0000\u0000\u081d\u0100\u0001\u0000\u0000\u0000\u081e\u081f\u0005"+ + "f\u0000\u0000\u081f\u0820\u0005t\u0000\u0000\u0820\u0821\u0005p\u0000"+ + "\u0000\u0821\u0102\u0001\u0000\u0000\u0000\u0822\u0823\u0005c\u0000\u0000"+ + "\u0823\u0824\u0005r\u0000\u0000\u0824\u0825\u0005e\u0000\u0000\u0825\u0826"+ + "\u0005a\u0000\u0000\u0826\u0827\u0005t\u0000\u0000\u0827\u0828\u0005e"+ + "\u0000\u0000\u0828\u0829\u0005-\u0000\u0000\u0829\u082a\u0005z\u0000\u0000"+ + "\u082a\u082b\u0005i\u0000\u0000\u082b\u082c\u0005p\u0000\u0000\u082c\u0104"+ + "\u0001\u0000\u0000\u0000\u082d\u082e\u0005e\u0000\u0000\u082e\u082f\u0005"+ + "x\u0000\u0000\u082f\u0830\u0005t\u0000\u0000\u0830\u0831\u0005r\u0000"+ + "\u0000\u0831\u0832\u0005a\u0000\u0000\u0832\u0833\u0005c\u0000\u0000\u0833"+ + "\u0834\u0005t\u0000\u0000\u0834\u0835\u0005-\u0000\u0000\u0835\u0836\u0005"+ + "z\u0000\u0000\u0836\u0837\u0005i\u0000\u0000\u0837\u0838\u0005p\u0000"+ + "\u0000\u0838\u0106\u0001\u0000\u0000\u0000\u0839\u083a\u0005s\u0000\u0000"+ + "\u083a\u083b\u0005o\u0000\u0000\u083b\u083c\u0005r\u0000\u0000\u083c\u083d"+ + "\u0005G\u0000\u0000\u083d\u083e\u0005r\u0000\u0000\u083e\u083f\u0005o"+ + "\u0000\u0000\u083f\u0840\u0005u\u0000\u0000\u0840\u0841\u0005p\u0000\u0000"+ + "\u0841\u0842\u0005D\u0000\u0000\u0842\u0843\u0005e\u0000\u0000\u0843\u0844"+ + "\u0005t\u0000\u0000\u0844\u0845\u0005a\u0000\u0000\u0845\u0846\u0005i"+ + "\u0000\u0000\u0846\u0847\u0005l\u0000\u0000\u0847\u0848\u0005s\u0000\u0000"+ + "\u0848\u0108\u0001\u0000\u0000\u0000\u0849\u084a\u0005k\u0000\u0000\u084a"+ + "\u084b\u0005e\u0000\u0000\u084b\u084c\u0005y\u0000\u0000\u084c\u084d\u0005"+ + "f\u0000\u0000\u084d\u084e\u0005i\u0000\u0000\u084e\u084f\u0005e\u0000"+ + "\u0000\u084f\u0850\u0005l\u0000\u0000\u0850\u0851\u0005d\u0000\u0000\u0851"+ + "\u0852\u0005s\u0000\u0000\u0852\u010a\u0001\u0000\u0000\u0000\u0853\u0854"+ + "\u0005s\u0000\u0000\u0854\u0855\u0005e\u0000\u0000\u0855\u0856\u0005a"+ + "\u0000\u0000\u0856\u0857\u0005r\u0000\u0000\u0857\u0858\u0005c\u0000\u0000"+ + "\u0858\u0859\u0005h\u0000\u0000\u0859\u085a\u0005f\u0000\u0000\u085a\u085b"+ + "\u0005i\u0000\u0000\u085b\u085c\u0005e\u0000\u0000\u085c\u085d\u0005l"+ + "\u0000\u0000\u085d\u085e\u0005d\u0000\u0000\u085e\u085f\u0005s\u0000\u0000"+ + "\u085f\u010c\u0001\u0000\u0000\u0000\u0860\u0861\u0005g\u0000\u0000\u0861"+ + "\u0862\u0005r\u0000\u0000\u0862\u0863\u0005o\u0000\u0000\u0863\u0864\u0005"+ + "u\u0000\u0000\u0864\u0865\u0005p\u0000\u0000\u0865\u0866\u0005b\u0000"+ + "\u0000\u0866\u0867\u0005y\u0000\u0000\u0867\u0868\u0005f\u0000\u0000\u0868"+ + "\u0869\u0005i\u0000\u0000\u0869\u086a\u0005e\u0000\u0000\u086a\u086b\u0005"+ + "l\u0000\u0000\u086b\u086c\u0005d\u0000\u0000\u086c\u086d\u0005s\u0000"+ + "\u0000\u086d\u010e\u0001\u0000\u0000\u0000\u086e\u086f\u0005t\u0000\u0000"+ + "\u086f\u0870\u0005a\u0000\u0000\u0870\u0871\u0005r\u0000\u0000\u0871\u0872"+ + "\u0005g\u0000\u0000\u0872\u0873\u0005e\u0000\u0000\u0873\u0874\u0005t"+ + "\u0000\u0000\u0874\u0875\u0005t\u0000\u0000\u0875\u0876\u0005a\u0000\u0000"+ + "\u0876\u0877\u0005b\u0000\u0000\u0877\u0878\u0005l\u0000\u0000\u0878\u0879"+ + "\u0005e\u0000\u0000\u0879\u0110\u0001\u0000\u0000\u0000\u087a\u087b\u0005"+ + "z\u0000\u0000\u087b\u087c\u0005e\u0000\u0000\u087c\u087d\u0005r\u0000"+ + "\u0000\u087d\u087e\u0005o\u0000\u0000\u087e\u087f\u0005S\u0000\u0000\u087f"+ + "\u0880\u0005h\u0000\u0000\u0880\u0881\u0005o\u0000\u0000\u0881\u0882\u0005"+ + "t\u0000\u0000\u0882\u0883\u0005C\u0000\u0000\u0883\u0884\u0005l\u0000"+ + "\u0000\u0884\u0885\u0005a\u0000\u0000\u0885\u0886\u0005s\u0000\u0000\u0886"+ + "\u0887\u0005s\u0000\u0000\u0887\u0888\u0005i\u0000\u0000\u0888\u0889\u0005"+ + "f\u0000\u0000\u0889\u088a\u0005i\u0000\u0000\u088a\u088b\u0005e\u0000"+ + "\u0000\u088b\u088c\u0005r\u0000\u0000\u088c\u0112\u0001\u0000\u0000\u0000"+ + "\u088d\u088e\u0005w\u0000\u0000\u088e\u088f\u0005i\u0000\u0000\u088f\u0890"+ + "\u0005t\u0000\u0000\u0890\u0891\u0005h\u0000\u0000\u0891\u0892\u0005-"+ + "\u0000\u0000\u0892\u0893\u0005c\u0000\u0000\u0893\u0894\u0005a\u0000\u0000"+ + "\u0894\u0895\u0005n\u0000\u0000\u0895\u0896\u0005d\u0000\u0000\u0896\u0897"+ + "\u0005i\u0000\u0000\u0897\u0898\u0005d\u0000\u0000\u0898\u0899\u0005a"+ + "\u0000\u0000\u0899\u089a\u0005t\u0000\u0000\u089a\u089b\u0005e\u0000\u0000"+ + "\u089b\u089c\u0005-\u0000\u0000\u089c\u089d\u0005l\u0000\u0000\u089d\u089e"+ + "\u0005a\u0000\u0000\u089e\u089f\u0005b\u0000\u0000\u089f\u08a0\u0005e"+ + "\u0000\u0000\u08a0\u08a1\u0005l\u0000\u0000\u08a1\u08a2\u0005s\u0000\u0000"+ + "\u08a2\u0114\u0001\u0000\u0000\u0000\u08a3\u08a4\u0005l\u0000\u0000\u08a4"+ + "\u08a5\u0005o\u0000\u0000\u08a5\u08a6\u0005a\u0000\u0000\u08a6\u08a7\u0005"+ + "d\u0000\u0000\u08a7\u08a8\u0005E\u0000\u0000\u08a8\u08a9\u0005x\u0000"+ + "\u0000\u08a9\u08aa\u0005t\u0000\u0000\u08aa\u08ab\u0005r\u0000\u0000\u08ab"+ + "\u08ac\u0005a\u0000\u0000\u08ac\u08ad\u0005c\u0000\u0000\u08ad\u08ae\u0005"+ + "t\u0000\u0000\u08ae\u08af\u0005e\u0000\u0000\u08af\u08b0\u0005d\u0000"+ + "\u0000\u08b0\u08b1\u0005D\u0000\u0000\u08b1\u08b2\u0005a\u0000\u0000\u08b2"+ + "\u08b3\u0005t\u0000\u0000\u08b3\u08b4\u0005a\u0000\u0000\u08b4\u0116\u0001"+ + "\u0000\u0000\u0000\u08b5\u08b6\u0005f\u0000\u0000\u08b6\u08b7\u0005i\u0000"+ + "\u0000\u08b7\u08b8\u0005l\u0000\u0000\u08b8\u08b9\u0005e\u0000\u0000\u08b9"+ + "\u08ba\u0005-\u0000\u0000\u08ba\u08bb\u0005p\u0000\u0000\u08bb\u08bc\u0005"+ + "a\u0000\u0000\u08bc\u08bd\u0005t\u0000\u0000\u08bd\u08be\u0005h\u0000"+ + "\u0000\u08be\u0118\u0001\u0000\u0000\u0000\u08bf\u08c0\u0005p\u0000\u0000"+ + "\u08c0\u08c1\u0005a\u0000\u0000\u08c1\u08c2\u0005p\u0000\u0000\u08c2\u08c3"+ + "\u0005e\u0000\u0000\u08c3\u08c4\u0005r\u0000\u0000\u08c4\u08c5\u0005-"+ + "\u0000\u0000\u08c5\u08c6\u0005n\u0000\u0000\u08c6\u08c7\u0005o\u0000\u0000"+ + "\u08c7\u011a\u0001\u0000\u0000\u0000\u08c8\u08c9\u0005i\u0000\u0000\u08c9"+ + "\u08ca\u0005n\u0000\u0000\u08ca\u08cb\u0005t\u0000\u0000\u08cb\u08cc\u0005"+ + "i\u0000\u0000\u08cc\u08cd\u0005c\u0000\u0000\u08cd\u08ce\u0005s\u0000"+ + "\u0000\u08ce\u08cf\u0005-\u0000\u0000\u08cf\u08d0\u0005r\u0000\u0000\u08d0"+ + "\u08d1\u0005e\u0000\u0000\u08d1\u08d2\u0005f\u0000\u0000\u08d2\u08d3\u0005"+ + "e\u0000\u0000\u08d3\u08d4\u0005r\u0000\u0000\u08d4\u08d5\u0005e\u0000"+ + "\u0000\u08d5\u08d6\u0005n\u0000\u0000\u08d6\u08d7\u0005c\u0000\u0000\u08d7"+ + "\u08d8\u0005e\u0000\u0000\u08d8\u08d9\u0005-\u0000\u0000\u08d9\u08da\u0005"+ + "i\u0000\u0000\u08da\u08db\u0005d\u0000\u0000\u08db\u011c\u0001\u0000\u0000"+ + "\u0000\u08dc\u08dd\u0005b\u0000\u0000\u08dd\u08de\u0005a\u0000\u0000\u08de"+ + "\u08df\u0005t\u0000\u0000\u08df\u08e0\u0005c\u0000\u0000\u08e0\u08e1\u0005"+ + "h\u0000\u0000\u08e1\u08e2\u0005-\u0000\u0000\u08e2\u08e3\u0005i\u0000"+ + "\u0000\u08e3\u08e4\u0005d\u0000\u0000\u08e4\u011e\u0001\u0000\u0000\u0000"+ + "\u08e5\u08e6\u0005t\u0000\u0000\u08e6\u08e7\u0005a\u0000\u0000\u08e7\u08e8"+ + "\u0005r\u0000\u0000\u08e8\u08e9\u0005g\u0000\u0000\u08e9\u08ea\u0005e"+ + "\u0000\u0000\u08ea\u08eb\u0005t\u0000\u0000\u08eb\u08ec\u0005-\u0000\u0000"+ + "\u08ec\u08ed\u0005d\u0000\u0000\u08ed\u08ee\u0005i\u0000\u0000\u08ee\u08ef"+ + "\u0005r\u0000\u0000\u08ef\u0120\u0001\u0000\u0000\u0000\u08f0\u08f1\u0005"+ + "a\u0000\u0000\u08f1\u08f2\u0005b\u0000\u0000\u08f2\u08f3\u0005s\u0000"+ + "\u0000\u08f3\u08f4\u0005e\u0000\u0000\u08f4\u08f5\u0005n\u0000\u0000\u08f5"+ + "\u08f6\u0005t\u0000\u0000\u08f6\u08f7\u0005K\u0000\u0000\u08f7\u08f8\u0005"+ + "e\u0000\u0000\u08f8\u08f9\u0005y\u0000\u0000\u08f9\u08fa\u0005F\u0000"+ + "\u0000\u08fa\u08fb\u0005i\u0000\u0000\u08fb\u08fc\u0005l\u0000\u0000\u08fc"+ + "\u08fd\u0005t\u0000\u0000\u08fd\u08fe\u0005e\u0000\u0000\u08fe\u08ff\u0005"+ + "r\u0000\u0000\u08ff\u0122\u0001\u0000\u0000\u0000\u0900\u0901\u0005s\u0000"+ + "\u0000\u0901\u0902\u0005o\u0000\u0000\u0902\u0903\u0005r\u0000\u0000\u0903"+ + "\u0904\u0005-\u0000\u0000\u0904\u0905\u0005l\u0000\u0000\u0905\u0906\u0005"+ + "i\u0000\u0000\u0906\u0907\u0005s\u0000\u0000\u0907\u0908\u0005t\u0000"+ + "\u0000\u0908\u0124\u0001\u0000\u0000\u0000\u0909\u090a\u0005s\u0000\u0000"+ + "\u090a\u090b\u0005o\u0000\u0000\u090b\u090c\u0005r\u0000\u0000\u090c\u090d"+ + "\u0005F\u0000\u0000\u090d\u090e\u0005i\u0000\u0000\u090e\u090f\u0005l"+ + "\u0000\u0000\u090f\u0910\u0005t\u0000\u0000\u0910\u0911\u0005e\u0000\u0000"+ + "\u0911\u0912\u0005r\u0000\u0000\u0912\u0126\u0001\u0000\u0000\u0000\u0913"+ + "\u0914\u0005s\u0000\u0000\u0914\u0915\u0005e\u0000\u0000\u0915\u0916\u0005"+ + "a\u0000\u0000\u0916\u0917\u0005r\u0000\u0000\u0917\u0918\u0005c\u0000"+ + "\u0000\u0918\u0919\u0005h\u0000\u0000\u0919\u091a\u0005-\u0000\u0000\u091a"+ + "\u091b\u0005v\u0000\u0000\u091b\u091c\u0005a\u0000\u0000\u091c\u091d\u0005"+ + "l\u0000\u0000\u091d\u091e\u0005u\u0000\u0000\u091e\u091f\u0005e\u0000"+ + "\u0000\u091f\u0128\u0001\u0000\u0000\u0000\u0920\u0921\u0005t\u0000\u0000"+ + "\u0921\u0922\u0005r\u0000\u0000\u0922\u0923\u0005i\u0000\u0000\u0923\u0924"+ + "\u0005a\u0000\u0000\u0924\u0925\u0005g\u0000\u0000\u0925\u0926\u0005e"+ + "\u0000\u0000\u0926\u012a\u0001\u0000\u0000\u0000\u0927\u0928\u0005i\u0000"+ + "\u0000\u0928\u0929\u0005n\u0000\u0000\u0929\u092a\u0005-\u0000\u0000\u092a"+ + "\u092b\u0005o\u0000\u0000\u092b\u092c\u0005u\u0000\u0000\u092c\u092d\u0005"+ + "t\u0000\u0000\u092d\u092e\u0005p\u0000\u0000\u092e\u092f\u0005u\u0000"+ + "\u0000\u092f\u0930\u0005t\u0000\u0000\u0930\u0931\u0005-\u0000\u0000\u0931"+ + "\u0932\u0005d\u0000\u0000\u0932\u0933\u0005i\u0000\u0000\u0933\u0934\u0005"+ + "r\u0000\u0000\u0934\u012c\u0001\u0000\u0000\u0000\u0935\u0936\u0005w\u0000"+ + "\u0000\u0936\u0937\u0005i\u0000\u0000\u0937\u0938\u0005t\u0000\u0000\u0938"+ + "\u0939\u0005h\u0000\u0000\u0939\u093a\u0005-\u0000\u0000\u093a\u093b\u0005"+ + "l\u0000\u0000\u093b\u093c\u0005a\u0000\u0000\u093c\u093d\u0005b\u0000"+ + "\u0000\u093d\u093e\u0005e\u0000\u0000\u093e\u093f\u0005l\u0000\u0000\u093f"+ + "\u0940\u0005l\u0000\u0000\u0940\u0941\u0005e\u0000\u0000\u0941\u0942\u0005"+ + "d\u0000\u0000\u0942\u0943\u0005-\u0000\u0000\u0943\u0944\u0005c\u0000"+ + "\u0000\u0944\u0945\u0005l\u0000\u0000\u0945\u0946\u0005a\u0000\u0000\u0946"+ + "\u0947\u0005s\u0000\u0000\u0947\u0948\u0005s\u0000\u0000\u0948\u0949\u0005"+ + "i\u0000\u0000\u0949\u094a\u0005f\u0000\u0000\u094a\u094b\u0005i\u0000"+ + "\u0000\u094b\u094c\u0005e\u0000\u0000\u094c\u094d\u0005r\u0000\u0000\u094d"+ + "\u094e\u0005-\u0000\u0000\u094e\u094f\u0005m\u0000\u0000\u094f\u0950\u0005"+ + "o\u0000\u0000\u0950\u0951\u0005d\u0000\u0000\u0951\u0952\u0005e\u0000"+ + "\u0000\u0952\u0953\u0005l\u0000\u0000\u0953\u0954\u0005-\u0000\u0000\u0954"+ + "\u0955\u0005p\u0000\u0000\u0955\u0956\u0005a\u0000\u0000\u0956\u0957\u0005"+ + "t\u0000\u0000\u0957\u0958\u0005h\u0000\u0000\u0958\u012e\u0001\u0000\u0000"+ + "\u0000\u0959\u095a\u0005w\u0000\u0000\u095a\u095b\u0005i\u0000\u0000\u095b"+ + "\u095c\u0005t\u0000\u0000\u095c\u095d\u0005h\u0000\u0000\u095d\u095e\u0005"+ + "-\u0000\u0000\u095e\u095f\u0005h\u0000\u0000\u095f\u0960\u0005a\u0000"+ + "\u0000\u0960\u0961\u0005n\u0000\u0000\u0961\u0962\u0005d\u0000\u0000\u0962"+ + "\u0963\u0005w\u0000\u0000\u0963\u0964\u0005r\u0000\u0000\u0964\u0965\u0005"+ + "i\u0000\u0000\u0965\u0966\u0005t\u0000\u0000\u0966\u0967\u0005t\u0000"+ + "\u0000\u0967\u0968\u0005e\u0000\u0000\u0968\u0969\u0005n\u0000\u0000\u0969"+ + "\u096a\u0005-\u0000\u0000\u096a\u096b\u0005e\u0000\u0000\u096b\u096c\u0005"+ + "x\u0000\u0000\u096c\u096d\u0005t\u0000\u0000\u096d\u096e\u0005r\u0000"+ + "\u0000\u096e\u096f\u0005a\u0000\u0000\u096f\u0970\u0005c\u0000\u0000\u0970"+ + "\u0971\u0005t\u0000\u0000\u0971\u0972\u0005o\u0000\u0000\u0972\u0973\u0005"+ + "r\u0000\u0000\u0973\u0974\u0005-\u0000\u0000\u0974\u0975\u0005m\u0000"+ + "\u0000\u0975\u0976\u0005o\u0000\u0000\u0976\u0977\u0005d\u0000\u0000\u0977"+ + "\u0978\u0005e\u0000\u0000\u0978\u0979\u0005l\u0000\u0000\u0979\u097a\u0005"+ + "-\u0000\u0000\u097a\u097b\u0005p\u0000\u0000\u097b\u097c\u0005a\u0000"+ + "\u0000\u097c\u097d\u0005t\u0000\u0000\u097d\u097e\u0005h\u0000\u0000\u097e"+ + "\u0130\u0001\u0000\u0000\u0000\u097f\u0980\u0005w\u0000\u0000\u0980\u0981"+ + "\u0005i\u0000\u0000\u0981\u0982\u0005t\u0000\u0000\u0982\u0983\u0005h"+ + "\u0000\u0000\u0983\u0984\u0005-\u0000\u0000\u0984\u0985\u0005c\u0000\u0000"+ + "\u0985\u0986\u0005h\u0000\u0000\u0986\u0987\u0005e\u0000\u0000\u0987\u0988"+ + "\u0005c\u0000\u0000\u0988\u0989\u0005k\u0000\u0000\u0989\u098a\u0005b"+ + "\u0000\u0000\u098a\u098b\u0005o\u0000\u0000\u098b\u098c\u0005x\u0000\u0000"+ + "\u098c\u098d\u0005-\u0000\u0000\u098d\u098e\u0005e\u0000\u0000\u098e\u098f"+ + "\u0005x\u0000\u0000\u098f\u0990\u0005t\u0000\u0000\u0990\u0991\u0005r"+ + "\u0000\u0000\u0991\u0992\u0005a\u0000\u0000\u0992\u0993\u0005c\u0000\u0000"+ + "\u0993\u0994\u0005t\u0000\u0000\u0994\u0995\u0005o\u0000\u0000\u0995\u0996"+ + "\u0005r\u0000\u0000\u0996\u0997\u0005-\u0000\u0000\u0997\u0998\u0005m"+ + "\u0000\u0000\u0998\u0999\u0005o\u0000\u0000\u0999\u099a\u0005d\u0000\u0000"+ + "\u099a\u099b\u0005e\u0000\u0000\u099b\u099c\u0005l\u0000\u0000\u099c\u099d"+ + "\u0005-\u0000\u0000\u099d\u099e\u0005p\u0000\u0000\u099e\u099f\u0005a"+ + "\u0000\u0000\u099f\u09a0\u0005t\u0000\u0000\u09a0\u09a1\u0005h\u0000\u0000"+ + "\u09a1\u0132\u0001\u0000\u0000\u0000\u09a2\u09a3\u0005u\u0000\u0000\u09a3"+ + "\u09a4\u0005s\u0000\u0000\u09a4\u09a5\u0005i\u0000\u0000\u09a5\u09a6\u0005"+ + "n\u0000\u0000\u09a6\u09a7\u0005g\u0000\u0000\u09a7\u09a8\u0005-\u0000"+ + "\u0000\u09a8\u09a9\u0005s\u0000\u0000\u09a9\u09aa\u0005y\u0000\u0000\u09aa"+ + "\u09ab\u0005n\u0000\u0000\u09ab\u09ac\u0005o\u0000\u0000\u09ac\u09ad\u0005"+ + "n\u0000\u0000\u09ad\u09ae\u0005y\u0000\u0000\u09ae\u09af\u0005m\u0000"+ + "\u0000\u09af\u09b0\u0005s\u0000\u0000\u09b0\u0134\u0001\u0000\u0000\u0000"+ + "\u09b1\u09b2\u0005u\u0000\u0000\u09b2\u09b3\u0005s\u0000\u0000\u09b3\u09b4"+ + "\u0005i\u0000\u0000\u09b4\u09b5\u0005n\u0000\u0000\u09b5\u09b6\u0005g"+ + "\u0000\u0000\u09b6\u09b7\u0005-\u0000\u0000\u09b7\u09b8\u0005l\u0000\u0000"+ + "\u09b8\u09b9\u0005a\u0000\u0000\u09b9\u09ba\u0005b\u0000\u0000\u09ba\u09bb"+ + "\u0005e\u0000\u0000\u09bb\u09bc\u0005l\u0000\u0000\u09bc\u09bd\u0005l"+ + "\u0000\u0000\u09bd\u09be\u0005e\u0000\u0000\u09be\u09bf\u0005d\u0000\u0000"+ + "\u09bf\u09c0\u0005-\u0000\u0000\u09c0\u09c1\u0005c\u0000\u0000\u09c1\u09c2"+ + "\u0005l\u0000\u0000\u09c2\u09c3\u0005a\u0000\u0000\u09c3\u09c4\u0005s"+ + "\u0000\u0000\u09c4\u09c5\u0005s\u0000\u0000\u09c5\u09c6\u0005i\u0000\u0000"+ + "\u09c6\u09c7\u0005f\u0000\u0000\u09c7\u09c8\u0005i\u0000\u0000\u09c8\u09c9"+ + "\u0005e\u0000\u0000\u09c9\u09ca\u0005r\u0000\u0000\u09ca\u09cb\u0005-"+ + "\u0000\u0000\u09cb\u09cc\u0005l\u0000\u0000\u09cc\u09cd\u0005a\u0000\u0000"+ + "\u09cd\u09ce\u0005b\u0000\u0000\u09ce\u09cf\u0005e\u0000\u0000\u09cf\u09d0"+ + "\u0005l\u0000\u0000\u09d0\u09d1\u0005s\u0000\u0000\u09d1\u0136\u0001\u0000"+ + "\u0000\u0000\u09d2\u09d3\u0005u\u0000\u0000\u09d3\u09d4\u0005s\u0000\u0000"+ + "\u09d4\u09d5\u0005i\u0000\u0000\u09d5\u09d6\u0005n\u0000\u0000\u09d6\u09d7"+ + "\u0005g\u0000\u0000\u09d7\u09d8\u0005-\u0000\u0000\u09d8\u09d9\u0005v"+ + "\u0000\u0000\u09d9\u09da\u0005i\u0000\u0000\u09da\u09db\u0005l\u0000\u0000"+ + "\u09db\u09dc\u0005t\u0000\u0000\u09dc\u09dd\u0005-\u0000\u0000\u09dd\u09de"+ + "\u0005c\u0000\u0000\u09de\u09df\u0005o\u0000\u0000\u09df\u09e0\u0005c"+ + "\u0000\u0000\u09e0\u09e1\u0005o\u0000\u0000\u09e1\u09e2\u0005-\u0000\u0000"+ + "\u09e2\u09e3\u0005l\u0000\u0000\u09e3\u09e4\u0005a\u0000\u0000\u09e4\u09e5"+ + "\u0005b\u0000\u0000\u09e5\u09e6\u0005e\u0000\u0000\u09e6\u09e7\u0005l"+ + "\u0000\u0000\u09e7\u09e8\u0005s\u0000\u0000\u09e8\u0138\u0001\u0000\u0000"+ + "\u0000\u09e9\u09ea\u0005a\u0000\u0000\u09ea\u09eb\u0005d\u0000\u0000\u09eb"+ + "\u09ec\u0005d\u0000\u0000\u09ec\u09ed\u0005-\u0000\u0000\u09ed\u09ee\u0005"+ + "v\u0000\u0000\u09ee\u09ef\u0005i\u0000\u0000\u09ef\u09f0\u0005l\u0000"+ + "\u0000\u09f0\u09f1\u0005t\u0000\u0000\u09f1\u09f2\u0005-\u0000\u0000\u09f2"+ + "\u09f3\u0005q\u0000\u0000\u09f3\u09f4\u0005u\u0000\u0000\u09f4\u09f5\u0005"+ + "e\u0000\u0000\u09f5\u09f6\u0005s\u0000\u0000\u09f6\u09f7\u0005t\u0000"+ + "\u0000\u09f7\u09f8\u0005i\u0000\u0000\u09f8\u09f9\u0005o\u0000\u0000\u09f9"+ + "\u09fa\u0005n\u0000\u0000\u09fa\u09fb\u0005-\u0000\u0000\u09fb\u09fc\u0005"+ + "c\u0000\u0000\u09fc\u09fd\u0005o\u0000\u0000\u09fd\u09fe\u0005n\u0000"+ + "\u0000\u09fe\u09ff\u0005f\u0000\u0000\u09ff\u0a00\u0005i\u0000\u0000\u0a00"+ + "\u0a01\u0005g\u0000\u0000\u0a01\u013a\u0001\u0000\u0000\u0000\u0a02\u0a03"+ + "\u0005a\u0000\u0000\u0a03\u0a04\u0005d\u0000\u0000\u0a04\u0a05\u0005d"+ + "\u0000\u0000\u0a05\u0a06\u0005-\u0000\u0000\u0a06\u0a07\u0005v\u0000\u0000"+ + "\u0a07\u0a08\u0005i\u0000\u0000\u0a08\u0a09\u0005l\u0000\u0000\u0a09\u0a0a"+ + "\u0005t\u0000\u0000\u0a0a\u0a0b\u0005-\u0000\u0000\u0a0b\u0a0c\u0005c"+ + "\u0000\u0000\u0a0c\u0a0d\u0005o\u0000\u0000\u0a0d\u0a0e\u0005c\u0000\u0000"+ + "\u0a0e\u0a0f\u0005o\u0000\u0000\u0a0f\u0a10\u0005-\u0000\u0000\u0a10\u0a11"+ + "\u0005o\u0000\u0000\u0a11\u0a12\u0005v\u0000\u0000\u0a12\u0a13\u0005e"+ + "\u0000\u0000\u0a13\u0a14\u0005r\u0000\u0000\u0a14\u0a15\u0005i\u0000\u0000"+ + "\u0a15\u0a16\u0005d\u0000\u0000\u0a16\u0a17\u0005e\u0000\u0000\u0a17\u0a18"+ + "\u0005-\u0000\u0000\u0a18\u0a19\u0005c\u0000\u0000\u0a19\u0a1a\u0005o"+ + "\u0000\u0000\u0a1a\u0a1b\u0005n\u0000\u0000\u0a1b\u0a1c\u0005f\u0000\u0000"+ + "\u0a1c\u0a1d\u0005i\u0000\u0000\u0a1d\u0a1e\u0005g\u0000\u0000\u0a1e\u013c"+ + "\u0001\u0000\u0000\u0000\u0a1f\u0a20\u0005a\u0000\u0000\u0a20\u0a21\u0005"+ + "d\u0000\u0000\u0a21\u0a22\u0005d\u0000\u0000\u0a22\u0a23\u0005-\u0000"+ + "\u0000\u0a23\u0a24\u0005v\u0000\u0000\u0a24\u0a25\u0005i\u0000\u0000\u0a25"+ + "\u0a26\u0005l\u0000\u0000\u0a26\u0a27\u0005t\u0000\u0000\u0a27\u0a28\u0005"+ + "-\u0000\u0000\u0a28\u0a29\u0005c\u0000\u0000\u0a29\u0a2a\u0005o\u0000"+ + "\u0000\u0a2a\u0a2b\u0005c\u0000\u0000\u0a2b\u0a2c\u0005o\u0000\u0000\u0a2c"+ + "\u0a2d\u0005-\u0000\u0000\u0a2d\u0a2e\u0005t\u0000\u0000\u0a2e\u0a2f\u0005"+ + "h\u0000\u0000\u0a2f\u0a30\u0005r\u0000\u0000\u0a30\u0a31\u0005e\u0000"+ + "\u0000\u0a31\u0a32\u0005s\u0000\u0000\u0a32\u0a33\u0005h\u0000\u0000\u0a33"+ + "\u0a34\u0005o\u0000\u0000\u0a34\u0a35\u0005l\u0000\u0000\u0a35\u0a36\u0005"+ + "d\u0000\u0000\u0a36\u0a37\u0005-\u0000\u0000\u0a37\u0a38\u0005c\u0000"+ + "\u0000\u0a38\u0a39\u0005o\u0000\u0000\u0a39\u0a3a\u0005n\u0000\u0000\u0a3a"+ + "\u0a3b\u0005f\u0000\u0000\u0a3b\u0a3c\u0005i\u0000\u0000\u0a3c\u0a3d\u0005"+ + "g\u0000\u0000\u0a3d\u013e\u0001\u0000\u0000\u0000\u0a3e\u0a3f\u0005a\u0000"+ + "\u0000\u0a3f\u0a40\u0005d\u0000\u0000\u0a40\u0a41\u0005d\u0000\u0000\u0a41"+ + "\u0a42\u0005-\u0000\u0000\u0a42\u0a43\u0005c\u0000\u0000\u0a43\u0a44\u0005"+ + "o\u0000\u0000\u0a44\u0a45\u0005n\u0000\u0000\u0a45\u0a46\u0005f\u0000"+ + "\u0000\u0a46\u0a47\u0005i\u0000\u0000\u0a47\u0a48\u0005g\u0000\u0000\u0a48"+ + "\u0a49\u0005-\u0000\u0000\u0a49\u0a4a\u0005v\u0000\u0000\u0a4a\u0a4b\u0005"+ + "g\u0000\u0000\u0a4b\u0a4c\u0005g\u0000\u0000\u0a4c\u0a4d\u0005-\u0000"+ + "\u0000\u0a4d\u0a4e\u0005i\u0000\u0000\u0a4e\u0a4f\u0005m\u0000\u0000\u0a4f"+ + "\u0a50\u0005g\u0000\u0000\u0a50\u0a51\u0005-\u0000\u0000\u0a51\u0a52\u0005"+ + "w\u0000\u0000\u0a52\u0a53\u0005i\u0000\u0000\u0a53\u0a54\u0005d\u0000"+ + "\u0000\u0a54\u0a55\u0005t\u0000\u0000\u0a55\u0a56\u0005h\u0000\u0000\u0a56"+ + "\u0140\u0001\u0000\u0000\u0000\u0a57\u0a58\u0005a\u0000\u0000\u0a58\u0a59"+ + "\u0005d\u0000\u0000\u0a59\u0a5a\u0005d\u0000\u0000\u0a5a\u0a5b\u0005-"+ + "\u0000\u0000\u0a5b\u0a5c\u0005c\u0000\u0000\u0a5c\u0a5d\u0005o\u0000\u0000"+ + "\u0a5d\u0a5e\u0005n\u0000\u0000\u0a5e\u0a5f\u0005f\u0000\u0000\u0a5f\u0a60"+ + "\u0005i\u0000\u0000\u0a60\u0a61\u0005g\u0000\u0000\u0a61\u0a62\u0005-"+ + "\u0000\u0000\u0a62\u0a63\u0005v\u0000\u0000\u0a63\u0a64\u0005g\u0000\u0000"+ + "\u0a64\u0a65\u0005g\u0000\u0000\u0a65\u0a66\u0005-\u0000\u0000\u0a66\u0a67"+ + "\u0005i\u0000\u0000\u0a67\u0a68\u0005m\u0000\u0000\u0a68\u0a69\u0005g"+ + "\u0000\u0000\u0a69\u0a6a\u0005-\u0000\u0000\u0a6a\u0a6b\u0005h\u0000\u0000"+ + "\u0a6b\u0a6c\u0005e\u0000\u0000\u0a6c\u0a6d\u0005i\u0000\u0000\u0a6d\u0a6e"+ + "\u0005g\u0000\u0000\u0a6e\u0a6f\u0005h\u0000\u0000\u0a6f\u0a70\u0005t"+ + "\u0000\u0000\u0a70\u0142\u0001\u0000\u0000\u0000\u0a71\u0a72\u0005s\u0000"+ + "\u0000\u0a72\u0a73\u0005a\u0000\u0000\u0a73\u0a74\u0005v\u0000\u0000\u0a74"+ + "\u0a75\u0005e\u0000\u0000\u0a75\u0a76\u0005-\u0000\u0000\u0a76\u0a77\u0005"+ + "r\u0000\u0000\u0a77\u0a78\u0005e\u0000\u0000\u0a78\u0a79\u0005s\u0000"+ + "\u0000\u0a79\u0a7a\u0005p\u0000\u0000\u0a7a\u0a7b\u0005o\u0000\u0000\u0a7b"+ + "\u0a7c\u0005n\u0000\u0000\u0a7c\u0a7d\u0005s\u0000\u0000\u0a7d\u0a7e\u0005"+ + "e\u0000\u0000\u0a7e\u0a7f\u0005-\u0000\u0000\u0a7f\u0a80\u0005a\u0000"+ + "\u0000\u0a80\u0a81\u0005s\u0000\u0000\u0a81\u0144\u0001\u0000\u0000\u0000"+ + "\u0a82\u0a83\u0005d\u0000\u0000\u0a83\u0a84\u0005o\u0000\u0000\u0a84\u0a85"+ + "\u0005c\u0000\u0000\u0a85\u0a86\u0005n\u0000\u0000\u0a86\u0a87\u0005e"+ + "\u0000\u0000\u0a87\u0a88\u0005t\u0000\u0000\u0a88\u0a89\u0005A\u0000\u0000"+ + "\u0a89\u0a8a\u0005t\u0000\u0000\u0a8a\u0a8b\u0005t\u0000\u0000\u0a8b\u0a8c"+ + "\u0005r\u0000\u0000\u0a8c\u0a8d\u0005i\u0000\u0000\u0a8d\u0a8e\u0005b"+ + "\u0000\u0000\u0a8e\u0a8f\u0005u\u0000\u0000\u0a8f\u0a90\u0005t\u0000\u0000"+ + "\u0a90\u0a91\u0005i\u0000\u0000\u0a91\u0a92\u0005o\u0000\u0000\u0a92\u0a93"+ + "\u0005n\u0000\u0000\u0a93\u0146\u0001\u0000\u0000\u0000\u0a94\u0a95\u0005"+ + "f\u0000\u0000\u0a95\u0a96\u0005o\u0000\u0000\u0a96\u0a97\u0005r\u0000"+ + "\u0000\u0a97\u0a98\u0005-\u0000\u0000\u0a98\u0a99\u0005i\u0000\u0000\u0a99"+ + "\u0a9a\u0005n\u0000\u0000\u0a9a\u0a9b\u0005p\u0000\u0000\u0a9b\u0a9c\u0005"+ + "u\u0000\u0000\u0a9c\u0a9d\u0005t\u0000\u0000\u0a9d\u0a9e\u0005-\u0000"+ + "\u0000\u0a9e\u0a9f\u0005f\u0000\u0000\u0a9f\u0aa0\u0005i\u0000\u0000\u0aa0"+ + "\u0aa1\u0005l\u0000\u0000\u0aa1\u0aa2\u0005e\u0000\u0000\u0aa2\u0148\u0001"+ + "\u0000\u0000\u0000\u0aa3\u0aa4\u0005o\u0000\u0000\u0aa4\u0aa5\u0005n\u0000"+ + "\u0000\u0aa5\u0aa6\u0005-\u0000\u0000\u0aa6\u0aa7\u0005r\u0000\u0000\u0aa7"+ + "\u0aa8\u0005e\u0000\u0000\u0aa8\u0aa9\u0005s\u0000\u0000\u0aa9\u0aaa\u0005"+ + "o\u0000\u0000\u0aaa\u0aab\u0005u\u0000\u0000\u0aab\u0aac\u0005r\u0000"+ + "\u0000\u0aac\u0aad\u0005c\u0000\u0000\u0aad\u0aae\u0005e\u0000\u0000\u0aae"+ + "\u0aaf\u0005-\u0000\u0000\u0aaf\u0ab0\u0005c\u0000\u0000\u0ab0\u0ab1\u0005"+ + "o\u0000\u0000\u0ab1\u0ab2\u0005n\u0000\u0000\u0ab2\u0ab3\u0005n\u0000"+ + "\u0000\u0ab3\u014a\u0001\u0000\u0000\u0000\u0ab4\u0ab5\u0005u\u0000\u0000"+ + "\u0ab5\u0ab6\u0005s\u0000\u0000\u0ab6\u0ab7\u0005i\u0000\u0000\u0ab7\u0ab8"+ + "\u0005n\u0000\u0000\u0ab8\u0ab9\u0005g\u0000\u0000\u0ab9\u0aba\u0005-"+ + "\u0000\u0000\u0aba\u0abb\u0005a\u0000\u0000\u0abb\u0abc\u0005t\u0000\u0000"+ + "\u0abc\u0abd\u0005t\u0000\u0000\u0abd\u0abe\u0005r\u0000\u0000\u0abe\u0abf"+ + "\u0005i\u0000\u0000\u0abf\u0ac0\u0005b\u0000\u0000\u0ac0\u0ac1\u0005u"+ + "\u0000\u0000\u0ac1\u0ac2\u0005t\u0000\u0000\u0ac2\u0ac3\u0005e\u0000\u0000"+ + "\u0ac3\u0ac4\u0005-\u0000\u0000\u0ac4\u0ac5\u0005q\u0000\u0000\u0ac5\u0ac6"+ + "\u0005u\u0000\u0000\u0ac6\u0ac7\u0005e\u0000\u0000\u0ac7\u0ac8\u0005s"+ + "\u0000\u0000\u0ac8\u0ac9\u0005t\u0000\u0000\u0ac9\u0aca\u0005i\u0000\u0000"+ + "\u0aca\u0acb\u0005o\u0000\u0000\u0acb\u0acc\u0005n\u0000\u0000\u0acc\u0acd"+ + "\u0005s\u0000\u0000\u0acd\u014c\u0001\u0000\u0000\u0000\u0ace\u0acf\u0005"+ + "t\u0000\u0000\u0acf\u0ad0\u0005q\u0000\u0000\u0ad0\u0ad1\u0005a\u0000"+ + "\u0000\u0ad1\u0ad2\u0005-\u0000\u0000\u0ad2\u0ad3\u0005f\u0000\u0000\u0ad3"+ + "\u0ad4\u0005i\u0000\u0000\u0ad4\u0ad5\u0005l\u0000\u0000\u0ad5\u0ad6\u0005"+ + "t\u0000\u0000\u0ad6\u0ad7\u0005e\u0000\u0000\u0ad7\u0ad8\u0005r\u0000"+ + "\u0000\u0ad8\u014e\u0001\u0000\u0000\u0000\u0ad9\u0ada\u0005u\u0000\u0000"+ + "\u0ada\u0adb\u0005s\u0000\u0000\u0adb\u0adc\u0005i\u0000\u0000\u0adc\u0add"+ + "\u0005n\u0000\u0000\u0add\u0ade\u0005g\u0000\u0000\u0ade\u0adf\u0005-"+ + "\u0000\u0000\u0adf\u0ae0\u0005t\u0000\u0000\u0ae0\u0ae1\u0005r\u0000\u0000"+ + "\u0ae1\u0ae2\u0005u\u0000\u0000\u0ae2\u0ae3\u0005t\u0000\u0000\u0ae3\u0ae4"+ + "\u0005h\u0000\u0000\u0ae4\u0ae5\u0005-\u0000\u0000\u0ae5\u0ae6\u0005e"+ + "\u0000\u0000\u0ae6\u0ae7\u0005x\u0000\u0000\u0ae7\u0ae8\u0005t\u0000\u0000"+ + "\u0ae8\u0ae9\u0005r\u0000\u0000\u0ae9\u0aea\u0005a\u0000\u0000\u0aea\u0aeb"+ + "\u0005c\u0000\u0000\u0aeb\u0aec\u0005t\u0000\u0000\u0aec\u0aed\u0005o"+ + "\u0000\u0000\u0aed\u0aee\u0005r\u0000\u0000\u0aee\u0aef\u0005-\u0000\u0000"+ + "\u0aef\u0af0\u0005u\u0000\u0000\u0af0\u0af1\u0005r\u0000\u0000\u0af1\u0af2"+ + "\u0005l\u0000\u0000\u0af2\u0150\u0001\u0000\u0000\u0000\u0af3\u0af4\u0005"+ + "a\u0000\u0000\u0af4\u0af5\u0005d\u0000\u0000\u0af5\u0af6\u0005d\u0000"+ + "\u0000\u0af6\u0af7\u0005-\u0000\u0000\u0af7\u0af8\u0005c\u0000\u0000\u0af8"+ + "\u0af9\u0005o\u0000\u0000\u0af9\u0afa\u0005n\u0000\u0000\u0afa\u0afb\u0005"+ + "f\u0000\u0000\u0afb\u0afc\u0005i\u0000\u0000\u0afc\u0afd\u0005g\u0000"+ + "\u0000\u0afd\u0afe\u0005-\u0000\u0000\u0afe\u0aff\u0005m\u0000\u0000\u0aff"+ + "\u0b00\u0005a\u0000\u0000\u0b00\u0b01\u0005x\u0000\u0000\u0b01\u0b02\u0005"+ + "-\u0000\u0000\u0b02\u0b03\u0005d\u0000\u0000\u0b03\u0b04\u0005o\u0000"+ + "\u0000\u0b04\u0b05\u0005c\u0000\u0000\u0b05\u0b06\u0005t\u0000\u0000\u0b06"+ + "\u0b07\u0005r\u0000\u0000\u0b07\u0b08\u0005-\u0000\u0000\u0b08\u0b09\u0005"+ + "i\u0000\u0000\u0b09\u0b0a\u0005n\u0000\u0000\u0b0a\u0b0b\u0005n\u0000"+ + "\u0000\u0b0b\u0b0c\u0005e\u0000\u0000\u0b0c\u0b0d\u0005r\u0000\u0000\u0b0d"+ + "\u0b0e\u0005-\u0000\u0000\u0b0e\u0b0f\u0005j\u0000\u0000\u0b0f\u0b10\u0005"+ + "o\u0000\u0000\u0b10\u0b11\u0005i\u0000\u0000\u0b11\u0b12\u0005n\u0000"+ + "\u0000\u0b12\u0b13\u0005-\u0000\u0000\u0b13\u0b14\u0005d\u0000\u0000\u0b14"+ + "\u0b15\u0005i\u0000\u0000\u0b15\u0b16\u0005f\u0000\u0000\u0b16\u0b17\u0005"+ + "f\u0000\u0000\u0b17\u0152\u0001\u0000\u0000\u0000\u0b18\u0b19\u0005a\u0000"+ + "\u0000\u0b19\u0b1a\u0005d\u0000\u0000\u0b1a\u0b1b\u0005d\u0000\u0000\u0b1b"+ + "\u0b1c\u0005-\u0000\u0000\u0b1c\u0b1d\u0005c\u0000\u0000\u0b1d\u0b1e\u0005"+ + "o\u0000\u0000\u0b1e\u0b1f\u0005n\u0000\u0000\u0b1f\u0b20\u0005f\u0000"+ + "\u0000\u0b20\u0b21\u0005i\u0000\u0000\u0b21\u0b22\u0005g\u0000\u0000\u0b22"+ + "\u0b23\u0005-\u0000\u0000\u0b23\u0b24\u0005m\u0000\u0000\u0b24\u0b25\u0005"+ + "a\u0000\u0000\u0b25\u0b26\u0005x\u0000\u0000\u0b26\u0b27\u0005-\u0000"+ + "\u0000\u0b27\u0b28\u0005q\u0000\u0000\u0b28\u0b29\u0005u\u0000\u0000\u0b29"+ + "\u0b2a\u0005e\u0000\u0000\u0b2a\u0b2b\u0005s\u0000\u0000\u0b2b\u0b2c\u0005"+ + "t\u0000\u0000\u0b2c\u0b2d\u0005i\u0000\u0000\u0b2d\u0b2e\u0005o\u0000"+ + "\u0000\u0b2e\u0b2f\u0005n\u0000\u0000\u0b2f\u0b30\u0005-\u0000\u0000\u0b30"+ + "\u0b31\u0005s\u0000\u0000\u0b31\u0b32\u0005p\u0000\u0000\u0b32\u0b33\u0005"+ + "a\u0000\u0000\u0b33\u0b34\u0005c\u0000\u0000\u0b34\u0b35\u0005i\u0000"+ + "\u0000\u0b35\u0b36\u0005n\u0000\u0000\u0b36\u0b37\u0005g\u0000\u0000\u0b37"+ + "\u0b38\u0005-\u0000\u0000\u0b38\u0b39\u0005d\u0000\u0000\u0b39\u0b3a\u0005"+ + "i\u0000\u0000\u0b3a\u0b3b\u0005f\u0000\u0000\u0b3b\u0b3c\u0005f\u0000"+ + "\u0000\u0b3c\u0154\u0001\u0000\u0000\u0000\u0b3d\u0b3e\u0005u\u0000\u0000"+ + "\u0b3e\u0b3f\u0005s\u0000\u0000\u0b3f\u0b40\u0005i\u0000\u0000\u0b40\u0b41"+ + "\u0005n\u0000\u0000\u0b41\u0b42\u0005g\u0000\u0000\u0b42\u0b43\u0005-"+ + "\u0000\u0000\u0b43\u0b44\u0005s\u0000\u0000\u0b44\u0b45\u0005y\u0000\u0000"+ + "\u0b45\u0b46\u0005n\u0000\u0000\u0b46\u0b47\u0005o\u0000\u0000\u0b47\u0b48"+ + "\u0005n\u0000\u0000\u0b48\u0b49\u0005m\u0000\u0000\u0b49\u0b4a\u0005y"+ + "\u0000\u0000\u0b4a\u0b4b\u0005s\u0000\u0000\u0b4b\u0156\u0001\u0000\u0000"+ + "\u0000\u0b4c\u0b4d\u0005u\u0000\u0000\u0b4d\u0b4e\u0005s\u0000\u0000\u0b4e"+ + "\u0b4f\u0005i\u0000\u0000\u0b4f\u0b50\u0005n\u0000\u0000\u0b50\u0b51\u0005"+ + "g\u0000\u0000\u0b51\u0b52\u0005-\u0000\u0000\u0b52\u0b53\u0005i\u0000"+ + "\u0000\u0b53\u0b54\u0005n\u0000\u0000\u0b54\u0b55\u0005p\u0000\u0000\u0b55"+ + "\u0b56\u0005u\u0000\u0000\u0b56\u0b57\u0005t\u0000\u0000\u0b57\u0b58\u0005"+ + "-\u0000\u0000\u0b58\u0b59\u0005f\u0000\u0000\u0b59\u0b5a\u0005i\u0000"+ + "\u0000\u0b5a\u0b5b\u0005l\u0000\u0000\u0b5b\u0b5c\u0005e\u0000\u0000\u0b5c"+ + "\u0b5d\u0005s\u0000\u0000\u0b5d\u0158\u0001\u0000\u0000\u0000\u0b5e\u0b5f"+ + "\u0005t\u0000\u0000\u0b5f\u0b60\u0005e\u0000\u0000\u0b60\u0b61\u0005x"+ + "\u0000\u0000\u0b61\u0b62\u0005t\u0000\u0000\u0b62\u0b63\u0005-\u0000\u0000"+ + "\u0b63\u0b64\u0005f\u0000\u0000\u0b64\u0b65\u0005i\u0000\u0000\u0b65\u0b66"+ + "\u0005l\u0000\u0000\u0b66\u0b67\u0005t\u0000\u0000\u0b67\u0b68\u0005e"+ + "\u0000\u0000\u0b68\u0b69\u0005r\u0000\u0000\u0b69\u0b6a\u0005i\u0000\u0000"+ + "\u0b6a\u0b6b\u0005n\u0000\u0000\u0b6b\u0b6c\u0005g\u0000\u0000\u0b6c\u015a"+ + "\u0001\u0000\u0000\u0000\u0b6d\u0b6e\u0005k\u0000\u0000\u0b6e\u0b6f\u0005"+ + "e\u0000\u0000\u0b6f\u0b70\u0005y\u0000\u0000\u0b70\u0b71\u0005-\u0000"+ + "\u0000\u0b71\u0b72\u0005f\u0000\u0000\u0b72\u0b73\u0005i\u0000\u0000\u0b73"+ + "\u0b74\u0005l\u0000\u0000\u0b74\u0b75\u0005t\u0000\u0000\u0b75\u0b76\u0005"+ + "e\u0000\u0000\u0b76\u0b77\u0005r\u0000\u0000\u0b77\u0b78\u0005i\u0000"+ + "\u0000\u0b78\u0b79\u0005n\u0000\u0000\u0b79\u0b7a\u0005g\u0000\u0000\u0b7a"+ + "\u015c\u0001\u0000\u0000\u0000\u0b7b\u0b7c\u0005w\u0000\u0000\u0b7c\u0b7d"+ + "\u0005i\u0000\u0000\u0b7d\u0b7e\u0005t\u0000\u0000\u0b7e\u0b7f\u0005h"+ + "\u0000\u0000\u0b7f\u0b80\u0005-\u0000\u0000\u0b80\u0b81\u0005d\u0000\u0000"+ + "\u0b81\u0b82\u0005o\u0000\u0000\u0b82\u0b83\u0005c\u0000\u0000\u0b83\u0b84"+ + "\u0005-\u0000\u0000\u0b84\u0b85\u0005i\u0000\u0000\u0b85\u0b86\u0005d"+ + "\u0000\u0000\u0b86\u015e\u0001\u0000\u0000\u0000\u0b87\u0b88\u0005f\u0000"+ + "\u0000\u0b88\u0b89\u0005o\u0000\u0000\u0b89\u0b8a\u0005r\u0000\u0000\u0b8a"+ + "\u0b8b\u0005-\u0000\u0000\u0b8b\u0b8c\u0005p\u0000\u0000\u0b8c\u0b8d\u0005"+ + "a\u0000\u0000\u0b8d\u0b8e\u0005p\u0000\u0000\u0b8e\u0b8f\u0005e\u0000"+ + "\u0000\u0b8f\u0b90\u0005r\u0000\u0000\u0b90\u0160\u0001\u0000\u0000\u0000"+ + "\u0b91\u0b92\u0005g\u0000\u0000\u0b92\u0b93\u0005r\u0000\u0000\u0b93\u0b94"+ + "\u0005o\u0000\u0000\u0b94\u0b95\u0005u\u0000\u0000\u0b95\u0b96\u0005p"+ + "\u0000\u0000\u0b96\u0b97\u0005-\u0000\u0000\u0b97\u0b98\u0005i\u0000\u0000"+ + "\u0b98\u0b99\u0005d\u0000\u0000\u0b99\u0162\u0001\u0000\u0000\u0000\u0b9a"+ + "\u0b9b\u0005e\u0000\u0000\u0b9b\u0b9c\u0005n\u0000\u0000\u0b9c\u0b9d\u0005"+ + "t\u0000\u0000\u0b9d\u0b9e\u0005i\u0000\u0000\u0b9e\u0b9f\u0005t\u0000"+ + "\u0000\u0b9f\u0ba0\u0005y\u0000\u0000\u0ba0\u0ba1\u0005-\u0000\u0000\u0ba1"+ + "\u0ba2\u0005k\u0000\u0000\u0ba2\u0ba3\u0005e\u0000\u0000\u0ba3\u0ba4\u0005"+ + "y\u0000\u0000\u0ba4\u0ba5\u0005-\u0000\u0000\u0ba5\u0ba6\u0005f\u0000"+ + "\u0000\u0ba6\u0ba7\u0005i\u0000\u0000\u0ba7\u0ba8\u0005l\u0000\u0000\u0ba8"+ + "\u0ba9\u0005t\u0000\u0000\u0ba9\u0baa\u0005e\u0000\u0000\u0baa\u0bab\u0005"+ + "r\u0000\u0000\u0bab\u0bac\u0005i\u0000\u0000\u0bac\u0bad\u0005n\u0000"+ + "\u0000\u0bad\u0bae\u0005g\u0000\u0000\u0bae\u0164\u0001\u0000\u0000\u0000"+ + "\u0baf\u0bb0\u0005w\u0000\u0000\u0bb0\u0bb1\u0005i\u0000\u0000\u0bb1\u0bb2"+ + "\u0005t\u0000\u0000\u0bb2\u0bb3\u0005h\u0000\u0000\u0bb3\u0bb4\u0005-"+ + "\u0000\u0000\u0bb4\u0bb5\u0005m\u0000\u0000\u0bb5\u0bb6\u0005a\u0000\u0000"+ + "\u0bb6\u0bb7\u0005n\u0000\u0000\u0bb7\u0bb8\u0005d\u0000\u0000\u0bb8\u0bb9"+ + "\u0005a\u0000\u0000\u0bb9\u0bba\u0005t\u0000\u0000\u0bba\u0bbb\u0005o"+ + "\u0000\u0000\u0bbb\u0bbc\u0005r\u0000\u0000\u0bbc\u0bbd\u0005y\u0000\u0000"+ + "\u0bbd\u0bbe\u0005-\u0000\u0000\u0bbe\u0bbf\u0005k\u0000\u0000\u0bbf\u0bc0"+ + "\u0005e\u0000\u0000\u0bc0\u0bc1\u0005y\u0000\u0000\u0bc1\u0bc2\u0005-"+ + "\u0000\u0000\u0bc2\u0bc3\u0005f\u0000\u0000\u0bc3\u0bc4\u0005i\u0000\u0000"+ + "\u0bc4\u0bc5\u0005l\u0000\u0000\u0bc5\u0bc6\u0005t\u0000\u0000\u0bc6\u0bc7"+ + "\u0005e\u0000\u0000\u0bc7\u0bc8\u0005r\u0000\u0000\u0bc8\u0bc9\u0005i"+ + "\u0000\u0000\u0bc9\u0bca\u0005n\u0000\u0000\u0bca\u0bcb\u0005g\u0000\u0000"+ + "\u0bcb\u0166\u0001\u0000\u0000\u0000\u0bcc\u0bcd\u0005c\u0000\u0000\u0bcd"+ + "\u0bce\u0005h\u0000\u0000\u0bce\u0bcf\u0005e\u0000\u0000\u0bcf\u0bd0\u0005"+ + "c\u0000\u0000\u0bd0\u0bd1\u0005k\u0000\u0000\u0bd1\u0bd2\u0005-\u0000"+ + "\u0000\u0bd2\u0bd3\u0005t\u0000\u0000\u0bd3\u0bd4\u0005h\u0000\u0000\u0bd4"+ + "\u0bd5\u0005r\u0000\u0000\u0bd5\u0bd6\u0005e\u0000\u0000\u0bd6\u0bd7\u0005"+ + "s\u0000\u0000\u0bd7\u0bd8\u0005h\u0000\u0000\u0bd8\u0bd9\u0005o\u0000"+ + "\u0000\u0bd9\u0bda\u0005l\u0000\u0000\u0bda\u0bdb\u0005d\u0000\u0000\u0bdb"+ + "\u0168\u0001\u0000\u0000\u0000\u0bdc\u0bdd\u0005t\u0000\u0000\u0bdd\u0bde"+ + "\u0005h\u0000\u0000\u0bde\u0bdf\u0005r\u0000\u0000\u0bdf\u0be0\u0005e"+ + "\u0000\u0000\u0be0\u0be1\u0005s\u0000\u0000\u0be1\u0be2\u0005h\u0000\u0000"+ + "\u0be2\u0be3\u0005o\u0000\u0000\u0be3\u0be4\u0005l\u0000\u0000\u0be4\u0be5"+ + "\u0005d\u0000\u0000\u0be5\u0be6\u0005-\u0000\u0000\u0be6\u0be7\u0005v"+ + "\u0000\u0000\u0be7\u0be8\u0005a\u0000\u0000\u0be8\u0be9\u0005l\u0000\u0000"+ + "\u0be9\u0bea\u0005u\u0000\u0000\u0bea\u0beb\u0005e\u0000\u0000\u0beb\u016a"+ + "\u0001\u0000\u0000\u0000\u0bec\u0bed\u0005j\u0000\u0000\u0bed\u0bee\u0005"+ + "s\u0000\u0000\u0bee\u0bef\u0005o\u0000\u0000\u0bef\u0bf0\u0005n\u0000"+ + "\u0000\u0bf0\u0bf1\u0005T\u0000\u0000\u0bf1\u0bf2\u0005o\u0000\u0000\u0bf2"+ + "\u0bf3\u0005F\u0000\u0000\u0bf3\u0bf4\u0005i\u0000\u0000\u0bf4\u0bf5\u0005"+ + "l\u0000\u0000\u0bf5\u0bf6\u0005e\u0000\u0000\u0bf6\u016c\u0001\u0000\u0000"+ + "\u0000\u0bf7\u0bf8\u0005e\u0000\u0000\u0bf8\u0bf9\u0005x\u0000\u0000\u0bf9"+ + "\u0bfa\u0005p\u0000\u0000\u0bfa\u0bfb\u0005o\u0000\u0000\u0bfb\u0bfc\u0005"+ + "r\u0000\u0000\u0bfc\u0bfd\u0005t\u0000\u0000\u0bfd\u0bfe\u0005-\u0000"+ + "\u0000\u0bfe\u0bff\u0005i\u0000\u0000\u0bff\u0c00\u0005n\u0000\u0000\u0c00"+ + "\u0c01\u0005t\u0000\u0000\u0c01\u0c02\u0005o\u0000\u0000\u0c02\u016e\u0001"+ + "\u0000\u0000\u0000\u0c03\u0c04\u0005d\u0000\u0000\u0c04\u0c05\u0005o\u0000"+ + "\u0000\u0c05\u0c06\u0005c\u0000\u0000\u0c06\u0c07\u0005n\u0000\u0000\u0c07"+ + "\u0c08\u0005e\u0000\u0000\u0c08\u0c09\u0005t\u0000\u0000\u0c09\u0c0a\u0005"+ + "R\u0000\u0000\u0c0a\u0c0b\u0005e\u0000\u0000\u0c0b\u0c0c\u0005s\u0000"+ + "\u0000\u0c0c\u0c0d\u0005u\u0000\u0000\u0c0d\u0c0e\u0005l\u0000\u0000\u0c0e"+ + "\u0c0f\u0005t\u0000\u0000\u0c0f\u0170\u0001\u0000\u0000\u0000\u0c10\u0c11"+ + "\u0005u\u0000\u0000\u0c11\u0c12\u0005s\u0000\u0000\u0c12\u0c13\u0005i"+ + "\u0000\u0000\u0c13\u0c14\u0005n\u0000\u0000\u0c14\u0c15\u0005g\u0000\u0000"+ + "\u0c15\u0c16\u0005-\u0000\u0000\u0c16\u0c17\u0005c\u0000\u0000\u0c17\u0c18"+ + "\u0005o\u0000\u0000\u0c18\u0c19\u0005p\u0000\u0000\u0c19\u0c1a\u0005r"+ + "\u0000\u0000\u0c1a\u0c1b\u0005o\u0000\u0000\u0c1b\u0172\u0001\u0000\u0000"+ + "\u0000\u0c1c\u0c1d\u0005u\u0000\u0000\u0c1d\u0c1e\u0005s\u0000\u0000\u0c1e"+ + "\u0c1f\u0005i\u0000\u0000\u0c1f\u0c20\u0005n\u0000\u0000\u0c20\u0c21\u0005"+ + "g\u0000\u0000\u0c21\u0c22\u0005-\u0000\u0000\u0c22\u0c23\u0005w\u0000"+ + "\u0000\u0c23\u0c24\u0005e\u0000\u0000\u0c24\u0c25\u0005i\u0000\u0000\u0c25"+ + "\u0c26\u0005g\u0000\u0000\u0c26\u0c27\u0005h\u0000\u0000\u0c27\u0c28\u0005"+ + "t\u0000\u0000\u0c28\u0c29\u0005a\u0000\u0000\u0c29\u0c2a\u0005g\u0000"+ + "\u0000\u0c2a\u0c2b\u0005e\u0000\u0000\u0c2b\u0174\u0001\u0000\u0000\u0000"+ + "\u0c2c\u0c2d\u0005s\u0000\u0000\u0c2d\u0c2e\u0005e\u0000\u0000\u0c2e\u0c2f"+ + "\u0005t\u0000\u0000\u0c2f\u0c30\u0005C\u0000\u0000\u0c30\u0c31\u0005o"+ + "\u0000\u0000\u0c31\u0c32\u0005n\u0000\u0000\u0c32\u0c33\u0005t\u0000\u0000"+ + "\u0c33\u0c34\u0005e\u0000\u0000\u0c34\u0c35\u0005x\u0000\u0000\u0c35\u0c36"+ + "\u0005t\u0000\u0000\u0c36\u0c37\u0005V\u0000\u0000\u0c37\u0c38\u0005a"+ + "\u0000\u0000\u0c38\u0c39\u0005l\u0000\u0000\u0c39\u0c3a\u0005u\u0000\u0000"+ + "\u0c3a\u0c3b\u0005e\u0000\u0000\u0c3b\u0176\u0001\u0000\u0000\u0000\u0c3c"+ + "\u0c3d\u0005c\u0000\u0000\u0c3d\u0c3e\u0005o\u0000\u0000\u0c3e\u0c3f\u0005"+ + "n\u0000\u0000\u0c3f\u0c40\u0005t\u0000\u0000\u0c40\u0c41\u0005e\u0000"+ + "\u0000\u0c41\u0c42\u0005x\u0000\u0000\u0c42\u0c43\u0005t\u0000\u0000\u0c43"+ + "\u0c44\u0005-\u0000\u0000\u0c44\u0c45\u0005k\u0000\u0000\u0c45\u0c46\u0005"+ + "e\u0000\u0000\u0c46\u0c47\u0005y\u0000\u0000\u0c47\u0178\u0001\u0000\u0000"+ + "\u0000\u0c48\u0c49\u0005c\u0000\u0000\u0c49\u0c4a\u0005o\u0000\u0000\u0c4a"+ + "\u0c4b\u0005n\u0000\u0000\u0c4b\u0c4c\u0005t\u0000\u0000\u0c4c\u0c4d\u0005"+ + "e\u0000\u0000\u0c4d\u0c4e\u0005x\u0000\u0000\u0c4e\u0c4f\u0005t\u0000"+ + "\u0000\u0c4f\u0c50\u0005-\u0000\u0000\u0c50\u0c51\u0005v\u0000\u0000\u0c51"+ + "\u0c52\u0005a\u0000\u0000\u0c52\u0c53\u0005l\u0000\u0000\u0c53\u0c54\u0005"+ + "u\u0000\u0000\u0c54\u0c55\u0005e\u0000\u0000\u0c55\u017a\u0001\u0000\u0000"+ + "\u0000\u0c56\u0c57\u0005e\u0000\u0000\u0c57\u0c58\u0005v\u0000\u0000\u0c58"+ + "\u0c59\u0005a\u0000\u0000\u0c59\u0c5a\u0005l\u0000\u0000\u0c5a\u0c5b\u0005"+ + "P\u0000\u0000\u0c5b\u0c5c\u0005a\u0000\u0000\u0c5c\u0c5d\u0005t\u0000"+ + "\u0000\u0c5d\u0c5e\u0005i\u0000\u0000\u0c5e\u0c5f\u0005e\u0000\u0000\u0c5f"+ + "\u0c60\u0005n\u0000\u0000\u0c60\u0c61\u0005t\u0000\u0000\u0c61\u0c62\u0005"+ + "N\u0000\u0000\u0c62\u0c63\u0005a\u0000\u0000\u0c63\u0c64\u0005m\u0000"+ + "\u0000\u0c64\u0c65\u0005e\u0000\u0000\u0c65\u017c\u0001\u0000\u0000\u0000"+ + "\u0c66\u0c67\u0005p\u0000\u0000\u0c67\u0c68\u0005a\u0000\u0000\u0c68\u0c69"+ + "\u0005t\u0000\u0000\u0c69\u0c6a\u0005i\u0000\u0000\u0c6a\u0c6b\u0005e"+ + "\u0000\u0000\u0c6b\u0c6c\u0005n\u0000\u0000\u0c6c\u0c6d\u0005t\u0000\u0000"+ + "\u0c6d\u0c6e\u0005-\u0000\u0000\u0c6e\u0c6f\u0005n\u0000\u0000\u0c6f\u0c70"+ + "\u0005a\u0000\u0000\u0c70\u0c71\u0005m\u0000\u0000\u0c71\u0c72\u0005e"+ + "\u0000\u0000\u0c72\u017e\u0001\u0000\u0000\u0000\u0c73\u0c74\u0005w\u0000"+ + "\u0000\u0c74\u0c75\u0005o\u0000\u0000\u0c75\u0c76\u0005r\u0000\u0000\u0c76"+ + "\u0c77\u0005d\u0000\u0000\u0c77\u0c78\u0005-\u0000\u0000\u0c78\u0c79\u0005"+ + "c\u0000\u0000\u0c79\u0c7a\u0005o\u0000\u0000\u0c7a\u0c7b\u0005u\u0000"+ + "\u0000\u0c7b\u0c7c\u0005n\u0000\u0000\u0c7c\u0c7d\u0005t\u0000\u0000\u0c7d"+ + "\u0c7e\u0005-\u0000\u0000\u0c7e\u0c7f\u0005l\u0000\u0000\u0c7f\u0c80\u0005"+ + "i\u0000\u0000\u0c80\u0c81\u0005m\u0000\u0000\u0c81\u0c82\u0005i\u0000"+ + "\u0000\u0c82\u0c83\u0005t\u0000\u0000\u0c83\u0180\u0001\u0000\u0000\u0000"+ + "\u0c84\u0c85\u0005c\u0000\u0000\u0c85\u0c86\u0005h\u0000\u0000\u0c86\u0c87"+ + "\u0005a\u0000\u0000\u0c87\u0c88\u0005r\u0000\u0000\u0c88\u0c89\u0005-"+ + "\u0000\u0000\u0c89\u0c8a\u0005c\u0000\u0000\u0c8a\u0c8b\u0005o\u0000\u0000"+ + "\u0c8b\u0c8c\u0005u\u0000\u0000\u0c8c\u0c8d\u0005n\u0000\u0000\u0c8d\u0c8e"+ + "\u0005t\u0000\u0000\u0c8e\u0c8f\u0005-\u0000\u0000\u0c8f\u0c90\u0005l"+ + "\u0000\u0000\u0c90\u0c91\u0005i\u0000\u0000\u0c91\u0c92\u0005m\u0000\u0000"+ + "\u0c92\u0c93\u0005i\u0000\u0000\u0c93\u0c94\u0005t\u0000\u0000\u0c94\u0182"+ + "\u0001\u0000\u0000\u0000\u0c95\u0c96\u0005n\u0000\u0000\u0c96\u0c97\u0005"+ + "e\u0000\u0000\u0c97\u0c98\u0005r\u0000\u0000\u0c98\u0c99\u0005-\u0000"+ + "\u0000\u0c99\u0c9a\u0005a\u0000\u0000\u0c9a\u0c9b\u0005p\u0000\u0000\u0c9b"+ + "\u0c9c\u0005i\u0000\u0000\u0c9c\u0184\u0001\u0000\u0000\u0000\u0c9d\u0c9e"+ + "\u0005w\u0000\u0000\u0c9e\u0c9f\u0005o\u0000\u0000\u0c9f\u0ca0\u0005r"+ + "\u0000\u0000\u0ca0\u0ca1\u0005d\u0000\u0000\u0ca1\u0ca2\u0005-\u0000\u0000"+ + "\u0ca2\u0ca3\u0005c\u0000\u0000\u0ca3\u0ca4\u0005o\u0000\u0000\u0ca4\u0ca5"+ + "\u0005u\u0000\u0000\u0ca5\u0ca6\u0005n\u0000\u0000\u0ca6\u0ca7\u0005t"+ + "\u0000\u0000\u0ca7\u0ca8\u0005-\u0000\u0000\u0ca8\u0ca9\u0005t\u0000\u0000"+ + "\u0ca9\u0caa\u0005h\u0000\u0000\u0caa\u0cab\u0005r\u0000\u0000\u0cab\u0cac"+ + "\u0005e\u0000\u0000\u0cac\u0cad\u0005s\u0000\u0000\u0cad\u0cae\u0005h"+ + "\u0000\u0000\u0cae\u0caf\u0005o\u0000\u0000\u0caf\u0cb0\u0005l\u0000\u0000"+ + "\u0cb0\u0cb1\u0005d\u0000\u0000\u0cb1\u0186\u0001\u0000\u0000\u0000\u0cb2"+ + "\u0cb3\u0005c\u0000\u0000\u0cb3\u0cb4\u0005h\u0000\u0000\u0cb4\u0cb5\u0005"+ + "a\u0000\u0000\u0cb5\u0cb6\u0005r\u0000\u0000\u0cb6\u0cb7\u0005-\u0000"+ + "\u0000\u0cb7\u0cb8\u0005c\u0000\u0000\u0cb8\u0cb9\u0005o\u0000\u0000\u0cb9"+ + "\u0cba\u0005u\u0000\u0000\u0cba\u0cbb\u0005n\u0000\u0000\u0cbb\u0cbc\u0005"+ + "t\u0000\u0000\u0cbc\u0cbd\u0005-\u0000\u0000\u0cbd\u0cbe\u0005t\u0000"+ + "\u0000\u0cbe\u0cbf\u0005h\u0000\u0000\u0cbf\u0cc0\u0005r\u0000\u0000\u0cc0"+ + "\u0cc1\u0005e\u0000\u0000\u0cc1\u0cc2\u0005s\u0000\u0000\u0cc2\u0cc3\u0005"+ + "h\u0000\u0000\u0cc3\u0cc4\u0005o\u0000\u0000\u0cc4\u0cc5\u0005l\u0000"+ + "\u0000\u0cc5\u0cc6\u0005d\u0000\u0000\u0cc6\u0188\u0001\u0000\u0000\u0000"+ + "\u0cc7\u0cc8\u0005n\u0000\u0000\u0cc8\u0cc9\u0005e\u0000\u0000\u0cc9\u0cca"+ + "\u0005r\u0000\u0000\u0cca\u0ccb\u0005-\u0000\u0000\u0ccb\u0ccc\u0005a"+ + "\u0000\u0000\u0ccc\u0ccd\u0005p\u0000\u0000\u0ccd\u0cce\u0005i\u0000\u0000"+ + "\u0cce\u0ccf\u0005-\u0000\u0000\u0ccf\u0cd0\u0005t\u0000\u0000\u0cd0\u0cd1"+ + "\u0005h\u0000\u0000\u0cd1\u0cd2\u0005r\u0000\u0000\u0cd2\u0cd3\u0005e"+ + "\u0000\u0000\u0cd3\u0cd4\u0005s\u0000\u0000\u0cd4\u0cd5\u0005h\u0000\u0000"+ + "\u0cd5\u0cd6\u0005o\u0000\u0000\u0cd6\u0cd7\u0005l\u0000\u0000\u0cd7\u0cd8"+ + "\u0005d\u0000\u0000\u0cd8\u018a\u0001\u0000\u0000\u0000\u0cd9\u0cda\u0005"+ + "e\u0000\u0000\u0cda\u0cdb\u0005v\u0000\u0000\u0cdb\u0cdc\u0005a\u0000"+ + "\u0000\u0cdc\u0cdd\u0005l\u0000\u0000\u0cdd\u0cde\u0005M\u0000\u0000\u0cde"+ + "\u0cdf\u0005e\u0000\u0000\u0cdf\u0ce0\u0005m\u0000\u0000\u0ce0\u0ce1\u0005"+ + "b\u0000\u0000\u0ce1\u0ce2\u0005e\u0000\u0000\u0ce2\u0ce3\u0005r\u0000"+ + "\u0000\u0ce3\u0ce4\u0005I\u0000\u0000\u0ce4\u0ce5\u0005d\u0000\u0000\u0ce5"+ + "\u018c\u0001\u0000\u0000\u0000\u0ce6\u0ce7\u0005m\u0000\u0000\u0ce7\u0ce8"+ + "\u0005e\u0000\u0000\u0ce8\u0ce9\u0005m\u0000\u0000\u0ce9\u0cea\u0005b"+ + "\u0000\u0000\u0cea\u0ceb\u0005e\u0000\u0000\u0ceb\u0cec\u0005r\u0000\u0000"+ + "\u0cec\u0ced\u0005-\u0000\u0000\u0ced\u0cee\u0005i\u0000\u0000\u0cee\u0cef"+ + "\u0005d\u0000\u0000\u0cef\u018e\u0001\u0000\u0000\u0000\u0cf0\u0cf1\u0005"+ + "s\u0000\u0000\u0cf1\u0cf2\u0005p\u0000\u0000\u0cf2\u0cf3\u0005e\u0000"+ + "\u0000\u0cf3\u0cf4\u0005c\u0000\u0000\u0cf4\u0cf5\u0005i\u0000\u0000\u0cf5"+ + "\u0cf6\u0005a\u0000\u0000\u0cf6\u0cf7\u0005l\u0000\u0000\u0cf7\u0cf8\u0005"+ + "-\u0000\u0000\u0cf8\u0cf9\u0005c\u0000\u0000\u0cf9\u0cfa\u0005h\u0000"+ + "\u0000\u0cfa\u0cfb\u0005a\u0000\u0000\u0cfb\u0cfc\u0005r\u0000\u0000\u0cfc"+ + "\u0cfd\u0005a\u0000\u0000\u0cfd\u0cfe\u0005c\u0000\u0000\u0cfe\u0cff\u0005"+ + "t\u0000\u0000\u0cff\u0d00\u0005e\u0000\u0000\u0d00\u0d01\u0005r\u0000"+ + "\u0000\u0d01\u0190\u0001\u0000\u0000\u0000\u0d02\u0d03\u0005v\u0000\u0000"+ + "\u0d03\u0d04\u0005a\u0000\u0000\u0d04\u0d05\u0005l\u0000\u0000\u0d05\u0d06"+ + "\u0005i\u0000\u0000\u0d06\u0d07\u0005d\u0000\u0000\u0d07\u0d08\u0005a"+ + "\u0000\u0000\u0d08\u0d09\u0005t\u0000\u0000\u0d09\u0d0a\u0005o\u0000\u0000"+ + "\u0d0a\u0d0b\u0005r\u0000\u0000\u0d0b\u0d0c\u0005-\u0000\u0000\u0d0c\u0d0d"+ + "\u0005t\u0000\u0000\u0d0d\u0d0e\u0005h\u0000\u0000\u0d0e\u0d0f\u0005r"+ + "\u0000\u0000\u0d0f\u0d10\u0005e\u0000\u0000\u0d10\u0d11\u0005s\u0000\u0000"+ + "\u0d11\u0d12\u0005h\u0000\u0000\u0d12\u0d13\u0005o\u0000\u0000\u0d13\u0d14"+ + "\u0005l\u0000\u0000\u0d14\u0d15\u0005d\u0000\u0000\u0d15\u0192\u0001\u0000"+ + "\u0000\u0000\u0d16\u0d17\u0005e\u0000\u0000\u0d17\u0d18\u0005v\u0000\u0000"+ + "\u0d18\u0d19\u0005a\u0000\u0000\u0d19\u0d1a\u0005l\u0000\u0000\u0d1a\u0d1b"+ + "\u0005D\u0000\u0000\u0d1b\u0d1c\u0005a\u0000\u0000\u0d1c\u0d1d\u0005t"+ + "\u0000\u0000\u0d1d\u0d1e\u0005e\u0000\u0000\u0d1e\u0d1f\u0005O\u0000\u0000"+ + "\u0d1f\u0d20\u0005f\u0000\u0000\u0d20\u0d21\u0005B\u0000\u0000\u0d21\u0d22"+ + "\u0005i\u0000\u0000\u0d22\u0d23\u0005r\u0000\u0000\u0d23\u0d24\u0005t"+ + "\u0000\u0000\u0d24\u0d25\u0005h\u0000\u0000\u0d25\u0194\u0001\u0000\u0000"+ + "\u0000\u0d26\u0d27\u0005d\u0000\u0000\u0d27\u0d28\u0005a\u0000\u0000\u0d28"+ + "\u0d29\u0005t\u0000\u0000\u0d29\u0d2a\u0005e\u0000\u0000\u0d2a\u0d2b\u0005"+ + "-\u0000\u0000\u0d2b\u0d2c\u0005o\u0000\u0000\u0d2c\u0d2d\u0005f\u0000"+ + "\u0000\u0d2d\u0d2e\u0005-\u0000\u0000\u0d2e\u0d2f\u0005b\u0000\u0000\u0d2f"+ + "\u0d30\u0005i\u0000\u0000\u0d30\u0d31\u0005r\u0000\u0000\u0d31\u0d32\u0005"+ + "t\u0000\u0000\u0d32\u0d33\u0005h\u0000\u0000\u0d33\u0196\u0001\u0000\u0000"+ + "\u0000\u0d34\u0d35\u0005c\u0000\u0000\u0d35\u0d36\u0005o\u0000\u0000\u0d36"+ + "\u0d37\u0005m\u0000\u0000\u0d37\u0d38\u0005p\u0000\u0000\u0d38\u0d39\u0005"+ + "a\u0000\u0000\u0d39\u0d3a\u0005r\u0000\u0000\u0d3a\u0d3b\u0005a\u0000"+ + "\u0000\u0d3b\u0d3c\u0005b\u0000\u0000\u0d3c\u0d3d\u0005l\u0000\u0000\u0d3d"+ + "\u0d3e\u0005e\u0000\u0000\u0d3e\u0d3f\u0005-\u0000\u0000\u0d3f\u0d40\u0005"+ + "y\u0000\u0000\u0d40\u0d41\u0005e\u0000\u0000\u0d41\u0d42\u0005a\u0000"+ + "\u0000\u0d42\u0d43\u0005r\u0000\u0000\u0d43\u0198\u0001\u0000\u0000\u0000"+ + "\u0d44\u0d45\u0005d\u0000\u0000\u0d45\u0d46\u0005a\u0000\u0000\u0d46\u0d47"+ + "\u0005t\u0000\u0000\u0d47\u0d48\u0005e\u0000\u0000\u0d48\u0d49\u0005-"+ + "\u0000\u0000\u0d49\u0d4a\u0005f\u0000\u0000\u0d4a\u0d4b\u0005o\u0000\u0000"+ + "\u0d4b\u0d4c\u0005r\u0000\u0000\u0d4c\u0d4d\u0005m\u0000\u0000\u0d4d\u0d4e"+ + "\u0005a\u0000\u0000\u0d4e\u0d4f\u0005t\u0000\u0000\u0d4f\u0d50\u0005s"+ + "\u0000\u0000\u0d50\u019a\u0001\u0000\u0000\u0000\u0d51\u0d52\u0005d\u0000"+ + "\u0000\u0d52\u0d53\u0005i\u0000\u0000\u0d53\u0d54\u0005r\u0000\u0000\u0d54"+ + "\u0d55\u0005P\u0000\u0000\u0d55\u0d56\u0005a\u0000\u0000\u0d56\u0d57\u0005"+ + "t\u0000\u0000\u0d57\u0d58\u0005h\u0000\u0000\u0d58\u019c\u0001\u0000\u0000"+ + "\u0000\u0d59\u0d5a\u0005f\u0000\u0000\u0d5a\u0d5b\u0005i\u0000\u0000\u0d5b"+ + "\u0d5c\u0005l\u0000\u0000\u0d5c\u0d5d\u0005e\u0000\u0000\u0d5d\u0d5e\u0005"+ + "D\u0000\u0000\u0d5e\u0d5f\u0005e\u0000\u0000\u0d5f\u0d60\u0005t\u0000"+ + "\u0000\u0d60\u0d61\u0005a\u0000\u0000\u0d61\u0d62\u0005i\u0000\u0000\u0d62"+ + "\u0d63\u0005l\u0000\u0000\u0d63\u0d64\u0005s\u0000\u0000\u0d64\u019e\u0001"+ + "\u0000\u0000\u0000\u0d65\u0d66\u0005d\u0000\u0000\u0d66\u0d67\u0005i\u0000"+ + "\u0000\u0d67\u0d68\u0005r\u0000\u0000\u0d68\u0d69\u0005p\u0000\u0000\u0d69"+ + "\u0d6a\u0005a\u0000\u0000\u0d6a\u0d6b\u0005t\u0000\u0000\u0d6b\u0d6c\u0005"+ + "h\u0000\u0000\u0d6c\u01a0\u0001\u0000\u0000\u0000\u0d6d\u0d6e\u0005g\u0000"+ + "\u0000\u0d6e\u0d6f\u0005r\u0000\u0000\u0d6f\u0d70\u0005o\u0000\u0000\u0d70"+ + "\u0d71\u0005u\u0000\u0000\u0d71\u0d72\u0005p\u0000\u0000\u0d72\u0d73\u0005"+ + "I\u0000\u0000\u0d73\u0d74\u0005d\u0000\u0000\u0d74\u01a2\u0001\u0000\u0000"+ + "\u0000\u0d75\u0d76\u0005i\u0000\u0000\u0d76\u0d77\u0005n\u0000\u0000\u0d77"+ + "\u0d78\u0005b\u0000\u0000\u0d78\u0d79\u0005o\u0000\u0000\u0d79\u0d7a\u0005"+ + "u\u0000\u0000\u0d7a\u0d7b\u0005n\u0000\u0000\u0d7b\u0d7c\u0005d\u0000"+ + "\u0000\u0d7c\u0d7d\u0005I\u0000\u0000\u0d7d\u0d7e\u0005d\u0000\u0000\u0d7e"+ + "\u01a4\u0001\u0000\u0000\u0000\u0d7f\u0d80\u0005w\u0000\u0000\u0d80\u0d81"+ + "\u0005o\u0000\u0000\u0d81\u0d82\u0005r\u0000\u0000\u0d82\u0d83\u0005d"+ + "\u0000\u0000\u0d83\u0d84\u0005c\u0000\u0000\u0d84\u0d85\u0005o\u0000\u0000"+ + "\u0d85\u0d86\u0005u\u0000\u0000\u0d86\u0d87\u0005n\u0000\u0000\u0d87\u0d88"+ + "\u0005t\u0000\u0000\u0d88\u01a6\u0001\u0000\u0000\u0000\u0d89\u0d8a\u0005"+ + "w\u0000\u0000\u0d8a\u0d8b\u0005o\u0000\u0000\u0d8b\u0d8c\u0005r\u0000"+ + "\u0000\u0d8c\u0d8d\u0005d\u0000\u0000\u0d8d\u0d8e\u0005-\u0000\u0000\u0d8e"+ + "\u0d8f\u0005t\u0000\u0000\u0d8f\u0d90\u0005h\u0000\u0000\u0d90\u0d91\u0005"+ + "r\u0000\u0000\u0d91\u0d92\u0005e\u0000\u0000\u0d92\u0d93\u0005s\u0000"+ + "\u0000\u0d93\u0d94\u0005h\u0000\u0000\u0d94\u0d95\u0005o\u0000\u0000\u0d95"+ + "\u0d96\u0005l\u0000\u0000\u0d96\u0d97\u0005d\u0000\u0000\u0d97\u01a8\u0001"+ + "\u0000\u0000\u0000\u0d98\u0d99\u0005i\u0000\u0000\u0d99\u0d9a\u0005n\u0000"+ + "\u0000\u0d9a\u0d9b\u0005p\u0000\u0000\u0d9b\u0d9c\u0005u\u0000\u0000\u0d9c"+ + "\u0d9d\u0005t\u0000\u0000\u0d9d\u0d9e\u0005-\u0000\u0000\u0d9e\u0d9f\u0005"+ + "v\u0000\u0000\u0d9f\u0da0\u0005a\u0000\u0000\u0da0\u0da1\u0005l\u0000"+ + "\u0000\u0da1\u0da2\u0005u\u0000\u0000\u0da2\u0da3\u0005e\u0000\u0000\u0da3"+ + "\u01aa\u0001\u0000\u0000\u0000\u0da4\u0da5\u0005w\u0000\u0000\u0da5\u0da6"+ + "\u0005o\u0000\u0000\u0da6\u0da7\u0005r\u0000\u0000\u0da7\u0da8\u0005d"+ + "\u0000\u0000\u0da8\u0da9\u0005-\u0000\u0000\u0da9\u0daa\u0005l\u0000\u0000"+ + "\u0daa\u0dab\u0005i\u0000\u0000\u0dab\u0dac\u0005m\u0000\u0000\u0dac\u0dad"+ + "\u0005i\u0000\u0000\u0dad\u0dae\u0005t\u0000\u0000\u0dae\u01ac\u0001\u0000"+ + "\u0000\u0000\u0daf\u0db0\u0005c\u0000\u0000\u0db0\u0db1\u0005h\u0000\u0000"+ + "\u0db1\u0db2\u0005a\u0000\u0000\u0db2\u0db3\u0005r\u0000\u0000\u0db3\u0db4"+ + "\u0005a\u0000\u0000\u0db4\u0db5\u0005c\u0000\u0000\u0db5\u0db6\u0005t"+ + "\u0000\u0000\u0db6\u0db7\u0005e\u0000\u0000\u0db7\u0db8\u0005r\u0000\u0000"+ + "\u0db8\u0db9\u0005c\u0000\u0000\u0db9\u0dba\u0005o\u0000\u0000\u0dba\u0dbb"+ + "\u0005u\u0000\u0000\u0dbb\u0dbc\u0005n\u0000\u0000\u0dbc\u0dbd\u0005t"+ + "\u0000\u0000\u0dbd\u01ae\u0001\u0000\u0000\u0000\u0dbe\u0dbf\u0005c\u0000"+ + "\u0000\u0dbf\u0dc0\u0005h\u0000\u0000\u0dc0\u0dc1\u0005a\u0000\u0000\u0dc1"+ + "\u0dc2\u0005r\u0000\u0000\u0dc2\u0dc3\u0005-\u0000\u0000\u0dc3\u0dc4\u0005"+ + "t\u0000\u0000\u0dc4\u0dc5\u0005h\u0000\u0000\u0dc5\u0dc6\u0005r\u0000"+ + "\u0000\u0dc6\u0dc7\u0005e\u0000\u0000\u0dc7\u0dc8\u0005s\u0000\u0000\u0dc8"+ + "\u0dc9\u0005h\u0000\u0000\u0dc9\u0dca\u0005o\u0000\u0000\u0dca\u0dcb\u0005"+ + "l\u0000\u0000\u0dcb\u0dcc\u0005d\u0000\u0000\u0dcc\u01b0\u0001\u0000\u0000"+ + "\u0000\u0dcd\u0dce\u0005c\u0000\u0000\u0dce\u0dcf\u0005h\u0000\u0000\u0dcf"+ + "\u0dd0\u0005a\u0000\u0000\u0dd0\u0dd1\u0005r\u0000\u0000\u0dd1\u0dd2\u0005"+ + "-\u0000\u0000\u0dd2\u0dd3\u0005l\u0000\u0000\u0dd3\u0dd4\u0005i\u0000"+ + "\u0000\u0dd4\u0dd5\u0005m\u0000\u0000\u0dd5\u0dd6\u0005i\u0000\u0000\u0dd6"+ + "\u0dd7\u0005t\u0000\u0000\u0dd7\u01b2\u0001\u0000\u0000\u0000\u0dd8\u0dd9"+ + "\u0005d\u0000\u0000\u0dd9\u0dda\u0005a\u0000\u0000\u0dda\u0ddb\u0005t"+ + "\u0000\u0000\u0ddb\u0ddc\u0005e\u0000\u0000\u0ddc\u0ddd\u0005v\u0000\u0000"+ + "\u0ddd\u0dde\u0005a\u0000\u0000\u0dde\u0ddf\u0005l\u0000\u0000\u0ddf\u0de0"+ + "\u0005i\u0000\u0000\u0de0\u0de1\u0005d\u0000\u0000\u0de1\u0de2\u0005a"+ + "\u0000\u0000\u0de2\u0de3\u0005t\u0000\u0000\u0de3\u0de4\u0005o\u0000\u0000"+ + "\u0de4\u0de5\u0005r\u0000\u0000\u0de5\u01b4\u0001\u0000\u0000\u0000\u0de6"+ + "\u0de7\u0005a\u0000\u0000\u0de7\u0de8\u0005l\u0000\u0000\u0de8\u0de9\u0005"+ + "l\u0000\u0000\u0de9\u0dea\u0005o\u0000\u0000\u0dea\u0deb\u0005w\u0000"+ + "\u0000\u0deb\u0dec\u0005e\u0000\u0000\u0dec\u0ded\u0005d\u0000\u0000\u0ded"+ + "\u0dee\u0005-\u0000\u0000\u0dee\u0def\u0005d\u0000\u0000\u0def\u0df0\u0005"+ + "a\u0000\u0000\u0df0\u0df1\u0005t\u0000\u0000\u0df1\u0df2\u0005e\u0000"+ + "\u0000\u0df2\u0df3\u0005-\u0000\u0000\u0df3\u0df4\u0005f\u0000\u0000\u0df4"+ + "\u0df5\u0005o\u0000\u0000\u0df5\u0df6\u0005r\u0000\u0000\u0df6\u0df7\u0005"+ + "m\u0000\u0000\u0df7\u0df8\u0005a\u0000\u0000\u0df8\u0df9\u0005t\u0000"+ + "\u0000\u0df9\u0dfa\u0005s\u0000\u0000\u0dfa\u01b6\u0001\u0000\u0000\u0000"+ + "\u0dfb\u0dfc\u0005c\u0000\u0000\u0dfc\u0dfd\u0005o\u0000\u0000\u0dfd\u0dfe"+ + "\u0005m\u0000\u0000\u0dfe\u0dff\u0005p\u0000\u0000\u0dff\u0e00\u0005a"+ + "\u0000\u0000\u0e00\u0e01\u0005r\u0000\u0000\u0e01\u0e02\u0005a\u0000\u0000"+ + "\u0e02\u0e03\u0005b\u0000\u0000\u0e03\u0e04\u0005l\u0000\u0000\u0e04\u0e05"+ + "\u0005e\u0000\u0000\u0e05\u0e06\u0005-\u0000\u0000\u0e06\u0e07\u0005d"+ + "\u0000\u0000\u0e07\u0e08\u0005a\u0000\u0000\u0e08\u0e09\u0005t\u0000\u0000"+ + "\u0e09\u0e0a\u0005e\u0000\u0000\u0e0a\u01b8\u0001\u0000\u0000\u0000\u0e0b"+ + "\u0e0c\u0005a\u0000\u0000\u0e0c\u0e0d\u0005l\u0000\u0000\u0e0d\u0e0e\u0005"+ + "p\u0000\u0000\u0e0e\u0e0f\u0005h\u0000\u0000\u0e0f\u0e10\u0005a\u0000"+ + "\u0000\u0e10\u0e11\u0005v\u0000\u0000\u0e11\u0e12\u0005a\u0000\u0000\u0e12"+ + "\u0e13\u0005l\u0000\u0000\u0e13\u0e14\u0005i\u0000\u0000\u0e14\u0e15\u0005"+ + "d\u0000\u0000\u0e15\u0e16\u0005a\u0000\u0000\u0e16\u0e17\u0005t\u0000"+ + "\u0000\u0e17\u0e18\u0005o\u0000\u0000\u0e18\u0e19\u0005r\u0000\u0000\u0e19"+ + "\u01ba\u0001\u0000\u0000\u0000\u0e1a\u0e1b\u0005a\u0000\u0000\u0e1b\u0e1c"+ + "\u0005l\u0000\u0000\u0e1c\u0e1d\u0005l\u0000\u0000\u0e1d\u0e1e\u0005o"+ + "\u0000\u0000\u0e1e\u0e1f\u0005w\u0000\u0000\u0e1f\u0e20\u0005e\u0000\u0000"+ + "\u0e20\u0e21\u0005d\u0000\u0000\u0e21\u0e22\u0005-\u0000\u0000\u0e22\u0e23"+ + "\u0005s\u0000\u0000\u0e23\u0e24\u0005p\u0000\u0000\u0e24\u0e25\u0005e"+ + "\u0000\u0000\u0e25\u0e26\u0005c\u0000\u0000\u0e26\u0e27\u0005i\u0000\u0000"+ + "\u0e27\u0e28\u0005a\u0000\u0000\u0e28\u0e29\u0005l\u0000\u0000\u0e29\u0e2a"+ + "\u0005-\u0000\u0000\u0e2a\u0e2b\u0005c\u0000\u0000\u0e2b\u0e2c\u0005h"+ + "\u0000\u0000\u0e2c\u0e2d\u0005a\u0000\u0000\u0e2d\u0e2e\u0005r\u0000\u0000"+ + "\u0e2e\u0e2f\u0005a\u0000\u0000\u0e2f\u0e30\u0005c\u0000\u0000\u0e30\u0e31"+ + "\u0005t\u0000\u0000\u0e31\u0e32\u0005e\u0000\u0000\u0e32\u0e33\u0005r"+ + "\u0000\u0000\u0e33\u0e34\u0005s\u0000\u0000\u0e34\u01bc\u0001\u0000\u0000"+ + "\u0000\u0e35\u0e36\u0005a\u0000\u0000\u0e36\u0e37\u0005l\u0000\u0000\u0e37"+ + "\u0e38\u0005p\u0000\u0000\u0e38\u0e39\u0005h\u0000\u0000\u0e39\u0e3a\u0005"+ + "a\u0000\u0000\u0e3a\u0e3b\u0005n\u0000\u0000\u0e3b\u0e3c\u0005u\u0000"+ + "\u0000\u0e3c\u0e3d\u0005m\u0000\u0000\u0e3d\u0e3e\u0005e\u0000\u0000\u0e3e"+ + "\u0e3f\u0005r\u0000\u0000\u0e3f\u0e40\u0005i\u0000\u0000\u0e40\u0e41\u0005"+ + "c\u0000\u0000\u0e41\u0e42\u0005v\u0000\u0000\u0e42\u0e43\u0005a\u0000"+ + "\u0000\u0e43\u0e44\u0005l\u0000\u0000\u0e44\u0e45\u0005i\u0000\u0000\u0e45"+ + "\u0e46\u0005d\u0000\u0000\u0e46\u0e47\u0005a\u0000\u0000\u0e47\u0e48\u0005"+ + "t\u0000\u0000\u0e48\u0e49\u0005o\u0000\u0000\u0e49\u0e4a\u0005r\u0000"+ + "\u0000\u0e4a\u01be\u0001\u0000\u0000\u0000\u0e4b\u0e4c\u0005n\u0000\u0000"+ + "\u0e4c\u0e4d\u0005u\u0000\u0000\u0e4d\u0e4e\u0005m\u0000\u0000\u0e4e\u0e4f"+ + "\u0005e\u0000\u0000\u0e4f\u0e50\u0005r\u0000\u0000\u0e50\u0e51\u0005i"+ + "\u0000\u0000\u0e51\u0e52\u0005c\u0000\u0000\u0e52\u0e53\u0005v\u0000\u0000"+ + "\u0e53\u0e54\u0005a\u0000\u0000\u0e54\u0e55\u0005l\u0000\u0000\u0e55\u0e56"+ + "\u0005i\u0000\u0000\u0e56\u0e57\u0005d\u0000\u0000\u0e57\u0e58\u0005a"+ + "\u0000\u0000\u0e58\u0e59\u0005t\u0000\u0000\u0e59\u0e5a\u0005o\u0000\u0000"+ + "\u0e5a\u0e5b\u0005r\u0000\u0000\u0e5b\u01c0\u0001\u0000\u0000\u0000\u0e5c"+ + "\u0e5d\u0005n\u0000\u0000\u0e5d\u0e5e\u0005e\u0000\u0000\u0e5e\u0e5f\u0005"+ + "r\u0000\u0000\u0e5f\u0e60\u0005v\u0000\u0000\u0e60\u0e61\u0005a\u0000"+ + "\u0000\u0e61\u0e62\u0005l\u0000\u0000\u0e62\u0e63\u0005i\u0000\u0000\u0e63"+ + "\u0e64\u0005d\u0000\u0000\u0e64\u0e65\u0005a\u0000\u0000\u0e65\u0e66\u0005"+ + "t\u0000\u0000\u0e66\u0e67\u0005o\u0000\u0000\u0e67\u0e68\u0005r\u0000"+ + "\u0000\u0e68\u01c2\u0001\u0000\u0000\u0000\u0e69\u0e6a\u0005n\u0000\u0000"+ + "\u0e6a\u0e6b\u0005e\u0000\u0000\u0e6b\u0e6c\u0005r\u0000\u0000\u0e6c\u0e6d"+ + "\u0005-\u0000\u0000\u0e6d\u0e6e\u0005t\u0000\u0000\u0e6e\u0e6f\u0005h"+ + "\u0000\u0000\u0e6f\u0e70\u0005r\u0000\u0000\u0e70\u0e71\u0005e\u0000\u0000"+ + "\u0e71\u0e72\u0005s\u0000\u0000\u0e72\u0e73\u0005h\u0000\u0000\u0e73\u0e74"+ + "\u0005o\u0000\u0000\u0e74\u0e75\u0005l\u0000\u0000\u0e75\u0e76\u0005d"+ + "\u0000\u0000\u0e76\u01c4\u0001\u0000\u0000\u0000\u0e77\u0e78\u0005u\u0000"+ + "\u0000\u0e78\u0e79\u0005r\u0000\u0000\u0e79\u0e7a\u0005g\u0000\u0000\u0e7a"+ + "\u0e7b\u0005e\u0000\u0000\u0e7b\u0e7c\u0005n\u0000\u0000\u0e7c\u0e7d\u0005"+ + "c\u0000\u0000\u0e7d\u0e7e\u0005y\u0000\u0000\u0e7e\u0e7f\u0005T\u0000"+ + "\u0000\u0e7f\u0e80\u0005r\u0000\u0000\u0e80\u0e81\u0005i\u0000\u0000\u0e81"+ + "\u0e82\u0005a\u0000\u0000\u0e82\u0e83\u0005g\u0000\u0000\u0e83\u0e84\u0005"+ + "e\u0000\u0000\u0e84\u01c6\u0001\u0000\u0000\u0000\u0e85\u0e86\u0005i\u0000"+ + "\u0000\u0e86\u0e87\u0005n\u0000\u0000\u0e87\u0e88\u0005p\u0000\u0000\u0e88"+ + "\u0e89\u0005u\u0000\u0000\u0e89\u0e8a\u0005t\u0000\u0000\u0e8a\u0e8b\u0005"+ + "-\u0000\u0000\u0e8b\u0e8c\u0005f\u0000\u0000\u0e8c\u0e8d\u0005i\u0000"+ + "\u0000\u0e8d\u0e8e\u0005l\u0000\u0000\u0e8e\u0e8f\u0005e\u0000\u0000\u0e8f"+ + "\u0e90\u0005-\u0000\u0000\u0e90\u0e91\u0005p\u0000\u0000\u0e91\u0e92\u0005"+ + "a\u0000\u0000\u0e92\u0e93\u0005t\u0000\u0000\u0e93\u0e94\u0005h\u0000"+ + "\u0000\u0e94\u01c8\u0001\u0000\u0000\u0000\u0e95\u0e96\u0005b\u0000\u0000"+ + "\u0e96\u0e97\u0005i\u0000\u0000\u0e97\u0e98\u0005n\u0000\u0000\u0e98\u0e99"+ + "\u0005a\u0000\u0000\u0e99\u0e9a\u0005r\u0000\u0000\u0e9a\u0e9b\u0005y"+ + "\u0000\u0000\u0e9b\u0e9c\u0005-\u0000\u0000\u0e9c\u0e9d\u0005c\u0000\u0000"+ + "\u0e9d\u0e9e\u0005l\u0000\u0000\u0e9e\u0e9f\u0005a\u0000\u0000\u0e9f\u0ea0"+ + "\u0005s\u0000\u0000\u0ea0\u0ea1\u0005s\u0000\u0000\u0ea1\u0ea2\u0005i"+ + "\u0000\u0000\u0ea2\u0ea3\u0005f\u0000\u0000\u0ea3\u0ea4\u0005i\u0000\u0000"+ + "\u0ea4\u0ea5\u0005e\u0000\u0000\u0ea5\u0ea6\u0005r\u0000\u0000\u0ea6\u0ea7"+ + "\u0005-\u0000\u0000\u0ea7\u0ea8\u0005m\u0000\u0000\u0ea8\u0ea9\u0005o"+ + "\u0000\u0000\u0ea9\u0eaa\u0005d\u0000\u0000\u0eaa\u0eab\u0005e\u0000\u0000"+ + "\u0eab\u0eac\u0005l\u0000\u0000\u0eac\u0ead\u0005-\u0000\u0000\u0ead\u0eae"+ + "\u0005f\u0000\u0000\u0eae\u0eaf\u0005i\u0000\u0000\u0eaf\u0eb0\u0005l"+ + "\u0000\u0000\u0eb0\u0eb1\u0005e\u0000\u0000\u0eb1\u0eb2\u0005-\u0000\u0000"+ + "\u0eb2\u0eb3\u0005p\u0000\u0000\u0eb3\u0eb4\u0005a\u0000\u0000\u0eb4\u0eb5"+ + "\u0005t\u0000\u0000\u0eb5\u0eb6\u0005h\u0000\u0000\u0eb6\u01ca\u0001\u0000"+ + "\u0000\u0000\u0eb7\u0eb8\u0005m\u0000\u0000\u0eb8\u0eb9\u0005u\u0000\u0000"+ + "\u0eb9\u0eba\u0005l\u0000\u0000\u0eba\u0ebb\u0005t\u0000\u0000\u0ebb\u0ebc"+ + "\u0005i\u0000\u0000\u0ebc\u0ebd\u0005-\u0000\u0000\u0ebd\u0ebe\u0005c"+ + "\u0000\u0000\u0ebe\u0ebf\u0005l\u0000\u0000\u0ebf\u0ec0\u0005a\u0000\u0000"+ + "\u0ec0\u0ec1\u0005s\u0000\u0000\u0ec1\u0ec2\u0005s\u0000\u0000\u0ec2\u0ec3"+ + "\u0005i\u0000\u0000\u0ec3\u0ec4\u0005f\u0000\u0000\u0ec4\u0ec5\u0005i"+ + "\u0000\u0000\u0ec5\u0ec6\u0005e\u0000\u0000\u0ec6\u0ec7\u0005r\u0000\u0000"+ + "\u0ec7\u0ec8\u0005-\u0000\u0000\u0ec8\u0ec9\u0005m\u0000\u0000\u0ec9\u0eca"+ + "\u0005o\u0000\u0000\u0eca\u0ecb\u0005d\u0000\u0000\u0ecb\u0ecc\u0005e"+ + "\u0000\u0000\u0ecc\u0ecd\u0005l\u0000\u0000\u0ecd\u0ece\u0005-\u0000\u0000"+ + "\u0ece\u0ecf\u0005f\u0000\u0000\u0ecf\u0ed0\u0005i\u0000\u0000\u0ed0\u0ed1"+ + "\u0005l\u0000\u0000\u0ed1\u0ed2\u0005e\u0000\u0000\u0ed2\u0ed3\u0005-"+ + "\u0000\u0000\u0ed3\u0ed4\u0005p\u0000\u0000\u0ed4\u0ed5\u0005a\u0000\u0000"+ + "\u0ed5\u0ed6\u0005t\u0000\u0000\u0ed6\u0ed7\u0005h\u0000\u0000\u0ed7\u01cc"+ + "\u0001\u0000\u0000\u0000\u0ed8\u0ed9\u0005c\u0000\u0000\u0ed9\u0eda\u0005"+ + "h\u0000\u0000\u0eda\u0edb\u0005e\u0000\u0000\u0edb\u0edc\u0005c\u0000"+ + "\u0000\u0edc\u0edd\u0005k\u0000\u0000\u0edd\u0ede\u0005b\u0000\u0000\u0ede"+ + "\u0edf\u0005o\u0000\u0000\u0edf\u0ee0\u0005x\u0000\u0000\u0ee0\u0ee1\u0005"+ + "-\u0000\u0000\u0ee1\u0ee2\u0005c\u0000\u0000\u0ee2\u0ee3\u0005l\u0000"+ + "\u0000\u0ee3\u0ee4\u0005a\u0000\u0000\u0ee4\u0ee5\u0005s\u0000\u0000\u0ee5"+ + "\u0ee6\u0005s\u0000\u0000\u0ee6\u0ee7\u0005i\u0000\u0000\u0ee7\u0ee8\u0005"+ + "f\u0000\u0000\u0ee8\u0ee9\u0005i\u0000\u0000\u0ee9\u0eea\u0005e\u0000"+ + "\u0000\u0eea\u0eeb\u0005r\u0000\u0000\u0eeb\u0eec\u0005-\u0000\u0000\u0eec"+ + "\u0eed\u0005m\u0000\u0000\u0eed\u0eee\u0005o\u0000\u0000\u0eee\u0eef\u0005"+ + "d\u0000\u0000\u0eef\u0ef0\u0005e\u0000\u0000\u0ef0\u0ef1\u0005l\u0000"+ + "\u0000\u0ef1\u0ef2\u0005-\u0000\u0000\u0ef2\u0ef3\u0005f\u0000\u0000\u0ef3"+ + "\u0ef4\u0005i\u0000\u0000\u0ef4\u0ef5\u0005l\u0000\u0000\u0ef5\u0ef6\u0005"+ + "e\u0000\u0000\u0ef6\u0ef7\u0005-\u0000\u0000\u0ef7\u0ef8\u0005p\u0000"+ + "\u0000\u0ef8\u0ef9\u0005a\u0000\u0000\u0ef9\u0efa\u0005t\u0000\u0000\u0efa"+ + "\u0efb\u0005h\u0000\u0000\u0efb\u01ce\u0001\u0000\u0000\u0000\u0efc\u0efd"+ + "\u0005s\u0000\u0000\u0efd\u0efe\u0005y\u0000\u0000\u0efe\u0eff\u0005n"+ + "\u0000\u0000\u0eff\u0f00\u0005o\u0000\u0000\u0f00\u0f01\u0005n\u0000\u0000"+ + "\u0f01\u0f02\u0005y\u0000\u0000\u0f02\u0f03\u0005m\u0000\u0000\u0f03\u0f04"+ + "\u0005s\u0000\u0000\u0f04\u01d0\u0001\u0000\u0000\u0000\u0f05\u0f06\u0005"+ + "b\u0000\u0000\u0f06\u0f07\u0005i\u0000\u0000\u0f07\u0f08\u0005n\u0000"+ + "\u0000\u0f08\u0f09\u0005a\u0000\u0000\u0f09\u0f0a\u0005r\u0000\u0000\u0f0a"+ + "\u0f0b\u0005y\u0000\u0000\u0f0b\u0f0c\u0005-\u0000\u0000\u0f0c\u0f0d\u0005"+ + "c\u0000\u0000\u0f0d\u0f0e\u0005l\u0000\u0000\u0f0e\u0f0f\u0005a\u0000"+ + "\u0000\u0f0f\u0f10\u0005s\u0000\u0000\u0f10\u0f11\u0005s\u0000\u0000\u0f11"+ + "\u0f12\u0005i\u0000\u0000\u0f12\u0f13\u0005f\u0000\u0000\u0f13\u0f14\u0005"+ + "i\u0000\u0000\u0f14\u0f15\u0005e\u0000\u0000\u0f15\u0f16\u0005r\u0000"+ + "\u0000\u0f16\u0f17\u0005-\u0000\u0000\u0f17\u0f18\u0005l\u0000\u0000\u0f18"+ + "\u0f19\u0005a\u0000\u0000\u0f19\u0f1a\u0005b\u0000\u0000\u0f1a\u0f1b\u0005"+ + "e\u0000\u0000\u0f1b\u0f1c\u0005l\u0000\u0000\u0f1c\u0f1d\u0005s\u0000"+ + "\u0000\u0f1d\u01d2\u0001\u0000\u0000\u0000\u0f1e\u0f1f\u0005m\u0000\u0000"+ + "\u0f1f\u0f20\u0005u\u0000\u0000\u0f20\u0f21\u0005l\u0000\u0000\u0f21\u0f22"+ + "\u0005t\u0000\u0000\u0f22\u0f23\u0005i\u0000\u0000\u0f23\u0f24\u0005-"+ + "\u0000\u0000\u0f24\u0f25\u0005c\u0000\u0000\u0f25\u0f26\u0005l\u0000\u0000"+ + "\u0f26\u0f27\u0005a\u0000\u0000\u0f27\u0f28\u0005s\u0000\u0000\u0f28\u0f29"+ + "\u0005s\u0000\u0000\u0f29\u0f2a\u0005i\u0000\u0000\u0f2a\u0f2b\u0005f"+ + "\u0000\u0000\u0f2b\u0f2c\u0005i\u0000\u0000\u0f2c\u0f2d\u0005e\u0000\u0000"+ + "\u0f2d\u0f2e\u0005r\u0000\u0000\u0f2e\u0f2f\u0005-\u0000\u0000\u0f2f\u0f30"+ + "\u0005l\u0000\u0000\u0f30\u0f31\u0005a\u0000\u0000\u0f31\u0f32\u0005b"+ + "\u0000\u0000\u0f32\u0f33\u0005e\u0000\u0000\u0f33\u0f34\u0005l\u0000\u0000"+ + "\u0f34\u0f35\u0005s\u0000\u0000\u0f35\u01d4\u0001\u0000\u0000\u0000\u0f36"+ + "\u0f37\u0005c\u0000\u0000\u0f37\u0f38\u0005h\u0000\u0000\u0f38\u0f39\u0005"+ + "e\u0000\u0000\u0f39\u0f3a\u0005c\u0000\u0000\u0f3a\u0f3b\u0005k\u0000"+ + "\u0000\u0f3b\u0f3c\u0005b\u0000\u0000\u0f3c\u0f3d\u0005o\u0000\u0000\u0f3d"+ + "\u0f3e\u0005x\u0000\u0000\u0f3e\u0f3f\u0005-\u0000\u0000\u0f3f\u0f40\u0005"+ + "c\u0000\u0000\u0f40\u0f41\u0005l\u0000\u0000\u0f41\u0f42\u0005a\u0000"+ + "\u0000\u0f42\u0f43\u0005s\u0000\u0000\u0f43\u0f44\u0005s\u0000\u0000\u0f44"+ + "\u0f45\u0005i\u0000\u0000\u0f45\u0f46\u0005f\u0000\u0000\u0f46\u0f47\u0005"+ + "i\u0000\u0000\u0f47\u0f48\u0005e\u0000\u0000\u0f48\u0f49\u0005r\u0000"+ + "\u0000\u0f49\u0f4a\u0005-\u0000\u0000\u0f4a\u0f4b\u0005l\u0000\u0000\u0f4b"+ + "\u0f4c\u0005a\u0000\u0000\u0f4c\u0f4d\u0005b\u0000\u0000\u0f4d\u0f4e\u0005"+ + "e\u0000\u0000\u0f4e\u0f4f\u0005l\u0000\u0000\u0f4f\u0f50\u0005s\u0000"+ + "\u0000\u0f50\u01d6\u0001\u0000\u0000\u0000\u0f51\u0f52\u0005b\u0000\u0000"+ + "\u0f52\u0f53\u0005i\u0000\u0000\u0f53\u0f54\u0005n\u0000\u0000\u0f54\u0f55"+ + "\u0005a\u0000\u0000\u0f55\u0f56\u0005r\u0000\u0000\u0f56\u0f57\u0005y"+ + "\u0000\u0000\u0f57\u0f58\u0005-\u0000\u0000\u0f58\u0f59\u0005i\u0000\u0000"+ + "\u0f59\u0f5a\u0005m\u0000\u0000\u0f5a\u0f5b\u0005a\u0000\u0000\u0f5b\u0f5c"+ + "\u0005g\u0000\u0000\u0f5c\u0f5d\u0005e\u0000\u0000\u0f5d\u0f5e\u0005-"+ + "\u0000\u0000\u0f5e\u0f5f\u0005w\u0000\u0000\u0f5f\u0f60\u0005i\u0000\u0000"+ + "\u0f60\u0f61\u0005d\u0000\u0000\u0f61\u0f62\u0005t\u0000\u0000\u0f62\u0f63"+ + "\u0005h\u0000\u0000\u0f63\u01d8\u0001\u0000\u0000\u0000\u0f64\u0f65\u0005"+ + "b\u0000\u0000\u0f65\u0f66\u0005i\u0000\u0000\u0f66\u0f67\u0005n\u0000"+ + "\u0000\u0f67\u0f68\u0005a\u0000\u0000\u0f68\u0f69\u0005r\u0000\u0000\u0f69"+ + "\u0f6a\u0005y\u0000\u0000\u0f6a\u0f6b\u0005-\u0000\u0000\u0f6b\u0f6c\u0005"+ + "i\u0000\u0000\u0f6c\u0f6d\u0005m\u0000\u0000\u0f6d\u0f6e\u0005a\u0000"+ + "\u0000\u0f6e\u0f6f\u0005g\u0000\u0000\u0f6f\u0f70\u0005e\u0000\u0000\u0f70"+ + "\u0f71\u0005-\u0000\u0000\u0f71\u0f72\u0005h\u0000\u0000\u0f72\u0f73\u0005"+ + "e\u0000\u0000\u0f73\u0f74\u0005i\u0000\u0000\u0f74\u0f75\u0005g\u0000"+ + "\u0000\u0f75\u0f76\u0005h\u0000\u0000\u0f76\u0f77\u0005t\u0000\u0000\u0f77"+ + "\u01da\u0001\u0000\u0000\u0000\u0f78\u0f79\u0005m\u0000\u0000\u0f79\u0f7a"+ + "\u0005u\u0000\u0000\u0f7a\u0f7b\u0005l\u0000\u0000\u0f7b\u0f7c\u0005t"+ + "\u0000\u0000\u0f7c\u0f7d\u0005i\u0000\u0000\u0f7d\u0f7e\u0005-\u0000\u0000"+ + "\u0f7e\u0f7f\u0005i\u0000\u0000\u0f7f\u0f80\u0005m\u0000\u0000\u0f80\u0f81"+ + "\u0005a\u0000\u0000\u0f81\u0f82\u0005g\u0000\u0000\u0f82\u0f83\u0005e"+ + "\u0000\u0000\u0f83\u0f84\u0005-\u0000\u0000\u0f84\u0f85\u0005w\u0000\u0000"+ + "\u0f85\u0f86\u0005i\u0000\u0000\u0f86\u0f87\u0005d\u0000\u0000\u0f87\u0f88"+ + "\u0005t\u0000\u0000\u0f88\u0f89\u0005h\u0000\u0000\u0f89\u01dc\u0001\u0000"+ + "\u0000\u0000\u0f8a\u0f8b\u0005m\u0000\u0000\u0f8b\u0f8c\u0005u\u0000\u0000"+ + "\u0f8c\u0f8d\u0005l\u0000\u0000\u0f8d\u0f8e\u0005t\u0000\u0000\u0f8e\u0f8f"+ + "\u0005i\u0000\u0000\u0f8f\u0f90\u0005-\u0000\u0000\u0f90\u0f91\u0005i"+ + "\u0000\u0000\u0f91\u0f92\u0005m\u0000\u0000\u0f92\u0f93\u0005a\u0000\u0000"+ + "\u0f93\u0f94\u0005g\u0000\u0000\u0f94\u0f95\u0005e\u0000\u0000\u0f95\u0f96"+ + "\u0005-\u0000\u0000\u0f96\u0f97\u0005h\u0000\u0000\u0f97\u0f98\u0005e"+ + "\u0000\u0000\u0f98\u0f99\u0005i\u0000\u0000\u0f99\u0f9a\u0005g\u0000\u0000"+ + "\u0f9a\u0f9b\u0005h\u0000\u0000\u0f9b\u0f9c\u0005t\u0000\u0000\u0f9c\u01de"+ + "\u0001\u0000\u0000\u0000\u0f9d\u0f9e\u0005c\u0000\u0000\u0f9e\u0f9f\u0005"+ + "h\u0000\u0000\u0f9f\u0fa0\u0005e\u0000\u0000\u0fa0\u0fa1\u0005c\u0000"+ + "\u0000\u0fa1\u0fa2\u0005k\u0000\u0000\u0fa2\u0fa3\u0005b\u0000\u0000\u0fa3"+ + "\u0fa4\u0005o\u0000\u0000\u0fa4\u0fa5\u0005x\u0000\u0000\u0fa5\u0fa6\u0005"+ + "-\u0000\u0000\u0fa6\u0fa7\u0005i\u0000\u0000\u0fa7\u0fa8\u0005m\u0000"+ + "\u0000\u0fa8\u0fa9\u0005a\u0000\u0000\u0fa9\u0faa\u0005g\u0000\u0000\u0faa"+ + "\u0fab\u0005e\u0000\u0000\u0fab\u0fac\u0005-\u0000\u0000\u0fac\u0fad\u0005"+ + "w\u0000\u0000\u0fad\u0fae\u0005i\u0000\u0000\u0fae\u0faf\u0005d\u0000"+ + "\u0000\u0faf\u0fb0\u0005t\u0000\u0000\u0fb0\u0fb1\u0005h\u0000\u0000\u0fb1"+ + "\u01e0\u0001\u0000\u0000\u0000\u0fb2\u0fb3\u0005c\u0000\u0000\u0fb3\u0fb4"+ + "\u0005h\u0000\u0000\u0fb4\u0fb5\u0005e\u0000\u0000\u0fb5\u0fb6\u0005c"+ + "\u0000\u0000\u0fb6\u0fb7\u0005k\u0000\u0000\u0fb7\u0fb8\u0005b\u0000\u0000"+ + "\u0fb8\u0fb9\u0005o\u0000\u0000\u0fb9\u0fba\u0005x\u0000\u0000\u0fba\u0fbb"+ + "\u0005-\u0000\u0000\u0fbb\u0fbc\u0005i\u0000\u0000\u0fbc\u0fbd\u0005m"+ + "\u0000\u0000\u0fbd\u0fbe\u0005a\u0000\u0000\u0fbe\u0fbf\u0005g\u0000\u0000"+ + "\u0fbf\u0fc0\u0005e\u0000\u0000\u0fc0\u0fc1\u0005-\u0000\u0000\u0fc1\u0fc2"+ + "\u0005h\u0000\u0000\u0fc2\u0fc3\u0005e\u0000\u0000\u0fc3\u0fc4\u0005i"+ + "\u0000\u0000\u0fc4\u0fc5\u0005g\u0000\u0000\u0fc5\u0fc6\u0005h\u0000\u0000"+ + "\u0fc6\u0fc7\u0005t\u0000\u0000\u0fc7\u01e2\u0001\u0000\u0000\u0000\u0fc8"+ + "\u0fc9\u0005d\u0000\u0000\u0fc9\u0fca\u0005o\u0000\u0000\u0fca\u0fcb\u0005"+ + "n\u0000\u0000\u0fcb\u0fcc\u0005u\u0000\u0000\u0fcc\u0fcd\u0005t\u0000"+ + "\u0000\u0fcd\u0fce\u0005-\u0000\u0000\u0fce\u0fcf\u0005d\u0000\u0000\u0fcf"+ + "\u0fd0\u0005o\u0000\u0000\u0fd0\u0fd1\u0005c\u0000\u0000\u0fd1\u0fd2\u0005"+ + "q\u0000\u0000\u0fd2\u0fd3\u0005a\u0000\u0000\u0fd3\u01e4\u0001\u0000\u0000"+ + "\u0000\u0fd4\u0fd5\u0005s\u0000\u0000\u0fd5\u0fd6\u0005c\u0000\u0000\u0fd6"+ + "\u0fd7\u0005a\u0000\u0000\u0fd7\u0fd8\u0005l\u0000\u0000\u0fd8\u0fd9\u0005"+ + "a\u0000\u0000\u0fd9\u0fda\u0005r\u0000\u0000\u0fda\u0fdb\u0005A\u0000"+ + "\u0000\u0fdb\u0fdc\u0005d\u0000\u0000\u0fdc\u0fdd\u0005a\u0000\u0000\u0fdd"+ + "\u0fde\u0005p\u0000\u0000\u0fde\u0fdf\u0005t\u0000\u0000\u0fdf\u0fe0\u0005"+ + "e\u0000\u0000\u0fe0\u0fe1\u0005r\u0000\u0000\u0fe1\u01e6\u0001\u0000\u0000"+ + "\u0000\u0fe2\u0fe3\u0005u\u0000\u0000\u0fe3\u0fe4\u0005s\u0000\u0000\u0fe4"+ + "\u0fe5\u0005i\u0000\u0000\u0fe5\u0fe6\u0005n\u0000\u0000\u0fe6\u0fe7\u0005"+ + "g\u0000\u0000\u0fe7\u0fe8\u0005-\u0000\u0000\u0fe8\u0fe9\u0005d\u0000"+ + "\u0000\u0fe9\u0fea\u0005o\u0000\u0000\u0fea\u0feb\u0005c\u0000\u0000\u0feb"+ + "\u0fec\u0005n\u0000\u0000\u0fec\u0fed\u0005u\u0000\u0000\u0fed\u0fee\u0005"+ + "t\u0000\u0000\u0fee\u0fef\u0005-\u0000\u0000\u0fef\u0ff0\u0005r\u0000"+ + "\u0000\u0ff0\u0ff1\u0005e\u0000\u0000\u0ff1\u0ff2\u0005s\u0000\u0000\u0ff2"+ + "\u0ff3\u0005u\u0000\u0000\u0ff3\u0ff4\u0005l\u0000\u0000\u0ff4\u0ff5\u0005"+ + "t\u0000\u0000\u0ff5\u01e8\u0001\u0000\u0000\u0000\u0ff6\u0ff7\u0005p\u0000"+ + "\u0000\u0ff7\u0ff8\u0005h\u0000\u0000\u0ff8\u0ff9\u0005r\u0000\u0000\u0ff9"+ + "\u0ffa\u0005a\u0000\u0000\u0ffa\u0ffb\u0005s\u0000\u0000\u0ffb\u0ffc\u0005"+ + "e\u0000\u0000\u0ffc\u0ffd\u0005-\u0000\u0000\u0ffd\u0ffe\u0005m\u0000"+ + "\u0000\u0ffe\u0fff\u0005a\u0000\u0000\u0fff\u1000\u0005t\u0000\u0000\u1000"+ + "\u1001\u0005c\u0000\u0000\u1001\u1002\u0005h\u0000\u0000\u1002\u1003\u0005"+ + "-\u0000\u0000\u1003\u1004\u0005p\u0000\u0000\u1004\u1005\u0005a\u0000"+ + "\u0000\u1005\u1006\u0005p\u0000\u0000\u1006\u1007\u0005e\u0000\u0000\u1007"+ + "\u1008\u0005r\u0000\u0000\u1008\u1009\u0005-\u0000\u0000\u1009\u100a\u0005"+ + "f\u0000\u0000\u100a\u100b\u0005i\u0000\u0000\u100b\u100c\u0005l\u0000"+ + "\u0000\u100c\u100d\u0005t\u0000\u0000\u100d\u100e\u0005e\u0000\u0000\u100e"+ + "\u100f\u0005r\u0000\u0000\u100f\u01ea\u0001\u0000\u0000\u0000\u1010\u1011"+ + "\u0005f\u0000\u0000\u1011\u1012\u0005o\u0000\u0000\u1012\u1013\u0005r"+ + "\u0000\u0000\u1013\u1014\u0005-\u0000\u0000\u1014\u1015\u0005p\u0000\u0000"+ + "\u1015\u1016\u0005r\u0000\u0000\u1016\u1017\u0005o\u0000\u0000\u1017\u1018"+ + "\u0005c\u0000\u0000\u1018\u1019\u0005e\u0000\u0000\u1019\u101a\u0005s"+ + "\u0000\u0000\u101a\u101b\u0005s\u0000\u0000\u101b\u101c\u0005-\u0000\u0000"+ + "\u101c\u101d\u0005i\u0000\u0000\u101d\u101e\u0005d\u0000\u0000\u101e\u01ec"+ + "\u0001\u0000\u0000\u0000\u101f\u1020\u0005t\u0000\u0000\u1020\u1021\u0005"+ + "h\u0000\u0000\u1021\u1022\u0005r\u0000\u0000\u1022\u1023\u0005e\u0000"+ + "\u0000\u1023\u1024\u0005a\u0000\u0000\u1024\u1025\u0005d\u0000\u0000\u1025"+ + "\u1026\u0005-\u0000\u0000\u1026\u1027\u0005c\u0000\u0000\u1027\u1028\u0005"+ + "o\u0000\u0000\u1028\u1029\u0005u\u0000\u0000\u1029\u102a\u0005n\u0000"+ + "\u0000\u102a\u102b\u0005t\u0000\u0000\u102b\u01ee\u0001\u0000\u0000\u0000"+ + "\u102c\u102d\u0005r\u0000\u0000\u102d\u102e\u0005e\u0000\u0000\u102e\u102f"+ + "\u0005a\u0000\u0000\u102f\u1030\u0005d\u0000\u0000\u1030\u1031\u0005-"+ + "\u0000\u0000\u1031\u1032\u0005b\u0000\u0000\u1032\u1033\u0005a\u0000\u0000"+ + "\u1033\u1034\u0005t\u0000\u0000\u1034\u1035\u0005c\u0000\u0000\u1035\u1036"+ + "\u0005h\u0000\u0000\u1036\u1037\u0005-\u0000\u0000\u1037\u1038\u0005s"+ + "\u0000\u0000\u1038\u1039\u0005i\u0000\u0000\u1039\u103a\u0005z\u0000\u0000"+ + "\u103a\u103b\u0005e\u0000\u0000\u103b\u01f0\u0001\u0000\u0000\u0000\u103c"+ + "\u103d\u0005w\u0000\u0000\u103d\u103e\u0005r\u0000\u0000\u103e\u103f\u0005"+ + "i\u0000\u0000\u103f\u1040\u0005t\u0000\u0000\u1040\u1041\u0005e\u0000"+ + "\u0000\u1041\u1042\u0005-\u0000\u0000\u1042\u1043\u0005b\u0000\u0000\u1043"+ + "\u1044\u0005a\u0000\u0000\u1044\u1045\u0005t\u0000\u0000\u1045\u1046\u0005"+ + "c\u0000\u0000\u1046\u1047\u0005h\u0000\u0000\u1047\u1048\u0005-\u0000"+ + "\u0000\u1048\u1049\u0005s\u0000\u0000\u1049\u104a\u0005i\u0000\u0000\u104a"+ + "\u104b\u0005z\u0000\u0000\u104b\u104c\u0005e\u0000\u0000\u104c\u01f2\u0001"+ + "\u0000\u0000\u0000\u104d\u104e\u0005w\u0000\u0000\u104e\u104f\u0005i\u0000"+ + "\u0000\u104f\u1050\u0005t\u0000\u0000\u1050\u1051\u0005h\u0000\u0000\u1051"+ + "\u1052\u0005-\u0000\u0000\u1052\u1053\u0005i\u0000\u0000\u1053\u1054\u0005"+ + "n\u0000\u0000\u1054\u1055\u0005p\u0000\u0000\u1055\u1056\u0005u\u0000"+ + "\u0000\u1056\u1057\u0005t\u0000\u0000\u1057\u1058\u0005-\u0000\u0000\u1058"+ + "\u1059\u0005q\u0000\u0000\u1059\u105a\u0005u\u0000\u0000\u105a\u105b\u0005"+ + "e\u0000\u0000\u105b\u105c\u0005r\u0000\u0000\u105c\u105d\u0005y\u0000"+ + "\u0000\u105d\u01f4\u0001\u0000\u0000\u0000\u105e\u105f\u0005z\u0000\u0000"+ + "\u105f\u1060\u0005e\u0000\u0000\u1060\u1061\u0005r\u0000\u0000\u1061\u1062"+ + "\u0005o\u0000\u0000\u1062\u1063\u0005-\u0000\u0000\u1063\u1064\u0005s"+ + "\u0000\u0000\u1064\u1065\u0005h\u0000\u0000\u1065\u1066\u0005o\u0000\u0000"+ + "\u1066\u1067\u0005t\u0000\u0000\u1067\u1068\u0005-\u0000\u0000\u1068\u1069"+ + "\u0005c\u0000\u0000\u1069\u106a\u0005l\u0000\u0000\u106a\u106b\u0005a"+ + "\u0000\u0000\u106b\u106c\u0005s\u0000\u0000\u106c\u106d\u0005s\u0000\u0000"+ + "\u106d\u106e\u0005i\u0000\u0000\u106e\u106f\u0005f\u0000\u0000\u106f\u1070"+ + "\u0005i\u0000\u0000\u1070\u1071\u0005e\u0000\u0000\u1071\u1072\u0005r"+ + "\u0000\u0000\u1072\u1073\u0005-\u0000\u0000\u1073\u1074\u0005p\u0000\u0000"+ + "\u1074\u1075\u0005a\u0000\u0000\u1075\u1076\u0005p\u0000\u0000\u1076\u1077"+ + "\u0005e\u0000\u0000\u1077\u1078\u0005r\u0000\u0000\u1078\u1079\u0005-"+ + "\u0000\u0000\u1079\u107a\u0005f\u0000\u0000\u107a\u107b\u0005i\u0000\u0000"+ + "\u107b\u107c\u0005l\u0000\u0000\u107c\u107d\u0005t\u0000\u0000\u107d\u107e"+ + "\u0005e\u0000\u0000\u107e\u107f\u0005r\u0000\u0000\u107f\u01f6\u0001\u0000"+ + "\u0000\u0000\u1080\u1081\u0005a\u0000\u0000\u1081\u1082\u0005s\u0000\u0000"+ + "\u1082\u1083\u0005s\u0000\u0000\u1083\u1084\u0005e\u0000\u0000\u1084\u1085"+ + "\u0005t\u0000\u0000\u1085\u1086\u0005I\u0000\u0000\u1086\u1087\u0005n"+ + "\u0000\u0000\u1087\u1088\u0005f\u0000\u0000\u1088\u1089\u0005o\u0000\u0000"+ + "\u1089\u01f8\u0001\u0000\u0000\u0000\u108a\u108b\u0005g\u0000\u0000\u108b"+ + "\u108c\u0005e\u0000\u0000\u108c\u108d\u0005t\u0000\u0000\u108d\u108e\u0005"+ + "-\u0000\u0000\u108e\u108f\u0005a\u0000\u0000\u108f\u1090\u0005u\u0000"+ + "\u0000\u1090\u1091\u0005d\u0000\u0000\u1091\u1092\u0005i\u0000\u0000\u1092"+ + "\u1093\u0005t\u0000\u0000\u1093\u1094\u0005-\u0000\u0000\u1094\u1095\u0005"+ + "t\u0000\u0000\u1095\u1096\u0005a\u0000\u0000\u1096\u1097\u0005b\u0000"+ + "\u0000\u1097\u1098\u0005l\u0000\u0000\u1098\u1099\u0005e\u0000\u0000\u1099"+ + "\u01fa\u0001\u0000\u0000\u0000\u109a\u109b\u0005r\u0000\u0000\u109b\u109c"+ + "\u0005e\u0000\u0000\u109c\u109d\u0005s\u0000\u0000\u109d\u109e\u0005u"+ + "\u0000\u0000\u109e\u109f\u0005l\u0000\u0000\u109f\u10a0\u0005t\u0000\u0000"+ + "\u10a0\u10a1\u0005-\u0000\u0000\u10a1\u10a2\u0005t\u0000\u0000\u10a2\u10a3"+ + "\u0005a\u0000\u0000\u10a3\u10a4\u0005b\u0000\u0000\u10a4\u10a5\u0005l"+ + "\u0000\u0000\u10a5\u10a6\u0005e\u0000\u0000\u10a6\u01fc\u0001\u0000\u0000"+ + "\u0000\u10a7\u10a8\u0005d\u0000\u0000\u10a8\u10a9\u0005a\u0000\u0000\u10a9"+ + "\u10aa\u0005t\u0000\u0000\u10aa\u10ab\u0005a\u0000\u0000\u10ab\u10ac\u0005"+ + "E\u0000\u0000\u10ac\u10ad\u0005x\u0000\u0000\u10ad\u10ae\u0005t\u0000"+ + "\u0000\u10ae\u10af\u0005r\u0000\u0000\u10af\u10b0\u0005a\u0000\u0000\u10b0"+ + "\u10b1\u0005c\u0000\u0000\u10b1\u10b2\u0005t\u0000\u0000\u10b2\u10b3\u0005"+ + "i\u0000\u0000\u10b3\u10b4\u0005o\u0000\u0000\u10b4\u10b5\u0005n\u0000"+ + "\u0000\u10b5\u01fe\u0001\u0000\u0000\u0000\u10b6\u10b7\u0005e\u0000\u0000"+ + "\u10b7\u10b8\u0005p\u0000\u0000\u10b8\u10b9\u0005i\u0000\u0000\u10b9\u10ba"+ + "\u0005s\u0000\u0000\u10ba\u10bb\u0005o\u0000\u0000\u10bb\u10bc\u0005d"+ + "\u0000\u0000\u10bc\u10bd\u0005e\u0000\u0000\u10bd\u10be\u0005O\u0000\u0000"+ + "\u10be\u10bf\u0005f\u0000\u0000\u10bf\u10c0\u0005C\u0000\u0000\u10c0\u10c1"+ + "\u0005o\u0000\u0000\u10c1\u10c2\u0005v\u0000\u0000\u10c2\u10c3\u0005e"+ + "\u0000\u0000\u10c3\u10c4\u0005r\u0000\u0000\u10c4\u10c5\u0005a\u0000\u0000"+ + "\u10c5\u10c6\u0005g\u0000\u0000\u10c6\u10c7\u0005e\u0000\u0000\u10c7\u0200"+ + "\u0001\u0000\u0000\u0000\u10c8\u10c9\u0005o\u0000\u0000\u10c9\u10ca\u0005"+ + "r\u0000\u0000\u10ca\u10cb\u0005i\u0000\u0000\u10cb\u10cc\u0005g\u0000"+ + "\u0000\u10cc\u10cd\u0005i\u0000\u0000\u10cd\u10ce\u0005n\u0000\u0000\u10ce"+ + "\u10cf\u0005-\u0000\u0000\u10cf\u10d0\u0005i\u0000\u0000\u10d0\u10d1\u0005"+ + "d\u0000\u0000\u10d1\u0202\u0001\u0000\u0000\u0000\u10d2\u10d3\u0005t\u0000"+ + "\u0000\u10d3\u10d4\u0005o\u0000\u0000\u10d4\u10d5\u0005t\u0000\u0000\u10d5"+ + "\u10d6\u0005a\u0000\u0000\u10d6\u10d7\u0005l\u0000\u0000\u10d7\u10d8\u0005"+ + "-\u0000\u0000\u10d8\u10d9\u0005p\u0000\u0000\u10d9\u10da\u0005a\u0000"+ + "\u0000\u10da\u10db\u0005g\u0000\u0000\u10db\u10dc\u0005e\u0000\u0000\u10dc"+ + "\u10dd\u0005s\u0000\u0000\u10dd\u0204\u0001\u0000\u0000\u0000\u10de\u10df"+ + "\u0005o\u0000\u0000\u10df\u10e0\u0005u\u0000\u0000\u10e0\u10e1\u0005t"+ + "\u0000\u0000\u10e1\u10e2\u0005p\u0000\u0000\u10e2\u10e3\u0005u\u0000\u0000"+ + "\u10e3\u10e4\u0005t\u0000\u0000\u10e4\u10e5\u0005-\u0000\u0000\u10e5\u10e6"+ + "\u0005t\u0000\u0000\u10e6\u10e7\u0005a\u0000\u0000\u10e7\u10e8\u0005b"+ + "\u0000\u0000\u10e8\u10e9\u0005l\u0000\u0000\u10e9\u10ea\u0005e\u0000\u0000"+ + "\u10ea\u0206\u0001\u0000\u0000\u0000\u10eb\u10ec\u0005g\u0000\u0000\u10ec"+ + "\u10ed\u0005r\u0000\u0000\u10ed\u10ee\u0005o\u0000\u0000\u10ee\u10ef\u0005"+ + "u\u0000\u0000\u10ef\u10f0\u0005p\u0000\u0000\u10f0\u10f1\u0005i\u0000"+ + "\u0000\u10f1\u10f2\u0005n\u0000\u0000\u10f2\u10f3\u0005g\u0000\u0000\u10f3"+ + "\u10f4\u0005-\u0000\u0000\u10f4\u10f5\u0005i\u0000\u0000\u10f5\u10f6\u0005"+ + "t\u0000\u0000\u10f6\u10f7\u0005e\u0000\u0000\u10f7\u10f8\u0005m\u0000"+ + "\u0000\u10f8\u0208\u0001\u0000\u0000\u0000\u10f9\u10fa\u0005p\u0000\u0000"+ + "\u10fa\u10fb\u0005a\u0000\u0000\u10fb\u10fc\u0005t\u0000\u0000\u10fc\u10fd"+ + "\u0005i\u0000\u0000\u10fd\u10fe\u0005e\u0000\u0000\u10fe\u10ff\u0005n"+ + "\u0000\u0000\u10ff\u1100\u0005t\u0000\u0000\u1100\u1101\u0005-\u0000\u0000"+ + "\u1101\u1102\u0005e\u0000\u0000\u1102\u1103\u0005o\u0000\u0000\u1103\u1104"+ + "\u0005c\u0000\u0000\u1104\u1105\u0005-\u0000\u0000\u1105\u1106\u0005c"+ + "\u0000\u0000\u1106\u1107\u0005o\u0000\u0000\u1107\u1108\u0005u\u0000\u0000"+ + "\u1108\u1109\u0005n\u0000\u0000\u1109\u110a\u0005t\u0000\u0000\u110a\u020a"+ + "\u0001\u0000\u0000\u0000\u110b\u110c\u0005q\u0000\u0000\u110c\u110d\u0005"+ + "r\u0000\u0000\u110d\u110e\u0005-\u0000\u0000\u110e\u110f\u0005g\u0000"+ + "\u0000\u110f\u1110\u0005r\u0000\u0000\u1110\u1111\u0005o\u0000\u0000\u1111"+ + "\u1112\u0005u\u0000\u0000\u1112\u1113\u0005p\u0000\u0000\u1113\u1114\u0005"+ + "i\u0000\u0000\u1114\u1115\u0005n\u0000\u0000\u1115\u1116\u0005g\u0000"+ + "\u0000\u1116\u020c\u0001\u0000\u0000\u0000\u1117\u1118\u0005e\u0000\u0000"+ + "\u1118\u1119\u0005o\u0000\u0000\u1119\u111a\u0005c\u0000\u0000\u111a\u111b"+ + "\u0005-\u0000\u0000\u111b\u111c\u0005g\u0000\u0000\u111c\u111d\u0005r"+ + "\u0000\u0000\u111d\u111e\u0005o\u0000\u0000\u111e\u111f\u0005u\u0000\u0000"+ + "\u111f\u1120\u0005p\u0000\u0000\u1120\u1121\u0005i\u0000\u0000\u1121\u1122"+ + "\u0005n\u0000\u0000\u1122\u1123\u0005g\u0000\u0000\u1123\u020e\u0001\u0000"+ + "\u0000\u0000\u1124\u1125\u0005p\u0000\u0000\u1125\u1126\u0005n\u0000\u0000"+ + "\u1126\u1127\u0005d\u0000\u0000\u1127\u1128\u0005-\u0000\u0000\u1128\u1129"+ + "\u0005g\u0000\u0000\u1129\u112a\u0005r\u0000\u0000\u112a\u112b\u0005o"+ + "\u0000\u0000\u112b\u112c\u0005u\u0000\u0000\u112c\u112d\u0005p\u0000\u0000"+ + "\u112d\u112e\u0005i\u0000\u0000\u112e\u112f\u0005n\u0000\u0000\u112f\u1130"+ + "\u0005g\u0000\u0000\u1130\u0210\u0001\u0000\u0000\u0000\u1131\u1132\u0005"+ + "u\u0000\u0000\u1132\u1133\u0005s\u0000\u0000\u1133\u1134\u0005e\u0000"+ + "\u0000\u1134\u1135\u0005r\u0000\u0000\u1135\u1136\u0005R\u0000\u0000\u1136"+ + "\u1137\u0005e\u0000\u0000\u1137\u1138\u0005g\u0000\u0000\u1138\u1139\u0005"+ + "i\u0000\u0000\u1139\u113a\u0005s\u0000\u0000\u113a\u113b\u0005t\u0000"+ + "\u0000\u113b\u113c\u0005r\u0000\u0000\u113c\u113d\u0005a\u0000\u0000\u113d"+ + "\u113e\u0005t\u0000\u0000\u113e\u113f\u0005i\u0000\u0000\u113f\u1140\u0005"+ + "o\u0000\u0000\u1140\u1141\u0005n\u0000\u0000\u1141\u0212\u0001\u0000\u0000"+ + "\u0000\u1142\u1143\u0005a\u0000\u0000\u1143\u1144\u0005u\u0000\u0000\u1144"+ + "\u1145\u0005t\u0000\u0000\u1145\u1146\u0005h\u0000\u0000\u1146\u1147\u0005"+ + "T\u0000\u0000\u1147\u1148\u0005o\u0000\u0000\u1148\u1149\u0005k\u0000"+ + "\u0000\u1149\u114a\u0005e\u0000\u0000\u114a\u114b\u0005n\u0000\u0000\u114b"+ + "\u0214\u0001\u0000\u0000\u0000\u114c\u114d\u0005e\u0000\u0000\u114d\u114e"+ + "\u0005o\u0000\u0000\u114e\u114f\u0005c\u0000\u0000\u114f\u1150\u0005J"+ + "\u0000\u0000\u1150\u1151\u0005s\u0000\u0000\u1151\u1152\u0005o\u0000\u0000"+ + "\u1152\u1153\u0005n\u0000\u0000\u1153\u1154\u0005G\u0000\u0000\u1154\u1155"+ + "\u0005e\u0000\u0000\u1155\u1156\u0005n\u0000\u0000\u1156\u1157\u0005e"+ + "\u0000\u0000\u1157\u1158\u0005r\u0000\u0000\u1158\u1159\u0005a\u0000\u0000"+ + "\u1159\u115a\u0005t\u0000\u0000\u115a\u115b\u0005o\u0000\u0000\u115b\u115c"+ + "\u0005r\u0000\u0000\u115c\u0216\u0001\u0000\u0000\u0000\u115d\u115e\u0005"+ + "d\u0000\u0000\u115e\u115f\u0005o\u0000\u0000\u115f\u1160\u0005c\u0000"+ + "\u0000\u1160\u1161\u0005u\u0000\u0000\u1161\u1162\u0005m\u0000\u0000\u1162"+ + "\u1163\u0005e\u0000\u0000\u1163\u1164\u0005n\u0000\u0000\u1164\u1165\u0005"+ + "t\u0000\u0000\u1165\u1166\u0005-\u0000\u0000\u1166\u1167\u0005i\u0000"+ + "\u0000\u1167\u1168\u0005d\u0000\u0000\u1168\u0218\u0001\u0000\u0000\u0000"+ + "\u1169\u116a\u0005e\u0000\u0000\u116a\u116b\u0005o\u0000\u0000\u116b\u116c"+ + "\u0005c\u0000\u0000\u116c\u116d\u0005-\u0000\u0000\u116d\u116e\u0005i"+ + "\u0000\u0000\u116e\u116f\u0005d\u0000\u0000\u116f\u021a\u0001\u0000\u0000"+ + "\u0000\u1170\u1171\u0005z\u0000\u0000\u1171\u1172\u0005i\u0000\u0000\u1172"+ + "\u1173\u0005p\u0000\u0000\u1173\u1174\u0005C\u0000\u0000\u1174\u1175\u0005"+ + "o\u0000\u0000\u1175\u1176\u0005n\u0000\u0000\u1176\u1177\u0005t\u0000"+ + "\u0000\u1177\u1178\u0005e\u0000\u0000\u1178\u1179\u0005n\u0000\u0000\u1179"+ + "\u117a\u0005t\u0000\u0000\u117a\u117b\u0005L\u0000\u0000\u117b\u117c\u0005"+ + "i\u0000\u0000\u117c\u117d\u0005s\u0000\u0000\u117d\u117e\u0005t\u0000"+ + "\u0000\u117e\u021c\u0001\u0000\u0000\u0000\u117f\u1180\u0005z\u0000\u0000"+ + "\u1180\u1181\u0005i\u0000\u0000\u1181\u1182\u0005p\u0000\u0000\u1182\u1183"+ + "\u0005-\u0000\u0000\u1183\u1184\u0005f\u0000\u0000\u1184\u1185\u0005i"+ + "\u0000\u0000\u1185\u1186\u0005l\u0000\u0000\u1186\u1187\u0005e\u0000\u0000"+ + "\u1187\u1188\u0005-\u0000\u0000\u1188\u1189\u0005p\u0000\u0000\u1189\u118a"+ + "\u0005a\u0000\u0000\u118a\u118b\u0005t\u0000\u0000\u118b\u118c\u0005h"+ + "\u0000\u0000\u118c\u021e\u0001\u0000\u0000\u0000\u118d\u118e\u0005h\u0000"+ + "\u0000\u118e\u118f\u0005w\u0000\u0000\u118f\u1190\u0005D\u0000\u0000\u1190"+ + "\u1191\u0005e\u0000\u0000\u1191\u1192\u0005t\u0000\u0000\u1192\u1193\u0005"+ + "e\u0000\u0000\u1193\u1194\u0005c\u0000\u0000\u1194\u1195\u0005t\u0000"+ + "\u0000\u1195\u1196\u0005i\u0000\u0000\u1196\u1197\u0005o\u0000\u0000\u1197"+ + "\u1198\u0005n\u0000\u0000\u1198\u0220\u0001\u0000\u0000\u0000\u1199\u119a"+ + "\u0005o\u0000\u0000\u119a\u119b\u0005u\u0000\u0000\u119b\u119c\u0005t"+ + "\u0000\u0000\u119c\u119d\u0005p\u0000\u0000\u119d\u119e\u0005u\u0000\u0000"+ + "\u119e\u119f\u0005t\u0000\u0000\u119f\u11a0\u0005D\u0000\u0000\u11a0\u11a1"+ + "\u0005i\u0000\u0000\u11a1\u11a2\u0005r\u0000\u0000\u11a2\u0222\u0001\u0000"+ + "\u0000\u0000\u11a3\u11a4\u0005m\u0000\u0000\u11a4\u11a5\u0005o\u0000\u0000"+ + "\u11a5\u11a6\u0005d\u0000\u0000\u11a6\u11a7\u0005e\u0000\u0000\u11a7\u11a8"+ + "\u0005l\u0000\u0000\u11a8\u11a9\u0005P\u0000\u0000\u11a9\u11aa\u0005a"+ + "\u0000\u0000\u11aa\u11ab\u0005t\u0000\u0000\u11ab\u11ac\u0005h\u0000\u0000"+ + "\u11ac\u0224\u0001\u0000\u0000\u0000\u11ad\u11ae\u0005i\u0000\u0000\u11ae"+ + "\u11af\u0005n\u0000\u0000\u11af\u11b0\u0005t\u0000\u0000\u11b0\u11b1\u0005"+ + "e\u0000\u0000\u11b1\u11b2\u0005l\u0000\u0000\u11b2\u11b3\u0005l\u0000"+ + "\u0000\u11b3\u11b4\u0005i\u0000\u0000\u11b4\u11b5\u0005m\u0000\u0000\u11b5"+ + "\u11b6\u0005a\u0000\u0000\u11b6\u11b7\u0005t\u0000\u0000\u11b7\u11b8\u0005"+ + "c\u0000\u0000\u11b8\u11b9\u0005h\u0000\u0000\u11b9\u0226\u0001\u0000\u0000"+ + "\u0000\u11ba\u11bb\u0005m\u0000\u0000\u11bb\u11bc\u0005a\u0000\u0000\u11bc"+ + "\u11bd\u0005t\u0000\u0000\u11bd\u11be\u0005c\u0000\u0000\u11be\u11bf\u0005"+ + "h\u0000\u0000\u11bf\u11c0\u0005-\u0000\u0000\u11c0\u11c1\u0005r\u0000"+ + "\u0000\u11c1\u11c2\u0005e\u0000\u0000\u11c2\u11c3\u0005s\u0000\u0000\u11c3"+ + "\u11c4\u0005u\u0000\u0000\u11c4\u11c5\u0005l\u0000\u0000\u11c5\u11c6\u0005"+ + "t\u0000\u0000\u11c6\u0228\u0001\u0000\u0000\u0000\u11c7\u11c8\u0005c\u0000"+ + "\u0000\u11c8\u11c9\u0005h\u0000\u0000\u11c9\u11ca\u0005e\u0000\u0000\u11ca"+ + "\u11cb\u0005c\u0000\u0000\u11cb\u11cc\u0005k\u0000\u0000\u11cc\u11cd\u0005"+ + "b\u0000\u0000\u11cd\u11ce\u0005o\u0000\u0000\u11ce\u11cf\u0005x\u0000"+ + "\u0000\u11cf\u11d0\u0005-\u0000\u0000\u11d0\u11d1\u0005v\u0000\u0000\u11d1"+ + "\u11d2\u0005q\u0000\u0000\u11d2\u11d3\u0005a\u0000\u0000\u11d3\u022a\u0001"+ + "\u0000\u0000\u0000\u11d4\u11d5\u0005c\u0000\u0000\u11d5\u11d6\u0005a\u0000"+ + "\u0000\u11d6\u11d7\u0005d\u0000\u0000\u11d7\u11d8\u0005-\u0000\u0000\u11d8"+ + "\u11d9\u0005m\u0000\u0000\u11d9\u11da\u0005o\u0000\u0000\u11da\u11db\u0005"+ + "d\u0000\u0000\u11db\u11dc\u0005e\u0000\u0000\u11dc\u11dd\u0005l\u0000"+ + "\u0000\u11dd\u11de\u0005-\u0000\u0000\u11de\u11df\u0005p\u0000\u0000\u11df"+ + "\u11e0\u0005a\u0000\u0000\u11e0\u11e1\u0005t\u0000\u0000\u11e1\u11e2\u0005"+ + "h\u0000\u0000\u11e2\u022c\u0001\u0000\u0000\u0000\u11e3\u11e4\u0005c\u0000"+ + "\u0000\u11e4\u11e5\u0005d\u0000\u0000\u11e5\u11e6\u0005-\u0000\u0000\u11e6"+ + "\u11e7\u0005m\u0000\u0000\u11e7\u11e8\u0005o\u0000\u0000\u11e8\u11e9\u0005"+ + "d\u0000\u0000\u11e9\u11ea\u0005e\u0000\u0000\u11ea\u11eb\u0005l\u0000"+ + "\u0000\u11eb\u11ec\u0005-\u0000\u0000\u11ec\u11ed\u0005p\u0000\u0000\u11ed"+ + "\u11ee\u0005a\u0000\u0000\u11ee\u11ef\u0005t\u0000\u0000\u11ef\u11f0\u0005"+ + "h\u0000\u0000\u11f0\u022e\u0001\u0000\u0000\u0000\u11f1\u11f2\u0005c\u0000"+ + "\u0000\u11f2\u11f3\u0005r\u0000\u0000\u11f3\u11f4\u0005-\u0000\u0000\u11f4"+ + "\u11f5\u0005m\u0000\u0000\u11f5\u11f6\u0005o\u0000\u0000\u11f6\u11f7\u0005"+ + "d\u0000\u0000\u11f7\u11f8\u0005e\u0000\u0000\u11f8\u11f9\u0005l\u0000"+ + "\u0000\u11f9\u11fa\u0005-\u0000\u0000\u11fa\u11fb\u0005p\u0000\u0000\u11fb"+ + "\u11fc\u0005a\u0000\u0000\u11fc\u11fd\u0005t\u0000\u0000\u11fd\u11fe\u0005"+ + "h\u0000\u0000\u11fe\u0230\u0001\u0000\u0000\u0000\u11ff\u1200\u0005t\u0000"+ + "\u0000\u1200\u1201\u0005e\u0000\u0000\u1201\u1202\u0005x\u0000\u0000\u1202"+ + "\u1203\u0005t\u0000\u0000\u1203\u1204\u0005-\u0000\u0000\u1204\u1205\u0005"+ + "m\u0000\u0000\u1205\u1206\u0005o\u0000\u0000\u1206\u1207\u0005d\u0000"+ + "\u0000\u1207\u1208\u0005e\u0000\u0000\u1208\u1209\u0005l\u0000\u0000\u1209"+ + "\u0232\u0001\u0000\u0000\u0000\u120a\u120b\u0005c\u0000\u0000\u120b\u120c"+ + "\u0005r\u0000\u0000\u120c\u120d\u0005-\u0000\u0000\u120d\u120e\u0005w"+ + "\u0000\u0000\u120e\u120f\u0005i\u0000\u0000\u120f\u1210\u0005d\u0000\u0000"+ + "\u1210\u1211\u0005t\u0000\u0000\u1211\u1212\u0005h\u0000\u0000\u1212\u0234"+ + "\u0001\u0000\u0000\u0000\u1213\u1214\u0005c\u0000\u0000\u1214\u1215\u0005"+ + "r\u0000\u0000\u1215\u1216\u0005-\u0000\u0000\u1216\u1217\u0005h\u0000"+ + "\u0000\u1217\u1218\u0005e\u0000\u0000\u1218\u1219\u0005i\u0000\u0000\u1219"+ + "\u121a\u0005g\u0000\u0000\u121a\u121b\u0005h\u0000\u0000\u121b\u121c\u0005"+ + "t\u0000\u0000\u121c\u0236\u0001\u0000\u0000\u0000\u121d\u121e\u0005p\u0000"+ + "\u0000\u121e\u121f\u0005i\u0000\u0000\u121f\u1220\u0005x\u0000\u0000\u1220"+ + "\u1221\u0005e\u0000\u0000\u1221\u1222\u0005l\u0000\u0000\u1222\u1223\u0005"+ + "-\u0000\u0000\u1223\u1224\u0005c\u0000\u0000\u1224\u1225\u0005l\u0000"+ + "\u0000\u1225\u1226\u0005a\u0000\u0000\u1226\u1227\u0005s\u0000\u0000\u1227"+ + "\u1228\u0005s\u0000\u0000\u1228\u1229\u0005i\u0000\u0000\u1229\u122a\u0005"+ + "f\u0000\u0000\u122a\u122b\u0005i\u0000\u0000\u122b\u122c\u0005e\u0000"+ + "\u0000\u122c\u122d\u0005r\u0000\u0000\u122d\u122e\u0005-\u0000\u0000\u122e"+ + "\u122f\u0005u\u0000\u0000\u122f\u1230\u0005r\u0000\u0000\u1230\u1231\u0005"+ + "g\u0000\u0000\u1231\u1232\u0005e\u0000\u0000\u1232\u1233\u0005n\u0000"+ + "\u0000\u1233\u1234\u0005c\u0000\u0000\u1234\u1235\u0005y\u0000\u0000\u1235"+ + "\u1236\u0005-\u0000\u0000\u1236\u1237\u0005t\u0000\u0000\u1237\u1238\u0005"+ + "r\u0000\u0000\u1238\u1239\u0005i\u0000\u0000\u1239\u123a\u0005a\u0000"+ + "\u0000\u123a\u123b\u0005g\u0000\u0000\u123b\u123c\u0005e\u0000\u0000\u123c"+ + "\u0238\u0001\u0000\u0000\u0000\u123d\u123e\u0005q\u0000\u0000\u123e\u123f"+ + "\u0005r\u0000\u0000\u123f\u1240\u0005-\u0000\u0000\u1240\u1241\u0005e"+ + "\u0000\u0000\u1241\u1242\u0005x\u0000\u0000\u1242\u1243\u0005t\u0000\u0000"+ + "\u1243\u1244\u0005r\u0000\u0000\u1244\u1245\u0005a\u0000\u0000\u1245\u1246"+ + "\u0005c\u0000\u0000\u1246\u1247\u0005t\u0000\u0000\u1247\u1248\u0005i"+ + "\u0000\u0000\u1248\u1249\u0005o\u0000\u0000\u1249\u124a\u0005n\u0000\u0000"+ + "\u124a\u023a\u0001\u0000\u0000\u0000\u124b\u124c\u0005p\u0000\u0000\u124c"+ + "\u124d\u0005a\u0000\u0000\u124d\u124e\u0005p\u0000\u0000\u124e\u124f\u0005"+ + "e\u0000\u0000\u124f\u1250\u0005r\u0000\u0000\u1250\u1251\u0005I\u0000"+ + "\u0000\u1251\u1252\u0005t\u0000\u0000\u1252\u1253\u0005e\u0000\u0000\u1253"+ + "\u1254\u0005m\u0000\u0000\u1254\u1255\u0005i\u0000\u0000\u1255\u1256\u0005"+ + "z\u0000\u0000\u1256\u1257\u0005e\u0000\u0000\u1257\u1258\u0005r\u0000"+ + "\u0000\u1258\u023c\u0001\u0000\u0000\u0000\u1259\u125a\u0005p\u0000\u0000"+ + "\u125a\u125b\u0005r\u0000\u0000\u125b\u125c\u0005o\u0000\u0000\u125c\u125d"+ + "\u0005c\u0000\u0000\u125d\u125e\u0005e\u0000\u0000\u125e\u125f\u0005s"+ + "\u0000\u0000\u125f\u1260\u0005s\u0000\u0000\u1260\u1261\u0005I\u0000\u0000"+ + "\u1261\u1262\u0005d\u0000\u0000\u1262\u023e\u0001\u0000\u0000\u0000\u1263"+ + "\u1264\u0005n\u0000\u0000\u1264\u1265\u0005e\u0000\u0000\u1265\u1266\u0005"+ + "r\u0000\u0000\u1266\u1267\u0005A\u0000\u0000\u1267\u1268\u0005d\u0000"+ + "\u0000\u1268\u1269\u0005a\u0000\u0000\u1269\u126a\u0005p\u0000\u0000\u126a"+ + "\u126b\u0005t\u0000\u0000\u126b\u126c\u0005e\u0000\u0000\u126c\u126d\u0005"+ + "r\u0000\u0000\u126d\u0240\u0001\u0000\u0000\u0000\u126e\u126f\u0005c\u0000"+ + "\u0000\u126f\u1270\u0005o\u0000\u0000\u1270\u1271\u0005p\u0000\u0000\u1271"+ + "\u1272\u0005r\u0000\u0000\u1272\u1273\u0005o\u0000\u0000\u1273\u1274\u0005"+ + "S\u0000\u0000\u1274\u1275\u0005t\u0000\u0000\u1275\u1276\u0005a\u0000"+ + "\u0000\u1276\u1277\u0005r\u0000\u0000\u1277\u1278\u0005t\u0000\u0000\u1278"+ + "\u0242\u0001\u0000\u0000\u0000\u1279\u127a\u0005f\u0000\u0000\u127a\u127b"+ + "\u0005o\u0000\u0000\u127b\u127c\u0005r\u0000\u0000\u127c\u0244\u0001\u0000"+ + "\u0000\u0000\u127d\u127e\u0005c\u0000\u0000\u127e\u127f\u0005o\u0000\u0000"+ + "\u127f\u1280\u0005p\u0000\u0000\u1280\u1281\u0005r\u0000\u0000\u1281\u1282"+ + "\u0005o\u0000\u0000\u1282\u1283\u0005-\u0000\u0000\u1283\u1284\u0005s"+ + "\u0000\u0000\u1284\u1285\u0005e\u0000\u0000\u1285\u1286\u0005r\u0000\u0000"+ + "\u1286\u1287\u0005v\u0000\u0000\u1287\u1288\u0005e\u0000\u0000\u1288\u1289"+ + "\u0005r\u0000\u0000\u1289\u128a\u0005-\u0000\u0000\u128a\u128b\u0005u"+ + "\u0000\u0000\u128b\u128c\u0005r\u0000\u0000\u128c\u128d\u0005l\u0000\u0000"+ + "\u128d\u0246\u0001\u0000\u0000\u0000\u128e\u128f\u0005e\u0000\u0000\u128f"+ + "\u1290\u0005x\u0000\u0000\u1290\u1291\u0005p\u0000\u0000\u1291\u1292\u0005"+ + "o\u0000\u0000\u1292\u1293\u0005r\u0000\u0000\u1293\u1294\u0005t\u0000"+ + "\u0000\u1294\u1295\u0005-\u0000\u0000\u1295\u1296\u0005c\u0000\u0000\u1296"+ + "\u1297\u0005o\u0000\u0000\u1297\u1298\u0005m\u0000\u0000\u1298\u1299\u0005"+ + "m\u0000\u0000\u1299\u129a\u0005a\u0000\u0000\u129a\u129b\u0005n\u0000"+ + "\u0000\u129b\u129c\u0005d\u0000\u0000\u129c\u0248\u0001\u0000\u0000\u0000"+ + "\u129d\u129e\u0005c\u0000\u0000\u129e\u129f\u0005o\u0000\u0000\u129f\u12a0"+ + "\u0005p\u0000\u0000\u12a0\u12a1\u0005r\u0000\u0000\u12a1\u12a2\u0005o"+ + "\u0000\u0000\u12a2\u12a3\u0005S\u0000\u0000\u12a3\u12a4\u0005t\u0000\u0000"+ + "\u12a4\u12a5\u0005o\u0000\u0000\u12a5\u12a6\u0005p\u0000\u0000\u12a6\u024a"+ + "\u0001\u0000\u0000\u0000\u12a7\u12a8\u0005o\u0000\u0000\u12a8\u12a9\u0005"+ + "u\u0000\u0000\u12a9\u12aa\u0005t\u0000\u0000\u12aa\u12ab\u0005b\u0000"+ + "\u0000\u12ab\u12ac\u0005o\u0000\u0000\u12ac\u12ad\u0005u\u0000\u0000\u12ad"+ + "\u12ae\u0005n\u0000\u0000\u12ae\u12af\u0005d\u0000\u0000\u12af\u12b0\u0005"+ + "-\u0000\u0000\u12b0\u12b1\u0005d\u0000\u0000\u12b1\u12b2\u0005e\u0000"+ + "\u0000\u12b2\u12b3\u0005l\u0000\u0000\u12b3\u12b4\u0005i\u0000\u0000\u12b4"+ + "\u12b5\u0005v\u0000\u0000\u12b5\u12b6\u0005e\u0000\u0000\u12b6\u12b7\u0005"+ + "r\u0000\u0000\u12b7\u12b8\u0005y\u0000\u0000\u12b8\u12b9\u0005-\u0000"+ + "\u0000\u12b9\u12ba\u0005n\u0000\u0000\u12ba\u12bb\u0005o\u0000\u0000\u12bb"+ + "\u12bc\u0005t\u0000\u0000\u12bc\u12bd\u0005i\u0000\u0000\u12bd\u12be\u0005"+ + "f\u0000\u0000\u12be\u12bf\u0005y\u0000\u0000\u12bf\u024c\u0001\u0000\u0000"+ + "\u0000\u12c0\u12c1\u0005i\u0000\u0000\u12c1\u12c2\u0005n\u0000\u0000\u12c2"+ + "\u12c3\u0005t\u0000\u0000\u12c3\u12c4\u0005i\u0000\u0000\u12c4\u12c5\u0005"+ + "c\u0000\u0000\u12c5\u12c6\u0005s\u0000\u0000\u12c6\u12c7\u0005-\u0000"+ + "\u0000\u12c7\u12c8\u0005z\u0000\u0000\u12c8\u12c9\u0005i\u0000\u0000\u12c9"+ + "\u12ca\u0005p\u0000\u0000\u12ca\u12cb\u0005-\u0000\u0000\u12cb\u12cc\u0005"+ + "u\u0000\u0000\u12cc\u12cd\u0005r\u0000\u0000\u12cd\u12ce\u0005i\u0000"+ + "\u0000\u12ce\u024e\u0001\u0000\u0000\u0000\u12cf\u12d0\u0005m\u0000\u0000"+ + "\u12d0\u12d1\u0005a\u0000\u0000\u12d1\u12d2\u0005s\u0000\u0000\u12d2\u12d3"+ + "\u0005t\u0000\u0000\u12d3\u12d4\u0005e\u0000\u0000\u12d4\u12d5\u0005r"+ + "\u0000\u0000\u12d5\u12d6\u0005d\u0000\u0000\u12d6\u12d7\u0005a\u0000\u0000"+ + "\u12d7\u12d8\u0005t\u0000\u0000\u12d8\u12d9\u0005a\u0000\u0000\u12d9\u12da"+ + "\u0005C\u0000\u0000\u12da\u12db\u0005o\u0000\u0000\u12db\u12dc\u0005m"+ + "\u0000\u0000\u12dc\u12dd\u0005p\u0000\u0000\u12dd\u12de\u0005a\u0000\u0000"+ + "\u12de\u12df\u0005r\u0000\u0000\u12df\u12e0\u0005i\u0000\u0000\u12e0\u12e1"+ + "\u0005s\u0000\u0000\u12e1\u12e2\u0005o\u0000\u0000\u12e2\u12e3\u0005n"+ + "\u0000\u0000\u12e3\u0250\u0001\u0000\u0000\u0000\u12e4\u12e5\u0005z\u0000"+ + "\u0000\u12e5\u12e6\u0005i\u0000\u0000\u12e6\u12e7\u0005p\u0000\u0000\u12e7"+ + "\u12e8\u0005B\u0000\u0000\u12e8\u12e9\u0005a\u0000\u0000\u12e9\u12ea\u0005"+ + "t\u0000\u0000\u12ea\u12eb\u0005c\u0000\u0000\u12eb\u12ec\u0005h\u0000"+ + "\u0000\u12ec\u0252\u0001\u0000\u0000\u0000\u12ed\u12ee\u0005d\u0000\u0000"+ + "\u12ee\u12ef\u0005r\u0000\u0000\u12ef\u12f0\u0005u\u0000\u0000\u12f0\u12f1"+ + "\u0005g\u0000\u0000\u12f1\u12f2\u0005M\u0000\u0000\u12f2\u12f3\u0005a"+ + "\u0000\u0000\u12f3\u12f4\u0005t\u0000\u0000\u12f4\u12f5\u0005c\u0000\u0000"+ + "\u12f5\u12f6\u0005h\u0000\u0000\u12f6\u0254\u0001\u0000\u0000\u0000\u12f7"+ + "\u12f8\u0005d\u0000\u0000\u12f8\u12f9\u0005r\u0000\u0000\u12f9\u12fa\u0005"+ + "u\u0000\u0000\u12fa\u12fb\u0005g\u0000\u0000\u12fb\u12fc\u0005-\u0000"+ + "\u0000\u12fc\u12fd\u0005c\u0000\u0000\u12fd\u12fe\u0005o\u0000\u0000\u12fe"+ + "\u12ff\u0005m\u0000\u0000\u12ff\u1300\u0005p\u0000\u0000\u1300\u1301\u0005"+ + "a\u0000\u0000\u1301\u1302\u0005r\u0000\u0000\u1302\u1303\u0005e\u0000"+ + "\u0000\u1303\u0256\u0001\u0000\u0000\u0000\u1304\u1305\u0005u\u0000\u0000"+ + "\u1305\u1306\u0005r\u0000\u0000\u1306\u1307\u0005g\u0000\u0000\u1307\u1308"+ + "\u0005e\u0000\u0000\u1308\u1309\u0005n\u0000\u0000\u1309\u130a\u0005c"+ + "\u0000\u0000\u130a\u130b\u0005y\u0000\u0000\u130b\u130c\u0005T\u0000\u0000"+ + "\u130c\u130d\u0005r\u0000\u0000\u130d\u130e\u0005i\u0000\u0000\u130e\u130f"+ + "\u0005a\u0000\u0000\u130f\u1310\u0005g\u0000\u0000\u1310\u1311\u0005e"+ + "\u0000\u0000\u1311\u1312\u0005M\u0000\u0000\u1312\u1313\u0005o\u0000\u0000"+ + "\u1313\u1314\u0005d\u0000\u0000\u1314\u1315\u0005e\u0000\u0000\u1315\u1316"+ + "\u0005l\u0000\u0000\u1316\u0258\u0001\u0000\u0000\u0000\u1317\u1318\u0005"+ + "d\u0000\u0000\u1318\u1319\u0005o\u0000\u0000\u1319\u131a\u0005n\u0000"+ + "\u0000\u131a\u131b\u0005u\u0000\u0000\u131b\u131c\u0005t\u0000\u0000\u131c"+ + "\u131d\u0005-\u0000\u0000\u131d\u131e\u0005i\u0000\u0000\u131e\u131f\u0005"+ + "m\u0000\u0000\u131f\u1320\u0005p\u0000\u0000\u1320\u1321\u0005i\u0000"+ + "\u0000\u1321\u1322\u0005r\u0000\u0000\u1322\u1323\u0005a\u0000\u0000\u1323"+ + "\u1324\u0005-\u0000\u0000\u1324\u1325\u0005q\u0000\u0000\u1325\u1326\u0005"+ + "a\u0000\u0000\u1326\u025a\u0001\u0000\u0000\u0000\u1327\u1328\u0005t\u0000"+ + "\u0000\u1328\u1329\u0005e\u0000\u0000\u1329\u132a\u0005m\u0000\u0000\u132a"+ + "\u132b\u0005p\u0000\u0000\u132b\u132c\u0005l\u0000\u0000\u132c\u132d\u0005"+ + "a\u0000\u0000\u132d\u132e\u0005t\u0000\u0000\u132e\u132f\u0005e\u0000"+ + "\u0000\u132f\u1330\u0005D\u0000\u0000\u1330\u1331\u0005e\u0000\u0000\u1331"+ + "\u1332\u0005t\u0000\u0000\u1332\u1333\u0005e\u0000\u0000\u1333\u1334\u0005"+ + "c\u0000\u0000\u1334\u1335\u0005t\u0000\u0000\u1335\u1336\u0005i\u0000"+ + "\u0000\u1336\u1337\u0005o\u0000\u0000\u1337\u1338\u0005n\u0000\u0000\u1338"+ + "\u025c\u0001\u0000\u0000\u0000\u1339\u133a\u0005c\u0000\u0000\u133a\u133b"+ + "\u0005o\u0000\u0000\u133b\u133c\u0005p\u0000\u0000\u133c\u133d\u0005r"+ + "\u0000\u0000\u133d\u133e\u0005o\u0000\u0000\u133e\u133f\u0005-\u0000\u0000"+ + "\u133f\u1340\u0005u\u0000\u0000\u1340\u1341\u0005r\u0000\u0000\u1341\u1342"+ + "\u0005l\u0000\u0000\u1342\u025e\u0001\u0000\u0000\u0000\u1343\u1344\u0005"+ + "i\u0000\u0000\u1344\u1345\u0005n\u0000\u0000\u1345\u1346\u0005p\u0000"+ + "\u0000\u1346\u1347\u0005u\u0000\u0000\u1347\u1348\u0005t\u0000\u0000\u1348"+ + "\u1349\u0005-\u0000\u0000\u1349\u134a\u0005t\u0000\u0000\u134a\u134b\u0005"+ + "a\u0000\u0000\u134b\u134c\u0005b\u0000\u0000\u134c\u134d\u0005l\u0000"+ + "\u0000\u134d\u134e\u0005e\u0000\u0000\u134e\u0260\u0001\u0000\u0000\u0000"+ + "\u134f\u1350\u0005o\u0000\u0000\u1350\u1351\u0005u\u0000\u0000\u1351\u1352"+ + "\u0005p\u0000\u0000\u1352\u1353\u0005u\u0000\u0000\u1353\u1354\u0005t"+ + "\u0000\u0000\u1354\u1355\u0005-\u0000\u0000\u1355\u1356\u0005t\u0000\u0000"+ + "\u1356\u1357\u0005a\u0000\u0000\u1357\u1358\u0005b\u0000\u0000\u1358\u1359"+ + "\u0005l\u0000\u0000\u1359\u135a\u0005e\u0000\u0000\u135a\u0262\u0001\u0000"+ + "\u0000\u0000\u135b\u135c\u0005t\u0000\u0000\u135c\u135d\u0005r\u0000\u0000"+ + "\u135d\u135e\u0005i\u0000\u0000\u135e\u135f\u0005n\u0000\u0000\u135f\u1360"+ + "\u0005i\u0000\u0000\u1360\u1361\u0005t\u0000\u0000\u1361\u1362\u0005y"+ + "\u0000\u0000\u1362\u1363\u0005-\u0000\u0000\u1363\u1364\u0005d\u0000\u0000"+ + "\u1364\u1365\u0005o\u0000\u0000\u1365\u1366\u0005c\u0000\u0000\u1366\u1367"+ + "\u0005q\u0000\u0000\u1367\u1368\u0005a\u0000\u0000\u1368\u0264\u0001\u0000"+ + "\u0000\u0000\u1369\u136a\u0005a\u0000\u0000\u136a\u136b\u0005p\u0000\u0000"+ + "\u136b\u136c\u0005i\u0000\u0000\u136c\u136d\u0005-\u0000\u0000\u136d\u136e"+ + "\u0005e\u0000\u0000\u136e\u136f\u0005n\u0000\u0000\u136f\u1370\u0005d"+ + "\u0000\u0000\u1370\u1371\u0005p\u0000\u0000\u1371\u1372\u0005o\u0000\u0000"+ + "\u1372\u1373\u0005i\u0000\u0000\u1373\u1374\u0005n\u0000\u0000\u1374\u1375"+ + "\u0005t\u0000\u0000\u1375\u0266\u0001\u0000\u0000\u0000\u1376\u1377\u0005"+ + "f\u0000\u0000\u1377\u1378\u0005i\u0000\u0000\u1378\u1379\u0005l\u0000"+ + "\u0000\u1379\u137a\u0005e\u0000\u0000\u137a\u137b\u0005-\u0000\u0000\u137b"+ + "\u137c\u0005b\u0000\u0000\u137c\u137d\u0005u\u0000\u0000\u137d\u137e\u0005"+ + "c\u0000\u0000\u137e\u137f\u0005k\u0000\u0000\u137f\u1380\u0005e\u0000"+ + "\u0000\u1380\u1381\u0005t\u0000\u0000\u1381\u1382\u0005i\u0000\u0000\u1382"+ + "\u1383\u0005n\u0000\u0000\u1383\u1384\u0005g\u0000\u0000\u1384\u0268\u0001"+ + "\u0000\u0000\u0000\u1385\u1386\u0005,\u0000\u0000\u1386\u026a\u0001\u0000"+ + "\u0000\u0000\u1387\u1388\u0005:\u0000\u0000\u1388\u026c\u0001\u0000\u0000"+ + "\u0000\u1389\u138a\u0005[\u0000\u0000\u138a\u026e\u0001\u0000\u0000\u0000"+ + "\u138b\u138c\u0005]\u0000\u0000\u138c\u0270\u0001\u0000\u0000\u0000\u138d"+ + "\u138e\u0005t\u0000\u0000\u138e\u138f\u0005r\u0000\u0000\u138f\u1390\u0005"+ + "u\u0000\u0000\u1390\u1391\u0005e\u0000\u0000\u1391\u0272\u0001\u0000\u0000"+ + "\u0000\u1392\u1393\u0005f\u0000\u0000\u1393\u1394\u0005a\u0000\u0000\u1394"+ + "\u1395\u0005l\u0000\u0000\u1395\u1396\u0005s\u0000\u0000\u1396\u1397\u0005"+ + "e\u0000\u0000\u1397\u0274\u0001\u0000\u0000\u0000\u1398\u1399\u0005n\u0000"+ + "\u0000\u1399\u139a\u0005u\u0000\u0000\u139a\u139b\u0005l\u0000\u0000\u139b"+ + "\u139c\u0005l\u0000\u0000\u139c\u0276\u0001\u0000\u0000\u0000\u139d\u139e"+ + "\u0007\u0000\u0000\u0000\u139e\u0278\u0001\u0000\u0000\u0000\u139f\u13a0"+ + "\u0007\u0001\u0000\u0000\u13a0\u027a\u0001\u0000\u0000\u0000\u13a1\u13a2"+ + "\u0003\u0277\u013b\u0000\u13a2\u13a3\u0003\u0277\u013b\u0000\u13a3\u027c"+ + "\u0001\u0000\u0000\u0000\u13a4\u13a5\u0007\u0002\u0000\u0000\u13a5\u027e"+ + "\u0001\u0000\u0000\u0000\u13a6\u13a8\u0003\u0281\u0140\u0000\u13a7\u13a6"+ + "\u0001\u0000\u0000\u0000\u13a8\u13a9\u0001\u0000\u0000\u0000\u13a9\u13a7"+ + "\u0001\u0000\u0000\u0000\u13a9\u13aa\u0001\u0000\u0000\u0000\u13aa\u0280"+ + "\u0001\u0000\u0000\u0000\u13ab\u13ac\b\u0003\u0000\u0000\u13ac\u0282\u0001"+ + "\u0000\u0000\u0000\u13ad\u13af\u0003\u0279\u013c\u0000\u13ae\u13ad\u0001"+ + "\u0000\u0000\u0000\u13af\u13b0\u0001\u0000\u0000\u0000\u13b0\u13ae\u0001"+ + "\u0000\u0000\u0000\u13b0\u13b1\u0001\u0000\u0000\u0000\u13b1\u0284\u0001"+ + "\u0000\u0000\u0000\u13b2\u13b4\u0005\"\u0000\u0000\u13b3\u13b5\u0003\u027f"+ + "\u013f\u0000\u13b4\u13b3\u0001\u0000\u0000\u0000\u13b4\u13b5\u0001\u0000"+ + "\u0000\u0000\u13b5\u13b6\u0001\u0000\u0000\u0000\u13b6\u13b7\u0005\"\u0000"+ + "\u0000\u13b7\u0286\u0001\u0000\u0000\u0000\u13b8\u13ba\u0005\r\u0000\u0000"+ + "\u13b9\u13b8\u0001\u0000\u0000\u0000\u13b9\u13ba\u0001\u0000\u0000\u0000"+ + "\u13ba\u13bb\u0001\u0000\u0000\u0000\u13bb\u13be\u0005\n\u0000\u0000\u13bc"+ + "\u13be\u0005\r\u0000\u0000\u13bd\u13b9\u0001\u0000\u0000\u0000\u13bd\u13bc"+ + "\u0001\u0000\u0000\u0000\u13be\u13bf\u0001\u0000\u0000\u0000\u13bf\u13c0"+ + "\u0006\u0143\u0000\u0000\u13c0\u0288\u0001\u0000\u0000\u0000\u13c1\u13cd"+ + "\u0007\u0004\u0000\u0000\u13c2\u13c3\u0005=\u0000\u0000\u13c3\u13cd\u0005"+ + "=\u0000\u0000\u13c4\u13c5\u0005c\u0000\u0000\u13c5\u13c6\u0005o\u0000"+ + "\u0000\u13c6\u13c7\u0005n\u0000\u0000\u13c7\u13c8\u0005t\u0000\u0000\u13c8"+ + "\u13c9\u0005a\u0000\u0000\u13c9\u13ca\u0005i\u0000\u0000\u13ca\u13cb\u0005"+ + "n\u0000\u0000\u13cb\u13cd\u0005s\u0000\u0000\u13cc\u13c1\u0001\u0000\u0000"+ + "\u0000\u13cc\u13c2\u0001\u0000\u0000\u0000\u13cc\u13c4\u0001\u0000\u0000"+ + "\u0000\u13cd\u028a\u0001\u0000\u0000\u0000\u13ce\u13d0\u0007\u0005\u0000"+ + "\u0000\u13cf\u13ce\u0001\u0000\u0000\u0000\u13d0\u13d1\u0001\u0000\u0000"+ + "\u0000\u13d1\u13cf\u0001\u0000\u0000\u0000\u13d1\u13d2\u0001\u0000\u0000"+ + "\u0000\u13d2\u13d3\u0001\u0000\u0000\u0000\u13d3\u13d4\u0006\u0145\u0000"+ + "\u0000\u13d4\u028c\u0001\u0000\u0000\u0000\u13d5\u13d6\u0005/\u0000\u0000"+ + "\u13d6\u13d7\u0005*\u0000\u0000\u13d7\u13db\u0001\u0000\u0000\u0000\u13d8"+ + "\u13da\t\u0000\u0000\u0000\u13d9\u13d8\u0001\u0000\u0000\u0000\u13da\u13dd"+ + "\u0001\u0000\u0000\u0000\u13db\u13dc\u0001\u0000\u0000\u0000\u13db\u13d9"+ + "\u0001\u0000\u0000\u0000\u13dc\u13de\u0001\u0000\u0000\u0000\u13dd\u13db"+ + "\u0001\u0000\u0000\u0000\u13de\u13df\u0005*\u0000\u0000\u13df\u13e0\u0005"+ + "/\u0000\u0000\u13e0\u13e1\u0001\u0000\u0000\u0000\u13e1\u13e2\u0006\u0146"+ + "\u0000\u0000\u13e2\u028e\u0001\u0000\u0000\u0000\u13e3\u13e4\u0005/\u0000"+ + "\u0000\u13e4\u13e5\u0005/\u0000\u0000\u13e5\u13e9\u0001\u0000\u0000\u0000"+ + "\u13e6\u13e8\b\u0006\u0000\u0000\u13e7\u13e6\u0001\u0000\u0000\u0000\u13e8"+ + "\u13eb\u0001\u0000\u0000\u0000\u13e9\u13e7\u0001\u0000\u0000\u0000\u13e9"+ + "\u13ea\u0001\u0000\u0000\u0000\u13ea\u13ec\u0001\u0000\u0000\u0000\u13eb"+ + "\u13e9\u0001\u0000\u0000\u0000\u13ec\u13ed\u0006\u0147\u0000\u0000\u13ed"+ + "\u0290\u0001\u0000\u0000\u0000\u13ee\u13f1\u0005\\\u0000\u0000\u13ef\u13f2"+ + "\u0007\u0007\u0000\u0000\u13f0\u13f2\u0003\u0293\u0149\u0000\u13f1\u13ef"+ + "\u0001\u0000\u0000\u0000\u13f1\u13f0\u0001\u0000\u0000\u0000\u13f2\u0292"+ + "\u0001\u0000\u0000\u0000\u13f3\u13f4\u0005u\u0000\u0000\u13f4\u13f5\u0003"+ + "\u0295\u014a\u0000\u13f5\u13f6\u0003\u0295\u014a\u0000\u13f6\u13f7\u0003"+ + "\u0295\u014a\u0000\u13f7\u13f8\u0003\u0295\u014a\u0000\u13f8\u0294\u0001"+ + "\u0000\u0000\u0000\u13f9\u13fa\u0007\b\u0000\u0000\u13fa\u0296\u0001\u0000"+ + "\u0000\u0000\u13fb\u13fc\b\t\u0000\u0000\u13fc\u0298\u0001\u0000\u0000"+ + "\u0000\u13fd\u13ff\u0005-\u0000\u0000\u13fe\u13fd\u0001\u0000\u0000\u0000"+ + "\u13fe\u13ff\u0001\u0000\u0000\u0000\u13ff\u1400\u0001\u0000\u0000\u0000"+ + "\u1400\u1407\u0003\u029b\u014d\u0000\u1401\u1403\u0005.\u0000\u0000\u1402"+ + "\u1404\u0007\u0000\u0000\u0000\u1403\u1402\u0001\u0000\u0000\u0000\u1404"+ + "\u1405\u0001\u0000\u0000\u0000\u1405\u1403\u0001\u0000\u0000\u0000\u1405"+ + "\u1406\u0001\u0000\u0000\u0000\u1406\u1408\u0001\u0000\u0000\u0000\u1407"+ + "\u1401\u0001\u0000\u0000\u0000\u1407\u1408\u0001\u0000\u0000\u0000\u1408"+ + "\u140a\u0001\u0000\u0000\u0000\u1409\u140b\u0003\u029d\u014e\u0000\u140a"+ + "\u1409\u0001\u0000\u0000\u0000\u140a\u140b\u0001\u0000\u0000\u0000\u140b"+ + "\u029a\u0001\u0000\u0000\u0000\u140c\u1415\u00050\u0000\u0000\u140d\u1411"+ + "\u0007\u0001\u0000\u0000\u140e\u1410\u0007\u0000\u0000\u0000\u140f\u140e"+ + "\u0001\u0000\u0000\u0000\u1410\u1413\u0001\u0000\u0000\u0000\u1411\u140f"+ + "\u0001\u0000\u0000\u0000\u1411\u1412\u0001\u0000\u0000\u0000\u1412\u1415"+ + "\u0001\u0000\u0000\u0000\u1413\u1411\u0001\u0000\u0000\u0000\u1414\u140c"+ + "\u0001\u0000\u0000\u0000\u1414\u140d\u0001\u0000\u0000\u0000\u1415\u029c"+ + "\u0001\u0000\u0000\u0000\u1416\u1418\u0007\n\u0000\u0000\u1417\u1419\u0007"+ + "\u000b\u0000\u0000\u1418\u1417\u0001\u0000\u0000\u0000\u1418\u1419\u0001"+ + "\u0000\u0000\u0000\u1419\u141a\u0001\u0000\u0000\u0000\u141a\u141b\u0003"+ + "\u029b\u014d\u0000\u141b\u029e\u0001\u0000\u0000\u0000\u0012\u0000\u13a9"+ + "\u13b0\u13b4\u13b9\u13bd\u13cc\u13d1\u13db\u13e9\u13f1\u13fe\u1405\u1407"+ + "\u140a\u1411\u1414\u1418\u0001\u0000\u0001\u0000"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/main/antlr/in.handyman.raven/compiler/RavenLexer.tokens b/src/main/antlr/in.handyman.raven/compiler/RavenLexer.tokens new file mode 100644 index 00000000..c8d3ce0e --- /dev/null +++ b/src/main/antlr/in.handyman.raven/compiler/RavenLexer.tokens @@ -0,0 +1,638 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +T__13=14 +T__14=15 +T__15=16 +T__16=17 +T__17=18 +T__18=19 +T__19=20 +T__20=21 +T__21=22 +T__22=23 +T__23=24 +T__24=25 +T__25=26 +T__26=27 +T__27=28 +T__28=29 +T__29=30 +T__30=31 +T__31=32 +T__32=33 +T__33=34 +T__34=35 +T__35=36 +T__36=37 +T__37=38 +T__38=39 +T__39=40 +T__40=41 +T__41=42 +T__42=43 +T__43=44 +T__44=45 +T__45=46 +T__46=47 +T__47=48 +T__48=49 +T__49=50 +T__50=51 +T__51=52 +T__52=53 +T__53=54 +T__54=55 +T__55=56 +T__56=57 +T__57=58 +T__58=59 +T__59=60 +T__60=61 +T__61=62 +T__62=63 +T__63=64 +T__64=65 +T__65=66 +T__66=67 +T__67=68 +T__68=69 +T__69=70 +T__70=71 +T__71=72 +T__72=73 +T__73=74 +T__74=75 +T__75=76 +T__76=77 +T__77=78 +T__78=79 +T__79=80 +T__80=81 +T__81=82 +T__82=83 +T__83=84 +T__84=85 +T__85=86 +T__86=87 +T__87=88 +T__88=89 +T__89=90 +T__90=91 +T__91=92 +T__92=93 +T__93=94 +T__94=95 +T__95=96 +T__96=97 +T__97=98 +T__98=99 +T__99=100 +T__100=101 +T__101=102 +T__102=103 +T__103=104 +T__104=105 +T__105=106 +T__106=107 +T__107=108 +T__108=109 +T__109=110 +T__110=111 +T__111=112 +T__112=113 +T__113=114 +T__114=115 +T__115=116 +T__116=117 +T__117=118 +T__118=119 +T__119=120 +T__120=121 +T__121=122 +T__122=123 +T__123=124 +T__124=125 +T__125=126 +T__126=127 +T__127=128 +T__128=129 +T__129=130 +T__130=131 +T__131=132 +T__132=133 +T__133=134 +T__134=135 +T__135=136 +T__136=137 +T__137=138 +T__138=139 +T__139=140 +T__140=141 +T__141=142 +T__142=143 +T__143=144 +T__144=145 +T__145=146 +T__146=147 +T__147=148 +T__148=149 +T__149=150 +T__150=151 +T__151=152 +T__152=153 +T__153=154 +T__154=155 +T__155=156 +T__156=157 +T__157=158 +T__158=159 +T__159=160 +T__160=161 +T__161=162 +T__162=163 +T__163=164 +T__164=165 +T__165=166 +T__166=167 +T__167=168 +T__168=169 +T__169=170 +T__170=171 +T__171=172 +T__172=173 +T__173=174 +T__174=175 +T__175=176 +T__176=177 +T__177=178 +T__178=179 +T__179=180 +T__180=181 +T__181=182 +T__182=183 +T__183=184 +T__184=185 +T__185=186 +T__186=187 +T__187=188 +T__188=189 +T__189=190 +T__190=191 +T__191=192 +T__192=193 +T__193=194 +T__194=195 +T__195=196 +T__196=197 +T__197=198 +T__198=199 +T__199=200 +T__200=201 +T__201=202 +T__202=203 +T__203=204 +T__204=205 +T__205=206 +T__206=207 +T__207=208 +T__208=209 +T__209=210 +T__210=211 +T__211=212 +T__212=213 +T__213=214 +T__214=215 +T__215=216 +T__216=217 +T__217=218 +T__218=219 +T__219=220 +T__220=221 +T__221=222 +T__222=223 +T__223=224 +T__224=225 +T__225=226 +T__226=227 +T__227=228 +T__228=229 +T__229=230 +T__230=231 +T__231=232 +T__232=233 +T__233=234 +T__234=235 +T__235=236 +T__236=237 +T__237=238 +T__238=239 +T__239=240 +T__240=241 +T__241=242 +T__242=243 +T__243=244 +T__244=245 +T__245=246 +T__246=247 +T__247=248 +T__248=249 +T__249=250 +T__250=251 +T__251=252 +T__252=253 +T__253=254 +T__254=255 +T__255=256 +T__256=257 +T__257=258 +T__258=259 +T__259=260 +T__260=261 +T__261=262 +T__262=263 +T__263=264 +T__264=265 +T__265=266 +T__266=267 +T__267=268 +T__268=269 +T__269=270 +T__270=271 +T__271=272 +T__272=273 +T__273=274 +T__274=275 +T__275=276 +T__276=277 +T__277=278 +T__278=279 +T__279=280 +T__280=281 +T__281=282 +T__282=283 +T__283=284 +T__284=285 +T__285=286 +T__286=287 +T__287=288 +T__288=289 +T__289=290 +T__290=291 +T__291=292 +T__292=293 +T__293=294 +T__294=295 +T__295=296 +T__296=297 +T__297=298 +T__298=299 +T__299=300 +T__300=301 +T__301=302 +T__302=303 +T__303=304 +T__304=305 +T__305=306 +T__306=307 +T__307=308 +T__308=309 +T__309=310 +T__310=311 +T__311=312 +T__312=313 +T__313=314 +T__314=315 +NON_ZERO_DIGIT=316 +STRING=317 +CRLF=318 +Operator=319 +WS=320 +COMMENT=321 +LINE_COMMENT=322 +NUMBER=323 +'process'=1 +'{'=2 +'}'=3 +'try'=4 +'finally'=5 +'catch'=6 +'multitude'=7 +'as'=8 +'on'=9 +'using'=10 +'on-condition'=11 +'fielding'=12 +'copydata'=13 +'from'=14 +'to'=15 +'with-fetch-batch-size'=16 +'with-write-batch-size'=17 +'transform'=18 +'do-format'=19 +'loadcsv'=20 +'pid'=21 +'with'=22 +'by-batch'=23 +'abort'=24 +'callprocess'=25 +'with-target'=26 +'from-file'=27 +'for-every'=28 +'on-parallel-fielding'=29 +'forkprocess'=30 +'watermark'=31 +'spawn'=32 +'dogleg'=33 +'use-parent-context'=34 +'start-process'=35 +'with-file'=36 +'assign'=37 +'source'=38 +'dropfile'=39 +'in-path'=40 +'restapi'=41 +'url'=42 +'method'=43 +'with headers'=44 +'with params'=45 +'with body type'=46 +'{ part'=47 +'type as'=48 +'exportCsv'=49 +'executionSource'=50 +'targetLocation'=51 +'importCsvToDB'=52 +'target'=53 +'batch'=54 +'extractTAR'=55 +'destination'=56 +'createTAR'=57 +'extension'=58 +'createDirectory'=59 +'createFile'=60 +'location'=61 +'fileName'=62 +'deleteFileDirectory'=63 +'transferFileDirectory'=64 +'operation'=65 +'pcm'=66 +'on-resource'=67 +'produce'=68 +'consume'=69 +'producer'=70 +'push-result-at'=71 +'execute'=72 +'consumer'=73 +'pop-event-from'=74 +'pop-result-from'=75 +'limit'=76 +'on-standalone'=77 +'push-json-into-context'=78 +'with-key'=79 +'using-value'=80 +'map-json-into-context'=81 +'sharepoint'=82 +'client-id'=83 +'tenant-id'=84 +'client-secret'=85 +'org-name'=86 +'action-type'=87 +'site-url'=88 +'source-relative-path'=89 +'file-name'=90 +'target-relative-path'=91 +'if'=92 +'log'=93 +'level'=94 +'message'=95 +'raise exception'=96 +'checksum'=97 +'fileSize'=98 +'download-asset'=99 +'from-url'=100 +'at'=101 +'paper-itemization'=102 +'from-target-file'=103 +'autoRotation'=104 +'output-dir'=105 +'process-id'=106 +'resource-conn'=107 +'blankPageRemover'=108 +'qrAttribution'=109 +'uploadAsset'=110 +'template-id'=111 +'auth-token'=112 +'fileMerger'=113 +'in'=114 +'ftps_upload'=115 +'with-remote-host'=116 +'port'=117 +'user-name'=118 +'password'=119 +'session-timeout'=120 +'source-file-to-upload'=121 +'in-destination-to-save'=122 +'upload-check'=123 +'ftps_download'=124 +'source-file-to-download'=125 +'download-check'=126 +'sftp'=127 +'channel-timeout'=128 +'ftp'=129 +'create-zip'=130 +'extract-zip'=131 +'sorGroupDetails'=132 +'keyfields'=133 +'searchfields'=134 +'groupbyfields'=135 +'targettable'=136 +'zeroShotClassifier'=137 +'with-candidate-labels'=138 +'loadExtractedData'=139 +'file-path'=140 +'paper-no'=141 +'intics-reference-id'=142 +'batch-id'=143 +'target-dir'=144 +'absentKeyFilter'=145 +'sor-list'=146 +'sorFilter'=147 +'search-value'=148 +'triage'=149 +'in-output-dir'=150 +'with-labelled-classifier-model-path'=151 +'with-handwritten-extractor-model-path'=152 +'with-checkbox-extractor-model-path'=153 +'using-synonyms'=154 +'using-labelled-classifier-labels'=155 +'using-vilt-coco-labels'=156 +'add-vilt-question-config'=157 +'add-vilt-coco-overide-config'=158 +'add-vilt-coco-threshold-config'=159 +'add-config-vgg-img-width'=160 +'add-config-vgg-img-height'=161 +'save-response-as'=162 +'docnetAttribution'=163 +'for-input-file'=164 +'on-resource-conn'=165 +'using-attribute-questions'=166 +'tqa-filter'=167 +'using-truth-extractor-url'=168 +'add-config-max-doctr-inner-join-diff'=169 +'add-config-max-question-spacing-diff'=170 +'using-synonmys'=171 +'using-input-files'=172 +'text-filtering'=173 +'key-filtering'=174 +'with-doc-id'=175 +'for-paper'=176 +'group-id'=177 +'entity-key-filtering'=178 +'with-mandatory-key-filtering'=179 +'check-threshold'=180 +'threshold-value'=181 +'jsonToFile'=182 +'export-into'=183 +'docnetResult'=184 +'using-copro'=185 +'using-weightage'=186 +'setContextValue'=187 +'context-key'=188 +'context-value'=189 +'evalPatientName'=190 +'patient-name'=191 +'word-count-limit'=192 +'char-count-limit'=193 +'ner-api'=194 +'word-count-threshold'=195 +'char-count-threshold'=196 +'ner-api-threshold'=197 +'evalMemberId'=198 +'member-id'=199 +'special-character'=200 +'validator-threshold'=201 +'evalDateOfBirth'=202 +'date-of-birth'=203 +'comparable-year'=204 +'date-formats'=205 +'dirPath'=206 +'fileDetails'=207 +'dirpath'=208 +'groupId'=209 +'inboundId'=210 +'wordcount'=211 +'word-threshold'=212 +'input-value'=213 +'word-limit'=214 +'charactercount'=215 +'char-threshold'=216 +'char-limit'=217 +'datevalidator'=218 +'allowed-date-formats'=219 +'comparable-date'=220 +'alphavalidator'=221 +'allowed-special-characters'=222 +'alphanumericvalidator'=223 +'numericvalidator'=224 +'nervalidator'=225 +'ner-threshold'=226 +'urgencyTriage'=227 +'input-file-path'=228 +'binary-classifier-model-file-path'=229 +'multi-classifier-model-file-path'=230 +'checkbox-classifier-model-file-path'=231 +'synonyms'=232 +'binary-classifier-labels'=233 +'multi-classifier-labels'=234 +'checkbox-classifier-labels'=235 +'binary-image-width'=236 +'binary-image-height'=237 +'multi-image-width'=238 +'multi-image-height'=239 +'checkbox-image-width'=240 +'checkbox-image-height'=241 +'donut-docqa'=242 +'scalarAdapter'=243 +'using-docnut-result'=244 +'phrase-match-paper-filter'=245 +'for-process-id'=246 +'thread-count'=247 +'read-batch-size'=248 +'write-batch-size'=249 +'with-input-query'=250 +'zero-shot-classifier-paper-filter'=251 +'assetInfo'=252 +'get-audit-table'=253 +'result-table'=254 +'dataExtraction'=255 +'episodeOfCoverage'=256 +'origin-id'=257 +'total-pages'=258 +'output-table'=259 +'grouping-item'=260 +'patient-eoc-count'=261 +'qr-grouping'=262 +'eoc-grouping'=263 +'pnd-grouping'=264 +'userRegistration'=265 +'authToken'=266 +'eocJsonGenerator'=267 +'document-id'=268 +'eoc-id'=269 +'zipContentList'=270 +'zip-file-path'=271 +'hwDetection'=272 +'outputDir'=273 +'modelPath'=274 +'intellimatch'=275 +'match-result'=276 +'checkbox-vqa'=277 +'cad-model-path'=278 +'cd-model-path'=279 +'cr-model-path'=280 +'text-model'=281 +'cr-width'=282 +'cr-height'=283 +'pixel-classifier-urgency-triage'=284 +'qr-extraction'=285 +'paperItemizer'=286 +'processId'=287 +'nerAdapter'=288 +'coproStart'=289 +'for'=290 +'copro-server-url'=291 +'export-command'=292 +'coproStop'=293 +'outbound-delivery-notify'=294 +'intics-zip-uri'=295 +'masterdataComparison'=296 +'zipBatch'=297 +'drugMatch'=298 +'drug-compare'=299 +'urgencyTriageModel'=300 +'donut-impira-qa'=301 +'templateDetection'=302 +'copro-url'=303 +'input-table'=304 +'ouput-table'=305 +'trinity-docqa'=306 +'api-endpoint'=307 +'file-bucketing'=308 +','=309 +':'=310 +'['=311 +']'=312 +'true'=313 +'false'=314 +'null'=315 diff --git a/src/main/antlr/in.handyman.raven/compiler/RavenListener.java b/src/main/antlr/in.handyman.raven/compiler/RavenListener.java new file mode 100644 index 00000000..92e8d26e --- /dev/null +++ b/src/main/antlr/in.handyman.raven/compiler/RavenListener.java @@ -0,0 +1,1132 @@ +// Generated from java-escape by ANTLR 4.11.1 + +package in.handyman.raven.compiler; + +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link RavenParser}. + */ +public interface RavenListener extends ParseTreeListener { + /** + * Enter a parse tree produced by {@link RavenParser#process}. + * @param ctx the parse tree + */ + void enterProcess(RavenParser.ProcessContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#process}. + * @param ctx the parse tree + */ + void exitProcess(RavenParser.ProcessContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#tryClause}. + * @param ctx the parse tree + */ + void enterTryClause(RavenParser.TryClauseContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#tryClause}. + * @param ctx the parse tree + */ + void exitTryClause(RavenParser.TryClauseContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#finallyClause}. + * @param ctx the parse tree + */ + void enterFinallyClause(RavenParser.FinallyClauseContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#finallyClause}. + * @param ctx the parse tree + */ + void exitFinallyClause(RavenParser.FinallyClauseContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#catchClause}. + * @param ctx the parse tree + */ + void enterCatchClause(RavenParser.CatchClauseContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#catchClause}. + * @param ctx the parse tree + */ + void exitCatchClause(RavenParser.CatchClauseContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#action}. + * @param ctx the parse tree + */ + void enterAction(RavenParser.ActionContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#action}. + * @param ctx the parse tree + */ + void exitAction(RavenParser.ActionContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#multitude}. + * @param ctx the parse tree + */ + void enterMultitude(RavenParser.MultitudeContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#multitude}. + * @param ctx the parse tree + */ + void exitMultitude(RavenParser.MultitudeContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#copyData}. + * @param ctx the parse tree + */ + void enterCopyData(RavenParser.CopyDataContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#copyData}. + * @param ctx the parse tree + */ + void exitCopyData(RavenParser.CopyDataContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#transform}. + * @param ctx the parse tree + */ + void enterTransform(RavenParser.TransformContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#transform}. + * @param ctx the parse tree + */ + void exitTransform(RavenParser.TransformContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#loadCsv}. + * @param ctx the parse tree + */ + void enterLoadCsv(RavenParser.LoadCsvContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#loadCsv}. + * @param ctx the parse tree + */ + void exitLoadCsv(RavenParser.LoadCsvContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#abort}. + * @param ctx the parse tree + */ + void enterAbort(RavenParser.AbortContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#abort}. + * @param ctx the parse tree + */ + void exitAbort(RavenParser.AbortContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#callProcess}. + * @param ctx the parse tree + */ + void enterCallProcess(RavenParser.CallProcessContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#callProcess}. + * @param ctx the parse tree + */ + void exitCallProcess(RavenParser.CallProcessContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#forkProcess}. + * @param ctx the parse tree + */ + void enterForkProcess(RavenParser.ForkProcessContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#forkProcess}. + * @param ctx the parse tree + */ + void exitForkProcess(RavenParser.ForkProcessContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#spawnProcess}. + * @param ctx the parse tree + */ + void enterSpawnProcess(RavenParser.SpawnProcessContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#spawnProcess}. + * @param ctx the parse tree + */ + void exitSpawnProcess(RavenParser.SpawnProcessContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#dogLeg}. + * @param ctx the parse tree + */ + void enterDogLeg(RavenParser.DogLegContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#dogLeg}. + * @param ctx the parse tree + */ + void exitDogLeg(RavenParser.DogLegContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#startProcess}. + * @param ctx the parse tree + */ + void enterStartProcess(RavenParser.StartProcessContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#startProcess}. + * @param ctx the parse tree + */ + void exitStartProcess(RavenParser.StartProcessContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#assign}. + * @param ctx the parse tree + */ + void enterAssign(RavenParser.AssignContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#assign}. + * @param ctx the parse tree + */ + void exitAssign(RavenParser.AssignContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#dropFile}. + * @param ctx the parse tree + */ + void enterDropFile(RavenParser.DropFileContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#dropFile}. + * @param ctx the parse tree + */ + void exitDropFile(RavenParser.DropFileContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#restApi}. + * @param ctx the parse tree + */ + void enterRestApi(RavenParser.RestApiContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#restApi}. + * @param ctx the parse tree + */ + void exitRestApi(RavenParser.RestApiContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#restPart}. + * @param ctx the parse tree + */ + void enterRestPart(RavenParser.RestPartContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#restPart}. + * @param ctx the parse tree + */ + void exitRestPart(RavenParser.RestPartContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#exportCsv}. + * @param ctx the parse tree + */ + void enterExportCsv(RavenParser.ExportCsvContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#exportCsv}. + * @param ctx the parse tree + */ + void exitExportCsv(RavenParser.ExportCsvContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#importCsvToDB}. + * @param ctx the parse tree + */ + void enterImportCsvToDB(RavenParser.ImportCsvToDBContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#importCsvToDB}. + * @param ctx the parse tree + */ + void exitImportCsvToDB(RavenParser.ImportCsvToDBContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#extractTAR}. + * @param ctx the parse tree + */ + void enterExtractTAR(RavenParser.ExtractTARContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#extractTAR}. + * @param ctx the parse tree + */ + void exitExtractTAR(RavenParser.ExtractTARContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#createTAR}. + * @param ctx the parse tree + */ + void enterCreateTAR(RavenParser.CreateTARContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#createTAR}. + * @param ctx the parse tree + */ + void exitCreateTAR(RavenParser.CreateTARContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#createDirectory}. + * @param ctx the parse tree + */ + void enterCreateDirectory(RavenParser.CreateDirectoryContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#createDirectory}. + * @param ctx the parse tree + */ + void exitCreateDirectory(RavenParser.CreateDirectoryContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#createFile}. + * @param ctx the parse tree + */ + void enterCreateFile(RavenParser.CreateFileContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#createFile}. + * @param ctx the parse tree + */ + void exitCreateFile(RavenParser.CreateFileContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#deleteFileDirectory}. + * @param ctx the parse tree + */ + void enterDeleteFileDirectory(RavenParser.DeleteFileDirectoryContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#deleteFileDirectory}. + * @param ctx the parse tree + */ + void exitDeleteFileDirectory(RavenParser.DeleteFileDirectoryContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#transferFileDirectory}. + * @param ctx the parse tree + */ + void enterTransferFileDirectory(RavenParser.TransferFileDirectoryContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#transferFileDirectory}. + * @param ctx the parse tree + */ + void exitTransferFileDirectory(RavenParser.TransferFileDirectoryContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#producerConsumerModel}. + * @param ctx the parse tree + */ + void enterProducerConsumerModel(RavenParser.ProducerConsumerModelContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#producerConsumerModel}. + * @param ctx the parse tree + */ + void exitProducerConsumerModel(RavenParser.ProducerConsumerModelContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#producer}. + * @param ctx the parse tree + */ + void enterProducer(RavenParser.ProducerContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#producer}. + * @param ctx the parse tree + */ + void exitProducer(RavenParser.ProducerContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#consumer}. + * @param ctx the parse tree + */ + void enterConsumer(RavenParser.ConsumerContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#consumer}. + * @param ctx the parse tree + */ + void exitConsumer(RavenParser.ConsumerContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#pushJson}. + * @param ctx the parse tree + */ + void enterPushJson(RavenParser.PushJsonContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#pushJson}. + * @param ctx the parse tree + */ + void exitPushJson(RavenParser.PushJsonContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#mapJsonContext}. + * @param ctx the parse tree + */ + void enterMapJsonContext(RavenParser.MapJsonContextContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#mapJsonContext}. + * @param ctx the parse tree + */ + void exitMapJsonContext(RavenParser.MapJsonContextContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#sharePoint}. + * @param ctx the parse tree + */ + void enterSharePoint(RavenParser.SharePointContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#sharePoint}. + * @param ctx the parse tree + */ + void exitSharePoint(RavenParser.SharePointContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#expression}. + * @param ctx the parse tree + */ + void enterExpression(RavenParser.ExpressionContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#expression}. + * @param ctx the parse tree + */ + void exitExpression(RavenParser.ExpressionContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#log}. + * @param ctx the parse tree + */ + void enterLog(RavenParser.LogContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#log}. + * @param ctx the parse tree + */ + void exitLog(RavenParser.LogContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#ravenVmException}. + * @param ctx the parse tree + */ + void enterRavenVmException(RavenParser.RavenVmExceptionContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#ravenVmException}. + * @param ctx the parse tree + */ + void exitRavenVmException(RavenParser.RavenVmExceptionContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#checksum}. + * @param ctx the parse tree + */ + void enterChecksum(RavenParser.ChecksumContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#checksum}. + * @param ctx the parse tree + */ + void exitChecksum(RavenParser.ChecksumContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#fileSize}. + * @param ctx the parse tree + */ + void enterFileSize(RavenParser.FileSizeContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#fileSize}. + * @param ctx the parse tree + */ + void exitFileSize(RavenParser.FileSizeContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#downloadAsset}. + * @param ctx the parse tree + */ + void enterDownloadAsset(RavenParser.DownloadAssetContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#downloadAsset}. + * @param ctx the parse tree + */ + void exitDownloadAsset(RavenParser.DownloadAssetContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#paperItemization}. + * @param ctx the parse tree + */ + void enterPaperItemization(RavenParser.PaperItemizationContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#paperItemization}. + * @param ctx the parse tree + */ + void exitPaperItemization(RavenParser.PaperItemizationContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#autoRotation}. + * @param ctx the parse tree + */ + void enterAutoRotation(RavenParser.AutoRotationContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#autoRotation}. + * @param ctx the parse tree + */ + void exitAutoRotation(RavenParser.AutoRotationContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#blankPageRemover}. + * @param ctx the parse tree + */ + void enterBlankPageRemover(RavenParser.BlankPageRemoverContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#blankPageRemover}. + * @param ctx the parse tree + */ + void exitBlankPageRemover(RavenParser.BlankPageRemoverContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#qrAttribution}. + * @param ctx the parse tree + */ + void enterQrAttribution(RavenParser.QrAttributionContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#qrAttribution}. + * @param ctx the parse tree + */ + void exitQrAttribution(RavenParser.QrAttributionContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#uploadAsset}. + * @param ctx the parse tree + */ + void enterUploadAsset(RavenParser.UploadAssetContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#uploadAsset}. + * @param ctx the parse tree + */ + void exitUploadAsset(RavenParser.UploadAssetContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#fileMerger}. + * @param ctx the parse tree + */ + void enterFileMerger(RavenParser.FileMergerContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#fileMerger}. + * @param ctx the parse tree + */ + void exitFileMerger(RavenParser.FileMergerContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#ftpsUpload}. + * @param ctx the parse tree + */ + void enterFtpsUpload(RavenParser.FtpsUploadContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#ftpsUpload}. + * @param ctx the parse tree + */ + void exitFtpsUpload(RavenParser.FtpsUploadContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#ftpsDownload}. + * @param ctx the parse tree + */ + void enterFtpsDownload(RavenParser.FtpsDownloadContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#ftpsDownload}. + * @param ctx the parse tree + */ + void exitFtpsDownload(RavenParser.FtpsDownloadContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#sftpConnector}. + * @param ctx the parse tree + */ + void enterSftpConnector(RavenParser.SftpConnectorContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#sftpConnector}. + * @param ctx the parse tree + */ + void exitSftpConnector(RavenParser.SftpConnectorContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#createZip}. + * @param ctx the parse tree + */ + void enterCreateZip(RavenParser.CreateZipContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#createZip}. + * @param ctx the parse tree + */ + void exitCreateZip(RavenParser.CreateZipContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#extractZip}. + * @param ctx the parse tree + */ + void enterExtractZip(RavenParser.ExtractZipContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#extractZip}. + * @param ctx the parse tree + */ + void exitExtractZip(RavenParser.ExtractZipContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#sorGroupDetails}. + * @param ctx the parse tree + */ + void enterSorGroupDetails(RavenParser.SorGroupDetailsContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#sorGroupDetails}. + * @param ctx the parse tree + */ + void exitSorGroupDetails(RavenParser.SorGroupDetailsContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#zeroShotClassifier}. + * @param ctx the parse tree + */ + void enterZeroShotClassifier(RavenParser.ZeroShotClassifierContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#zeroShotClassifier}. + * @param ctx the parse tree + */ + void exitZeroShotClassifier(RavenParser.ZeroShotClassifierContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#loadExtractedData}. + * @param ctx the parse tree + */ + void enterLoadExtractedData(RavenParser.LoadExtractedDataContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#loadExtractedData}. + * @param ctx the parse tree + */ + void exitLoadExtractedData(RavenParser.LoadExtractedDataContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#absentKeyFilter}. + * @param ctx the parse tree + */ + void enterAbsentKeyFilter(RavenParser.AbsentKeyFilterContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#absentKeyFilter}. + * @param ctx the parse tree + */ + void exitAbsentKeyFilter(RavenParser.AbsentKeyFilterContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#sorFilter}. + * @param ctx the parse tree + */ + void enterSorFilter(RavenParser.SorFilterContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#sorFilter}. + * @param ctx the parse tree + */ + void exitSorFilter(RavenParser.SorFilterContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#triageAttribution}. + * @param ctx the parse tree + */ + void enterTriageAttribution(RavenParser.TriageAttributionContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#triageAttribution}. + * @param ctx the parse tree + */ + void exitTriageAttribution(RavenParser.TriageAttributionContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#docnetAttribution}. + * @param ctx the parse tree + */ + void enterDocnetAttribution(RavenParser.DocnetAttributionContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#docnetAttribution}. + * @param ctx the parse tree + */ + void exitDocnetAttribution(RavenParser.DocnetAttributionContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#tqaFilter}. + * @param ctx the parse tree + */ + void enterTqaFilter(RavenParser.TqaFilterContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#tqaFilter}. + * @param ctx the parse tree + */ + void exitTqaFilter(RavenParser.TqaFilterContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#textFilter}. + * @param ctx the parse tree + */ + void enterTextFilter(RavenParser.TextFilterContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#textFilter}. + * @param ctx the parse tree + */ + void exitTextFilter(RavenParser.TextFilterContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#entityFilter}. + * @param ctx the parse tree + */ + void enterEntityFilter(RavenParser.EntityFilterContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#entityFilter}. + * @param ctx the parse tree + */ + void exitEntityFilter(RavenParser.EntityFilterContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#thresholdCheck}. + * @param ctx the parse tree + */ + void enterThresholdCheck(RavenParser.ThresholdCheckContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#thresholdCheck}. + * @param ctx the parse tree + */ + void exitThresholdCheck(RavenParser.ThresholdCheckContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#jsonToFile}. + * @param ctx the parse tree + */ + void enterJsonToFile(RavenParser.JsonToFileContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#jsonToFile}. + * @param ctx the parse tree + */ + void exitJsonToFile(RavenParser.JsonToFileContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#docnetResult}. + * @param ctx the parse tree + */ + void enterDocnetResult(RavenParser.DocnetResultContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#docnetResult}. + * @param ctx the parse tree + */ + void exitDocnetResult(RavenParser.DocnetResultContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#setContextValue}. + * @param ctx the parse tree + */ + void enterSetContextValue(RavenParser.SetContextValueContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#setContextValue}. + * @param ctx the parse tree + */ + void exitSetContextValue(RavenParser.SetContextValueContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#evalPatientName}. + * @param ctx the parse tree + */ + void enterEvalPatientName(RavenParser.EvalPatientNameContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#evalPatientName}. + * @param ctx the parse tree + */ + void exitEvalPatientName(RavenParser.EvalPatientNameContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#evalMemberId}. + * @param ctx the parse tree + */ + void enterEvalMemberId(RavenParser.EvalMemberIdContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#evalMemberId}. + * @param ctx the parse tree + */ + void exitEvalMemberId(RavenParser.EvalMemberIdContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#evalDateOfBirth}. + * @param ctx the parse tree + */ + void enterEvalDateOfBirth(RavenParser.EvalDateOfBirthContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#evalDateOfBirth}. + * @param ctx the parse tree + */ + void exitEvalDateOfBirth(RavenParser.EvalDateOfBirthContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#dirPath}. + * @param ctx the parse tree + */ + void enterDirPath(RavenParser.DirPathContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#dirPath}. + * @param ctx the parse tree + */ + void exitDirPath(RavenParser.DirPathContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#fileDetails}. + * @param ctx the parse tree + */ + void enterFileDetails(RavenParser.FileDetailsContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#fileDetails}. + * @param ctx the parse tree + */ + void exitFileDetails(RavenParser.FileDetailsContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#wordcount}. + * @param ctx the parse tree + */ + void enterWordcount(RavenParser.WordcountContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#wordcount}. + * @param ctx the parse tree + */ + void exitWordcount(RavenParser.WordcountContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#charactercount}. + * @param ctx the parse tree + */ + void enterCharactercount(RavenParser.CharactercountContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#charactercount}. + * @param ctx the parse tree + */ + void exitCharactercount(RavenParser.CharactercountContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#datevalidator}. + * @param ctx the parse tree + */ + void enterDatevalidator(RavenParser.DatevalidatorContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#datevalidator}. + * @param ctx the parse tree + */ + void exitDatevalidator(RavenParser.DatevalidatorContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#alphavalidator}. + * @param ctx the parse tree + */ + void enterAlphavalidator(RavenParser.AlphavalidatorContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#alphavalidator}. + * @param ctx the parse tree + */ + void exitAlphavalidator(RavenParser.AlphavalidatorContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#alphanumericvalidator}. + * @param ctx the parse tree + */ + void enterAlphanumericvalidator(RavenParser.AlphanumericvalidatorContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#alphanumericvalidator}. + * @param ctx the parse tree + */ + void exitAlphanumericvalidator(RavenParser.AlphanumericvalidatorContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#numericvalidator}. + * @param ctx the parse tree + */ + void enterNumericvalidator(RavenParser.NumericvalidatorContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#numericvalidator}. + * @param ctx the parse tree + */ + void exitNumericvalidator(RavenParser.NumericvalidatorContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#nervalidator}. + * @param ctx the parse tree + */ + void enterNervalidator(RavenParser.NervalidatorContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#nervalidator}. + * @param ctx the parse tree + */ + void exitNervalidator(RavenParser.NervalidatorContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#urgencyTriage}. + * @param ctx the parse tree + */ + void enterUrgencyTriage(RavenParser.UrgencyTriageContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#urgencyTriage}. + * @param ctx the parse tree + */ + void exitUrgencyTriage(RavenParser.UrgencyTriageContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#donutDocQa}. + * @param ctx the parse tree + */ + void enterDonutDocQa(RavenParser.DonutDocQaContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#donutDocQa}. + * @param ctx the parse tree + */ + void exitDonutDocQa(RavenParser.DonutDocQaContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#scalarAdapter}. + * @param ctx the parse tree + */ + void enterScalarAdapter(RavenParser.ScalarAdapterContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#scalarAdapter}. + * @param ctx the parse tree + */ + void exitScalarAdapter(RavenParser.ScalarAdapterContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#phraseMatchPaperFilter}. + * @param ctx the parse tree + */ + void enterPhraseMatchPaperFilter(RavenParser.PhraseMatchPaperFilterContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#phraseMatchPaperFilter}. + * @param ctx the parse tree + */ + void exitPhraseMatchPaperFilter(RavenParser.PhraseMatchPaperFilterContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#zeroShotClassifierPaperFilter}. + * @param ctx the parse tree + */ + void enterZeroShotClassifierPaperFilter(RavenParser.ZeroShotClassifierPaperFilterContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#zeroShotClassifierPaperFilter}. + * @param ctx the parse tree + */ + void exitZeroShotClassifierPaperFilter(RavenParser.ZeroShotClassifierPaperFilterContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#assetInfo}. + * @param ctx the parse tree + */ + void enterAssetInfo(RavenParser.AssetInfoContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#assetInfo}. + * @param ctx the parse tree + */ + void exitAssetInfo(RavenParser.AssetInfoContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#dataExtraction}. + * @param ctx the parse tree + */ + void enterDataExtraction(RavenParser.DataExtractionContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#dataExtraction}. + * @param ctx the parse tree + */ + void exitDataExtraction(RavenParser.DataExtractionContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#episodeOfCoverage}. + * @param ctx the parse tree + */ + void enterEpisodeOfCoverage(RavenParser.EpisodeOfCoverageContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#episodeOfCoverage}. + * @param ctx the parse tree + */ + void exitEpisodeOfCoverage(RavenParser.EpisodeOfCoverageContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#userRegistration}. + * @param ctx the parse tree + */ + void enterUserRegistration(RavenParser.UserRegistrationContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#userRegistration}. + * @param ctx the parse tree + */ + void exitUserRegistration(RavenParser.UserRegistrationContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#authToken}. + * @param ctx the parse tree + */ + void enterAuthToken(RavenParser.AuthTokenContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#authToken}. + * @param ctx the parse tree + */ + void exitAuthToken(RavenParser.AuthTokenContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#eocJsonGenerator}. + * @param ctx the parse tree + */ + void enterEocJsonGenerator(RavenParser.EocJsonGeneratorContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#eocJsonGenerator}. + * @param ctx the parse tree + */ + void exitEocJsonGenerator(RavenParser.EocJsonGeneratorContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#zipContentList}. + * @param ctx the parse tree + */ + void enterZipContentList(RavenParser.ZipContentListContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#zipContentList}. + * @param ctx the parse tree + */ + void exitZipContentList(RavenParser.ZipContentListContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#hwDetection}. + * @param ctx the parse tree + */ + void enterHwDetection(RavenParser.HwDetectionContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#hwDetection}. + * @param ctx the parse tree + */ + void exitHwDetection(RavenParser.HwDetectionContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#intellimatch}. + * @param ctx the parse tree + */ + void enterIntellimatch(RavenParser.IntellimatchContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#intellimatch}. + * @param ctx the parse tree + */ + void exitIntellimatch(RavenParser.IntellimatchContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#checkboxVqa}. + * @param ctx the parse tree + */ + void enterCheckboxVqa(RavenParser.CheckboxVqaContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#checkboxVqa}. + * @param ctx the parse tree + */ + void exitCheckboxVqa(RavenParser.CheckboxVqaContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#pixelClassifierUrgencyTriage}. + * @param ctx the parse tree + */ + void enterPixelClassifierUrgencyTriage(RavenParser.PixelClassifierUrgencyTriageContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#pixelClassifierUrgencyTriage}. + * @param ctx the parse tree + */ + void exitPixelClassifierUrgencyTriage(RavenParser.PixelClassifierUrgencyTriageContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#qrExtraction}. + * @param ctx the parse tree + */ + void enterQrExtraction(RavenParser.QrExtractionContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#qrExtraction}. + * @param ctx the parse tree + */ + void exitQrExtraction(RavenParser.QrExtractionContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#paperItemizer}. + * @param ctx the parse tree + */ + void enterPaperItemizer(RavenParser.PaperItemizerContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#paperItemizer}. + * @param ctx the parse tree + */ + void exitPaperItemizer(RavenParser.PaperItemizerContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#nerAdapter}. + * @param ctx the parse tree + */ + void enterNerAdapter(RavenParser.NerAdapterContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#nerAdapter}. + * @param ctx the parse tree + */ + void exitNerAdapter(RavenParser.NerAdapterContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#resource}. + * @param ctx the parse tree + */ + void enterResource(RavenParser.ResourceContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#resource}. + * @param ctx the parse tree + */ + void exitResource(RavenParser.ResourceContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#coproStart}. + * @param ctx the parse tree + */ + void enterCoproStart(RavenParser.CoproStartContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#coproStart}. + * @param ctx the parse tree + */ + void exitCoproStart(RavenParser.CoproStartContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#coproStop}. + * @param ctx the parse tree + */ + void enterCoproStop(RavenParser.CoproStopContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#coproStop}. + * @param ctx the parse tree + */ + void exitCoproStop(RavenParser.CoproStopContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#outboundDeliveryNotify}. + * @param ctx the parse tree + */ + void enterOutboundDeliveryNotify(RavenParser.OutboundDeliveryNotifyContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#outboundDeliveryNotify}. + * @param ctx the parse tree + */ + void exitOutboundDeliveryNotify(RavenParser.OutboundDeliveryNotifyContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#masterdataComparison}. + * @param ctx the parse tree + */ + void enterMasterdataComparison(RavenParser.MasterdataComparisonContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#masterdataComparison}. + * @param ctx the parse tree + */ + void exitMasterdataComparison(RavenParser.MasterdataComparisonContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#zipBatch}. + * @param ctx the parse tree + */ + void enterZipBatch(RavenParser.ZipBatchContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#zipBatch}. + * @param ctx the parse tree + */ + void exitZipBatch(RavenParser.ZipBatchContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#drugMatch}. + * @param ctx the parse tree + */ + void enterDrugMatch(RavenParser.DrugMatchContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#drugMatch}. + * @param ctx the parse tree + */ + void exitDrugMatch(RavenParser.DrugMatchContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#urgencyTriageModel}. + * @param ctx the parse tree + */ + void enterUrgencyTriageModel(RavenParser.UrgencyTriageModelContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#urgencyTriageModel}. + * @param ctx the parse tree + */ + void exitUrgencyTriageModel(RavenParser.UrgencyTriageModelContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#donutImpiraQa}. + * @param ctx the parse tree + */ + void enterDonutImpiraQa(RavenParser.DonutImpiraQaContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#donutImpiraQa}. + * @param ctx the parse tree + */ + void exitDonutImpiraQa(RavenParser.DonutImpiraQaContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#templateDetection}. + * @param ctx the parse tree + */ + void enterTemplateDetection(RavenParser.TemplateDetectionContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#templateDetection}. + * @param ctx the parse tree + */ + void exitTemplateDetection(RavenParser.TemplateDetectionContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#trinityModel}. + * @param ctx the parse tree + */ + void enterTrinityModel(RavenParser.TrinityModelContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#trinityModel}. + * @param ctx the parse tree + */ + void exitTrinityModel(RavenParser.TrinityModelContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#fileBucketing}. + * @param ctx the parse tree + */ + void enterFileBucketing(RavenParser.FileBucketingContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#fileBucketing}. + * @param ctx the parse tree + */ + void exitFileBucketing(RavenParser.FileBucketingContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#json}. + * @param ctx the parse tree + */ + void enterJson(RavenParser.JsonContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#json}. + * @param ctx the parse tree + */ + void exitJson(RavenParser.JsonContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#obj}. + * @param ctx the parse tree + */ + void enterObj(RavenParser.ObjContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#obj}. + * @param ctx the parse tree + */ + void exitObj(RavenParser.ObjContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#pair}. + * @param ctx the parse tree + */ + void enterPair(RavenParser.PairContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#pair}. + * @param ctx the parse tree + */ + void exitPair(RavenParser.PairContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#arr}. + * @param ctx the parse tree + */ + void enterArr(RavenParser.ArrContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#arr}. + * @param ctx the parse tree + */ + void exitArr(RavenParser.ArrContext ctx); + /** + * Enter a parse tree produced by {@link RavenParser#jValue}. + * @param ctx the parse tree + */ + void enterJValue(RavenParser.JValueContext ctx); + /** + * Exit a parse tree produced by {@link RavenParser#jValue}. + * @param ctx the parse tree + */ + void exitJValue(RavenParser.JValueContext ctx); +} \ No newline at end of file diff --git a/src/main/antlr/in.handyman.raven/compiler/RavenParser.java b/src/main/antlr/in.handyman.raven/compiler/RavenParser.java new file mode 100644 index 00000000..64db2005 --- /dev/null +++ b/src/main/antlr/in.handyman.raven/compiler/RavenParser.java @@ -0,0 +1,13708 @@ +// Generated from java-escape by ANTLR 4.11.1 + +package in.handyman.raven.compiler; + +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) +public class RavenParser extends Parser { + static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, + T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, + T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, + T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45, + T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, T__50=51, T__51=52, + T__52=53, T__53=54, T__54=55, T__55=56, T__56=57, T__57=58, T__58=59, + T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66, + T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73, + T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, T__78=79, T__79=80, + T__80=81, T__81=82, T__82=83, T__83=84, T__84=85, T__85=86, T__86=87, + T__87=88, T__88=89, T__89=90, T__90=91, T__91=92, T__92=93, T__93=94, + T__94=95, T__95=96, T__96=97, T__97=98, T__98=99, T__99=100, T__100=101, + T__101=102, T__102=103, T__103=104, T__104=105, T__105=106, T__106=107, + T__107=108, T__108=109, T__109=110, T__110=111, T__111=112, T__112=113, + T__113=114, T__114=115, T__115=116, T__116=117, T__117=118, T__118=119, + T__119=120, T__120=121, T__121=122, T__122=123, T__123=124, T__124=125, + T__125=126, T__126=127, T__127=128, T__128=129, T__129=130, T__130=131, + T__131=132, T__132=133, T__133=134, T__134=135, T__135=136, T__136=137, + T__137=138, T__138=139, T__139=140, T__140=141, T__141=142, T__142=143, + T__143=144, T__144=145, T__145=146, T__146=147, T__147=148, T__148=149, + T__149=150, T__150=151, T__151=152, T__152=153, T__153=154, T__154=155, + T__155=156, T__156=157, T__157=158, T__158=159, T__159=160, T__160=161, + T__161=162, T__162=163, T__163=164, T__164=165, T__165=166, T__166=167, + T__167=168, T__168=169, T__169=170, T__170=171, T__171=172, T__172=173, + T__173=174, T__174=175, T__175=176, T__176=177, T__177=178, T__178=179, + T__179=180, T__180=181, T__181=182, T__182=183, T__183=184, T__184=185, + T__185=186, T__186=187, T__187=188, T__188=189, T__189=190, T__190=191, + T__191=192, T__192=193, T__193=194, T__194=195, T__195=196, T__196=197, + T__197=198, T__198=199, T__199=200, T__200=201, T__201=202, T__202=203, + T__203=204, T__204=205, T__205=206, T__206=207, T__207=208, T__208=209, + T__209=210, T__210=211, T__211=212, T__212=213, T__213=214, T__214=215, + T__215=216, T__216=217, T__217=218, T__218=219, T__219=220, T__220=221, + T__221=222, T__222=223, T__223=224, T__224=225, T__225=226, T__226=227, + T__227=228, T__228=229, T__229=230, T__230=231, T__231=232, T__232=233, + T__233=234, T__234=235, T__235=236, T__236=237, T__237=238, T__238=239, + T__239=240, T__240=241, T__241=242, T__242=243, T__243=244, T__244=245, + T__245=246, T__246=247, T__247=248, T__248=249, T__249=250, T__250=251, + T__251=252, T__252=253, T__253=254, T__254=255, T__255=256, T__256=257, + T__257=258, T__258=259, T__259=260, T__260=261, T__261=262, T__262=263, + T__263=264, T__264=265, T__265=266, T__266=267, T__267=268, T__268=269, + T__269=270, T__270=271, T__271=272, T__272=273, T__273=274, T__274=275, + T__275=276, T__276=277, T__277=278, T__278=279, T__279=280, T__280=281, + T__281=282, T__282=283, T__283=284, T__284=285, T__285=286, T__286=287, + T__287=288, T__288=289, T__289=290, T__290=291, T__291=292, T__292=293, + T__293=294, T__294=295, T__295=296, T__296=297, T__297=298, T__298=299, + T__299=300, T__300=301, T__301=302, T__302=303, T__303=304, T__304=305, + T__305=306, T__306=307, T__307=308, T__308=309, T__309=310, T__310=311, + T__311=312, T__312=313, T__313=314, T__314=315, NON_ZERO_DIGIT=316, STRING=317, + CRLF=318, Operator=319, WS=320, COMMENT=321, LINE_COMMENT=322, NUMBER=323; + public static final int + RULE_process = 0, RULE_tryClause = 1, RULE_finallyClause = 2, RULE_catchClause = 3, + RULE_action = 4, RULE_multitude = 5, RULE_copyData = 6, RULE_transform = 7, + RULE_loadCsv = 8, RULE_abort = 9, RULE_callProcess = 10, RULE_forkProcess = 11, + RULE_spawnProcess = 12, RULE_dogLeg = 13, RULE_startProcess = 14, RULE_assign = 15, + RULE_dropFile = 16, RULE_restApi = 17, RULE_restPart = 18, RULE_exportCsv = 19, + RULE_importCsvToDB = 20, RULE_extractTAR = 21, RULE_createTAR = 22, RULE_createDirectory = 23, + RULE_createFile = 24, RULE_deleteFileDirectory = 25, RULE_transferFileDirectory = 26, + RULE_producerConsumerModel = 27, RULE_producer = 28, RULE_consumer = 29, + RULE_pushJson = 30, RULE_mapJsonContext = 31, RULE_sharePoint = 32, RULE_expression = 33, + RULE_log = 34, RULE_ravenVmException = 35, RULE_checksum = 36, RULE_fileSize = 37, + RULE_downloadAsset = 38, RULE_paperItemization = 39, RULE_autoRotation = 40, + RULE_blankPageRemover = 41, RULE_qrAttribution = 42, RULE_uploadAsset = 43, + RULE_fileMerger = 44, RULE_ftpsUpload = 45, RULE_ftpsDownload = 46, RULE_sftpConnector = 47, + RULE_createZip = 48, RULE_extractZip = 49, RULE_sorGroupDetails = 50, + RULE_zeroShotClassifier = 51, RULE_loadExtractedData = 52, RULE_absentKeyFilter = 53, + RULE_sorFilter = 54, RULE_triageAttribution = 55, RULE_docnetAttribution = 56, + RULE_tqaFilter = 57, RULE_textFilter = 58, RULE_entityFilter = 59, RULE_thresholdCheck = 60, + RULE_jsonToFile = 61, RULE_docnetResult = 62, RULE_setContextValue = 63, + RULE_evalPatientName = 64, RULE_evalMemberId = 65, RULE_evalDateOfBirth = 66, + RULE_dirPath = 67, RULE_fileDetails = 68, RULE_wordcount = 69, RULE_charactercount = 70, + RULE_datevalidator = 71, RULE_alphavalidator = 72, RULE_alphanumericvalidator = 73, + RULE_numericvalidator = 74, RULE_nervalidator = 75, RULE_urgencyTriage = 76, + RULE_donutDocQa = 77, RULE_scalarAdapter = 78, RULE_phraseMatchPaperFilter = 79, + RULE_zeroShotClassifierPaperFilter = 80, RULE_assetInfo = 81, RULE_dataExtraction = 82, + RULE_episodeOfCoverage = 83, RULE_userRegistration = 84, RULE_authToken = 85, + RULE_eocJsonGenerator = 86, RULE_zipContentList = 87, RULE_hwDetection = 88, + RULE_intellimatch = 89, RULE_checkboxVqa = 90, RULE_pixelClassifierUrgencyTriage = 91, + RULE_qrExtraction = 92, RULE_paperItemizer = 93, RULE_nerAdapter = 94, + RULE_resource = 95, RULE_coproStart = 96, RULE_coproStop = 97, RULE_outboundDeliveryNotify = 98, + RULE_masterdataComparison = 99, RULE_zipBatch = 100, RULE_drugMatch = 101, + RULE_urgencyTriageModel = 102, RULE_donutImpiraQa = 103, RULE_templateDetection = 104, + RULE_trinityModel = 105, RULE_fileBucketing = 106, RULE_json = 107, RULE_obj = 108, + RULE_pair = 109, RULE_arr = 110, RULE_jValue = 111; + private static String[] makeRuleNames() { + return new String[] { + "process", "tryClause", "finallyClause", "catchClause", "action", "multitude", + "copyData", "transform", "loadCsv", "abort", "callProcess", "forkProcess", + "spawnProcess", "dogLeg", "startProcess", "assign", "dropFile", "restApi", + "restPart", "exportCsv", "importCsvToDB", "extractTAR", "createTAR", + "createDirectory", "createFile", "deleteFileDirectory", "transferFileDirectory", + "producerConsumerModel", "producer", "consumer", "pushJson", "mapJsonContext", + "sharePoint", "expression", "log", "ravenVmException", "checksum", "fileSize", + "downloadAsset", "paperItemization", "autoRotation", "blankPageRemover", + "qrAttribution", "uploadAsset", "fileMerger", "ftpsUpload", "ftpsDownload", + "sftpConnector", "createZip", "extractZip", "sorGroupDetails", "zeroShotClassifier", + "loadExtractedData", "absentKeyFilter", "sorFilter", "triageAttribution", + "docnetAttribution", "tqaFilter", "textFilter", "entityFilter", "thresholdCheck", + "jsonToFile", "docnetResult", "setContextValue", "evalPatientName", "evalMemberId", + "evalDateOfBirth", "dirPath", "fileDetails", "wordcount", "charactercount", + "datevalidator", "alphavalidator", "alphanumericvalidator", "numericvalidator", + "nervalidator", "urgencyTriage", "donutDocQa", "scalarAdapter", "phraseMatchPaperFilter", + "zeroShotClassifierPaperFilter", "assetInfo", "dataExtraction", "episodeOfCoverage", + "userRegistration", "authToken", "eocJsonGenerator", "zipContentList", + "hwDetection", "intellimatch", "checkboxVqa", "pixelClassifierUrgencyTriage", + "qrExtraction", "paperItemizer", "nerAdapter", "resource", "coproStart", + "coproStop", "outboundDeliveryNotify", "masterdataComparison", "zipBatch", + "drugMatch", "urgencyTriageModel", "donutImpiraQa", "templateDetection", + "trinityModel", "fileBucketing", "json", "obj", "pair", "arr", "jValue" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "'process'", "'{'", "'}'", "'try'", "'finally'", "'catch'", "'multitude'", + "'as'", "'on'", "'using'", "'on-condition'", "'fielding'", "'copydata'", + "'from'", "'to'", "'with-fetch-batch-size'", "'with-write-batch-size'", + "'transform'", "'do-format'", "'loadcsv'", "'pid'", "'with'", "'by-batch'", + "'abort'", "'callprocess'", "'with-target'", "'from-file'", "'for-every'", + "'on-parallel-fielding'", "'forkprocess'", "'watermark'", "'spawn'", + "'dogleg'", "'use-parent-context'", "'start-process'", "'with-file'", + "'assign'", "'source'", "'dropfile'", "'in-path'", "'restapi'", "'url'", + "'method'", "'with headers'", "'with params'", "'with body type'", "'{ part'", + "'type as'", "'exportCsv'", "'executionSource'", "'targetLocation'", + "'importCsvToDB'", "'target'", "'batch'", "'extractTAR'", "'destination'", + "'createTAR'", "'extension'", "'createDirectory'", "'createFile'", "'location'", + "'fileName'", "'deleteFileDirectory'", "'transferFileDirectory'", "'operation'", + "'pcm'", "'on-resource'", "'produce'", "'consume'", "'producer'", "'push-result-at'", + "'execute'", "'consumer'", "'pop-event-from'", "'pop-result-from'", "'limit'", + "'on-standalone'", "'push-json-into-context'", "'with-key'", "'using-value'", + "'map-json-into-context'", "'sharepoint'", "'client-id'", "'tenant-id'", + "'client-secret'", "'org-name'", "'action-type'", "'site-url'", "'source-relative-path'", + "'file-name'", "'target-relative-path'", "'if'", "'log'", "'level'", + "'message'", "'raise exception'", "'checksum'", "'fileSize'", "'download-asset'", + "'from-url'", "'at'", "'paper-itemization'", "'from-target-file'", "'autoRotation'", + "'output-dir'", "'process-id'", "'resource-conn'", "'blankPageRemover'", + "'qrAttribution'", "'uploadAsset'", "'template-id'", "'auth-token'", + "'fileMerger'", "'in'", "'ftps_upload'", "'with-remote-host'", "'port'", + "'user-name'", "'password'", "'session-timeout'", "'source-file-to-upload'", + "'in-destination-to-save'", "'upload-check'", "'ftps_download'", "'source-file-to-download'", + "'download-check'", "'sftp'", "'channel-timeout'", "'ftp'", "'create-zip'", + "'extract-zip'", "'sorGroupDetails'", "'keyfields'", "'searchfields'", + "'groupbyfields'", "'targettable'", "'zeroShotClassifier'", "'with-candidate-labels'", + "'loadExtractedData'", "'file-path'", "'paper-no'", "'intics-reference-id'", + "'batch-id'", "'target-dir'", "'absentKeyFilter'", "'sor-list'", "'sorFilter'", + "'search-value'", "'triage'", "'in-output-dir'", "'with-labelled-classifier-model-path'", + "'with-handwritten-extractor-model-path'", "'with-checkbox-extractor-model-path'", + "'using-synonyms'", "'using-labelled-classifier-labels'", "'using-vilt-coco-labels'", + "'add-vilt-question-config'", "'add-vilt-coco-overide-config'", "'add-vilt-coco-threshold-config'", + "'add-config-vgg-img-width'", "'add-config-vgg-img-height'", "'save-response-as'", + "'docnetAttribution'", "'for-input-file'", "'on-resource-conn'", "'using-attribute-questions'", + "'tqa-filter'", "'using-truth-extractor-url'", "'add-config-max-doctr-inner-join-diff'", + "'add-config-max-question-spacing-diff'", "'using-synonmys'", "'using-input-files'", + "'text-filtering'", "'key-filtering'", "'with-doc-id'", "'for-paper'", + "'group-id'", "'entity-key-filtering'", "'with-mandatory-key-filtering'", + "'check-threshold'", "'threshold-value'", "'jsonToFile'", "'export-into'", + "'docnetResult'", "'using-copro'", "'using-weightage'", "'setContextValue'", + "'context-key'", "'context-value'", "'evalPatientName'", "'patient-name'", + "'word-count-limit'", "'char-count-limit'", "'ner-api'", "'word-count-threshold'", + "'char-count-threshold'", "'ner-api-threshold'", "'evalMemberId'", "'member-id'", + "'special-character'", "'validator-threshold'", "'evalDateOfBirth'", + "'date-of-birth'", "'comparable-year'", "'date-formats'", "'dirPath'", + "'fileDetails'", "'dirpath'", "'groupId'", "'inboundId'", "'wordcount'", + "'word-threshold'", "'input-value'", "'word-limit'", "'charactercount'", + "'char-threshold'", "'char-limit'", "'datevalidator'", "'allowed-date-formats'", + "'comparable-date'", "'alphavalidator'", "'allowed-special-characters'", + "'alphanumericvalidator'", "'numericvalidator'", "'nervalidator'", "'ner-threshold'", + "'urgencyTriage'", "'input-file-path'", "'binary-classifier-model-file-path'", + "'multi-classifier-model-file-path'", "'checkbox-classifier-model-file-path'", + "'synonyms'", "'binary-classifier-labels'", "'multi-classifier-labels'", + "'checkbox-classifier-labels'", "'binary-image-width'", "'binary-image-height'", + "'multi-image-width'", "'multi-image-height'", "'checkbox-image-width'", + "'checkbox-image-height'", "'donut-docqa'", "'scalarAdapter'", "'using-docnut-result'", + "'phrase-match-paper-filter'", "'for-process-id'", "'thread-count'", + "'read-batch-size'", "'write-batch-size'", "'with-input-query'", "'zero-shot-classifier-paper-filter'", + "'assetInfo'", "'get-audit-table'", "'result-table'", "'dataExtraction'", + "'episodeOfCoverage'", "'origin-id'", "'total-pages'", "'output-table'", + "'grouping-item'", "'patient-eoc-count'", "'qr-grouping'", "'eoc-grouping'", + "'pnd-grouping'", "'userRegistration'", "'authToken'", "'eocJsonGenerator'", + "'document-id'", "'eoc-id'", "'zipContentList'", "'zip-file-path'", "'hwDetection'", + "'outputDir'", "'modelPath'", "'intellimatch'", "'match-result'", "'checkbox-vqa'", + "'cad-model-path'", "'cd-model-path'", "'cr-model-path'", "'text-model'", + "'cr-width'", "'cr-height'", "'pixel-classifier-urgency-triage'", "'qr-extraction'", + "'paperItemizer'", "'processId'", "'nerAdapter'", "'coproStart'", "'for'", + "'copro-server-url'", "'export-command'", "'coproStop'", "'outbound-delivery-notify'", + "'intics-zip-uri'", "'masterdataComparison'", "'zipBatch'", "'drugMatch'", + "'drug-compare'", "'urgencyTriageModel'", "'donut-impira-qa'", "'templateDetection'", + "'copro-url'", "'input-table'", "'ouput-table'", "'trinity-docqa'", "'api-endpoint'", + "'file-bucketing'", "','", "':'", "'['", "']'", "'true'", "'false'", + "'null'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, "NON_ZERO_DIGIT", "STRING", "CRLF", "Operator", + "WS", "COMMENT", "LINE_COMMENT", "NUMBER" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "java-escape"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public RavenParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @SuppressWarnings("CheckReturnValue") + public static class ProcessContext extends ParserRuleContext { + public Token name; + public TryClauseContext tryBlock; + public CatchClauseContext catchBlock; + public FinallyClauseContext finallyBlock; + public TerminalNode STRING() { return getToken(RavenParser.STRING, 0); } + public TryClauseContext tryClause() { + return getRuleContext(TryClauseContext.class,0); + } + public CatchClauseContext catchClause() { + return getRuleContext(CatchClauseContext.class,0); + } + public FinallyClauseContext finallyClause() { + return getRuleContext(FinallyClauseContext.class,0); + } + public ProcessContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_process; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterProcess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitProcess(this); + } + } + + public final ProcessContext process() throws RecognitionException { + ProcessContext _localctx = new ProcessContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_process); + try { + enterOuterAlt(_localctx, 1); + { + setState(224); + match(T__0); + setState(225); + ((ProcessContext)_localctx).name = match(STRING); + setState(226); + match(T__1); + setState(227); + ((ProcessContext)_localctx).tryBlock = tryClause(); + setState(228); + ((ProcessContext)_localctx).catchBlock = catchClause(); + setState(229); + ((ProcessContext)_localctx).finallyBlock = finallyClause(); + setState(230); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TryClauseContext extends ParserRuleContext { + public ActionContext action; + public List actions = new ArrayList(); + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public TryClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_tryClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterTryClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitTryClause(this); + } + } + + public final TryClauseContext tryClause() throws RecognitionException { + TryClauseContext _localctx = new TryClauseContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_tryClause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(232); + match(T__3); + setState(233); + match(T__1); + setState(237); + _errHandler.sync(this); + _la = _input.LA(1); + while (((_la) & ~0x3f) == 0 && ((1L << _la) & -7308776345040576384L) != 0 || (((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -8067511198364057019L) != 0 || (((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & 1320689532848996999L) != 0 || (((_la - 198)) & ~0x3f) == 0 && ((1L << (_la - 198)) & 459560676819608337L) != 0 || (((_la - 265)) & ~0x3f) == 0 && ((1L << (_la - 265)) & 11251500979367L) != 0) { + { + { + setState(234); + ((TryClauseContext)_localctx).action = action(); + ((TryClauseContext)_localctx).actions.add(((TryClauseContext)_localctx).action); + } + } + setState(239); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(240); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FinallyClauseContext extends ParserRuleContext { + public ActionContext action; + public List actions = new ArrayList(); + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public FinallyClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_finallyClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterFinallyClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitFinallyClause(this); + } + } + + public final FinallyClauseContext finallyClause() throws RecognitionException { + FinallyClauseContext _localctx = new FinallyClauseContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_finallyClause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(242); + match(T__4); + setState(243); + match(T__1); + setState(247); + _errHandler.sync(this); + _la = _input.LA(1); + while (((_la) & ~0x3f) == 0 && ((1L << _la) & -7308776345040576384L) != 0 || (((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -8067511198364057019L) != 0 || (((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & 1320689532848996999L) != 0 || (((_la - 198)) & ~0x3f) == 0 && ((1L << (_la - 198)) & 459560676819608337L) != 0 || (((_la - 265)) & ~0x3f) == 0 && ((1L << (_la - 265)) & 11251500979367L) != 0) { + { + { + setState(244); + ((FinallyClauseContext)_localctx).action = action(); + ((FinallyClauseContext)_localctx).actions.add(((FinallyClauseContext)_localctx).action); + } + } + setState(249); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(250); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatchClauseContext extends ParserRuleContext { + public ActionContext action; + public List actions = new ArrayList(); + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public CatchClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catchClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCatchClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCatchClause(this); + } + } + + public final CatchClauseContext catchClause() throws RecognitionException { + CatchClauseContext _localctx = new CatchClauseContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_catchClause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(252); + match(T__5); + setState(253); + match(T__1); + setState(257); + _errHandler.sync(this); + _la = _input.LA(1); + while (((_la) & ~0x3f) == 0 && ((1L << _la) & -7308776345040576384L) != 0 || (((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -8067511198364057019L) != 0 || (((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & 1320689532848996999L) != 0 || (((_la - 198)) & ~0x3f) == 0 && ((1L << (_la - 198)) & 459560676819608337L) != 0 || (((_la - 265)) & ~0x3f) == 0 && ((1L << (_la - 265)) & 11251500979367L) != 0) { + { + { + setState(254); + ((CatchClauseContext)_localctx).action = action(); + ((CatchClauseContext)_localctx).actions.add(((CatchClauseContext)_localctx).action); + } + } + setState(259); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(260); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ActionContext extends ParserRuleContext { + public AbortContext abort() { + return getRuleContext(AbortContext.class,0); + } + public AssignContext assign() { + return getRuleContext(AssignContext.class,0); + } + public CallProcessContext callProcess() { + return getRuleContext(CallProcessContext.class,0); + } + public ForkProcessContext forkProcess() { + return getRuleContext(ForkProcessContext.class,0); + } + public SpawnProcessContext spawnProcess() { + return getRuleContext(SpawnProcessContext.class,0); + } + public DogLegContext dogLeg() { + return getRuleContext(DogLegContext.class,0); + } + public CopyDataContext copyData() { + return getRuleContext(CopyDataContext.class,0); + } + public DropFileContext dropFile() { + return getRuleContext(DropFileContext.class,0); + } + public LoadCsvContext loadCsv() { + return getRuleContext(LoadCsvContext.class,0); + } + public RestApiContext restApi() { + return getRuleContext(RestApiContext.class,0); + } + public TransformContext transform() { + return getRuleContext(TransformContext.class,0); + } + public MultitudeContext multitude() { + return getRuleContext(MultitudeContext.class,0); + } + public ExportCsvContext exportCsv() { + return getRuleContext(ExportCsvContext.class,0); + } + public CreateDirectoryContext createDirectory() { + return getRuleContext(CreateDirectoryContext.class,0); + } + public CreateFileContext createFile() { + return getRuleContext(CreateFileContext.class,0); + } + public DeleteFileDirectoryContext deleteFileDirectory() { + return getRuleContext(DeleteFileDirectoryContext.class,0); + } + public TransferFileDirectoryContext transferFileDirectory() { + return getRuleContext(TransferFileDirectoryContext.class,0); + } + public CreateTARContext createTAR() { + return getRuleContext(CreateTARContext.class,0); + } + public ExtractTARContext extractTAR() { + return getRuleContext(ExtractTARContext.class,0); + } + public ImportCsvToDBContext importCsvToDB() { + return getRuleContext(ImportCsvToDBContext.class,0); + } + public ProducerConsumerModelContext producerConsumerModel() { + return getRuleContext(ProducerConsumerModelContext.class,0); + } + public ProducerContext producer() { + return getRuleContext(ProducerContext.class,0); + } + public ConsumerContext consumer() { + return getRuleContext(ConsumerContext.class,0); + } + public PushJsonContext pushJson() { + return getRuleContext(PushJsonContext.class,0); + } + public MapJsonContextContext mapJsonContext() { + return getRuleContext(MapJsonContextContext.class,0); + } + public SharePointContext sharePoint() { + return getRuleContext(SharePointContext.class,0); + } + public DownloadAssetContext downloadAsset() { + return getRuleContext(DownloadAssetContext.class,0); + } + public PaperItemizationContext paperItemization() { + return getRuleContext(PaperItemizationContext.class,0); + } + public AutoRotationContext autoRotation() { + return getRuleContext(AutoRotationContext.class,0); + } + public BlankPageRemoverContext blankPageRemover() { + return getRuleContext(BlankPageRemoverContext.class,0); + } + public QrAttributionContext qrAttribution() { + return getRuleContext(QrAttributionContext.class,0); + } + public FileMergerContext fileMerger() { + return getRuleContext(FileMergerContext.class,0); + } + public ChecksumContext checksum() { + return getRuleContext(ChecksumContext.class,0); + } + public FileSizeContext fileSize() { + return getRuleContext(FileSizeContext.class,0); + } + public RavenVmExceptionContext ravenVmException() { + return getRuleContext(RavenVmExceptionContext.class,0); + } + public UploadAssetContext uploadAsset() { + return getRuleContext(UploadAssetContext.class,0); + } + public DocnetAttributionContext docnetAttribution() { + return getRuleContext(DocnetAttributionContext.class,0); + } + public CreateZipContext createZip() { + return getRuleContext(CreateZipContext.class,0); + } + public ExtractZipContext extractZip() { + return getRuleContext(ExtractZipContext.class,0); + } + public SorGroupDetailsContext sorGroupDetails() { + return getRuleContext(SorGroupDetailsContext.class,0); + } + public FtpsUploadContext ftpsUpload() { + return getRuleContext(FtpsUploadContext.class,0); + } + public FtpsDownloadContext ftpsDownload() { + return getRuleContext(FtpsDownloadContext.class,0); + } + public SftpConnectorContext sftpConnector() { + return getRuleContext(SftpConnectorContext.class,0); + } + public ZeroShotClassifierContext zeroShotClassifier() { + return getRuleContext(ZeroShotClassifierContext.class,0); + } + public LoadExtractedDataContext loadExtractedData() { + return getRuleContext(LoadExtractedDataContext.class,0); + } + public AbsentKeyFilterContext absentKeyFilter() { + return getRuleContext(AbsentKeyFilterContext.class,0); + } + public TriageAttributionContext triageAttribution() { + return getRuleContext(TriageAttributionContext.class,0); + } + public SorFilterContext sorFilter() { + return getRuleContext(SorFilterContext.class,0); + } + public TqaFilterContext tqaFilter() { + return getRuleContext(TqaFilterContext.class,0); + } + public JsonToFileContext jsonToFile() { + return getRuleContext(JsonToFileContext.class,0); + } + public TextFilterContext textFilter() { + return getRuleContext(TextFilterContext.class,0); + } + public EntityFilterContext entityFilter() { + return getRuleContext(EntityFilterContext.class,0); + } + public DirPathContext dirPath() { + return getRuleContext(DirPathContext.class,0); + } + public FileDetailsContext fileDetails() { + return getRuleContext(FileDetailsContext.class,0); + } + public UrgencyTriageContext urgencyTriage() { + return getRuleContext(UrgencyTriageContext.class,0); + } + public DocnetResultContext docnetResult() { + return getRuleContext(DocnetResultContext.class,0); + } + public SetContextValueContext setContextValue() { + return getRuleContext(SetContextValueContext.class,0); + } + public EvalPatientNameContext evalPatientName() { + return getRuleContext(EvalPatientNameContext.class,0); + } + public EvalMemberIdContext evalMemberId() { + return getRuleContext(EvalMemberIdContext.class,0); + } + public EvalDateOfBirthContext evalDateOfBirth() { + return getRuleContext(EvalDateOfBirthContext.class,0); + } + public ThresholdCheckContext thresholdCheck() { + return getRuleContext(ThresholdCheckContext.class,0); + } + public WordcountContext wordcount() { + return getRuleContext(WordcountContext.class,0); + } + public CharactercountContext charactercount() { + return getRuleContext(CharactercountContext.class,0); + } + public DatevalidatorContext datevalidator() { + return getRuleContext(DatevalidatorContext.class,0); + } + public AlphavalidatorContext alphavalidator() { + return getRuleContext(AlphavalidatorContext.class,0); + } + public AlphanumericvalidatorContext alphanumericvalidator() { + return getRuleContext(AlphanumericvalidatorContext.class,0); + } + public NumericvalidatorContext numericvalidator() { + return getRuleContext(NumericvalidatorContext.class,0); + } + public NervalidatorContext nervalidator() { + return getRuleContext(NervalidatorContext.class,0); + } + public DonutDocQaContext donutDocQa() { + return getRuleContext(DonutDocQaContext.class,0); + } + public ScalarAdapterContext scalarAdapter() { + return getRuleContext(ScalarAdapterContext.class,0); + } + public PhraseMatchPaperFilterContext phraseMatchPaperFilter() { + return getRuleContext(PhraseMatchPaperFilterContext.class,0); + } + public ZeroShotClassifierPaperFilterContext zeroShotClassifierPaperFilter() { + return getRuleContext(ZeroShotClassifierPaperFilterContext.class,0); + } + public DataExtractionContext dataExtraction() { + return getRuleContext(DataExtractionContext.class,0); + } + public AssetInfoContext assetInfo() { + return getRuleContext(AssetInfoContext.class,0); + } + public EpisodeOfCoverageContext episodeOfCoverage() { + return getRuleContext(EpisodeOfCoverageContext.class,0); + } + public UserRegistrationContext userRegistration() { + return getRuleContext(UserRegistrationContext.class,0); + } + public AuthTokenContext authToken() { + return getRuleContext(AuthTokenContext.class,0); + } + public EocJsonGeneratorContext eocJsonGenerator() { + return getRuleContext(EocJsonGeneratorContext.class,0); + } + public ZipContentListContext zipContentList() { + return getRuleContext(ZipContentListContext.class,0); + } + public HwDetectionContext hwDetection() { + return getRuleContext(HwDetectionContext.class,0); + } + public IntellimatchContext intellimatch() { + return getRuleContext(IntellimatchContext.class,0); + } + public CheckboxVqaContext checkboxVqa() { + return getRuleContext(CheckboxVqaContext.class,0); + } + public PixelClassifierUrgencyTriageContext pixelClassifierUrgencyTriage() { + return getRuleContext(PixelClassifierUrgencyTriageContext.class,0); + } + public QrExtractionContext qrExtraction() { + return getRuleContext(QrExtractionContext.class,0); + } + public PaperItemizerContext paperItemizer() { + return getRuleContext(PaperItemizerContext.class,0); + } + public NerAdapterContext nerAdapter() { + return getRuleContext(NerAdapterContext.class,0); + } + public CoproStartContext coproStart() { + return getRuleContext(CoproStartContext.class,0); + } + public CoproStopContext coproStop() { + return getRuleContext(CoproStopContext.class,0); + } + public OutboundDeliveryNotifyContext outboundDeliveryNotify() { + return getRuleContext(OutboundDeliveryNotifyContext.class,0); + } + public MasterdataComparisonContext masterdataComparison() { + return getRuleContext(MasterdataComparisonContext.class,0); + } + public ZipBatchContext zipBatch() { + return getRuleContext(ZipBatchContext.class,0); + } + public DrugMatchContext drugMatch() { + return getRuleContext(DrugMatchContext.class,0); + } + public UrgencyTriageModelContext urgencyTriageModel() { + return getRuleContext(UrgencyTriageModelContext.class,0); + } + public DonutImpiraQaContext donutImpiraQa() { + return getRuleContext(DonutImpiraQaContext.class,0); + } + public TrinityModelContext trinityModel() { + return getRuleContext(TrinityModelContext.class,0); + } + public TemplateDetectionContext templateDetection() { + return getRuleContext(TemplateDetectionContext.class,0); + } + public FileBucketingContext fileBucketing() { + return getRuleContext(FileBucketingContext.class,0); + } + public ActionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_action; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAction(this); + } + } + + public final ActionContext action() throws RecognitionException { + ActionContext _localctx = new ActionContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_action); + try { + enterOuterAlt(_localctx, 1); + { + setState(361); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { + case 1: + { + setState(262); + abort(); + } + break; + case 2: + { + setState(263); + assign(); + } + break; + case 3: + { + setState(264); + callProcess(); + } + break; + case 4: + { + setState(265); + forkProcess(); + } + break; + case 5: + { + setState(266); + spawnProcess(); + } + break; + case 6: + { + setState(267); + dogLeg(); + } + break; + case 7: + { + setState(268); + copyData(); + } + break; + case 8: + { + setState(269); + dropFile(); + } + break; + case 9: + { + setState(270); + loadCsv(); + } + break; + case 10: + { + setState(271); + restApi(); + } + break; + case 11: + { + setState(272); + transform(); + } + break; + case 12: + { + setState(273); + multitude(); + } + break; + case 13: + { + setState(274); + exportCsv(); + } + break; + case 14: + { + setState(275); + createDirectory(); + } + break; + case 15: + { + setState(276); + createFile(); + } + break; + case 16: + { + setState(277); + deleteFileDirectory(); + } + break; + case 17: + { + setState(278); + transferFileDirectory(); + } + break; + case 18: + { + setState(279); + createTAR(); + } + break; + case 19: + { + setState(280); + extractTAR(); + } + break; + case 20: + { + setState(281); + importCsvToDB(); + } + break; + case 21: + { + setState(282); + producerConsumerModel(); + } + break; + case 22: + { + setState(283); + producer(); + } + break; + case 23: + { + setState(284); + consumer(); + } + break; + case 24: + { + setState(285); + pushJson(); + } + break; + case 25: + { + setState(286); + mapJsonContext(); + } + break; + case 26: + { + setState(287); + sharePoint(); + } + break; + case 27: + { + setState(288); + downloadAsset(); + } + break; + case 28: + { + setState(289); + paperItemization(); + } + break; + case 29: + { + setState(290); + autoRotation(); + } + break; + case 30: + { + setState(291); + blankPageRemover(); + } + break; + case 31: + { + setState(292); + qrAttribution(); + } + break; + case 32: + { + setState(293); + fileMerger(); + } + break; + case 33: + { + setState(294); + checksum(); + } + break; + case 34: + { + setState(295); + fileSize(); + } + break; + case 35: + { + setState(296); + ravenVmException(); + } + break; + case 36: + { + setState(297); + uploadAsset(); + } + break; + case 37: + { + setState(298); + docnetAttribution(); + } + break; + case 38: + { + setState(299); + createZip(); + } + break; + case 39: + { + setState(300); + extractZip(); + } + break; + case 40: + { + setState(301); + sorGroupDetails(); + } + break; + case 41: + { + setState(302); + ftpsUpload(); + } + break; + case 42: + { + setState(303); + ftpsDownload(); + } + break; + case 43: + { + setState(304); + sftpConnector(); + } + break; + case 44: + { + setState(305); + zeroShotClassifier(); + } + break; + case 45: + { + setState(306); + loadExtractedData(); + } + break; + case 46: + { + setState(307); + absentKeyFilter(); + } + break; + case 47: + { + setState(308); + triageAttribution(); + } + break; + case 48: + { + setState(309); + loadExtractedData(); + } + break; + case 49: + { + setState(310); + absentKeyFilter(); + } + break; + case 50: + { + setState(311); + sorFilter(); + } + break; + case 51: + { + setState(312); + tqaFilter(); + } + break; + case 52: + { + setState(313); + jsonToFile(); + } + break; + case 53: + { + setState(314); + textFilter(); + } + break; + case 54: + { + setState(315); + entityFilter(); + } + break; + case 55: + { + setState(316); + dirPath(); + } + break; + case 56: + { + setState(317); + fileDetails(); + } + break; + case 57: + { + setState(318); + urgencyTriage(); + } + break; + case 58: + { + setState(319); + docnetResult(); + } + break; + case 59: + { + setState(320); + setContextValue(); + } + break; + case 60: + { + setState(321); + evalPatientName(); + } + break; + case 61: + { + setState(322); + evalMemberId(); + } + break; + case 62: + { + setState(323); + evalDateOfBirth(); + } + break; + case 63: + { + setState(324); + thresholdCheck(); + } + break; + case 64: + { + setState(325); + wordcount(); + } + break; + case 65: + { + setState(326); + charactercount(); + } + break; + case 66: + { + setState(327); + datevalidator(); + } + break; + case 67: + { + setState(328); + alphavalidator(); + } + break; + case 68: + { + setState(329); + alphanumericvalidator(); + } + break; + case 69: + { + setState(330); + numericvalidator(); + } + break; + case 70: + { + setState(331); + nervalidator(); + } + break; + case 71: + { + setState(332); + donutDocQa(); + } + break; + case 72: + { + setState(333); + scalarAdapter(); + } + break; + case 73: + { + setState(334); + phraseMatchPaperFilter(); + } + break; + case 74: + { + setState(335); + zeroShotClassifierPaperFilter(); + } + break; + case 75: + { + setState(336); + dataExtraction(); + } + break; + case 76: + { + setState(337); + assetInfo(); + } + break; + case 77: + { + setState(338); + episodeOfCoverage(); + } + break; + case 78: + { + setState(339); + userRegistration(); + } + break; + case 79: + { + setState(340); + authToken(); + } + break; + case 80: + { + setState(341); + eocJsonGenerator(); + } + break; + case 81: + { + setState(342); + zipContentList(); + } + break; + case 82: + { + setState(343); + hwDetection(); + } + break; + case 83: + { + setState(344); + intellimatch(); + } + break; + case 84: + { + setState(345); + checkboxVqa(); + } + break; + case 85: + { + setState(346); + pixelClassifierUrgencyTriage(); + } + break; + case 86: + { + setState(347); + qrExtraction(); + } + break; + case 87: + { + setState(348); + paperItemizer(); + } + break; + case 88: + { + setState(349); + nerAdapter(); + } + break; + case 89: + { + setState(350); + coproStart(); + } + break; + case 90: + { + setState(351); + coproStop(); + } + break; + case 91: + { + setState(352); + outboundDeliveryNotify(); + } + break; + case 92: + { + setState(353); + masterdataComparison(); + } + break; + case 93: + { + setState(354); + zipBatch(); + } + break; + case 94: + { + setState(355); + drugMatch(); + } + break; + case 95: + { + setState(356); + urgencyTriageModel(); + } + break; + case 96: + { + setState(357); + donutImpiraQa(); + } + break; + case 97: + { + setState(358); + trinityModel(); + } + break; + case 98: + { + setState(359); + templateDetection(); + } + break; + case 99: + { + setState(360); + fileBucketing(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MultitudeContext extends ParserRuleContext { + public Token name; + public Token on; + public ActionContext action; + public List actions = new ArrayList(); + public ExpressionContext condition; + public Token writeThreadCount; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List NON_ZERO_DIGIT() { return getTokens(RavenParser.NON_ZERO_DIGIT); } + public TerminalNode NON_ZERO_DIGIT(int i) { + return getToken(RavenParser.NON_ZERO_DIGIT, i); + } + public MultitudeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_multitude; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterMultitude(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitMultitude(this); + } + } + + public final MultitudeContext multitude() throws RecognitionException { + MultitudeContext _localctx = new MultitudeContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_multitude); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(363); + match(T__6); + setState(364); + match(T__7); + setState(365); + ((MultitudeContext)_localctx).name = match(STRING); + setState(370); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__8) { + { + { + setState(366); + match(T__8); + setState(367); + ((MultitudeContext)_localctx).on = match(STRING); + } + } + setState(372); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(373); + match(T__9); + setState(374); + match(T__1); + setState(378); + _errHandler.sync(this); + _la = _input.LA(1); + while (((_la) & ~0x3f) == 0 && ((1L << _la) & -7308776345040576384L) != 0 || (((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -8067511198364057019L) != 0 || (((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & 1320689532848996999L) != 0 || (((_la - 198)) & ~0x3f) == 0 && ((1L << (_la - 198)) & 459560676819608337L) != 0 || (((_la - 265)) & ~0x3f) == 0 && ((1L << (_la - 265)) & 11251500979367L) != 0) { + { + { + setState(375); + ((MultitudeContext)_localctx).action = action(); + ((MultitudeContext)_localctx).actions.add(((MultitudeContext)_localctx).action); + } + } + setState(380); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(381); + match(T__2); + setState(386); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(382); + match(T__10); + setState(383); + ((MultitudeContext)_localctx).condition = expression(); + } + } + setState(388); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(393); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__11) { + { + { + setState(389); + match(T__11); + setState(390); + ((MultitudeContext)_localctx).writeThreadCount = match(NON_ZERO_DIGIT); + } + } + setState(395); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CopyDataContext extends ParserRuleContext { + public Token name; + public Token source; + public Token to; + public Token value; + public ExpressionContext condition; + public Token writeThreadCount; + public Token fetchBatchSize; + public Token writeBatchSize; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List NON_ZERO_DIGIT() { return getTokens(RavenParser.NON_ZERO_DIGIT); } + public TerminalNode NON_ZERO_DIGIT(int i) { + return getToken(RavenParser.NON_ZERO_DIGIT, i); + } + public CopyDataContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_copyData; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCopyData(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCopyData(this); + } + } + + public final CopyDataContext copyData() throws RecognitionException { + CopyDataContext _localctx = new CopyDataContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_copyData); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + { + setState(396); + match(T__12); + setState(397); + match(T__7); + setState(398); + ((CopyDataContext)_localctx).name = match(STRING); + setState(399); + match(T__13); + setState(400); + ((CopyDataContext)_localctx).source = match(STRING); + setState(401); + match(T__14); + setState(402); + ((CopyDataContext)_localctx).to = match(STRING); + setState(403); + match(T__9); + setState(404); + match(T__1); + setState(405); + ((CopyDataContext)_localctx).value = match(STRING); + setState(406); + match(T__2); + setState(411); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(407); + match(T__10); + setState(408); + ((CopyDataContext)_localctx).condition = expression(); + } + } + setState(413); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(418); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__11) { + { + { + setState(414); + match(T__11); + setState(415); + ((CopyDataContext)_localctx).writeThreadCount = match(NON_ZERO_DIGIT); + } + } + setState(420); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(425); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__15) { + { + { + setState(421); + match(T__15); + setState(422); + ((CopyDataContext)_localctx).fetchBatchSize = match(NON_ZERO_DIGIT); + } + } + setState(427); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(432); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__16) { + { + { + setState(428); + match(T__16); + setState(429); + ((CopyDataContext)_localctx).writeBatchSize = match(NON_ZERO_DIGIT); + } + } + setState(434); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TransformContext extends ParserRuleContext { + public Token name; + public Token on; + public Token STRING; + public List value = new ArrayList(); + public ExpressionContext condition; + public ExpressionContext format; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TransformContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_transform; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterTransform(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitTransform(this); + } + } + + public final TransformContext transform() throws RecognitionException { + TransformContext _localctx = new TransformContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_transform); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(435); + match(T__17); + setState(436); + match(T__7); + setState(437); + ((TransformContext)_localctx).name = match(STRING); + setState(438); + match(T__8); + setState(439); + ((TransformContext)_localctx).on = match(STRING); + setState(440); + match(T__9); + setState(441); + match(T__1); + setState(442); + ((TransformContext)_localctx).STRING = match(STRING); + ((TransformContext)_localctx).value.add(((TransformContext)_localctx).STRING); + setState(443); + match(T__2); + setState(448); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(444); + match(T__10); + setState(445); + ((TransformContext)_localctx).condition = expression(); + } + } + setState(450); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(455); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__18) { + { + { + setState(451); + match(T__18); + setState(452); + ((TransformContext)_localctx).format = expression(); + } + } + setState(457); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LoadCsvContext extends ParserRuleContext { + public Token name; + public Token pid; + public Token source; + public Token to; + public Token delim; + public Token limit; + public Token value; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public LoadCsvContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_loadCsv; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterLoadCsv(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitLoadCsv(this); + } + } + + public final LoadCsvContext loadCsv() throws RecognitionException { + LoadCsvContext _localctx = new LoadCsvContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_loadCsv); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(458); + match(T__19); + setState(459); + match(T__7); + setState(460); + ((LoadCsvContext)_localctx).name = match(STRING); + setState(461); + match(T__20); + setState(462); + ((LoadCsvContext)_localctx).pid = match(STRING); + setState(463); + match(T__13); + setState(464); + ((LoadCsvContext)_localctx).source = match(STRING); + setState(465); + match(T__14); + setState(466); + ((LoadCsvContext)_localctx).to = match(STRING); + setState(467); + match(T__21); + setState(468); + ((LoadCsvContext)_localctx).delim = match(STRING); + setState(469); + match(T__22); + setState(470); + ((LoadCsvContext)_localctx).limit = match(STRING); + setState(471); + match(T__9); + setState(472); + match(T__1); + setState(473); + ((LoadCsvContext)_localctx).value = match(STRING); + setState(474); + match(T__2); + setState(479); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(475); + match(T__10); + setState(476); + ((LoadCsvContext)_localctx).condition = expression(); + } + } + setState(481); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AbortContext extends ParserRuleContext { + public Token name; + public Token value; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public AbortContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_abort; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAbort(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAbort(this); + } + } + + public final AbortContext abort() throws RecognitionException { + AbortContext _localctx = new AbortContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_abort); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(482); + match(T__23); + setState(483); + match(T__7); + setState(484); + ((AbortContext)_localctx).name = match(STRING); + setState(485); + match(T__1); + setState(486); + ((AbortContext)_localctx).value = match(STRING); + setState(487); + match(T__2); + setState(492); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(488); + match(T__10); + setState(489); + ((AbortContext)_localctx).condition = expression(); + } + } + setState(494); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CallProcessContext extends ParserRuleContext { + public Token name; + public Token target; + public Token source; + public Token datasource; + public Token value; + public ExpressionContext condition; + public Token forkBatchSize; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public CallProcessContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_callProcess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCallProcess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCallProcess(this); + } + } + + public final CallProcessContext callProcess() throws RecognitionException { + CallProcessContext _localctx = new CallProcessContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_callProcess); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(495); + match(T__24); + setState(496); + match(T__7); + setState(497); + ((CallProcessContext)_localctx).name = match(STRING); + setState(498); + match(T__25); + setState(499); + ((CallProcessContext)_localctx).target = match(STRING); + setState(500); + match(T__26); + setState(501); + ((CallProcessContext)_localctx).source = match(STRING); + setState(502); + match(T__9); + setState(503); + ((CallProcessContext)_localctx).datasource = match(STRING); + setState(504); + match(T__27); + setState(505); + match(T__1); + setState(506); + ((CallProcessContext)_localctx).value = match(STRING); + setState(507); + match(T__2); + setState(512); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(508); + match(T__10); + setState(509); + ((CallProcessContext)_localctx).condition = expression(); + } + } + setState(514); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(519); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__28) { + { + { + setState(515); + match(T__28); + setState(516); + ((CallProcessContext)_localctx).forkBatchSize = match(STRING); + } + } + setState(521); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ForkProcessContext extends ParserRuleContext { + public Token name; + public Token target; + public Token source; + public Token datasource; + public Token value; + public Token forkBatchSize; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ForkProcessContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_forkProcess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterForkProcess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitForkProcess(this); + } + } + + public final ForkProcessContext forkProcess() throws RecognitionException { + ForkProcessContext _localctx = new ForkProcessContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_forkProcess); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(522); + match(T__29); + setState(523); + match(T__7); + setState(524); + ((ForkProcessContext)_localctx).name = match(STRING); + setState(525); + match(T__25); + setState(526); + ((ForkProcessContext)_localctx).target = match(STRING); + setState(527); + match(T__26); + setState(528); + ((ForkProcessContext)_localctx).source = match(STRING); + setState(529); + match(T__9); + setState(530); + ((ForkProcessContext)_localctx).datasource = match(STRING); + setState(531); + match(T__27); + setState(532); + match(T__1); + setState(533); + ((ForkProcessContext)_localctx).value = match(STRING); + setState(534); + match(T__2); + setState(539); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__30) { + { + { + setState(535); + match(T__30); + setState(536); + ((ForkProcessContext)_localctx).forkBatchSize = match(STRING); + } + } + setState(541); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(546); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(542); + match(T__10); + setState(543); + ((ForkProcessContext)_localctx).condition = expression(); + } + } + setState(548); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SpawnProcessContext extends ParserRuleContext { + public Token name; + public Token target; + public Token source; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public SpawnProcessContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_spawnProcess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterSpawnProcess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitSpawnProcess(this); + } + } + + public final SpawnProcessContext spawnProcess() throws RecognitionException { + SpawnProcessContext _localctx = new SpawnProcessContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_spawnProcess); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(549); + match(T__31); + setState(550); + match(T__7); + setState(551); + ((SpawnProcessContext)_localctx).name = match(STRING); + setState(552); + match(T__25); + setState(553); + ((SpawnProcessContext)_localctx).target = match(STRING); + setState(554); + match(T__26); + setState(555); + ((SpawnProcessContext)_localctx).source = match(STRING); + setState(560); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(556); + match(T__10); + setState(557); + ((SpawnProcessContext)_localctx).condition = expression(); + } + } + setState(562); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DogLegContext extends ParserRuleContext { + public Token name; + public Token inheritContext; + public StartProcessContext startProcess; + public List processList = new ArrayList(); + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public StartProcessContext startProcess() { + return getRuleContext(StartProcessContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DogLegContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dogLeg; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDogLeg(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDogLeg(this); + } + } + + public final DogLegContext dogLeg() throws RecognitionException { + DogLegContext _localctx = new DogLegContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_dogLeg); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(563); + match(T__32); + setState(564); + match(T__7); + setState(565); + ((DogLegContext)_localctx).name = match(STRING); + setState(566); + match(T__33); + setState(567); + ((DogLegContext)_localctx).inheritContext = match(STRING); + setState(568); + match(T__9); + setState(569); + match(T__1); + setState(570); + ((DogLegContext)_localctx).startProcess = startProcess(); + ((DogLegContext)_localctx).processList.add(((DogLegContext)_localctx).startProcess); + setState(571); + match(T__2); + setState(576); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(572); + match(T__10); + setState(573); + ((DogLegContext)_localctx).condition = expression(); + } + } + setState(578); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StartProcessContext extends ParserRuleContext { + public Token name; + public Token target; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public StartProcessContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_startProcess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterStartProcess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitStartProcess(this); + } + } + + public final StartProcessContext startProcess() throws RecognitionException { + StartProcessContext _localctx = new StartProcessContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_startProcess); + try { + enterOuterAlt(_localctx, 1); + { + setState(579); + match(T__34); + setState(580); + ((StartProcessContext)_localctx).name = match(STRING); + setState(581); + match(T__35); + setState(582); + ((StartProcessContext)_localctx).target = match(STRING); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AssignContext extends ParserRuleContext { + public Token name; + public Token source; + public Token value; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public AssignContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assign; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAssign(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAssign(this); + } + } + + public final AssignContext assign() throws RecognitionException { + AssignContext _localctx = new AssignContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_assign); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(584); + match(T__36); + setState(585); + match(T__7); + setState(586); + ((AssignContext)_localctx).name = match(STRING); + setState(587); + match(T__37); + setState(588); + ((AssignContext)_localctx).source = match(STRING); + setState(589); + match(T__9); + setState(590); + match(T__1); + setState(591); + ((AssignContext)_localctx).value = match(STRING); + setState(592); + match(T__2); + setState(597); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(593); + match(T__10); + setState(594); + ((AssignContext)_localctx).condition = expression(); + } + } + setState(599); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DropFileContext extends ParserRuleContext { + public Token name; + public Token target; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DropFileContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dropFile; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDropFile(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDropFile(this); + } + } + + public final DropFileContext dropFile() throws RecognitionException { + DropFileContext _localctx = new DropFileContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_dropFile); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(600); + match(T__38); + setState(601); + match(T__7); + setState(602); + ((DropFileContext)_localctx).name = match(STRING); + setState(603); + match(T__39); + setState(604); + ((DropFileContext)_localctx).target = match(STRING); + setState(609); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(605); + match(T__10); + setState(606); + ((DropFileContext)_localctx).condition = expression(); + } + } + setState(611); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RestApiContext extends ParserRuleContext { + public Token name; + public Token source; + public Token url; + public Token method; + public JsonContext headers; + public JsonContext params; + public Token bodyType; + public RestPartContext restPart; + public List value = new ArrayList(); + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List json() { + return getRuleContexts(JsonContext.class); + } + public JsonContext json(int i) { + return getRuleContext(JsonContext.class,i); + } + public List restPart() { + return getRuleContexts(RestPartContext.class); + } + public RestPartContext restPart(int i) { + return getRuleContext(RestPartContext.class,i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public RestApiContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_restApi; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterRestApi(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitRestApi(this); + } + } + + public final RestApiContext restApi() throws RecognitionException { + RestApiContext _localctx = new RestApiContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_restApi); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(612); + match(T__40); + setState(613); + match(T__7); + setState(614); + ((RestApiContext)_localctx).name = match(STRING); + setState(615); + match(T__37); + setState(616); + ((RestApiContext)_localctx).source = match(STRING); + setState(617); + match(T__9); + setState(618); + match(T__41); + setState(619); + ((RestApiContext)_localctx).url = match(STRING); + setState(620); + match(T__42); + setState(621); + ((RestApiContext)_localctx).method = match(STRING); + setState(626); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__43) { + { + { + setState(622); + match(T__43); + setState(623); + ((RestApiContext)_localctx).headers = json(); + } + } + setState(628); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(633); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__44) { + { + { + setState(629); + match(T__44); + setState(630); + ((RestApiContext)_localctx).params = json(); + } + } + setState(635); + _errHandler.sync(this); + _la = _input.LA(1); + } + { + setState(636); + match(T__45); + setState(637); + match(T__1); + setState(638); + ((RestApiContext)_localctx).bodyType = match(STRING); + setState(639); + match(T__2); + } + setState(641); + match(T__1); + setState(645); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__46) { + { + { + setState(642); + ((RestApiContext)_localctx).restPart = restPart(); + ((RestApiContext)_localctx).value.add(((RestApiContext)_localctx).restPart); + } + } + setState(647); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(648); + match(T__2); + setState(653); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(649); + match(T__10); + setState(650); + ((RestApiContext)_localctx).condition = expression(); + } + } + setState(655); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RestPartContext extends ParserRuleContext { + public Token partName; + public Token partData; + public Token type; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public RestPartContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_restPart; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterRestPart(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitRestPart(this); + } + } + + public final RestPartContext restPart() throws RecognitionException { + RestPartContext _localctx = new RestPartContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_restPart); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(656); + match(T__46); + setState(657); + match(T__7); + setState(658); + ((RestPartContext)_localctx).partName = match(STRING); + setState(659); + match(T__21); + setState(660); + ((RestPartContext)_localctx).partData = match(STRING); + setState(665); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__47) { + { + { + setState(661); + match(T__47); + setState(662); + ((RestPartContext)_localctx).type = match(STRING); + } + } + setState(667); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(668); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExportCsvContext extends ParserRuleContext { + public Token name; + public Token source; + public Token executionSource; + public Token stmt; + public Token targetLocation; + public ExpressionContext condition; + public Token writeThreadCount; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ExportCsvContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exportCsv; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterExportCsv(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitExportCsv(this); + } + } + + public final ExportCsvContext exportCsv() throws RecognitionException { + ExportCsvContext _localctx = new ExportCsvContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_exportCsv); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(670); + match(T__48); + setState(671); + match(T__7); + setState(672); + ((ExportCsvContext)_localctx).name = match(STRING); + setState(673); + match(T__37); + setState(674); + ((ExportCsvContext)_localctx).source = match(STRING); + setState(675); + match(T__49); + setState(676); + ((ExportCsvContext)_localctx).executionSource = match(STRING); + setState(681); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__9) { + { + { + setState(677); + match(T__9); + setState(678); + ((ExportCsvContext)_localctx).stmt = match(STRING); + } + } + setState(683); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(684); + match(T__50); + setState(685); + ((ExportCsvContext)_localctx).targetLocation = match(STRING); + setState(686); + match(T__9); + setState(687); + match(T__1); + setState(688); + match(T__2); + setState(693); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(689); + match(T__10); + setState(690); + ((ExportCsvContext)_localctx).condition = expression(); + } + } + setState(695); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(700); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__11) { + { + { + setState(696); + match(T__11); + setState(697); + ((ExportCsvContext)_localctx).writeThreadCount = match(STRING); + } + } + setState(702); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImportCsvToDBContext extends ParserRuleContext { + public Token name; + public ResourceContext target; + public Token tableName; + public Token STRING; + public List value = new ArrayList(); + public ExpressionContext condition; + public Token writeThreadCount; + public Token batchSize; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public ResourceContext resource() { + return getRuleContext(ResourceContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ImportCsvToDBContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_importCsvToDB; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterImportCsvToDB(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitImportCsvToDB(this); + } + } + + public final ImportCsvToDBContext importCsvToDB() throws RecognitionException { + ImportCsvToDBContext _localctx = new ImportCsvToDBContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_importCsvToDB); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(703); + match(T__51); + setState(704); + match(T__7); + setState(705); + ((ImportCsvToDBContext)_localctx).name = match(STRING); + setState(706); + match(T__52); + setState(707); + ((ImportCsvToDBContext)_localctx).target = resource(); + setState(708); + match(T__8); + setState(709); + ((ImportCsvToDBContext)_localctx).tableName = match(STRING); + setState(710); + match(T__9); + setState(711); + match(T__1); + setState(712); + ((ImportCsvToDBContext)_localctx).STRING = match(STRING); + ((ImportCsvToDBContext)_localctx).value.add(((ImportCsvToDBContext)_localctx).STRING); + setState(713); + match(T__2); + setState(718); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(714); + match(T__10); + setState(715); + ((ImportCsvToDBContext)_localctx).condition = expression(); + } + } + setState(720); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(725); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__11) { + { + { + setState(721); + match(T__11); + setState(722); + ((ImportCsvToDBContext)_localctx).writeThreadCount = match(STRING); + } + } + setState(727); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(732); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__53) { + { + { + setState(728); + match(T__53); + setState(729); + ((ImportCsvToDBContext)_localctx).batchSize = match(STRING); + } + } + setState(734); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExtractTARContext extends ParserRuleContext { + public Token name; + public Token source; + public Token destination; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ExtractTARContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_extractTAR; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterExtractTAR(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitExtractTAR(this); + } + } + + public final ExtractTARContext extractTAR() throws RecognitionException { + ExtractTARContext _localctx = new ExtractTARContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_extractTAR); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(735); + match(T__54); + setState(736); + match(T__7); + setState(737); + ((ExtractTARContext)_localctx).name = match(STRING); + setState(738); + match(T__13); + setState(739); + ((ExtractTARContext)_localctx).source = match(STRING); + setState(740); + match(T__55); + setState(741); + ((ExtractTARContext)_localctx).destination = match(STRING); + setState(742); + match(T__9); + setState(743); + match(T__1); + setState(744); + match(T__2); + setState(749); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(745); + match(T__10); + setState(746); + ((ExtractTARContext)_localctx).condition = expression(); + } + } + setState(751); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CreateTARContext extends ParserRuleContext { + public Token name; + public Token source; + public Token destination; + public Token extension; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public CreateTARContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_createTAR; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCreateTAR(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCreateTAR(this); + } + } + + public final CreateTARContext createTAR() throws RecognitionException { + CreateTARContext _localctx = new CreateTARContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_createTAR); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(752); + match(T__56); + setState(753); + match(T__7); + setState(754); + ((CreateTARContext)_localctx).name = match(STRING); + setState(755); + match(T__13); + setState(756); + ((CreateTARContext)_localctx).source = match(STRING); + setState(757); + match(T__55); + setState(758); + ((CreateTARContext)_localctx).destination = match(STRING); + setState(759); + match(T__57); + setState(760); + ((CreateTARContext)_localctx).extension = match(STRING); + setState(761); + match(T__9); + setState(762); + match(T__1); + setState(763); + match(T__2); + setState(768); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(764); + match(T__10); + setState(765); + ((CreateTARContext)_localctx).condition = expression(); + } + } + setState(770); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CreateDirectoryContext extends ParserRuleContext { + public Token name; + public Token STRING; + public List directoryPath = new ArrayList(); + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public CreateDirectoryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_createDirectory; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCreateDirectory(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCreateDirectory(this); + } + } + + public final CreateDirectoryContext createDirectory() throws RecognitionException { + CreateDirectoryContext _localctx = new CreateDirectoryContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_createDirectory); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(771); + match(T__58); + setState(772); + match(T__7); + setState(773); + ((CreateDirectoryContext)_localctx).name = match(STRING); + setState(774); + match(T__9); + setState(775); + match(T__1); + setState(776); + ((CreateDirectoryContext)_localctx).STRING = match(STRING); + ((CreateDirectoryContext)_localctx).directoryPath.add(((CreateDirectoryContext)_localctx).STRING); + setState(777); + match(T__2); + setState(782); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(778); + match(T__10); + setState(779); + ((CreateDirectoryContext)_localctx).condition = expression(); + } + } + setState(784); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CreateFileContext extends ParserRuleContext { + public Token name; + public Token location; + public Token fileName; + public Token extension; + public Token value; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public CreateFileContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_createFile; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCreateFile(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCreateFile(this); + } + } + + public final CreateFileContext createFile() throws RecognitionException { + CreateFileContext _localctx = new CreateFileContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_createFile); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(785); + match(T__59); + setState(786); + match(T__7); + setState(787); + ((CreateFileContext)_localctx).name = match(STRING); + setState(788); + match(T__60); + setState(789); + ((CreateFileContext)_localctx).location = match(STRING); + setState(790); + match(T__61); + setState(791); + ((CreateFileContext)_localctx).fileName = match(STRING); + setState(792); + match(T__57); + setState(793); + ((CreateFileContext)_localctx).extension = match(STRING); + setState(794); + match(T__9); + setState(795); + match(T__1); + setState(796); + ((CreateFileContext)_localctx).value = match(STRING); + setState(797); + match(T__2); + setState(802); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(798); + match(T__10); + setState(799); + ((CreateFileContext)_localctx).condition = expression(); + } + } + setState(804); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DeleteFileDirectoryContext extends ParserRuleContext { + public Token name; + public Token STRING; + public List path = new ArrayList(); + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DeleteFileDirectoryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_deleteFileDirectory; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDeleteFileDirectory(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDeleteFileDirectory(this); + } + } + + public final DeleteFileDirectoryContext deleteFileDirectory() throws RecognitionException { + DeleteFileDirectoryContext _localctx = new DeleteFileDirectoryContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_deleteFileDirectory); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(805); + match(T__62); + setState(806); + match(T__7); + setState(807); + ((DeleteFileDirectoryContext)_localctx).name = match(STRING); + setState(808); + match(T__9); + setState(809); + match(T__1); + setState(810); + ((DeleteFileDirectoryContext)_localctx).STRING = match(STRING); + ((DeleteFileDirectoryContext)_localctx).path.add(((DeleteFileDirectoryContext)_localctx).STRING); + setState(811); + match(T__2); + setState(816); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(812); + match(T__10); + setState(813); + ((DeleteFileDirectoryContext)_localctx).condition = expression(); + } + } + setState(818); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TransferFileDirectoryContext extends ParserRuleContext { + public Token name; + public Token source; + public Token to; + public Token operation; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TransferFileDirectoryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_transferFileDirectory; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterTransferFileDirectory(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitTransferFileDirectory(this); + } + } + + public final TransferFileDirectoryContext transferFileDirectory() throws RecognitionException { + TransferFileDirectoryContext _localctx = new TransferFileDirectoryContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_transferFileDirectory); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(819); + match(T__63); + setState(820); + match(T__7); + setState(821); + ((TransferFileDirectoryContext)_localctx).name = match(STRING); + setState(822); + match(T__13); + setState(823); + ((TransferFileDirectoryContext)_localctx).source = match(STRING); + setState(824); + match(T__14); + setState(825); + ((TransferFileDirectoryContext)_localctx).to = match(STRING); + setState(826); + match(T__64); + setState(827); + ((TransferFileDirectoryContext)_localctx).operation = match(STRING); + setState(828); + match(T__9); + setState(829); + match(T__1); + setState(830); + match(T__2); + setState(835); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(831); + match(T__10); + setState(832); + ((TransferFileDirectoryContext)_localctx).condition = expression(); + } + } + setState(837); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ProducerConsumerModelContext extends ParserRuleContext { + public Token name; + public ResourceContext source; + public ProducerContext producer; + public List produce = new ArrayList(); + public Token produceThreadCount; + public ConsumerContext consumer; + public List consume = new ArrayList(); + public Token consumeThreadCount; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public ResourceContext resource() { + return getRuleContext(ResourceContext.class,0); + } + public ProducerContext producer() { + return getRuleContext(ProducerContext.class,0); + } + public ConsumerContext consumer() { + return getRuleContext(ConsumerContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ProducerConsumerModelContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_producerConsumerModel; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterProducerConsumerModel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitProducerConsumerModel(this); + } + } + + public final ProducerConsumerModelContext producerConsumerModel() throws RecognitionException { + ProducerConsumerModelContext _localctx = new ProducerConsumerModelContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_producerConsumerModel); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(838); + match(T__65); + setState(839); + match(T__7); + setState(840); + ((ProducerConsumerModelContext)_localctx).name = match(STRING); + setState(841); + match(T__66); + setState(842); + ((ProducerConsumerModelContext)_localctx).source = resource(); + setState(843); + match(T__67); + setState(844); + match(T__1); + setState(845); + ((ProducerConsumerModelContext)_localctx).producer = producer(); + ((ProducerConsumerModelContext)_localctx).produce.add(((ProducerConsumerModelContext)_localctx).producer); + setState(846); + match(T__2); + setState(851); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__11) { + { + { + setState(847); + match(T__11); + setState(848); + ((ProducerConsumerModelContext)_localctx).produceThreadCount = match(STRING); + } + } + setState(853); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(854); + match(T__68); + setState(855); + match(T__1); + setState(856); + ((ProducerConsumerModelContext)_localctx).consumer = consumer(); + ((ProducerConsumerModelContext)_localctx).consume.add(((ProducerConsumerModelContext)_localctx).consumer); + setState(857); + match(T__2); + setState(862); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__11) { + { + { + setState(858); + match(T__11); + setState(859); + ((ProducerConsumerModelContext)_localctx).consumeThreadCount = match(STRING); + } + } + setState(864); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(869); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(865); + match(T__10); + setState(866); + ((ProducerConsumerModelContext)_localctx).condition = expression(); + } + } + setState(871); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ProducerContext extends ParserRuleContext { + public Token name; + public Token push; + public ResourceContext source; + public Token stmt; + public ActionContext action; + public List actions = new ArrayList(); + public ExpressionContext condition; + public Token threadCount; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List resource() { + return getRuleContexts(ResourceContext.class); + } + public ResourceContext resource(int i) { + return getRuleContext(ResourceContext.class,i); + } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ProducerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_producer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterProducer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitProducer(this); + } + } + + public final ProducerContext producer() throws RecognitionException { + ProducerContext _localctx = new ProducerContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_producer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(872); + match(T__69); + setState(873); + match(T__7); + setState(874); + ((ProducerContext)_localctx).name = match(STRING); + setState(879); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__70) { + { + { + setState(875); + match(T__70); + setState(876); + ((ProducerContext)_localctx).push = match(STRING); + } + } + setState(881); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(886); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__66) { + { + { + setState(882); + match(T__66); + setState(883); + ((ProducerContext)_localctx).source = resource(); + } + } + setState(888); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(889); + match(T__27); + setState(890); + match(T__1); + setState(891); + ((ProducerContext)_localctx).stmt = match(STRING); + setState(892); + match(T__2); + setState(893); + match(T__71); + setState(894); + match(T__1); + setState(898); + _errHandler.sync(this); + _la = _input.LA(1); + while (((_la) & ~0x3f) == 0 && ((1L << _la) & -7308776345040576384L) != 0 || (((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -8067511198364057019L) != 0 || (((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & 1320689532848996999L) != 0 || (((_la - 198)) & ~0x3f) == 0 && ((1L << (_la - 198)) & 459560676819608337L) != 0 || (((_la - 265)) & ~0x3f) == 0 && ((1L << (_la - 265)) & 11251500979367L) != 0) { + { + { + setState(895); + ((ProducerContext)_localctx).action = action(); + ((ProducerContext)_localctx).actions.add(((ProducerContext)_localctx).action); + } + } + setState(900); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(901); + match(T__2); + setState(906); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(902); + match(T__10); + setState(903); + ((ProducerContext)_localctx).condition = expression(); + } + } + setState(908); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(913); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__11) { + { + { + setState(909); + match(T__11); + setState(910); + ((ProducerContext)_localctx).threadCount = match(STRING); + } + } + setState(915); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConsumerContext extends ParserRuleContext { + public Token name; + public Token event; + public ResourceContext source; + public Token pop; + public Token limit; + public ActionContext action; + public List actions = new ArrayList(); + public ExpressionContext condition; + public Token threadCount; + public ExpressionContext standalone; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List resource() { + return getRuleContexts(ResourceContext.class); + } + public ResourceContext resource(int i) { + return getRuleContext(ResourceContext.class,i); + } + public List action() { + return getRuleContexts(ActionContext.class); + } + public ActionContext action(int i) { + return getRuleContext(ActionContext.class,i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ConsumerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_consumer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterConsumer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitConsumer(this); + } + } + + public final ConsumerContext consumer() throws RecognitionException { + ConsumerContext _localctx = new ConsumerContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_consumer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(916); + match(T__72); + setState(917); + match(T__7); + setState(918); + ((ConsumerContext)_localctx).name = match(STRING); + setState(925); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__73) { + { + { + setState(919); + match(T__73); + setState(920); + ((ConsumerContext)_localctx).event = match(STRING); + setState(921); + match(T__66); + setState(922); + ((ConsumerContext)_localctx).source = resource(); + } + } + setState(927); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(934); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__74) { + { + { + setState(928); + match(T__74); + setState(929); + ((ConsumerContext)_localctx).pop = match(STRING); + setState(930); + match(T__75); + setState(931); + ((ConsumerContext)_localctx).limit = match(STRING); + } + } + setState(936); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(937); + match(T__71); + setState(938); + match(T__1); + setState(942); + _errHandler.sync(this); + _la = _input.LA(1); + while (((_la) & ~0x3f) == 0 && ((1L << _la) & -7308776345040576384L) != 0 || (((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -8067511198364057019L) != 0 || (((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & 1320689532848996999L) != 0 || (((_la - 198)) & ~0x3f) == 0 && ((1L << (_la - 198)) & 459560676819608337L) != 0 || (((_la - 265)) & ~0x3f) == 0 && ((1L << (_la - 265)) & 11251500979367L) != 0) { + { + { + setState(939); + ((ConsumerContext)_localctx).action = action(); + ((ConsumerContext)_localctx).actions.add(((ConsumerContext)_localctx).action); + } + } + setState(944); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(945); + match(T__2); + setState(950); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(946); + match(T__10); + setState(947); + ((ConsumerContext)_localctx).condition = expression(); + } + } + setState(952); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(957); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__11) { + { + { + setState(953); + match(T__11); + setState(954); + ((ConsumerContext)_localctx).threadCount = match(STRING); + } + } + setState(959); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(964); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__76) { + { + { + setState(960); + match(T__76); + setState(961); + ((ConsumerContext)_localctx).standalone = expression(); + } + } + setState(966); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PushJsonContext extends ParserRuleContext { + public Token name; + public Token key; + public JsonContext value; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public JsonContext json() { + return getRuleContext(JsonContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public PushJsonContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pushJson; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterPushJson(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitPushJson(this); + } + } + + public final PushJsonContext pushJson() throws RecognitionException { + PushJsonContext _localctx = new PushJsonContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_pushJson); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(967); + match(T__77); + setState(968); + match(T__7); + setState(969); + ((PushJsonContext)_localctx).name = match(STRING); + setState(970); + match(T__78); + setState(971); + ((PushJsonContext)_localctx).key = match(STRING); + setState(972); + match(T__79); + setState(973); + match(T__1); + setState(974); + ((PushJsonContext)_localctx).value = json(); + setState(975); + match(T__2); + setState(980); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(976); + match(T__10); + setState(977); + ((PushJsonContext)_localctx).condition = expression(); + } + } + setState(982); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MapJsonContextContext extends ParserRuleContext { + public Token name; + public Token value; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public MapJsonContextContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_mapJsonContext; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterMapJsonContext(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitMapJsonContext(this); + } + } + + public final MapJsonContextContext mapJsonContext() throws RecognitionException { + MapJsonContextContext _localctx = new MapJsonContextContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_mapJsonContext); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(983); + match(T__80); + setState(984); + match(T__7); + setState(985); + ((MapJsonContextContext)_localctx).name = match(STRING); + setState(986); + match(T__9); + setState(987); + match(T__1); + setState(988); + ((MapJsonContextContext)_localctx).value = match(STRING); + setState(989); + match(T__2); + setState(994); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(990); + match(T__10); + setState(991); + ((MapJsonContextContext)_localctx).condition = expression(); + } + } + setState(996); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SharePointContext extends ParserRuleContext { + public Token name; + public Token shpClientId; + public Token shpTenantId; + public Token shpClientSecret; + public Token orgName; + public Token actionType; + public Token siteUrl; + public Token sourceRelativePath; + public Token fileName; + public Token targetRelativePath; + public Token value; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public SharePointContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sharePoint; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterSharePoint(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitSharePoint(this); + } + } + + public final SharePointContext sharePoint() throws RecognitionException { + SharePointContext _localctx = new SharePointContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_sharePoint); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(997); + match(T__81); + setState(998); + match(T__7); + setState(999); + ((SharePointContext)_localctx).name = match(STRING); + setState(1000); + match(T__82); + setState(1001); + ((SharePointContext)_localctx).shpClientId = match(STRING); + setState(1002); + match(T__83); + setState(1003); + ((SharePointContext)_localctx).shpTenantId = match(STRING); + setState(1004); + match(T__84); + setState(1005); + ((SharePointContext)_localctx).shpClientSecret = match(STRING); + setState(1006); + match(T__85); + setState(1007); + ((SharePointContext)_localctx).orgName = match(STRING); + setState(1008); + match(T__86); + setState(1009); + ((SharePointContext)_localctx).actionType = match(STRING); + setState(1010); + match(T__87); + setState(1011); + ((SharePointContext)_localctx).siteUrl = match(STRING); + setState(1012); + match(T__88); + setState(1013); + ((SharePointContext)_localctx).sourceRelativePath = match(STRING); + setState(1014); + match(T__89); + setState(1015); + ((SharePointContext)_localctx).fileName = match(STRING); + setState(1016); + match(T__90); + setState(1017); + ((SharePointContext)_localctx).targetRelativePath = match(STRING); + setState(1018); + match(T__9); + setState(1019); + match(T__1); + setState(1020); + ((SharePointContext)_localctx).value = match(STRING); + setState(1021); + match(T__2); + setState(1026); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1022); + match(T__10); + setState(1023); + ((SharePointContext)_localctx).condition = expression(); + } + } + setState(1028); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExpressionContext extends ParserRuleContext { + public Token lhs; + public Token operator; + public Token rhs; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public TerminalNode Operator() { return getToken(RavenParser.Operator, 0); } + public ExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitExpression(this); + } + } + + public final ExpressionContext expression() throws RecognitionException { + ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(1029); + match(T__91); + { + setState(1030); + ((ExpressionContext)_localctx).lhs = match(STRING); + setState(1031); + ((ExpressionContext)_localctx).operator = match(Operator); + setState(1032); + ((ExpressionContext)_localctx).rhs = match(STRING); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LogContext extends ParserRuleContext { + public Token level; + public Token message; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public LogContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_log; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterLog(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitLog(this); + } + } + + public final LogContext log() throws RecognitionException { + LogContext _localctx = new LogContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_log); + try { + enterOuterAlt(_localctx, 1); + { + setState(1034); + match(T__92); + setState(1035); + match(T__7); + setState(1036); + match(T__93); + setState(1037); + ((LogContext)_localctx).level = match(STRING); + setState(1038); + match(T__21); + setState(1039); + match(T__94); + setState(1040); + match(T__1); + setState(1041); + ((LogContext)_localctx).message = match(STRING); + setState(1042); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RavenVmExceptionContext extends ParserRuleContext { + public Token name; + public Token message; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public RavenVmExceptionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ravenVmException; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterRavenVmException(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitRavenVmException(this); + } + } + + public final RavenVmExceptionContext ravenVmException() throws RecognitionException { + RavenVmExceptionContext _localctx = new RavenVmExceptionContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_ravenVmException); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1044); + match(T__95); + setState(1045); + match(T__7); + setState(1046); + ((RavenVmExceptionContext)_localctx).name = match(STRING); + setState(1047); + match(T__9); + setState(1048); + match(T__1); + setState(1049); + ((RavenVmExceptionContext)_localctx).message = match(STRING); + setState(1050); + match(T__2); + setState(1055); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1051); + match(T__10); + setState(1052); + ((RavenVmExceptionContext)_localctx).condition = expression(); + } + } + setState(1057); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ChecksumContext extends ParserRuleContext { + public Token name; + public Token filePath; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ChecksumContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_checksum; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterChecksum(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitChecksum(this); + } + } + + public final ChecksumContext checksum() throws RecognitionException { + ChecksumContext _localctx = new ChecksumContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_checksum); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1058); + match(T__96); + setState(1059); + match(T__7); + setState(1060); + ((ChecksumContext)_localctx).name = match(STRING); + setState(1061); + match(T__9); + setState(1062); + match(T__1); + setState(1063); + ((ChecksumContext)_localctx).filePath = match(STRING); + setState(1064); + match(T__2); + setState(1069); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1065); + match(T__10); + setState(1066); + ((ChecksumContext)_localctx).condition = expression(); + } + } + setState(1071); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FileSizeContext extends ParserRuleContext { + public Token name; + public Token filePath; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public FileSizeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fileSize; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterFileSize(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitFileSize(this); + } + } + + public final FileSizeContext fileSize() throws RecognitionException { + FileSizeContext _localctx = new FileSizeContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_fileSize); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1072); + match(T__97); + setState(1073); + match(T__7); + setState(1074); + ((FileSizeContext)_localctx).name = match(STRING); + setState(1075); + match(T__9); + setState(1076); + match(T__1); + setState(1077); + ((FileSizeContext)_localctx).filePath = match(STRING); + setState(1078); + match(T__2); + setState(1083); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1079); + match(T__10); + setState(1080); + ((FileSizeContext)_localctx).condition = expression(); + } + } + setState(1085); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DownloadAssetContext extends ParserRuleContext { + public Token name; + public Token url; + public Token location; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DownloadAssetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_downloadAsset; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDownloadAsset(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDownloadAsset(this); + } + } + + public final DownloadAssetContext downloadAsset() throws RecognitionException { + DownloadAssetContext _localctx = new DownloadAssetContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_downloadAsset); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1086); + match(T__98); + setState(1087); + match(T__7); + setState(1088); + ((DownloadAssetContext)_localctx).name = match(STRING); + setState(1089); + match(T__99); + setState(1090); + ((DownloadAssetContext)_localctx).url = match(STRING); + setState(1091); + match(T__100); + setState(1092); + ((DownloadAssetContext)_localctx).location = match(STRING); + setState(1093); + match(T__9); + setState(1094); + match(T__1); + setState(1095); + match(T__2); + setState(1100); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1096); + match(T__10); + setState(1097); + ((DownloadAssetContext)_localctx).condition = expression(); + } + } + setState(1102); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PaperItemizationContext extends ParserRuleContext { + public Token name; + public Token filePath; + public Token outputDir; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public PaperItemizationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_paperItemization; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterPaperItemization(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitPaperItemization(this); + } + } + + public final PaperItemizationContext paperItemization() throws RecognitionException { + PaperItemizationContext _localctx = new PaperItemizationContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_paperItemization); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1103); + match(T__101); + setState(1104); + match(T__7); + setState(1105); + ((PaperItemizationContext)_localctx).name = match(STRING); + setState(1106); + match(T__102); + setState(1107); + ((PaperItemizationContext)_localctx).filePath = match(STRING); + setState(1108); + match(T__9); + setState(1109); + ((PaperItemizationContext)_localctx).outputDir = match(STRING); + setState(1110); + match(T__9); + setState(1111); + match(T__1); + setState(1112); + match(T__2); + setState(1117); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1113); + match(T__10); + setState(1114); + ((PaperItemizationContext)_localctx).condition = expression(); + } + } + setState(1119); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AutoRotationContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token processId; + public Token resourceConn; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public AutoRotationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_autoRotation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAutoRotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAutoRotation(this); + } + } + + public final AutoRotationContext autoRotation() throws RecognitionException { + AutoRotationContext _localctx = new AutoRotationContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_autoRotation); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1120); + match(T__103); + setState(1121); + match(T__7); + setState(1122); + ((AutoRotationContext)_localctx).name = match(STRING); + setState(1123); + match(T__104); + setState(1124); + ((AutoRotationContext)_localctx).outputDir = match(STRING); + setState(1125); + match(T__105); + setState(1126); + ((AutoRotationContext)_localctx).processId = match(STRING); + setState(1127); + match(T__106); + setState(1128); + ((AutoRotationContext)_localctx).resourceConn = match(STRING); + setState(1129); + match(T__9); + setState(1130); + match(T__1); + setState(1131); + ((AutoRotationContext)_localctx).querySet = match(STRING); + setState(1132); + match(T__2); + setState(1137); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1133); + match(T__10); + setState(1134); + ((AutoRotationContext)_localctx).condition = expression(); + } + } + setState(1139); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BlankPageRemoverContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token processId; + public Token resourceConn; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public BlankPageRemoverContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_blankPageRemover; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterBlankPageRemover(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitBlankPageRemover(this); + } + } + + public final BlankPageRemoverContext blankPageRemover() throws RecognitionException { + BlankPageRemoverContext _localctx = new BlankPageRemoverContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_blankPageRemover); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1140); + match(T__107); + setState(1141); + match(T__7); + setState(1142); + ((BlankPageRemoverContext)_localctx).name = match(STRING); + setState(1143); + match(T__104); + setState(1144); + ((BlankPageRemoverContext)_localctx).outputDir = match(STRING); + setState(1145); + match(T__105); + setState(1146); + ((BlankPageRemoverContext)_localctx).processId = match(STRING); + setState(1147); + match(T__106); + setState(1148); + ((BlankPageRemoverContext)_localctx).resourceConn = match(STRING); + setState(1149); + match(T__9); + setState(1150); + match(T__1); + setState(1151); + ((BlankPageRemoverContext)_localctx).querySet = match(STRING); + setState(1152); + match(T__2); + setState(1157); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1153); + match(T__10); + setState(1154); + ((BlankPageRemoverContext)_localctx).condition = expression(); + } + } + setState(1159); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class QrAttributionContext extends ParserRuleContext { + public Token name; + public Token filePath; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public QrAttributionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_qrAttribution; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterQrAttribution(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitQrAttribution(this); + } + } + + public final QrAttributionContext qrAttribution() throws RecognitionException { + QrAttributionContext _localctx = new QrAttributionContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_qrAttribution); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1160); + match(T__108); + setState(1161); + match(T__7); + setState(1162); + ((QrAttributionContext)_localctx).name = match(STRING); + setState(1163); + match(T__9); + setState(1164); + match(T__1); + setState(1165); + ((QrAttributionContext)_localctx).filePath = match(STRING); + setState(1166); + match(T__2); + setState(1171); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1167); + match(T__10); + setState(1168); + ((QrAttributionContext)_localctx).condition = expression(); + } + } + setState(1173); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UploadAssetContext extends ParserRuleContext { + public Token name; + public Token filePath; + public Token templateId; + public Token token; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public UploadAssetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_uploadAsset; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterUploadAsset(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitUploadAsset(this); + } + } + + public final UploadAssetContext uploadAsset() throws RecognitionException { + UploadAssetContext _localctx = new UploadAssetContext(_ctx, getState()); + enterRule(_localctx, 86, RULE_uploadAsset); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1174); + match(T__109); + setState(1175); + match(T__7); + setState(1176); + ((UploadAssetContext)_localctx).name = match(STRING); + setState(1177); + match(T__102); + setState(1178); + ((UploadAssetContext)_localctx).filePath = match(STRING); + setState(1179); + match(T__110); + setState(1180); + ((UploadAssetContext)_localctx).templateId = match(STRING); + setState(1181); + match(T__111); + setState(1182); + ((UploadAssetContext)_localctx).token = match(STRING); + setState(1183); + match(T__9); + setState(1184); + match(T__1); + setState(1185); + match(T__2); + setState(1190); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1186); + match(T__10); + setState(1187); + ((UploadAssetContext)_localctx).condition = expression(); + } + } + setState(1192); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FileMergerContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token requestBody; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public FileMergerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fileMerger; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterFileMerger(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitFileMerger(this); + } + } + + public final FileMergerContext fileMerger() throws RecognitionException { + FileMergerContext _localctx = new FileMergerContext(_ctx, getState()); + enterRule(_localctx, 88, RULE_fileMerger); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1193); + match(T__112); + setState(1194); + match(T__7); + setState(1195); + ((FileMergerContext)_localctx).name = match(STRING); + setState(1196); + match(T__113); + setState(1197); + ((FileMergerContext)_localctx).outputDir = match(STRING); + setState(1198); + match(T__9); + setState(1199); + match(T__1); + setState(1200); + ((FileMergerContext)_localctx).requestBody = match(STRING); + setState(1201); + match(T__2); + setState(1206); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1202); + match(T__10); + setState(1203); + ((FileMergerContext)_localctx).condition = expression(); + } + } + setState(1208); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FtpsUploadContext extends ParserRuleContext { + public Token name; + public Token host; + public Token port; + public Token userName; + public Token password; + public Token sessionTimeOut; + public Token sourceFile; + public Token destDir; + public Token uploadCheck; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public FtpsUploadContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ftpsUpload; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterFtpsUpload(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitFtpsUpload(this); + } + } + + public final FtpsUploadContext ftpsUpload() throws RecognitionException { + FtpsUploadContext _localctx = new FtpsUploadContext(_ctx, getState()); + enterRule(_localctx, 90, RULE_ftpsUpload); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1209); + match(T__114); + setState(1210); + match(T__7); + setState(1211); + ((FtpsUploadContext)_localctx).name = match(STRING); + setState(1212); + match(T__115); + setState(1213); + ((FtpsUploadContext)_localctx).host = match(STRING); + setState(1214); + match(T__116); + setState(1215); + ((FtpsUploadContext)_localctx).port = match(STRING); + setState(1216); + match(T__117); + setState(1217); + ((FtpsUploadContext)_localctx).userName = match(STRING); + setState(1218); + match(T__118); + setState(1219); + ((FtpsUploadContext)_localctx).password = match(STRING); + setState(1220); + match(T__119); + setState(1221); + ((FtpsUploadContext)_localctx).sessionTimeOut = match(STRING); + setState(1222); + match(T__120); + setState(1223); + ((FtpsUploadContext)_localctx).sourceFile = match(STRING); + setState(1224); + match(T__121); + setState(1225); + ((FtpsUploadContext)_localctx).destDir = match(STRING); + setState(1226); + match(T__122); + setState(1227); + ((FtpsUploadContext)_localctx).uploadCheck = match(STRING); + setState(1228); + match(T__9); + setState(1229); + match(T__1); + setState(1230); + match(T__2); + setState(1235); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1231); + match(T__10); + setState(1232); + ((FtpsUploadContext)_localctx).condition = expression(); + } + } + setState(1237); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FtpsDownloadContext extends ParserRuleContext { + public Token name; + public Token host; + public Token port; + public Token userName; + public Token password; + public Token sessionTimeOut; + public Token sourceFile; + public Token destDir; + public Token uploadCheck; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public FtpsDownloadContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ftpsDownload; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterFtpsDownload(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitFtpsDownload(this); + } + } + + public final FtpsDownloadContext ftpsDownload() throws RecognitionException { + FtpsDownloadContext _localctx = new FtpsDownloadContext(_ctx, getState()); + enterRule(_localctx, 92, RULE_ftpsDownload); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1238); + match(T__123); + setState(1239); + match(T__7); + setState(1240); + ((FtpsDownloadContext)_localctx).name = match(STRING); + setState(1241); + match(T__115); + setState(1242); + ((FtpsDownloadContext)_localctx).host = match(STRING); + setState(1243); + match(T__116); + setState(1244); + ((FtpsDownloadContext)_localctx).port = match(STRING); + setState(1245); + match(T__117); + setState(1246); + ((FtpsDownloadContext)_localctx).userName = match(STRING); + setState(1247); + match(T__118); + setState(1248); + ((FtpsDownloadContext)_localctx).password = match(STRING); + setState(1249); + match(T__119); + setState(1250); + ((FtpsDownloadContext)_localctx).sessionTimeOut = match(STRING); + setState(1251); + match(T__124); + setState(1252); + ((FtpsDownloadContext)_localctx).sourceFile = match(STRING); + setState(1253); + match(T__121); + setState(1254); + ((FtpsDownloadContext)_localctx).destDir = match(STRING); + setState(1255); + match(T__125); + setState(1256); + ((FtpsDownloadContext)_localctx).uploadCheck = match(STRING); + setState(1257); + match(T__9); + setState(1258); + match(T__1); + setState(1259); + match(T__2); + setState(1264); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1260); + match(T__10); + setState(1261); + ((FtpsDownloadContext)_localctx).condition = expression(); + } + } + setState(1266); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SftpConnectorContext extends ParserRuleContext { + public Token name; + public Token host; + public Token port; + public Token userName; + public Token password; + public Token sessionTimeOut; + public Token channelTimeOut; + public Token sourceFile; + public Token destDir; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public SftpConnectorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sftpConnector; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterSftpConnector(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitSftpConnector(this); + } + } + + public final SftpConnectorContext sftpConnector() throws RecognitionException { + SftpConnectorContext _localctx = new SftpConnectorContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_sftpConnector); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1267); + match(T__126); + setState(1268); + match(T__7); + setState(1269); + ((SftpConnectorContext)_localctx).name = match(STRING); + setState(1270); + match(T__115); + setState(1271); + ((SftpConnectorContext)_localctx).host = match(STRING); + setState(1272); + match(T__116); + setState(1273); + ((SftpConnectorContext)_localctx).port = match(STRING); + setState(1274); + match(T__117); + setState(1275); + ((SftpConnectorContext)_localctx).userName = match(STRING); + setState(1276); + match(T__118); + setState(1277); + ((SftpConnectorContext)_localctx).password = match(STRING); + setState(1278); + match(T__119); + setState(1279); + ((SftpConnectorContext)_localctx).sessionTimeOut = match(STRING); + setState(1280); + match(T__127); + setState(1281); + ((SftpConnectorContext)_localctx).channelTimeOut = match(STRING); + setState(1282); + match(T__124); + setState(1283); + ((SftpConnectorContext)_localctx).sourceFile = match(STRING); + setState(1284); + match(T__121); + setState(1285); + ((SftpConnectorContext)_localctx).destDir = match(STRING); + setState(1286); + match(T__128); + setState(1287); + match(T__7); + setState(1288); + ((SftpConnectorContext)_localctx).name = match(STRING); + setState(1289); + match(T__115); + setState(1290); + ((SftpConnectorContext)_localctx).host = match(STRING); + setState(1291); + match(T__116); + setState(1292); + ((SftpConnectorContext)_localctx).port = match(STRING); + setState(1293); + match(T__117); + setState(1294); + ((SftpConnectorContext)_localctx).userName = match(STRING); + setState(1295); + match(T__118); + setState(1296); + ((SftpConnectorContext)_localctx).password = match(STRING); + setState(1297); + match(T__119); + setState(1298); + ((SftpConnectorContext)_localctx).sessionTimeOut = match(STRING); + setState(1299); + match(T__124); + setState(1300); + ((SftpConnectorContext)_localctx).sourceFile = match(STRING); + setState(1301); + match(T__121); + setState(1302); + ((SftpConnectorContext)_localctx).destDir = match(STRING); + setState(1303); + match(T__9); + setState(1304); + match(T__1); + setState(1305); + match(T__2); + setState(1310); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1306); + match(T__10); + setState(1307); + ((SftpConnectorContext)_localctx).condition = expression(); + } + } + setState(1312); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CreateZipContext extends ParserRuleContext { + public Token name; + public Token fileName; + public Token source; + public Token destination; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public CreateZipContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_createZip; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCreateZip(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCreateZip(this); + } + } + + public final CreateZipContext createZip() throws RecognitionException { + CreateZipContext _localctx = new CreateZipContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_createZip); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1313); + match(T__129); + setState(1314); + ((CreateZipContext)_localctx).name = match(STRING); + setState(1315); + match(T__89); + setState(1316); + ((CreateZipContext)_localctx).fileName = match(STRING); + setState(1317); + match(T__13); + setState(1318); + ((CreateZipContext)_localctx).source = match(STRING); + setState(1319); + match(T__55); + setState(1320); + ((CreateZipContext)_localctx).destination = match(STRING); + setState(1321); + match(T__9); + setState(1322); + match(T__1); + setState(1323); + match(T__2); + setState(1328); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1324); + match(T__10); + setState(1325); + ((CreateZipContext)_localctx).condition = expression(); + } + } + setState(1330); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExtractZipContext extends ParserRuleContext { + public Token name; + public Token source; + public Token destination; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ExtractZipContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_extractZip; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterExtractZip(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitExtractZip(this); + } + } + + public final ExtractZipContext extractZip() throws RecognitionException { + ExtractZipContext _localctx = new ExtractZipContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_extractZip); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1331); + match(T__130); + setState(1332); + ((ExtractZipContext)_localctx).name = match(STRING); + setState(1333); + match(T__13); + setState(1334); + ((ExtractZipContext)_localctx).source = match(STRING); + setState(1335); + match(T__55); + setState(1336); + ((ExtractZipContext)_localctx).destination = match(STRING); + setState(1337); + match(T__9); + setState(1338); + match(T__1); + setState(1339); + match(T__2); + setState(1344); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1340); + match(T__10); + setState(1341); + ((ExtractZipContext)_localctx).condition = expression(); + } + } + setState(1346); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SorGroupDetailsContext extends ParserRuleContext { + public Token name; + public Token on; + public Token keyfields; + public Token searchfields; + public Token groupbyfields; + public Token targettable; + public Token value; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public SorGroupDetailsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sorGroupDetails; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterSorGroupDetails(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitSorGroupDetails(this); + } + } + + public final SorGroupDetailsContext sorGroupDetails() throws RecognitionException { + SorGroupDetailsContext _localctx = new SorGroupDetailsContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_sorGroupDetails); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1347); + match(T__131); + setState(1348); + match(T__7); + setState(1349); + ((SorGroupDetailsContext)_localctx).name = match(STRING); + setState(1350); + match(T__8); + setState(1351); + ((SorGroupDetailsContext)_localctx).on = match(STRING); + setState(1352); + match(T__132); + setState(1353); + ((SorGroupDetailsContext)_localctx).keyfields = match(STRING); + setState(1354); + match(T__133); + setState(1355); + ((SorGroupDetailsContext)_localctx).searchfields = match(STRING); + setState(1356); + match(T__134); + setState(1357); + ((SorGroupDetailsContext)_localctx).groupbyfields = match(STRING); + setState(1358); + match(T__135); + setState(1359); + ((SorGroupDetailsContext)_localctx).targettable = match(STRING); + setState(1360); + match(T__9); + setState(1361); + match(T__1); + setState(1362); + ((SorGroupDetailsContext)_localctx).value = match(STRING); + setState(1363); + match(T__2); + setState(1368); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1364); + match(T__10); + setState(1365); + ((SorGroupDetailsContext)_localctx).condition = expression(); + } + } + setState(1370); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ZeroShotClassifierContext extends ParserRuleContext { + public Token name; + public Token candidateLabels; + public Token content; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ZeroShotClassifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_zeroShotClassifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterZeroShotClassifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitZeroShotClassifier(this); + } + } + + public final ZeroShotClassifierContext zeroShotClassifier() throws RecognitionException { + ZeroShotClassifierContext _localctx = new ZeroShotClassifierContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_zeroShotClassifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1371); + match(T__136); + setState(1372); + match(T__7); + setState(1373); + ((ZeroShotClassifierContext)_localctx).name = match(STRING); + setState(1374); + match(T__137); + setState(1375); + ((ZeroShotClassifierContext)_localctx).candidateLabels = match(STRING); + setState(1376); + match(T__9); + setState(1377); + match(T__1); + setState(1378); + ((ZeroShotClassifierContext)_localctx).content = match(STRING); + setState(1379); + match(T__2); + setState(1384); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1380); + match(T__10); + setState(1381); + ((ZeroShotClassifierContext)_localctx).condition = expression(); + } + } + setState(1386); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LoadExtractedDataContext extends ParserRuleContext { + public Token name; + public Token filePath; + public Token paperNo; + public Token inticsReferenceId; + public Token batchId; + public Token targetDir; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public LoadExtractedDataContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_loadExtractedData; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterLoadExtractedData(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitLoadExtractedData(this); + } + } + + public final LoadExtractedDataContext loadExtractedData() throws RecognitionException { + LoadExtractedDataContext _localctx = new LoadExtractedDataContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_loadExtractedData); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1387); + match(T__138); + setState(1388); + match(T__7); + setState(1389); + ((LoadExtractedDataContext)_localctx).name = match(STRING); + setState(1390); + match(T__139); + setState(1391); + ((LoadExtractedDataContext)_localctx).filePath = match(STRING); + setState(1392); + match(T__140); + setState(1393); + ((LoadExtractedDataContext)_localctx).paperNo = match(STRING); + setState(1394); + match(T__141); + setState(1395); + ((LoadExtractedDataContext)_localctx).inticsReferenceId = match(STRING); + setState(1396); + match(T__142); + setState(1397); + ((LoadExtractedDataContext)_localctx).batchId = match(STRING); + setState(1398); + match(T__143); + setState(1399); + ((LoadExtractedDataContext)_localctx).targetDir = match(STRING); + setState(1400); + match(T__9); + setState(1401); + match(T__1); + setState(1402); + match(T__2); + setState(1407); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1403); + match(T__10); + setState(1404); + ((LoadExtractedDataContext)_localctx).condition = expression(); + } + } + setState(1409); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AbsentKeyFilterContext extends ParserRuleContext { + public Token name; + public Token filePath; + public Token paperNo; + public Token inticsReferenceId; + public Token batchId; + public Token sorList; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public AbsentKeyFilterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_absentKeyFilter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAbsentKeyFilter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAbsentKeyFilter(this); + } + } + + public final AbsentKeyFilterContext absentKeyFilter() throws RecognitionException { + AbsentKeyFilterContext _localctx = new AbsentKeyFilterContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_absentKeyFilter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1410); + match(T__144); + setState(1411); + match(T__7); + setState(1412); + ((AbsentKeyFilterContext)_localctx).name = match(STRING); + setState(1413); + match(T__139); + setState(1414); + ((AbsentKeyFilterContext)_localctx).filePath = match(STRING); + setState(1415); + match(T__140); + setState(1416); + ((AbsentKeyFilterContext)_localctx).paperNo = match(STRING); + setState(1417); + match(T__141); + setState(1418); + ((AbsentKeyFilterContext)_localctx).inticsReferenceId = match(STRING); + setState(1419); + match(T__142); + setState(1420); + ((AbsentKeyFilterContext)_localctx).batchId = match(STRING); + setState(1421); + match(T__145); + setState(1422); + ((AbsentKeyFilterContext)_localctx).sorList = match(STRING); + setState(1423); + match(T__9); + setState(1424); + match(T__1); + setState(1425); + match(T__2); + setState(1430); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1426); + match(T__10); + setState(1427); + ((AbsentKeyFilterContext)_localctx).condition = expression(); + } + } + setState(1432); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SorFilterContext extends ParserRuleContext { + public Token name; + public Token filePath; + public Token inticsReferenceId; + public Token searchValue; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public SorFilterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sorFilter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterSorFilter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitSorFilter(this); + } + } + + public final SorFilterContext sorFilter() throws RecognitionException { + SorFilterContext _localctx = new SorFilterContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_sorFilter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1433); + match(T__146); + setState(1434); + match(T__7); + setState(1435); + ((SorFilterContext)_localctx).name = match(STRING); + setState(1436); + match(T__139); + setState(1437); + ((SorFilterContext)_localctx).filePath = match(STRING); + setState(1438); + match(T__141); + setState(1439); + ((SorFilterContext)_localctx).inticsReferenceId = match(STRING); + setState(1440); + match(T__147); + setState(1441); + ((SorFilterContext)_localctx).searchValue = match(STRING); + setState(1442); + match(T__9); + setState(1443); + match(T__1); + setState(1444); + match(T__2); + setState(1449); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1445); + match(T__10); + setState(1446); + ((SorFilterContext)_localctx).condition = expression(); + } + } + setState(1451); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TriageAttributionContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token labelledClassifierModelFilePath; + public Token handwrittenClassifierModelFilePath; + public Token checkboxClassifierModelFilePath; + public Token synonyms; + public Token labelledClassifierLabels; + public Token viltCocoLabels; + public Token viltConfigLabel; + public Token isViltCocoOverride; + public Token viltCocoThreshold; + public Token vggImageWidth; + public Token vggImageHeight; + public Token triageAttributionResponseName; + public Token inputFilePath; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TriageAttributionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_triageAttribution; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterTriageAttribution(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitTriageAttribution(this); + } + } + + public final TriageAttributionContext triageAttribution() throws RecognitionException { + TriageAttributionContext _localctx = new TriageAttributionContext(_ctx, getState()); + enterRule(_localctx, 110, RULE_triageAttribution); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1452); + match(T__148); + setState(1453); + match(T__7); + setState(1454); + ((TriageAttributionContext)_localctx).name = match(STRING); + setState(1455); + match(T__149); + setState(1456); + ((TriageAttributionContext)_localctx).outputDir = match(STRING); + setState(1457); + match(T__150); + setState(1458); + ((TriageAttributionContext)_localctx).labelledClassifierModelFilePath = match(STRING); + setState(1459); + match(T__151); + setState(1460); + ((TriageAttributionContext)_localctx).handwrittenClassifierModelFilePath = match(STRING); + setState(1461); + match(T__152); + setState(1462); + ((TriageAttributionContext)_localctx).checkboxClassifierModelFilePath = match(STRING); + setState(1463); + match(T__153); + setState(1464); + ((TriageAttributionContext)_localctx).synonyms = match(STRING); + setState(1465); + match(T__154); + setState(1466); + ((TriageAttributionContext)_localctx).labelledClassifierLabels = match(STRING); + setState(1467); + match(T__155); + setState(1468); + ((TriageAttributionContext)_localctx).viltCocoLabels = match(STRING); + setState(1469); + match(T__156); + setState(1470); + ((TriageAttributionContext)_localctx).viltConfigLabel = match(STRING); + setState(1471); + match(T__157); + setState(1472); + ((TriageAttributionContext)_localctx).isViltCocoOverride = match(STRING); + setState(1473); + match(T__158); + setState(1474); + ((TriageAttributionContext)_localctx).viltCocoThreshold = match(STRING); + setState(1475); + match(T__159); + setState(1476); + ((TriageAttributionContext)_localctx).vggImageWidth = match(STRING); + setState(1477); + match(T__160); + setState(1478); + ((TriageAttributionContext)_localctx).vggImageHeight = match(STRING); + setState(1479); + match(T__161); + setState(1480); + ((TriageAttributionContext)_localctx).triageAttributionResponseName = match(STRING); + setState(1481); + match(T__1); + setState(1482); + ((TriageAttributionContext)_localctx).inputFilePath = match(STRING); + setState(1483); + match(T__2); + setState(1488); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1484); + match(T__10); + setState(1485); + ((TriageAttributionContext)_localctx).condition = expression(); + } + } + setState(1490); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DocnetAttributionContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token docnetAttributionAsResponse; + public Token inputFilePath; + public Token resourceConn; + public Token attributeQuestionSql; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DocnetAttributionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_docnetAttribution; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDocnetAttribution(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDocnetAttribution(this); + } + } + + public final DocnetAttributionContext docnetAttribution() throws RecognitionException { + DocnetAttributionContext _localctx = new DocnetAttributionContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_docnetAttribution); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1491); + match(T__162); + setState(1492); + match(T__7); + setState(1493); + ((DocnetAttributionContext)_localctx).name = match(STRING); + setState(1494); + match(T__149); + setState(1495); + ((DocnetAttributionContext)_localctx).outputDir = match(STRING); + setState(1496); + match(T__161); + setState(1497); + ((DocnetAttributionContext)_localctx).docnetAttributionAsResponse = match(STRING); + setState(1498); + match(T__163); + setState(1499); + match(T__1); + setState(1500); + ((DocnetAttributionContext)_localctx).inputFilePath = match(STRING); + setState(1501); + match(T__2); + setState(1502); + match(T__164); + setState(1503); + ((DocnetAttributionContext)_localctx).resourceConn = match(STRING); + setState(1504); + match(T__165); + setState(1505); + match(T__1); + setState(1506); + ((DocnetAttributionContext)_localctx).attributeQuestionSql = match(STRING); + setState(1507); + match(T__2); + setState(1512); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1508); + match(T__10); + setState(1509); + ((DocnetAttributionContext)_localctx).condition = expression(); + } + } + setState(1514); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TqaFilterContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token truthExtractorUrl; + public Token maxDoctrDiff; + public Token maxQuestionDiff; + public Token resourceConn; + public Token synonymSqlQuery; + public Token inputFilePathSqlQuery; + public ExpressionContext condition; + public Token threadCount; + public Token fetchBatchSize; + public Token writeBatchSize; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List NON_ZERO_DIGIT() { return getTokens(RavenParser.NON_ZERO_DIGIT); } + public TerminalNode NON_ZERO_DIGIT(int i) { + return getToken(RavenParser.NON_ZERO_DIGIT, i); + } + public TqaFilterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_tqaFilter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterTqaFilter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitTqaFilter(this); + } + } + + public final TqaFilterContext tqaFilter() throws RecognitionException { + TqaFilterContext _localctx = new TqaFilterContext(_ctx, getState()); + enterRule(_localctx, 114, RULE_tqaFilter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1515); + match(T__166); + setState(1516); + match(T__7); + setState(1517); + ((TqaFilterContext)_localctx).name = match(STRING); + setState(1518); + match(T__149); + setState(1519); + ((TqaFilterContext)_localctx).outputDir = match(STRING); + setState(1520); + match(T__167); + setState(1521); + ((TqaFilterContext)_localctx).truthExtractorUrl = match(STRING); + setState(1522); + match(T__168); + setState(1523); + ((TqaFilterContext)_localctx).maxDoctrDiff = match(STRING); + setState(1524); + match(T__169); + setState(1525); + ((TqaFilterContext)_localctx).maxQuestionDiff = match(STRING); + setState(1526); + match(T__164); + setState(1527); + ((TqaFilterContext)_localctx).resourceConn = match(STRING); + setState(1528); + match(T__170); + setState(1529); + match(T__1); + setState(1530); + ((TqaFilterContext)_localctx).synonymSqlQuery = match(STRING); + setState(1531); + match(T__2); + setState(1532); + match(T__171); + setState(1533); + match(T__1); + setState(1534); + ((TqaFilterContext)_localctx).inputFilePathSqlQuery = match(STRING); + setState(1535); + match(T__2); + setState(1540); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1536); + match(T__10); + setState(1537); + ((TqaFilterContext)_localctx).condition = expression(); + } + } + setState(1542); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1547); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__11) { + { + { + setState(1543); + match(T__11); + setState(1544); + ((TqaFilterContext)_localctx).threadCount = match(NON_ZERO_DIGIT); + } + } + setState(1549); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1554); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__15) { + { + { + setState(1550); + match(T__15); + setState(1551); + ((TqaFilterContext)_localctx).fetchBatchSize = match(NON_ZERO_DIGIT); + } + } + setState(1556); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1561); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__16) { + { + { + setState(1557); + match(T__16); + setState(1558); + ((TqaFilterContext)_localctx).writeBatchSize = match(NON_ZERO_DIGIT); + } + } + setState(1563); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TextFilterContext extends ParserRuleContext { + public Token name; + public Token filteringKeys; + public Token inputFilePath; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TextFilterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_textFilter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterTextFilter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitTextFilter(this); + } + } + + public final TextFilterContext textFilter() throws RecognitionException { + TextFilterContext _localctx = new TextFilterContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_textFilter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1564); + match(T__172); + setState(1565); + match(T__7); + setState(1566); + ((TextFilterContext)_localctx).name = match(STRING); + setState(1567); + match(T__173); + setState(1568); + ((TextFilterContext)_localctx).filteringKeys = match(STRING); + setState(1569); + match(T__163); + setState(1570); + match(T__1); + setState(1571); + ((TextFilterContext)_localctx).inputFilePath = match(STRING); + setState(1572); + match(T__2); + setState(1577); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1573); + match(T__10); + setState(1574); + ((TextFilterContext)_localctx).condition = expression(); + } + } + setState(1579); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EntityFilterContext extends ParserRuleContext { + public Token name; + public Token docId; + public Token paperNo; + public Token groupId; + public Token resourceConn; + public Token entityKeysToFilter; + public Token mandatoryKeysToFilter; + public Token inputFilePath; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public EntityFilterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_entityFilter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterEntityFilter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitEntityFilter(this); + } + } + + public final EntityFilterContext entityFilter() throws RecognitionException { + EntityFilterContext _localctx = new EntityFilterContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_entityFilter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1580); + match(T__172); + setState(1581); + match(T__7); + setState(1582); + ((EntityFilterContext)_localctx).name = match(STRING); + setState(1583); + match(T__174); + setState(1584); + ((EntityFilterContext)_localctx).docId = match(STRING); + setState(1585); + match(T__175); + setState(1586); + ((EntityFilterContext)_localctx).paperNo = match(STRING); + setState(1587); + match(T__176); + setState(1588); + ((EntityFilterContext)_localctx).groupId = match(STRING); + setState(1589); + match(T__164); + setState(1590); + ((EntityFilterContext)_localctx).resourceConn = match(STRING); + setState(1591); + match(T__177); + setState(1592); + ((EntityFilterContext)_localctx).entityKeysToFilter = match(STRING); + setState(1593); + match(T__178); + setState(1594); + ((EntityFilterContext)_localctx).mandatoryKeysToFilter = match(STRING); + setState(1595); + match(T__163); + setState(1596); + match(T__1); + setState(1597); + ((EntityFilterContext)_localctx).inputFilePath = match(STRING); + setState(1598); + match(T__2); + setState(1603); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1599); + match(T__10); + setState(1600); + ((EntityFilterContext)_localctx).condition = expression(); + } + } + setState(1605); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ThresholdCheckContext extends ParserRuleContext { + public Token name; + public Token threshold; + public Token input; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ThresholdCheckContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_thresholdCheck; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterThresholdCheck(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitThresholdCheck(this); + } + } + + public final ThresholdCheckContext thresholdCheck() throws RecognitionException { + ThresholdCheckContext _localctx = new ThresholdCheckContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_thresholdCheck); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1606); + match(T__179); + setState(1607); + match(T__7); + setState(1608); + ((ThresholdCheckContext)_localctx).name = match(STRING); + setState(1609); + match(T__180); + setState(1610); + ((ThresholdCheckContext)_localctx).threshold = match(STRING); + setState(1611); + match(T__1); + setState(1612); + ((ThresholdCheckContext)_localctx).input = match(STRING); + setState(1613); + match(T__2); + setState(1618); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1614); + match(T__10); + setState(1615); + ((ThresholdCheckContext)_localctx).condition = expression(); + } + } + setState(1620); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class JsonToFileContext extends ParserRuleContext { + public Token name; + public Token filePath; + public Token resourceConn; + public Token jsonSql; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public JsonToFileContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_jsonToFile; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterJsonToFile(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitJsonToFile(this); + } + } + + public final JsonToFileContext jsonToFile() throws RecognitionException { + JsonToFileContext _localctx = new JsonToFileContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_jsonToFile); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1621); + match(T__181); + setState(1622); + match(T__7); + setState(1623); + ((JsonToFileContext)_localctx).name = match(STRING); + setState(1624); + match(T__182); + setState(1625); + ((JsonToFileContext)_localctx).filePath = match(STRING); + setState(1626); + match(T__164); + setState(1627); + ((JsonToFileContext)_localctx).resourceConn = match(STRING); + setState(1628); + match(T__9); + setState(1629); + match(T__1); + setState(1630); + ((JsonToFileContext)_localctx).jsonSql = match(STRING); + setState(1631); + match(T__2); + setState(1636); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1632); + match(T__10); + setState(1633); + ((JsonToFileContext)_localctx).condition = expression(); + } + } + setState(1638); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DocnetResultContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token coproResultSqlQuery; + public Token weightageSqlQuery; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DocnetResultContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_docnetResult; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDocnetResult(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDocnetResult(this); + } + } + + public final DocnetResultContext docnetResult() throws RecognitionException { + DocnetResultContext _localctx = new DocnetResultContext(_ctx, getState()); + enterRule(_localctx, 124, RULE_docnetResult); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1639); + match(T__183); + setState(1640); + match(T__7); + setState(1641); + ((DocnetResultContext)_localctx).name = match(STRING); + setState(1642); + match(T__164); + setState(1643); + ((DocnetResultContext)_localctx).resourceConn = match(STRING); + setState(1644); + match(T__184); + setState(1645); + match(T__1); + setState(1646); + ((DocnetResultContext)_localctx).coproResultSqlQuery = match(STRING); + setState(1647); + match(T__2); + setState(1648); + match(T__185); + setState(1649); + match(T__1); + setState(1650); + ((DocnetResultContext)_localctx).weightageSqlQuery = match(STRING); + setState(1651); + match(T__2); + setState(1656); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1652); + match(T__10); + setState(1653); + ((DocnetResultContext)_localctx).condition = expression(); + } + } + setState(1658); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetContextValueContext extends ParserRuleContext { + public Token name; + public Token contextKey; + public Token contextValue; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public SetContextValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setContextValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterSetContextValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitSetContextValue(this); + } + } + + public final SetContextValueContext setContextValue() throws RecognitionException { + SetContextValueContext _localctx = new SetContextValueContext(_ctx, getState()); + enterRule(_localctx, 126, RULE_setContextValue); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1659); + match(T__186); + setState(1660); + match(T__7); + setState(1661); + ((SetContextValueContext)_localctx).name = match(STRING); + setState(1662); + match(T__187); + setState(1663); + ((SetContextValueContext)_localctx).contextKey = match(STRING); + setState(1664); + match(T__188); + setState(1665); + ((SetContextValueContext)_localctx).contextValue = match(STRING); + setState(1666); + match(T__9); + setState(1667); + match(T__1); + setState(1668); + match(T__2); + setState(1673); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1669); + match(T__10); + setState(1670); + ((SetContextValueContext)_localctx).condition = expression(); + } + } + setState(1675); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EvalPatientNameContext extends ParserRuleContext { + public Token name; + public Token patientName; + public Token wordCountLimit; + public Token charCountLimit; + public Token nerCoproApi; + public Token wordCountThreshold; + public Token charCountThreshold; + public Token nerApiThreshold; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public EvalPatientNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_evalPatientName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterEvalPatientName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitEvalPatientName(this); + } + } + + public final EvalPatientNameContext evalPatientName() throws RecognitionException { + EvalPatientNameContext _localctx = new EvalPatientNameContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_evalPatientName); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1676); + match(T__189); + setState(1677); + match(T__7); + setState(1678); + ((EvalPatientNameContext)_localctx).name = match(STRING); + setState(1679); + match(T__190); + setState(1680); + ((EvalPatientNameContext)_localctx).patientName = match(STRING); + setState(1681); + match(T__191); + setState(1682); + ((EvalPatientNameContext)_localctx).wordCountLimit = match(STRING); + setState(1683); + match(T__192); + setState(1684); + ((EvalPatientNameContext)_localctx).charCountLimit = match(STRING); + setState(1685); + match(T__193); + setState(1686); + ((EvalPatientNameContext)_localctx).nerCoproApi = match(STRING); + setState(1687); + match(T__194); + setState(1688); + ((EvalPatientNameContext)_localctx).wordCountThreshold = match(STRING); + setState(1689); + match(T__195); + setState(1690); + ((EvalPatientNameContext)_localctx).charCountThreshold = match(STRING); + setState(1691); + match(T__196); + setState(1692); + ((EvalPatientNameContext)_localctx).nerApiThreshold = match(STRING); + setState(1693); + match(T__9); + setState(1694); + match(T__1); + setState(1695); + match(T__2); + setState(1700); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1696); + match(T__10); + setState(1697); + ((EvalPatientNameContext)_localctx).condition = expression(); + } + } + setState(1702); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EvalMemberIdContext extends ParserRuleContext { + public Token name; + public Token memberID; + public Token wordCountLimit; + public Token charCountLimit; + public Token specialCharacter; + public Token wordCountThreshold; + public Token charCountThreshold; + public Token validatorThreshold; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public EvalMemberIdContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_evalMemberId; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterEvalMemberId(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitEvalMemberId(this); + } + } + + public final EvalMemberIdContext evalMemberId() throws RecognitionException { + EvalMemberIdContext _localctx = new EvalMemberIdContext(_ctx, getState()); + enterRule(_localctx, 130, RULE_evalMemberId); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1703); + match(T__197); + setState(1704); + match(T__7); + setState(1705); + ((EvalMemberIdContext)_localctx).name = match(STRING); + setState(1706); + match(T__198); + setState(1707); + ((EvalMemberIdContext)_localctx).memberID = match(STRING); + setState(1708); + match(T__191); + setState(1709); + ((EvalMemberIdContext)_localctx).wordCountLimit = match(STRING); + setState(1710); + match(T__192); + setState(1711); + ((EvalMemberIdContext)_localctx).charCountLimit = match(STRING); + setState(1712); + match(T__199); + setState(1713); + ((EvalMemberIdContext)_localctx).specialCharacter = match(STRING); + setState(1714); + match(T__194); + setState(1715); + ((EvalMemberIdContext)_localctx).wordCountThreshold = match(STRING); + setState(1716); + match(T__195); + setState(1717); + ((EvalMemberIdContext)_localctx).charCountThreshold = match(STRING); + setState(1718); + match(T__200); + setState(1719); + ((EvalMemberIdContext)_localctx).validatorThreshold = match(STRING); + setState(1720); + match(T__9); + setState(1721); + match(T__1); + setState(1722); + match(T__2); + setState(1727); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1723); + match(T__10); + setState(1724); + ((EvalMemberIdContext)_localctx).condition = expression(); + } + } + setState(1729); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EvalDateOfBirthContext extends ParserRuleContext { + public Token name; + public Token dob; + public Token wordCountLimit; + public Token charCountLimit; + public Token wordCountThreshold; + public Token charCountThreshold; + public Token comparableYear; + public Token dateFormats; + public Token validatorThreshold; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public EvalDateOfBirthContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_evalDateOfBirth; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterEvalDateOfBirth(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitEvalDateOfBirth(this); + } + } + + public final EvalDateOfBirthContext evalDateOfBirth() throws RecognitionException { + EvalDateOfBirthContext _localctx = new EvalDateOfBirthContext(_ctx, getState()); + enterRule(_localctx, 132, RULE_evalDateOfBirth); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1730); + match(T__201); + setState(1731); + match(T__7); + setState(1732); + ((EvalDateOfBirthContext)_localctx).name = match(STRING); + setState(1733); + match(T__202); + setState(1734); + ((EvalDateOfBirthContext)_localctx).dob = match(STRING); + setState(1735); + match(T__191); + setState(1736); + ((EvalDateOfBirthContext)_localctx).wordCountLimit = match(STRING); + setState(1737); + match(T__192); + setState(1738); + ((EvalDateOfBirthContext)_localctx).charCountLimit = match(STRING); + setState(1739); + match(T__194); + setState(1740); + ((EvalDateOfBirthContext)_localctx).wordCountThreshold = match(STRING); + setState(1741); + match(T__195); + setState(1742); + ((EvalDateOfBirthContext)_localctx).charCountThreshold = match(STRING); + setState(1743); + match(T__203); + setState(1744); + ((EvalDateOfBirthContext)_localctx).comparableYear = match(STRING); + setState(1745); + match(T__204); + setState(1746); + ((EvalDateOfBirthContext)_localctx).dateFormats = match(STRING); + setState(1747); + match(T__200); + setState(1748); + ((EvalDateOfBirthContext)_localctx).validatorThreshold = match(STRING); + setState(1749); + match(T__9); + setState(1750); + match(T__1); + setState(1751); + match(T__2); + setState(1756); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1752); + match(T__10); + setState(1753); + ((EvalDateOfBirthContext)_localctx).condition = expression(); + } + } + setState(1758); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DirPathContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token filePath; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DirPathContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dirPath; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDirPath(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDirPath(this); + } + } + + public final DirPathContext dirPath() throws RecognitionException { + DirPathContext _localctx = new DirPathContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_dirPath); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1759); + match(T__205); + setState(1760); + match(T__7); + setState(1761); + ((DirPathContext)_localctx).name = match(STRING); + setState(1762); + match(T__164); + setState(1763); + ((DirPathContext)_localctx).resourceConn = match(STRING); + setState(1764); + match(T__9); + setState(1765); + match(T__1); + setState(1766); + ((DirPathContext)_localctx).filePath = match(STRING); + setState(1767); + match(T__2); + setState(1772); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1768); + match(T__10); + setState(1769); + ((DirPathContext)_localctx).condition = expression(); + } + } + setState(1774); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FileDetailsContext extends ParserRuleContext { + public Token name; + public Token dirpath; + public Token group_id; + public Token inbound_id; + public Token resourceConn; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public FileDetailsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fileDetails; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterFileDetails(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitFileDetails(this); + } + } + + public final FileDetailsContext fileDetails() throws RecognitionException { + FileDetailsContext _localctx = new FileDetailsContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_fileDetails); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1775); + match(T__206); + setState(1776); + match(T__7); + setState(1777); + ((FileDetailsContext)_localctx).name = match(STRING); + setState(1778); + match(T__207); + setState(1779); + ((FileDetailsContext)_localctx).dirpath = match(STRING); + setState(1780); + match(T__208); + setState(1781); + ((FileDetailsContext)_localctx).group_id = match(STRING); + setState(1782); + match(T__209); + setState(1783); + ((FileDetailsContext)_localctx).inbound_id = match(STRING); + setState(1784); + match(T__164); + setState(1785); + ((FileDetailsContext)_localctx).resourceConn = match(STRING); + setState(1786); + match(T__9); + setState(1787); + match(T__1); + setState(1788); + match(T__2); + setState(1793); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1789); + match(T__10); + setState(1790); + ((FileDetailsContext)_localctx).condition = expression(); + } + } + setState(1795); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WordcountContext extends ParserRuleContext { + public Token name; + public Token thresholdValue; + public Token inputValue; + public Token countLimit; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public WordcountContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_wordcount; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterWordcount(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitWordcount(this); + } + } + + public final WordcountContext wordcount() throws RecognitionException { + WordcountContext _localctx = new WordcountContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_wordcount); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1796); + match(T__210); + setState(1797); + match(T__7); + setState(1798); + ((WordcountContext)_localctx).name = match(STRING); + setState(1799); + match(T__211); + setState(1800); + ((WordcountContext)_localctx).thresholdValue = match(STRING); + setState(1801); + match(T__212); + setState(1802); + ((WordcountContext)_localctx).inputValue = match(STRING); + setState(1803); + match(T__213); + setState(1804); + ((WordcountContext)_localctx).countLimit = match(STRING); + setState(1805); + match(T__9); + setState(1806); + match(T__1); + setState(1807); + match(T__2); + setState(1812); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1808); + match(T__10); + setState(1809); + ((WordcountContext)_localctx).condition = expression(); + } + } + setState(1814); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CharactercountContext extends ParserRuleContext { + public Token name; + public Token thresholdValue; + public Token inputValue; + public Token countLimit; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public CharactercountContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_charactercount; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCharactercount(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCharactercount(this); + } + } + + public final CharactercountContext charactercount() throws RecognitionException { + CharactercountContext _localctx = new CharactercountContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_charactercount); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1815); + match(T__214); + setState(1816); + match(T__7); + setState(1817); + ((CharactercountContext)_localctx).name = match(STRING); + setState(1818); + match(T__215); + setState(1819); + ((CharactercountContext)_localctx).thresholdValue = match(STRING); + setState(1820); + match(T__212); + setState(1821); + ((CharactercountContext)_localctx).inputValue = match(STRING); + setState(1822); + match(T__216); + setState(1823); + ((CharactercountContext)_localctx).countLimit = match(STRING); + setState(1824); + match(T__9); + setState(1825); + match(T__1); + setState(1826); + match(T__2); + setState(1831); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1827); + match(T__10); + setState(1828); + ((CharactercountContext)_localctx).condition = expression(); + } + } + setState(1833); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatevalidatorContext extends ParserRuleContext { + public Token name; + public Token thresholdValue; + public Token inputValue; + public Token allowedDateFormats; + public Token comparableDate; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DatevalidatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datevalidator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDatevalidator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDatevalidator(this); + } + } + + public final DatevalidatorContext datevalidator() throws RecognitionException { + DatevalidatorContext _localctx = new DatevalidatorContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_datevalidator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1834); + match(T__217); + setState(1835); + match(T__7); + setState(1836); + ((DatevalidatorContext)_localctx).name = match(STRING); + setState(1837); + match(T__200); + setState(1838); + ((DatevalidatorContext)_localctx).thresholdValue = match(STRING); + setState(1839); + match(T__212); + setState(1840); + ((DatevalidatorContext)_localctx).inputValue = match(STRING); + setState(1841); + match(T__218); + setState(1842); + ((DatevalidatorContext)_localctx).allowedDateFormats = match(STRING); + setState(1843); + match(T__219); + setState(1844); + ((DatevalidatorContext)_localctx).comparableDate = match(STRING); + setState(1845); + match(T__9); + setState(1846); + match(T__1); + setState(1847); + match(T__2); + setState(1852); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1848); + match(T__10); + setState(1849); + ((DatevalidatorContext)_localctx).condition = expression(); + } + } + setState(1854); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AlphavalidatorContext extends ParserRuleContext { + public Token name; + public Token thresholdValue; + public Token inputValue; + public Token allowedSpecialCharacters; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public AlphavalidatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alphavalidator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAlphavalidator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAlphavalidator(this); + } + } + + public final AlphavalidatorContext alphavalidator() throws RecognitionException { + AlphavalidatorContext _localctx = new AlphavalidatorContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_alphavalidator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1855); + match(T__220); + setState(1856); + match(T__7); + setState(1857); + ((AlphavalidatorContext)_localctx).name = match(STRING); + setState(1858); + match(T__200); + setState(1859); + ((AlphavalidatorContext)_localctx).thresholdValue = match(STRING); + setState(1860); + match(T__212); + setState(1861); + ((AlphavalidatorContext)_localctx).inputValue = match(STRING); + setState(1862); + match(T__221); + setState(1863); + ((AlphavalidatorContext)_localctx).allowedSpecialCharacters = match(STRING); + setState(1864); + match(T__9); + setState(1865); + match(T__1); + setState(1866); + match(T__2); + setState(1871); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1867); + match(T__10); + setState(1868); + ((AlphavalidatorContext)_localctx).condition = expression(); + } + } + setState(1873); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AlphanumericvalidatorContext extends ParserRuleContext { + public Token name; + public Token thresholdValue; + public Token inputValue; + public Token allowedSpecialCharacters; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public AlphanumericvalidatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alphanumericvalidator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAlphanumericvalidator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAlphanumericvalidator(this); + } + } + + public final AlphanumericvalidatorContext alphanumericvalidator() throws RecognitionException { + AlphanumericvalidatorContext _localctx = new AlphanumericvalidatorContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_alphanumericvalidator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1874); + match(T__222); + setState(1875); + match(T__7); + setState(1876); + ((AlphanumericvalidatorContext)_localctx).name = match(STRING); + setState(1877); + match(T__200); + setState(1878); + ((AlphanumericvalidatorContext)_localctx).thresholdValue = match(STRING); + setState(1879); + match(T__212); + setState(1880); + ((AlphanumericvalidatorContext)_localctx).inputValue = match(STRING); + setState(1881); + match(T__221); + setState(1882); + ((AlphanumericvalidatorContext)_localctx).allowedSpecialCharacters = match(STRING); + setState(1883); + match(T__9); + setState(1884); + match(T__1); + setState(1885); + match(T__2); + setState(1890); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1886); + match(T__10); + setState(1887); + ((AlphanumericvalidatorContext)_localctx).condition = expression(); + } + } + setState(1892); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumericvalidatorContext extends ParserRuleContext { + public Token name; + public Token thresholdValue; + public Token inputValue; + public Token allowedSpecialCharacters; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public NumericvalidatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numericvalidator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterNumericvalidator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitNumericvalidator(this); + } + } + + public final NumericvalidatorContext numericvalidator() throws RecognitionException { + NumericvalidatorContext _localctx = new NumericvalidatorContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_numericvalidator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1893); + match(T__223); + setState(1894); + match(T__7); + setState(1895); + ((NumericvalidatorContext)_localctx).name = match(STRING); + setState(1896); + match(T__200); + setState(1897); + ((NumericvalidatorContext)_localctx).thresholdValue = match(STRING); + setState(1898); + match(T__212); + setState(1899); + ((NumericvalidatorContext)_localctx).inputValue = match(STRING); + setState(1900); + match(T__221); + setState(1901); + ((NumericvalidatorContext)_localctx).allowedSpecialCharacters = match(STRING); + setState(1902); + match(T__9); + setState(1903); + match(T__1); + setState(1904); + match(T__2); + setState(1909); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1905); + match(T__10); + setState(1906); + ((NumericvalidatorContext)_localctx).condition = expression(); + } + } + setState(1911); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NervalidatorContext extends ParserRuleContext { + public Token name; + public Token nerThreshold; + public Token inputValue; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public NervalidatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nervalidator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterNervalidator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitNervalidator(this); + } + } + + public final NervalidatorContext nervalidator() throws RecognitionException { + NervalidatorContext _localctx = new NervalidatorContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_nervalidator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1912); + match(T__224); + setState(1913); + match(T__7); + setState(1914); + ((NervalidatorContext)_localctx).name = match(STRING); + setState(1915); + match(T__225); + setState(1916); + ((NervalidatorContext)_localctx).nerThreshold = match(STRING); + setState(1917); + match(T__212); + setState(1918); + ((NervalidatorContext)_localctx).inputValue = match(STRING); + setState(1919); + match(T__9); + setState(1920); + match(T__1); + setState(1921); + match(T__2); + setState(1926); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1922); + match(T__10); + setState(1923); + ((NervalidatorContext)_localctx).condition = expression(); + } + } + setState(1928); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UrgencyTriageContext extends ParserRuleContext { + public Token name; + public Token inputFilePath; + public Token binaryClassifierModelFilePath; + public Token multiClassifierModelFilePath; + public Token checkboxClassifierModelFilePath; + public Token synonyms; + public Token binaryClassifierLabels; + public Token multiClassifierLabels; + public Token checkboxClassifierLabels; + public Token outputDir; + public Token binaryImageWidth; + public Token binaryImageHeight; + public Token multiImageWidth; + public Token multiImageHeight; + public Token checkboxImageWidth; + public Token checkboxImageHeight; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public UrgencyTriageContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_urgencyTriage; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterUrgencyTriage(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitUrgencyTriage(this); + } + } + + public final UrgencyTriageContext urgencyTriage() throws RecognitionException { + UrgencyTriageContext _localctx = new UrgencyTriageContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_urgencyTriage); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1929); + match(T__226); + setState(1930); + match(T__7); + setState(1931); + ((UrgencyTriageContext)_localctx).name = match(STRING); + setState(1932); + match(T__227); + setState(1933); + ((UrgencyTriageContext)_localctx).inputFilePath = match(STRING); + setState(1934); + match(T__228); + setState(1935); + ((UrgencyTriageContext)_localctx).binaryClassifierModelFilePath = match(STRING); + setState(1936); + match(T__229); + setState(1937); + ((UrgencyTriageContext)_localctx).multiClassifierModelFilePath = match(STRING); + setState(1938); + match(T__230); + setState(1939); + ((UrgencyTriageContext)_localctx).checkboxClassifierModelFilePath = match(STRING); + setState(1940); + match(T__231); + setState(1941); + ((UrgencyTriageContext)_localctx).synonyms = match(STRING); + setState(1942); + match(T__232); + setState(1943); + ((UrgencyTriageContext)_localctx).binaryClassifierLabels = match(STRING); + setState(1944); + match(T__233); + setState(1945); + ((UrgencyTriageContext)_localctx).multiClassifierLabels = match(STRING); + setState(1946); + match(T__234); + setState(1947); + ((UrgencyTriageContext)_localctx).checkboxClassifierLabels = match(STRING); + setState(1948); + match(T__104); + setState(1949); + ((UrgencyTriageContext)_localctx).outputDir = match(STRING); + setState(1950); + match(T__235); + setState(1951); + ((UrgencyTriageContext)_localctx).binaryImageWidth = match(STRING); + setState(1952); + match(T__236); + setState(1953); + ((UrgencyTriageContext)_localctx).binaryImageHeight = match(STRING); + setState(1954); + match(T__237); + setState(1955); + ((UrgencyTriageContext)_localctx).multiImageWidth = match(STRING); + setState(1956); + match(T__238); + setState(1957); + ((UrgencyTriageContext)_localctx).multiImageHeight = match(STRING); + setState(1958); + match(T__239); + setState(1959); + ((UrgencyTriageContext)_localctx).checkboxImageWidth = match(STRING); + setState(1960); + match(T__240); + setState(1961); + ((UrgencyTriageContext)_localctx).checkboxImageHeight = match(STRING); + setState(1962); + match(T__9); + setState(1963); + match(T__1); + setState(1964); + match(T__2); + setState(1969); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1965); + match(T__10); + setState(1966); + ((UrgencyTriageContext)_localctx).condition = expression(); + } + } + setState(1971); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DonutDocQaContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token resourceConn; + public Token responseAs; + public Token questionSql; + public ExpressionContext condition; + public Token forkBatchSize; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DonutDocQaContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_donutDocQa; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDonutDocQa(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDonutDocQa(this); + } + } + + public final DonutDocQaContext donutDocQa() throws RecognitionException { + DonutDocQaContext _localctx = new DonutDocQaContext(_ctx, getState()); + enterRule(_localctx, 154, RULE_donutDocQa); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1972); + match(T__241); + setState(1973); + match(T__7); + setState(1974); + ((DonutDocQaContext)_localctx).name = match(STRING); + setState(1975); + match(T__149); + setState(1976); + ((DonutDocQaContext)_localctx).outputDir = match(STRING); + setState(1977); + match(T__164); + setState(1978); + ((DonutDocQaContext)_localctx).resourceConn = match(STRING); + setState(1979); + match(T__161); + setState(1980); + ((DonutDocQaContext)_localctx).responseAs = match(STRING); + setState(1981); + match(T__9); + setState(1982); + match(T__1); + setState(1983); + ((DonutDocQaContext)_localctx).questionSql = match(STRING); + setState(1984); + match(T__2); + setState(1989); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(1985); + match(T__10); + setState(1986); + ((DonutDocQaContext)_localctx).condition = expression(); + } + } + setState(1991); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1996); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__28) { + { + { + setState(1992); + match(T__28); + setState(1993); + ((DonutDocQaContext)_localctx).forkBatchSize = match(STRING); + } + } + setState(1998); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ScalarAdapterContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token processID; + public Token resultSet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ScalarAdapterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_scalarAdapter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterScalarAdapter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitScalarAdapter(this); + } + } + + public final ScalarAdapterContext scalarAdapter() throws RecognitionException { + ScalarAdapterContext _localctx = new ScalarAdapterContext(_ctx, getState()); + enterRule(_localctx, 156, RULE_scalarAdapter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1999); + match(T__242); + setState(2000); + match(T__7); + setState(2001); + ((ScalarAdapterContext)_localctx).name = match(STRING); + setState(2002); + match(T__164); + setState(2003); + ((ScalarAdapterContext)_localctx).resourceConn = match(STRING); + setState(2004); + match(T__105); + setState(2005); + ((ScalarAdapterContext)_localctx).processID = match(STRING); + setState(2006); + match(T__243); + setState(2007); + match(T__1); + setState(2008); + ((ScalarAdapterContext)_localctx).resultSet = match(STRING); + setState(2009); + match(T__2); + setState(2014); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2010); + match(T__10); + setState(2011); + ((ScalarAdapterContext)_localctx).condition = expression(); + } + } + setState(2016); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PhraseMatchPaperFilterContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token processID; + public Token threadCount; + public Token readBatchSize; + public Token writeBatchSize; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public PhraseMatchPaperFilterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_phraseMatchPaperFilter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterPhraseMatchPaperFilter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitPhraseMatchPaperFilter(this); + } + } + + public final PhraseMatchPaperFilterContext phraseMatchPaperFilter() throws RecognitionException { + PhraseMatchPaperFilterContext _localctx = new PhraseMatchPaperFilterContext(_ctx, getState()); + enterRule(_localctx, 158, RULE_phraseMatchPaperFilter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2017); + match(T__244); + setState(2018); + match(T__7); + setState(2019); + ((PhraseMatchPaperFilterContext)_localctx).name = match(STRING); + setState(2020); + match(T__164); + setState(2021); + ((PhraseMatchPaperFilterContext)_localctx).resourceConn = match(STRING); + setState(2022); + match(T__245); + setState(2023); + ((PhraseMatchPaperFilterContext)_localctx).processID = match(STRING); + setState(2024); + match(T__246); + setState(2025); + ((PhraseMatchPaperFilterContext)_localctx).threadCount = match(STRING); + setState(2026); + match(T__247); + setState(2027); + ((PhraseMatchPaperFilterContext)_localctx).readBatchSize = match(STRING); + setState(2028); + match(T__248); + setState(2029); + ((PhraseMatchPaperFilterContext)_localctx).writeBatchSize = match(STRING); + setState(2030); + match(T__249); + setState(2031); + match(T__1); + setState(2032); + ((PhraseMatchPaperFilterContext)_localctx).querySet = match(STRING); + setState(2033); + match(T__2); + setState(2038); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2034); + match(T__10); + setState(2035); + ((PhraseMatchPaperFilterContext)_localctx).condition = expression(); + } + } + setState(2040); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ZeroShotClassifierPaperFilterContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token processID; + public Token threadCount; + public Token readBatchSize; + public Token writeBatchSize; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ZeroShotClassifierPaperFilterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_zeroShotClassifierPaperFilter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterZeroShotClassifierPaperFilter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitZeroShotClassifierPaperFilter(this); + } + } + + public final ZeroShotClassifierPaperFilterContext zeroShotClassifierPaperFilter() throws RecognitionException { + ZeroShotClassifierPaperFilterContext _localctx = new ZeroShotClassifierPaperFilterContext(_ctx, getState()); + enterRule(_localctx, 160, RULE_zeroShotClassifierPaperFilter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2041); + match(T__250); + setState(2042); + match(T__7); + setState(2043); + ((ZeroShotClassifierPaperFilterContext)_localctx).name = match(STRING); + setState(2044); + match(T__164); + setState(2045); + ((ZeroShotClassifierPaperFilterContext)_localctx).resourceConn = match(STRING); + setState(2046); + match(T__245); + setState(2047); + ((ZeroShotClassifierPaperFilterContext)_localctx).processID = match(STRING); + setState(2048); + match(T__246); + setState(2049); + ((ZeroShotClassifierPaperFilterContext)_localctx).threadCount = match(STRING); + setState(2050); + match(T__247); + setState(2051); + ((ZeroShotClassifierPaperFilterContext)_localctx).readBatchSize = match(STRING); + setState(2052); + match(T__248); + setState(2053); + ((ZeroShotClassifierPaperFilterContext)_localctx).writeBatchSize = match(STRING); + setState(2054); + match(T__249); + setState(2055); + match(T__1); + setState(2056); + ((ZeroShotClassifierPaperFilterContext)_localctx).querySet = match(STRING); + setState(2057); + match(T__2); + setState(2062); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2058); + match(T__10); + setState(2059); + ((ZeroShotClassifierPaperFilterContext)_localctx).condition = expression(); + } + } + setState(2064); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AssetInfoContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token auditTable; + public Token assetTable; + public Token values; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public AssetInfoContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assetInfo; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAssetInfo(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAssetInfo(this); + } + } + + public final AssetInfoContext assetInfo() throws RecognitionException { + AssetInfoContext _localctx = new AssetInfoContext(_ctx, getState()); + enterRule(_localctx, 162, RULE_assetInfo); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2065); + match(T__251); + setState(2066); + match(T__7); + setState(2067); + ((AssetInfoContext)_localctx).name = match(STRING); + setState(2068); + match(T__164); + setState(2069); + ((AssetInfoContext)_localctx).resourceConn = match(STRING); + setState(2070); + match(T__252); + setState(2071); + ((AssetInfoContext)_localctx).auditTable = match(STRING); + setState(2072); + match(T__253); + setState(2073); + ((AssetInfoContext)_localctx).assetTable = match(STRING); + setState(2074); + match(T__9); + setState(2075); + match(T__1); + setState(2076); + ((AssetInfoContext)_localctx).values = match(STRING); + setState(2077); + match(T__2); + setState(2082); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2078); + match(T__10); + setState(2079); + ((AssetInfoContext)_localctx).condition = expression(); + } + } + setState(2084); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DataExtractionContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token resultTable; + public Token processId; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DataExtractionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dataExtraction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDataExtraction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDataExtraction(this); + } + } + + public final DataExtractionContext dataExtraction() throws RecognitionException { + DataExtractionContext _localctx = new DataExtractionContext(_ctx, getState()); + enterRule(_localctx, 164, RULE_dataExtraction); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2085); + match(T__254); + setState(2086); + match(T__7); + setState(2087); + ((DataExtractionContext)_localctx).name = match(STRING); + setState(2088); + match(T__106); + setState(2089); + ((DataExtractionContext)_localctx).resourceConn = match(STRING); + setState(2090); + match(T__253); + setState(2091); + ((DataExtractionContext)_localctx).resultTable = match(STRING); + setState(2092); + match(T__105); + setState(2093); + ((DataExtractionContext)_localctx).processId = match(STRING); + setState(2094); + match(T__9); + setState(2095); + match(T__1); + setState(2096); + ((DataExtractionContext)_localctx).querySet = match(STRING); + setState(2097); + match(T__2); + setState(2102); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2098); + match(T__10); + setState(2099); + ((DataExtractionContext)_localctx).condition = expression(); + } + } + setState(2104); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EpisodeOfCoverageContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token originId; + public Token groupId; + public Token totalPages; + public Token outputTable; + public Token eocGroupingItem; + public Token eocIdCount; + public Token filepath; + public Token qrInput; + public Token value; + public Token pndValue; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public EpisodeOfCoverageContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_episodeOfCoverage; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterEpisodeOfCoverage(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitEpisodeOfCoverage(this); + } + } + + public final EpisodeOfCoverageContext episodeOfCoverage() throws RecognitionException { + EpisodeOfCoverageContext _localctx = new EpisodeOfCoverageContext(_ctx, getState()); + enterRule(_localctx, 166, RULE_episodeOfCoverage); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2105); + match(T__255); + setState(2106); + match(T__7); + setState(2107); + ((EpisodeOfCoverageContext)_localctx).name = match(STRING); + setState(2108); + match(T__164); + setState(2109); + ((EpisodeOfCoverageContext)_localctx).resourceConn = match(STRING); + setState(2110); + match(T__256); + setState(2111); + ((EpisodeOfCoverageContext)_localctx).originId = match(STRING); + setState(2112); + match(T__176); + setState(2113); + ((EpisodeOfCoverageContext)_localctx).groupId = match(STRING); + setState(2114); + match(T__257); + setState(2115); + ((EpisodeOfCoverageContext)_localctx).totalPages = match(STRING); + setState(2116); + match(T__258); + setState(2117); + ((EpisodeOfCoverageContext)_localctx).outputTable = match(STRING); + setState(2118); + match(T__259); + setState(2119); + ((EpisodeOfCoverageContext)_localctx).eocGroupingItem = match(STRING); + setState(2120); + match(T__260); + setState(2121); + ((EpisodeOfCoverageContext)_localctx).eocIdCount = match(STRING); + setState(2122); + match(T__227); + setState(2123); + match(T__1); + setState(2124); + ((EpisodeOfCoverageContext)_localctx).filepath = match(STRING); + setState(2125); + match(T__2); + setState(2126); + match(T__261); + setState(2127); + match(T__1); + setState(2128); + ((EpisodeOfCoverageContext)_localctx).qrInput = match(STRING); + setState(2129); + match(T__2); + setState(2130); + match(T__262); + setState(2131); + match(T__1); + setState(2132); + ((EpisodeOfCoverageContext)_localctx).value = match(STRING); + setState(2133); + match(T__2); + setState(2134); + match(T__263); + setState(2135); + match(T__1); + setState(2136); + ((EpisodeOfCoverageContext)_localctx).pndValue = match(STRING); + setState(2137); + match(T__2); + setState(2142); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2138); + match(T__10); + setState(2139); + ((EpisodeOfCoverageContext)_localctx).condition = expression(); + } + } + setState(2144); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UserRegistrationContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public UserRegistrationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_userRegistration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterUserRegistration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitUserRegistration(this); + } + } + + public final UserRegistrationContext userRegistration() throws RecognitionException { + UserRegistrationContext _localctx = new UserRegistrationContext(_ctx, getState()); + enterRule(_localctx, 168, RULE_userRegistration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2145); + match(T__264); + setState(2146); + match(T__7); + setState(2147); + ((UserRegistrationContext)_localctx).name = match(STRING); + setState(2148); + match(T__164); + setState(2149); + ((UserRegistrationContext)_localctx).resourceConn = match(STRING); + setState(2150); + match(T__9); + setState(2151); + match(T__1); + setState(2152); + match(T__2); + setState(2157); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2153); + match(T__10); + setState(2154); + ((UserRegistrationContext)_localctx).condition = expression(); + } + } + setState(2159); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AuthTokenContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public AuthTokenContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_authToken; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterAuthToken(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitAuthToken(this); + } + } + + public final AuthTokenContext authToken() throws RecognitionException { + AuthTokenContext _localctx = new AuthTokenContext(_ctx, getState()); + enterRule(_localctx, 170, RULE_authToken); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2160); + match(T__265); + setState(2161); + match(T__7); + setState(2162); + ((AuthTokenContext)_localctx).name = match(STRING); + setState(2163); + match(T__164); + setState(2164); + ((AuthTokenContext)_localctx).resourceConn = match(STRING); + setState(2165); + match(T__9); + setState(2166); + match(T__1); + setState(2167); + match(T__2); + setState(2172); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2168); + match(T__10); + setState(2169); + ((AuthTokenContext)_localctx).condition = expression(); + } + } + setState(2174); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EocJsonGeneratorContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token documentId; + public Token eocId; + public Token originId; + public Token groupId; + public Token authtoken; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public EocJsonGeneratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_eocJsonGenerator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterEocJsonGenerator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitEocJsonGenerator(this); + } + } + + public final EocJsonGeneratorContext eocJsonGenerator() throws RecognitionException { + EocJsonGeneratorContext _localctx = new EocJsonGeneratorContext(_ctx, getState()); + enterRule(_localctx, 172, RULE_eocJsonGenerator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2175); + match(T__266); + setState(2176); + match(T__7); + setState(2177); + ((EocJsonGeneratorContext)_localctx).name = match(STRING); + setState(2178); + match(T__164); + setState(2179); + ((EocJsonGeneratorContext)_localctx).resourceConn = match(STRING); + setState(2180); + match(T__267); + setState(2181); + ((EocJsonGeneratorContext)_localctx).documentId = match(STRING); + setState(2182); + match(T__268); + setState(2183); + ((EocJsonGeneratorContext)_localctx).eocId = match(STRING); + setState(2184); + match(T__256); + setState(2185); + ((EocJsonGeneratorContext)_localctx).originId = match(STRING); + setState(2186); + match(T__176); + setState(2187); + ((EocJsonGeneratorContext)_localctx).groupId = match(STRING); + setState(2188); + match(T__111); + setState(2189); + ((EocJsonGeneratorContext)_localctx).authtoken = match(STRING); + setState(2190); + match(T__9); + setState(2191); + match(T__1); + setState(2192); + match(T__2); + setState(2197); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2193); + match(T__10); + setState(2194); + ((EocJsonGeneratorContext)_localctx).condition = expression(); + } + } + setState(2199); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ZipContentListContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token documentId; + public Token originId; + public Token zipFilePath; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ZipContentListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_zipContentList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterZipContentList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitZipContentList(this); + } + } + + public final ZipContentListContext zipContentList() throws RecognitionException { + ZipContentListContext _localctx = new ZipContentListContext(_ctx, getState()); + enterRule(_localctx, 174, RULE_zipContentList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2200); + match(T__269); + setState(2201); + match(T__7); + setState(2202); + ((ZipContentListContext)_localctx).name = match(STRING); + setState(2203); + match(T__164); + setState(2204); + ((ZipContentListContext)_localctx).resourceConn = match(STRING); + setState(2205); + match(T__267); + setState(2206); + ((ZipContentListContext)_localctx).documentId = match(STRING); + setState(2207); + match(T__256); + setState(2208); + ((ZipContentListContext)_localctx).originId = match(STRING); + setState(2209); + match(T__270); + setState(2210); + ((ZipContentListContext)_localctx).zipFilePath = match(STRING); + setState(2211); + match(T__9); + setState(2212); + match(T__1); + setState(2213); + match(T__2); + setState(2218); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2214); + match(T__10); + setState(2215); + ((ZipContentListContext)_localctx).condition = expression(); + } + } + setState(2220); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class HwDetectionContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token directoryPath; + public Token modelPath; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public HwDetectionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_hwDetection; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterHwDetection(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitHwDetection(this); + } + } + + public final HwDetectionContext hwDetection() throws RecognitionException { + HwDetectionContext _localctx = new HwDetectionContext(_ctx, getState()); + enterRule(_localctx, 176, RULE_hwDetection); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2221); + match(T__271); + setState(2222); + match(T__7); + setState(2223); + ((HwDetectionContext)_localctx).name = match(STRING); + setState(2224); + match(T__164); + setState(2225); + ((HwDetectionContext)_localctx).resourceConn = match(STRING); + setState(2226); + match(T__272); + setState(2227); + ((HwDetectionContext)_localctx).directoryPath = match(STRING); + setState(2228); + match(T__273); + setState(2229); + ((HwDetectionContext)_localctx).modelPath = match(STRING); + setState(2230); + match(T__9); + setState(2231); + match(T__1); + setState(2232); + ((HwDetectionContext)_localctx).querySet = match(STRING); + setState(2233); + match(T__2); + setState(2238); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2234); + match(T__10); + setState(2235); + ((HwDetectionContext)_localctx).condition = expression(); + } + } + setState(2240); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IntellimatchContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token matchResult; + public Token inputSet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public IntellimatchContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_intellimatch; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterIntellimatch(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitIntellimatch(this); + } + } + + public final IntellimatchContext intellimatch() throws RecognitionException { + IntellimatchContext _localctx = new IntellimatchContext(_ctx, getState()); + enterRule(_localctx, 178, RULE_intellimatch); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2241); + match(T__274); + setState(2242); + match(T__7); + setState(2243); + ((IntellimatchContext)_localctx).name = match(STRING); + setState(2244); + match(T__164); + setState(2245); + ((IntellimatchContext)_localctx).resourceConn = match(STRING); + setState(2246); + match(T__275); + setState(2247); + ((IntellimatchContext)_localctx).matchResult = match(STRING); + setState(2248); + match(T__9); + setState(2249); + match(T__1); + setState(2250); + ((IntellimatchContext)_localctx).inputSet = match(STRING); + setState(2251); + match(T__2); + setState(2256); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2252); + match(T__10); + setState(2253); + ((IntellimatchContext)_localctx).condition = expression(); + } + } + setState(2258); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CheckboxVqaContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token processID; + public Token cadModelPath; + public Token cdModelPath; + public Token crModelPath; + public Token textModel; + public Token crWidth; + public Token crHeight; + public Token outputDir; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public CheckboxVqaContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_checkboxVqa; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCheckboxVqa(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCheckboxVqa(this); + } + } + + public final CheckboxVqaContext checkboxVqa() throws RecognitionException { + CheckboxVqaContext _localctx = new CheckboxVqaContext(_ctx, getState()); + enterRule(_localctx, 180, RULE_checkboxVqa); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2259); + match(T__276); + setState(2260); + match(T__7); + setState(2261); + ((CheckboxVqaContext)_localctx).name = match(STRING); + setState(2262); + match(T__164); + setState(2263); + ((CheckboxVqaContext)_localctx).resourceConn = match(STRING); + setState(2264); + match(T__105); + setState(2265); + ((CheckboxVqaContext)_localctx).processID = match(STRING); + setState(2266); + match(T__277); + setState(2267); + ((CheckboxVqaContext)_localctx).cadModelPath = match(STRING); + setState(2268); + match(T__278); + setState(2269); + ((CheckboxVqaContext)_localctx).cdModelPath = match(STRING); + setState(2270); + match(T__279); + setState(2271); + ((CheckboxVqaContext)_localctx).crModelPath = match(STRING); + setState(2272); + match(T__280); + setState(2273); + ((CheckboxVqaContext)_localctx).textModel = match(STRING); + setState(2274); + match(T__281); + setState(2275); + ((CheckboxVqaContext)_localctx).crWidth = match(STRING); + setState(2276); + match(T__282); + setState(2277); + ((CheckboxVqaContext)_localctx).crHeight = match(STRING); + setState(2278); + match(T__104); + setState(2279); + ((CheckboxVqaContext)_localctx).outputDir = match(STRING); + setState(2280); + match(T__9); + setState(2281); + match(T__1); + setState(2282); + ((CheckboxVqaContext)_localctx).querySet = match(STRING); + setState(2283); + match(T__2); + setState(2288); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2284); + match(T__10); + setState(2285); + ((CheckboxVqaContext)_localctx).condition = expression(); + } + } + setState(2290); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PixelClassifierUrgencyTriageContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token processID; + public Token binaryClassifierModelFilePath; + public Token multiClassifierModelFilePath; + public Token checkboxClassifierModelFilePath; + public Token synonyms; + public Token binaryClassifierLabels; + public Token multiClassifierLabels; + public Token checkboxClassifierLabels; + public Token outputDir; + public Token binaryImageWidth; + public Token binaryImageHeight; + public Token multiImageWidth; + public Token multiImageHeight; + public Token checkboxImageWidth; + public Token checkboxImageHeight; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public PixelClassifierUrgencyTriageContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pixelClassifierUrgencyTriage; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterPixelClassifierUrgencyTriage(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitPixelClassifierUrgencyTriage(this); + } + } + + public final PixelClassifierUrgencyTriageContext pixelClassifierUrgencyTriage() throws RecognitionException { + PixelClassifierUrgencyTriageContext _localctx = new PixelClassifierUrgencyTriageContext(_ctx, getState()); + enterRule(_localctx, 182, RULE_pixelClassifierUrgencyTriage); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2291); + match(T__283); + setState(2292); + match(T__7); + setState(2293); + ((PixelClassifierUrgencyTriageContext)_localctx).name = match(STRING); + setState(2294); + match(T__164); + setState(2295); + ((PixelClassifierUrgencyTriageContext)_localctx).resourceConn = match(STRING); + setState(2296); + match(T__105); + setState(2297); + ((PixelClassifierUrgencyTriageContext)_localctx).processID = match(STRING); + setState(2298); + match(T__228); + setState(2299); + ((PixelClassifierUrgencyTriageContext)_localctx).binaryClassifierModelFilePath = match(STRING); + setState(2300); + match(T__229); + setState(2301); + ((PixelClassifierUrgencyTriageContext)_localctx).multiClassifierModelFilePath = match(STRING); + setState(2302); + match(T__230); + setState(2303); + ((PixelClassifierUrgencyTriageContext)_localctx).checkboxClassifierModelFilePath = match(STRING); + setState(2304); + match(T__231); + setState(2305); + ((PixelClassifierUrgencyTriageContext)_localctx).synonyms = match(STRING); + setState(2306); + match(T__232); + setState(2307); + ((PixelClassifierUrgencyTriageContext)_localctx).binaryClassifierLabels = match(STRING); + setState(2308); + match(T__233); + setState(2309); + ((PixelClassifierUrgencyTriageContext)_localctx).multiClassifierLabels = match(STRING); + setState(2310); + match(T__234); + setState(2311); + ((PixelClassifierUrgencyTriageContext)_localctx).checkboxClassifierLabels = match(STRING); + setState(2312); + match(T__104); + setState(2313); + ((PixelClassifierUrgencyTriageContext)_localctx).outputDir = match(STRING); + setState(2314); + match(T__235); + setState(2315); + ((PixelClassifierUrgencyTriageContext)_localctx).binaryImageWidth = match(STRING); + setState(2316); + match(T__236); + setState(2317); + ((PixelClassifierUrgencyTriageContext)_localctx).binaryImageHeight = match(STRING); + setState(2318); + match(T__237); + setState(2319); + ((PixelClassifierUrgencyTriageContext)_localctx).multiImageWidth = match(STRING); + setState(2320); + match(T__238); + setState(2321); + ((PixelClassifierUrgencyTriageContext)_localctx).multiImageHeight = match(STRING); + setState(2322); + match(T__239); + setState(2323); + ((PixelClassifierUrgencyTriageContext)_localctx).checkboxImageWidth = match(STRING); + setState(2324); + match(T__240); + setState(2325); + ((PixelClassifierUrgencyTriageContext)_localctx).checkboxImageHeight = match(STRING); + setState(2326); + match(T__9); + setState(2327); + match(T__1); + setState(2328); + ((PixelClassifierUrgencyTriageContext)_localctx).querySet = match(STRING); + setState(2329); + match(T__2); + setState(2334); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2330); + match(T__10); + setState(2331); + ((PixelClassifierUrgencyTriageContext)_localctx).condition = expression(); + } + } + setState(2336); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class QrExtractionContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token processId; + public Token outputTable; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public QrExtractionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_qrExtraction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterQrExtraction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitQrExtraction(this); + } + } + + public final QrExtractionContext qrExtraction() throws RecognitionException { + QrExtractionContext _localctx = new QrExtractionContext(_ctx, getState()); + enterRule(_localctx, 184, RULE_qrExtraction); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2337); + match(T__284); + setState(2338); + match(T__7); + setState(2339); + ((QrExtractionContext)_localctx).name = match(STRING); + setState(2340); + match(T__164); + setState(2341); + ((QrExtractionContext)_localctx).resourceConn = match(STRING); + setState(2342); + match(T__105); + setState(2343); + ((QrExtractionContext)_localctx).processId = match(STRING); + setState(2344); + match(T__258); + setState(2345); + ((QrExtractionContext)_localctx).outputTable = match(STRING); + setState(2346); + match(T__9); + setState(2347); + match(T__1); + setState(2348); + ((QrExtractionContext)_localctx).querySet = match(STRING); + setState(2349); + match(T__2); + setState(2354); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2350); + match(T__10); + setState(2351); + ((QrExtractionContext)_localctx).condition = expression(); + } + } + setState(2356); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PaperItemizerContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token resultTable; + public Token processId; + public Token resourceConn; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public PaperItemizerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_paperItemizer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterPaperItemizer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitPaperItemizer(this); + } + } + + public final PaperItemizerContext paperItemizer() throws RecognitionException { + PaperItemizerContext _localctx = new PaperItemizerContext(_ctx, getState()); + enterRule(_localctx, 186, RULE_paperItemizer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2357); + match(T__285); + setState(2358); + match(T__7); + setState(2359); + ((PaperItemizerContext)_localctx).name = match(STRING); + setState(2360); + match(T__272); + setState(2361); + ((PaperItemizerContext)_localctx).outputDir = match(STRING); + setState(2362); + match(T__253); + setState(2363); + ((PaperItemizerContext)_localctx).resultTable = match(STRING); + setState(2364); + match(T__286); + setState(2365); + ((PaperItemizerContext)_localctx).processId = match(STRING); + setState(2366); + match(T__106); + setState(2367); + ((PaperItemizerContext)_localctx).resourceConn = match(STRING); + setState(2368); + match(T__9); + setState(2369); + match(T__1); + setState(2370); + ((PaperItemizerContext)_localctx).querySet = match(STRING); + setState(2371); + match(T__2); + setState(2376); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2372); + match(T__10); + setState(2373); + ((PaperItemizerContext)_localctx).condition = expression(); + } + } + setState(2378); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NerAdapterContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token resultTable; + public Token resultSet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public NerAdapterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nerAdapter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterNerAdapter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitNerAdapter(this); + } + } + + public final NerAdapterContext nerAdapter() throws RecognitionException { + NerAdapterContext _localctx = new NerAdapterContext(_ctx, getState()); + enterRule(_localctx, 188, RULE_nerAdapter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2379); + match(T__287); + setState(2380); + match(T__7); + setState(2381); + ((NerAdapterContext)_localctx).name = match(STRING); + setState(2382); + match(T__164); + setState(2383); + ((NerAdapterContext)_localctx).resourceConn = match(STRING); + setState(2384); + match(T__253); + setState(2385); + ((NerAdapterContext)_localctx).resultTable = match(STRING); + setState(2386); + match(T__243); + setState(2387); + match(T__1); + setState(2388); + ((NerAdapterContext)_localctx).resultSet = match(STRING); + setState(2389); + match(T__2); + setState(2394); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2390); + match(T__10); + setState(2391); + ((NerAdapterContext)_localctx).condition = expression(); + } + } + setState(2396); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResourceContext extends ParserRuleContext { + public TerminalNode STRING() { return getToken(RavenParser.STRING, 0); } + public ResourceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_resource; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterResource(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitResource(this); + } + } + + public final ResourceContext resource() throws RecognitionException { + ResourceContext _localctx = new ResourceContext(_ctx, getState()); + enterRule(_localctx, 190, RULE_resource); + try { + enterOuterAlt(_localctx, 1); + { + setState(2397); + match(STRING); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CoproStartContext extends ParserRuleContext { + public Token name; + public Token moduleName; + public Token coproServerUrl; + public Token exportCommand; + public Token processID; + public Token resourceConn; + public Token command; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public CoproStartContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_coproStart; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCoproStart(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCoproStart(this); + } + } + + public final CoproStartContext coproStart() throws RecognitionException { + CoproStartContext _localctx = new CoproStartContext(_ctx, getState()); + enterRule(_localctx, 192, RULE_coproStart); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2399); + match(T__288); + setState(2400); + match(T__7); + setState(2401); + ((CoproStartContext)_localctx).name = match(STRING); + setState(2402); + match(T__289); + setState(2403); + ((CoproStartContext)_localctx).moduleName = match(STRING); + setState(2404); + match(T__290); + setState(2405); + ((CoproStartContext)_localctx).coproServerUrl = match(STRING); + setState(2406); + match(T__291); + setState(2407); + ((CoproStartContext)_localctx).exportCommand = match(STRING); + setState(2408); + match(T__105); + setState(2409); + ((CoproStartContext)_localctx).processID = match(STRING); + setState(2410); + match(T__106); + setState(2411); + ((CoproStartContext)_localctx).resourceConn = match(STRING); + setState(2412); + match(T__9); + setState(2413); + match(T__1); + setState(2414); + ((CoproStartContext)_localctx).command = match(STRING); + setState(2415); + match(T__2); + setState(2420); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2416); + match(T__10); + setState(2417); + ((CoproStartContext)_localctx).condition = expression(); + } + } + setState(2422); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CoproStopContext extends ParserRuleContext { + public Token name; + public Token moduleName; + public Token coproServerUrl; + public Token processID; + public Token resourceConn; + public Token command; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public CoproStopContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_coproStop; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterCoproStop(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitCoproStop(this); + } + } + + public final CoproStopContext coproStop() throws RecognitionException { + CoproStopContext _localctx = new CoproStopContext(_ctx, getState()); + enterRule(_localctx, 194, RULE_coproStop); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2423); + match(T__292); + setState(2424); + match(T__7); + setState(2425); + ((CoproStopContext)_localctx).name = match(STRING); + setState(2426); + match(T__289); + setState(2427); + ((CoproStopContext)_localctx).moduleName = match(STRING); + setState(2428); + match(T__290); + setState(2429); + ((CoproStopContext)_localctx).coproServerUrl = match(STRING); + setState(2430); + match(T__105); + setState(2431); + ((CoproStopContext)_localctx).processID = match(STRING); + setState(2432); + match(T__106); + setState(2433); + ((CoproStopContext)_localctx).resourceConn = match(STRING); + setState(2434); + match(T__9); + setState(2435); + match(T__1); + setState(2436); + ((CoproStopContext)_localctx).command = match(STRING); + setState(2437); + match(T__2); + setState(2442); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2438); + match(T__10); + setState(2439); + ((CoproStopContext)_localctx).condition = expression(); + } + } + setState(2444); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OutboundDeliveryNotifyContext extends ParserRuleContext { + public Token name; + public Token documentId; + public Token inticsZipUri; + public Token zipChecksum; + public Token resourceConn; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public OutboundDeliveryNotifyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_outboundDeliveryNotify; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterOutboundDeliveryNotify(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitOutboundDeliveryNotify(this); + } + } + + public final OutboundDeliveryNotifyContext outboundDeliveryNotify() throws RecognitionException { + OutboundDeliveryNotifyContext _localctx = new OutboundDeliveryNotifyContext(_ctx, getState()); + enterRule(_localctx, 196, RULE_outboundDeliveryNotify); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2445); + match(T__293); + setState(2446); + match(T__7); + setState(2447); + ((OutboundDeliveryNotifyContext)_localctx).name = match(STRING); + setState(2448); + match(T__267); + setState(2449); + ((OutboundDeliveryNotifyContext)_localctx).documentId = match(STRING); + setState(2450); + match(T__294); + setState(2451); + ((OutboundDeliveryNotifyContext)_localctx).inticsZipUri = match(STRING); + setState(2452); + match(T__96); + setState(2453); + ((OutboundDeliveryNotifyContext)_localctx).zipChecksum = match(STRING); + setState(2454); + match(T__106); + setState(2455); + ((OutboundDeliveryNotifyContext)_localctx).resourceConn = match(STRING); + setState(2456); + match(T__9); + setState(2457); + match(T__1); + setState(2458); + ((OutboundDeliveryNotifyContext)_localctx).querySet = match(STRING); + setState(2459); + match(T__2); + setState(2464); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2460); + match(T__10); + setState(2461); + ((OutboundDeliveryNotifyContext)_localctx).condition = expression(); + } + } + setState(2466); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MasterdataComparisonContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token matchResult; + public Token inputSet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public MasterdataComparisonContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_masterdataComparison; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterMasterdataComparison(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitMasterdataComparison(this); + } + } + + public final MasterdataComparisonContext masterdataComparison() throws RecognitionException { + MasterdataComparisonContext _localctx = new MasterdataComparisonContext(_ctx, getState()); + enterRule(_localctx, 198, RULE_masterdataComparison); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2467); + match(T__295); + setState(2468); + match(T__7); + setState(2469); + ((MasterdataComparisonContext)_localctx).name = match(STRING); + setState(2470); + match(T__164); + setState(2471); + ((MasterdataComparisonContext)_localctx).resourceConn = match(STRING); + setState(2472); + match(T__275); + setState(2473); + ((MasterdataComparisonContext)_localctx).matchResult = match(STRING); + setState(2474); + match(T__9); + setState(2475); + match(T__1); + setState(2476); + ((MasterdataComparisonContext)_localctx).inputSet = match(STRING); + setState(2477); + match(T__2); + setState(2482); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2478); + match(T__10); + setState(2479); + ((MasterdataComparisonContext)_localctx).condition = expression(); + } + } + setState(2484); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ZipBatchContext extends ParserRuleContext { + public Token name; + public Token groupId; + public Token outputDir; + public Token resourceConn; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ZipBatchContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_zipBatch; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterZipBatch(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitZipBatch(this); + } + } + + public final ZipBatchContext zipBatch() throws RecognitionException { + ZipBatchContext _localctx = new ZipBatchContext(_ctx, getState()); + enterRule(_localctx, 200, RULE_zipBatch); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2485); + match(T__296); + setState(2486); + match(T__7); + setState(2487); + ((ZipBatchContext)_localctx).name = match(STRING); + setState(2488); + match(T__176); + setState(2489); + ((ZipBatchContext)_localctx).groupId = match(STRING); + setState(2490); + match(T__104); + setState(2491); + ((ZipBatchContext)_localctx).outputDir = match(STRING); + setState(2492); + match(T__164); + setState(2493); + ((ZipBatchContext)_localctx).resourceConn = match(STRING); + setState(2494); + match(T__9); + setState(2495); + match(T__1); + setState(2496); + match(T__2); + setState(2501); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2497); + match(T__10); + setState(2498); + ((ZipBatchContext)_localctx).condition = expression(); + } + } + setState(2503); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DrugMatchContext extends ParserRuleContext { + public Token name; + public Token resourceConn; + public Token drugCompare; + public Token inputSet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DrugMatchContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drugMatch; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDrugMatch(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDrugMatch(this); + } + } + + public final DrugMatchContext drugMatch() throws RecognitionException { + DrugMatchContext _localctx = new DrugMatchContext(_ctx, getState()); + enterRule(_localctx, 202, RULE_drugMatch); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2504); + match(T__297); + setState(2505); + match(T__7); + setState(2506); + ((DrugMatchContext)_localctx).name = match(STRING); + setState(2507); + match(T__164); + setState(2508); + ((DrugMatchContext)_localctx).resourceConn = match(STRING); + setState(2509); + match(T__298); + setState(2510); + ((DrugMatchContext)_localctx).drugCompare = match(STRING); + setState(2511); + match(T__9); + setState(2512); + match(T__1); + setState(2513); + ((DrugMatchContext)_localctx).inputSet = match(STRING); + setState(2514); + match(T__2); + setState(2519); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2515); + match(T__10); + setState(2516); + ((DrugMatchContext)_localctx).condition = expression(); + } + } + setState(2521); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UrgencyTriageModelContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token resourceConn; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public UrgencyTriageModelContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_urgencyTriageModel; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterUrgencyTriageModel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitUrgencyTriageModel(this); + } + } + + public final UrgencyTriageModelContext urgencyTriageModel() throws RecognitionException { + UrgencyTriageModelContext _localctx = new UrgencyTriageModelContext(_ctx, getState()); + enterRule(_localctx, 204, RULE_urgencyTriageModel); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2522); + match(T__299); + setState(2523); + match(T__7); + setState(2524); + ((UrgencyTriageModelContext)_localctx).name = match(STRING); + setState(2525); + match(T__104); + setState(2526); + ((UrgencyTriageModelContext)_localctx).outputDir = match(STRING); + setState(2527); + match(T__106); + setState(2528); + ((UrgencyTriageModelContext)_localctx).resourceConn = match(STRING); + setState(2529); + match(T__9); + setState(2530); + match(T__1); + setState(2531); + ((UrgencyTriageModelContext)_localctx).querySet = match(STRING); + setState(2532); + match(T__2); + setState(2537); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2533); + match(T__10); + setState(2534); + ((UrgencyTriageModelContext)_localctx).condition = expression(); + } + } + setState(2539); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DonutImpiraQaContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token resourceConn; + public Token responseAs; + public Token questionSql; + public ExpressionContext condition; + public Token forkBatchSize; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public DonutImpiraQaContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_donutImpiraQa; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterDonutImpiraQa(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitDonutImpiraQa(this); + } + } + + public final DonutImpiraQaContext donutImpiraQa() throws RecognitionException { + DonutImpiraQaContext _localctx = new DonutImpiraQaContext(_ctx, getState()); + enterRule(_localctx, 206, RULE_donutImpiraQa); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2540); + match(T__300); + setState(2541); + match(T__7); + setState(2542); + ((DonutImpiraQaContext)_localctx).name = match(STRING); + setState(2543); + match(T__149); + setState(2544); + ((DonutImpiraQaContext)_localctx).outputDir = match(STRING); + setState(2545); + match(T__164); + setState(2546); + ((DonutImpiraQaContext)_localctx).resourceConn = match(STRING); + setState(2547); + match(T__161); + setState(2548); + ((DonutImpiraQaContext)_localctx).responseAs = match(STRING); + setState(2549); + match(T__9); + setState(2550); + match(T__1); + setState(2551); + ((DonutImpiraQaContext)_localctx).questionSql = match(STRING); + setState(2552); + match(T__2); + setState(2557); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2553); + match(T__10); + setState(2554); + ((DonutImpiraQaContext)_localctx).condition = expression(); + } + } + setState(2559); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2564); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__28) { + { + { + setState(2560); + match(T__28); + setState(2561); + ((DonutImpiraQaContext)_localctx).forkBatchSize = match(STRING); + } + } + setState(2566); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TemplateDetectionContext extends ParserRuleContext { + public Token name; + public Token coproUrl; + public Token resourceConn; + public Token inputTable; + public Token processId; + public Token ouputTable; + public Token querySet; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TemplateDetectionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_templateDetection; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterTemplateDetection(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitTemplateDetection(this); + } + } + + public final TemplateDetectionContext templateDetection() throws RecognitionException { + TemplateDetectionContext _localctx = new TemplateDetectionContext(_ctx, getState()); + enterRule(_localctx, 208, RULE_templateDetection); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2567); + match(T__301); + setState(2568); + match(T__7); + setState(2569); + ((TemplateDetectionContext)_localctx).name = match(STRING); + setState(2570); + match(T__302); + setState(2571); + ((TemplateDetectionContext)_localctx).coproUrl = match(STRING); + setState(2572); + match(T__106); + setState(2573); + ((TemplateDetectionContext)_localctx).resourceConn = match(STRING); + setState(2574); + match(T__303); + setState(2575); + ((TemplateDetectionContext)_localctx).inputTable = match(STRING); + setState(2576); + match(T__105); + setState(2577); + ((TemplateDetectionContext)_localctx).processId = match(STRING); + setState(2578); + match(T__304); + setState(2579); + ((TemplateDetectionContext)_localctx).ouputTable = match(STRING); + setState(2580); + match(T__9); + setState(2581); + match(T__1); + setState(2582); + ((TemplateDetectionContext)_localctx).querySet = match(STRING); + setState(2583); + match(T__2); + setState(2588); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2584); + match(T__10); + setState(2585); + ((TemplateDetectionContext)_localctx).condition = expression(); + } + } + setState(2590); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TrinityModelContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token resourceConn; + public Token responseAs; + public Token requestUrl; + public Token questionSql; + public ExpressionContext condition; + public Token forkBatchSize; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TrinityModelContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_trinityModel; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterTrinityModel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitTrinityModel(this); + } + } + + public final TrinityModelContext trinityModel() throws RecognitionException { + TrinityModelContext _localctx = new TrinityModelContext(_ctx, getState()); + enterRule(_localctx, 210, RULE_trinityModel); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2591); + match(T__305); + setState(2592); + match(T__7); + setState(2593); + ((TrinityModelContext)_localctx).name = match(STRING); + setState(2594); + match(T__149); + setState(2595); + ((TrinityModelContext)_localctx).outputDir = match(STRING); + setState(2596); + match(T__164); + setState(2597); + ((TrinityModelContext)_localctx).resourceConn = match(STRING); + setState(2598); + match(T__161); + setState(2599); + ((TrinityModelContext)_localctx).responseAs = match(STRING); + setState(2600); + match(T__306); + setState(2601); + ((TrinityModelContext)_localctx).requestUrl = match(STRING); + setState(2602); + match(T__9); + setState(2603); + match(T__1); + setState(2604); + ((TrinityModelContext)_localctx).questionSql = match(STRING); + setState(2605); + match(T__2); + setState(2610); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2606); + match(T__10); + setState(2607); + ((TrinityModelContext)_localctx).condition = expression(); + } + } + setState(2612); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2617); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__28) { + { + { + setState(2613); + match(T__28); + setState(2614); + ((TrinityModelContext)_localctx).forkBatchSize = match(STRING); + } + } + setState(2619); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FileBucketingContext extends ParserRuleContext { + public Token name; + public Token outputDir; + public Token inputDirectory; + public ExpressionContext condition; + public List STRING() { return getTokens(RavenParser.STRING); } + public TerminalNode STRING(int i) { + return getToken(RavenParser.STRING, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public FileBucketingContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fileBucketing; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterFileBucketing(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitFileBucketing(this); + } + } + + public final FileBucketingContext fileBucketing() throws RecognitionException { + FileBucketingContext _localctx = new FileBucketingContext(_ctx, getState()); + enterRule(_localctx, 212, RULE_fileBucketing); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2620); + match(T__307); + setState(2621); + match(T__7); + setState(2622); + ((FileBucketingContext)_localctx).name = match(STRING); + setState(2623); + match(T__104); + setState(2624); + ((FileBucketingContext)_localctx).outputDir = match(STRING); + setState(2625); + match(T__9); + setState(2626); + match(T__1); + setState(2627); + ((FileBucketingContext)_localctx).inputDirectory = match(STRING); + setState(2628); + match(T__2); + setState(2633); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__10) { + { + { + setState(2629); + match(T__10); + setState(2630); + ((FileBucketingContext)_localctx).condition = expression(); + } + } + setState(2635); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class JsonContext extends ParserRuleContext { + public ObjContext obj() { + return getRuleContext(ObjContext.class,0); + } + public ArrContext arr() { + return getRuleContext(ArrContext.class,0); + } + public JsonContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_json; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterJson(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitJson(this); + } + } + + public final JsonContext json() throws RecognitionException { + JsonContext _localctx = new JsonContext(_ctx, getState()); + enterRule(_localctx, 214, RULE_json); + try { + setState(2638); + _errHandler.sync(this); + switch (_input.LA(1)) { + case T__1: + enterOuterAlt(_localctx, 1); + { + setState(2636); + obj(); + } + break; + case T__310: + enterOuterAlt(_localctx, 2); + { + setState(2637); + arr(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ObjContext extends ParserRuleContext { + public List pair() { + return getRuleContexts(PairContext.class); + } + public PairContext pair(int i) { + return getRuleContext(PairContext.class,i); + } + public ObjContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_obj; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterObj(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitObj(this); + } + } + + public final ObjContext obj() throws RecognitionException { + ObjContext _localctx = new ObjContext(_ctx, getState()); + enterRule(_localctx, 216, RULE_obj); + int _la; + try { + setState(2653); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,137,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2640); + match(T__1); + setState(2641); + pair(); + setState(2646); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__308) { + { + { + setState(2642); + match(T__308); + setState(2643); + pair(); + } + } + setState(2648); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2649); + match(T__2); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2651); + match(T__1); + setState(2652); + match(T__2); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PairContext extends ParserRuleContext { + public TerminalNode STRING() { return getToken(RavenParser.STRING, 0); } + public JValueContext jValue() { + return getRuleContext(JValueContext.class,0); + } + public PairContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pair; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterPair(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitPair(this); + } + } + + public final PairContext pair() throws RecognitionException { + PairContext _localctx = new PairContext(_ctx, getState()); + enterRule(_localctx, 218, RULE_pair); + try { + enterOuterAlt(_localctx, 1); + { + setState(2655); + match(STRING); + setState(2656); + match(T__309); + setState(2657); + jValue(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrContext extends ParserRuleContext { + public List jValue() { + return getRuleContexts(JValueContext.class); + } + public JValueContext jValue(int i) { + return getRuleContext(JValueContext.class,i); + } + public ArrContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterArr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitArr(this); + } + } + + public final ArrContext arr() throws RecognitionException { + ArrContext _localctx = new ArrContext(_ctx, getState()); + enterRule(_localctx, 220, RULE_arr); + int _la; + try { + setState(2672); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,139,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2659); + match(T__310); + setState(2660); + jValue(); + setState(2665); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__308) { + { + { + setState(2661); + match(T__308); + setState(2662); + jValue(); + } + } + setState(2667); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2668); + match(T__311); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2670); + match(T__310); + setState(2671); + match(T__311); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class JValueContext extends ParserRuleContext { + public TerminalNode STRING() { return getToken(RavenParser.STRING, 0); } + public TerminalNode NUMBER() { return getToken(RavenParser.NUMBER, 0); } + public ObjContext obj() { + return getRuleContext(ObjContext.class,0); + } + public ArrContext arr() { + return getRuleContext(ArrContext.class,0); + } + public JValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_jValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).enterJValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof RavenListener ) ((RavenListener)listener).exitJValue(this); + } + } + + public final JValueContext jValue() throws RecognitionException { + JValueContext _localctx = new JValueContext(_ctx, getState()); + enterRule(_localctx, 222, RULE_jValue); + try { + setState(2681); + _errHandler.sync(this); + switch (_input.LA(1)) { + case STRING: + enterOuterAlt(_localctx, 1); + { + setState(2674); + match(STRING); + } + break; + case NUMBER: + enterOuterAlt(_localctx, 2); + { + setState(2675); + match(NUMBER); + } + break; + case T__1: + enterOuterAlt(_localctx, 3); + { + setState(2676); + obj(); + } + break; + case T__310: + enterOuterAlt(_localctx, 4); + { + setState(2677); + arr(); + } + break; + case T__312: + enterOuterAlt(_localctx, 5); + { + setState(2678); + match(T__312); + } + break; + case T__313: + enterOuterAlt(_localctx, 6); + { + setState(2679); + match(T__313); + } + break; + case T__314: + enterOuterAlt(_localctx, 7); + { + setState(2680); + match(T__314); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + private static final String _serializedATNSegment0 = + "\u0004\u0001\u0143\u0a7c\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001"+ + "\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004"+ + "\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007"+ + "\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b\u0007\u000b"+ + "\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002\u000f\u0007"+ + "\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002\u0012\u0007"+ + "\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002\u0015\u0007"+ + "\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002\u0018\u0007"+ + "\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002\u001b\u0007"+ + "\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002\u001e\u0007"+ + "\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007!\u0002\"\u0007"+ + "\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007&\u0002\'\u0007"+ + "\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007+\u0002,\u0007"+ + ",\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u00070\u00021\u0007"+ + "1\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u00075\u00026\u0007"+ + "6\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007:\u0002;\u0007"+ + ";\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007?\u0002@\u0007"+ + "@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007D\u0002E\u0007"+ + "E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007I\u0002J\u0007"+ + "J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007N\u0002O\u0007"+ + "O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007S\u0002T\u0007"+ + "T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007X\u0002Y\u0007"+ + "Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007]\u0002^\u0007"+ + "^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007b\u0002c\u0007"+ + "c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007g\u0002h\u0007"+ + "h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007l\u0002m\u0007"+ + "m\u0002n\u0007n\u0002o\u0007o\u0001\u0000\u0001\u0000\u0001\u0000\u0001"+ + "\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0001\u0001"+ + "\u0001\u0001\u0001\u0005\u0001\u00ec\b\u0001\n\u0001\f\u0001\u00ef\t\u0001"+ + "\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0002\u0005\u0002"+ + "\u00f6\b\u0002\n\u0002\f\u0002\u00f9\t\u0002\u0001\u0002\u0001\u0002\u0001"+ + "\u0003\u0001\u0003\u0001\u0003\u0005\u0003\u0100\b\u0003\n\u0003\f\u0003"+ + "\u0103\t\u0003\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0003\u0004\u016a\b\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005"+ + "\u0001\u0005\u0005\u0005\u0171\b\u0005\n\u0005\f\u0005\u0174\t\u0005\u0001"+ + "\u0005\u0001\u0005\u0001\u0005\u0005\u0005\u0179\b\u0005\n\u0005\f\u0005"+ + "\u017c\t\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0005\u0005\u0181\b"+ + "\u0005\n\u0005\f\u0005\u0184\t\u0005\u0001\u0005\u0001\u0005\u0005\u0005"+ + "\u0188\b\u0005\n\u0005\f\u0005\u018b\t\u0005\u0001\u0006\u0001\u0006\u0001"+ + "\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001"+ + "\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0005\u0006\u019a"+ + "\b\u0006\n\u0006\f\u0006\u019d\t\u0006\u0001\u0006\u0001\u0006\u0005\u0006"+ + "\u01a1\b\u0006\n\u0006\f\u0006\u01a4\t\u0006\u0001\u0006\u0001\u0006\u0005"+ + "\u0006\u01a8\b\u0006\n\u0006\f\u0006\u01ab\t\u0006\u0001\u0006\u0001\u0006"+ + "\u0005\u0006\u01af\b\u0006\n\u0006\f\u0006\u01b2\t\u0006\u0001\u0007\u0001"+ + "\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001"+ + "\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0005\u0007\u01bf\b\u0007\n"+ + "\u0007\f\u0007\u01c2\t\u0007\u0001\u0007\u0001\u0007\u0005\u0007\u01c6"+ + "\b\u0007\n\u0007\f\u0007\u01c9\t\u0007\u0001\b\u0001\b\u0001\b\u0001\b"+ + "\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001"+ + "\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0005\b\u01de\b\b\n"+ + "\b\f\b\u01e1\t\b\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001"+ + "\t\u0001\t\u0005\t\u01eb\b\t\n\t\f\t\u01ee\t\t\u0001\n\u0001\n\u0001\n"+ + "\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001"+ + "\n\u0001\n\u0001\n\u0001\n\u0005\n\u01ff\b\n\n\n\f\n\u0202\t\n\u0001\n"+ + "\u0001\n\u0005\n\u0206\b\n\n\n\f\n\u0209\t\n\u0001\u000b\u0001\u000b\u0001"+ + "\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001"+ + "\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001"+ + "\u000b\u0005\u000b\u021a\b\u000b\n\u000b\f\u000b\u021d\t\u000b\u0001\u000b"+ + "\u0001\u000b\u0005\u000b\u0221\b\u000b\n\u000b\f\u000b\u0224\t\u000b\u0001"+ + "\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0005"+ + "\f\u022f\b\f\n\f\f\f\u0232\t\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r"+ + "\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0005\r\u023f\b\r\n\r"+ + "\f\r\u0242\t\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e"+ + "\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+ + "\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0005\u000f"+ + "\u0254\b\u000f\n\u000f\f\u000f\u0257\t\u000f\u0001\u0010\u0001\u0010\u0001"+ + "\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0005\u0010\u0260"+ + "\b\u0010\n\u0010\f\u0010\u0263\t\u0010\u0001\u0011\u0001\u0011\u0001\u0011"+ + "\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011"+ + "\u0001\u0011\u0001\u0011\u0001\u0011\u0005\u0011\u0271\b\u0011\n\u0011"+ + "\f\u0011\u0274\t\u0011\u0001\u0011\u0001\u0011\u0005\u0011\u0278\b\u0011"+ + "\n\u0011\f\u0011\u027b\t\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001"+ + "\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0005\u0011\u0284\b\u0011\n"+ + "\u0011\f\u0011\u0287\t\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0005"+ + "\u0011\u028c\b\u0011\n\u0011\f\u0011\u028f\t\u0011\u0001\u0012\u0001\u0012"+ + "\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0005\u0012"+ + "\u0298\b\u0012\n\u0012\f\u0012\u029b\t\u0012\u0001\u0012\u0001\u0012\u0001"+ + "\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001"+ + "\u0013\u0001\u0013\u0001\u0013\u0005\u0013\u02a8\b\u0013\n\u0013\f\u0013"+ + "\u02ab\t\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013"+ + "\u0001\u0013\u0001\u0013\u0005\u0013\u02b4\b\u0013\n\u0013\f\u0013\u02b7"+ + "\t\u0013\u0001\u0013\u0001\u0013\u0005\u0013\u02bb\b\u0013\n\u0013\f\u0013"+ + "\u02be\t\u0013\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014"+ + "\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014"+ + "\u0001\u0014\u0001\u0014\u0005\u0014\u02cd\b\u0014\n\u0014\f\u0014\u02d0"+ + "\t\u0014\u0001\u0014\u0001\u0014\u0005\u0014\u02d4\b\u0014\n\u0014\f\u0014"+ + "\u02d7\t\u0014\u0001\u0014\u0001\u0014\u0005\u0014\u02db\b\u0014\n\u0014"+ + "\f\u0014\u02de\t\u0014\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015"+ + "\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015"+ + "\u0001\u0015\u0001\u0015\u0005\u0015\u02ec\b\u0015\n\u0015\f\u0015\u02ef"+ + "\t\u0015\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001"+ + "\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001"+ + "\u0016\u0001\u0016\u0001\u0016\u0005\u0016\u02ff\b\u0016\n\u0016\f\u0016"+ + "\u0302\t\u0016\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017"+ + "\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0005\u0017\u030d\b\u0017"+ + "\n\u0017\f\u0017\u0310\t\u0017\u0001\u0018\u0001\u0018\u0001\u0018\u0001"+ + "\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001"+ + "\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0005"+ + "\u0018\u0321\b\u0018\n\u0018\f\u0018\u0324\t\u0018\u0001\u0019\u0001\u0019"+ + "\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+ + "\u0001\u0019\u0005\u0019\u032f\b\u0019\n\u0019\f\u0019\u0332\t\u0019\u0001"+ + "\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001"+ + "\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001"+ + "\u001a\u0001\u001a\u0005\u001a\u0342\b\u001a\n\u001a\f\u001a\u0345\t\u001a"+ + "\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b"+ + "\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0005\u001b"+ + "\u0352\b\u001b\n\u001b\f\u001b\u0355\t\u001b\u0001\u001b\u0001\u001b\u0001"+ + "\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0005\u001b\u035d\b\u001b\n"+ + "\u001b\f\u001b\u0360\t\u001b\u0001\u001b\u0001\u001b\u0005\u001b\u0364"+ + "\b\u001b\n\u001b\f\u001b\u0367\t\u001b\u0001\u001c\u0001\u001c\u0001\u001c"+ + "\u0001\u001c\u0001\u001c\u0005\u001c\u036e\b\u001c\n\u001c\f\u001c\u0371"+ + "\t\u001c\u0001\u001c\u0001\u001c\u0005\u001c\u0375\b\u001c\n\u001c\f\u001c"+ + "\u0378\t\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c"+ + "\u0001\u001c\u0001\u001c\u0005\u001c\u0381\b\u001c\n\u001c\f\u001c\u0384"+ + "\t\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0005\u001c\u0389\b\u001c"+ + "\n\u001c\f\u001c\u038c\t\u001c\u0001\u001c\u0001\u001c\u0005\u001c\u0390"+ + "\b\u001c\n\u001c\f\u001c\u0393\t\u001c\u0001\u001d\u0001\u001d\u0001\u001d"+ + "\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0005\u001d\u039c\b\u001d"+ + "\n\u001d\f\u001d\u039f\t\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001"+ + "\u001d\u0005\u001d\u03a5\b\u001d\n\u001d\f\u001d\u03a8\t\u001d\u0001\u001d"+ + "\u0001\u001d\u0001\u001d\u0005\u001d\u03ad\b\u001d\n\u001d\f\u001d\u03b0"+ + "\t\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0005\u001d\u03b5\b\u001d"+ + "\n\u001d\f\u001d\u03b8\t\u001d\u0001\u001d\u0001\u001d\u0005\u001d\u03bc"+ + "\b\u001d\n\u001d\f\u001d\u03bf\t\u001d\u0001\u001d\u0001\u001d\u0005\u001d"+ + "\u03c3\b\u001d\n\u001d\f\u001d\u03c6\t\u001d\u0001\u001e\u0001\u001e\u0001"+ + "\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001"+ + "\u001e\u0001\u001e\u0001\u001e\u0005\u001e\u03d3\b\u001e\n\u001e\f\u001e"+ + "\u03d6\t\u001e\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f"+ + "\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0005\u001f\u03e1\b\u001f"+ + "\n\u001f\f\u001f\u03e4\t\u001f\u0001 \u0001 \u0001 \u0001 \u0001 \u0001"+ + " \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001"+ + " \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001"+ + " \u0001 \u0005 \u0401\b \n \f \u0404\t \u0001!\u0001!\u0001!\u0001!\u0001"+ + "!\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001"+ + "\"\u0001\"\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001"+ + "#\u0005#\u041e\b#\n#\f#\u0421\t#\u0001$\u0001$\u0001$\u0001$\u0001$\u0001"+ + "$\u0001$\u0001$\u0001$\u0005$\u042c\b$\n$\f$\u042f\t$\u0001%\u0001%\u0001"+ + "%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0005%\u043a\b%\n%\f%\u043d"+ + "\t%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001"+ + "&\u0001&\u0001&\u0005&\u044b\b&\n&\f&\u044e\t&\u0001\'\u0001\'\u0001\'"+ + "\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001"+ + "\'\u0005\'\u045c\b\'\n\'\f\'\u045f\t\'\u0001(\u0001(\u0001(\u0001(\u0001"+ + "(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001"+ + "(\u0005(\u0470\b(\n(\f(\u0473\t(\u0001)\u0001)\u0001)\u0001)\u0001)\u0001"+ + ")\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0005"+ + ")\u0484\b)\n)\f)\u0487\t)\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001"+ + "*\u0001*\u0001*\u0005*\u0492\b*\n*\f*\u0495\t*\u0001+\u0001+\u0001+\u0001"+ + "+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001"+ + "+\u0005+\u04a5\b+\n+\f+\u04a8\t+\u0001,\u0001,\u0001,\u0001,\u0001,\u0001"+ + ",\u0001,\u0001,\u0001,\u0001,\u0001,\u0005,\u04b5\b,\n,\f,\u04b8\t,\u0001"+ + "-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001"+ + "-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001"+ + "-\u0001-\u0001-\u0001-\u0005-\u04d2\b-\n-\f-\u04d5\t-\u0001.\u0001.\u0001"+ + ".\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001"+ + ".\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001"+ + ".\u0001.\u0005.\u04ef\b.\n.\f.\u04f2\t.\u0001/\u0001/\u0001/\u0001/\u0001"+ + "/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001"+ + "/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001"+ + "/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001"+ + "/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0005/\u051d\b/\n/\f/\u0520"+ + "\t/\u00010\u00010\u00010\u00010\u00010\u00010\u00010\u00010\u00010\u0001"+ + "0\u00010\u00010\u00010\u00050\u052f\b0\n0\f0\u0532\t0\u00011\u00011\u0001"+ + "1\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00051\u053f"+ + "\b1\n1\f1\u0542\t1\u00012\u00012\u00012\u00012\u00012\u00012\u00012\u0001"+ + "2\u00012\u00012\u00012\u00012\u00012\u00012\u00012\u00012\u00012\u0001"+ + "2\u00012\u00052\u0557\b2\n2\f2\u055a\t2\u00013\u00013\u00013\u00013\u0001"+ + "3\u00013\u00013\u00013\u00013\u00013\u00013\u00053\u0567\b3\n3\f3\u056a"+ + "\t3\u00014\u00014\u00014\u00014\u00014\u00014\u00014\u00014\u00014\u0001"+ + "4\u00014\u00014\u00014\u00014\u00014\u00014\u00014\u00014\u00054\u057e"+ + "\b4\n4\f4\u0581\t4\u00015\u00015\u00015\u00015\u00015\u00015\u00015\u0001"+ + "5\u00015\u00015\u00015\u00015\u00015\u00015\u00015\u00015\u00015\u0001"+ + "5\u00055\u0595\b5\n5\f5\u0598\t5\u00016\u00016\u00016\u00016\u00016\u0001"+ + "6\u00016\u00016\u00016\u00016\u00016\u00016\u00016\u00016\u00056\u05a8"+ + "\b6\n6\f6\u05ab\t6\u00017\u00017\u00017\u00017\u00017\u00017\u00017\u0001"+ + "7\u00017\u00017\u00017\u00017\u00017\u00017\u00017\u00017\u00017\u0001"+ + "7\u00017\u00017\u00017\u00017\u00017\u00017\u00017\u00017\u00017\u0001"+ + "7\u00017\u00017\u00017\u00017\u00017\u00017\u00057\u05cf\b7\n7\f7\u05d2"+ + "\t7\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u0001"+ + "8\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u0005"+ + "8\u05e7\b8\n8\f8\u05ea\t8\u00019\u00019\u00019\u00019\u00019\u00019\u0001"+ + "9\u00019\u00019\u00019\u00019\u00019\u00019\u00019\u00019\u00019\u0001"+ + "9\u00019\u00019\u00019\u00019\u00019\u00019\u00059\u0603\b9\n9\f9\u0606"+ + "\t9\u00019\u00019\u00059\u060a\b9\n9\f9\u060d\t9\u00019\u00019\u00059"+ + "\u0611\b9\n9\f9\u0614\t9\u00019\u00019\u00059\u0618\b9\n9\f9\u061b\t9"+ + "\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001"+ + ":\u0001:\u0005:\u0628\b:\n:\f:\u062b\t:\u0001;\u0001;\u0001;\u0001;\u0001"+ + ";\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001"+ + ";\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0005;\u0642\b;\n;\f;\u0645"+ + "\t;\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001"+ + "<\u0005<\u0651\b<\n<\f<\u0654\t<\u0001=\u0001=\u0001=\u0001=\u0001=\u0001"+ + "=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0005=\u0663\b=\n="+ + "\f=\u0666\t=\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001"+ + ">\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0005>\u0677\b>\n>\f>\u067a"+ + "\t>\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001"+ + "?\u0001?\u0001?\u0005?\u0688\b?\n?\f?\u068b\t?\u0001@\u0001@\u0001@\u0001"+ + "@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001"+ + "@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0005@\u06a3"+ + "\b@\n@\f@\u06a6\t@\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001"+ + "A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001"+ + "A\u0001A\u0001A\u0001A\u0001A\u0005A\u06be\bA\nA\fA\u06c1\tA\u0001B\u0001"+ + "B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001"+ + "B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001"+ + "B\u0001B\u0001B\u0005B\u06db\bB\nB\fB\u06de\tB\u0001C\u0001C\u0001C\u0001"+ + "C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0005C\u06eb\bC\nC"+ + "\fC\u06ee\tC\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001"+ + "D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0005D\u0700\bD\nD"+ + "\fD\u0703\tD\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001"+ + "E\u0001E\u0001E\u0001E\u0001E\u0001E\u0005E\u0713\bE\nE\fE\u0716\tE\u0001"+ + "F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001"+ + "F\u0001F\u0001F\u0001F\u0005F\u0726\bF\nF\fF\u0729\tF\u0001G\u0001G\u0001"+ + "G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001"+ + "G\u0001G\u0001G\u0001G\u0005G\u073b\bG\nG\fG\u073e\tG\u0001H\u0001H\u0001"+ + "H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001"+ + "H\u0001H\u0005H\u074e\bH\nH\fH\u0751\tH\u0001I\u0001I\u0001I\u0001I\u0001"+ + "I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0005"+ + "I\u0761\bI\nI\fI\u0764\tI\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001"+ + "J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0005J\u0774\bJ\nJ"+ + "\fJ\u0777\tJ\u0001K\u0001K\u0001K\u0001K\u0001K\u0001K\u0001K\u0001K\u0001"+ + "K\u0001K\u0001K\u0001K\u0005K\u0785\bK\nK\fK\u0788\tK\u0001L\u0001L\u0001"+ + "L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001"+ + "L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001"+ + "L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001"+ + "L\u0001L\u0001L\u0001L\u0001L\u0001L\u0005L\u07b0\bL\nL\fL\u07b3\tL\u0001"+ + "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0001M\u0001M\u0001M\u0005M\u07c4\bM\nM\fM\u07c7\tM\u0001M\u0001"+ + "M\u0005M\u07cb\bM\nM\fM\u07ce\tM\u0001N\u0001N\u0001N\u0001N\u0001N\u0001"+ + "N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0005N\u07dd\bN\nN"+ + "\fN\u07e0\tN\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001"+ + "O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001"+ + "O\u0005O\u07f5\bO\nO\fO\u07f8\tO\u0001P\u0001P\u0001P\u0001P\u0001P\u0001"+ + "P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001"+ + "P\u0001P\u0001P\u0001P\u0005P\u080d\bP\nP\fP\u0810\tP\u0001Q\u0001Q\u0001"+ + "Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001"+ + "Q\u0001Q\u0001Q\u0005Q\u0821\bQ\nQ\fQ\u0824\tQ\u0001R\u0001R\u0001R\u0001"+ + "R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001"+ + "R\u0001R\u0005R\u0835\bR\nR\fR\u0838\tR\u0001S\u0001S\u0001S\u0001S\u0001"+ + "S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001"+ + "S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001"+ + "S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001"+ + "S\u0005S\u085d\bS\nS\fS\u0860\tS\u0001T\u0001T\u0001T\u0001T\u0001T\u0001"+ + "T\u0001T\u0001T\u0001T\u0001T\u0005T\u086c\bT\nT\fT\u086f\tT\u0001U\u0001"+ + "U\u0001U\u0001U\u0001U\u0001U\u0001U\u0001U\u0001U\u0001U\u0005U\u087b"+ + "\bU\nU\fU\u087e\tU\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001"+ + "V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001"+ + "V\u0001V\u0001V\u0005V\u0894\bV\nV\fV\u0897\tV\u0001W\u0001W\u0001W\u0001"+ + "W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001"+ + "W\u0001W\u0001W\u0005W\u08a9\bW\nW\fW\u08ac\tW\u0001X\u0001X\u0001X\u0001"+ + "X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001"+ + "X\u0001X\u0005X\u08bd\bX\nX\fX\u08c0\tX\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ + "Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0005Y\u08cf"+ + "\bY\nY\fY\u08d2\tY\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0005"+ + "Z\u08ef\bZ\nZ\fZ\u08f2\tZ\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001[\u0005[\u091d\b[\n[\f[\u0920\t[\u0001\\\u0001"+ + "\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001"+ + "\\\u0001\\\u0001\\\u0001\\\u0001\\\u0005\\\u0931\b\\\n\\\f\\\u0934\t\\"+ + "\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001"+ + "]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0005]\u0947\b]\n]"+ + "\f]\u094a\t]\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001"+ + "^\u0001^\u0001^\u0001^\u0001^\u0005^\u0959\b^\n^\f^\u095c\t^\u0001_\u0001"+ + "_\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001"+ + "`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0005"+ + "`\u0973\b`\n`\f`\u0976\t`\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001"+ + "a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001"+ + "a\u0005a\u0989\ba\na\fa\u098c\ta\u0001b\u0001b\u0001b\u0001b\u0001b\u0001"+ + "b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001"+ + "b\u0001b\u0005b\u099f\bb\nb\fb\u09a2\tb\u0001c\u0001c\u0001c\u0001c\u0001"+ + "c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0005c\u09b1"+ + "\bc\nc\fc\u09b4\tc\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001"+ + "d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0005d\u09c4\bd\nd\fd\u09c7"+ + "\td\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001"+ + "e\u0001e\u0001e\u0001e\u0005e\u09d6\be\ne\fe\u09d9\te\u0001f\u0001f\u0001"+ + "f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001"+ + "f\u0005f\u09e8\bf\nf\ff\u09eb\tf\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ + "g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0005"+ + "g\u09fc\bg\ng\fg\u09ff\tg\u0001g\u0001g\u0005g\u0a03\bg\ng\fg\u0a06\t"+ + "g\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001"+ + "h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0005"+ + "h\u0a1b\bh\nh\fh\u0a1e\th\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0005i\u0a31\bi\ni\fi\u0a34\ti\u0001i\u0001i\u0005i\u0a38\bi\ni\fi\u0a3b"+ + "\ti\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001"+ + "j\u0001j\u0005j\u0a48\bj\nj\fj\u0a4b\tj\u0001k\u0001k\u0003k\u0a4f\bk"+ + "\u0001l\u0001l\u0001l\u0001l\u0005l\u0a55\bl\nl\fl\u0a58\tl\u0001l\u0001"+ + "l\u0001l\u0001l\u0003l\u0a5e\bl\u0001m\u0001m\u0001m\u0001m\u0001n\u0001"+ + "n\u0001n\u0001n\u0005n\u0a68\bn\nn\fn\u0a6b\tn\u0001n\u0001n\u0001n\u0001"+ + "n\u0003n\u0a71\bn\u0001o\u0001o\u0001o\u0001o\u0001o\u0001o\u0001o\u0003"+ + "o\u0a7a\bo\u0001o\u0000\u0000p\u0000\u0002\u0004\u0006\b\n\f\u000e\u0010"+ + "\u0012\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPR"+ + "TVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e"+ + "\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6"+ + "\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be"+ + "\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6"+ + "\u00d8\u00da\u00dc\u00de\u0000\u0000\u0afe\u0000\u00e0\u0001\u0000\u0000"+ + "\u0000\u0002\u00e8\u0001\u0000\u0000\u0000\u0004\u00f2\u0001\u0000\u0000"+ + "\u0000\u0006\u00fc\u0001\u0000\u0000\u0000\b\u0169\u0001\u0000\u0000\u0000"+ + "\n\u016b\u0001\u0000\u0000\u0000\f\u018c\u0001\u0000\u0000\u0000\u000e"+ + "\u01b3\u0001\u0000\u0000\u0000\u0010\u01ca\u0001\u0000\u0000\u0000\u0012"+ + "\u01e2\u0001\u0000\u0000\u0000\u0014\u01ef\u0001\u0000\u0000\u0000\u0016"+ + "\u020a\u0001\u0000\u0000\u0000\u0018\u0225\u0001\u0000\u0000\u0000\u001a"+ + "\u0233\u0001\u0000\u0000\u0000\u001c\u0243\u0001\u0000\u0000\u0000\u001e"+ + "\u0248\u0001\u0000\u0000\u0000 \u0258\u0001\u0000\u0000\u0000\"\u0264"+ + "\u0001\u0000\u0000\u0000$\u0290\u0001\u0000\u0000\u0000&\u029e\u0001\u0000"+ + "\u0000\u0000(\u02bf\u0001\u0000\u0000\u0000*\u02df\u0001\u0000\u0000\u0000"+ + ",\u02f0\u0001\u0000\u0000\u0000.\u0303\u0001\u0000\u0000\u00000\u0311"+ + "\u0001\u0000\u0000\u00002\u0325\u0001\u0000\u0000\u00004\u0333\u0001\u0000"+ + "\u0000\u00006\u0346\u0001\u0000\u0000\u00008\u0368\u0001\u0000\u0000\u0000"+ + ":\u0394\u0001\u0000\u0000\u0000<\u03c7\u0001\u0000\u0000\u0000>\u03d7"+ + "\u0001\u0000\u0000\u0000@\u03e5\u0001\u0000\u0000\u0000B\u0405\u0001\u0000"+ + "\u0000\u0000D\u040a\u0001\u0000\u0000\u0000F\u0414\u0001\u0000\u0000\u0000"+ + "H\u0422\u0001\u0000\u0000\u0000J\u0430\u0001\u0000\u0000\u0000L\u043e"+ + "\u0001\u0000\u0000\u0000N\u044f\u0001\u0000\u0000\u0000P\u0460\u0001\u0000"+ + "\u0000\u0000R\u0474\u0001\u0000\u0000\u0000T\u0488\u0001\u0000\u0000\u0000"+ + "V\u0496\u0001\u0000\u0000\u0000X\u04a9\u0001\u0000\u0000\u0000Z\u04b9"+ + "\u0001\u0000\u0000\u0000\\\u04d6\u0001\u0000\u0000\u0000^\u04f3\u0001"+ + "\u0000\u0000\u0000`\u0521\u0001\u0000\u0000\u0000b\u0533\u0001\u0000\u0000"+ + "\u0000d\u0543\u0001\u0000\u0000\u0000f\u055b\u0001\u0000\u0000\u0000h"+ + "\u056b\u0001\u0000\u0000\u0000j\u0582\u0001\u0000\u0000\u0000l\u0599\u0001"+ + "\u0000\u0000\u0000n\u05ac\u0001\u0000\u0000\u0000p\u05d3\u0001\u0000\u0000"+ + "\u0000r\u05eb\u0001\u0000\u0000\u0000t\u061c\u0001\u0000\u0000\u0000v"+ + "\u062c\u0001\u0000\u0000\u0000x\u0646\u0001\u0000\u0000\u0000z\u0655\u0001"+ + "\u0000\u0000\u0000|\u0667\u0001\u0000\u0000\u0000~\u067b\u0001\u0000\u0000"+ + "\u0000\u0080\u068c\u0001\u0000\u0000\u0000\u0082\u06a7\u0001\u0000\u0000"+ + "\u0000\u0084\u06c2\u0001\u0000\u0000\u0000\u0086\u06df\u0001\u0000\u0000"+ + "\u0000\u0088\u06ef\u0001\u0000\u0000\u0000\u008a\u0704\u0001\u0000\u0000"+ + "\u0000\u008c\u0717\u0001\u0000\u0000\u0000\u008e\u072a\u0001\u0000\u0000"+ + "\u0000\u0090\u073f\u0001\u0000\u0000\u0000\u0092\u0752\u0001\u0000\u0000"+ + "\u0000\u0094\u0765\u0001\u0000\u0000\u0000\u0096\u0778\u0001\u0000\u0000"+ + "\u0000\u0098\u0789\u0001\u0000\u0000\u0000\u009a\u07b4\u0001\u0000\u0000"+ + "\u0000\u009c\u07cf\u0001\u0000\u0000\u0000\u009e\u07e1\u0001\u0000\u0000"+ + "\u0000\u00a0\u07f9\u0001\u0000\u0000\u0000\u00a2\u0811\u0001\u0000\u0000"+ + "\u0000\u00a4\u0825\u0001\u0000\u0000\u0000\u00a6\u0839\u0001\u0000\u0000"+ + "\u0000\u00a8\u0861\u0001\u0000\u0000\u0000\u00aa\u0870\u0001\u0000\u0000"+ + "\u0000\u00ac\u087f\u0001\u0000\u0000\u0000\u00ae\u0898\u0001\u0000\u0000"+ + "\u0000\u00b0\u08ad\u0001\u0000\u0000\u0000\u00b2\u08c1\u0001\u0000\u0000"+ + "\u0000\u00b4\u08d3\u0001\u0000\u0000\u0000\u00b6\u08f3\u0001\u0000\u0000"+ + "\u0000\u00b8\u0921\u0001\u0000\u0000\u0000\u00ba\u0935\u0001\u0000\u0000"+ + "\u0000\u00bc\u094b\u0001\u0000\u0000\u0000\u00be\u095d\u0001\u0000\u0000"+ + "\u0000\u00c0\u095f\u0001\u0000\u0000\u0000\u00c2\u0977\u0001\u0000\u0000"+ + "\u0000\u00c4\u098d\u0001\u0000\u0000\u0000\u00c6\u09a3\u0001\u0000\u0000"+ + "\u0000\u00c8\u09b5\u0001\u0000\u0000\u0000\u00ca\u09c8\u0001\u0000\u0000"+ + "\u0000\u00cc\u09da\u0001\u0000\u0000\u0000\u00ce\u09ec\u0001\u0000\u0000"+ + "\u0000\u00d0\u0a07\u0001\u0000\u0000\u0000\u00d2\u0a1f\u0001\u0000\u0000"+ + "\u0000\u00d4\u0a3c\u0001\u0000\u0000\u0000\u00d6\u0a4e\u0001\u0000\u0000"+ + "\u0000\u00d8\u0a5d\u0001\u0000\u0000\u0000\u00da\u0a5f\u0001\u0000\u0000"+ + "\u0000\u00dc\u0a70\u0001\u0000\u0000\u0000\u00de\u0a79\u0001\u0000\u0000"+ + "\u0000\u00e0\u00e1\u0005\u0001\u0000\u0000\u00e1\u00e2\u0005\u013d\u0000"+ + "\u0000\u00e2\u00e3\u0005\u0002\u0000\u0000\u00e3\u00e4\u0003\u0002\u0001"+ + "\u0000\u00e4\u00e5\u0003\u0006\u0003\u0000\u00e5\u00e6\u0003\u0004\u0002"+ + "\u0000\u00e6\u00e7\u0005\u0003\u0000\u0000\u00e7\u0001\u0001\u0000\u0000"+ + "\u0000\u00e8\u00e9\u0005\u0004\u0000\u0000\u00e9\u00ed\u0005\u0002\u0000"+ + "\u0000\u00ea\u00ec\u0003\b\u0004\u0000\u00eb\u00ea\u0001\u0000\u0000\u0000"+ + "\u00ec\u00ef\u0001\u0000\u0000\u0000\u00ed\u00eb\u0001\u0000\u0000\u0000"+ + "\u00ed\u00ee\u0001\u0000\u0000\u0000\u00ee\u00f0\u0001\u0000\u0000\u0000"+ + "\u00ef\u00ed\u0001\u0000\u0000\u0000\u00f0\u00f1\u0005\u0003\u0000\u0000"+ + "\u00f1\u0003\u0001\u0000\u0000\u0000\u00f2\u00f3\u0005\u0005\u0000\u0000"+ + "\u00f3\u00f7\u0005\u0002\u0000\u0000\u00f4\u00f6\u0003\b\u0004\u0000\u00f5"+ + "\u00f4\u0001\u0000\u0000\u0000\u00f6\u00f9\u0001\u0000\u0000\u0000\u00f7"+ + "\u00f5\u0001\u0000\u0000\u0000\u00f7\u00f8\u0001\u0000\u0000\u0000\u00f8"+ + "\u00fa\u0001\u0000\u0000\u0000\u00f9\u00f7\u0001\u0000\u0000\u0000\u00fa"+ + "\u00fb\u0005\u0003\u0000\u0000\u00fb\u0005\u0001\u0000\u0000\u0000\u00fc"+ + "\u00fd\u0005\u0006\u0000\u0000\u00fd\u0101\u0005\u0002\u0000\u0000\u00fe"+ + "\u0100\u0003\b\u0004\u0000\u00ff\u00fe\u0001\u0000\u0000\u0000\u0100\u0103"+ + "\u0001\u0000\u0000\u0000\u0101\u00ff\u0001\u0000\u0000\u0000\u0101\u0102"+ + "\u0001\u0000\u0000\u0000\u0102\u0104\u0001\u0000\u0000\u0000\u0103\u0101"+ + "\u0001\u0000\u0000\u0000\u0104\u0105\u0005\u0003\u0000\u0000\u0105\u0007"+ + "\u0001\u0000\u0000\u0000\u0106\u016a\u0003\u0012\t\u0000\u0107\u016a\u0003"+ + "\u001e\u000f\u0000\u0108\u016a\u0003\u0014\n\u0000\u0109\u016a\u0003\u0016"+ + "\u000b\u0000\u010a\u016a\u0003\u0018\f\u0000\u010b\u016a\u0003\u001a\r"+ + "\u0000\u010c\u016a\u0003\f\u0006\u0000\u010d\u016a\u0003 \u0010\u0000"+ + "\u010e\u016a\u0003\u0010\b\u0000\u010f\u016a\u0003\"\u0011\u0000\u0110"+ + "\u016a\u0003\u000e\u0007\u0000\u0111\u016a\u0003\n\u0005\u0000\u0112\u016a"+ + "\u0003&\u0013\u0000\u0113\u016a\u0003.\u0017\u0000\u0114\u016a\u00030"+ + "\u0018\u0000\u0115\u016a\u00032\u0019\u0000\u0116\u016a\u00034\u001a\u0000"+ + "\u0117\u016a\u0003,\u0016\u0000\u0118\u016a\u0003*\u0015\u0000\u0119\u016a"+ + "\u0003(\u0014\u0000\u011a\u016a\u00036\u001b\u0000\u011b\u016a\u00038"+ + "\u001c\u0000\u011c\u016a\u0003:\u001d\u0000\u011d\u016a\u0003<\u001e\u0000"+ + "\u011e\u016a\u0003>\u001f\u0000\u011f\u016a\u0003@ \u0000\u0120\u016a"+ + "\u0003L&\u0000\u0121\u016a\u0003N\'\u0000\u0122\u016a\u0003P(\u0000\u0123"+ + "\u016a\u0003R)\u0000\u0124\u016a\u0003T*\u0000\u0125\u016a\u0003X,\u0000"+ + "\u0126\u016a\u0003H$\u0000\u0127\u016a\u0003J%\u0000\u0128\u016a\u0003"+ + "F#\u0000\u0129\u016a\u0003V+\u0000\u012a\u016a\u0003p8\u0000\u012b\u016a"+ + "\u0003`0\u0000\u012c\u016a\u0003b1\u0000\u012d\u016a\u0003d2\u0000\u012e"+ + "\u016a\u0003Z-\u0000\u012f\u016a\u0003\\.\u0000\u0130\u016a\u0003^/\u0000"+ + "\u0131\u016a\u0003f3\u0000\u0132\u016a\u0003h4\u0000\u0133\u016a\u0003"+ + "j5\u0000\u0134\u016a\u0003n7\u0000\u0135\u016a\u0003h4\u0000\u0136\u016a"+ + "\u0003j5\u0000\u0137\u016a\u0003l6\u0000\u0138\u016a\u0003r9\u0000\u0139"+ + "\u016a\u0003z=\u0000\u013a\u016a\u0003t:\u0000\u013b\u016a\u0003v;\u0000"+ + "\u013c\u016a\u0003\u0086C\u0000\u013d\u016a\u0003\u0088D\u0000\u013e\u016a"+ + "\u0003\u0098L\u0000\u013f\u016a\u0003|>\u0000\u0140\u016a\u0003~?\u0000"+ + "\u0141\u016a\u0003\u0080@\u0000\u0142\u016a\u0003\u0082A\u0000\u0143\u016a"+ + "\u0003\u0084B\u0000\u0144\u016a\u0003x<\u0000\u0145\u016a\u0003\u008a"+ + "E\u0000\u0146\u016a\u0003\u008cF\u0000\u0147\u016a\u0003\u008eG\u0000"+ + "\u0148\u016a\u0003\u0090H\u0000\u0149\u016a\u0003\u0092I\u0000\u014a\u016a"+ + "\u0003\u0094J\u0000\u014b\u016a\u0003\u0096K\u0000\u014c\u016a\u0003\u009a"+ + "M\u0000\u014d\u016a\u0003\u009cN\u0000\u014e\u016a\u0003\u009eO\u0000"+ + "\u014f\u016a\u0003\u00a0P\u0000\u0150\u016a\u0003\u00a4R\u0000\u0151\u016a"+ + "\u0003\u00a2Q\u0000\u0152\u016a\u0003\u00a6S\u0000\u0153\u016a\u0003\u00a8"+ + "T\u0000\u0154\u016a\u0003\u00aaU\u0000\u0155\u016a\u0003\u00acV\u0000"+ + "\u0156\u016a\u0003\u00aeW\u0000\u0157\u016a\u0003\u00b0X\u0000\u0158\u016a"+ + "\u0003\u00b2Y\u0000\u0159\u016a\u0003\u00b4Z\u0000\u015a\u016a\u0003\u00b6"+ + "[\u0000\u015b\u016a\u0003\u00b8\\\u0000\u015c\u016a\u0003\u00ba]\u0000"+ + "\u015d\u016a\u0003\u00bc^\u0000\u015e\u016a\u0003\u00c0`\u0000\u015f\u016a"+ + "\u0003\u00c2a\u0000\u0160\u016a\u0003\u00c4b\u0000\u0161\u016a\u0003\u00c6"+ + "c\u0000\u0162\u016a\u0003\u00c8d\u0000\u0163\u016a\u0003\u00cae\u0000"+ + "\u0164\u016a\u0003\u00ccf\u0000\u0165\u016a\u0003\u00ceg\u0000\u0166\u016a"+ + "\u0003\u00d2i\u0000\u0167\u016a\u0003\u00d0h\u0000\u0168\u016a\u0003\u00d4"+ + "j\u0000\u0169\u0106\u0001\u0000\u0000\u0000\u0169\u0107\u0001\u0000\u0000"+ + "\u0000\u0169\u0108\u0001\u0000\u0000\u0000\u0169\u0109\u0001\u0000\u0000"+ + "\u0000\u0169\u010a\u0001\u0000\u0000\u0000\u0169\u010b\u0001\u0000\u0000"+ + "\u0000\u0169\u010c\u0001\u0000\u0000\u0000\u0169\u010d\u0001\u0000\u0000"+ + "\u0000\u0169\u010e\u0001\u0000\u0000\u0000\u0169\u010f\u0001\u0000\u0000"+ + "\u0000\u0169\u0110\u0001\u0000\u0000\u0000\u0169\u0111\u0001\u0000\u0000"+ + "\u0000\u0169\u0112\u0001\u0000\u0000\u0000\u0169\u0113\u0001\u0000\u0000"+ + "\u0000\u0169\u0114\u0001\u0000\u0000\u0000\u0169\u0115\u0001\u0000\u0000"+ + "\u0000\u0169\u0116\u0001\u0000\u0000\u0000\u0169\u0117\u0001\u0000\u0000"+ + "\u0000\u0169\u0118\u0001\u0000\u0000\u0000\u0169\u0119\u0001\u0000\u0000"+ + "\u0000\u0169\u011a\u0001\u0000\u0000\u0000\u0169\u011b\u0001\u0000\u0000"+ + "\u0000\u0169\u011c\u0001\u0000\u0000\u0000\u0169\u011d\u0001\u0000\u0000"+ + "\u0000\u0169\u011e\u0001\u0000\u0000\u0000\u0169\u011f\u0001\u0000\u0000"+ + "\u0000\u0169\u0120\u0001\u0000\u0000\u0000\u0169\u0121\u0001\u0000\u0000"+ + "\u0000\u0169\u0122\u0001\u0000\u0000\u0000\u0169\u0123\u0001\u0000\u0000"+ + "\u0000\u0169\u0124\u0001\u0000\u0000\u0000\u0169\u0125\u0001\u0000\u0000"+ + "\u0000\u0169\u0126\u0001\u0000\u0000\u0000\u0169\u0127\u0001\u0000\u0000"+ + "\u0000\u0169\u0128\u0001\u0000\u0000\u0000\u0169\u0129\u0001\u0000\u0000"+ + "\u0000\u0169\u012a\u0001\u0000\u0000\u0000\u0169\u012b\u0001\u0000\u0000"+ + "\u0000\u0169\u012c\u0001\u0000\u0000\u0000\u0169\u012d\u0001\u0000\u0000"+ + "\u0000\u0169\u012e\u0001\u0000\u0000\u0000\u0169\u012f\u0001\u0000\u0000"+ + "\u0000\u0169\u0130\u0001\u0000\u0000\u0000\u0169\u0131\u0001\u0000\u0000"+ + "\u0000\u0169\u0132\u0001\u0000\u0000\u0000\u0169\u0133\u0001\u0000\u0000"+ + "\u0000\u0169\u0134\u0001\u0000\u0000\u0000\u0169\u0135\u0001\u0000\u0000"+ + "\u0000\u0169\u0136\u0001\u0000\u0000\u0000\u0169\u0137\u0001\u0000\u0000"+ + "\u0000\u0169\u0138\u0001\u0000\u0000\u0000\u0169\u0139\u0001\u0000\u0000"+ + "\u0000\u0169\u013a\u0001\u0000\u0000\u0000\u0169\u013b\u0001\u0000\u0000"+ + "\u0000\u0169\u013c\u0001\u0000\u0000\u0000\u0169\u013d\u0001\u0000\u0000"+ + "\u0000\u0169\u013e\u0001\u0000\u0000\u0000\u0169\u013f\u0001\u0000\u0000"+ + "\u0000\u0169\u0140\u0001\u0000\u0000\u0000\u0169\u0141\u0001\u0000\u0000"+ + "\u0000\u0169\u0142\u0001\u0000\u0000\u0000\u0169\u0143\u0001\u0000\u0000"+ + "\u0000\u0169\u0144\u0001\u0000\u0000\u0000\u0169\u0145\u0001\u0000\u0000"+ + "\u0000\u0169\u0146\u0001\u0000\u0000\u0000\u0169\u0147\u0001\u0000\u0000"+ + "\u0000\u0169\u0148\u0001\u0000\u0000\u0000\u0169\u0149\u0001\u0000\u0000"+ + "\u0000\u0169\u014a\u0001\u0000\u0000\u0000\u0169\u014b\u0001\u0000\u0000"+ + "\u0000\u0169\u014c\u0001\u0000\u0000\u0000\u0169\u014d\u0001\u0000\u0000"+ + "\u0000\u0169\u014e\u0001\u0000\u0000\u0000\u0169\u014f\u0001\u0000\u0000"+ + "\u0000\u0169\u0150\u0001\u0000\u0000\u0000\u0169\u0151\u0001\u0000\u0000"+ + "\u0000\u0169\u0152\u0001\u0000\u0000\u0000\u0169\u0153\u0001\u0000\u0000"+ + "\u0000\u0169\u0154\u0001\u0000\u0000\u0000\u0169\u0155\u0001\u0000\u0000"+ + "\u0000\u0169\u0156\u0001\u0000\u0000\u0000\u0169\u0157\u0001\u0000\u0000"+ + "\u0000\u0169\u0158\u0001\u0000\u0000\u0000\u0169\u0159\u0001\u0000\u0000"+ + "\u0000\u0169\u015a\u0001\u0000\u0000\u0000\u0169\u015b\u0001\u0000\u0000"+ + "\u0000\u0169\u015c\u0001\u0000\u0000\u0000\u0169\u015d\u0001\u0000\u0000"+ + "\u0000\u0169\u015e\u0001\u0000\u0000\u0000\u0169\u015f\u0001\u0000\u0000"+ + "\u0000\u0169\u0160\u0001\u0000\u0000\u0000\u0169\u0161\u0001\u0000\u0000"+ + "\u0000\u0169\u0162\u0001\u0000\u0000\u0000\u0169\u0163\u0001\u0000\u0000"+ + "\u0000\u0169\u0164\u0001\u0000\u0000\u0000\u0169\u0165\u0001\u0000\u0000"+ + "\u0000\u0169\u0166\u0001\u0000\u0000\u0000\u0169\u0167\u0001\u0000\u0000"+ + "\u0000\u0169\u0168\u0001\u0000\u0000\u0000\u016a\t\u0001\u0000\u0000\u0000"+ + "\u016b\u016c\u0005\u0007\u0000\u0000\u016c\u016d\u0005\b\u0000\u0000\u016d"+ + "\u0172\u0005\u013d\u0000\u0000\u016e\u016f\u0005\t\u0000\u0000\u016f\u0171"+ + "\u0005\u013d\u0000\u0000\u0170\u016e\u0001\u0000\u0000\u0000\u0171\u0174"+ + "\u0001\u0000\u0000\u0000\u0172\u0170\u0001\u0000\u0000\u0000\u0172\u0173"+ + "\u0001\u0000\u0000\u0000\u0173\u0175\u0001\u0000\u0000\u0000\u0174\u0172"+ + "\u0001\u0000\u0000\u0000\u0175\u0176\u0005\n\u0000\u0000\u0176\u017a\u0005"+ + "\u0002\u0000\u0000\u0177\u0179\u0003\b\u0004\u0000\u0178\u0177\u0001\u0000"+ + "\u0000\u0000\u0179\u017c\u0001\u0000\u0000\u0000\u017a\u0178\u0001\u0000"+ + "\u0000\u0000\u017a\u017b\u0001\u0000\u0000\u0000\u017b\u017d\u0001\u0000"+ + "\u0000\u0000\u017c\u017a\u0001\u0000\u0000\u0000\u017d\u0182\u0005\u0003"+ + "\u0000\u0000\u017e\u017f\u0005\u000b\u0000\u0000\u017f\u0181\u0003B!\u0000"+ + "\u0180\u017e\u0001\u0000\u0000\u0000\u0181\u0184\u0001\u0000\u0000\u0000"+ + "\u0182\u0180\u0001\u0000\u0000\u0000\u0182\u0183\u0001\u0000\u0000\u0000"+ + "\u0183\u0189\u0001\u0000\u0000\u0000\u0184\u0182\u0001\u0000\u0000\u0000"+ + "\u0185\u0186\u0005\f\u0000\u0000\u0186\u0188\u0005\u013c\u0000\u0000\u0187"+ + "\u0185\u0001\u0000\u0000\u0000\u0188\u018b\u0001\u0000\u0000\u0000\u0189"+ + "\u0187\u0001\u0000\u0000\u0000\u0189\u018a\u0001\u0000\u0000\u0000\u018a"+ + "\u000b\u0001\u0000\u0000\u0000\u018b\u0189\u0001\u0000\u0000\u0000\u018c"+ + "\u018d\u0005\r\u0000\u0000\u018d\u018e\u0005\b\u0000\u0000\u018e\u018f"+ + "\u0005\u013d\u0000\u0000\u018f\u0190\u0005\u000e\u0000\u0000\u0190\u0191"+ + "\u0005\u013d\u0000\u0000\u0191\u0192\u0005\u000f\u0000\u0000\u0192\u0193"+ + "\u0005\u013d\u0000\u0000\u0193\u0194\u0005\n\u0000\u0000\u0194\u0195\u0005"+ + "\u0002\u0000\u0000\u0195\u0196\u0005\u013d\u0000\u0000\u0196\u019b\u0005"+ + "\u0003\u0000\u0000\u0197\u0198\u0005\u000b\u0000\u0000\u0198\u019a\u0003"+ + "B!\u0000\u0199\u0197\u0001\u0000\u0000\u0000\u019a\u019d\u0001\u0000\u0000"+ + "\u0000\u019b\u0199\u0001\u0000\u0000\u0000\u019b\u019c\u0001\u0000\u0000"+ + "\u0000\u019c\u01a2\u0001\u0000\u0000\u0000\u019d\u019b\u0001\u0000\u0000"+ + "\u0000\u019e\u019f\u0005\f\u0000\u0000\u019f\u01a1\u0005\u013c\u0000\u0000"+ + "\u01a0\u019e\u0001\u0000\u0000\u0000\u01a1\u01a4\u0001\u0000\u0000\u0000"+ + "\u01a2\u01a0\u0001\u0000\u0000\u0000\u01a2\u01a3\u0001\u0000\u0000\u0000"+ + "\u01a3\u01a9\u0001\u0000\u0000\u0000\u01a4\u01a2\u0001\u0000\u0000\u0000"+ + "\u01a5\u01a6\u0005\u0010\u0000\u0000\u01a6\u01a8\u0005\u013c\u0000\u0000"+ + "\u01a7\u01a5\u0001\u0000\u0000\u0000\u01a8\u01ab\u0001\u0000\u0000\u0000"+ + "\u01a9\u01a7\u0001\u0000\u0000\u0000\u01a9\u01aa\u0001\u0000\u0000\u0000"+ + "\u01aa\u01b0\u0001\u0000\u0000\u0000\u01ab\u01a9\u0001\u0000\u0000\u0000"+ + "\u01ac\u01ad\u0005\u0011\u0000\u0000\u01ad\u01af\u0005\u013c\u0000\u0000"+ + "\u01ae\u01ac\u0001\u0000\u0000\u0000\u01af\u01b2\u0001\u0000\u0000\u0000"+ + "\u01b0\u01ae\u0001\u0000\u0000\u0000\u01b0\u01b1\u0001\u0000\u0000\u0000"+ + "\u01b1\r\u0001\u0000\u0000\u0000\u01b2\u01b0\u0001\u0000\u0000\u0000\u01b3"+ + "\u01b4\u0005\u0012\u0000\u0000\u01b4\u01b5\u0005\b\u0000\u0000\u01b5\u01b6"+ + "\u0005\u013d\u0000\u0000\u01b6\u01b7\u0005\t\u0000\u0000\u01b7\u01b8\u0005"+ + "\u013d\u0000\u0000\u01b8\u01b9\u0005\n\u0000\u0000\u01b9\u01ba\u0005\u0002"+ + "\u0000\u0000\u01ba\u01bb\u0005\u013d\u0000\u0000\u01bb\u01c0\u0005\u0003"+ + "\u0000\u0000\u01bc\u01bd\u0005\u000b\u0000\u0000\u01bd\u01bf\u0003B!\u0000"+ + "\u01be\u01bc\u0001\u0000\u0000\u0000\u01bf\u01c2\u0001\u0000\u0000\u0000"+ + "\u01c0\u01be\u0001\u0000\u0000\u0000\u01c0\u01c1\u0001\u0000\u0000\u0000"+ + "\u01c1\u01c7\u0001\u0000\u0000\u0000\u01c2\u01c0\u0001\u0000\u0000\u0000"+ + "\u01c3\u01c4\u0005\u0013\u0000\u0000\u01c4\u01c6\u0003B!\u0000\u01c5\u01c3"+ + "\u0001\u0000\u0000\u0000\u01c6\u01c9\u0001\u0000\u0000\u0000\u01c7\u01c5"+ + "\u0001\u0000\u0000\u0000\u01c7\u01c8\u0001\u0000\u0000\u0000\u01c8\u000f"+ + "\u0001\u0000\u0000\u0000\u01c9\u01c7\u0001\u0000\u0000\u0000\u01ca\u01cb"+ + "\u0005\u0014\u0000\u0000\u01cb\u01cc\u0005\b\u0000\u0000\u01cc\u01cd\u0005"+ + "\u013d\u0000\u0000\u01cd\u01ce\u0005\u0015\u0000\u0000\u01ce\u01cf\u0005"+ + "\u013d\u0000\u0000\u01cf\u01d0\u0005\u000e\u0000\u0000\u01d0\u01d1\u0005"+ + "\u013d\u0000\u0000\u01d1\u01d2\u0005\u000f\u0000\u0000\u01d2\u01d3\u0005"+ + "\u013d\u0000\u0000\u01d3\u01d4\u0005\u0016\u0000\u0000\u01d4\u01d5\u0005"+ + "\u013d\u0000\u0000\u01d5\u01d6\u0005\u0017\u0000\u0000\u01d6\u01d7\u0005"+ + "\u013d\u0000\u0000\u01d7\u01d8\u0005\n\u0000\u0000\u01d8\u01d9\u0005\u0002"+ + "\u0000\u0000\u01d9\u01da\u0005\u013d\u0000\u0000\u01da\u01df\u0005\u0003"+ + "\u0000\u0000\u01db\u01dc\u0005\u000b\u0000\u0000\u01dc\u01de\u0003B!\u0000"+ + "\u01dd\u01db\u0001\u0000\u0000\u0000\u01de\u01e1\u0001\u0000\u0000\u0000"+ + "\u01df\u01dd\u0001\u0000\u0000\u0000\u01df\u01e0\u0001\u0000\u0000\u0000"+ + "\u01e0\u0011\u0001\u0000\u0000\u0000\u01e1\u01df\u0001\u0000\u0000\u0000"+ + "\u01e2\u01e3\u0005\u0018\u0000\u0000\u01e3\u01e4\u0005\b\u0000\u0000\u01e4"+ + "\u01e5\u0005\u013d\u0000\u0000\u01e5\u01e6\u0005\u0002\u0000\u0000\u01e6"+ + "\u01e7\u0005\u013d\u0000\u0000\u01e7\u01ec\u0005\u0003\u0000\u0000\u01e8"+ + "\u01e9\u0005\u000b\u0000\u0000\u01e9\u01eb\u0003B!\u0000\u01ea\u01e8\u0001"+ + "\u0000\u0000\u0000\u01eb\u01ee\u0001\u0000\u0000\u0000\u01ec\u01ea\u0001"+ + "\u0000\u0000\u0000\u01ec\u01ed\u0001\u0000\u0000\u0000\u01ed\u0013\u0001"+ + "\u0000\u0000\u0000\u01ee\u01ec\u0001\u0000\u0000\u0000\u01ef\u01f0\u0005"+ + "\u0019\u0000\u0000\u01f0\u01f1\u0005\b\u0000\u0000\u01f1\u01f2\u0005\u013d"+ + "\u0000\u0000\u01f2\u01f3\u0005\u001a\u0000\u0000\u01f3\u01f4\u0005\u013d"+ + "\u0000\u0000\u01f4\u01f5\u0005\u001b\u0000\u0000\u01f5\u01f6\u0005\u013d"+ + "\u0000\u0000\u01f6\u01f7\u0005\n\u0000\u0000\u01f7\u01f8\u0005\u013d\u0000"+ + "\u0000\u01f8\u01f9\u0005\u001c\u0000\u0000\u01f9\u01fa\u0005\u0002\u0000"+ + "\u0000\u01fa\u01fb\u0005\u013d\u0000\u0000\u01fb\u0200\u0005\u0003\u0000"+ + "\u0000\u01fc\u01fd\u0005\u000b\u0000\u0000\u01fd\u01ff\u0003B!\u0000\u01fe"+ + "\u01fc\u0001\u0000\u0000\u0000\u01ff\u0202\u0001\u0000\u0000\u0000\u0200"+ + "\u01fe\u0001\u0000\u0000\u0000\u0200\u0201\u0001\u0000\u0000\u0000\u0201"+ + "\u0207\u0001\u0000\u0000\u0000\u0202\u0200\u0001\u0000\u0000\u0000\u0203"+ + "\u0204\u0005\u001d\u0000\u0000\u0204\u0206\u0005\u013d\u0000\u0000\u0205"+ + "\u0203\u0001\u0000\u0000\u0000\u0206\u0209\u0001\u0000\u0000\u0000\u0207"+ + "\u0205\u0001\u0000\u0000\u0000\u0207\u0208\u0001\u0000\u0000\u0000\u0208"+ + "\u0015\u0001\u0000\u0000\u0000\u0209\u0207\u0001\u0000\u0000\u0000\u020a"+ + "\u020b\u0005\u001e\u0000\u0000\u020b\u020c\u0005\b\u0000\u0000\u020c\u020d"+ + "\u0005\u013d\u0000\u0000\u020d\u020e\u0005\u001a\u0000\u0000\u020e\u020f"+ + "\u0005\u013d\u0000\u0000\u020f\u0210\u0005\u001b\u0000\u0000\u0210\u0211"+ + "\u0005\u013d\u0000\u0000\u0211\u0212\u0005\n\u0000\u0000\u0212\u0213\u0005"+ + "\u013d\u0000\u0000\u0213\u0214\u0005\u001c\u0000\u0000\u0214\u0215\u0005"+ + "\u0002\u0000\u0000\u0215\u0216\u0005\u013d\u0000\u0000\u0216\u021b\u0005"+ + "\u0003\u0000\u0000\u0217\u0218\u0005\u001f\u0000\u0000\u0218\u021a\u0005"+ + "\u013d\u0000\u0000\u0219\u0217\u0001\u0000\u0000\u0000\u021a\u021d\u0001"+ + "\u0000\u0000\u0000\u021b\u0219\u0001\u0000\u0000\u0000\u021b\u021c\u0001"+ + "\u0000\u0000\u0000\u021c\u0222\u0001\u0000\u0000\u0000\u021d\u021b\u0001"+ + "\u0000\u0000\u0000\u021e\u021f\u0005\u000b\u0000\u0000\u021f\u0221\u0003"+ + "B!\u0000\u0220\u021e\u0001\u0000\u0000\u0000\u0221\u0224\u0001\u0000\u0000"+ + "\u0000\u0222\u0220\u0001\u0000\u0000\u0000\u0222\u0223\u0001\u0000\u0000"+ + "\u0000\u0223\u0017\u0001\u0000\u0000\u0000\u0224\u0222\u0001\u0000\u0000"+ + "\u0000\u0225\u0226\u0005 \u0000\u0000\u0226\u0227\u0005\b\u0000\u0000"+ + "\u0227\u0228\u0005\u013d\u0000\u0000\u0228\u0229\u0005\u001a\u0000\u0000"+ + "\u0229\u022a\u0005\u013d\u0000\u0000\u022a\u022b\u0005\u001b\u0000\u0000"+ + "\u022b\u0230\u0005\u013d\u0000\u0000\u022c\u022d\u0005\u000b\u0000\u0000"+ + "\u022d\u022f\u0003B!\u0000\u022e\u022c\u0001\u0000\u0000\u0000\u022f\u0232"+ + "\u0001\u0000\u0000\u0000\u0230\u022e\u0001\u0000\u0000\u0000\u0230\u0231"+ + "\u0001\u0000\u0000\u0000\u0231\u0019\u0001\u0000\u0000\u0000\u0232\u0230"+ + "\u0001\u0000\u0000\u0000\u0233\u0234\u0005!\u0000\u0000\u0234\u0235\u0005"+ + "\b\u0000\u0000\u0235\u0236\u0005\u013d\u0000\u0000\u0236\u0237\u0005\""+ + "\u0000\u0000\u0237\u0238\u0005\u013d\u0000\u0000\u0238\u0239\u0005\n\u0000"+ + "\u0000\u0239\u023a\u0005\u0002\u0000\u0000\u023a\u023b\u0003\u001c\u000e"+ + "\u0000\u023b\u0240\u0005\u0003\u0000\u0000\u023c\u023d\u0005\u000b\u0000"+ + "\u0000\u023d\u023f\u0003B!\u0000\u023e\u023c\u0001\u0000\u0000\u0000\u023f"+ + "\u0242\u0001\u0000\u0000\u0000\u0240\u023e\u0001\u0000\u0000\u0000\u0240"+ + "\u0241\u0001\u0000\u0000\u0000\u0241\u001b\u0001\u0000\u0000\u0000\u0242"+ + "\u0240\u0001\u0000\u0000\u0000\u0243\u0244\u0005#\u0000\u0000\u0244\u0245"+ + "\u0005\u013d\u0000\u0000\u0245\u0246\u0005$\u0000\u0000\u0246\u0247\u0005"+ + "\u013d\u0000\u0000\u0247\u001d\u0001\u0000\u0000\u0000\u0248\u0249\u0005"+ + "%\u0000\u0000\u0249\u024a\u0005\b\u0000\u0000\u024a\u024b\u0005\u013d"+ + "\u0000\u0000\u024b\u024c\u0005&\u0000\u0000\u024c\u024d\u0005\u013d\u0000"+ + "\u0000\u024d\u024e\u0005\n\u0000\u0000\u024e\u024f\u0005\u0002\u0000\u0000"+ + "\u024f\u0250\u0005\u013d\u0000\u0000\u0250\u0255\u0005\u0003\u0000\u0000"+ + "\u0251\u0252\u0005\u000b\u0000\u0000\u0252\u0254\u0003B!\u0000\u0253\u0251"+ + "\u0001\u0000\u0000\u0000\u0254\u0257\u0001\u0000\u0000\u0000\u0255\u0253"+ + "\u0001\u0000\u0000\u0000\u0255\u0256\u0001\u0000\u0000\u0000\u0256\u001f"+ + "\u0001\u0000\u0000\u0000\u0257\u0255\u0001\u0000\u0000\u0000\u0258\u0259"+ + "\u0005\'\u0000\u0000\u0259\u025a\u0005\b\u0000\u0000\u025a\u025b\u0005"+ + "\u013d\u0000\u0000\u025b\u025c\u0005(\u0000\u0000\u025c\u0261\u0005\u013d"+ + "\u0000\u0000\u025d\u025e\u0005\u000b\u0000\u0000\u025e\u0260\u0003B!\u0000"+ + "\u025f\u025d\u0001\u0000\u0000\u0000\u0260\u0263\u0001\u0000\u0000\u0000"+ + "\u0261\u025f\u0001\u0000\u0000\u0000\u0261\u0262\u0001\u0000\u0000\u0000"+ + "\u0262!\u0001\u0000\u0000\u0000\u0263\u0261\u0001\u0000\u0000\u0000\u0264"+ + "\u0265\u0005)\u0000\u0000\u0265\u0266\u0005\b\u0000\u0000\u0266\u0267"+ + "\u0005\u013d\u0000\u0000\u0267\u0268\u0005&\u0000\u0000\u0268\u0269\u0005"+ + "\u013d\u0000\u0000\u0269\u026a\u0005\n\u0000\u0000\u026a\u026b\u0005*"+ + "\u0000\u0000\u026b\u026c\u0005\u013d\u0000\u0000\u026c\u026d\u0005+\u0000"+ + "\u0000\u026d\u0272\u0005\u013d\u0000\u0000\u026e\u026f\u0005,\u0000\u0000"+ + "\u026f\u0271\u0003\u00d6k\u0000\u0270\u026e\u0001\u0000\u0000\u0000\u0271"+ + "\u0274\u0001\u0000\u0000\u0000\u0272\u0270\u0001\u0000\u0000\u0000\u0272"+ + "\u0273\u0001\u0000\u0000\u0000\u0273\u0279\u0001\u0000\u0000\u0000\u0274"+ + "\u0272\u0001\u0000\u0000\u0000\u0275\u0276\u0005-\u0000\u0000\u0276\u0278"+ + "\u0003\u00d6k\u0000\u0277\u0275\u0001\u0000\u0000\u0000\u0278\u027b\u0001"+ + "\u0000\u0000\u0000\u0279\u0277\u0001\u0000\u0000\u0000\u0279\u027a\u0001"+ + "\u0000\u0000\u0000\u027a\u027c\u0001\u0000\u0000\u0000\u027b\u0279\u0001"+ + "\u0000\u0000\u0000\u027c\u027d\u0005.\u0000\u0000\u027d\u027e\u0005\u0002"+ + "\u0000\u0000\u027e\u027f\u0005\u013d\u0000\u0000\u027f\u0280\u0005\u0003"+ + "\u0000\u0000\u0280\u0281\u0001\u0000\u0000\u0000\u0281\u0285\u0005\u0002"+ + "\u0000\u0000\u0282\u0284\u0003$\u0012\u0000\u0283\u0282\u0001\u0000\u0000"+ + "\u0000\u0284\u0287\u0001\u0000\u0000\u0000\u0285\u0283\u0001\u0000\u0000"+ + "\u0000\u0285\u0286\u0001\u0000\u0000\u0000\u0286\u0288\u0001\u0000\u0000"+ + "\u0000\u0287\u0285\u0001\u0000\u0000\u0000\u0288\u028d\u0005\u0003\u0000"+ + "\u0000\u0289\u028a\u0005\u000b\u0000\u0000\u028a\u028c\u0003B!\u0000\u028b"+ + "\u0289\u0001\u0000\u0000\u0000\u028c\u028f\u0001\u0000\u0000\u0000\u028d"+ + "\u028b\u0001\u0000\u0000\u0000\u028d\u028e\u0001\u0000\u0000\u0000\u028e"+ + "#\u0001\u0000\u0000\u0000\u028f\u028d\u0001\u0000\u0000\u0000\u0290\u0291"+ + "\u0005/\u0000\u0000\u0291\u0292\u0005\b\u0000\u0000\u0292\u0293\u0005"+ + "\u013d\u0000\u0000\u0293\u0294\u0005\u0016\u0000\u0000\u0294\u0299\u0005"+ + "\u013d\u0000\u0000\u0295\u0296\u00050\u0000\u0000\u0296\u0298\u0005\u013d"+ + "\u0000\u0000\u0297\u0295\u0001\u0000\u0000\u0000\u0298\u029b\u0001\u0000"+ + "\u0000\u0000\u0299\u0297\u0001\u0000\u0000\u0000\u0299\u029a\u0001\u0000"+ + "\u0000\u0000\u029a\u029c\u0001\u0000\u0000\u0000\u029b\u0299\u0001\u0000"+ + "\u0000\u0000\u029c\u029d\u0005\u0003\u0000\u0000\u029d%\u0001\u0000\u0000"+ + "\u0000\u029e\u029f\u00051\u0000\u0000\u029f\u02a0\u0005\b\u0000\u0000"+ + "\u02a0\u02a1\u0005\u013d\u0000\u0000\u02a1\u02a2\u0005&\u0000\u0000\u02a2"+ + "\u02a3\u0005\u013d\u0000\u0000\u02a3\u02a4\u00052\u0000\u0000\u02a4\u02a9"+ + "\u0005\u013d\u0000\u0000\u02a5\u02a6\u0005\n\u0000\u0000\u02a6\u02a8\u0005"+ + "\u013d\u0000\u0000\u02a7\u02a5\u0001\u0000\u0000\u0000\u02a8\u02ab\u0001"+ + "\u0000\u0000\u0000\u02a9\u02a7\u0001\u0000\u0000\u0000\u02a9\u02aa\u0001"+ + "\u0000\u0000\u0000\u02aa\u02ac\u0001\u0000\u0000\u0000\u02ab\u02a9\u0001"+ + "\u0000\u0000\u0000\u02ac\u02ad\u00053\u0000\u0000\u02ad\u02ae\u0005\u013d"+ + "\u0000\u0000\u02ae\u02af\u0005\n\u0000\u0000\u02af\u02b0\u0005\u0002\u0000"+ + "\u0000\u02b0\u02b5\u0005\u0003\u0000\u0000\u02b1\u02b2\u0005\u000b\u0000"+ + "\u0000\u02b2\u02b4\u0003B!\u0000\u02b3\u02b1\u0001\u0000\u0000\u0000\u02b4"+ + "\u02b7\u0001\u0000\u0000\u0000\u02b5\u02b3\u0001\u0000\u0000\u0000\u02b5"+ + "\u02b6\u0001\u0000\u0000\u0000\u02b6\u02bc\u0001\u0000\u0000\u0000\u02b7"+ + "\u02b5\u0001\u0000\u0000\u0000\u02b8\u02b9\u0005\f\u0000\u0000\u02b9\u02bb"+ + "\u0005\u013d\u0000\u0000\u02ba\u02b8\u0001\u0000\u0000\u0000\u02bb\u02be"+ + "\u0001\u0000\u0000\u0000\u02bc\u02ba\u0001\u0000\u0000\u0000\u02bc\u02bd"+ + "\u0001\u0000\u0000\u0000\u02bd\'\u0001\u0000\u0000\u0000\u02be\u02bc\u0001"+ + "\u0000\u0000\u0000\u02bf\u02c0\u00054\u0000\u0000\u02c0\u02c1\u0005\b"+ + "\u0000\u0000\u02c1\u02c2\u0005\u013d\u0000\u0000\u02c2\u02c3\u00055\u0000"+ + "\u0000\u02c3\u02c4\u0003\u00be_\u0000\u02c4\u02c5\u0005\t\u0000\u0000"+ + "\u02c5\u02c6\u0005\u013d\u0000\u0000\u02c6\u02c7\u0005\n\u0000\u0000\u02c7"+ + "\u02c8\u0005\u0002\u0000\u0000\u02c8\u02c9\u0005\u013d\u0000\u0000\u02c9"+ + "\u02ce\u0005\u0003\u0000\u0000\u02ca\u02cb\u0005\u000b\u0000\u0000\u02cb"+ + "\u02cd\u0003B!\u0000\u02cc\u02ca\u0001\u0000\u0000\u0000\u02cd\u02d0\u0001"+ + "\u0000\u0000\u0000\u02ce\u02cc\u0001\u0000\u0000\u0000\u02ce\u02cf\u0001"+ + "\u0000\u0000\u0000\u02cf\u02d5\u0001\u0000\u0000\u0000\u02d0\u02ce\u0001"+ + "\u0000\u0000\u0000\u02d1\u02d2\u0005\f\u0000\u0000\u02d2\u02d4\u0005\u013d"+ + "\u0000\u0000\u02d3\u02d1\u0001\u0000\u0000\u0000\u02d4\u02d7\u0001\u0000"+ + "\u0000\u0000\u02d5\u02d3\u0001\u0000\u0000\u0000\u02d5\u02d6\u0001\u0000"+ + "\u0000\u0000\u02d6\u02dc\u0001\u0000\u0000\u0000\u02d7\u02d5\u0001\u0000"+ + "\u0000\u0000\u02d8\u02d9\u00056\u0000\u0000\u02d9\u02db\u0005\u013d\u0000"+ + "\u0000\u02da\u02d8\u0001\u0000\u0000\u0000\u02db\u02de\u0001\u0000\u0000"+ + "\u0000\u02dc\u02da\u0001\u0000\u0000\u0000\u02dc\u02dd\u0001\u0000\u0000"+ + "\u0000\u02dd)\u0001\u0000\u0000\u0000\u02de\u02dc\u0001\u0000\u0000\u0000"+ + "\u02df\u02e0\u00057\u0000\u0000\u02e0\u02e1\u0005\b\u0000\u0000\u02e1"+ + "\u02e2\u0005\u013d\u0000\u0000\u02e2\u02e3\u0005\u000e\u0000\u0000\u02e3"+ + "\u02e4\u0005\u013d\u0000\u0000\u02e4\u02e5\u00058\u0000\u0000\u02e5\u02e6"+ + "\u0005\u013d\u0000\u0000\u02e6\u02e7\u0005\n\u0000\u0000\u02e7\u02e8\u0005"+ + "\u0002\u0000\u0000\u02e8\u02ed\u0005\u0003\u0000\u0000\u02e9\u02ea\u0005"+ + "\u000b\u0000\u0000\u02ea\u02ec\u0003B!\u0000\u02eb\u02e9\u0001\u0000\u0000"+ + "\u0000\u02ec\u02ef\u0001\u0000\u0000\u0000\u02ed\u02eb\u0001\u0000\u0000"+ + "\u0000\u02ed\u02ee\u0001\u0000\u0000\u0000\u02ee+\u0001\u0000\u0000\u0000"+ + "\u02ef\u02ed\u0001\u0000\u0000\u0000\u02f0\u02f1\u00059\u0000\u0000\u02f1"+ + "\u02f2\u0005\b\u0000\u0000\u02f2\u02f3\u0005\u013d\u0000\u0000\u02f3\u02f4"+ + "\u0005\u000e\u0000\u0000\u02f4\u02f5\u0005\u013d\u0000\u0000\u02f5\u02f6"+ + "\u00058\u0000\u0000\u02f6\u02f7\u0005\u013d\u0000\u0000\u02f7\u02f8\u0005"+ + ":\u0000\u0000\u02f8\u02f9\u0005\u013d\u0000\u0000\u02f9\u02fa\u0005\n"+ + "\u0000\u0000\u02fa\u02fb\u0005\u0002\u0000\u0000\u02fb\u0300\u0005\u0003"+ + "\u0000\u0000\u02fc\u02fd\u0005\u000b\u0000\u0000\u02fd\u02ff\u0003B!\u0000"+ + "\u02fe\u02fc\u0001\u0000\u0000\u0000\u02ff\u0302\u0001\u0000\u0000\u0000"+ + "\u0300\u02fe\u0001\u0000\u0000\u0000\u0300\u0301\u0001\u0000\u0000\u0000"+ + "\u0301-\u0001\u0000\u0000\u0000\u0302\u0300\u0001\u0000\u0000\u0000\u0303"+ + "\u0304\u0005;\u0000\u0000\u0304\u0305\u0005\b\u0000\u0000\u0305\u0306"+ + "\u0005\u013d\u0000\u0000\u0306\u0307\u0005\n\u0000\u0000\u0307\u0308\u0005"+ + "\u0002\u0000\u0000\u0308\u0309\u0005\u013d\u0000\u0000\u0309\u030e\u0005"+ + "\u0003\u0000\u0000\u030a\u030b\u0005\u000b\u0000\u0000\u030b\u030d\u0003"+ + "B!\u0000\u030c\u030a\u0001\u0000\u0000\u0000\u030d\u0310\u0001\u0000\u0000"+ + "\u0000\u030e\u030c\u0001\u0000\u0000\u0000\u030e\u030f\u0001\u0000\u0000"+ + "\u0000\u030f/\u0001\u0000\u0000\u0000\u0310\u030e\u0001\u0000\u0000\u0000"+ + "\u0311\u0312\u0005<\u0000\u0000\u0312\u0313\u0005\b\u0000\u0000\u0313"+ + "\u0314\u0005\u013d\u0000\u0000\u0314\u0315\u0005=\u0000\u0000\u0315\u0316"+ + "\u0005\u013d\u0000\u0000\u0316\u0317\u0005>\u0000\u0000\u0317\u0318\u0005"+ + "\u013d\u0000\u0000\u0318\u0319\u0005:\u0000\u0000\u0319\u031a\u0005\u013d"+ + "\u0000\u0000\u031a\u031b\u0005\n\u0000\u0000\u031b\u031c\u0005\u0002\u0000"+ + "\u0000\u031c\u031d\u0005\u013d\u0000\u0000\u031d\u0322\u0005\u0003\u0000"+ + "\u0000\u031e\u031f\u0005\u000b\u0000\u0000\u031f\u0321\u0003B!\u0000\u0320"+ + "\u031e\u0001\u0000\u0000\u0000\u0321\u0324\u0001\u0000\u0000\u0000\u0322"+ + "\u0320\u0001\u0000\u0000\u0000\u0322\u0323\u0001\u0000\u0000\u0000\u0323"+ + "1\u0001\u0000\u0000\u0000\u0324\u0322\u0001\u0000\u0000\u0000\u0325\u0326"+ + "\u0005?\u0000\u0000\u0326\u0327\u0005\b\u0000\u0000\u0327\u0328\u0005"+ + "\u013d\u0000\u0000\u0328\u0329\u0005\n\u0000\u0000\u0329\u032a\u0005\u0002"+ + "\u0000\u0000\u032a\u032b\u0005\u013d\u0000\u0000\u032b\u0330\u0005\u0003"+ + "\u0000\u0000\u032c\u032d\u0005\u000b\u0000\u0000\u032d\u032f\u0003B!\u0000"+ + "\u032e\u032c\u0001\u0000\u0000\u0000\u032f\u0332\u0001\u0000\u0000\u0000"+ + "\u0330\u032e\u0001\u0000\u0000\u0000\u0330\u0331\u0001\u0000\u0000\u0000"+ + "\u03313\u0001\u0000\u0000\u0000\u0332\u0330\u0001\u0000\u0000\u0000\u0333"+ + "\u0334\u0005@\u0000\u0000\u0334\u0335\u0005\b\u0000\u0000\u0335\u0336"+ + "\u0005\u013d\u0000\u0000\u0336\u0337\u0005\u000e\u0000\u0000\u0337\u0338"+ + "\u0005\u013d\u0000\u0000\u0338\u0339\u0005\u000f\u0000\u0000\u0339\u033a"+ + "\u0005\u013d\u0000\u0000\u033a\u033b\u0005A\u0000\u0000\u033b\u033c\u0005"+ + "\u013d\u0000\u0000\u033c\u033d\u0005\n\u0000\u0000\u033d\u033e\u0005\u0002"+ + "\u0000\u0000\u033e\u0343\u0005\u0003\u0000\u0000\u033f\u0340\u0005\u000b"+ + "\u0000\u0000\u0340\u0342\u0003B!\u0000\u0341\u033f\u0001\u0000\u0000\u0000"+ + "\u0342\u0345\u0001\u0000\u0000\u0000\u0343\u0341\u0001\u0000\u0000\u0000"+ + "\u0343\u0344\u0001\u0000\u0000\u0000\u03445\u0001\u0000\u0000\u0000\u0345"+ + "\u0343\u0001\u0000\u0000\u0000\u0346\u0347\u0005B\u0000\u0000\u0347\u0348"+ + "\u0005\b\u0000\u0000\u0348\u0349\u0005\u013d\u0000\u0000\u0349\u034a\u0005"+ + "C\u0000\u0000\u034a\u034b\u0003\u00be_\u0000\u034b\u034c\u0005D\u0000"+ + "\u0000\u034c\u034d\u0005\u0002\u0000\u0000\u034d\u034e\u00038\u001c\u0000"+ + "\u034e\u0353\u0005\u0003\u0000\u0000\u034f\u0350\u0005\f\u0000\u0000\u0350"+ + "\u0352\u0005\u013d\u0000\u0000\u0351\u034f\u0001\u0000\u0000\u0000\u0352"+ + "\u0355\u0001\u0000\u0000\u0000\u0353\u0351\u0001\u0000\u0000\u0000\u0353"+ + "\u0354\u0001\u0000\u0000\u0000\u0354\u0356\u0001\u0000\u0000\u0000\u0355"+ + "\u0353\u0001\u0000\u0000\u0000\u0356\u0357\u0005E\u0000\u0000\u0357\u0358"+ + "\u0005\u0002\u0000\u0000\u0358\u0359\u0003:\u001d\u0000\u0359\u035e\u0005"+ + "\u0003\u0000\u0000\u035a\u035b\u0005\f\u0000\u0000\u035b\u035d\u0005\u013d"+ + "\u0000\u0000\u035c\u035a\u0001\u0000\u0000\u0000\u035d\u0360\u0001\u0000"+ + "\u0000\u0000\u035e\u035c\u0001\u0000\u0000\u0000\u035e\u035f\u0001\u0000"+ + "\u0000\u0000\u035f\u0365\u0001\u0000\u0000\u0000\u0360\u035e\u0001\u0000"+ + "\u0000\u0000\u0361\u0362\u0005\u000b\u0000\u0000\u0362\u0364\u0003B!\u0000"+ + "\u0363\u0361\u0001\u0000\u0000\u0000\u0364\u0367\u0001\u0000\u0000\u0000"+ + "\u0365\u0363\u0001\u0000\u0000\u0000\u0365\u0366\u0001\u0000\u0000\u0000"+ + "\u03667\u0001\u0000\u0000\u0000\u0367\u0365\u0001\u0000\u0000\u0000\u0368"+ + "\u0369\u0005F\u0000\u0000\u0369\u036a\u0005\b\u0000\u0000\u036a\u036f"+ + "\u0005\u013d\u0000\u0000\u036b\u036c\u0005G\u0000\u0000\u036c\u036e\u0005"+ + "\u013d\u0000\u0000\u036d\u036b\u0001\u0000\u0000\u0000\u036e\u0371\u0001"+ + "\u0000\u0000\u0000\u036f\u036d\u0001\u0000\u0000\u0000\u036f\u0370\u0001"+ + "\u0000\u0000\u0000\u0370\u0376\u0001\u0000\u0000\u0000\u0371\u036f\u0001"+ + "\u0000\u0000\u0000\u0372\u0373\u0005C\u0000\u0000\u0373\u0375\u0003\u00be"+ + "_\u0000\u0374\u0372\u0001\u0000\u0000\u0000\u0375\u0378\u0001\u0000\u0000"+ + "\u0000\u0376\u0374\u0001\u0000\u0000\u0000\u0376\u0377\u0001\u0000\u0000"+ + "\u0000\u0377\u0379\u0001\u0000\u0000\u0000\u0378\u0376\u0001\u0000\u0000"+ + "\u0000\u0379\u037a\u0005\u001c\u0000\u0000\u037a\u037b\u0005\u0002\u0000"+ + "\u0000\u037b\u037c\u0005\u013d\u0000\u0000\u037c\u037d\u0005\u0003\u0000"+ + "\u0000\u037d\u037e\u0005H\u0000\u0000\u037e\u0382\u0005\u0002\u0000\u0000"+ + "\u037f\u0381\u0003\b\u0004\u0000\u0380\u037f\u0001\u0000\u0000\u0000\u0381"+ + "\u0384\u0001\u0000\u0000\u0000\u0382\u0380\u0001\u0000\u0000\u0000\u0382"+ + "\u0383\u0001\u0000\u0000\u0000\u0383\u0385\u0001\u0000\u0000\u0000\u0384"+ + "\u0382\u0001\u0000\u0000\u0000\u0385\u038a\u0005\u0003\u0000\u0000\u0386"+ + "\u0387\u0005\u000b\u0000\u0000\u0387\u0389\u0003B!\u0000\u0388\u0386\u0001"+ + "\u0000\u0000\u0000\u0389\u038c\u0001\u0000\u0000\u0000\u038a\u0388\u0001"+ + "\u0000\u0000\u0000\u038a\u038b\u0001\u0000\u0000\u0000\u038b\u0391\u0001"+ + "\u0000\u0000\u0000\u038c\u038a\u0001\u0000\u0000\u0000\u038d\u038e\u0005"+ + "\f\u0000\u0000\u038e\u0390\u0005\u013d\u0000\u0000\u038f\u038d\u0001\u0000"+ + "\u0000\u0000\u0390\u0393\u0001\u0000\u0000\u0000\u0391\u038f\u0001\u0000"+ + "\u0000\u0000\u0391\u0392\u0001\u0000\u0000\u0000\u03929\u0001\u0000\u0000"+ + "\u0000\u0393\u0391\u0001\u0000\u0000\u0000\u0394\u0395\u0005I\u0000\u0000"+ + "\u0395\u0396\u0005\b\u0000\u0000\u0396\u039d\u0005\u013d\u0000\u0000\u0397"+ + "\u0398\u0005J\u0000\u0000\u0398\u0399\u0005\u013d\u0000\u0000\u0399\u039a"+ + "\u0005C\u0000\u0000\u039a\u039c\u0003\u00be_\u0000\u039b\u0397\u0001\u0000"+ + "\u0000\u0000\u039c\u039f\u0001\u0000\u0000\u0000\u039d\u039b\u0001\u0000"+ + "\u0000\u0000\u039d\u039e\u0001\u0000\u0000\u0000\u039e\u03a6\u0001\u0000"+ + "\u0000\u0000\u039f\u039d\u0001\u0000\u0000\u0000\u03a0\u03a1\u0005K\u0000"+ + "\u0000\u03a1\u03a2\u0005\u013d\u0000\u0000\u03a2\u03a3\u0005L\u0000\u0000"+ + "\u03a3\u03a5\u0005\u013d\u0000\u0000\u03a4\u03a0\u0001\u0000\u0000\u0000"+ + "\u03a5\u03a8\u0001\u0000\u0000\u0000\u03a6\u03a4\u0001\u0000\u0000\u0000"+ + "\u03a6\u03a7\u0001\u0000\u0000\u0000\u03a7\u03a9\u0001\u0000\u0000\u0000"+ + "\u03a8\u03a6\u0001\u0000\u0000\u0000\u03a9\u03aa\u0005H\u0000\u0000\u03aa"+ + "\u03ae\u0005\u0002\u0000\u0000\u03ab\u03ad\u0003\b\u0004\u0000\u03ac\u03ab"+ + "\u0001\u0000\u0000\u0000\u03ad\u03b0\u0001\u0000\u0000\u0000\u03ae\u03ac"+ + "\u0001\u0000\u0000\u0000\u03ae\u03af\u0001\u0000\u0000\u0000\u03af\u03b1"+ + "\u0001\u0000\u0000\u0000\u03b0\u03ae\u0001\u0000\u0000\u0000\u03b1\u03b6"+ + "\u0005\u0003\u0000\u0000\u03b2\u03b3\u0005\u000b\u0000\u0000\u03b3\u03b5"+ + "\u0003B!\u0000\u03b4\u03b2\u0001\u0000\u0000\u0000\u03b5\u03b8\u0001\u0000"+ + "\u0000\u0000\u03b6\u03b4\u0001\u0000\u0000\u0000\u03b6\u03b7\u0001\u0000"+ + "\u0000\u0000\u03b7\u03bd\u0001\u0000\u0000\u0000\u03b8\u03b6\u0001\u0000"+ + "\u0000\u0000\u03b9\u03ba\u0005\f\u0000\u0000\u03ba\u03bc\u0005\u013d\u0000"+ + "\u0000\u03bb\u03b9\u0001\u0000\u0000\u0000\u03bc\u03bf\u0001\u0000\u0000"+ + "\u0000\u03bd\u03bb\u0001\u0000\u0000\u0000\u03bd\u03be\u0001\u0000\u0000"+ + "\u0000\u03be\u03c4\u0001\u0000\u0000\u0000\u03bf\u03bd\u0001\u0000\u0000"+ + "\u0000\u03c0\u03c1\u0005M\u0000\u0000\u03c1\u03c3\u0003B!\u0000\u03c2"+ + "\u03c0\u0001\u0000\u0000\u0000\u03c3\u03c6\u0001\u0000\u0000\u0000\u03c4"+ + "\u03c2\u0001\u0000\u0000\u0000\u03c4\u03c5\u0001\u0000\u0000\u0000\u03c5"+ + ";\u0001\u0000\u0000\u0000\u03c6\u03c4\u0001\u0000\u0000\u0000\u03c7\u03c8"+ + "\u0005N\u0000\u0000\u03c8\u03c9\u0005\b\u0000\u0000\u03c9\u03ca\u0005"+ + "\u013d\u0000\u0000\u03ca\u03cb\u0005O\u0000\u0000\u03cb\u03cc\u0005\u013d"+ + "\u0000\u0000\u03cc\u03cd\u0005P\u0000\u0000\u03cd\u03ce\u0005\u0002\u0000"+ + "\u0000\u03ce\u03cf\u0003\u00d6k\u0000\u03cf\u03d4\u0005\u0003\u0000\u0000"+ + "\u03d0\u03d1\u0005\u000b\u0000\u0000\u03d1\u03d3\u0003B!\u0000\u03d2\u03d0"+ + "\u0001\u0000\u0000\u0000\u03d3\u03d6\u0001\u0000\u0000\u0000\u03d4\u03d2"+ + "\u0001\u0000\u0000\u0000\u03d4\u03d5\u0001\u0000\u0000\u0000\u03d5=\u0001"+ + "\u0000\u0000\u0000\u03d6\u03d4\u0001\u0000\u0000\u0000\u03d7\u03d8\u0005"+ + "Q\u0000\u0000\u03d8\u03d9\u0005\b\u0000\u0000\u03d9\u03da\u0005\u013d"+ + "\u0000\u0000\u03da\u03db\u0005\n\u0000\u0000\u03db\u03dc\u0005\u0002\u0000"+ + "\u0000\u03dc\u03dd\u0005\u013d\u0000\u0000\u03dd\u03e2\u0005\u0003\u0000"+ + "\u0000\u03de\u03df\u0005\u000b\u0000\u0000\u03df\u03e1\u0003B!\u0000\u03e0"+ + "\u03de\u0001\u0000\u0000\u0000\u03e1\u03e4\u0001\u0000\u0000\u0000\u03e2"+ + "\u03e0\u0001\u0000\u0000\u0000\u03e2\u03e3\u0001\u0000\u0000\u0000\u03e3"+ + "?\u0001\u0000\u0000\u0000\u03e4\u03e2\u0001\u0000\u0000\u0000\u03e5\u03e6"+ + "\u0005R\u0000\u0000\u03e6\u03e7\u0005\b\u0000\u0000\u03e7\u03e8\u0005"+ + "\u013d\u0000\u0000\u03e8\u03e9\u0005S\u0000\u0000\u03e9\u03ea\u0005\u013d"+ + "\u0000\u0000\u03ea\u03eb\u0005T\u0000\u0000\u03eb\u03ec\u0005\u013d\u0000"+ + "\u0000\u03ec\u03ed\u0005U\u0000\u0000\u03ed\u03ee\u0005\u013d\u0000\u0000"+ + "\u03ee\u03ef\u0005V\u0000\u0000\u03ef\u03f0\u0005\u013d\u0000\u0000\u03f0"+ + "\u03f1\u0005W\u0000\u0000\u03f1\u03f2\u0005\u013d\u0000\u0000\u03f2\u03f3"+ + "\u0005X\u0000\u0000\u03f3\u03f4\u0005\u013d\u0000\u0000\u03f4\u03f5\u0005"+ + "Y\u0000\u0000\u03f5\u03f6\u0005\u013d\u0000\u0000\u03f6\u03f7\u0005Z\u0000"+ + "\u0000\u03f7\u03f8\u0005\u013d\u0000\u0000\u03f8\u03f9\u0005[\u0000\u0000"+ + "\u03f9\u03fa\u0005\u013d\u0000\u0000\u03fa\u03fb\u0005\n\u0000\u0000\u03fb"+ + "\u03fc\u0005\u0002\u0000\u0000\u03fc\u03fd\u0005\u013d\u0000\u0000\u03fd"+ + "\u0402\u0005\u0003\u0000\u0000\u03fe\u03ff\u0005\u000b\u0000\u0000\u03ff"+ + "\u0401\u0003B!\u0000\u0400\u03fe\u0001\u0000\u0000\u0000\u0401\u0404\u0001"+ + "\u0000\u0000\u0000\u0402\u0400\u0001\u0000\u0000\u0000\u0402\u0403\u0001"+ + "\u0000\u0000\u0000\u0403A\u0001\u0000\u0000\u0000\u0404\u0402\u0001\u0000"+ + "\u0000\u0000\u0405\u0406\u0005\\\u0000\u0000\u0406\u0407\u0005\u013d\u0000"+ + "\u0000\u0407\u0408\u0005\u013f\u0000\u0000\u0408\u0409\u0005\u013d\u0000"+ + "\u0000\u0409C\u0001\u0000\u0000\u0000\u040a\u040b\u0005]\u0000\u0000\u040b"+ + "\u040c\u0005\b\u0000\u0000\u040c\u040d\u0005^\u0000\u0000\u040d\u040e"+ + "\u0005\u013d\u0000\u0000\u040e\u040f\u0005\u0016\u0000\u0000\u040f\u0410"+ + "\u0005_\u0000\u0000\u0410\u0411\u0005\u0002\u0000\u0000\u0411\u0412\u0005"+ + "\u013d\u0000\u0000\u0412\u0413\u0005\u0003\u0000\u0000\u0413E\u0001\u0000"+ + "\u0000\u0000\u0414\u0415\u0005`\u0000\u0000\u0415\u0416\u0005\b\u0000"+ + "\u0000\u0416\u0417\u0005\u013d\u0000\u0000\u0417\u0418\u0005\n\u0000\u0000"+ + "\u0418\u0419\u0005\u0002\u0000\u0000\u0419\u041a\u0005\u013d\u0000\u0000"+ + "\u041a\u041f\u0005\u0003\u0000\u0000\u041b\u041c\u0005\u000b\u0000\u0000"+ + "\u041c\u041e\u0003B!\u0000\u041d\u041b\u0001\u0000\u0000\u0000\u041e\u0421"+ + "\u0001\u0000\u0000\u0000\u041f\u041d\u0001\u0000\u0000\u0000\u041f\u0420"+ + "\u0001\u0000\u0000\u0000\u0420G\u0001\u0000\u0000\u0000\u0421\u041f\u0001"+ + "\u0000\u0000\u0000\u0422\u0423\u0005a\u0000\u0000\u0423\u0424\u0005\b"+ + "\u0000\u0000\u0424\u0425\u0005\u013d\u0000\u0000\u0425\u0426\u0005\n\u0000"+ + "\u0000\u0426\u0427\u0005\u0002\u0000\u0000\u0427\u0428\u0005\u013d\u0000"+ + "\u0000\u0428\u042d\u0005\u0003\u0000\u0000\u0429\u042a\u0005\u000b\u0000"+ + "\u0000\u042a\u042c\u0003B!\u0000\u042b\u0429\u0001\u0000\u0000\u0000\u042c"+ + "\u042f\u0001\u0000\u0000\u0000\u042d\u042b\u0001\u0000\u0000\u0000\u042d"+ + "\u042e\u0001\u0000\u0000\u0000\u042eI\u0001\u0000\u0000\u0000\u042f\u042d"+ + "\u0001\u0000\u0000\u0000\u0430\u0431\u0005b\u0000\u0000\u0431\u0432\u0005"+ + "\b\u0000\u0000\u0432\u0433\u0005\u013d\u0000\u0000\u0433\u0434\u0005\n"+ + "\u0000\u0000\u0434\u0435\u0005\u0002\u0000\u0000\u0435\u0436\u0005\u013d"+ + "\u0000\u0000\u0436\u043b\u0005\u0003\u0000\u0000\u0437\u0438\u0005\u000b"+ + "\u0000\u0000\u0438\u043a\u0003B!\u0000\u0439\u0437\u0001\u0000\u0000\u0000"+ + "\u043a\u043d\u0001\u0000\u0000\u0000\u043b\u0439\u0001\u0000\u0000\u0000"+ + "\u043b\u043c\u0001\u0000\u0000\u0000\u043cK\u0001\u0000\u0000\u0000\u043d"+ + "\u043b\u0001\u0000\u0000\u0000\u043e\u043f\u0005c\u0000\u0000\u043f\u0440"+ + "\u0005\b\u0000\u0000\u0440\u0441\u0005\u013d\u0000\u0000\u0441\u0442\u0005"+ + "d\u0000\u0000\u0442\u0443\u0005\u013d\u0000\u0000\u0443\u0444\u0005e\u0000"+ + "\u0000\u0444\u0445\u0005\u013d\u0000\u0000\u0445\u0446\u0005\n\u0000\u0000"+ + "\u0446\u0447\u0005\u0002\u0000\u0000\u0447\u044c\u0005\u0003\u0000\u0000"+ + "\u0448\u0449\u0005\u000b\u0000\u0000\u0449\u044b\u0003B!\u0000\u044a\u0448"+ + "\u0001\u0000\u0000\u0000\u044b\u044e\u0001\u0000\u0000\u0000\u044c\u044a"+ + "\u0001\u0000\u0000\u0000\u044c\u044d\u0001\u0000\u0000\u0000\u044dM\u0001"+ + "\u0000\u0000\u0000\u044e\u044c\u0001\u0000\u0000\u0000\u044f\u0450\u0005"+ + "f\u0000\u0000\u0450\u0451\u0005\b\u0000\u0000\u0451\u0452\u0005\u013d"+ + "\u0000\u0000\u0452\u0453\u0005g\u0000\u0000\u0453\u0454\u0005\u013d\u0000"+ + "\u0000\u0454\u0455\u0005\n\u0000\u0000\u0455\u0456\u0005\u013d\u0000\u0000"+ + "\u0456\u0457\u0005\n\u0000\u0000\u0457\u0458\u0005\u0002\u0000\u0000\u0458"+ + "\u045d\u0005\u0003\u0000\u0000\u0459\u045a\u0005\u000b\u0000\u0000\u045a"+ + "\u045c\u0003B!\u0000\u045b\u0459\u0001\u0000\u0000\u0000\u045c\u045f\u0001"+ + "\u0000\u0000\u0000\u045d\u045b\u0001\u0000\u0000\u0000\u045d\u045e\u0001"+ + "\u0000\u0000\u0000\u045eO\u0001\u0000\u0000\u0000\u045f\u045d\u0001\u0000"+ + "\u0000\u0000\u0460\u0461\u0005h\u0000\u0000\u0461\u0462\u0005\b\u0000"+ + "\u0000\u0462\u0463\u0005\u013d\u0000\u0000\u0463\u0464\u0005i\u0000\u0000"+ + "\u0464\u0465\u0005\u013d\u0000\u0000\u0465\u0466\u0005j\u0000\u0000\u0466"+ + "\u0467\u0005\u013d\u0000\u0000\u0467\u0468\u0005k\u0000\u0000\u0468\u0469"+ + "\u0005\u013d\u0000\u0000\u0469\u046a\u0005\n\u0000\u0000\u046a\u046b\u0005"+ + "\u0002\u0000\u0000\u046b\u046c\u0005\u013d\u0000\u0000\u046c\u0471\u0005"+ + "\u0003\u0000\u0000\u046d\u046e\u0005\u000b\u0000\u0000\u046e\u0470\u0003"+ + "B!\u0000\u046f\u046d\u0001\u0000\u0000\u0000\u0470\u0473\u0001\u0000\u0000"+ + "\u0000\u0471\u046f\u0001\u0000\u0000\u0000\u0471\u0472\u0001\u0000\u0000"+ + "\u0000\u0472Q\u0001\u0000\u0000\u0000\u0473\u0471\u0001\u0000\u0000\u0000"+ + "\u0474\u0475\u0005l\u0000\u0000\u0475\u0476\u0005\b\u0000\u0000\u0476"+ + "\u0477\u0005\u013d\u0000\u0000\u0477\u0478\u0005i\u0000\u0000\u0478\u0479"+ + "\u0005\u013d\u0000\u0000\u0479\u047a\u0005j\u0000\u0000\u047a\u047b\u0005"+ + "\u013d\u0000\u0000\u047b\u047c\u0005k\u0000\u0000\u047c\u047d\u0005\u013d"+ + "\u0000\u0000\u047d\u047e\u0005\n\u0000\u0000\u047e\u047f\u0005\u0002\u0000"+ + "\u0000\u047f\u0480\u0005\u013d\u0000\u0000\u0480\u0485\u0005\u0003\u0000"+ + "\u0000\u0481\u0482\u0005\u000b\u0000\u0000\u0482\u0484\u0003B!\u0000\u0483"+ + "\u0481\u0001\u0000\u0000\u0000\u0484\u0487\u0001\u0000\u0000\u0000\u0485"+ + "\u0483\u0001\u0000\u0000\u0000\u0485\u0486\u0001\u0000\u0000\u0000\u0486"+ + "S\u0001\u0000\u0000\u0000\u0487\u0485\u0001\u0000\u0000\u0000\u0488\u0489"+ + "\u0005m\u0000\u0000\u0489\u048a\u0005\b\u0000\u0000\u048a\u048b\u0005"+ + "\u013d\u0000\u0000\u048b\u048c\u0005\n\u0000\u0000\u048c\u048d\u0005\u0002"+ + "\u0000\u0000\u048d\u048e\u0005\u013d\u0000\u0000\u048e\u0493\u0005\u0003"+ + "\u0000\u0000\u048f\u0490\u0005\u000b\u0000\u0000\u0490\u0492\u0003B!\u0000"+ + "\u0491\u048f\u0001\u0000\u0000\u0000\u0492\u0495\u0001\u0000\u0000\u0000"+ + "\u0493\u0491\u0001\u0000\u0000\u0000\u0493\u0494\u0001\u0000\u0000\u0000"+ + "\u0494U\u0001\u0000\u0000\u0000\u0495\u0493\u0001\u0000\u0000\u0000\u0496"+ + "\u0497\u0005n\u0000\u0000\u0497\u0498\u0005\b\u0000\u0000\u0498\u0499"+ + "\u0005\u013d\u0000\u0000\u0499\u049a\u0005g\u0000\u0000\u049a\u049b\u0005"+ + "\u013d\u0000\u0000\u049b\u049c\u0005o\u0000\u0000\u049c\u049d\u0005\u013d"+ + "\u0000\u0000\u049d\u049e\u0005p\u0000\u0000\u049e\u049f\u0005\u013d\u0000"+ + "\u0000\u049f\u04a0\u0005\n\u0000\u0000\u04a0\u04a1\u0005\u0002\u0000\u0000"+ + "\u04a1\u04a6\u0005\u0003\u0000\u0000\u04a2\u04a3\u0005\u000b\u0000\u0000"+ + "\u04a3\u04a5\u0003B!\u0000\u04a4\u04a2\u0001\u0000\u0000\u0000\u04a5\u04a8"+ + "\u0001\u0000\u0000\u0000\u04a6\u04a4\u0001\u0000\u0000\u0000\u04a6\u04a7"+ + "\u0001\u0000\u0000\u0000\u04a7W\u0001\u0000\u0000\u0000\u04a8\u04a6\u0001"+ + "\u0000\u0000\u0000\u04a9\u04aa\u0005q\u0000\u0000\u04aa\u04ab\u0005\b"+ + "\u0000\u0000\u04ab\u04ac\u0005\u013d\u0000\u0000\u04ac\u04ad\u0005r\u0000"+ + "\u0000\u04ad\u04ae\u0005\u013d\u0000\u0000\u04ae\u04af\u0005\n\u0000\u0000"+ + "\u04af\u04b0\u0005\u0002\u0000\u0000\u04b0\u04b1\u0005\u013d\u0000\u0000"+ + "\u04b1\u04b6\u0005\u0003\u0000\u0000\u04b2\u04b3\u0005\u000b\u0000\u0000"+ + "\u04b3\u04b5\u0003B!\u0000\u04b4\u04b2\u0001\u0000\u0000\u0000\u04b5\u04b8"+ + "\u0001\u0000\u0000\u0000\u04b6\u04b4\u0001\u0000\u0000\u0000\u04b6\u04b7"+ + "\u0001\u0000\u0000\u0000\u04b7Y\u0001\u0000\u0000\u0000\u04b8\u04b6\u0001"+ + "\u0000\u0000\u0000\u04b9\u04ba\u0005s\u0000\u0000\u04ba\u04bb\u0005\b"+ + "\u0000\u0000\u04bb\u04bc\u0005\u013d\u0000\u0000\u04bc\u04bd\u0005t\u0000"+ + "\u0000\u04bd\u04be\u0005\u013d\u0000\u0000\u04be\u04bf\u0005u\u0000\u0000"+ + "\u04bf\u04c0\u0005\u013d\u0000\u0000\u04c0\u04c1\u0005v\u0000\u0000\u04c1"+ + "\u04c2\u0005\u013d\u0000\u0000\u04c2\u04c3\u0005w\u0000\u0000\u04c3\u04c4"+ + "\u0005\u013d\u0000\u0000\u04c4\u04c5\u0005x\u0000\u0000\u04c5\u04c6\u0005"+ + "\u013d\u0000\u0000\u04c6\u04c7\u0005y\u0000\u0000\u04c7\u04c8\u0005\u013d"+ + "\u0000\u0000\u04c8\u04c9\u0005z\u0000\u0000\u04c9\u04ca\u0005\u013d\u0000"+ + "\u0000\u04ca\u04cb\u0005{\u0000\u0000\u04cb\u04cc\u0005\u013d\u0000\u0000"+ + "\u04cc\u04cd\u0005\n\u0000\u0000\u04cd\u04ce\u0005\u0002\u0000\u0000\u04ce"+ + "\u04d3\u0005\u0003\u0000\u0000\u04cf\u04d0\u0005\u000b\u0000\u0000\u04d0"+ + "\u04d2\u0003B!\u0000\u04d1\u04cf\u0001\u0000\u0000\u0000\u04d2\u04d5\u0001"+ + "\u0000\u0000\u0000\u04d3\u04d1\u0001\u0000\u0000\u0000\u04d3\u04d4\u0001"+ + "\u0000\u0000\u0000\u04d4[\u0001\u0000\u0000\u0000\u04d5\u04d3\u0001\u0000"+ + "\u0000\u0000\u04d6\u04d7\u0005|\u0000\u0000\u04d7\u04d8\u0005\b\u0000"+ + "\u0000\u04d8\u04d9\u0005\u013d\u0000\u0000\u04d9\u04da\u0005t\u0000\u0000"+ + "\u04da\u04db\u0005\u013d\u0000\u0000\u04db\u04dc\u0005u\u0000\u0000\u04dc"+ + "\u04dd\u0005\u013d\u0000\u0000\u04dd\u04de\u0005v\u0000\u0000\u04de\u04df"+ + "\u0005\u013d\u0000\u0000\u04df\u04e0\u0005w\u0000\u0000\u04e0\u04e1\u0005"+ + "\u013d\u0000\u0000\u04e1\u04e2\u0005x\u0000\u0000\u04e2\u04e3\u0005\u013d"+ + "\u0000\u0000\u04e3\u04e4\u0005}\u0000\u0000\u04e4\u04e5\u0005\u013d\u0000"+ + "\u0000\u04e5\u04e6\u0005z\u0000\u0000\u04e6\u04e7\u0005\u013d\u0000\u0000"+ + "\u04e7\u04e8\u0005~\u0000\u0000\u04e8\u04e9\u0005\u013d\u0000\u0000\u04e9"+ + "\u04ea\u0005\n\u0000\u0000\u04ea\u04eb\u0005\u0002\u0000\u0000\u04eb\u04f0"+ + "\u0005\u0003\u0000\u0000\u04ec\u04ed\u0005\u000b\u0000\u0000\u04ed\u04ef"+ + "\u0003B!\u0000\u04ee\u04ec\u0001\u0000\u0000\u0000\u04ef\u04f2\u0001\u0000"+ + "\u0000\u0000\u04f0\u04ee\u0001\u0000\u0000\u0000\u04f0\u04f1\u0001\u0000"+ + "\u0000\u0000\u04f1]\u0001\u0000\u0000\u0000\u04f2\u04f0\u0001\u0000\u0000"+ + "\u0000\u04f3\u04f4\u0005\u007f\u0000\u0000\u04f4\u04f5\u0005\b\u0000\u0000"+ + "\u04f5\u04f6\u0005\u013d\u0000\u0000\u04f6\u04f7\u0005t\u0000\u0000\u04f7"+ + "\u04f8\u0005\u013d\u0000\u0000\u04f8\u04f9\u0005u\u0000\u0000\u04f9\u04fa"+ + "\u0005\u013d\u0000\u0000\u04fa\u04fb\u0005v\u0000\u0000\u04fb\u04fc\u0005"+ + "\u013d\u0000\u0000\u04fc\u04fd\u0005w\u0000\u0000\u04fd\u04fe\u0005\u013d"+ + "\u0000\u0000\u04fe\u04ff\u0005x\u0000\u0000\u04ff\u0500\u0005\u013d\u0000"+ + "\u0000\u0500\u0501\u0005\u0080\u0000\u0000\u0501\u0502\u0005\u013d\u0000"+ + "\u0000\u0502\u0503\u0005}\u0000\u0000\u0503\u0504\u0005\u013d\u0000\u0000"+ + "\u0504\u0505\u0005z\u0000\u0000\u0505\u0506\u0005\u013d\u0000\u0000\u0506"+ + "\u0507\u0005\u0081\u0000\u0000\u0507\u0508\u0005\b\u0000\u0000\u0508\u0509"+ + "\u0005\u013d\u0000\u0000\u0509\u050a\u0005t\u0000\u0000\u050a\u050b\u0005"+ + "\u013d\u0000\u0000\u050b\u050c\u0005u\u0000\u0000\u050c\u050d\u0005\u013d"+ + "\u0000\u0000\u050d\u050e\u0005v\u0000\u0000\u050e\u050f\u0005\u013d\u0000"+ + "\u0000\u050f\u0510\u0005w\u0000\u0000\u0510\u0511\u0005\u013d\u0000\u0000"+ + "\u0511\u0512\u0005x\u0000\u0000\u0512\u0513\u0005\u013d\u0000\u0000\u0513"+ + "\u0514\u0005}\u0000\u0000\u0514\u0515\u0005\u013d\u0000\u0000\u0515\u0516"+ + "\u0005z\u0000\u0000\u0516\u0517\u0005\u013d\u0000\u0000\u0517\u0518\u0005"+ + "\n\u0000\u0000\u0518\u0519\u0005\u0002\u0000\u0000\u0519\u051e\u0005\u0003"+ + "\u0000\u0000\u051a\u051b\u0005\u000b\u0000\u0000\u051b\u051d\u0003B!\u0000"+ + "\u051c\u051a\u0001\u0000\u0000\u0000\u051d\u0520\u0001\u0000\u0000\u0000"+ + "\u051e\u051c\u0001\u0000\u0000\u0000\u051e\u051f\u0001\u0000\u0000\u0000"+ + "\u051f_\u0001\u0000\u0000\u0000\u0520\u051e\u0001\u0000\u0000\u0000\u0521"+ + "\u0522\u0005\u0082\u0000\u0000\u0522\u0523\u0005\u013d\u0000\u0000\u0523"+ + "\u0524\u0005Z\u0000\u0000\u0524\u0525\u0005\u013d\u0000\u0000\u0525\u0526"+ + "\u0005\u000e\u0000\u0000\u0526\u0527\u0005\u013d\u0000\u0000\u0527\u0528"+ + "\u00058\u0000\u0000\u0528\u0529\u0005\u013d\u0000\u0000\u0529\u052a\u0005"+ + "\n\u0000\u0000\u052a\u052b\u0005\u0002\u0000\u0000\u052b\u0530\u0005\u0003"+ + "\u0000\u0000\u052c\u052d\u0005\u000b\u0000\u0000\u052d\u052f\u0003B!\u0000"+ + "\u052e\u052c\u0001\u0000\u0000\u0000\u052f\u0532\u0001\u0000\u0000\u0000"+ + "\u0530\u052e\u0001\u0000\u0000\u0000\u0530\u0531\u0001\u0000\u0000\u0000"+ + "\u0531a\u0001\u0000\u0000\u0000\u0532\u0530\u0001\u0000\u0000\u0000\u0533"+ + "\u0534\u0005\u0083\u0000\u0000\u0534\u0535\u0005\u013d\u0000\u0000\u0535"+ + "\u0536\u0005\u000e\u0000\u0000\u0536\u0537\u0005\u013d\u0000\u0000\u0537"+ + "\u0538\u00058\u0000\u0000\u0538\u0539\u0005\u013d\u0000\u0000\u0539\u053a"+ + "\u0005\n\u0000\u0000\u053a\u053b\u0005\u0002\u0000\u0000\u053b\u0540\u0005"+ + "\u0003\u0000\u0000\u053c\u053d\u0005\u000b\u0000\u0000\u053d\u053f\u0003"+ + "B!\u0000\u053e\u053c\u0001\u0000\u0000\u0000\u053f\u0542\u0001\u0000\u0000"+ + "\u0000\u0540\u053e\u0001\u0000\u0000\u0000\u0540\u0541\u0001\u0000\u0000"+ + "\u0000\u0541c\u0001\u0000\u0000\u0000\u0542\u0540\u0001\u0000\u0000\u0000"+ + "\u0543\u0544\u0005\u0084\u0000\u0000\u0544\u0545\u0005\b\u0000\u0000\u0545"+ + "\u0546\u0005\u013d\u0000\u0000\u0546\u0547\u0005\t\u0000\u0000\u0547\u0548"+ + "\u0005\u013d\u0000\u0000\u0548\u0549\u0005\u0085\u0000\u0000\u0549\u054a"+ + "\u0005\u013d\u0000\u0000\u054a\u054b\u0005\u0086\u0000\u0000\u054b\u054c"+ + "\u0005\u013d\u0000\u0000\u054c\u054d\u0005\u0087\u0000\u0000\u054d\u054e"+ + "\u0005\u013d\u0000\u0000\u054e\u054f\u0005\u0088\u0000\u0000\u054f\u0550"+ + "\u0005\u013d\u0000\u0000\u0550\u0551\u0005\n\u0000\u0000\u0551\u0552\u0005"+ + "\u0002\u0000\u0000\u0552\u0553\u0005\u013d\u0000\u0000\u0553\u0558\u0005"+ + "\u0003\u0000\u0000\u0554\u0555\u0005\u000b\u0000\u0000\u0555\u0557\u0003"+ + "B!\u0000\u0556\u0554\u0001\u0000\u0000\u0000\u0557\u055a\u0001\u0000\u0000"+ + "\u0000\u0558\u0556\u0001\u0000\u0000\u0000\u0558\u0559\u0001\u0000\u0000"+ + "\u0000\u0559e\u0001\u0000\u0000\u0000\u055a\u0558\u0001\u0000\u0000\u0000"+ + "\u055b\u055c\u0005\u0089\u0000\u0000\u055c\u055d\u0005\b\u0000\u0000\u055d"+ + "\u055e\u0005\u013d\u0000\u0000\u055e\u055f\u0005\u008a\u0000\u0000\u055f"+ + "\u0560\u0005\u013d\u0000\u0000\u0560\u0561\u0005\n\u0000\u0000\u0561\u0562"+ + "\u0005\u0002\u0000\u0000\u0562\u0563\u0005\u013d\u0000\u0000\u0563\u0568"+ + "\u0005\u0003\u0000\u0000\u0564\u0565\u0005\u000b\u0000\u0000\u0565\u0567"+ + "\u0003B!\u0000\u0566\u0564\u0001\u0000\u0000\u0000\u0567\u056a\u0001\u0000"+ + "\u0000\u0000\u0568\u0566\u0001\u0000\u0000\u0000\u0568\u0569\u0001\u0000"+ + "\u0000\u0000\u0569g\u0001\u0000\u0000\u0000\u056a\u0568\u0001\u0000\u0000"+ + "\u0000\u056b\u056c\u0005\u008b\u0000\u0000\u056c\u056d\u0005\b\u0000\u0000"+ + "\u056d\u056e\u0005\u013d\u0000\u0000\u056e\u056f\u0005\u008c\u0000\u0000"+ + "\u056f\u0570\u0005\u013d\u0000\u0000\u0570\u0571\u0005\u008d\u0000\u0000"+ + "\u0571\u0572\u0005\u013d\u0000\u0000\u0572\u0573\u0005\u008e\u0000\u0000"+ + "\u0573\u0574\u0005\u013d\u0000\u0000\u0574\u0575\u0005\u008f\u0000\u0000"+ + "\u0575\u0576\u0005\u013d\u0000\u0000\u0576\u0577\u0005\u0090\u0000\u0000"+ + "\u0577\u0578\u0005\u013d\u0000\u0000\u0578\u0579\u0005\n\u0000\u0000\u0579"+ + "\u057a\u0005\u0002\u0000\u0000\u057a\u057f\u0005\u0003\u0000\u0000\u057b"+ + "\u057c\u0005\u000b\u0000\u0000\u057c\u057e\u0003B!\u0000\u057d\u057b\u0001"+ + "\u0000\u0000\u0000\u057e\u0581\u0001\u0000\u0000\u0000\u057f\u057d\u0001"+ + "\u0000\u0000\u0000\u057f\u0580\u0001\u0000\u0000\u0000\u0580i\u0001\u0000"+ + "\u0000\u0000\u0581\u057f\u0001\u0000\u0000\u0000\u0582\u0583\u0005\u0091"+ + "\u0000\u0000\u0583\u0584\u0005\b\u0000\u0000\u0584\u0585\u0005\u013d\u0000"+ + "\u0000\u0585\u0586\u0005\u008c\u0000\u0000\u0586\u0587\u0005\u013d\u0000"+ + "\u0000\u0587\u0588\u0005\u008d\u0000\u0000\u0588\u0589\u0005\u013d\u0000"+ + "\u0000\u0589\u058a\u0005\u008e\u0000\u0000\u058a\u058b\u0005\u013d\u0000"+ + "\u0000\u058b\u058c\u0005\u008f\u0000\u0000\u058c\u058d\u0005\u013d\u0000"+ + "\u0000\u058d\u058e\u0005\u0092\u0000\u0000\u058e\u058f\u0005\u013d\u0000"+ + "\u0000\u058f\u0590\u0005\n\u0000\u0000\u0590\u0591\u0005\u0002\u0000\u0000"+ + "\u0591\u0596\u0005\u0003\u0000\u0000\u0592\u0593\u0005\u000b\u0000\u0000"+ + "\u0593\u0595\u0003B!\u0000\u0594\u0592\u0001\u0000\u0000\u0000\u0595\u0598"+ + "\u0001\u0000\u0000\u0000\u0596\u0594\u0001\u0000\u0000\u0000\u0596\u0597"+ + "\u0001\u0000\u0000\u0000\u0597k\u0001\u0000\u0000\u0000\u0598\u0596\u0001"+ + "\u0000\u0000\u0000\u0599\u059a\u0005\u0093\u0000\u0000\u059a\u059b\u0005"+ + "\b\u0000\u0000\u059b\u059c\u0005\u013d\u0000\u0000\u059c\u059d\u0005\u008c"+ + "\u0000\u0000\u059d\u059e\u0005\u013d\u0000\u0000\u059e\u059f\u0005\u008e"+ + "\u0000\u0000\u059f\u05a0\u0005\u013d\u0000\u0000\u05a0\u05a1\u0005\u0094"+ + "\u0000\u0000\u05a1\u05a2\u0005\u013d\u0000\u0000\u05a2\u05a3\u0005\n\u0000"+ + "\u0000\u05a3\u05a4\u0005\u0002\u0000\u0000\u05a4\u05a9\u0005\u0003\u0000"+ + "\u0000\u05a5\u05a6\u0005\u000b\u0000\u0000\u05a6\u05a8\u0003B!\u0000\u05a7"+ + "\u05a5\u0001\u0000\u0000\u0000\u05a8\u05ab\u0001\u0000\u0000\u0000\u05a9"+ + "\u05a7\u0001\u0000\u0000\u0000\u05a9\u05aa\u0001\u0000\u0000\u0000\u05aa"+ + "m\u0001\u0000\u0000\u0000\u05ab\u05a9\u0001\u0000\u0000\u0000\u05ac\u05ad"+ + "\u0005\u0095\u0000\u0000\u05ad\u05ae\u0005\b\u0000\u0000\u05ae\u05af\u0005"+ + "\u013d\u0000\u0000\u05af\u05b0\u0005\u0096\u0000\u0000\u05b0\u05b1\u0005"+ + "\u013d\u0000\u0000\u05b1\u05b2\u0005\u0097\u0000\u0000\u05b2\u05b3\u0005"+ + "\u013d\u0000\u0000\u05b3\u05b4\u0005\u0098\u0000\u0000\u05b4\u05b5\u0005"+ + "\u013d\u0000\u0000\u05b5\u05b6\u0005\u0099\u0000\u0000\u05b6\u05b7\u0005"+ + "\u013d\u0000\u0000\u05b7\u05b8\u0005\u009a\u0000\u0000\u05b8\u05b9\u0005"+ + "\u013d\u0000\u0000\u05b9\u05ba\u0005\u009b\u0000\u0000\u05ba\u05bb\u0005"+ + "\u013d\u0000\u0000\u05bb\u05bc\u0005\u009c\u0000\u0000\u05bc\u05bd\u0005"+ + "\u013d\u0000\u0000\u05bd\u05be\u0005\u009d\u0000\u0000\u05be\u05bf\u0005"+ + "\u013d\u0000\u0000\u05bf\u05c0\u0005\u009e\u0000\u0000\u05c0\u05c1\u0005"+ + "\u013d\u0000\u0000\u05c1\u05c2\u0005\u009f\u0000\u0000\u05c2\u05c3\u0005"+ + "\u013d\u0000\u0000\u05c3\u05c4\u0005\u00a0\u0000\u0000\u05c4\u05c5\u0005"+ + "\u013d\u0000\u0000\u05c5\u05c6\u0005\u00a1\u0000\u0000\u05c6\u05c7\u0005"+ + "\u013d\u0000\u0000\u05c7\u05c8\u0005\u00a2\u0000\u0000\u05c8\u05c9\u0005"+ + "\u013d\u0000\u0000\u05c9\u05ca\u0005\u0002\u0000\u0000\u05ca\u05cb\u0005"+ + "\u013d\u0000\u0000\u05cb\u05d0\u0005\u0003\u0000\u0000\u05cc\u05cd\u0005"+ + "\u000b\u0000\u0000\u05cd\u05cf\u0003B!\u0000\u05ce\u05cc\u0001\u0000\u0000"+ + "\u0000\u05cf\u05d2\u0001\u0000\u0000\u0000\u05d0\u05ce\u0001\u0000\u0000"+ + "\u0000\u05d0\u05d1\u0001\u0000\u0000\u0000\u05d1o\u0001\u0000\u0000\u0000"+ + "\u05d2\u05d0\u0001\u0000\u0000\u0000\u05d3\u05d4\u0005\u00a3\u0000\u0000"+ + "\u05d4\u05d5\u0005\b\u0000\u0000\u05d5\u05d6\u0005\u013d\u0000\u0000\u05d6"+ + "\u05d7\u0005\u0096\u0000\u0000\u05d7\u05d8\u0005\u013d\u0000\u0000\u05d8"+ + "\u05d9\u0005\u00a2\u0000\u0000\u05d9\u05da\u0005\u013d\u0000\u0000\u05da"+ + "\u05db\u0005\u00a4\u0000\u0000\u05db\u05dc\u0005\u0002\u0000\u0000\u05dc"+ + "\u05dd\u0005\u013d\u0000\u0000\u05dd\u05de\u0005\u0003\u0000\u0000\u05de"+ + "\u05df\u0005\u00a5\u0000\u0000\u05df\u05e0\u0005\u013d\u0000\u0000\u05e0"+ + "\u05e1\u0005\u00a6\u0000\u0000\u05e1\u05e2\u0005\u0002\u0000\u0000\u05e2"+ + "\u05e3\u0005\u013d\u0000\u0000\u05e3\u05e8\u0005\u0003\u0000\u0000\u05e4"+ + "\u05e5\u0005\u000b\u0000\u0000\u05e5\u05e7\u0003B!\u0000\u05e6\u05e4\u0001"+ + "\u0000\u0000\u0000\u05e7\u05ea\u0001\u0000\u0000\u0000\u05e8\u05e6\u0001"+ + "\u0000\u0000\u0000\u05e8\u05e9\u0001\u0000\u0000\u0000\u05e9q\u0001\u0000"+ + "\u0000\u0000\u05ea\u05e8\u0001\u0000\u0000\u0000\u05eb\u05ec\u0005\u00a7"+ + "\u0000\u0000\u05ec\u05ed\u0005\b\u0000\u0000\u05ed\u05ee\u0005\u013d\u0000"+ + "\u0000\u05ee\u05ef\u0005\u0096\u0000\u0000\u05ef\u05f0\u0005\u013d\u0000"+ + "\u0000\u05f0\u05f1\u0005\u00a8\u0000\u0000\u05f1\u05f2\u0005\u013d\u0000"+ + "\u0000\u05f2\u05f3\u0005\u00a9\u0000\u0000\u05f3\u05f4\u0005\u013d\u0000"+ + "\u0000\u05f4\u05f5\u0005\u00aa\u0000\u0000\u05f5\u05f6\u0005\u013d\u0000"+ + "\u0000\u05f6\u05f7\u0005\u00a5\u0000\u0000\u05f7\u05f8\u0005\u013d\u0000"+ + "\u0000\u05f8\u05f9\u0005\u00ab\u0000\u0000\u05f9\u05fa\u0005\u0002\u0000"+ + "\u0000\u05fa\u05fb\u0005\u013d\u0000\u0000\u05fb\u05fc\u0005\u0003\u0000"+ + "\u0000\u05fc\u05fd\u0005\u00ac\u0000\u0000\u05fd\u05fe\u0005\u0002\u0000"+ + "\u0000\u05fe\u05ff\u0005\u013d\u0000\u0000\u05ff\u0604\u0005\u0003\u0000"+ + "\u0000\u0600\u0601\u0005\u000b\u0000\u0000\u0601\u0603\u0003B!\u0000\u0602"+ + "\u0600\u0001\u0000\u0000\u0000\u0603\u0606\u0001\u0000\u0000\u0000\u0604"+ + "\u0602\u0001\u0000\u0000\u0000\u0604\u0605\u0001\u0000\u0000\u0000\u0605"+ + "\u060b\u0001\u0000\u0000\u0000\u0606\u0604\u0001\u0000\u0000\u0000\u0607"+ + "\u0608\u0005\f\u0000\u0000\u0608\u060a\u0005\u013c\u0000\u0000\u0609\u0607"+ + "\u0001\u0000\u0000\u0000\u060a\u060d\u0001\u0000\u0000\u0000\u060b\u0609"+ + "\u0001\u0000\u0000\u0000\u060b\u060c\u0001\u0000\u0000\u0000\u060c\u0612"+ + "\u0001\u0000\u0000\u0000\u060d\u060b\u0001\u0000\u0000\u0000\u060e\u060f"+ + "\u0005\u0010\u0000\u0000\u060f\u0611\u0005\u013c\u0000\u0000\u0610\u060e"+ + "\u0001\u0000\u0000\u0000\u0611\u0614\u0001\u0000\u0000\u0000\u0612\u0610"+ + "\u0001\u0000\u0000\u0000\u0612\u0613\u0001\u0000\u0000\u0000\u0613\u0619"+ + "\u0001\u0000\u0000\u0000\u0614\u0612\u0001\u0000\u0000\u0000\u0615\u0616"+ + "\u0005\u0011\u0000\u0000\u0616\u0618\u0005\u013c\u0000\u0000\u0617\u0615"+ + "\u0001\u0000\u0000\u0000\u0618\u061b\u0001\u0000\u0000\u0000\u0619\u0617"+ + "\u0001\u0000\u0000\u0000\u0619\u061a\u0001\u0000\u0000\u0000\u061as\u0001"+ + "\u0000\u0000\u0000\u061b\u0619\u0001\u0000\u0000\u0000\u061c\u061d\u0005"+ + "\u00ad\u0000\u0000\u061d\u061e\u0005\b\u0000\u0000\u061e\u061f\u0005\u013d"+ + "\u0000\u0000\u061f\u0620\u0005\u00ae\u0000\u0000\u0620\u0621\u0005\u013d"+ + "\u0000\u0000\u0621\u0622\u0005\u00a4\u0000\u0000\u0622\u0623\u0005\u0002"+ + "\u0000\u0000\u0623\u0624\u0005\u013d\u0000\u0000\u0624\u0629\u0005\u0003"+ + "\u0000\u0000\u0625\u0626\u0005\u000b\u0000\u0000\u0626\u0628\u0003B!\u0000"+ + "\u0627\u0625\u0001\u0000\u0000\u0000\u0628\u062b\u0001\u0000\u0000\u0000"+ + "\u0629\u0627\u0001\u0000\u0000\u0000\u0629\u062a\u0001\u0000\u0000\u0000"+ + "\u062au\u0001\u0000\u0000\u0000\u062b\u0629\u0001\u0000\u0000\u0000\u062c"+ + "\u062d\u0005\u00ad\u0000\u0000\u062d\u062e\u0005\b\u0000\u0000\u062e\u062f"+ + "\u0005\u013d\u0000\u0000\u062f\u0630\u0005\u00af\u0000\u0000\u0630\u0631"+ + "\u0005\u013d\u0000\u0000\u0631\u0632\u0005\u00b0\u0000\u0000\u0632\u0633"+ + "\u0005\u013d\u0000\u0000\u0633\u0634\u0005\u00b1\u0000\u0000\u0634\u0635"+ + "\u0005\u013d\u0000\u0000\u0635\u0636\u0005\u00a5\u0000\u0000\u0636\u0637"+ + "\u0005\u013d\u0000\u0000\u0637\u0638\u0005\u00b2\u0000\u0000\u0638\u0639"+ + "\u0005\u013d\u0000\u0000\u0639\u063a\u0005\u00b3\u0000\u0000\u063a\u063b"+ + "\u0005\u013d\u0000\u0000\u063b\u063c\u0005\u00a4\u0000\u0000\u063c\u063d"+ + "\u0005\u0002\u0000\u0000\u063d\u063e\u0005\u013d\u0000\u0000\u063e\u0643"+ + "\u0005\u0003\u0000\u0000\u063f\u0640\u0005\u000b\u0000\u0000\u0640\u0642"+ + "\u0003B!\u0000\u0641\u063f\u0001\u0000\u0000\u0000\u0642\u0645\u0001\u0000"+ + "\u0000\u0000\u0643\u0641\u0001\u0000\u0000\u0000\u0643\u0644\u0001\u0000"+ + "\u0000\u0000\u0644w\u0001\u0000\u0000\u0000\u0645\u0643\u0001\u0000\u0000"+ + "\u0000\u0646\u0647\u0005\u00b4\u0000\u0000\u0647\u0648\u0005\b\u0000\u0000"+ + "\u0648\u0649\u0005\u013d\u0000\u0000\u0649\u064a\u0005\u00b5\u0000\u0000"+ + "\u064a\u064b\u0005\u013d\u0000\u0000\u064b\u064c\u0005\u0002\u0000\u0000"+ + "\u064c\u064d\u0005\u013d\u0000\u0000\u064d\u0652\u0005\u0003\u0000\u0000"+ + "\u064e\u064f\u0005\u000b\u0000\u0000\u064f\u0651\u0003B!\u0000\u0650\u064e"+ + "\u0001\u0000\u0000\u0000\u0651\u0654\u0001\u0000\u0000\u0000\u0652\u0650"+ + "\u0001\u0000\u0000\u0000\u0652\u0653\u0001\u0000\u0000\u0000\u0653y\u0001"+ + "\u0000\u0000\u0000\u0654\u0652\u0001\u0000\u0000\u0000\u0655\u0656\u0005"+ + "\u00b6\u0000\u0000\u0656\u0657\u0005\b\u0000\u0000\u0657\u0658\u0005\u013d"+ + "\u0000\u0000\u0658\u0659\u0005\u00b7\u0000\u0000\u0659\u065a\u0005\u013d"+ + "\u0000\u0000\u065a\u065b\u0005\u00a5\u0000\u0000\u065b\u065c\u0005\u013d"+ + "\u0000\u0000\u065c\u065d\u0005\n\u0000\u0000\u065d\u065e\u0005\u0002\u0000"+ + "\u0000\u065e\u065f\u0005\u013d\u0000\u0000\u065f\u0664\u0005\u0003\u0000"+ + "\u0000\u0660\u0661\u0005\u000b\u0000\u0000\u0661\u0663\u0003B!\u0000\u0662"+ + "\u0660\u0001\u0000\u0000\u0000\u0663\u0666\u0001\u0000\u0000\u0000\u0664"+ + "\u0662\u0001\u0000\u0000\u0000\u0664\u0665\u0001\u0000\u0000\u0000\u0665"+ + "{\u0001\u0000\u0000\u0000\u0666\u0664\u0001\u0000\u0000\u0000\u0667\u0668"+ + "\u0005\u00b8\u0000\u0000\u0668\u0669\u0005\b\u0000\u0000\u0669\u066a\u0005"+ + "\u013d\u0000\u0000\u066a\u066b\u0005\u00a5\u0000\u0000\u066b\u066c\u0005"+ + "\u013d\u0000\u0000\u066c\u066d\u0005\u00b9\u0000\u0000\u066d\u066e\u0005"+ + "\u0002\u0000\u0000\u066e\u066f\u0005\u013d\u0000\u0000\u066f\u0670\u0005"+ + "\u0003\u0000\u0000\u0670\u0671\u0005\u00ba\u0000\u0000\u0671\u0672\u0005"+ + "\u0002\u0000\u0000\u0672\u0673\u0005\u013d\u0000\u0000\u0673\u0678\u0005"+ + "\u0003\u0000\u0000\u0674\u0675\u0005\u000b\u0000\u0000\u0675\u0677\u0003"+ + "B!\u0000\u0676\u0674\u0001\u0000\u0000\u0000\u0677\u067a\u0001\u0000\u0000"+ + "\u0000\u0678\u0676\u0001\u0000\u0000\u0000\u0678\u0679\u0001\u0000\u0000"+ + "\u0000\u0679}\u0001\u0000\u0000\u0000\u067a\u0678\u0001\u0000\u0000\u0000"+ + "\u067b\u067c\u0005\u00bb\u0000\u0000\u067c\u067d\u0005\b\u0000\u0000\u067d"+ + "\u067e\u0005\u013d\u0000\u0000\u067e\u067f\u0005\u00bc\u0000\u0000\u067f"+ + "\u0680\u0005\u013d\u0000\u0000\u0680\u0681\u0005\u00bd\u0000\u0000\u0681"+ + "\u0682\u0005\u013d\u0000\u0000\u0682\u0683\u0005\n\u0000\u0000\u0683\u0684"+ + "\u0005\u0002\u0000\u0000\u0684\u0689\u0005\u0003\u0000\u0000\u0685\u0686"+ + "\u0005\u000b\u0000\u0000\u0686\u0688\u0003B!\u0000\u0687\u0685\u0001\u0000"+ + "\u0000\u0000\u0688\u068b\u0001\u0000\u0000\u0000\u0689\u0687\u0001\u0000"+ + "\u0000\u0000\u0689\u068a\u0001\u0000\u0000\u0000\u068a\u007f\u0001\u0000"+ + "\u0000\u0000\u068b\u0689\u0001\u0000\u0000\u0000\u068c\u068d\u0005\u00be"+ + "\u0000\u0000\u068d\u068e\u0005\b\u0000\u0000\u068e\u068f\u0005\u013d\u0000"+ + "\u0000\u068f\u0690\u0005\u00bf\u0000\u0000\u0690\u0691\u0005\u013d\u0000"+ + "\u0000\u0691\u0692\u0005\u00c0\u0000\u0000\u0692\u0693\u0005\u013d\u0000"+ + "\u0000\u0693\u0694\u0005\u00c1\u0000\u0000\u0694\u0695\u0005\u013d\u0000"+ + "\u0000\u0695\u0696\u0005\u00c2\u0000\u0000\u0696\u0697\u0005\u013d\u0000"+ + "\u0000\u0697\u0698\u0005\u00c3\u0000\u0000\u0698\u0699\u0005\u013d\u0000"+ + "\u0000\u0699\u069a\u0005\u00c4\u0000\u0000\u069a\u069b\u0005\u013d\u0000"+ + "\u0000\u069b\u069c\u0005\u00c5\u0000\u0000\u069c\u069d\u0005\u013d\u0000"+ + "\u0000\u069d\u069e\u0005\n\u0000\u0000\u069e\u069f\u0005\u0002\u0000\u0000"+ + "\u069f\u06a4\u0005\u0003\u0000\u0000\u06a0\u06a1\u0005\u000b\u0000\u0000"+ + "\u06a1\u06a3\u0003B!\u0000\u06a2\u06a0\u0001\u0000\u0000\u0000\u06a3\u06a6"+ + "\u0001\u0000\u0000\u0000\u06a4\u06a2\u0001\u0000\u0000\u0000\u06a4\u06a5"+ + "\u0001\u0000\u0000\u0000\u06a5\u0081\u0001\u0000\u0000\u0000\u06a6\u06a4"+ + "\u0001\u0000\u0000\u0000\u06a7\u06a8\u0005\u00c6\u0000\u0000\u06a8\u06a9"+ + "\u0005\b\u0000\u0000\u06a9\u06aa\u0005\u013d\u0000\u0000\u06aa\u06ab\u0005"+ + "\u00c7\u0000\u0000\u06ab\u06ac\u0005\u013d\u0000\u0000\u06ac\u06ad\u0005"+ + "\u00c0\u0000\u0000\u06ad\u06ae\u0005\u013d\u0000\u0000\u06ae\u06af\u0005"+ + "\u00c1\u0000\u0000\u06af\u06b0\u0005\u013d\u0000\u0000\u06b0\u06b1\u0005"+ + "\u00c8\u0000\u0000\u06b1\u06b2\u0005\u013d\u0000\u0000\u06b2\u06b3\u0005"+ + "\u00c3\u0000\u0000\u06b3\u06b4\u0005\u013d\u0000\u0000\u06b4\u06b5\u0005"+ + "\u00c4\u0000\u0000\u06b5\u06b6\u0005\u013d\u0000\u0000\u06b6\u06b7\u0005"+ + "\u00c9\u0000\u0000\u06b7\u06b8\u0005\u013d\u0000\u0000\u06b8\u06b9\u0005"+ + "\n\u0000\u0000\u06b9\u06ba\u0005\u0002\u0000\u0000\u06ba\u06bf\u0005\u0003"+ + "\u0000\u0000\u06bb\u06bc\u0005\u000b\u0000\u0000\u06bc\u06be\u0003B!\u0000"+ + "\u06bd\u06bb\u0001\u0000\u0000\u0000\u06be\u06c1\u0001\u0000\u0000\u0000"+ + "\u06bf\u06bd\u0001\u0000\u0000\u0000\u06bf\u06c0\u0001\u0000\u0000\u0000"+ + "\u06c0\u0083\u0001\u0000\u0000\u0000\u06c1\u06bf\u0001\u0000\u0000\u0000"+ + "\u06c2\u06c3\u0005\u00ca\u0000\u0000\u06c3\u06c4\u0005\b\u0000\u0000\u06c4"+ + "\u06c5\u0005\u013d\u0000\u0000\u06c5\u06c6\u0005\u00cb\u0000\u0000\u06c6"+ + "\u06c7\u0005\u013d\u0000\u0000\u06c7\u06c8\u0005\u00c0\u0000\u0000\u06c8"+ + "\u06c9\u0005\u013d\u0000\u0000\u06c9\u06ca\u0005\u00c1\u0000\u0000\u06ca"+ + "\u06cb\u0005\u013d\u0000\u0000\u06cb\u06cc\u0005\u00c3\u0000\u0000\u06cc"+ + "\u06cd\u0005\u013d\u0000\u0000\u06cd\u06ce\u0005\u00c4\u0000\u0000\u06ce"+ + "\u06cf\u0005\u013d\u0000\u0000\u06cf\u06d0\u0005\u00cc\u0000\u0000\u06d0"+ + "\u06d1\u0005\u013d\u0000\u0000\u06d1\u06d2\u0005\u00cd\u0000\u0000\u06d2"+ + "\u06d3\u0005\u013d\u0000\u0000\u06d3\u06d4\u0005\u00c9\u0000\u0000\u06d4"+ + "\u06d5\u0005\u013d\u0000\u0000\u06d5\u06d6\u0005\n\u0000\u0000\u06d6\u06d7"+ + "\u0005\u0002\u0000\u0000\u06d7\u06dc\u0005\u0003\u0000\u0000\u06d8\u06d9"+ + "\u0005\u000b\u0000\u0000\u06d9\u06db\u0003B!\u0000\u06da\u06d8\u0001\u0000"+ + "\u0000\u0000\u06db\u06de\u0001\u0000\u0000\u0000\u06dc\u06da\u0001\u0000"+ + "\u0000\u0000\u06dc\u06dd\u0001\u0000\u0000\u0000\u06dd\u0085\u0001\u0000"+ + "\u0000\u0000\u06de\u06dc\u0001\u0000\u0000\u0000\u06df\u06e0\u0005\u00ce"+ + "\u0000\u0000\u06e0\u06e1\u0005\b\u0000\u0000\u06e1\u06e2\u0005\u013d\u0000"+ + "\u0000\u06e2\u06e3\u0005\u00a5\u0000\u0000\u06e3\u06e4\u0005\u013d\u0000"+ + "\u0000\u06e4\u06e5\u0005\n\u0000\u0000\u06e5\u06e6\u0005\u0002\u0000\u0000"+ + "\u06e6\u06e7\u0005\u013d\u0000\u0000\u06e7\u06ec\u0005\u0003\u0000\u0000"+ + "\u06e8\u06e9\u0005\u000b\u0000\u0000\u06e9\u06eb\u0003B!\u0000\u06ea\u06e8"+ + "\u0001\u0000\u0000\u0000\u06eb\u06ee\u0001\u0000\u0000\u0000\u06ec\u06ea"+ + "\u0001\u0000\u0000\u0000\u06ec\u06ed\u0001\u0000\u0000\u0000\u06ed\u0087"+ + "\u0001\u0000\u0000\u0000\u06ee\u06ec\u0001\u0000\u0000\u0000\u06ef\u06f0"+ + "\u0005\u00cf\u0000\u0000\u06f0\u06f1\u0005\b\u0000\u0000\u06f1\u06f2\u0005"+ + "\u013d\u0000\u0000\u06f2\u06f3\u0005\u00d0\u0000\u0000\u06f3\u06f4\u0005"+ + "\u013d\u0000\u0000\u06f4\u06f5\u0005\u00d1\u0000\u0000\u06f5\u06f6\u0005"+ + "\u013d\u0000\u0000\u06f6\u06f7\u0005\u00d2\u0000\u0000\u06f7\u06f8\u0005"+ + "\u013d\u0000\u0000\u06f8\u06f9\u0005\u00a5\u0000\u0000\u06f9\u06fa\u0005"+ + "\u013d\u0000\u0000\u06fa\u06fb\u0005\n\u0000\u0000\u06fb\u06fc\u0005\u0002"+ + "\u0000\u0000\u06fc\u0701\u0005\u0003\u0000\u0000\u06fd\u06fe\u0005\u000b"+ + "\u0000\u0000\u06fe\u0700\u0003B!\u0000\u06ff\u06fd\u0001\u0000\u0000\u0000"+ + "\u0700\u0703\u0001\u0000\u0000\u0000\u0701\u06ff\u0001\u0000\u0000\u0000"+ + "\u0701\u0702\u0001\u0000\u0000\u0000\u0702\u0089\u0001\u0000\u0000\u0000"+ + "\u0703\u0701\u0001\u0000\u0000\u0000\u0704\u0705\u0005\u00d3\u0000\u0000"+ + "\u0705\u0706\u0005\b\u0000\u0000\u0706\u0707\u0005\u013d\u0000\u0000\u0707"+ + "\u0708\u0005\u00d4\u0000\u0000\u0708\u0709\u0005\u013d\u0000\u0000\u0709"+ + "\u070a\u0005\u00d5\u0000\u0000\u070a\u070b\u0005\u013d\u0000\u0000\u070b"+ + "\u070c\u0005\u00d6\u0000\u0000\u070c\u070d\u0005\u013d\u0000\u0000\u070d"+ + "\u070e\u0005\n\u0000\u0000\u070e\u070f\u0005\u0002\u0000\u0000\u070f\u0714"+ + "\u0005\u0003\u0000\u0000\u0710\u0711\u0005\u000b\u0000\u0000\u0711\u0713"+ + "\u0003B!\u0000\u0712\u0710\u0001\u0000\u0000\u0000\u0713\u0716\u0001\u0000"+ + "\u0000\u0000\u0714\u0712\u0001\u0000\u0000\u0000\u0714\u0715\u0001\u0000"+ + "\u0000\u0000\u0715\u008b\u0001\u0000\u0000\u0000\u0716\u0714\u0001\u0000"+ + "\u0000\u0000\u0717\u0718\u0005\u00d7\u0000\u0000\u0718\u0719\u0005\b\u0000"+ + "\u0000\u0719\u071a\u0005\u013d\u0000\u0000\u071a\u071b\u0005\u00d8\u0000"+ + "\u0000\u071b\u071c\u0005\u013d\u0000\u0000\u071c\u071d\u0005\u00d5\u0000"+ + "\u0000\u071d\u071e\u0005\u013d\u0000\u0000\u071e\u071f\u0005\u00d9\u0000"+ + "\u0000\u071f\u0720\u0005\u013d\u0000\u0000\u0720\u0721\u0005\n\u0000\u0000"+ + "\u0721\u0722\u0005\u0002\u0000\u0000\u0722\u0727\u0005\u0003\u0000\u0000"+ + "\u0723\u0724\u0005\u000b\u0000\u0000\u0724\u0726\u0003B!\u0000\u0725\u0723"+ + "\u0001\u0000\u0000\u0000\u0726\u0729\u0001\u0000\u0000\u0000\u0727\u0725"+ + "\u0001\u0000\u0000\u0000\u0727\u0728\u0001\u0000\u0000\u0000\u0728\u008d"+ + "\u0001\u0000\u0000\u0000\u0729\u0727\u0001\u0000\u0000\u0000\u072a\u072b"+ + "\u0005\u00da\u0000\u0000\u072b\u072c\u0005\b\u0000\u0000\u072c\u072d\u0005"+ + "\u013d\u0000\u0000\u072d\u072e\u0005\u00c9\u0000\u0000\u072e\u072f\u0005"+ + "\u013d\u0000\u0000\u072f\u0730\u0005\u00d5\u0000\u0000\u0730\u0731\u0005"+ + "\u013d\u0000\u0000\u0731\u0732\u0005\u00db\u0000\u0000\u0732\u0733\u0005"+ + "\u013d\u0000\u0000\u0733\u0734\u0005\u00dc\u0000\u0000\u0734\u0735\u0005"+ + "\u013d\u0000\u0000\u0735\u0736\u0005\n\u0000\u0000\u0736\u0737\u0005\u0002"+ + "\u0000\u0000\u0737\u073c\u0005\u0003\u0000\u0000\u0738\u0739\u0005\u000b"+ + "\u0000\u0000\u0739\u073b\u0003B!\u0000\u073a\u0738\u0001\u0000\u0000\u0000"+ + "\u073b\u073e\u0001\u0000\u0000\u0000\u073c\u073a\u0001\u0000\u0000\u0000"+ + "\u073c\u073d\u0001\u0000\u0000\u0000\u073d\u008f\u0001\u0000\u0000\u0000"+ + "\u073e\u073c\u0001\u0000\u0000\u0000\u073f\u0740\u0005\u00dd\u0000\u0000"+ + "\u0740\u0741\u0005\b\u0000\u0000\u0741\u0742\u0005\u013d\u0000\u0000\u0742"+ + "\u0743\u0005\u00c9\u0000\u0000\u0743\u0744\u0005\u013d\u0000\u0000\u0744"+ + "\u0745\u0005\u00d5\u0000\u0000\u0745\u0746\u0005\u013d\u0000\u0000\u0746"+ + "\u0747\u0005\u00de\u0000\u0000\u0747\u0748\u0005\u013d\u0000\u0000\u0748"+ + "\u0749\u0005\n\u0000\u0000\u0749\u074a\u0005\u0002\u0000\u0000\u074a\u074f"+ + "\u0005\u0003\u0000\u0000\u074b\u074c\u0005\u000b\u0000\u0000\u074c\u074e"+ + "\u0003B!\u0000\u074d\u074b\u0001\u0000\u0000\u0000\u074e\u0751\u0001\u0000"+ + "\u0000\u0000\u074f\u074d\u0001\u0000\u0000\u0000\u074f\u0750\u0001\u0000"+ + "\u0000\u0000\u0750\u0091\u0001\u0000\u0000\u0000\u0751\u074f\u0001\u0000"+ + "\u0000\u0000\u0752\u0753\u0005\u00df\u0000\u0000\u0753\u0754\u0005\b\u0000"+ + "\u0000\u0754\u0755\u0005\u013d\u0000\u0000\u0755\u0756\u0005\u00c9\u0000"+ + "\u0000\u0756\u0757\u0005\u013d\u0000\u0000\u0757\u0758\u0005\u00d5\u0000"+ + "\u0000\u0758\u0759\u0005\u013d\u0000\u0000\u0759\u075a\u0005\u00de\u0000"+ + "\u0000\u075a\u075b\u0005\u013d\u0000\u0000\u075b\u075c\u0005\n\u0000\u0000"+ + "\u075c\u075d\u0005\u0002\u0000\u0000\u075d\u0762\u0005\u0003\u0000\u0000"+ + "\u075e\u075f\u0005\u000b\u0000\u0000\u075f\u0761\u0003B!\u0000\u0760\u075e"+ + "\u0001\u0000\u0000\u0000\u0761\u0764\u0001\u0000\u0000\u0000\u0762\u0760"+ + "\u0001\u0000\u0000\u0000\u0762\u0763\u0001\u0000\u0000\u0000\u0763\u0093"+ + "\u0001\u0000\u0000\u0000\u0764\u0762\u0001\u0000\u0000\u0000\u0765\u0766"+ + "\u0005\u00e0\u0000\u0000\u0766\u0767\u0005\b\u0000\u0000\u0767\u0768\u0005"+ + "\u013d\u0000\u0000\u0768\u0769\u0005\u00c9\u0000\u0000\u0769\u076a\u0005"+ + "\u013d\u0000\u0000\u076a\u076b\u0005\u00d5\u0000\u0000\u076b\u076c\u0005"+ + "\u013d\u0000\u0000\u076c\u076d\u0005\u00de\u0000\u0000\u076d\u076e\u0005"+ + "\u013d\u0000\u0000\u076e\u076f\u0005\n\u0000\u0000\u076f\u0770\u0005\u0002"+ + "\u0000\u0000\u0770\u0775\u0005\u0003\u0000\u0000\u0771\u0772\u0005\u000b"+ + "\u0000\u0000\u0772\u0774\u0003B!\u0000\u0773\u0771\u0001\u0000\u0000\u0000"+ + "\u0774\u0777\u0001\u0000\u0000\u0000\u0775\u0773\u0001\u0000\u0000\u0000"+ + "\u0775\u0776\u0001\u0000\u0000\u0000\u0776\u0095\u0001\u0000\u0000\u0000"+ + "\u0777\u0775\u0001\u0000\u0000\u0000\u0778\u0779\u0005\u00e1\u0000\u0000"+ + "\u0779\u077a\u0005\b\u0000\u0000\u077a\u077b\u0005\u013d\u0000\u0000\u077b"+ + "\u077c\u0005\u00e2\u0000\u0000\u077c\u077d\u0005\u013d\u0000\u0000\u077d"+ + "\u077e\u0005\u00d5\u0000\u0000\u077e\u077f\u0005\u013d\u0000\u0000\u077f"+ + "\u0780\u0005\n\u0000\u0000\u0780\u0781\u0005\u0002\u0000\u0000\u0781\u0786"+ + "\u0005\u0003\u0000\u0000\u0782\u0783\u0005\u000b\u0000\u0000\u0783\u0785"+ + "\u0003B!\u0000\u0784\u0782\u0001\u0000\u0000\u0000\u0785\u0788\u0001\u0000"+ + "\u0000\u0000\u0786\u0784\u0001\u0000\u0000\u0000\u0786\u0787\u0001\u0000"+ + "\u0000\u0000\u0787\u0097\u0001\u0000\u0000\u0000\u0788\u0786\u0001\u0000"+ + "\u0000\u0000\u0789\u078a\u0005\u00e3\u0000\u0000\u078a\u078b\u0005\b\u0000"+ + "\u0000\u078b\u078c\u0005\u013d\u0000\u0000\u078c\u078d\u0005\u00e4\u0000"+ + "\u0000\u078d\u078e\u0005\u013d\u0000\u0000\u078e\u078f\u0005\u00e5\u0000"+ + "\u0000\u078f\u0790\u0005\u013d\u0000\u0000\u0790\u0791\u0005\u00e6\u0000"+ + "\u0000\u0791\u0792\u0005\u013d\u0000\u0000\u0792\u0793\u0005\u00e7\u0000"+ + "\u0000\u0793\u0794\u0005\u013d\u0000\u0000\u0794\u0795\u0005\u00e8\u0000"+ + "\u0000\u0795\u0796\u0005\u013d\u0000\u0000\u0796\u0797\u0005\u00e9\u0000"+ + "\u0000\u0797\u0798\u0005\u013d\u0000\u0000\u0798\u0799\u0005\u00ea\u0000"+ + "\u0000\u0799\u079a\u0005\u013d\u0000\u0000\u079a\u079b\u0005\u00eb\u0000"+ + "\u0000\u079b\u079c\u0005\u013d\u0000\u0000\u079c\u079d\u0005i\u0000\u0000"+ + "\u079d\u079e\u0005\u013d\u0000\u0000\u079e\u079f\u0005\u00ec\u0000\u0000"+ + "\u079f\u07a0\u0005\u013d\u0000\u0000\u07a0\u07a1\u0005\u00ed\u0000\u0000"+ + "\u07a1\u07a2\u0005\u013d\u0000\u0000\u07a2\u07a3\u0005\u00ee\u0000\u0000"+ + "\u07a3\u07a4\u0005\u013d\u0000\u0000\u07a4\u07a5\u0005\u00ef\u0000\u0000"+ + "\u07a5\u07a6\u0005\u013d\u0000\u0000\u07a6\u07a7\u0005\u00f0\u0000\u0000"+ + "\u07a7\u07a8\u0005\u013d\u0000\u0000\u07a8\u07a9\u0005\u00f1\u0000\u0000"+ + "\u07a9\u07aa\u0005\u013d\u0000\u0000\u07aa\u07ab\u0005\n\u0000\u0000\u07ab"+ + "\u07ac\u0005\u0002\u0000\u0000\u07ac\u07b1\u0005\u0003\u0000\u0000\u07ad"+ + "\u07ae\u0005\u000b\u0000\u0000\u07ae\u07b0\u0003B!\u0000\u07af\u07ad\u0001"+ + "\u0000\u0000\u0000\u07b0\u07b3\u0001\u0000\u0000\u0000\u07b1\u07af\u0001"+ + "\u0000\u0000\u0000\u07b1\u07b2\u0001\u0000\u0000\u0000\u07b2\u0099\u0001"+ + "\u0000\u0000\u0000\u07b3\u07b1\u0001\u0000\u0000\u0000\u07b4\u07b5\u0005"+ + "\u00f2\u0000\u0000\u07b5\u07b6\u0005\b\u0000\u0000\u07b6\u07b7\u0005\u013d"+ + "\u0000\u0000\u07b7\u07b8\u0005\u0096\u0000\u0000\u07b8\u07b9\u0005\u013d"+ + "\u0000\u0000\u07b9\u07ba\u0005\u00a5\u0000\u0000\u07ba\u07bb\u0005\u013d"+ + "\u0000\u0000\u07bb\u07bc\u0005\u00a2\u0000\u0000\u07bc\u07bd\u0005\u013d"+ + "\u0000\u0000\u07bd\u07be\u0005\n\u0000\u0000\u07be\u07bf\u0005\u0002\u0000"+ + "\u0000\u07bf\u07c0\u0005\u013d\u0000\u0000\u07c0\u07c5\u0005\u0003\u0000"+ + "\u0000\u07c1\u07c2\u0005\u000b\u0000\u0000\u07c2\u07c4\u0003B!\u0000\u07c3"+ + "\u07c1\u0001\u0000\u0000\u0000\u07c4\u07c7\u0001\u0000\u0000\u0000\u07c5"+ + "\u07c3\u0001\u0000\u0000\u0000\u07c5\u07c6\u0001\u0000\u0000\u0000\u07c6"+ + "\u07cc\u0001\u0000\u0000\u0000\u07c7\u07c5\u0001\u0000\u0000\u0000\u07c8"+ + "\u07c9\u0005\u001d\u0000\u0000\u07c9\u07cb\u0005\u013d\u0000\u0000\u07ca"+ + "\u07c8\u0001\u0000\u0000\u0000\u07cb\u07ce\u0001\u0000\u0000\u0000\u07cc"+ + "\u07ca\u0001\u0000\u0000\u0000\u07cc\u07cd\u0001\u0000\u0000\u0000\u07cd"+ + "\u009b\u0001\u0000\u0000\u0000\u07ce\u07cc\u0001\u0000\u0000\u0000\u07cf"+ + "\u07d0\u0005\u00f3\u0000\u0000\u07d0\u07d1\u0005\b\u0000\u0000\u07d1\u07d2"+ + "\u0005\u013d\u0000\u0000\u07d2\u07d3\u0005\u00a5\u0000\u0000\u07d3\u07d4"+ + "\u0005\u013d\u0000\u0000\u07d4\u07d5\u0005j\u0000\u0000\u07d5\u07d6\u0005"+ + "\u013d\u0000\u0000\u07d6\u07d7\u0005\u00f4\u0000\u0000\u07d7\u07d8\u0005"+ + "\u0002\u0000\u0000\u07d8\u07d9\u0005\u013d\u0000\u0000\u07d9\u07de\u0005"+ + "\u0003\u0000\u0000\u07da\u07db\u0005\u000b\u0000\u0000\u07db\u07dd\u0003"+ + "B!\u0000\u07dc\u07da\u0001\u0000\u0000\u0000\u07dd\u07e0\u0001\u0000\u0000"+ + "\u0000\u07de\u07dc\u0001\u0000\u0000\u0000\u07de\u07df\u0001\u0000\u0000"+ + "\u0000\u07df\u009d\u0001\u0000\u0000\u0000\u07e0\u07de\u0001\u0000\u0000"+ + "\u0000\u07e1\u07e2\u0005\u00f5\u0000\u0000\u07e2\u07e3\u0005\b\u0000\u0000"+ + "\u07e3\u07e4\u0005\u013d\u0000\u0000\u07e4\u07e5\u0005\u00a5\u0000\u0000"+ + "\u07e5\u07e6\u0005\u013d\u0000\u0000\u07e6\u07e7\u0005\u00f6\u0000\u0000"+ + "\u07e7\u07e8\u0005\u013d\u0000\u0000\u07e8\u07e9\u0005\u00f7\u0000\u0000"+ + "\u07e9\u07ea\u0005\u013d\u0000\u0000\u07ea\u07eb\u0005\u00f8\u0000\u0000"+ + "\u07eb\u07ec\u0005\u013d\u0000\u0000\u07ec\u07ed\u0005\u00f9\u0000\u0000"+ + "\u07ed\u07ee\u0005\u013d\u0000\u0000\u07ee\u07ef\u0005\u00fa\u0000\u0000"+ + "\u07ef\u07f0\u0005\u0002\u0000\u0000\u07f0\u07f1\u0005\u013d\u0000\u0000"+ + "\u07f1\u07f6\u0005\u0003\u0000\u0000\u07f2\u07f3\u0005\u000b\u0000\u0000"+ + "\u07f3\u07f5\u0003B!\u0000\u07f4\u07f2\u0001\u0000\u0000\u0000\u07f5\u07f8"+ + "\u0001\u0000\u0000\u0000\u07f6\u07f4\u0001\u0000\u0000\u0000\u07f6\u07f7"+ + "\u0001\u0000\u0000\u0000\u07f7\u009f\u0001\u0000\u0000\u0000\u07f8\u07f6"+ + "\u0001\u0000\u0000\u0000\u07f9\u07fa\u0005\u00fb\u0000\u0000\u07fa\u07fb"+ + "\u0005\b\u0000\u0000\u07fb\u07fc\u0005\u013d\u0000\u0000\u07fc\u07fd\u0005"+ + "\u00a5\u0000\u0000\u07fd\u07fe\u0005\u013d\u0000\u0000\u07fe\u07ff\u0005"+ + "\u00f6\u0000\u0000\u07ff\u0800\u0005\u013d\u0000\u0000\u0800\u0801\u0005"+ + "\u00f7\u0000\u0000\u0801\u0802\u0005\u013d\u0000\u0000\u0802\u0803\u0005"+ + "\u00f8\u0000\u0000\u0803\u0804\u0005\u013d\u0000\u0000\u0804\u0805\u0005"+ + "\u00f9\u0000\u0000\u0805\u0806\u0005\u013d\u0000\u0000\u0806\u0807\u0005"+ + "\u00fa\u0000\u0000\u0807\u0808\u0005\u0002\u0000\u0000\u0808\u0809\u0005"+ + "\u013d\u0000\u0000\u0809\u080e\u0005\u0003\u0000\u0000\u080a\u080b\u0005"+ + "\u000b\u0000\u0000\u080b\u080d\u0003B!\u0000\u080c\u080a\u0001\u0000\u0000"+ + "\u0000\u080d\u0810\u0001\u0000\u0000\u0000\u080e\u080c\u0001\u0000\u0000"+ + "\u0000\u080e\u080f\u0001\u0000\u0000\u0000\u080f\u00a1\u0001\u0000\u0000"+ + "\u0000\u0810\u080e\u0001\u0000\u0000\u0000\u0811\u0812\u0005\u00fc\u0000"+ + "\u0000\u0812\u0813\u0005\b\u0000\u0000\u0813\u0814\u0005\u013d\u0000\u0000"+ + "\u0814\u0815\u0005\u00a5\u0000\u0000\u0815\u0816\u0005\u013d\u0000\u0000"+ + "\u0816\u0817\u0005\u00fd\u0000\u0000\u0817\u0818\u0005\u013d\u0000\u0000"+ + "\u0818\u0819\u0005\u00fe\u0000\u0000\u0819\u081a\u0005\u013d\u0000\u0000"+ + "\u081a\u081b\u0005\n\u0000\u0000\u081b\u081c\u0005\u0002\u0000\u0000\u081c"+ + "\u081d\u0005\u013d\u0000\u0000\u081d\u0822\u0005\u0003\u0000\u0000\u081e"+ + "\u081f\u0005\u000b\u0000\u0000\u081f\u0821\u0003B!\u0000\u0820\u081e\u0001"+ + "\u0000\u0000\u0000\u0821\u0824\u0001\u0000\u0000\u0000\u0822\u0820\u0001"+ + "\u0000\u0000\u0000\u0822\u0823\u0001\u0000\u0000\u0000\u0823\u00a3\u0001"+ + "\u0000\u0000\u0000\u0824\u0822\u0001\u0000\u0000\u0000\u0825\u0826\u0005"+ + "\u00ff\u0000\u0000\u0826\u0827\u0005\b\u0000\u0000\u0827\u0828\u0005\u013d"+ + "\u0000\u0000\u0828\u0829\u0005k\u0000\u0000\u0829\u082a\u0005\u013d\u0000"+ + "\u0000\u082a\u082b\u0005\u00fe\u0000\u0000\u082b\u082c\u0005\u013d\u0000"+ + "\u0000\u082c\u082d\u0005j\u0000\u0000\u082d\u082e\u0005\u013d\u0000\u0000"+ + "\u082e\u082f\u0005\n\u0000\u0000\u082f\u0830\u0005\u0002\u0000\u0000\u0830"+ + "\u0831\u0005\u013d\u0000\u0000\u0831\u0836\u0005\u0003\u0000\u0000\u0832"+ + "\u0833\u0005\u000b\u0000\u0000\u0833\u0835\u0003B!\u0000\u0834\u0832\u0001"+ + "\u0000\u0000\u0000\u0835\u0838\u0001\u0000\u0000\u0000\u0836\u0834\u0001"+ + "\u0000\u0000\u0000\u0836\u0837\u0001\u0000\u0000\u0000\u0837\u00a5\u0001"+ + "\u0000\u0000\u0000\u0838\u0836\u0001\u0000\u0000\u0000\u0839\u083a\u0005"+ + "\u0100\u0000\u0000\u083a\u083b\u0005\b\u0000\u0000\u083b\u083c\u0005\u013d"+ + "\u0000\u0000\u083c\u083d\u0005\u00a5\u0000\u0000\u083d\u083e\u0005\u013d"+ + "\u0000\u0000\u083e\u083f\u0005\u0101\u0000\u0000\u083f\u0840\u0005\u013d"+ + "\u0000\u0000\u0840\u0841\u0005\u00b1\u0000\u0000\u0841\u0842\u0005\u013d"+ + "\u0000\u0000\u0842\u0843\u0005\u0102\u0000\u0000\u0843\u0844\u0005\u013d"+ + "\u0000\u0000\u0844\u0845\u0005\u0103\u0000\u0000\u0845\u0846\u0005\u013d"+ + "\u0000\u0000\u0846\u0847\u0005\u0104\u0000\u0000\u0847\u0848\u0005\u013d"+ + "\u0000\u0000\u0848\u0849\u0005\u0105\u0000\u0000\u0849\u084a\u0005\u013d"+ + "\u0000\u0000\u084a\u084b\u0005\u00e4\u0000\u0000\u084b\u084c\u0005\u0002"+ + "\u0000\u0000\u084c\u084d\u0005\u013d\u0000\u0000\u084d\u084e\u0005\u0003"+ + "\u0000\u0000\u084e\u084f\u0005\u0106\u0000\u0000\u084f\u0850\u0005\u0002"+ + "\u0000\u0000\u0850\u0851\u0005\u013d\u0000\u0000\u0851\u0852\u0005\u0003"+ + "\u0000\u0000\u0852\u0853\u0005\u0107\u0000\u0000\u0853\u0854\u0005\u0002"+ + "\u0000\u0000\u0854\u0855\u0005\u013d\u0000\u0000\u0855\u0856\u0005\u0003"+ + "\u0000\u0000\u0856\u0857\u0005\u0108\u0000\u0000\u0857\u0858\u0005\u0002"+ + "\u0000\u0000\u0858\u0859\u0005\u013d\u0000\u0000\u0859\u085e\u0005\u0003"+ + "\u0000\u0000\u085a\u085b\u0005\u000b\u0000\u0000\u085b\u085d\u0003B!\u0000"+ + "\u085c\u085a\u0001\u0000\u0000\u0000\u085d\u0860\u0001\u0000\u0000\u0000"+ + "\u085e\u085c\u0001\u0000\u0000\u0000\u085e\u085f\u0001\u0000\u0000\u0000"+ + "\u085f\u00a7\u0001\u0000\u0000\u0000\u0860\u085e\u0001\u0000\u0000\u0000"+ + "\u0861\u0862\u0005\u0109\u0000\u0000\u0862\u0863\u0005\b\u0000\u0000\u0863"+ + "\u0864\u0005\u013d\u0000\u0000\u0864\u0865\u0005\u00a5\u0000\u0000\u0865"+ + "\u0866\u0005\u013d\u0000\u0000\u0866\u0867\u0005\n\u0000\u0000\u0867\u0868"+ + "\u0005\u0002\u0000\u0000\u0868\u086d\u0005\u0003\u0000\u0000\u0869\u086a"+ + "\u0005\u000b\u0000\u0000\u086a\u086c\u0003B!\u0000\u086b\u0869\u0001\u0000"+ + "\u0000\u0000\u086c\u086f\u0001\u0000\u0000\u0000\u086d\u086b\u0001\u0000"+ + "\u0000\u0000\u086d\u086e\u0001\u0000\u0000\u0000\u086e\u00a9\u0001\u0000"+ + "\u0000\u0000\u086f\u086d\u0001\u0000\u0000\u0000\u0870\u0871\u0005\u010a"+ + "\u0000\u0000\u0871\u0872\u0005\b\u0000\u0000\u0872\u0873\u0005\u013d\u0000"+ + "\u0000\u0873\u0874\u0005\u00a5\u0000\u0000\u0874\u0875\u0005\u013d\u0000"+ + "\u0000\u0875\u0876\u0005\n\u0000\u0000\u0876\u0877\u0005\u0002\u0000\u0000"+ + "\u0877\u087c\u0005\u0003\u0000\u0000\u0878\u0879\u0005\u000b\u0000\u0000"+ + "\u0879\u087b\u0003B!\u0000\u087a\u0878\u0001\u0000\u0000\u0000\u087b\u087e"+ + "\u0001\u0000\u0000\u0000\u087c\u087a\u0001\u0000\u0000\u0000\u087c\u087d"+ + "\u0001\u0000\u0000\u0000\u087d\u00ab\u0001\u0000\u0000\u0000\u087e\u087c"+ + "\u0001\u0000\u0000\u0000\u087f\u0880\u0005\u010b\u0000\u0000\u0880\u0881"+ + "\u0005\b\u0000\u0000\u0881\u0882\u0005\u013d\u0000\u0000\u0882\u0883\u0005"+ + "\u00a5\u0000\u0000\u0883\u0884\u0005\u013d\u0000\u0000\u0884\u0885\u0005"+ + "\u010c\u0000\u0000\u0885\u0886\u0005\u013d\u0000\u0000\u0886\u0887\u0005"+ + "\u010d\u0000\u0000\u0887\u0888\u0005\u013d\u0000\u0000\u0888\u0889\u0005"+ + "\u0101\u0000\u0000\u0889\u088a\u0005\u013d\u0000\u0000\u088a\u088b\u0005"+ + "\u00b1\u0000\u0000\u088b\u088c\u0005\u013d\u0000\u0000\u088c\u088d\u0005"+ + "p\u0000\u0000\u088d\u088e\u0005\u013d\u0000\u0000\u088e\u088f\u0005\n"+ + "\u0000\u0000\u088f\u0890\u0005\u0002\u0000\u0000\u0890\u0895\u0005\u0003"+ + "\u0000\u0000\u0891\u0892\u0005\u000b\u0000\u0000\u0892\u0894\u0003B!\u0000"+ + "\u0893\u0891\u0001\u0000\u0000\u0000\u0894\u0897\u0001\u0000\u0000\u0000"+ + "\u0895\u0893\u0001\u0000\u0000\u0000\u0895\u0896\u0001\u0000\u0000\u0000"+ + "\u0896\u00ad\u0001\u0000\u0000\u0000\u0897\u0895\u0001\u0000\u0000\u0000"+ + "\u0898\u0899\u0005\u010e\u0000\u0000\u0899\u089a\u0005\b\u0000\u0000\u089a"+ + "\u089b\u0005\u013d\u0000\u0000\u089b\u089c\u0005\u00a5\u0000\u0000\u089c"+ + "\u089d\u0005\u013d\u0000\u0000\u089d\u089e\u0005\u010c\u0000\u0000\u089e"+ + "\u089f\u0005\u013d\u0000\u0000\u089f\u08a0\u0005\u0101\u0000\u0000\u08a0"+ + "\u08a1\u0005\u013d\u0000\u0000\u08a1\u08a2\u0005\u010f\u0000\u0000\u08a2"+ + "\u08a3\u0005\u013d\u0000\u0000\u08a3\u08a4\u0005\n\u0000\u0000\u08a4\u08a5"+ + "\u0005\u0002\u0000\u0000\u08a5\u08aa\u0005\u0003\u0000\u0000\u08a6\u08a7"+ + "\u0005\u000b\u0000\u0000\u08a7\u08a9\u0003B!\u0000\u08a8\u08a6\u0001\u0000"+ + "\u0000\u0000\u08a9\u08ac\u0001\u0000\u0000\u0000\u08aa\u08a8\u0001\u0000"+ + "\u0000\u0000\u08aa\u08ab\u0001\u0000\u0000\u0000\u08ab\u00af\u0001\u0000"+ + "\u0000\u0000\u08ac\u08aa\u0001\u0000\u0000\u0000\u08ad\u08ae\u0005\u0110"+ + "\u0000\u0000\u08ae\u08af\u0005\b\u0000\u0000\u08af\u08b0\u0005\u013d\u0000"+ + "\u0000\u08b0\u08b1\u0005\u00a5\u0000\u0000\u08b1\u08b2\u0005\u013d\u0000"+ + "\u0000\u08b2\u08b3\u0005\u0111\u0000\u0000\u08b3\u08b4\u0005\u013d\u0000"+ + "\u0000\u08b4\u08b5\u0005\u0112\u0000\u0000\u08b5\u08b6\u0005\u013d\u0000"+ + "\u0000\u08b6\u08b7\u0005\n\u0000\u0000\u08b7\u08b8\u0005\u0002\u0000\u0000"+ + "\u08b8\u08b9\u0005\u013d\u0000\u0000\u08b9\u08be\u0005\u0003\u0000\u0000"+ + "\u08ba\u08bb\u0005\u000b\u0000\u0000\u08bb\u08bd\u0003B!\u0000\u08bc\u08ba"+ + "\u0001\u0000\u0000\u0000\u08bd\u08c0\u0001\u0000\u0000\u0000\u08be\u08bc"+ + "\u0001\u0000\u0000\u0000\u08be\u08bf\u0001\u0000\u0000\u0000\u08bf\u00b1"+ + "\u0001\u0000\u0000\u0000\u08c0\u08be\u0001\u0000\u0000\u0000\u08c1\u08c2"+ + "\u0005\u0113\u0000\u0000\u08c2\u08c3\u0005\b\u0000\u0000\u08c3\u08c4\u0005"+ + "\u013d\u0000\u0000\u08c4\u08c5\u0005\u00a5\u0000\u0000\u08c5\u08c6\u0005"+ + "\u013d\u0000\u0000\u08c6\u08c7\u0005\u0114\u0000\u0000\u08c7\u08c8\u0005"+ + "\u013d\u0000\u0000\u08c8\u08c9\u0005\n\u0000\u0000\u08c9\u08ca\u0005\u0002"+ + "\u0000\u0000\u08ca\u08cb\u0005\u013d\u0000\u0000\u08cb\u08d0\u0005\u0003"+ + "\u0000\u0000\u08cc\u08cd\u0005\u000b\u0000\u0000\u08cd\u08cf\u0003B!\u0000"+ + "\u08ce\u08cc\u0001\u0000\u0000\u0000\u08cf\u08d2\u0001\u0000\u0000\u0000"+ + "\u08d0\u08ce\u0001\u0000\u0000\u0000\u08d0\u08d1\u0001\u0000\u0000\u0000"+ + "\u08d1\u00b3\u0001\u0000\u0000\u0000\u08d2\u08d0\u0001\u0000\u0000\u0000"+ + "\u08d3\u08d4\u0005\u0115\u0000\u0000\u08d4\u08d5\u0005\b\u0000\u0000\u08d5"+ + "\u08d6\u0005\u013d\u0000\u0000\u08d6\u08d7\u0005\u00a5\u0000\u0000\u08d7"+ + "\u08d8\u0005\u013d\u0000\u0000\u08d8\u08d9\u0005j\u0000\u0000\u08d9\u08da"+ + "\u0005\u013d\u0000\u0000\u08da\u08db\u0005\u0116\u0000\u0000\u08db\u08dc"+ + "\u0005\u013d\u0000\u0000\u08dc\u08dd\u0005\u0117\u0000\u0000\u08dd\u08de"+ + "\u0005\u013d\u0000\u0000\u08de\u08df\u0005\u0118\u0000\u0000\u08df\u08e0"+ + "\u0005\u013d\u0000\u0000\u08e0\u08e1\u0005\u0119\u0000\u0000\u08e1\u08e2"+ + "\u0005\u013d\u0000\u0000\u08e2\u08e3\u0005\u011a\u0000\u0000\u08e3\u08e4"+ + "\u0005\u013d\u0000\u0000\u08e4\u08e5\u0005\u011b\u0000\u0000\u08e5\u08e6"+ + "\u0005\u013d\u0000\u0000\u08e6\u08e7\u0005i\u0000\u0000\u08e7\u08e8\u0005"+ + "\u013d\u0000\u0000\u08e8\u08e9\u0005\n\u0000\u0000\u08e9\u08ea\u0005\u0002"+ + "\u0000\u0000\u08ea\u08eb\u0005\u013d\u0000\u0000\u08eb\u08f0\u0005\u0003"+ + "\u0000\u0000\u08ec\u08ed\u0005\u000b\u0000\u0000\u08ed\u08ef\u0003B!\u0000"+ + "\u08ee\u08ec\u0001\u0000\u0000\u0000\u08ef\u08f2\u0001\u0000\u0000\u0000"+ + "\u08f0\u08ee\u0001\u0000\u0000\u0000\u08f0\u08f1\u0001\u0000\u0000\u0000"+ + "\u08f1\u00b5\u0001\u0000\u0000\u0000\u08f2\u08f0\u0001\u0000\u0000\u0000"+ + "\u08f3\u08f4\u0005\u011c\u0000\u0000\u08f4\u08f5\u0005\b\u0000\u0000\u08f5"+ + "\u08f6\u0005\u013d\u0000\u0000\u08f6\u08f7\u0005\u00a5\u0000\u0000\u08f7"+ + "\u08f8\u0005\u013d\u0000\u0000\u08f8\u08f9\u0005j\u0000\u0000\u08f9\u08fa"+ + "\u0005\u013d\u0000\u0000\u08fa\u08fb\u0005\u00e5\u0000\u0000\u08fb\u08fc"+ + "\u0005\u013d\u0000\u0000\u08fc\u08fd\u0005\u00e6\u0000\u0000\u08fd\u08fe"+ + "\u0005\u013d\u0000\u0000\u08fe\u08ff\u0005\u00e7\u0000\u0000\u08ff\u0900"+ + "\u0005\u013d\u0000\u0000\u0900\u0901\u0005\u00e8\u0000\u0000\u0901\u0902"+ + "\u0005\u013d\u0000\u0000\u0902\u0903\u0005\u00e9\u0000\u0000\u0903\u0904"+ + "\u0005\u013d\u0000\u0000\u0904\u0905\u0005\u00ea\u0000\u0000\u0905\u0906"+ + "\u0005\u013d\u0000\u0000\u0906\u0907\u0005\u00eb\u0000\u0000\u0907\u0908"+ + "\u0005\u013d\u0000\u0000\u0908\u0909\u0005i\u0000\u0000\u0909\u090a\u0005"+ + "\u013d\u0000\u0000\u090a\u090b\u0005\u00ec\u0000\u0000\u090b\u090c\u0005"+ + "\u013d\u0000\u0000\u090c\u090d\u0005\u00ed\u0000\u0000\u090d\u090e\u0005"+ + "\u013d\u0000\u0000\u090e\u090f\u0005\u00ee\u0000\u0000\u090f\u0910\u0005"+ + "\u013d\u0000\u0000\u0910\u0911\u0005\u00ef\u0000\u0000\u0911\u0912\u0005"+ + "\u013d\u0000\u0000\u0912\u0913\u0005\u00f0\u0000\u0000\u0913\u0914\u0005"+ + "\u013d\u0000\u0000\u0914\u0915\u0005\u00f1\u0000\u0000\u0915\u0916\u0005"+ + "\u013d\u0000\u0000\u0916\u0917\u0005\n\u0000\u0000\u0917\u0918\u0005\u0002"+ + "\u0000\u0000\u0918\u0919\u0005\u013d\u0000\u0000\u0919\u091e\u0005\u0003"+ + "\u0000\u0000\u091a\u091b\u0005\u000b\u0000\u0000\u091b\u091d\u0003B!\u0000"+ + "\u091c\u091a\u0001\u0000\u0000\u0000\u091d\u0920\u0001\u0000\u0000\u0000"+ + "\u091e\u091c\u0001\u0000\u0000\u0000\u091e\u091f\u0001\u0000\u0000\u0000"+ + "\u091f\u00b7\u0001\u0000\u0000\u0000\u0920\u091e\u0001\u0000\u0000\u0000"+ + "\u0921\u0922\u0005\u011d\u0000\u0000\u0922\u0923\u0005\b\u0000\u0000\u0923"+ + "\u0924\u0005\u013d\u0000\u0000\u0924\u0925\u0005\u00a5\u0000\u0000\u0925"+ + "\u0926\u0005\u013d\u0000\u0000\u0926\u0927\u0005j\u0000\u0000\u0927\u0928"+ + "\u0005\u013d\u0000\u0000\u0928\u0929\u0005\u0103\u0000\u0000\u0929\u092a"+ + "\u0005\u013d\u0000\u0000\u092a\u092b\u0005\n\u0000\u0000\u092b\u092c\u0005"+ + "\u0002\u0000\u0000\u092c\u092d\u0005\u013d\u0000\u0000\u092d\u0932\u0005"+ + "\u0003\u0000\u0000\u092e\u092f\u0005\u000b\u0000\u0000\u092f\u0931\u0003"+ + "B!\u0000\u0930\u092e\u0001\u0000\u0000\u0000\u0931\u0934\u0001\u0000\u0000"+ + "\u0000\u0932\u0930\u0001\u0000\u0000\u0000\u0932\u0933\u0001\u0000\u0000"+ + "\u0000\u0933\u00b9\u0001\u0000\u0000\u0000\u0934\u0932\u0001\u0000\u0000"+ + "\u0000\u0935\u0936\u0005\u011e\u0000\u0000\u0936\u0937\u0005\b\u0000\u0000"+ + "\u0937\u0938\u0005\u013d\u0000\u0000\u0938\u0939\u0005\u0111\u0000\u0000"+ + "\u0939\u093a\u0005\u013d\u0000\u0000\u093a\u093b\u0005\u00fe\u0000\u0000"+ + "\u093b\u093c\u0005\u013d\u0000\u0000\u093c\u093d\u0005\u011f\u0000\u0000"+ + "\u093d\u093e\u0005\u013d\u0000\u0000\u093e\u093f\u0005k\u0000\u0000\u093f"+ + "\u0940\u0005\u013d\u0000\u0000\u0940\u0941\u0005\n\u0000\u0000\u0941\u0942"+ + "\u0005\u0002\u0000\u0000\u0942\u0943\u0005\u013d\u0000\u0000\u0943\u0948"+ + "\u0005\u0003\u0000\u0000\u0944\u0945\u0005\u000b\u0000\u0000\u0945\u0947"+ + "\u0003B!\u0000\u0946\u0944\u0001\u0000\u0000\u0000\u0947\u094a\u0001\u0000"+ + "\u0000\u0000\u0948\u0946\u0001\u0000\u0000\u0000\u0948\u0949\u0001\u0000"+ + "\u0000\u0000\u0949\u00bb\u0001\u0000\u0000\u0000\u094a\u0948\u0001\u0000"+ + "\u0000\u0000\u094b\u094c\u0005\u0120\u0000\u0000\u094c\u094d\u0005\b\u0000"+ + "\u0000\u094d\u094e\u0005\u013d\u0000\u0000\u094e\u094f\u0005\u00a5\u0000"+ + "\u0000\u094f\u0950\u0005\u013d\u0000\u0000\u0950\u0951\u0005\u00fe\u0000"+ + "\u0000\u0951\u0952\u0005\u013d\u0000\u0000\u0952\u0953\u0005\u00f4\u0000"+ + "\u0000\u0953\u0954\u0005\u0002\u0000\u0000\u0954\u0955\u0005\u013d\u0000"+ + "\u0000\u0955\u095a\u0005\u0003\u0000\u0000\u0956\u0957\u0005\u000b\u0000"+ + "\u0000\u0957\u0959\u0003B!\u0000\u0958\u0956\u0001\u0000\u0000\u0000\u0959"+ + "\u095c\u0001\u0000\u0000\u0000\u095a\u0958\u0001\u0000\u0000\u0000\u095a"+ + "\u095b\u0001\u0000\u0000\u0000\u095b\u00bd\u0001\u0000\u0000\u0000\u095c"+ + "\u095a\u0001\u0000\u0000\u0000\u095d\u095e\u0005\u013d\u0000\u0000\u095e"+ + "\u00bf\u0001\u0000\u0000\u0000\u095f\u0960\u0005\u0121\u0000\u0000\u0960"+ + "\u0961\u0005\b\u0000\u0000\u0961\u0962\u0005\u013d\u0000\u0000\u0962\u0963"+ + "\u0005\u0122\u0000\u0000\u0963\u0964\u0005\u013d\u0000\u0000\u0964\u0965"+ + "\u0005\u0123\u0000\u0000\u0965\u0966\u0005\u013d\u0000\u0000\u0966\u0967"+ + "\u0005\u0124\u0000\u0000\u0967\u0968\u0005\u013d\u0000\u0000\u0968\u0969"+ + "\u0005j\u0000\u0000\u0969\u096a\u0005\u013d\u0000\u0000\u096a\u096b\u0005"+ + "k\u0000\u0000\u096b\u096c\u0005\u013d\u0000\u0000\u096c\u096d\u0005\n"+ + "\u0000\u0000\u096d\u096e\u0005\u0002\u0000\u0000\u096e\u096f\u0005\u013d"+ + "\u0000\u0000\u096f\u0974\u0005\u0003\u0000\u0000\u0970\u0971\u0005\u000b"+ + "\u0000\u0000\u0971\u0973\u0003B!\u0000\u0972\u0970\u0001\u0000\u0000\u0000"+ + "\u0973\u0976\u0001\u0000\u0000\u0000\u0974\u0972\u0001\u0000\u0000\u0000"+ + "\u0974\u0975\u0001\u0000\u0000\u0000\u0975\u00c1\u0001\u0000\u0000\u0000"+ + "\u0976\u0974\u0001\u0000\u0000\u0000\u0977\u0978\u0005\u0125\u0000\u0000"+ + "\u0978\u0979\u0005\b\u0000\u0000\u0979\u097a\u0005\u013d\u0000\u0000\u097a"+ + "\u097b\u0005\u0122\u0000\u0000\u097b\u097c\u0005\u013d\u0000\u0000\u097c"+ + "\u097d\u0005\u0123\u0000\u0000\u097d\u097e\u0005\u013d\u0000\u0000\u097e"+ + "\u097f\u0005j\u0000\u0000\u097f\u0980\u0005\u013d\u0000\u0000\u0980\u0981"+ + "\u0005k\u0000\u0000\u0981\u0982\u0005\u013d\u0000\u0000\u0982\u0983\u0005"+ + "\n\u0000\u0000\u0983\u0984\u0005\u0002\u0000\u0000\u0984\u0985\u0005\u013d"+ + "\u0000\u0000\u0985\u098a\u0005\u0003\u0000\u0000\u0986\u0987\u0005\u000b"+ + "\u0000\u0000\u0987\u0989\u0003B!\u0000\u0988\u0986\u0001\u0000\u0000\u0000"+ + "\u0989\u098c\u0001\u0000\u0000\u0000\u098a\u0988\u0001\u0000\u0000\u0000"+ + "\u098a\u098b\u0001\u0000\u0000\u0000\u098b\u00c3\u0001\u0000\u0000\u0000"+ + "\u098c\u098a\u0001\u0000\u0000\u0000\u098d\u098e\u0005\u0126\u0000\u0000"+ + "\u098e\u098f\u0005\b\u0000\u0000\u098f\u0990\u0005\u013d\u0000\u0000\u0990"+ + "\u0991\u0005\u010c\u0000\u0000\u0991\u0992\u0005\u013d\u0000\u0000\u0992"+ + "\u0993\u0005\u0127\u0000\u0000\u0993\u0994\u0005\u013d\u0000\u0000\u0994"+ + "\u0995\u0005a\u0000\u0000\u0995\u0996\u0005\u013d\u0000\u0000\u0996\u0997"+ + "\u0005k\u0000\u0000\u0997\u0998\u0005\u013d\u0000\u0000\u0998\u0999\u0005"+ + "\n\u0000\u0000\u0999\u099a\u0005\u0002\u0000\u0000\u099a\u099b\u0005\u013d"+ + "\u0000\u0000\u099b\u09a0\u0005\u0003\u0000\u0000\u099c\u099d\u0005\u000b"+ + "\u0000\u0000\u099d\u099f\u0003B!\u0000\u099e\u099c\u0001\u0000\u0000\u0000"+ + "\u099f\u09a2\u0001\u0000\u0000\u0000\u09a0\u099e\u0001\u0000\u0000\u0000"+ + "\u09a0\u09a1\u0001\u0000\u0000\u0000\u09a1\u00c5\u0001\u0000\u0000\u0000"+ + "\u09a2\u09a0\u0001\u0000\u0000\u0000\u09a3\u09a4\u0005\u0128\u0000\u0000"+ + "\u09a4\u09a5\u0005\b\u0000\u0000\u09a5\u09a6\u0005\u013d\u0000\u0000\u09a6"+ + "\u09a7\u0005\u00a5\u0000\u0000\u09a7\u09a8\u0005\u013d\u0000\u0000\u09a8"+ + "\u09a9\u0005\u0114\u0000\u0000\u09a9\u09aa\u0005\u013d\u0000\u0000\u09aa"+ + "\u09ab\u0005\n\u0000\u0000\u09ab\u09ac\u0005\u0002\u0000\u0000\u09ac\u09ad"+ + "\u0005\u013d\u0000\u0000\u09ad\u09b2\u0005\u0003\u0000\u0000\u09ae\u09af"+ + "\u0005\u000b\u0000\u0000\u09af\u09b1\u0003B!\u0000\u09b0\u09ae\u0001\u0000"+ + "\u0000\u0000\u09b1\u09b4\u0001\u0000\u0000\u0000\u09b2\u09b0\u0001\u0000"+ + "\u0000\u0000\u09b2\u09b3\u0001\u0000\u0000\u0000\u09b3\u00c7\u0001\u0000"+ + "\u0000\u0000\u09b4\u09b2\u0001\u0000\u0000\u0000\u09b5\u09b6\u0005\u0129"+ + "\u0000\u0000\u09b6\u09b7\u0005\b\u0000\u0000\u09b7\u09b8\u0005\u013d\u0000"+ + "\u0000\u09b8\u09b9\u0005\u00b1\u0000\u0000\u09b9\u09ba\u0005\u013d\u0000"+ + "\u0000\u09ba\u09bb\u0005i\u0000\u0000\u09bb\u09bc\u0005\u013d\u0000\u0000"+ + "\u09bc\u09bd\u0005\u00a5\u0000\u0000\u09bd\u09be\u0005\u013d\u0000\u0000"+ + "\u09be\u09bf\u0005\n\u0000\u0000\u09bf\u09c0\u0005\u0002\u0000\u0000\u09c0"+ + "\u09c5\u0005\u0003\u0000\u0000\u09c1\u09c2\u0005\u000b\u0000\u0000\u09c2"+ + "\u09c4\u0003B!\u0000\u09c3\u09c1\u0001\u0000\u0000\u0000\u09c4\u09c7\u0001"+ + "\u0000\u0000\u0000\u09c5\u09c3\u0001\u0000\u0000\u0000\u09c5\u09c6\u0001"+ + "\u0000\u0000\u0000\u09c6\u00c9\u0001\u0000\u0000\u0000\u09c7\u09c5\u0001"+ + "\u0000\u0000\u0000\u09c8\u09c9\u0005\u012a\u0000\u0000\u09c9\u09ca\u0005"+ + "\b\u0000\u0000\u09ca\u09cb\u0005\u013d\u0000\u0000\u09cb\u09cc\u0005\u00a5"+ + "\u0000\u0000\u09cc\u09cd\u0005\u013d\u0000\u0000\u09cd\u09ce\u0005\u012b"+ + "\u0000\u0000\u09ce\u09cf\u0005\u013d\u0000\u0000\u09cf\u09d0\u0005\n\u0000"+ + "\u0000\u09d0\u09d1\u0005\u0002\u0000\u0000\u09d1\u09d2\u0005\u013d\u0000"+ + "\u0000\u09d2\u09d7\u0005\u0003\u0000\u0000\u09d3\u09d4\u0005\u000b\u0000"+ + "\u0000\u09d4\u09d6\u0003B!\u0000\u09d5\u09d3\u0001\u0000\u0000\u0000\u09d6"+ + "\u09d9\u0001\u0000\u0000\u0000\u09d7\u09d5\u0001\u0000\u0000\u0000\u09d7"+ + "\u09d8\u0001\u0000\u0000\u0000\u09d8\u00cb\u0001\u0000\u0000\u0000\u09d9"+ + "\u09d7\u0001\u0000\u0000\u0000\u09da\u09db\u0005\u012c\u0000\u0000\u09db"+ + "\u09dc\u0005\b\u0000\u0000\u09dc\u09dd\u0005\u013d\u0000\u0000\u09dd\u09de"+ + "\u0005i\u0000\u0000\u09de\u09df\u0005\u013d\u0000\u0000\u09df\u09e0\u0005"+ + "k\u0000\u0000\u09e0\u09e1\u0005\u013d\u0000\u0000\u09e1\u09e2\u0005\n"+ + "\u0000\u0000\u09e2\u09e3\u0005\u0002\u0000\u0000\u09e3\u09e4\u0005\u013d"+ + "\u0000\u0000\u09e4\u09e9\u0005\u0003\u0000\u0000\u09e5\u09e6\u0005\u000b"+ + "\u0000\u0000\u09e6\u09e8\u0003B!\u0000\u09e7\u09e5\u0001\u0000\u0000\u0000"+ + "\u09e8\u09eb\u0001\u0000\u0000\u0000\u09e9\u09e7\u0001\u0000\u0000\u0000"+ + "\u09e9\u09ea\u0001\u0000\u0000\u0000\u09ea\u00cd\u0001\u0000\u0000\u0000"+ + "\u09eb\u09e9\u0001\u0000\u0000\u0000\u09ec\u09ed\u0005\u012d\u0000\u0000"+ + "\u09ed\u09ee\u0005\b\u0000\u0000\u09ee\u09ef\u0005\u013d\u0000\u0000\u09ef"+ + "\u09f0\u0005\u0096\u0000\u0000\u09f0\u09f1\u0005\u013d\u0000\u0000\u09f1"+ + "\u09f2\u0005\u00a5\u0000\u0000\u09f2\u09f3\u0005\u013d\u0000\u0000\u09f3"+ + "\u09f4\u0005\u00a2\u0000\u0000\u09f4\u09f5\u0005\u013d\u0000\u0000\u09f5"+ + "\u09f6\u0005\n\u0000\u0000\u09f6\u09f7\u0005\u0002\u0000\u0000\u09f7\u09f8"+ + "\u0005\u013d\u0000\u0000\u09f8\u09fd\u0005\u0003\u0000\u0000\u09f9\u09fa"+ + "\u0005\u000b\u0000\u0000\u09fa\u09fc\u0003B!\u0000\u09fb\u09f9\u0001\u0000"+ + "\u0000\u0000\u09fc\u09ff\u0001\u0000\u0000\u0000\u09fd\u09fb\u0001\u0000"+ + "\u0000\u0000\u09fd\u09fe\u0001\u0000\u0000\u0000\u09fe\u0a04\u0001\u0000"+ + "\u0000\u0000\u09ff\u09fd\u0001\u0000\u0000\u0000\u0a00\u0a01\u0005\u001d"+ + "\u0000\u0000\u0a01\u0a03\u0005\u013d\u0000\u0000\u0a02\u0a00\u0001\u0000"+ + "\u0000\u0000\u0a03\u0a06\u0001\u0000\u0000\u0000\u0a04\u0a02\u0001\u0000"; + private static final String _serializedATNSegment1 = + "\u0000\u0000\u0a04\u0a05\u0001\u0000\u0000\u0000\u0a05\u00cf\u0001\u0000"+ + "\u0000\u0000\u0a06\u0a04\u0001\u0000\u0000\u0000\u0a07\u0a08\u0005\u012e"+ + "\u0000\u0000\u0a08\u0a09\u0005\b\u0000\u0000\u0a09\u0a0a\u0005\u013d\u0000"+ + "\u0000\u0a0a\u0a0b\u0005\u012f\u0000\u0000\u0a0b\u0a0c\u0005\u013d\u0000"+ + "\u0000\u0a0c\u0a0d\u0005k\u0000\u0000\u0a0d\u0a0e\u0005\u013d\u0000\u0000"+ + "\u0a0e\u0a0f\u0005\u0130\u0000\u0000\u0a0f\u0a10\u0005\u013d\u0000\u0000"+ + "\u0a10\u0a11\u0005j\u0000\u0000\u0a11\u0a12\u0005\u013d\u0000\u0000\u0a12"+ + "\u0a13\u0005\u0131\u0000\u0000\u0a13\u0a14\u0005\u013d\u0000\u0000\u0a14"+ + "\u0a15\u0005\n\u0000\u0000\u0a15\u0a16\u0005\u0002\u0000\u0000\u0a16\u0a17"+ + "\u0005\u013d\u0000\u0000\u0a17\u0a1c\u0005\u0003\u0000\u0000\u0a18\u0a19"+ + "\u0005\u000b\u0000\u0000\u0a19\u0a1b\u0003B!\u0000\u0a1a\u0a18\u0001\u0000"+ + "\u0000\u0000\u0a1b\u0a1e\u0001\u0000\u0000\u0000\u0a1c\u0a1a\u0001\u0000"+ + "\u0000\u0000\u0a1c\u0a1d\u0001\u0000\u0000\u0000\u0a1d\u00d1\u0001\u0000"+ + "\u0000\u0000\u0a1e\u0a1c\u0001\u0000\u0000\u0000\u0a1f\u0a20\u0005\u0132"+ + "\u0000\u0000\u0a20\u0a21\u0005\b\u0000\u0000\u0a21\u0a22\u0005\u013d\u0000"+ + "\u0000\u0a22\u0a23\u0005\u0096\u0000\u0000\u0a23\u0a24\u0005\u013d\u0000"+ + "\u0000\u0a24\u0a25\u0005\u00a5\u0000\u0000\u0a25\u0a26\u0005\u013d\u0000"+ + "\u0000\u0a26\u0a27\u0005\u00a2\u0000\u0000\u0a27\u0a28\u0005\u013d\u0000"+ + "\u0000\u0a28\u0a29\u0005\u0133\u0000\u0000\u0a29\u0a2a\u0005\u013d\u0000"+ + "\u0000\u0a2a\u0a2b\u0005\n\u0000\u0000\u0a2b\u0a2c\u0005\u0002\u0000\u0000"+ + "\u0a2c\u0a2d\u0005\u013d\u0000\u0000\u0a2d\u0a32\u0005\u0003\u0000\u0000"+ + "\u0a2e\u0a2f\u0005\u000b\u0000\u0000\u0a2f\u0a31\u0003B!\u0000\u0a30\u0a2e"+ + "\u0001\u0000\u0000\u0000\u0a31\u0a34\u0001\u0000\u0000\u0000\u0a32\u0a30"+ + "\u0001\u0000\u0000\u0000\u0a32\u0a33\u0001\u0000\u0000\u0000\u0a33\u0a39"+ + "\u0001\u0000\u0000\u0000\u0a34\u0a32\u0001\u0000\u0000\u0000\u0a35\u0a36"+ + "\u0005\u001d\u0000\u0000\u0a36\u0a38\u0005\u013d\u0000\u0000\u0a37\u0a35"+ + "\u0001\u0000\u0000\u0000\u0a38\u0a3b\u0001\u0000\u0000\u0000\u0a39\u0a37"+ + "\u0001\u0000\u0000\u0000\u0a39\u0a3a\u0001\u0000\u0000\u0000\u0a3a\u00d3"+ + "\u0001\u0000\u0000\u0000\u0a3b\u0a39\u0001\u0000\u0000\u0000\u0a3c\u0a3d"+ + "\u0005\u0134\u0000\u0000\u0a3d\u0a3e\u0005\b\u0000\u0000\u0a3e\u0a3f\u0005"+ + "\u013d\u0000\u0000\u0a3f\u0a40\u0005i\u0000\u0000\u0a40\u0a41\u0005\u013d"+ + "\u0000\u0000\u0a41\u0a42\u0005\n\u0000\u0000\u0a42\u0a43\u0005\u0002\u0000"+ + "\u0000\u0a43\u0a44\u0005\u013d\u0000\u0000\u0a44\u0a49\u0005\u0003\u0000"+ + "\u0000\u0a45\u0a46\u0005\u000b\u0000\u0000\u0a46\u0a48\u0003B!\u0000\u0a47"+ + "\u0a45\u0001\u0000\u0000\u0000\u0a48\u0a4b\u0001\u0000\u0000\u0000\u0a49"+ + "\u0a47\u0001\u0000\u0000\u0000\u0a49\u0a4a\u0001\u0000\u0000\u0000\u0a4a"+ + "\u00d5\u0001\u0000\u0000\u0000\u0a4b\u0a49\u0001\u0000\u0000\u0000\u0a4c"+ + "\u0a4f\u0003\u00d8l\u0000\u0a4d\u0a4f\u0003\u00dcn\u0000\u0a4e\u0a4c\u0001"+ + "\u0000\u0000\u0000\u0a4e\u0a4d\u0001\u0000\u0000\u0000\u0a4f\u00d7\u0001"+ + "\u0000\u0000\u0000\u0a50\u0a51\u0005\u0002\u0000\u0000\u0a51\u0a56\u0003"+ + "\u00dam\u0000\u0a52\u0a53\u0005\u0135\u0000\u0000\u0a53\u0a55\u0003\u00da"+ + "m\u0000\u0a54\u0a52\u0001\u0000\u0000\u0000\u0a55\u0a58\u0001\u0000\u0000"+ + "\u0000\u0a56\u0a54\u0001\u0000\u0000\u0000\u0a56\u0a57\u0001\u0000\u0000"+ + "\u0000\u0a57\u0a59\u0001\u0000\u0000\u0000\u0a58\u0a56\u0001\u0000\u0000"+ + "\u0000\u0a59\u0a5a\u0005\u0003\u0000\u0000\u0a5a\u0a5e\u0001\u0000\u0000"+ + "\u0000\u0a5b\u0a5c\u0005\u0002\u0000\u0000\u0a5c\u0a5e\u0005\u0003\u0000"+ + "\u0000\u0a5d\u0a50\u0001\u0000\u0000\u0000\u0a5d\u0a5b\u0001\u0000\u0000"+ + "\u0000\u0a5e\u00d9\u0001\u0000\u0000\u0000\u0a5f\u0a60\u0005\u013d\u0000"+ + "\u0000\u0a60\u0a61\u0005\u0136\u0000\u0000\u0a61\u0a62\u0003\u00deo\u0000"+ + "\u0a62\u00db\u0001\u0000\u0000\u0000\u0a63\u0a64\u0005\u0137\u0000\u0000"+ + "\u0a64\u0a69\u0003\u00deo\u0000\u0a65\u0a66\u0005\u0135\u0000\u0000\u0a66"+ + "\u0a68\u0003\u00deo\u0000\u0a67\u0a65\u0001\u0000\u0000\u0000\u0a68\u0a6b"+ + "\u0001\u0000\u0000\u0000\u0a69\u0a67\u0001\u0000\u0000\u0000\u0a69\u0a6a"+ + "\u0001\u0000\u0000\u0000\u0a6a\u0a6c\u0001\u0000\u0000\u0000\u0a6b\u0a69"+ + "\u0001\u0000\u0000\u0000\u0a6c\u0a6d\u0005\u0138\u0000\u0000\u0a6d\u0a71"+ + "\u0001\u0000\u0000\u0000\u0a6e\u0a6f\u0005\u0137\u0000\u0000\u0a6f\u0a71"+ + "\u0005\u0138\u0000\u0000\u0a70\u0a63\u0001\u0000\u0000\u0000\u0a70\u0a6e"+ + "\u0001\u0000\u0000\u0000\u0a71\u00dd\u0001\u0000\u0000\u0000\u0a72\u0a7a"+ + "\u0005\u013d\u0000\u0000\u0a73\u0a7a\u0005\u0143\u0000\u0000\u0a74\u0a7a"+ + "\u0003\u00d8l\u0000\u0a75\u0a7a\u0003\u00dcn\u0000\u0a76\u0a7a\u0005\u0139"+ + "\u0000\u0000\u0a77\u0a7a\u0005\u013a\u0000\u0000\u0a78\u0a7a\u0005\u013b"+ + "\u0000\u0000\u0a79\u0a72\u0001\u0000\u0000\u0000\u0a79\u0a73\u0001\u0000"+ + "\u0000\u0000\u0a79\u0a74\u0001\u0000\u0000\u0000\u0a79\u0a75\u0001\u0000"+ + "\u0000\u0000\u0a79\u0a76\u0001\u0000\u0000\u0000\u0a79\u0a77\u0001\u0000"+ + "\u0000\u0000\u0a79\u0a78\u0001\u0000\u0000\u0000\u0a7a\u00df\u0001\u0000"+ + "\u0000\u0000\u008d\u00ed\u00f7\u0101\u0169\u0172\u017a\u0182\u0189\u019b"+ + "\u01a2\u01a9\u01b0\u01c0\u01c7\u01df\u01ec\u0200\u0207\u021b\u0222\u0230"+ + "\u0240\u0255\u0261\u0272\u0279\u0285\u028d\u0299\u02a9\u02b5\u02bc\u02ce"+ + "\u02d5\u02dc\u02ed\u0300\u030e\u0322\u0330\u0343\u0353\u035e\u0365\u036f"+ + "\u0376\u0382\u038a\u0391\u039d\u03a6\u03ae\u03b6\u03bd\u03c4\u03d4\u03e2"+ + "\u0402\u041f\u042d\u043b\u044c\u045d\u0471\u0485\u0493\u04a6\u04b6\u04d3"+ + "\u04f0\u051e\u0530\u0540\u0558\u0568\u057f\u0596\u05a9\u05d0\u05e8\u0604"+ + "\u060b\u0612\u0619\u0629\u0643\u0652\u0664\u0678\u0689\u06a4\u06bf\u06dc"+ + "\u06ec\u0701\u0714\u0727\u073c\u074f\u0762\u0775\u0786\u07b1\u07c5\u07cc"+ + "\u07de\u07f6\u080e\u0822\u0836\u085e\u086d\u087c\u0895\u08aa\u08be\u08d0"+ + "\u08f0\u091e\u0932\u0948\u095a\u0974\u098a\u09a0\u09b2\u09c5\u09d7\u09e9"+ + "\u09fd\u0a04\u0a1c\u0a32\u0a39\u0a49\u0a4e\u0a56\u0a5d\u0a69\u0a70\u0a79"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/handyman.raven/src/main/antlr/in.handyman.raven/gmr/JSON.g4 b/src/main/antlr/in.handyman.raven/gmr/JSON.g4 similarity index 100% rename from handyman.raven/src/main/antlr/in.handyman.raven/gmr/JSON.g4 rename to src/main/antlr/in.handyman.raven/gmr/JSON.g4 diff --git a/src/main/antlr/in.handyman.raven/gmr/Raven.g4 b/src/main/antlr/in.handyman.raven/gmr/Raven.g4 new file mode 100644 index 00000000..783723f5 --- /dev/null +++ b/src/main/antlr/in.handyman.raven/gmr/Raven.g4 @@ -0,0 +1,1076 @@ +grammar Raven; + +import JSON; + +process: + 'process' name=STRING + '{' + tryBlock=tryClause + catchBlock=catchClause + finallyBlock= finallyClause + '}'; + +tryClause : + 'try' + '{' + (actions+=action)* + '}' +; + +finallyClause: + 'finally' + '{' + (actions+=action)* + '}' +; + +catchClause: + 'catch' + '{' + (actions+=action)* + '}' +; + +action: + (abort + |assign + |callProcess + |forkProcess + |spawnProcess + |dogLeg + |copyData + |dropFile + |loadCsv + |restApi + |transform + |multitude + |exportCsv + |createDirectory + |createFile + |deleteFileDirectory + |transferFileDirectory + |createTAR + |extractTAR + |importCsvToDB + |producerConsumerModel + |producer + |consumer + |pushJson + |mapJsonContext + |sharePoint + |downloadAsset + |paperItemization + |autoRotation + |blankPageRemover + |qrAttribution + |fileMerger + |checksum + |fileSize + |ravenVmException + |uploadAsset + |docnetAttribution + |createZip + |extractZip + |sorGroupDetails + |ftpsUpload + |ftpsDownload + |sftpConnector + |zeroShotClassifier + |loadExtractedData + |absentKeyFilter + |triageAttribution + |loadExtractedData + |absentKeyFilter + |sorFilter + |tqaFilter + |jsonToFile + |textFilter + |entityFilter + |dirPath + |fileDetails + |urgencyTriage + |docnetResult + |setContextValue + |evalPatientName + |evalMemberId + |evalDateOfBirth + |thresholdCheck + |wordcount + |charactercount + |datevalidator + |alphavalidator + |alphanumericvalidator + |numericvalidator + |nervalidator + |donutDocQa + |scalarAdapter + |phraseMatchPaperFilter + |zeroShotClassifierPaperFilter + |dataExtraction + |assetInfo + |episodeOfCoverage + |userRegistration + |authToken + |eocJsonGenerator + |zipContentList + |hwDetection + |intellimatch + |checkboxVqa + |pixelClassifierUrgencyTriage + |paperItemizer + |nerAdapter + |coproStart + |coproStop + |outboundDeliveryNotify + |masterdataComparison + |zipBatch + |drugMatch + |urgencyTriageModel + |donutImpiraQa + |trinityModel + |templateDetection + |fileBucketing + |alchemyInfo + |alchemyAuthToken + |alchemyResponse + |productResponse + |tableExtraction + |mailServer + |alchemyKvpResponse + |alchemyTableResponse + |productOutboundZipfile + |mailServer + |fileMergerPdf + |zipFileCreationOutbound + |outboundKvpResponse + |outboundTableResponse + |integratedNoiseModelApi + ); + + +multitude: + 'multitude' 'as' name=STRING ('on' on= STRING)* 'using' + '{' + (actions+=action)* + '}' ('on-condition' condition=expression)* ('fielding' writeThreadCount=NON_ZERO_DIGIT)*; + +// this is for creating POJO WRT definition +//attribute:(startProcess); + +copyData: + ('copydata' 'as' name=STRING 'from' source=STRING 'to' to=STRING 'using' + '{' + value=STRING + '}' ('on-condition' condition=expression)* ('fielding' writeThreadCount=NON_ZERO_DIGIT)* ('with-fetch-batch-size' fetchBatchSize=NON_ZERO_DIGIT)* ('with-write-batch-size' writeBatchSize=NON_ZERO_DIGIT)*) + ; + +transform: + 'transform' 'as' name= STRING 'on' on= STRING 'using' + '{' + value+=STRING + '}' ('on-condition' condition=expression)* ('do-format' format=expression)*; + +loadCsv: + 'loadcsv' 'as' name=STRING 'pid' pid=STRING 'from' source=STRING 'to' to=STRING 'with' delim=STRING 'by-batch' + limit=STRING 'using' + '{' + value=STRING + '}' ('on-condition' condition=expression)*; + +abort: + 'abort' 'as' name=STRING + '{' + value=STRING + '}' ('on-condition' condition=expression)* +; + +callProcess: + 'callprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING + 'for-every' + '{' + value=STRING + '}' ('on-condition' condition=expression)* ('on-parallel-fielding' forkBatchSize=STRING)*; + + +forkProcess: + 'forkprocess' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING 'using' datasource=STRING 'for-every' + '{' + value=STRING + '}' ('watermark' forkBatchSize=STRING)* ('on-condition' condition=expression)*; + + +spawnProcess: + 'spawn' 'as' name=STRING 'with-target' target=STRING 'from-file' source=STRING ('on-condition' condition=expression)*; + + +dogLeg: + 'dogleg' 'as' name=STRING 'use-parent-context' inheritContext=STRING 'using' + '{' + processList+=startProcess + '}' ('on-condition' condition=expression)*; + +startProcess: + 'start-process' name=STRING 'with-file' target=STRING +; + +assign: + 'assign' 'as' name=STRING 'source' source=STRING 'using' + '{' + value=STRING + '}' ('on-condition' condition=expression)*; + + +dropFile: + 'dropfile' 'as' name=STRING 'in-path' target=STRING ('on-condition' condition=expression)* +; + +restApi: + 'restapi' 'as' name=STRING 'source' source=STRING 'using' 'url' url=STRING 'method' method=STRING + ('with headers' headers=json)* ('with params' params=json )* + ('with body type' '{' bodyType=STRING '}') + '{' + (value+=restPart)* + '}' ('on-condition' condition=expression)*; + +restPart: + '{ part' 'as' partName=STRING 'with' partData=STRING ('type as' type=STRING)* '}'; + + +exportCsv: + 'exportCsv' 'as' name=STRING 'source' source=STRING 'executionSource' executionSource=STRING + ('using' stmt= STRING)* 'targetLocation' targetLocation=STRING + 'using' '{''}' + ('on-condition' condition=expression)* ('fielding' writeThreadCount=STRING)* ; + +importCsvToDB: + 'importCsvToDB' 'as' name= STRING 'target' target=resource 'on' tableName=STRING 'using' + '{' + value+=STRING + '}' ('on-condition' condition=expression)* ('fielding' writeThreadCount=STRING)* ('batch' batchSize=STRING)*; + +extractTAR: + 'extractTAR' 'as' name= STRING 'from' source=STRING 'destination' destination=STRING 'using' + '{''}' ('on-condition' condition=expression)*; + +createTAR: + 'createTAR' 'as' name= STRING 'from' source=STRING 'destination' destination=STRING 'extension' extension=STRING 'using' + '{''}' ('on-condition' condition=expression)*; + +createDirectory: + 'createDirectory' 'as' name= STRING 'using' + '{' + directoryPath+=STRING + '}' ('on-condition' condition=expression)*; + +createFile: + 'createFile' 'as' name= STRING 'location' location=STRING 'fileName' fileName=STRING 'extension' extension=STRING 'using' + '{' + value=STRING + '}' ('on-condition' condition=expression)*; + +deleteFileDirectory: + 'deleteFileDirectory' 'as' name= STRING 'using' + '{' + path+=STRING + '}' ('on-condition' condition=expression)*; + +transferFileDirectory: + 'transferFileDirectory' 'as' name= STRING 'from' source=STRING 'to' to=STRING 'operation' operation=STRING 'using' + '{' + '}' ('on-condition' condition=expression)*; + +producerConsumerModel: + 'pcm' 'as' name=STRING 'on-resource' source=resource + 'produce''{' + produce+=producer + '}' ('fielding' produceThreadCount=STRING)* + 'consume''{' + consume+=consumer + '}'('fielding' consumeThreadCount=STRING)* ('on-condition' condition=expression)*; + +producer: + 'producer''as' name=STRING ('push-result-at' push=STRING)* ('on-resource' source=resource)* + 'for-every''{' + stmt=STRING + '}' + 'execute''{' + (actions+=action)* + '}' ('on-condition' condition=expression)* ('fielding' threadCount=STRING)*; + +consumer: + 'consumer''as' name=STRING ( 'pop-event-from' event=STRING 'on-resource' source=resource )* ('pop-result-from' pop=STRING 'limit' limit=STRING)* 'execute' '{' + (actions+=action)* + '}' ('on-condition' condition=expression)* ('fielding' threadCount=STRING)* ('on-standalone' standalone=expression)* ; + + +pushJson : + 'push-json-into-context' 'as' name=STRING 'with-key' key=STRING 'using-value' '{' + value=json + '}' ('on-condition' condition=expression)* ; + +mapJsonContext : + 'map-json-into-context' 'as' name=STRING 'using' '{' + value=STRING + '}' ('on-condition' condition=expression)* ; + +sharePoint: + 'sharepoint' 'as' name=STRING 'client-id' shpClientId=STRING 'tenant-id' shpTenantId=STRING 'client-secret' shpClientSecret=STRING + 'org-name' orgName=STRING 'action-type' actionType=STRING 'site-url' siteUrl=STRING 'source-relative-path' sourceRelativePath=STRING + 'file-name' fileName=STRING 'target-relative-path' targetRelativePath=STRING 'using' + '{' + value=STRING + '}' ('on-condition' condition=expression)* ; + +expression :'if' (lhs=STRING operator=Operator rhs=STRING); + +log: + 'log' 'as' 'level' level=STRING 'with' 'message' '{' message=STRING '}'; + +ravenVmException: + 'raise exception' 'as' name=STRING 'using' '{' message=STRING '}'('on-condition' condition=expression)* ; + +checksum: + 'checksum' 'as' name=STRING 'using' '{' filePath=STRING '}' ('on-condition' condition=expression)* ; + +fileSize: + 'fileSize' 'as' name=STRING 'using' '{' filePath=STRING '}' ('on-condition' condition=expression)* ; + +downloadAsset: + 'download-asset' 'as' name=STRING 'from-url' url=STRING 'at' location=STRING 'using' '{' '}' ('on-condition' condition=expression)* ; + +paperItemization: + 'paper-itemization' 'as' name=STRING 'from-target-file' filePath=STRING 'using' outputDir=STRING 'using' '{' '}' ('on-condition' condition=expression)* ; + +autoRotation: + 'autoRotation' 'as' name=STRING + 'output-dir' outputDir=STRING + 'process-id' processId=STRING + 'copro-url' endPoint=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' querySet=STRING '}' + ('on-condition' condition=expression)* ; + + +blankPageRemover: + 'blankPageRemover' 'as' name=STRING 'output-dir' outputDir=STRING 'process-id' processId=STRING 'resource-conn' resourceConn=STRING 'using' '{' querySet=STRING '}' ('on-condition' condition=expression)* ; + +qrAttribution: + 'qrAttribution' 'as' name=STRING 'using' '{' filePath=STRING '}' ('on-condition' condition=expression)* ; + +uploadAsset: + 'uploadAsset' 'as' name=STRING 'from-target-file' filePath=STRING 'template-id' templateId=STRING 'auth-token' token=STRING 'using' '{' '}' ('on-condition' condition=expression)* ; + +fileMerger: + 'fileMerger' 'as' name=STRING 'in' outputDir=STRING 'using' '{' requestBody=STRING '}' ('on-condition' condition=expression)* ; + +ftpsUpload: + 'ftps_upload' 'as' name=STRING 'with-remote-host' host=STRING 'port' port=STRING 'user-name' userName=STRING + 'password' password=STRING 'session-timeout' sessionTimeOut=STRING 'source-file-to-upload' sourceFile=STRING + 'in-destination-to-save' destDir=STRING + 'upload-check' uploadCheck=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +ftpsDownload: + 'ftps_download' 'as' name=STRING 'with-remote-host' host=STRING 'port' port=STRING 'user-name' userName=STRING + 'password' password=STRING 'session-timeout' sessionTimeOut=STRING 'source-file-to-download' sourceFile=STRING + 'in-destination-to-save' destDir=STRING + 'download-check' uploadCheck=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +sftpConnector: + 'sftp' 'as' name=STRING 'with-remote-host' host=STRING 'port' port=STRING 'user-name' userName=STRING 'password' password=STRING 'session-timeout' sessionTimeOut=STRING 'channel-timeout' channelTimeOut=STRING 'source-file-to-download' sourceFile=STRING 'in-destination-to-save' destDir=STRING + 'ftp' 'as' name=STRING 'with-remote-host' host=STRING 'port' port=STRING 'user-name' userName=STRING 'password' password=STRING 'session-timeout' sessionTimeOut=STRING 'source-file-to-download' sourceFile=STRING 'in-destination-to-save' destDir=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + + +createZip: + 'create-zip' name = STRING 'file-name' fileName = STRING 'from' source = STRING 'destination' destination=STRING 'using' + '{' '}' ('on-condition' condition=expression)*; + +extractZip: + 'extract-zip' name = STRING 'from' source = STRING 'destination' destination=STRING 'using' + '{' '}' ('on-condition' condition=expression)*; + +sorGroupDetails: + 'sorGroupDetails' 'as' name=STRING 'on' on=STRING 'keyfields' keyfields=STRING 'searchfields' searchfields=STRING + 'groupbyfields' groupbyfields=STRING 'targettable' targettable=STRING 'using' + '{' + value=STRING + '}' ('on-condition' condition=expression)*; + + +zeroShotClassifier: + 'zeroShotClassifier' 'as' name=STRING + 'with-candidate-labels' candidateLabels=STRING 'using' + '{' content=STRING '}' ('on-condition' condition=expression)*; + + +loadExtractedData: + 'loadExtractedData' 'as' name=STRING + 'file-path' filePath=STRING + 'paper-no' paperNo=STRING + 'intics-reference-id' inticsReferenceId=STRING + 'batch-id' batchId=STRING + 'target-dir' targetDir=STRING 'using' + '{' '}' ('on-condition' condition=expression)*; + +absentKeyFilter: + 'absentKeyFilter' 'as' name=STRING + 'file-path' filePath=STRING + 'paper-no' paperNo=STRING + 'intics-reference-id' inticsReferenceId=STRING + 'batch-id' batchId=STRING + 'sor-list' sorList=STRING 'using' + '{' '}' ('on-condition' condition=expression)*; + +sorFilter: + 'sorFilter' 'as' name=STRING + 'file-path' filePath=STRING + 'intics-reference-id' inticsReferenceId=STRING + 'search-value' searchValue=STRING 'using' + '{' '}' ('on-condition' condition=expression)*; + +triageAttribution: + 'triage' 'as' name=STRING + 'in-output-dir' outputDir=STRING + 'with-labelled-classifier-model-path' labelledClassifierModelFilePath=STRING + 'with-handwritten-extractor-model-path' handwrittenClassifierModelFilePath=STRING + 'with-checkbox-extractor-model-path' checkboxClassifierModelFilePath=STRING + 'using-synonyms' synonyms=STRING + 'using-labelled-classifier-labels' labelledClassifierLabels=STRING + 'using-vilt-coco-labels' viltCocoLabels=STRING + 'add-vilt-question-config' viltConfigLabel=STRING + 'add-vilt-coco-overide-config' isViltCocoOverride=STRING + 'add-vilt-coco-threshold-config' viltCocoThreshold=STRING + 'add-config-vgg-img-width' vggImageWidth=STRING + 'add-config-vgg-img-height' vggImageHeight=STRING + 'save-response-as' triageAttributionResponseName=STRING + '{' inputFilePath=STRING '}' ('on-condition' condition=expression)*; + +docnetAttribution: + 'docnetAttribution' 'as' name=STRING + 'in-output-dir' outputDir=STRING + 'save-response-as' docnetAttributionAsResponse=STRING + 'for-input-file' + '{' inputFilePath=STRING '}' + 'on-resource-conn' resourceConn=STRING + 'using-attribute-questions' + '{' attributeQuestionSql=STRING '}' + ('on-condition' condition=expression)* ; + +tqaFilter: + 'tqa-filter' 'as' name=STRING + 'in-output-dir' outputDir=STRING + 'using-truth-extractor-url' truthExtractorUrl=STRING + 'add-config-max-doctr-inner-join-diff' maxDoctrDiff=STRING + 'add-config-max-question-spacing-diff' maxQuestionDiff=STRING + 'on-resource-conn' resourceConn=STRING + 'using-synonmys' + '{' synonymSqlQuery=STRING '}' + 'using-input-files' + '{' inputFilePathSqlQuery=STRING '}' + ('on-condition' condition=expression)* ('fielding' threadCount=NON_ZERO_DIGIT)* ('with-fetch-batch-size' fetchBatchSize=NON_ZERO_DIGIT)* ('with-write-batch-size' writeBatchSize=NON_ZERO_DIGIT)* ; + +textFilter: + 'text-filtering' 'as' name=STRING + 'key-filtering' filteringKeys =STRING + 'for-input-file' + '{' inputFilePath=STRING '}' ('on-condition' condition=expression)* ; + + +entityFilter: + 'text-filtering' 'as' name=STRING 'with-doc-id' docId=STRING + 'for-paper' paperNo=STRING 'group-id' groupId = STRING + 'on-resource-conn' resourceConn=STRING + 'entity-key-filtering' entityKeysToFilter =STRING + 'with-mandatory-key-filtering' mandatoryKeysToFilter = STRING + 'for-input-file' + '{' inputFilePath=STRING '}' ('on-condition' condition=expression)* ; + +thresholdCheck: + 'check-threshold' 'as' name=STRING + 'threshold-value' threshold=STRING + '{' input=STRING '}' + ('on-condition' condition=expression)* ; + +jsonToFile: + 'jsonToFile' 'as' name= STRING + 'export-into' filePath=STRING + 'on-resource-conn' resourceConn=STRING + 'using' + '{' + jsonSql=STRING + '}' ('on-condition' condition=expression)*; + +docnetResult: + 'docnetResult' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'using-copro' + '{' coproResultSqlQuery=STRING '}' + 'using-weightage' + '{' weightageSqlQuery=STRING '}'('on-condition' condition=expression)*; + +setContextValue: + 'setContextValue' 'as' name=STRING + 'context-key' contextKey=STRING + 'context-value' contextValue=STRING + 'using' + '{' + '}' ('on-condition' condition=expression)*; + +evalPatientName: + 'evalPatientName' 'as' name=STRING + 'patient-name' patientName=STRING + 'word-count-limit' wordCountLimit=STRING + 'char-count-limit' charCountLimit=STRING + 'ner-api' nerCoproApi=STRING + 'word-count-threshold' wordCountThreshold=STRING + 'char-count-threshold' charCountThreshold=STRING + 'ner-api-threshold' nerApiThreshold=STRING + 'using' + '{' '}'('on-condition' condition=expression)*; + +evalMemberId: + 'evalMemberId' 'as' name=STRING + 'member-id' memberID=STRING + 'word-count-limit' wordCountLimit=STRING + 'char-count-limit' charCountLimit=STRING + 'special-character' specialCharacter=STRING + 'word-count-threshold' wordCountThreshold=STRING + 'char-count-threshold' charCountThreshold=STRING + 'validator-threshold' validatorThreshold=STRING + 'using' + '{' '}'('on-condition' condition=expression)*; + +evalDateOfBirth: + 'evalDateOfBirth' 'as' name=STRING + 'date-of-birth' dob=STRING + 'word-count-limit' wordCountLimit=STRING + 'char-count-limit' charCountLimit=STRING + 'word-count-threshold' wordCountThreshold=STRING + 'char-count-threshold' charCountThreshold=STRING + 'comparable-year' comparableYear=STRING + 'date-formats' dateFormats=STRING + 'validator-threshold' validatorThreshold=STRING + 'using' + '{' '}'('on-condition' condition=expression)*; + + +dirPath: + 'dirPath' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'using' '{' filePath=STRING '}' ('on-condition' condition=expression)* ; + +fileDetails: + 'fileDetails' 'as' name=STRING + 'dirpath' dirpath=STRING + 'groupId' group_id=STRING + 'inboundId' inbound_id=STRING + 'on-resource-conn' resourceConn=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +wordcount: + 'wordcount' 'as' name=STRING + 'word-threshold' thresholdValue=STRING + 'input-value' inputValue=STRING + 'word-limit' countLimit=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +charactercount: + 'charactercount' 'as' name=STRING + 'char-threshold' thresholdValue=STRING + 'input-value' inputValue=STRING + 'char-limit' countLimit=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +datevalidator: + 'datevalidator' 'as' name=STRING + 'validator-threshold' thresholdValue=STRING + 'input-value' inputValue=STRING + 'allowed-date-formats' allowedDateFormats=STRING + 'comparable-date' comparableDate=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +alphavalidator: + 'alphavalidator' 'as' name=STRING + 'validator-threshold' thresholdValue=STRING + 'input-value' inputValue=STRING + 'allowed-special-characters' allowedSpecialCharacters=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +alphanumericvalidator: + 'alphanumericvalidator' 'as' name=STRING + 'validator-threshold' thresholdValue=STRING + 'input-value' inputValue=STRING + 'allowed-special-characters' allowedSpecialCharacters=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +numericvalidator: + 'numericvalidator' 'as' name=STRING + 'validator-threshold' thresholdValue=STRING + 'input-value' inputValue=STRING + 'allowed-special-characters' allowedSpecialCharacters=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +nervalidator: + 'nervalidator' 'as' name=STRING + 'ner-threshold' nerThreshold=STRING + 'input-value' inputValue=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +urgencyTriage: + 'urgencyTriage' 'as' name=STRING + 'input-file-path' inputFilePath=STRING + 'binary-classifier-model-file-path' binaryClassifierModelFilePath=STRING + 'multi-classifier-model-file-path' multiClassifierModelFilePath=STRING + 'checkbox-classifier-model-file-path' checkboxClassifierModelFilePath=STRING + 'synonyms' synonyms=STRING + 'binary-classifier-labels' binaryClassifierLabels=STRING + 'multi-classifier-labels' multiClassifierLabels=STRING + 'checkbox-classifier-labels' checkboxClassifierLabels=STRING + 'output-dir' outputDir=STRING + 'binary-image-width' binaryImageWidth=STRING + 'binary-image-height' binaryImageHeight=STRING + 'multi-image-width' multiImageWidth=STRING + 'multi-image-height' multiImageHeight=STRING + 'checkbox-image-width' checkboxImageWidth=STRING + 'checkbox-image-height' checkboxImageHeight=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +donutDocQa: + 'donut-docqa' 'as' name=STRING + 'in-output-dir' outputDir=STRING + 'on-resource-conn' resourceConn=STRING + 'save-response-as' responseAs=STRING + 'using' '{' questionSql=STRING '}' + ('on-condition' condition=expression)* + ('on-parallel-fielding' forkBatchSize=STRING)*; + +scalarAdapter: + 'scalarAdapter' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'process-id' processID=STRING + 'using-docnut-result' + '{' resultSet=STRING '}' + ('on-condition' condition=expression)*; + +phraseMatchPaperFilter: + 'phrase-match-paper-filter' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'for-process-id' processID=STRING + 'copro-url' endPoint=STRING + 'thread-count' threadCount=STRING + 'read-batch-size' readBatchSize=STRING + 'write-batch-size' writeBatchSize=STRING + 'with-input-query' + '{' + querySet=STRING + + '}'('on-condition' condition=expression)* ; + +zeroShotClassifierPaperFilter: + 'zero-shot-classifier-paper-filter' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'for-process-id' processID=STRING + 'thread-count' threadCount=STRING + 'copro-url' endPoint=STRING + 'read-batch-size' readBatchSize=STRING + 'write-batch-size' writeBatchSize=STRING + 'with-input-query' + '{' + querySet=STRING + + '}'('on-condition' condition=expression)* ; + + +assetInfo: + 'assetInfo' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'get-audit-table' auditTable=STRING + 'result-table' assetTable=STRING + 'using' '{' values=STRING '}' ('on-condition' condition=expression)* ; + +dataExtraction: + 'dataExtraction' 'as' name=STRING + 'resource-conn' resourceConn=STRING + 'result-table' resultTable=STRING + 'copro-url' endPoint=STRING + 'process-id' processId=STRING + 'using' '{' querySet=STRING '}' ('on-condition' condition=expression)* ; + +episodeOfCoverage: + 'episodeOfCoverage' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'origin-id' originId=STRING + 'group-id' groupId=STRING + 'total-pages' totalPages=STRING + 'output-table' outputTable=STRING + 'grouping-item' eocGroupingItem=STRING + 'patient-eoc-count' eocIdCount=STRING + 'input-file-path' '{' filepath=STRING '}' + 'qr-grouping' '{' qrInput=STRING '}' + 'eoc-grouping' '{' value=STRING '}' + 'pnd-grouping' '{' pndValue=STRING '}' ('on-condition' condition=expression)* ; + +userRegistration: + 'userRegistration' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +authToken: + 'authToken' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +eocJsonGenerator: + 'eocJsonGenerator' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'document-id' documentId=STRING + 'eoc-id' eocId=STRING + 'origin-id' originId=STRING + 'group-id' groupId=STRING + 'auth-token' authtoken=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +zipContentList: + 'zipContentList' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'document-id' documentId=STRING + 'origin-id' originId=STRING + 'zip-file-path' zipFilePath=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + + +hwDetection: + 'hwDetection' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'outputDir' directoryPath=STRING + 'copro-url' endPoint=STRING + 'output-table' outputTable=STRING + 'modelPath' modelPath=STRING + 'using' '{' + querySet=STRING + '}' ('on-condition' condition=expression)* ; + + +intellimatch: + 'intellimatch' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'match-result' matchResult=STRING + 'using' '{' inputSet=STRING '}' ('on-condition' condition=expression)*; + +checkboxVqa: + 'checkbox-vqa' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'process-id' processID=STRING + 'cad-model-path' cadModelPath=STRING + 'cd-model-path' cdModelPath=STRING + 'cr-model-path' crModelPath=STRING + 'text-model' textModel=STRING + 'cr-width' crWidth=STRING + 'cr-height' crHeight=STRING + 'output-dir' outputDir=STRING + 'using' '{' querySet=STRING '}' ('on-condition' condition=expression)*; + +pixelClassifierUrgencyTriage: + 'pixel-classifier-urgency-triage' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'process-id' processID=STRING + 'binary-classifier-model-file-path' binaryClassifierModelFilePath=STRING + 'multi-classifier-model-file-path' multiClassifierModelFilePath=STRING + 'checkbox-classifier-model-file-path' checkboxClassifierModelFilePath=STRING + 'synonyms' synonyms=STRING + 'binary-classifier-labels' binaryClassifierLabels=STRING + 'multi-classifier-labels' multiClassifierLabels=STRING + 'checkbox-classifier-labels' checkboxClassifierLabels=STRING + 'output-dir' outputDir=STRING + 'binary-image-width' binaryImageWidth=STRING + 'binary-image-height' binaryImageHeight=STRING + 'multi-image-width' multiImageWidth=STRING + 'multi-image-height' multiImageHeight=STRING + 'checkbox-image-width' checkboxImageWidth=STRING + 'checkbox-image-height' checkboxImageHeight=STRING + 'using' '{' querySet=STRING '}' ('on-condition' condition=expression)* ; + +qrExtraction: + 'qr-extraction' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'copro-url' endPoint=STRING + 'process-id' processId=STRING + 'output-table' outputTable=STRING + 'using' '{' querySet=STRING '}' ('on-condition' condition=expression)* ; + +paperItemizer: + 'paperItemizer' 'as' name=STRING + 'outputDir' outputDir=STRING + 'copro-url' endpoint=STRING + 'result-table' resultTable=STRING + 'processId' processId=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}' ('on-condition' condition=expression)* ; + +nerAdapter: + 'nerAdapter' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'result-table' resultTable=STRING + 'using-docnut-result' + '{' resultSet=STRING '}' + ('on-condition' condition=expression)*; + + + +coproStart: + 'coproStart' 'as' name=STRING + 'for' moduleName=STRING + 'copro-server-url' coproServerUrl=STRING + 'export-command' exportCommand=STRING + 'process-id' processID=STRING + 'resource-conn' resourceConn=STRING + 'using' + '{' command=STRING '}' + ('on-condition' condition=expression)*; + +coproStop: + 'coproStop' 'as' name=STRING + 'for' moduleName=STRING + 'copro-server-url' coproServerUrl=STRING + 'process-id' processID=STRING + 'resource-conn' resourceConn=STRING + 'using' + '{' command=STRING '}' + ('on-condition' condition=expression)*; + + outboundDeliveryNotify: + 'outbound-delivery-notify' 'as' name=STRING + 'document-id' documentId=STRING + 'intics-zip-uri' inticsZipUri=STRING + 'checksum' zipChecksum=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' querySet=STRING '}' ('on-condition' condition=expression)*; + + masterdataComparison: + 'masterdataComparison' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'match-result' matchResult=STRING + 'using' '{' inputSet=STRING '}' ('on-condition' condition=expression)*; + +zipBatch: + 'zipBatch' 'as' name=STRING + 'group-id' groupId=STRING + 'output-dir' outputDir=STRING + 'on-resource-conn' resourceConn=STRING + 'using' '{' '}' ('on-condition' condition=expression)* ; + +drugMatch: + 'drugMatch' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'drug-compare' drugCompare=STRING + 'using' '{' inputSet=STRING '}' ('on-condition' condition=expression)* ; + +urgencyTriageModel: + 'urgencyTriageModel' 'as' name=STRING + 'output-dir' outputDir=STRING + 'copro-url' endPoint=STRING + 'output-table' outputTable=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' querySet=STRING '}' ('on-condition' condition=expression)*; + + +donutImpiraQa: + 'donut-impira-qa' 'as' name=STRING + 'in-output-dir' outputDir=STRING + 'on-resource-conn' resourceConn=STRING + 'save-response-as' responseAs=STRING + 'using' '{' questionSql=STRING '}' + ('on-condition' condition=expression)* + ('on-parallel-fielding' forkBatchSize=STRING)*; + +templateDetection: + 'templateDetection' 'as' name=STRING + 'copro-url' coproUrl=STRING + 'resource-conn' resourceConn=STRING + 'input-table' inputTable=STRING + 'process-id' processId=STRING + 'ouput-table' ouputTable=STRING + 'using' '{' + querySet=STRING + '}'('on-condition' condition=expression)*; + +trinityModel: + 'trinity-docqa' 'as' name=STRING + 'in-output-dir' outputDir=STRING + 'on-resource-conn' resourceConn=STRING + 'save-response-as' responseAs=STRING + 'api-endpoint' requestUrl=STRING + 'using' '{' questionSql=STRING '}' + ('on-condition' condition=expression)* + ('on-parallel-fielding' forkBatchSize=STRING)*; + + +fileBucketing: + 'file-bucketing' 'as' name=STRING + 'output-dir' outputDir=STRING + 'using' '{' inputDirectory=STRING '}' + ('on-condition' condition=expression)*; + +alchemyInfo: + 'alchemyInfo' 'as' name=STRING + 'tenantId' tenantId=STRING + 'auth-token' token=STRING + 'on-resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}'('on-condition' condition=expression)*; + +alchemyAuthToken: + 'alchemyAuthToken' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'using' '{' + '}' ('on-condition' condition=expression)* ; + +alchemyResponse: + 'alchemyResponse' 'as' name=STRING + 'tenantId' tenantId=STRING + 'auth-token' token=STRING + 'on-resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}'('on-condition' condition=expression)*; + +productResponse: + 'productResponse' 'as' name=STRING + 'tenantId' tenantId=STRING + 'auth-token' token=STRING + 'result-table' resultTable=STRING + 'on-resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}'('on-condition' condition=expression)*; + + +tableExtraction: + 'tableExtraction' 'as' name=STRING + 'outputDir' outputDir=STRING + 'result-table' resultTable=STRING + 'processId' processId=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}' ('on-condition' condition=expression)* ; + +mailServer: + 'mailServer' 'as' name=STRING + 'result-table' resultTable=STRING + 'processId' processId=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}' ('on-condition' condition=expression)* ; + +alchemyKvpResponse: + 'alchemyKvpResponse' 'as' name=STRING + 'result-table' resultTable=STRING + 'processId' processId=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}' ('on-condition' condition=expression)* ; + +alchemyTableResponse: + 'alchemyTableResponse' 'as' name=STRING + 'result-table' resultTable=STRING + 'processId' processId=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}' ('on-condition' condition=expression)* ; + +productOutboundZipfile: + 'productOutboundZipfile' 'as' name=STRING + 'result-table' resultTable=STRING + 'outputdirectory' outputDir=STRING + 'processId' processId=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}' ('on-condition' condition=expression)* ; + +fileMergerPdf: + 'file-merger-pdf' 'as' name=STRING + 'result-table' outputTable=STRING + 'copro-url' endPoint=STRING + 'resource-conn' resourceConn=STRING + 'output-directory' outputDir=STRING + 'using' '{' + querySet=STRING + '}' ('on-condition' condition=expression)* ; + + +zipFileCreationOutbound: + 'outbound-Zipfile' 'as' name=STRING + 'result-table' resultTable=STRING + 'outputdirectory' outputDir=STRING + 'processId' processId=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}' ('on-condition' condition=expression)* ; + +outboundKvpResponse: + 'outboundKvpResponse' 'as' name=STRING + 'result-table' resultTable=STRING + 'processId' processId=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}' ('on-condition' condition=expression)* ; + +outboundTableResponse: + 'outboundTableResponse' 'as' name=STRING + 'result-table' resultTable=STRING + 'processId' processId=STRING + 'resource-conn' resourceConn=STRING + 'using' '{' + querySet=STRING + '}' ('on-condition' condition=expression)* ; + +integratedNoiseModelApi: + 'noiseModel' 'as' name=STRING + 'on-resource-conn' resourceConn=STRING + 'copro-url' endPoint=STRING + 'process-id' processId=STRING + 'output-table' outputTable=STRING + 'using' '{' querySet=STRING '}' ('on-condition' condition=expression)* ; + + +//rules + +resource : STRING; +fragment DIGIT : [0-9]; +fragment NON_Z_DIGIT : [1-9]; +fragment TWODIGIT : DIGIT DIGIT; +fragment LETTER : [A-Za-z]; +fragment +StringCharacters + : StringCharacter+ + ; +fragment +StringCharacter + : ~["\\] + ; +NON_ZERO_DIGIT: NON_Z_DIGIT+; +STRING : '"' StringCharacters? '"'; +CRLF : ('\r'? '\n' | '\r')-> channel(HIDDEN) ; +Operator: + '<'|'>'|'=='|'contains' +; +WS : [ \t\r\n\u000C]+ -> channel(HIDDEN) + ; +COMMENT + : '/*' .*? '*/' -> channel(HIDDEN) + ; +LINE_COMMENT + : '//' ~[\r\n]* -> channel(HIDDEN) + ; diff --git a/src/main/java/in/handyman/raven/actor/AuditInsertActor.java b/src/main/java/in/handyman/raven/actor/AuditInsertActor.java new file mode 100644 index 00000000..9a54bc30 --- /dev/null +++ b/src/main/java/in/handyman/raven/actor/AuditInsertActor.java @@ -0,0 +1,26 @@ +package in.handyman.raven.actor; +// +//import akka.actor.AbstractActor; +//import in.handyman.raven.lambda.access.repo.HandymanRepo; +//import in.handyman.raven.lambda.access.repo.HandymanRepoImpl; +//import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +//import in.handyman.raven.lambda.doa.audit.ActionExecutionStatusAudit; +//import in.handyman.raven.lambda.doa.audit.PipelineExecutionAudit; +//import in.handyman.raven.lambda.doa.audit.PipelineExecutionStatusAudit; +//import in.handyman.raven.lambda.doa.audit.StatementExecutionAudit; +// +//public class AuditInsertActor extends AbstractActor { +// +// private final HandymanRepo REPO = new HandymanRepoImpl(); +// +// @Override +// public Receive createReceive() { +// return receiveBuilder() +// .match(PipelineExecutionAudit.class, REPO::insertPipeline) +// .match(ActionExecutionAudit.class, REPO::insertAction) +// .match(StatementExecutionAudit.class, REPO::insertStatement) +// .match(PipelineExecutionStatusAudit.class, REPO::save) +// .match(ActionExecutionStatusAudit.class, REPO::save) +// .build(); +// } +//} diff --git a/src/main/java/in/handyman/raven/actor/AuditUpdateActor.java b/src/main/java/in/handyman/raven/actor/AuditUpdateActor.java new file mode 100644 index 00000000..11f5d8d1 --- /dev/null +++ b/src/main/java/in/handyman/raven/actor/AuditUpdateActor.java @@ -0,0 +1,20 @@ +package in.handyman.raven.actor; +// +//import akka.actor.AbstractActor; +//import in.handyman.raven.lambda.access.repo.HandymanRepo; +//import in.handyman.raven.lambda.access.repo.HandymanRepoImpl; +//import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +//import in.handyman.raven.lambda.doa.audit.PipelineExecutionAudit; +// +//public class AuditUpdateActor extends AbstractActor { +// +// private final HandymanRepo REPO = new HandymanRepoImpl(); +// +// @Override +// public Receive createReceive() { +// return receiveBuilder() +// .match(PipelineExecutionAudit.class, REPO::update) +// .match(ActionExecutionAudit.class, REPO::update) +// .build(); +// } +//} diff --git a/handyman.raven/src/main/java/in/handyman/raven/actor/HandymanActorSystemAccess.java b/src/main/java/in/handyman/raven/actor/HandymanActorSystemAccess.java similarity index 95% rename from handyman.raven/src/main/java/in/handyman/raven/actor/HandymanActorSystemAccess.java rename to src/main/java/in/handyman/raven/actor/HandymanActorSystemAccess.java index d19ac5e4..85bcfadd 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/actor/HandymanActorSystemAccess.java +++ b/src/main/java/in/handyman/raven/actor/HandymanActorSystemAccess.java @@ -1,7 +1,7 @@ package in.handyman.raven.actor; import in.handyman.raven.lambda.access.repo.HandymanRepo; -import in.handyman.raven.lambda.access.repo.HandymanRepoR2Impl; +import in.handyman.raven.lambda.access.repo.HandymanRepoImpl; import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; import in.handyman.raven.lambda.doa.audit.ActionExecutionStatusAudit; import in.handyman.raven.lambda.doa.audit.PipelineExecutionAudit; @@ -10,7 +10,7 @@ public class HandymanActorSystemAccess { - private static final HandymanRepo HANDYMAN_REPO = new HandymanRepoR2Impl(); + private static final HandymanRepo HANDYMAN_REPO = new HandymanRepoImpl(); public static void insert(final PipelineExecutionAudit pipelineExecutionAudit) { diff --git a/handyman.raven/src/main/java/in/handyman/raven/exception/AbortException.java b/src/main/java/in/handyman/raven/exception/AbortException.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/exception/AbortException.java rename to src/main/java/in/handyman/raven/exception/AbortException.java diff --git a/src/main/java/in/handyman/raven/exception/HandymanException.java b/src/main/java/in/handyman/raven/exception/HandymanException.java new file mode 100644 index 00000000..787140a5 --- /dev/null +++ b/src/main/java/in/handyman/raven/exception/HandymanException.java @@ -0,0 +1,46 @@ +package in.handyman.raven.exception; + +import in.handyman.raven.lambda.access.repo.HandymanRepoImpl; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import lombok.extern.slf4j.Slf4j; + +import java.sql.SQLSyntaxErrorException; + +@Slf4j +public class HandymanException extends RuntimeException { + private static final HandymanRepoImpl handymanRepo = new HandymanRepoImpl(); + + + public HandymanException(Throwable t) + { + super(t); + } + public HandymanException(final String message) { + super(message); + } + + public HandymanException(final String message, final Exception t) { + super(message, t); + } + + public HandymanException(final String message, final Exception exception, ActionExecutionAudit actionExecutionAudit) { + super(message, exception); + this.handymanRepo.insertExceptionLog(actionExecutionAudit, exception, message); + } + + public HandymanException(final String message, final Throwable exception, ActionExecutionAudit actionExecutionAudit) { + super(message, exception); + this.handymanRepo.insertExceptionLog(actionExecutionAudit, exception, message); + } + + public HandymanException(Exception e) { + super(e); + } + + public HandymanException(String s, Exception ex, String name) { + } + + public static void insertException(final String message, final HandymanException exception, final ActionExecutionAudit actionExecutionAudit) { + handymanRepo.insertExceptionLog(actionExecutionAudit, exception, message); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/ConfigAccess.java b/src/main/java/in/handyman/raven/lambda/access/ConfigAccess.java similarity index 88% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/access/ConfigAccess.java rename to src/main/java/in/handyman/raven/lambda/access/ConfigAccess.java index 89f4dd8c..3683ce6a 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/ConfigAccess.java +++ b/src/main/java/in/handyman/raven/lambda/access/ConfigAccess.java @@ -1,7 +1,7 @@ package in.handyman.raven.lambda.access; import in.handyman.raven.lambda.access.repo.HandymanRepo; -import in.handyman.raven.lambda.access.repo.HandymanRepoR2Impl; +import in.handyman.raven.lambda.access.repo.HandymanRepoImpl; import in.handyman.raven.lambda.doa.config.SpwResourceConfig; import lombok.extern.slf4j.Slf4j; @@ -11,7 +11,7 @@ @Slf4j public class ConfigAccess { - private static final HandymanRepo REPO = new HandymanRepoR2Impl(); + private static final HandymanRepo REPO = new HandymanRepoImpl(); public static SpwResourceConfig getResourceConfig(final String name) { return REPO.getResourceConfig(name); diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/ResourceAccess.java b/src/main/java/in/handyman/raven/lambda/access/ResourceAccess.java similarity index 91% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/access/ResourceAccess.java rename to src/main/java/in/handyman/raven/lambda/access/ResourceAccess.java index c5c09377..a76857fb 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/ResourceAccess.java +++ b/src/main/java/in/handyman/raven/lambda/access/ResourceAccess.java @@ -21,7 +21,7 @@ public static HikariDataSource rdbmsConn(final String resourceName) { return getHikariDataSource(resource); } - public static HikariDataSource getHikariDataSource(final SpwResourceConfig resource) { + private static HikariDataSource getHikariDataSource(final SpwResourceConfig resource) { if (Objects.isNull(resource)) { log.warn("not found in Resource connections"); throw new HandymanException("Resource not found"); @@ -34,7 +34,7 @@ public static HikariDataSource getHikariDataSource(final SpwResourceConfig resou } } - protected static HikariDataSource createHP(final String url, final String driver, final String user, final String password) + private static HikariDataSource createHP(final String url, final String driver, final String user, final String password) throws ClassNotFoundException { Class.forName(driver); final HikariConfig config = new HikariConfig(); diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/AbstractAccess.java b/src/main/java/in/handyman/raven/lambda/access/repo/AbstractAccess.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/AbstractAccess.java rename to src/main/java/in/handyman/raven/lambda/access/repo/AbstractAccess.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/ActionExecutionAuditRepo.java b/src/main/java/in/handyman/raven/lambda/access/repo/ActionExecutionAuditRepo.java similarity index 50% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/ActionExecutionAuditRepo.java rename to src/main/java/in/handyman/raven/lambda/access/repo/ActionExecutionAuditRepo.java index d77e1782..f5394e66 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/ActionExecutionAuditRepo.java +++ b/src/main/java/in/handyman/raven/lambda/access/repo/ActionExecutionAuditRepo.java @@ -1,10 +1,12 @@ package in.handyman.raven.lambda.access.repo; +import in.handyman.raven.lambda.doa.DoaConstant; import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; import org.jdbi.v3.sqlobject.customizer.Bind; import org.jdbi.v3.sqlobject.customizer.BindBean; +import org.jdbi.v3.sqlobject.statement.GetGeneratedKeys; import org.jdbi.v3.sqlobject.statement.SqlQuery; import org.jdbi.v3.sqlobject.statement.SqlUpdate; @@ -12,12 +14,14 @@ public interface ActionExecutionAuditRepo { - String COLUMNS = " action_id, created_by, created_date, last_modified_by, last_modified_date, context_node, execution_status_id, lambda_name, parent_action_id, parent_action_name, parent_pipeline_id, parent_pipeline_name, pipeline_name, action_name, execution_group_id, input_node, log, pipeline_id, root_pipeline_id "; + String COLUMNS = " created_by, created_date, last_modified_by, last_modified_date, context_node, execution_status_id, lambda_name, parent_action_id, parent_action_name, parent_pipeline_id, parent_pipeline_name, pipeline_name, action_name, execution_group_id, input_node, log, pipeline_id, root_pipeline_id "; + String DOT = "."; - @SqlUpdate("insert into " + ActionExecutionAudit.SCHEMA_NAME + "." + ActionExecutionAudit.TABLE_NAME + " ( " + COLUMNS + " ) VALUES(:actionId, :createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :contextNode, :executionStatusId, :lambdaName, :parentActionId, :parentActionName, :parentPipelineId, :parentPipelineName, :pipelineName, :actionName, :executionGroupId, :inputNode, :log, :pipelineId ,:rootPipelineId); ") - void insert(@BindBean final ActionExecutionAudit actionExecutionAudit); + @SqlUpdate("insert into " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.AEA_TABLE_NAME + " ( " + COLUMNS + " ) VALUES( :createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :contextNode, :executionStatusId, :lambdaName, :parentActionId, :parentActionName, :parentPipelineId, :parentPipelineName, :pipelineName, :actionName, :executionGroupId, :inputNode, :log, :pipelineId ,:rootPipelineId); ") + @GetGeneratedKeys + Long insert(@BindBean final ActionExecutionAudit actionExecutionAudit); - @SqlUpdate("update " + ActionExecutionAudit.SCHEMA_NAME + "." + ActionExecutionAudit.TABLE_NAME + " SET created_by = :createdBy, created_date = :createdDate, last_modified_by = :lastModifiedBy," + + @SqlUpdate("update " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.AEA_TABLE_NAME + " SET created_by = :createdBy, created_date = :createdDate, last_modified_by = :lastModifiedBy," + " last_modified_date = :lastModifiedDate, context_node = :contextNode, execution_status_id = :executionStatusId, lambda_name = :lambdaName, " + "parent_action_id = :parentActionId, parent_action_name = :parentActionName, parent_pipeline_id = :parentPipelineId, " + "parent_pipeline_name = :parentPipelineName, pipeline_name = :pipelineName, action_name = :actionName, execution_group_id = :executionGroupId," + @@ -25,15 +29,15 @@ public interface ActionExecutionAuditRepo { void update(@BindBean final ActionExecutionAudit actionExecutionAudit); - @SqlQuery("SELECT " + COLUMNS + " FROM " + ActionExecutionAudit.SCHEMA_NAME + "." + ActionExecutionAudit.TABLE_NAME + " ; ") + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.AEA_TABLE_NAME + " ; ") @RegisterBeanMapper(value = ActionExecutionAudit.class) List findAllActions(); - @SqlQuery("SELECT " + COLUMNS + " FROM " + ActionExecutionAudit.SCHEMA_NAME + "." + ActionExecutionAudit.TABLE_NAME + " where root_pipeline_id= :rootPipelineId ; ") + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.AEA_TABLE_NAME + " where root_pipeline_id= :rootPipelineId ; ") @RegisterBeanMapper(value = ActionExecutionAudit.class) List findAllActionsByRootPipelineId(@Bind("rootPipelineId") final Long rootPipelineId); - @SqlQuery("SELECT " + COLUMNS + " FROM " + ActionExecutionAudit.SCHEMA_NAME + "." + ActionExecutionAudit.TABLE_NAME + " where pipeline_id= :pipelineId ; ") + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.AEA_TABLE_NAME + " where pipeline_id= :pipelineId ; ") @RegisterBeanMapper(value = ActionExecutionAudit.class) List findAllActionsByPipelineId(@Bind("pipelineId") final Long pipelineId); diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepo.java b/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepo.java similarity index 97% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepo.java rename to src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepo.java index 4936f9fd..9f11786c 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepo.java +++ b/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepo.java @@ -105,4 +105,6 @@ public interface HandymanRepo { List findAllPipelines(); List findAllByPipelineName(final String pipelineName); + + List findAllProcessName(final String processName); } diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2Impl.java b/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoImpl.java similarity index 62% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2Impl.java rename to src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoImpl.java index e07668be..0f6699d7 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2Impl.java +++ b/src/main/java/in/handyman/raven/lambda/access/repo/HandymanRepoImpl.java @@ -1,8 +1,7 @@ package in.handyman.raven.lambda.access.repo; -import com.typesafe.config.Config; -import com.typesafe.config.ConfigFactory; import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.DoaConstant; import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; import in.handyman.raven.lambda.doa.audit.ActionExecutionStatusAudit; import in.handyman.raven.lambda.doa.audit.PipelineExecutionAudit; @@ -12,45 +11,42 @@ import in.handyman.raven.lambda.doa.config.SpwInstanceConfig; import in.handyman.raven.lambda.doa.config.SpwProcessConfig; import in.handyman.raven.lambda.doa.config.SpwResourceConfig; +import in.handyman.raven.util.ExceptionUtil; +import in.handyman.raven.util.PropertyHandler; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jdbi.v3.core.Jdbi; import org.jdbi.v3.sqlobject.SqlObjectPlugin; -import java.io.File; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @Slf4j -public class HandymanRepoR2Impl extends AbstractAccess implements HandymanRepo { +public class HandymanRepoImpl extends AbstractAccess implements HandymanRepo { - protected static final String CONFIG_URL = "config.url"; - private static final String CONFIG_PASSWORD = "config.password"; - private static final String CONFIG_USER = "config.user"; - private static final Config CONFIG; - - private static final Jdbi jdbi; + public static final String DOT = "."; + protected static final String CONFIG_URL = "raven.db.url"; + private static final String CONFIG_PASSWORD = "raven.db.password"; + private static final String CONFIG_USER = "raven.db.user"; + private static final Jdbi JDBI; static { - System.setProperty("handyman.config.location","/home/sins/workspace/handyman/handyman.server/config/config.props"); - final String getenv = Optional.ofNullable(System.getProperty("handyman.config.location")).orElse("config.props"); - final File file = new File(getenv); - - if (!file.exists()) { - throw new HandymanException("Config file not found"); - } - CONFIG = ConfigFactory.parseFile(file); - log.info("Initializing the config store from config file {}", CONFIG.origin().url()); - final String username = CONFIG.getString(CONFIG_USER); - final String password = CONFIG.getString(CONFIG_PASSWORD); - final String url = CONFIG.getString(CONFIG_URL); - jdbi = Jdbi.create(url, username, password); - jdbi.installPlugin(new SqlObjectPlugin()); + final String username = PropertyHandler.get(CONFIG_USER); + final String password = PropertyHandler.get(CONFIG_PASSWORD); + final String url = PropertyHandler.get(CONFIG_URL); + log.info("Connected {} {} {}", url, username, password); + JDBI = Jdbi.create(url, username, password); + JDBI.installPlugin(new SqlObjectPlugin()); } @@ -80,7 +76,7 @@ public Map getAllConfig(final String pipelineName) { @Override public List findAllByInstance(final String instance) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(SpwInstanceConfigRepo.class); return repo.findAllByInstance(instance); }); @@ -88,7 +84,7 @@ public List findAllByInstance(final String instance) { @Override public List findAllByProcess(final String process) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(SpwProcessConfigRepo.class); return repo.findAllByProcess(process); }); @@ -105,7 +101,7 @@ public Map getCommonConfig() { @Override public List findAllCommonConfigs() { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(SpwCommonConfigRepo.class); return repo.findAll(); }); @@ -118,7 +114,7 @@ public SpwResourceConfig getResourceConfig(final String name) { @Override public Optional findOneResourceConfig(final String configName) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(SpwResourceConfigRepo.class); return repo.findOne(configName); }); @@ -131,20 +127,25 @@ public Set getPackageAction() { @Override public void insertPipeline(final PipelineExecutionAudit audit) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { audit.setLastModifiedDate(LocalDateTime.now()); var repo = handle.attach(PipelineExecutionAuditRepo.class); - repo.insert(audit); + Long pipelineId = repo.insert(audit); + if (Objects.equals(audit.getPipelineId(), audit.getRootPipelineId())) { + audit.setRootPipelineId(pipelineId); + } + audit.setPipelineId(pipelineId); }); } @Override public void insertAction(final ActionExecutionAudit audit) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { audit.setLastModifiedDate(LocalDateTime.now()); var repo = handle.attach(ActionExecutionAuditRepo.class); - repo.insert(audit); + Long actionId = repo.insert(audit); + audit.setActionId(actionId); }); } @@ -153,7 +154,7 @@ public void insertAction(final ActionExecutionAudit audit) { @Override public void update(final ActionExecutionAudit audit) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { audit.setLastModifiedDate(LocalDateTime.now()); var repo = handle.attach(ActionExecutionAuditRepo.class); repo.update(audit); @@ -163,7 +164,7 @@ public void update(final ActionExecutionAudit audit) { @Override public List findActions(final Long pipelineId) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(ActionExecutionAuditRepo.class); return repo.findAllActionsByPipelineId(pipelineId); }); @@ -171,7 +172,7 @@ public List findActions(final Long pipelineId) { @Override public List findAllActionsByRootPipelineId(final Long rootPipelineId) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(ActionExecutionAuditRepo.class); return repo.findAllActionsByRootPipelineId(rootPipelineId); }); @@ -180,27 +181,27 @@ public List findAllActionsByRootPipelineId(final Long root @Override public void insertStatement(final StatementExecutionAudit audit) { audit.setLastModifiedDate(LocalDateTime.now()); - jdbi.useHandle(handle -> handle.createUpdate("INSERT INTO " + StatementExecutionAudit.SCHEMA_NAME + "." + StatementExecutionAudit.TABLE_NAME + " (statement_id, created_by, created_date, last_modified_by, last_modified_date, action_id, rows_processed, rows_read, rows_written, statement_content, time_taken,root_pipeline_id) VALUES(:statementId, :createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :actionId, :rowsProcessed, :rowsRead, :rowsWritten, :statementContent, :timeTaken,:rootPipelineId);") + JDBI.useHandle(handle -> handle.createUpdate("INSERT INTO " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.SEA_TABLE_NAME + " ( created_by, created_date, last_modified_by, last_modified_date, action_id, rows_processed, rows_read, rows_written, statement_content, time_taken,root_pipeline_id) VALUES( :createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :actionId, :rowsProcessed, :rowsRead, :rowsWritten, :statementContent, :timeTaken,:rootPipelineId);") .bindBean(audit).execute()); } @Override public void save(final PipelineExecutionStatusAudit audit) { audit.setLastModifiedDate(LocalDateTime.now()); - jdbi.useHandle(handle -> handle.createUpdate("INSERT INTO " + PipelineExecutionStatusAudit.SCHEMA_NAME + "." + PipelineExecutionStatusAudit.TABLE_NAME + " (id, created_by, created_date, last_modified_by, last_modified_date, execution_status_id, pipeline_id,root_pipeline_id) VALUES(:id, :createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :executionStatusId, :pipelineId,:rootPipelineId);") + JDBI.useHandle(handle -> handle.createUpdate("INSERT INTO " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.PESA_TABLE_NAME + " ( created_by, created_date, last_modified_by, last_modified_date, execution_status_id, pipeline_id,root_pipeline_id) VALUES( :createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :executionStatusId, :pipelineId,:rootPipelineId);") .bindBean(audit).execute()); } @Override public void save(final ActionExecutionStatusAudit audit) { audit.setLastModifiedDate(LocalDateTime.now()); - jdbi.useHandle(handle -> handle.createUpdate("INSERT INTO " + ActionExecutionStatusAudit.SCHEMA_NAME + "." + ActionExecutionStatusAudit.TABLE_NAME + " (id, created_by, created_date, last_modified_by, last_modified_date, action_id, execution_status_id, pipeline_id,root_pipeline_id) VALUES(:id, :createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :actionId, :executionStatusId, :pipelineId,:rootPipelineId);") + JDBI.useHandle(handle -> handle.createUpdate("INSERT INTO " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.AESA_TABLE_NAME + " ( created_by, created_date, last_modified_by, last_modified_date, action_id, execution_status_id, pipeline_id,root_pipeline_id) VALUES( :createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :actionId, :executionStatusId, :pipelineId,:rootPipelineId);") .bindBean(audit).execute()); } @Override public void update(final PipelineExecutionAudit audit) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { audit.setLastModifiedDate(LocalDateTime.now()); var repo = handle.attach(PipelineExecutionAuditRepo.class); repo.update(audit); @@ -210,7 +211,7 @@ public void update(final PipelineExecutionAudit audit) { @Override public Optional findPipeline(final Long pipelineId) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(PipelineExecutionAuditRepo.class); return repo.findOneByPipelineId(pipelineId); }); @@ -219,7 +220,7 @@ public Optional findPipeline(final Long pipelineId) { @Override public List findAllPipelinesByRootPipelineId(final Long rootPipelineId) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(PipelineExecutionAuditRepo.class); return repo.findAllPipelinesByRootPipelineId(rootPipelineId); }); @@ -228,7 +229,7 @@ public List findAllPipelinesByRootPipelineId(final Long @Override public List findAllPipelinesByParentActionId(final Long parentActionId) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(PipelineExecutionAuditRepo.class); return repo.findAllPipelinesByParentActionId(parentActionId); }); @@ -236,7 +237,7 @@ public List findAllPipelinesByParentActionId(final Long @Override public List findAllPipelines() { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(PipelineExecutionAuditRepo.class); return repo.findAllPipelines(); }); @@ -244,17 +245,25 @@ public List findAllPipelines() { @Override public List findAllByPipelineName(final String pipelineName) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(PipelineExecutionAuditRepo.class); return repo.findAllByPipelineName(pipelineName); }); } + @Override + public List findAllProcessName(final String processName) { + return JDBI.withHandle(handle -> { + var repo = handle.attach(PipelineExecutionAuditRepo.class); + return repo.findAllByProcessName(processName); + }); + } + // Spw Instance @Override public void insert(final SpwInstanceConfig spwInstanceConfig) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { var repo = handle.attach(SpwInstanceConfigRepo.class); final Long nextVersion = repo.getNextVersion(spwInstanceConfig); spwInstanceConfig.setVersion(nextVersion.intValue()); @@ -264,7 +273,7 @@ public void insert(final SpwInstanceConfig spwInstanceConfig) { @Override public void update(final SpwInstanceConfig spwInstanceConfig) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { var repo = handle.attach(SpwInstanceConfigRepo.class); repo.update(spwInstanceConfig); }); @@ -272,7 +281,7 @@ public void update(final SpwInstanceConfig spwInstanceConfig) { @Override public List findAllInstances() { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(SpwInstanceConfigRepo.class); return repo.findAll(); }); @@ -280,7 +289,7 @@ public List findAllInstances() { @Override public List findAllByInstanceVariable(final String variable) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(SpwInstanceConfigRepo.class); return repo.findAllByInstanceVariable(variable); }); @@ -288,7 +297,7 @@ public List findAllByInstanceVariable(final String variable) @Override public Optional findOneInstance(final String instance, final String variable) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(SpwInstanceConfigRepo.class); return repo.findOne(instance, variable); }); @@ -296,7 +305,7 @@ public Optional findOneInstance(final String instance, final @Override public void insert(final SpwProcessConfig spwProcessConfig) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { var repo = handle.attach(SpwProcessConfigRepo.class); final Long nextVersion = repo.getNextVersion(spwProcessConfig); spwProcessConfig.setVersion(nextVersion.intValue()); @@ -306,7 +315,7 @@ public void insert(final SpwProcessConfig spwProcessConfig) { @Override public void update(final SpwProcessConfig spwProcessConfig) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { var repo = handle.attach(SpwProcessConfigRepo.class); repo.update(spwProcessConfig); }); @@ -314,7 +323,7 @@ public void update(final SpwProcessConfig spwProcessConfig) { @Override public List findAllProcesses() { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(SpwProcessConfigRepo.class); return repo.findAll(); }); @@ -322,7 +331,7 @@ public List findAllProcesses() { @Override public Optional findOneProcess(final String process, final String variable) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(SpwProcessConfigRepo.class); return repo.findOne(process, variable); }); @@ -330,7 +339,7 @@ public Optional findOneProcess(final String process, final Str @Override public void insert(final SpwCommonConfig spwCommonConfig) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { var repo = handle.attach(SpwCommonConfigRepo.class); final Long nextVersion = repo.getNextVersion(spwCommonConfig); spwCommonConfig.setVersion(nextVersion.intValue()); @@ -340,7 +349,7 @@ public void insert(final SpwCommonConfig spwCommonConfig) { @Override public void update(final SpwCommonConfig spwCommonConfig) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { var repo = handle.attach(SpwCommonConfigRepo.class); repo.update(spwCommonConfig); }); @@ -348,7 +357,7 @@ public void update(final SpwCommonConfig spwCommonConfig) { @Override public Optional findOneCommonConfig(final String variable) { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(SpwCommonConfigRepo.class); return repo.findOne(variable); }); @@ -356,7 +365,7 @@ public Optional findOneCommonConfig(final String variable) { @Override public void insert(final SpwResourceConfig spwResourceConfig) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { var repo = handle.attach(SpwResourceConfigRepo.class); final Long nextVersion = repo.getNextVersion(spwResourceConfig); spwResourceConfig.setVersion(nextVersion.intValue()); @@ -366,7 +375,7 @@ public void insert(final SpwResourceConfig spwResourceConfig) { @Override public void update(final SpwResourceConfig spwResourceConfig) { - jdbi.useHandle(handle -> { + JDBI.useHandle(handle -> { var repo = handle.attach(SpwResourceConfigRepo.class); repo.update(spwResourceConfig); }); @@ -374,9 +383,49 @@ public void update(final SpwResourceConfig spwResourceConfig) { @Override public List findAllResourceConfigs() { - return jdbi.withHandle(handle -> { + return JDBI.withHandle(handle -> { var repo = handle.attach(SpwResourceConfigRepo.class); return repo.findAll(); }); } + public void insertExceptionLog(ActionExecutionAudit actionExecutionAudit, Throwable exception, String message) { + HandymanExceptionAuditDetails exceptionAuditDetails = HandymanExceptionAuditDetails.builder() + // .groupId(Integer.parseInt(actionExecutionAudit.getContext().get("gen_group_id.group_id"))) + .rootPipelineId(actionExecutionAudit.getRootPipelineId()) + .rootPipelineName(actionExecutionAudit.getParentPipelineName()) + .pipelineName(actionExecutionAudit.getPipelineName()) + .actionId(actionExecutionAudit.getActionId()) + .actionName(actionExecutionAudit.getActionName()) + .exceptionInfo(ExceptionUtil.toString(exception)) + .message(message) + .processId(actionExecutionAudit.getProcessId()) + .createdBy(actionExecutionAudit.getCreatedBy()) + .createdDate(actionExecutionAudit.getCreatedDate()) + .lastModifiedBy(actionExecutionAudit.getLastModifiedBy()) + .lastModifiedDate(actionExecutionAudit.getLastModifiedDate()).build(); + JDBI.useHandle(handle -> handle.createUpdate("INSERT INTO audit.handyman_exception_audit (group_id, root_pipeline_id, root_pipeline_name, pipeline_name, action_id, action_name, exception_Info, message, process_id, created_by, created_date, last_modified_by, last_modified_date) " + + "VALUES(:groupId, :rootPipelineId, :rootPipelineName, :pipelineName, :actionId, :actionName, :exceptionInfo, :message, :processId, :createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate);") + .bindBean(exceptionAuditDetails).execute()); + log.info("inserting exception audit details has been completed"); + + } + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class HandymanExceptionAuditDetails { + private Integer groupId; + private Long rootPipelineId; + private String rootPipelineName; + private String pipelineName; + private Long actionId; + private String actionName; + private String exceptionInfo; + private String message; + private Long processId; + private Long createdBy; + private LocalDateTime createdDate; + private Long lastModifiedBy; + private LocalDateTime lastModifiedDate; + } } diff --git a/src/main/java/in/handyman/raven/lambda/access/repo/PipelineExecutionAuditRepo.java b/src/main/java/in/handyman/raven/lambda/access/repo/PipelineExecutionAuditRepo.java new file mode 100644 index 00000000..25ae3d1b --- /dev/null +++ b/src/main/java/in/handyman/raven/lambda/access/repo/PipelineExecutionAuditRepo.java @@ -0,0 +1,54 @@ +package in.handyman.raven.lambda.access.repo; + + +import in.handyman.raven.lambda.doa.DoaConstant; +import in.handyman.raven.lambda.doa.audit.PipelineExecutionAudit; +import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; +import org.jdbi.v3.sqlobject.customizer.Bind; +import org.jdbi.v3.sqlobject.customizer.BindBean; +import org.jdbi.v3.sqlobject.statement.GetGeneratedKeys; +import org.jdbi.v3.sqlobject.statement.SqlQuery; +import org.jdbi.v3.sqlobject.statement.SqlUpdate; + +import java.util.List; +import java.util.Optional; + +public interface PipelineExecutionAuditRepo { + + String COLUMNS = " created_by, created_date, last_modified_by, last_modified_date, context_node, execution_status_id, lambda_name, parent_action_id, parent_action_name, parent_pipeline_id, parent_pipeline_name, pipeline_name, file_content, host_name, mode_of_execution, pipeline_load_type, relative_path, request_body, thread_name, process_name, root_pipeline_id, process_id "; + String DOT = "."; + + @SqlUpdate("insert into " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.PEA_TABLE_NAME + " ( " + COLUMNS + " ) VALUES( :createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :contextNode,:executionStatusId,:lambdaName,:parentActionId, :parentActionName, :parentPipelineId, :parentPipelineName, :pipelineName, :fileContent,:hostName,:modeOfExecution,:pipelineLoadType,:relativePath,:requestBody,:threadName,:processName,:rootPipelineId,:processId ); ") + @GetGeneratedKeys + Long insert(@BindBean final PipelineExecutionAudit actionExecutionAudit); + + @SqlUpdate("update " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.PEA_TABLE_NAME + " SET created_by = :createdBy, created_date = :createdDate, last_modified_by = :lastModifiedBy, last_modified_date = :lastModifiedDate, context_node = :contextNode, execution_status_id = :executionStatusId, lambda_name = :lambdaName, parent_action_id = :parentActionId, parent_action_name = :parentActionName, parent_pipeline_id = :parentPipelineId, parent_pipeline_name = :parentPipelineName, pipeline_name = :pipelineName, file_content = :fileContent, host_name = :hostName, mode_of_execution = :modeOfExecution, pipeline_load_type = :pipelineLoadType , relative_path = :relativePath, request_body = :requestBody, process_name = :processName , root_pipeline_id = :rootPipelineId , process_id = :processId WHERE pipeline_id = :pipelineId ") + void update(@BindBean final PipelineExecutionAudit actionExecutionAudit); + + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.PEA_TABLE_NAME + " ; ") + @RegisterBeanMapper(value = PipelineExecutionAudit.class) + List findAllPipelines(); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.PEA_TABLE_NAME + " where root_pipeline_id= :rootPipelineId ; ") + @RegisterBeanMapper(value = PipelineExecutionAudit.class) + List findAllPipelinesByRootPipelineId(@Bind("rootPipelineId") final Long rootPipelineId); + + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.PEA_TABLE_NAME + " where pipeline_name= :pipelineName ; ") + @RegisterBeanMapper(value = PipelineExecutionAudit.class) + List findAllByPipelineName(@Bind("pipelineName") final String pipelineName); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.PEA_TABLE_NAME + " where parent_action_id= :parentActionId ; ") + @RegisterBeanMapper(value = PipelineExecutionAudit.class) + List findAllPipelinesByParentActionId(@Bind("parentActionId") final Long parentActionId); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.PEA_TABLE_NAME + " where pipeline_id= :pipelineId ; ") + @RegisterBeanMapper(value = PipelineExecutionAudit.class) + Optional findOneByPipelineId(@Bind("pipelineId") final Long pipelineId); + + @SqlQuery("SELECT DISTINCT" + COLUMNS + " FROM " + DoaConstant.AUDIT_SCHEMA_NAME + DOT + DoaConstant.PEA_TABLE_NAME + " where process_name= :process_name ;") + @RegisterBeanMapper(value = PipelineExecutionAudit.class) + List findAllByProcessName(@Bind("process_name") final String process_name); + +} diff --git a/src/main/java/in/handyman/raven/lambda/access/repo/SpwCommonConfigRepo.java b/src/main/java/in/handyman/raven/lambda/access/repo/SpwCommonConfigRepo.java new file mode 100644 index 00000000..1f212bdc --- /dev/null +++ b/src/main/java/in/handyman/raven/lambda/access/repo/SpwCommonConfigRepo.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lambda.access.repo; + +import in.handyman.raven.lambda.doa.DoaConstant; +import in.handyman.raven.lambda.doa.config.SpwCommonConfig; +import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; +import org.jdbi.v3.sqlobject.customizer.Bind; +import org.jdbi.v3.sqlobject.customizer.BindBean; +import org.jdbi.v3.sqlobject.statement.SqlQuery; +import org.jdbi.v3.sqlobject.statement.SqlUpdate; + +import java.util.List; +import java.util.Optional; + +public interface SpwCommonConfigRepo { + + String COLUMNS = " id, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version "; + + @SqlUpdate("insert into " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SCC_TABLE_NAME + " (id, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version) " + + "VALUES (:id, :variable, :value,:active,:createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :version)") + void insert(@BindBean final SpwCommonConfig spwCommonConfig); + + @SqlUpdate("UPDATE " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SCC_TABLE_NAME + " SET active=:active, created_by= :createdBy , created_date= :createdDate," + + " last_modified_by= :lastModifiedBy, last_modified_date= :lastModifiedDate , variable= :variable , value= :value WHERE id = :id ") + void update(@BindBean final SpwCommonConfig spwCommonConfig); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SCC_TABLE_NAME + " where active=true ; ") + @RegisterBeanMapper(value = SpwCommonConfig.class) + List findAll(); + + @SqlQuery("SELECT count(1)+1 FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SCC_TABLE_NAME + " where variable= :variable ; ") + @RegisterBeanMapper(value = SpwCommonConfig.class) + Long getNextVersion(@BindBean final SpwCommonConfig spwCommonConfig); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SCC_TABLE_NAME + " where variable= :variable and active=true order by version desc limit 1; ") + @RegisterBeanMapper(value = SpwCommonConfig.class) + Optional findOne(@Bind("variable") final String variable); + + @SqlQuery("SELECT max(id)+1 FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SCC_TABLE_NAME + "; ") + @RegisterBeanMapper(value = SpwCommonConfig.class) + Long getId(); + +} diff --git a/src/main/java/in/handyman/raven/lambda/access/repo/SpwInstanceConfigRepo.java b/src/main/java/in/handyman/raven/lambda/access/repo/SpwInstanceConfigRepo.java new file mode 100644 index 00000000..f5259363 --- /dev/null +++ b/src/main/java/in/handyman/raven/lambda/access/repo/SpwInstanceConfigRepo.java @@ -0,0 +1,57 @@ +package in.handyman.raven.lambda.access.repo; + +import in.handyman.raven.lambda.doa.DoaConstant; +import in.handyman.raven.lambda.doa.config.SpwInstanceConfig; +import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; +import org.jdbi.v3.sqlobject.customizer.Bind; +import org.jdbi.v3.sqlobject.customizer.BindBean; +import org.jdbi.v3.sqlobject.statement.SqlQuery; +import org.jdbi.v3.sqlobject.statement.SqlUpdate; + +import java.util.List; +import java.util.Optional; + +public interface SpwInstanceConfigRepo { + + String COLUMNS = " id, instance, process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version "; + + @SqlUpdate("insert into " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SIC_TABLE_NAME + " (id, instance,process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version) " + + "VALUES (:id, :instance, :process, :variable, :value,:active,:createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :version)") + void insert(@BindBean final SpwInstanceConfig spwInstanceConfig); + + @SqlUpdate("UPDATE " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SIC_TABLE_NAME + " SET active=:active, created_by= :createdBy , created_date= :createdDate," + + " last_modified_by= :lastModifiedBy, last_modified_date= :lastModifiedDate , instance= :instance, process= :process , variable= :variable , value= :value WHERE id = :id ") + void update(@BindBean final SpwInstanceConfig spwInstanceConfig); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SIC_TABLE_NAME + " where active=true ; ") + @RegisterBeanMapper(value = SpwInstanceConfig.class) + List findAll(); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SIC_TABLE_NAME + " where instance= :instance and active=true ; ") + @RegisterBeanMapper(value = SpwInstanceConfig.class) + List findAllByInstance(@Bind("instance") final String instance); + + @SqlQuery("SELECT count(1)+1 FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SIC_TABLE_NAME + " where instance= :instance and variable= :variable ; ") + @RegisterBeanMapper(value = SpwInstanceConfig.class) + Long getNextVersion(@BindBean final SpwInstanceConfig spwInstanceConfig); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SIC_TABLE_NAME + " where instance= :instance and variable= :variable and active=true order by version desc limit 1; ") + @RegisterBeanMapper(value = SpwInstanceConfig.class) + Optional findOne(@Bind("instance") final String instance, @Bind("variable") final String variable); + + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SIC_TABLE_NAME + " where variable= :variable and active=true ; ") + @RegisterBeanMapper(value = SpwInstanceConfig.class) + List findAllByInstanceVariable(@Bind("variable") final String variable); + + @SqlQuery("select count(1) from " + DoaConstant.CONFIG_SCHEMA_NAME + " where name = :name and variable= :variable and config_type_id= :configTypeId") + Integer count(@Bind("name") final String name, @Bind("variable") final String variable, @Bind("configTypeId") final Integer configTypeId); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SIC_TABLE_NAME + " where name = :name and variable= :variable and config_type_id= :configTypeId and active=true order by version desc limit 1; ") + @RegisterBeanMapper(value = SpwInstanceConfig.class) + Optional get(@Bind("name") final String name, @Bind("variable") final String variable, @Bind("configTypeId") final Integer configTypeId); + + @SqlQuery("SELECT max(id)+1 FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SIC_TABLE_NAME + "; ") + @RegisterBeanMapper(value = SpwInstanceConfig.class) + Long getId(); +} diff --git a/src/main/java/in/handyman/raven/lambda/access/repo/SpwProcessConfigRepo.java b/src/main/java/in/handyman/raven/lambda/access/repo/SpwProcessConfigRepo.java new file mode 100644 index 00000000..ae2e1c3d --- /dev/null +++ b/src/main/java/in/handyman/raven/lambda/access/repo/SpwProcessConfigRepo.java @@ -0,0 +1,46 @@ +package in.handyman.raven.lambda.access.repo; + +import in.handyman.raven.lambda.doa.DoaConstant; +import in.handyman.raven.lambda.doa.config.SpwProcessConfig; +import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; +import org.jdbi.v3.sqlobject.customizer.Bind; +import org.jdbi.v3.sqlobject.customizer.BindBean; +import org.jdbi.v3.sqlobject.statement.SqlQuery; +import org.jdbi.v3.sqlobject.statement.SqlUpdate; + +import java.util.List; +import java.util.Optional; + +public interface SpwProcessConfigRepo { + + String COLUMNS = " id, process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version "; + + @SqlUpdate("insert into " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SPC_TABLE_NAME + " (id, process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, version) " + + "VALUES (:id, :process, :variable, :value,:active,:createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :version)") + void insert(@BindBean final SpwProcessConfig spwProcessConfig); + + @SqlUpdate("UPDATE " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SPC_TABLE_NAME + " SET active=:active, created_by= :createdBy , created_date= :createdDate," + + " last_modified_by= :lastModifiedBy, last_modified_date= :lastModifiedDate , process= :process , variable= :variable , value= :value WHERE id = :id ") + void update(@BindBean final SpwProcessConfig spwProcessConfig); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SPC_TABLE_NAME + " where active=true ; ") + @RegisterBeanMapper(value = SpwProcessConfig.class) + List findAll(); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SPC_TABLE_NAME + " where process= :process and active=true ; ") + @RegisterBeanMapper(value = SpwProcessConfig.class) + List findAllByProcess(@Bind("process") final String process); + + @SqlQuery("SELECT count(1)+1 FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SPC_TABLE_NAME + " where process= :process and variable= :variable ; ") + @RegisterBeanMapper(value = SpwProcessConfig.class) + Long getNextVersion(@BindBean final SpwProcessConfig spwProcessConfig); + + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SPC_TABLE_NAME + " where process= :process and variable= :variable and active=true order by version desc limit 1; ") + @RegisterBeanMapper(value = SpwProcessConfig.class) + Optional findOne(@Bind("process") final String process, @Bind("variable") final String variable); + + @SqlQuery("SELECT max(id)+1 FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SPC_TABLE_NAME + "; ") + @RegisterBeanMapper(value = SpwProcessConfig.class) + Long getId(); + +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwResourceConfigRepo.java b/src/main/java/in/handyman/raven/lambda/access/repo/SpwResourceConfigRepo.java similarity index 50% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwResourceConfigRepo.java rename to src/main/java/in/handyman/raven/lambda/access/repo/SpwResourceConfigRepo.java index ab8dac50..c8a7bf54 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/access/repo/SpwResourceConfigRepo.java +++ b/src/main/java/in/handyman/raven/lambda/access/repo/SpwResourceConfigRepo.java @@ -1,5 +1,6 @@ package in.handyman.raven.lambda.access.repo; +import in.handyman.raven.lambda.doa.DoaConstant; import in.handyman.raven.lambda.doa.config.SpwResourceConfig; import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; import org.jdbi.v3.sqlobject.customizer.Bind; @@ -14,25 +15,28 @@ public interface SpwResourceConfigRepo { String COLUMNS = " id, config_name, resource_url, active, user_name, password, driver_class, host, port, database_name, created_by, created_date, last_modified_by, last_modified_date, version "; - @SqlUpdate("insert into " + SpwResourceConfig.SCHEMA_NAME + "." + SpwResourceConfig.TABLE_NAME + " ( config_name, resource_url, active, user_name, password, driver_class, host, port, database_name, created_by, created_date, last_modified_by, last_modified_date, version) " + - "VALUES ( :configName, :resourceUrl, :active, :userName, :password, :driverClass, :host, :port, :databaseName,:createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :version)") + @SqlUpdate("insert into " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SRC_TABLE_NAME + " (id, config_name, resource_url, active, user_name, password, driver_class, host, port, database_name, created_by, created_date, last_modified_by, last_modified_date, version) " + + "VALUES ( :id, :configName, :resourceUrl, :active, :userName, :password, :driverClass, :host, :port, :databaseName,:createdBy, :createdDate, :lastModifiedBy, :lastModifiedDate, :version) RETURNING id") void insert(@BindBean final SpwResourceConfig spwResourceConfig); - @SqlUpdate("UPDATE " + SpwResourceConfig.SCHEMA_NAME + "." + SpwResourceConfig.TABLE_NAME + " SET active=:active, created_by= :createdBy , created_date= :createdDate," + - " last_modified_by= :lastModifiedBy, last_modified_date= :lastModifiedDate , config_name= :configName, resource_url= :resourceUrl, active= :active," + + @SqlUpdate("UPDATE " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SRC_TABLE_NAME + " SET active=:active, created_by= :createdBy , created_date= :createdDate," + + " last_modified_by= :lastModifiedBy, last_modified_date= :lastModifiedDate , config_name= :configName, resource_url= :resourceUrl, " + " user_name= :userName, password= :password, driver_class= :driverClass, host= :host, port= :port, database_name= :databaseName WHERE id = :id ") void update(@BindBean final SpwResourceConfig spwResourceConfig); - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwResourceConfig.SCHEMA_NAME + "." + SpwResourceConfig.TABLE_NAME + " where active=1 ; ") + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SRC_TABLE_NAME + " where active=true ; ") @RegisterBeanMapper(value = SpwResourceConfig.class) List findAll(); - @SqlQuery("SELECT count(1)+1 FROM " + SpwResourceConfig.SCHEMA_NAME + "." + SpwResourceConfig.TABLE_NAME + " where config_name= :configName ; ") + @SqlQuery("SELECT count(1)+1 FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SRC_TABLE_NAME + " where config_name= :configName ; ") @RegisterBeanMapper(value = SpwResourceConfig.class) Long getNextVersion(@BindBean final SpwResourceConfig spwResourceConfig); - @SqlQuery("SELECT " + COLUMNS + " FROM " + SpwResourceConfig.SCHEMA_NAME + "." + SpwResourceConfig.TABLE_NAME + " where config_name= :configName and active=1 order by version desc limit 1; ") + @SqlQuery("SELECT " + COLUMNS + " FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SRC_TABLE_NAME + " where config_name= :configName and active=true order by version desc limit 1; ") @RegisterBeanMapper(value = SpwResourceConfig.class) Optional findOne(@Bind("configName") final String variable); + @SqlQuery("SELECT max(id)+1 FROM " + DoaConstant.CONFIG_SCHEMA_NAME + "." + DoaConstant.SRC_TABLE_NAME + "; ") + @RegisterBeanMapper(value = SpwResourceConfig.class) + Long getId(); } diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/action/ActionContext.java b/src/main/java/in/handyman/raven/lambda/action/ActionContext.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/action/ActionContext.java rename to src/main/java/in/handyman/raven/lambda/action/ActionContext.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/action/ActionExecution.java b/src/main/java/in/handyman/raven/lambda/action/ActionExecution.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/action/ActionExecution.java rename to src/main/java/in/handyman/raven/lambda/action/ActionExecution.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/action/ActionGeneration.java b/src/main/java/in/handyman/raven/lambda/action/ActionGeneration.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/action/ActionGeneration.java rename to src/main/java/in/handyman/raven/lambda/action/ActionGeneration.java index 431ce6b0..0efff034 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/action/ActionGeneration.java +++ b/src/main/java/in/handyman/raven/lambda/action/ActionGeneration.java @@ -43,6 +43,13 @@ public class ActionGeneration { private static final String MAIN_JAVA = "src/main/java/"; private static final String ACTION_IMPL = "Action"; + private static String createVariableName(final String className) { + if (className != null) { + return className.substring(0, 1).toLowerCase() + className.substring(1); + } + return null; + } + public void generate(final List> classes, final String modelTargetPackage, final String executionTargetPackage) { final Set actions = Arrays.stream(RavenParser.ActionContext.class.getDeclaredMethods()) .map(Method::getReturnType).map(Class::getSimpleName) @@ -165,13 +172,6 @@ private String getLambdaExecution(final String s) { return s.replace(CONTEXT, ACTION_IMPL); } - private static String createVariableName(final String className) { - if (className != null) { - return className.substring(0, 1).toLowerCase() + className.substring(1); - } - return null; - } - private void addFieldMember(final Class contextClass, final TypeSpec.Builder builder) { Arrays.asList(contextClass.getDeclaredFields()).forEach(field -> { final Class type = field.getType(); diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/action/IActionContext.java b/src/main/java/in/handyman/raven/lambda/action/IActionContext.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/action/IActionContext.java rename to src/main/java/in/handyman/raven/lambda/action/IActionContext.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/action/IActionExecution.java b/src/main/java/in/handyman/raven/lambda/action/IActionExecution.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/action/IActionExecution.java rename to src/main/java/in/handyman/raven/lambda/action/IActionExecution.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/AbstractAudit.java b/src/main/java/in/handyman/raven/lambda/doa/AbstractAudit.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/AbstractAudit.java rename to src/main/java/in/handyman/raven/lambda/doa/AbstractAudit.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/Auditable.java b/src/main/java/in/handyman/raven/lambda/doa/Auditable.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/Auditable.java rename to src/main/java/in/handyman/raven/lambda/doa/Auditable.java diff --git a/src/main/java/in/handyman/raven/lambda/doa/DoaConstant.java b/src/main/java/in/handyman/raven/lambda/doa/DoaConstant.java new file mode 100644 index 00000000..61ec01d0 --- /dev/null +++ b/src/main/java/in/handyman/raven/lambda/doa/DoaConstant.java @@ -0,0 +1,17 @@ +package in.handyman.raven.lambda.doa; + +public interface DoaConstant { + + String AUDIT_SCHEMA_NAME = "audit"; + String CONFIG_SCHEMA_NAME = "config"; + + String SEA_TABLE_NAME = "statement_execution_audit"; + String PESA_TABLE_NAME = "pipeline_execution_status_audit"; + String AESA_TABLE_NAME = "action_execution_status_audit"; + String PEA_TABLE_NAME = "pipeline_execution_audit"; + String AEA_TABLE_NAME = "action_execution_audit"; + String SCC_TABLE_NAME = "spw_common_config"; + String SIC_TABLE_NAME = "spw_instance_config"; + String SPC_TABLE_NAME = "spw_process_config"; + String SRC_TABLE_NAME = "spw_resource_config"; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/IAction.java b/src/main/java/in/handyman/raven/lambda/doa/IAction.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/IAction.java rename to src/main/java/in/handyman/raven/lambda/doa/IAction.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/IPipeline.java b/src/main/java/in/handyman/raven/lambda/doa/IPipeline.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/IPipeline.java rename to src/main/java/in/handyman/raven/lambda/doa/IPipeline.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionAudit.java b/src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionAudit.java similarity index 88% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionAudit.java rename to src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionAudit.java index 162fb71a..71e70648 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionAudit.java +++ b/src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionAudit.java @@ -19,6 +19,7 @@ import java.util.ArrayDeque; import java.util.Optional; +import java.util.concurrent.atomic.AtomicInteger; @Getter @Setter @@ -30,16 +31,13 @@ @JsonInclude(JsonInclude.Include.NON_NULL) public class ActionExecutionAudit extends AbstractAudit implements IAction { - public static final String SCHEMA_NAME = "handyman_audit"; - public static final String TABLE_NAME = "action_execution_audit"; - @JsonIgnore private final ArrayDeque eventQueue = new ArrayDeque<>(); - @Builder.Default - private Long actionId = UniqueID.getId(); + private Long actionId ; private String actionName; private String macroName; + private String modelPath; private Long pipelineId; private JsonNode input; @@ -60,7 +58,7 @@ public void updateExecutionStatusId(final Integer executionStatusId) { HandymanActorSystemAccess.insert(ActionExecutionStatusAudit.builder().actionId(actionId) .rootPipelineId(this.getRootPipelineId()) .pipelineId(this.pipelineId).executionStatusId(executionStatusId).build()); - LambdaEngine.getLogger(this).info("Action audit has been inserted with ActionId {} as {}", this.actionName, ExecutionStatus.get(executionStatusId)); + LambdaEngine.getLogger(this).info("Action audit has been inserted with ActionId {} as {}", this.actionId, ExecutionStatus.get(executionStatusId)); } diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionStatusAudit.java b/src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionStatusAudit.java similarity index 79% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionStatusAudit.java rename to src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionStatusAudit.java index 7af8ad3f..5b7572dd 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionStatusAudit.java +++ b/src/main/java/in/handyman/raven/lambda/doa/audit/ActionExecutionStatusAudit.java @@ -22,11 +22,7 @@ @JsonInclude(JsonInclude.Include.NON_NULL) public class ActionExecutionStatusAudit extends Auditable { - public static final String SCHEMA_NAME = "handyman_audit"; - public static final String TABLE_NAME = "action_execution_status_audit"; - - @Builder.Default - private Long id = UniqueID.getId(); + private Long id ; private Long actionId; private Long pipelineId; private Integer executionStatusId; diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/ExecutionGroup.java b/src/main/java/in/handyman/raven/lambda/doa/audit/ExecutionGroup.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/ExecutionGroup.java rename to src/main/java/in/handyman/raven/lambda/doa/audit/ExecutionGroup.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/ExecutionStatus.java b/src/main/java/in/handyman/raven/lambda/doa/audit/ExecutionStatus.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/ExecutionStatus.java rename to src/main/java/in/handyman/raven/lambda/doa/audit/ExecutionStatus.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionAudit.java b/src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionAudit.java similarity index 89% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionAudit.java rename to src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionAudit.java index 84f76f81..f46215a9 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionAudit.java +++ b/src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionAudit.java @@ -25,11 +25,7 @@ @Slf4j public class PipelineExecutionAudit extends AbstractAudit implements IPipeline { - public static final String SCHEMA_NAME = "handyman_audit"; - public static final String TABLE_NAME = "pipeline_execution_audit"; - - @Builder.Default - private Long pipelineId = UniqueID.getId(); + private Long pipelineId ; private String modeOfExecution; private String hostName; diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionStatusAudit.java b/src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionStatusAudit.java similarity index 78% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionStatusAudit.java rename to src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionStatusAudit.java index 18da2efa..07a49396 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionStatusAudit.java +++ b/src/main/java/in/handyman/raven/lambda/doa/audit/PipelineExecutionStatusAudit.java @@ -22,11 +22,7 @@ @JsonInclude(JsonInclude.Include.NON_NULL) public class PipelineExecutionStatusAudit extends Auditable { - public static final String SCHEMA_NAME = "handyman_audit"; - public static final String TABLE_NAME = "pipeline_execution_status_audit"; - - @Builder.Default - private Long id = UniqueID.getId(); + private Long id ; private Long pipelineId; private Integer executionStatusId; private Long rootPipelineId; diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/StatementExecutionAudit.java b/src/main/java/in/handyman/raven/lambda/doa/audit/StatementExecutionAudit.java similarity index 75% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/StatementExecutionAudit.java rename to src/main/java/in/handyman/raven/lambda/doa/audit/StatementExecutionAudit.java index e5cf4963..659c47c0 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/audit/StatementExecutionAudit.java +++ b/src/main/java/in/handyman/raven/lambda/doa/audit/StatementExecutionAudit.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import in.handyman.raven.lambda.doa.Auditable; +import in.handyman.raven.lambda.doa.DoaConstant; import in.handyman.raven.util.UniqueID; import lombok.AllArgsConstructor; import lombok.Builder; @@ -19,13 +20,9 @@ @Builder @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -public class StatementExecutionAudit extends Auditable { +public class StatementExecutionAudit extends Auditable implements DoaConstant { - public static final String SCHEMA_NAME = "handyman_audit"; - public static final String TABLE_NAME = "statement_execution_audit"; - - @Builder.Default - private Long statementId = UniqueID.getId(); + private Long statementId ; private Long actionId; @@ -37,4 +34,6 @@ public class StatementExecutionAudit extends Auditable { private Integer rowsProcessed; private Double timeTaken; + + } diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwCommonConfig.java b/src/main/java/in/handyman/raven/lambda/doa/config/SpwCommonConfig.java similarity index 79% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwCommonConfig.java rename to src/main/java/in/handyman/raven/lambda/doa/config/SpwCommonConfig.java index 30e34a3a..490c4595 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwCommonConfig.java +++ b/src/main/java/in/handyman/raven/lambda/doa/config/SpwCommonConfig.java @@ -16,9 +16,6 @@ @Builder public class SpwCommonConfig extends Auditable { - public static final String SCHEMA_NAME = "handyman_config"; - public static final String TABLE_NAME = "spw_common_config"; - private Long id; private String variable; diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwInstanceConfig.java b/src/main/java/in/handyman/raven/lambda/doa/config/SpwInstanceConfig.java similarity index 81% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwInstanceConfig.java rename to src/main/java/in/handyman/raven/lambda/doa/config/SpwInstanceConfig.java index cc7b11b8..c3b886b3 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwInstanceConfig.java +++ b/src/main/java/in/handyman/raven/lambda/doa/config/SpwInstanceConfig.java @@ -16,9 +16,6 @@ @Builder public class SpwInstanceConfig extends Auditable { - public static final String SCHEMA_NAME = "handyman_config"; - public static final String TABLE_NAME = "spw_instance_config"; - private Long id; private String instance; diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwProcessConfig.java b/src/main/java/in/handyman/raven/lambda/doa/config/SpwProcessConfig.java similarity index 80% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwProcessConfig.java rename to src/main/java/in/handyman/raven/lambda/doa/config/SpwProcessConfig.java index 7ef7cf0c..e5c4bfd6 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwProcessConfig.java +++ b/src/main/java/in/handyman/raven/lambda/doa/config/SpwProcessConfig.java @@ -16,8 +16,6 @@ @Builder public class SpwProcessConfig extends Auditable { - public static final String SCHEMA_NAME = "handyman_config"; - public static final String TABLE_NAME = "spw_process_config"; private Long id; private String process; diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwResourceConfig.java b/src/main/java/in/handyman/raven/lambda/doa/config/SpwResourceConfig.java similarity index 88% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwResourceConfig.java rename to src/main/java/in/handyman/raven/lambda/doa/config/SpwResourceConfig.java index e0d966b5..30b432c8 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/doa/config/SpwResourceConfig.java +++ b/src/main/java/in/handyman/raven/lambda/doa/config/SpwResourceConfig.java @@ -22,9 +22,6 @@ @JsonInclude(JsonInclude.Include.NON_NULL) public class SpwResourceConfig extends Auditable { - public static final String SCHEMA_NAME = "handyman_config"; - public static final String TABLE_NAME = "spw_resource_config"; - private Long id; private String configName; diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/process/CommandProxy.java b/src/main/java/in/handyman/raven/lambda/process/CommandProxy.java similarity index 99% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/process/CommandProxy.java rename to src/main/java/in/handyman/raven/lambda/process/CommandProxy.java index 98c029b5..ffca3442 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/process/CommandProxy.java +++ b/src/main/java/in/handyman/raven/lambda/process/CommandProxy.java @@ -8,7 +8,7 @@ import in.handyman.raven.compiler.RavenParser; import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.access.repo.HandymanRepo; -import in.handyman.raven.lambda.access.repo.HandymanRepoR2Impl; +import in.handyman.raven.lambda.access.repo.HandymanRepoImpl; import in.handyman.raven.lambda.action.IActionContext; import in.handyman.raven.lambda.doa.config.SpwResourceConfig; import in.handyman.raven.lib.model.RestPart; @@ -35,7 +35,7 @@ public class CommandProxy { private static final ObjectMapper mapper = new ObjectMapper(); - private static final HandymanRepo HANDYMAN_REPO = new HandymanRepoR2Impl(); + private static final HandymanRepo HANDYMAN_REPO = new HandymanRepoImpl(); private CommandProxy() { } diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/process/HRequestResolver.java b/src/main/java/in/handyman/raven/lambda/process/HRequestResolver.java similarity index 87% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/process/HRequestResolver.java rename to src/main/java/in/handyman/raven/lambda/process/HRequestResolver.java index 81c677c3..47ab4452 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lambda/process/HRequestResolver.java +++ b/src/main/java/in/handyman/raven/lambda/process/HRequestResolver.java @@ -1,5 +1,6 @@ package in.handyman.raven.lambda.process; +import com.google.common.io.Resources; import in.handyman.raven.exception.HandymanException; import lombok.AllArgsConstructor; import lombok.Getter; @@ -8,6 +9,7 @@ import java.io.File; import java.io.IOException; import java.net.URL; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.Map; @@ -43,25 +45,24 @@ private static String fileResolve(final String lambdaName, final Map {} ", lContext.getRootPipelineId()); - pipelineExecutionAudit.setPipelineId(lContext.getRootPipelineId()); + final Long id = UniqueID.getId(); + pipelineExecutionAudit.setRootPipelineId(id); + pipelineExecutionAudit.setPipelineId(id); + HandymanActorSystemAccess.insert(pipelineExecutionAudit); + lContext.setRootPipelineId(pipelineExecutionAudit.getRootPipelineId()); + } else { + pipelineExecutionAudit.setRootPipelineId(lContext.getRootPipelineId()); + HandymanActorSystemAccess.insert(pipelineExecutionAudit); } - pipelineExecutionAudit.setRootPipelineId(lContext.getRootPipelineId()); - pipelineExecutionAudit.setProcessId(ProcessHandle.current().pid()); - - HandymanActorSystemAccess.insert(pipelineExecutionAudit); + log.info("LContext rootID => {} ", lContext.getRootPipelineId()); pipelineExecutionAudit.updateExecutionStatusId(ExecutionStatus.STAGED.getId()); log.info("Started building the pipeline context"); try { @@ -114,7 +118,9 @@ public static PipelineExecutionAudit start(final LContext lContext) throws Handy pipelineExecutionAudit.updateExecutionStatusId(ExecutionStatus.FAILED.getId()); log.error("try section failed", e); log.error("Completed Execution catch block"); - throw new HandymanException("Failed", e); + if (!Objects.equals("false", context.get(THROW_EXCEPTION))) { + throw new HandymanException("Failed ", e); + } } finally { log.info("Executing Finally Block"); run(pipelineExecutionAudit, ravenParserContext.getFinallyContext(), context, ExecutionGroup.FINALLY); @@ -195,11 +201,11 @@ private static void run(final PipelineExecutionAudit pipelineExecutionAudit, action.setContext(context); action.setPipelineId(pipelineExecutionAudit.getPipelineId()); toAction(action, pipelineExecutionAudit); - log.info(""); - log.info("Action context has been set successfully for action {}", action.getActionId()); + + doAction(action, actionContext); - log.info("Action context has been executed successfully for action {}", action.getActionId()); - log.info(""); + + }); } @@ -234,43 +240,48 @@ public static void doAction(final ActionExecutionAudit actionExecutionAudit, fin actionExecutionAudit.updateExecutionStatusId(ExecutionStatus.STAGED.getId()); HandymanActorSystemAccess.update(actionExecutionAudit); logger.info("\n"); + String actionName = actionExecutionAudit.getActionName(); + Long actionId = actionExecutionAudit.getActionId(); try { - logger.info("Action execution has been started"); - logger.info("Given context {}", actionExecutionAudit.getContext()); + logger.info("Given name {} with id {}, context {}", actionName, actionId, actionExecutionAudit.getContext()); final IActionExecution execution = load(actionContext, actionExecutionAudit); + logger.info("Action execution has been started for action name {} with id {}", actionName, actionId); execute(execution, actionExecutionAudit); - logger.info("Execution has been completed successfully"); + logger.info("Execution has been completed successfully action name {} with id {}", actionName, actionId); } catch (Exception e) { - logger.error("Exception " + actionExecutionAudit.getActionName(), e); + logger.error("Error executing action " + actionName, e); actionExecutionAudit.updateExecutionStatusId(ExecutionStatus.FAILED.getId()); - throw new HandymanException("Failed to convert", e); + throw new HandymanException("Error executing action "+ actionName, e); } finally { HandymanActorSystemAccess.update(actionExecutionAudit); final StringBuilder stringBuilder = new StringBuilder(); - logger.info("Started collecting Lambda engine logs {}", actionExecutionAudit.getActionName()); + logger.info("Started collecting Lambda engine logs {}", actionName); stringBuilder.append("\n"); actionExecutionAudit.getEventQueue().forEach(event -> { - append(stringBuilder, Instant.ofEpochMilli(event.getTimeStamp())); - stringBuilder.append(" "); - append(stringBuilder, event.getThreadName()); - stringBuilder.append(" "); - append(stringBuilder, event.getLevel()); - stringBuilder.append(" "); - append(stringBuilder, event.getMarker()); - stringBuilder.append(" "); - append(stringBuilder, MessageFormatter.arrayFormat(event.getMessage(), event.getArgumentArray()).getMessage()); - if (event.getThrowable() != null) { - var sw = new StringWriter(); - var pw = new PrintWriter(sw); - event.getThrowable().printStackTrace(pw); - var sStackTrace = sw.toString(); + if(event!=null) { + append(stringBuilder, Instant.ofEpochMilli(event.getTimeStamp())); + stringBuilder.append(" "); + append(stringBuilder, event.getThreadName()); + stringBuilder.append(" "); + append(stringBuilder, event.getLevel()); + stringBuilder.append(" "); +// final String markersName = Optional.ofNullable(event.getMarker()).map(markers -> markers.stream().map(Marker::getName).collect(Collectors.joining(","))).orElse(""); +// append(stringBuilder, markersName); +// stringBuilder.append(" "); + append(stringBuilder, MessageFormatter.arrayFormat(event.getMessage(), event.getArgumentArray()).getMessage()); + if (event.getThrowable() != null) { + var sw = new StringWriter(); + var pw = new PrintWriter(sw); + event.getThrowable().printStackTrace(pw); + var sStackTrace = sw.toString(); + stringBuilder.append("\n"); + stringBuilder.append(sStackTrace); + } stringBuilder.append("\n"); - stringBuilder.append(sStackTrace); } - stringBuilder.append("\n"); }); logger.info("\n"); - log.info("Completed collecting LambdaEngine logs"); + log.info("Completed collecting LambdaEngine logs for action "+actionName); actionExecutionAudit.setLog(stringBuilder.toString()); log.info(stringBuilder.toString()); HandymanActorSystemAccess.update(actionExecutionAudit); diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/process/LambdaParser.java b/src/main/java/in/handyman/raven/lambda/process/LambdaParser.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/process/LambdaParser.java rename to src/main/java/in/handyman/raven/lambda/process/LambdaParser.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/process/ProcessExecutor.java b/src/main/java/in/handyman/raven/lambda/process/ProcessExecutor.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/process/ProcessExecutor.java rename to src/main/java/in/handyman/raven/lambda/process/ProcessExecutor.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lambda/process/RavenParserContext.java b/src/main/java/in/handyman/raven/lambda/process/RavenParserContext.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lambda/process/RavenParserContext.java rename to src/main/java/in/handyman/raven/lambda/process/RavenParserContext.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/AbortAction.java b/src/main/java/in/handyman/raven/lib/AbortAction.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/AbortAction.java rename to src/main/java/in/handyman/raven/lib/AbortAction.java diff --git a/src/main/java/in/handyman/raven/lib/AbsentKeyFilterAction.java b/src/main/java/in/handyman/raven/lib/AbsentKeyFilterAction.java new file mode 100644 index 00000000..1e9fd83d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AbsentKeyFilterAction.java @@ -0,0 +1,151 @@ +package in.handyman.raven.lib; + +import co.elastic.clients.elasticsearch.ElasticsearchClient; +import co.elastic.clients.elasticsearch.core.SearchResponse; +import co.elastic.clients.json.jackson.JacksonJsonpMapper; +import co.elastic.clients.transport.rest_client.RestClientTransport; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AbsentKeyFilter; +import okhttp3.MediaType; +import org.apache.http.HttpHost; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.impl.nio.reactor.IOReactorConfig; +import org.elasticsearch.client.RestClient; +import org.json.JSONArray; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "AbsentKeyFilter" +) +public class AbsentKeyFilterAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final AbsentKeyFilter absentKeyFilter; + private final Marker aMarker; + private final ElasticsearchClient elasticsearchClient; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + private final String esUsername; + private final String esPassword; + private final String esHostname; + + public AbsentKeyFilterAction(final ActionExecutionAudit action, final Logger log, + final Object absentKeyFilter) { + this.absentKeyFilter = (AbsentKeyFilter) absentKeyFilter; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" AbsentKeyFilter:" + this.absentKeyFilter.getName()); + this.esUsername = action.getContext().get("es.username"); + this.esPassword = action.getContext().get("es.password"); + this.esHostname = action.getContext().get("es.hostname"); + this.elasticsearchClient = getElasticsearchClient(esUsername, esPassword, esHostname); + this.URI = action.getContext().get("copro.data-extraction.url"); + } + + private static ElasticsearchClient getElasticsearchClient(String userName, String password, String hostName) { + + final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); + credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password)); + var restClient = RestClient.builder(new HttpHost(hostName, Integer.parseInt("9200"))).setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(6000000).setSocketTimeout(6000000)).setHttpClientConfigCallback(httpAsyncClientBuilder -> { + httpAsyncClientBuilder.setMaxConnTotal(500); + httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider); + httpAsyncClientBuilder.setDefaultIOReactorConfig(IOReactorConfig.custom().setIoThreadCount(10).build()); + return httpAsyncClientBuilder; + }).build(); + final ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + var transport = new RestClientTransport(restClient, new JacksonJsonpMapper(mapper)); + return new ElasticsearchClient(transport); + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Absent Key Filter Action for {} has been started" ,absentKeyFilter.getName()); + + JsonNode sorQuestionList = mapper.readTree(absentKeyFilter.getSorList()); + String sorName = sorQuestionList.get("f1").asText(); + JSONArray absentKeyList = new JSONArray(); + ObjectNode searchBuilderResult = mapper.createObjectNode(); + SearchResponse filterList = elasticsearchClient + .search(s -> s.index("source_of_truth") + .query(q -> q.bool(bool -> bool.must(query -> + query.matchPhrase(dd -> dd.field("page_content").query(sorName))).must(query -> + query.matchPhrase(dd -> dd.field("intics_reference_id").query(absentKeyFilter.getInticsReferenceId()))).must(query -> + query.matchPhrase(dd -> dd.field("file_path").query(absentKeyFilter.getFilePath())) + ) + )), Object.class); + long hitsCount = Objects.requireNonNull(filterList.hits().total()).value(); + if (hitsCount > 0) { + String indexId = filterList.hits().hits().get(0).id(); + + List filteredSorList = new ArrayList<>(); + for (JsonNode fieldName : sorQuestionList.get("f2")) { + String questionKey = fieldName.asText(); + SearchResponse filteredQuestionList = elasticsearchClient + .search(s -> s.index("source_of_truth") + .query(q -> q.bool(bool -> bool.must(query -> + query.matchPhrase(dd -> dd.field("page_content").query(questionKey))).must(query -> + query.matchPhrase(dd -> dd.field("_id").query(indexId))) + )), Object.class); + long questionHitCount = Objects.requireNonNull(filteredQuestionList.hits().total()).value(); + if (questionHitCount > 0) { + filteredSorList.add(questionKey); + } + } + filterList.hits().hits().forEach(res -> { + searchBuilderResult.put("key_name", sorName); + searchBuilderResult.put("isFiltered", true); + searchBuilderResult.putPOJO("question_list", filteredSorList); + searchBuilderResult.put("confidence_score", res.score()); + }); + } else { + searchBuilderResult.put("key_name", sorName); + searchBuilderResult.put("isFiltered", false); + } + absentKeyList.put(searchBuilderResult); + + if (absentKeyList.length() == 0) { + log.info(aMarker, "Absent Key Filter List count is {} for the File {} ", absentKeyList.length(), absentKeyFilter.getFilePath()); + action.getContext().put(absentKeyFilter.getName() + "_response", absentKeyList.toString()); + action.getContext().put(absentKeyFilter.getName().concat(".value"), "false"); + } else { + log.info(aMarker, "Absent Key Filter List count is {} for the File {} ", absentKeyList.length(), absentKeyFilter.getFilePath()); + action.getContext().put(absentKeyFilter.getName() + "_response", absentKeyList.toString()); + action.getContext().put(absentKeyFilter.getName().concat(".value"), "true"); + } + log.info(aMarker, "Absent Key Filter Action for {} has been completed" , absentKeyFilter.getName()); + } catch (Exception e) { + action.getContext().put(absentKeyFilter.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred ", e); + throw new HandymanException("Failed to execute", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return absentKeyFilter.getCondition(); + } +} + + diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/ActionCallable.java b/src/main/java/in/handyman/raven/lib/ActionCallable.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/ActionCallable.java rename to src/main/java/in/handyman/raven/lib/ActionCallable.java diff --git a/src/main/java/in/handyman/raven/lib/AlchemyAuthTokenAction.java b/src/main/java/in/handyman/raven/lib/AlchemyAuthTokenAction.java new file mode 100644 index 00000000..0df05bf6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AlchemyAuthTokenAction.java @@ -0,0 +1,121 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AlchemyAuthToken; +import in.handyman.raven.util.InstanceUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Date; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "AlchemyAuthToken" +) +public class AlchemyAuthTokenAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final AlchemyAuthToken alchemyAuthToken; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final Marker aMarker; + private final String URI; + private final String user; + private final Long tenantId; + public static final String ALCHEMY_REFRESH_URL = "alchemy.refresh.url"; + public static final String ALCHEMY_USER = "alchemy.user"; + private static final String TENANT_ID = "tenant_id"; + + public AlchemyAuthTokenAction(final ActionExecutionAudit action, final Logger log, + final Object alchemyAuthToken) { + this.alchemyAuthToken = (AlchemyAuthToken) alchemyAuthToken; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" AlchemyAuthToken:" + this.alchemyAuthToken.getName()); + this.URI = action.getContext().get(ALCHEMY_REFRESH_URL); + this.user = action.getContext().get(ALCHEMY_USER); + this.tenantId = Long.valueOf(action.getContext().get(TENANT_ID)); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Alchemy Auth Token Generation Action for {} has been started", alchemyAuthToken.getName()); + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("username", user); + objectNode.put("tenantId", tenantId); + log.info(aMarker, " Input variables id : {}", action.getActionId()); + + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + if (log.isInfoEnabled()) { + log.info(aMarker, "The Request Details url {} , appID {} ", URI, user); + } + + String name = "alchemyAuth"; + try (Response response = httpclient.newCall(request).execute()) { + assert response.body() != null; + String responseBody = response.body().string(); + if (response.isSuccessful()) { + log.info(aMarker, "The Successful Response for {} --> {}", alchemyAuthToken.getName(), responseBody); + mapper.registerModule(new JavaTimeModule()); + JsonNode responseNode = mapper.readTree(responseBody); + JsonNode payload = responseNode.get("payload"); + AlchemyLoginResponse alchemyLoginResponse = mapper.treeToValue(payload, AlchemyLoginResponse.class); + String authToken = alchemyLoginResponse.getToken(); + System.out.println(authToken); + action.getContext().put(name.concat(".token"), authToken); + action.getContext().put(name.concat(".tenantId"), String.valueOf(alchemyLoginResponse.getTenantId())); + + } else { + log.info(aMarker, "The Failure Response {} --> {}", name, responseBody); + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), responseBody); + } + action.getContext().put(name + ".isSuccessful", String.valueOf(response.isSuccessful())); + } catch (Exception e) { + log.error(aMarker, "The Exception occurred ", e); + action.getContext().put(name + ".isSuccessful", "false"); + throw new HandymanException("Failed to execute", e, action); + } + log.info(aMarker, "Alchemy Auth Token Generation Action for {} has been completed", alchemyAuthToken.getName()); + + } + + @Override + public boolean executeIf() throws Exception { + return alchemyAuthToken.getCondition(); + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public static class AlchemyLoginResponse { + private String username; + private Long tenantId; + private String role; + private String token; + private Date expireDatetime; + } +} diff --git a/src/main/java/in/handyman/raven/lib/AlchemyInfoAction.java b/src/main/java/in/handyman/raven/lib/AlchemyInfoAction.java new file mode 100644 index 00000000..959aef68 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AlchemyInfoAction.java @@ -0,0 +1,230 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AlchemyInfo; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.File; +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "AlchemyInfo" +) +public class AlchemyInfoAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final AlchemyInfo alchemyInfo; + + private final Marker aMarker; + + + public AlchemyInfoAction(final ActionExecutionAudit action, final Logger log, + final Object alchemyInfo) { + this.alchemyInfo = (AlchemyInfo) alchemyInfo; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" AlchemyInfo:" + this.alchemyInfo.getName()); + } + + @Override + public void execute() throws Exception { + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(alchemyInfo.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "Alchemy Info Action for {} has been started", alchemyInfo.getName()); + final String insertQuery = "INSERT INTO alchemy_migration.alchemy_papers (tenant_id, group_id, paper_no, pipeline_origin_id, alchemy_origin_id, origin_file_path, width, height, created_on, root_pipeline_id)" + + "VALUES(?, ?, ?, ?, ?, ?, ?, ?, now(), ?)"; + final List urls = Optional.ofNullable(action.getContext().get("alchemy.origin.upload.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new RuntimeException(e); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + AlchemyInfoAction.AlchemyInfoOutputTable.class, + AlchemyInfoAction.AlchemyInfoInputTable.class, + jdbi, log, + new AlchemyInfoAction.AlchemyInfoInputTable(), urls, action); + coproProcessor.startProducer(alchemyInfo.getQuerySet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, 1, Integer.valueOf(action.getContext().get("write.batch.size")), new AlchemyInfoAction.AlchemyInfoConsumerProcess(log, aMarker, action)); + log.info(aMarker, "Alchemy Info has been completed {} ", alchemyInfo.getName()); + } catch (Exception t) { + action.getContext().put(alchemyInfo.getName() + ".isSuccessful", "false"); + log.error(aMarker, "Error at alchemy info execute method {}", ExceptionUtil.toString(t)); + throw new HandymanException("Error at alchemyInfo execute method ", t, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return alchemyInfo.getCondition(); + } + + public static class AlchemyInfoConsumerProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + + public final ActionExecutionAudit action; + + private final Long tenantId; + private final String authToken; + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public AlchemyInfoConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.tenantId = Long.valueOf(action.getContext().get("alchemyAuth.tenantId")); + this.authToken = action.getContext().get("alchemyAuth.token"); + } + + @Override + public List process(URL endpoint, AlchemyInfoAction.AlchemyInfoInputTable entity) throws Exception { + + List parentObj = new ArrayList<>(); + String inputFilePath = entity.getFilePath(); + + File file = new File(inputFilePath); + MediaType mediaType = MediaType.parse("application/pdf"); + + RequestBody requestBody = new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("file", file.getName(), RequestBody.create(mediaType, file)) + .build(); + + URL url = new URL(endpoint.toString() + "/" + entity.getRootPipelineId() + "/?tenantId=" + this.tenantId); + Request request = new Request.Builder().url(url) + .addHeader("accept", "*/*") + .addHeader("Authorization", "Bearer " + authToken) + .post(requestBody) + .build(); + + if (log.isInfoEnabled()) { + log.info(aMarker, "Request has been build with the parameters {} ,inputFilePath : {}", endpoint, inputFilePath); + } + + Integer groupId = entity.getGroupId(); + String pipelineOriginId = entity.getOriginId(); + Long rootPipelineId = entity.getRootPipelineId(); + try (Response response = httpclient.newCall(request).execute()) { + if (response.isSuccessful()) { + log.info("Response Details: {}", response); + String responseBody = Objects.requireNonNull(response.body()).string(); + JsonNode responseNode = mapper.readTree(responseBody); + JsonNode payload = responseNode.get("payload"); + List originUploadResponseList = mapper.readValue(payload.toString(), new TypeReference<>() { + }); + originUploadResponseList.forEach(originUploadResponse -> parentObj.add(AlchemyInfoOutputTable.builder() + .tenantId(this.tenantId) + .groupId(groupId) + .paperNo(originUploadResponse.getPageNo()) + .pipelineOriginId(pipelineOriginId) + .alchemyOriginId(originUploadResponse.getOriginId()) + .originFilePath(inputFilePath) + .width(originUploadResponse.getWidth()) + .height(originUploadResponse.getHeight()) + .rootPipelineId(rootPipelineId) + .build())); + log.info(aMarker, "Execute for alchemy Info {}", response); + } + } catch (Exception e) { + log.error(aMarker, "The Exception occurred in alchemy info action", e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Exception occurred in alchemy info action for group id - " + groupId + " and originId - " + pipelineOriginId, handymanException, this.action); + } + return parentObj; + } + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public static class AlchemyInfoInputTable implements CoproProcessor.Entity { + private String originId; + private Long rootPipelineId; + private Integer groupId; + private String filePath; + + @Override + public List getRowData() { + return null; + } + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public static class AlchemyInfoOutputTable implements CoproProcessor.Entity { + private Long tenantId; + private Integer groupId; + private Integer paperNo; + private String pipelineOriginId; + private String alchemyOriginId; + private String originFilePath; + private Integer width; + private Integer height; + private Long rootPipelineId; + + + @Override + public List getRowData() { + return Stream.of(this.tenantId, this.groupId, this.paperNo, this.pipelineOriginId, + this.alchemyOriginId, this.originFilePath, this.width, this.height, this.rootPipelineId).collect(Collectors.toList()); + } + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public static class OriginUploadResponse { + private Integer pageNo; + private String encode; + private Integer width; + private Integer height; + private String originId; + private String content; + } +} diff --git a/src/main/java/in/handyman/raven/lib/AlchemyKvpResponseAction.java b/src/main/java/in/handyman/raven/lib/AlchemyKvpResponseAction.java new file mode 100644 index 00000000..993f63fa --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AlchemyKvpResponseAction.java @@ -0,0 +1,112 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.alchemy.response.AlchemyKvpConsumerProcess; +import in.handyman.raven.lib.model.outbound.AlchemyKvpInputEntity; +import in.handyman.raven.lib.model.outbound.AlchemyKvpOutputEntity; +import in.handyman.raven.lib.model.AlchemyKvpResponse; +import java.lang.Exception; +import java.lang.Object; +import java.lang.Override; +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "AlchemyKvpResponse" +) +public class AlchemyKvpResponseAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final AlchemyKvpResponse alchemyKvpResponse; + + private final Marker aMarker; + + private final Integer timeout; + + public AlchemyKvpResponseAction(final ActionExecutionAudit action, final Logger log, + final Object alchemyKvpResponse, Integer timeout) { + this.alchemyKvpResponse = (AlchemyKvpResponse) alchemyKvpResponse; + this.action = action; + this.log = log; + this.timeout = timeout; + this.aMarker = MarkerFactory.getMarker(" AlchemyKvpResponse:"+this.alchemyKvpResponse.getName()); + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "alchemy kvp response Action has been started {}",alchemyKvpResponse.getName()); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(alchemyKvpResponse.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "paper itemizer Action output table {}",alchemyKvpResponse.getResultTable()); + //5. build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO " +alchemyKvpResponse.getResultTable()+ + "(process_id,group_Id,alchemy_origin_id,pipeline_origin_id,kvp_response, tenant_id,file_name,root_pipeline_id,status,stage,message) " + + " VALUES(?,?,?,?,?,?,?,?,?,?,?)"; + + log.info(aMarker, "paper itemizer Insert query {}", insertQuery); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(action.getContext().get("copro.product.outbound.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "paper itemizer copro urls {}", urls); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + AlchemyKvpOutputEntity.class, + AlchemyKvpInputEntity.class, + jdbi, log, + new AlchemyKvpInputEntity(), urls, action); + + log.info(aMarker, "paper itemizer copro coproProcessor initialization {}", coproProcessor); + + //4. call the method start producer from coproprocessor + coproProcessor.startProducer(alchemyKvpResponse.getQuerySet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + log.info(aMarker, "product outbound copro coproProcessor startProducer called read batch size {}",action.getContext().get("read.batch.size")); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("alchemy.kvp.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), new AlchemyKvpConsumerProcess(log,aMarker,action,this)); + log.info(aMarker, "product outbound coproProcessor startConsumer called consumer count {} write batch count {} ",Integer.valueOf(action.getContext().get("alchemy.kvp.consumer.API.count")),Integer.valueOf(action.getContext().get("write.batch.size"))); + + + }catch(Exception ex){ + log.error(aMarker,"error in execute method for alchemy response ",ex); + throw new HandymanException("error in execute method for alchemy response", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return alchemyKvpResponse.getCondition(); + } + + public Integer getTimeOut() { + return this.timeout; + } +} diff --git a/src/main/java/in/handyman/raven/lib/AlchemyResponseAction.java b/src/main/java/in/handyman/raven/lib/AlchemyResponseAction.java new file mode 100644 index 00000000..66c95638 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AlchemyResponseAction.java @@ -0,0 +1,247 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AlchemyResponse; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "AlchemyResponse" +) +public class AlchemyResponseAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final AlchemyResponse alchemyResponse; + + private final Marker aMarker; + + public AlchemyResponseAction(final ActionExecutionAudit action, final Logger log, + final Object alchemyResponse) { + this.alchemyResponse = (AlchemyResponse) alchemyResponse; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" AlchemyResponse:" + this.alchemyResponse.getName()); + } + + @Override + public void execute() throws Exception { + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(alchemyResponse.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "Alchemy Response Action for {} has been started", alchemyResponse.getName()); + final String insertQuery = ""; + final List urls = Optional.ofNullable(action.getContext().get("alchemy.origin.valuation.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new RuntimeException(e); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + AlchemyResponseAction.AlchemyResponseOutputTable.class, + AlchemyResponseAction.AlchemyResponseInputTable.class, + jdbi, log, + new AlchemyResponseAction.AlchemyResponseInputTable(), urls, action); + coproProcessor.startProducer(alchemyResponse.getQuerySet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, 1, Integer.valueOf(action.getContext().get("write.batch.size")), new AlchemyResponseAction.AlchemyReponseConsumerProcess(log, aMarker, action)); + log.info(aMarker, "Alchemy Info has been completed {} ", alchemyResponse.getName()); + } catch (Exception t) { + action.getContext().put(alchemyResponse.getName() + ".isSuccessful", "false"); + log.error(aMarker, "Error at alchemy response execute method {}", ExceptionUtil.toString(t)); + throw new HandymanException("Error at alchemyResponse execute method ", t, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return alchemyResponse.getCondition(); + } + + public static class AlchemyReponseConsumerProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + + public final ActionExecutionAudit action; + + private final Long tenantId; + private final String authToken; + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public AlchemyReponseConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.tenantId = Long.valueOf(action.getContext().get("alchemyAuth.tenantId")); + this.authToken = action.getContext().get("alchemyAuth.token"); + } + + @Override + public List process(URL endpoint, AlchemyResponseAction.AlchemyResponseInputTable entity) throws Exception { + + List parentObj = new ArrayList<>(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + Long rootPipelineId = entity.getRootPipelineId(); + Integer confidenceScore = entity.getConfidenceScore(); + String extractedValue = entity.getExtractedValue(); + String sorItemName = entity.getSorItemName(); + Long synonymId = entity.getSynonymId(); + Long questionId = entity.getQuestionId(); + String bbox = entity.getBbox(); + String feature = entity.getFeature(); + + AlchemyRequestTable alchemyRequestTable = AlchemyRequestTable + .builder() + .paperNo(paperNo) + .rootPipelineId(rootPipelineId) + .feature(feature) + .build(); + + if(feature.equals("KIE")){ + alchemyRequestTable.setBbox(mapper.readTree(bbox)); + alchemyRequestTable.setConfidenceScore(confidenceScore); + alchemyRequestTable.setExtractedValue(extractedValue); + alchemyRequestTable.setSynonymId(synonymId); + alchemyRequestTable.setQuestionId(questionId); + } + if(feature.equals("CHECKBOX_EXTRACTION")){ + alchemyRequestTable.setBbox(mapper.readTree(bbox)); + alchemyRequestTable.setConfidenceScore(confidenceScore); + alchemyRequestTable.setExtractedValue(extractedValue); + alchemyRequestTable.setState(entity.getState()); + } + if(feature.equals("TABLE_EXTRACT")){ + JsonNode tableNode = mapper.readTree(entity.getTableData()); + alchemyRequestTable.setTableData(tableNode); + } + + + Request request = new Request.Builder().url(endpoint + "/" + originId + "/?tenantId=" + this.tenantId) + .addHeader("accept", "*/*") + .addHeader("Authorization", "Bearer " + authToken) + .addHeader("Content-Type", "application/json") + .post(RequestBody.create(mapper.writeValueAsString(alchemyRequestTable), MediaTypeJSON)) + .build(); + + if (log.isInfoEnabled()) { + log.info(aMarker, "Request has been build with the parameters {}, alchemy originId : {}, sorItemName : {}", endpoint, originId, sorItemName); + } + + try (Response response = httpclient.newCall(request).execute()) { + if (response.isSuccessful()) { + log.info("Response Details: {}", response); + log.info(aMarker, "Execute for alchemy response {}", response); + } + } catch (Exception e) { + log.error(aMarker, "The Exception occurred in alchemy response action", e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Exception occurred in alchemy response action for alchemy originId - " + originId + " and sorItemName - " + sorItemName, handymanException, this.action); + } + return parentObj; + } + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public static class AlchemyResponseInputTable implements CoproProcessor.Entity { + + private String originId; + private Integer paperNo; + private Long tenantId; + private Long rootPipelineId; + private Integer confidenceScore; + private String extractedValue; + private String sorItemName; + private Long synonymId; + private Long questionId; + private String bbox; + private String feature; + private String state; + private String tableData; + + @Override + public List getRowData() { + return null; + } + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public static class AlchemyRequestTable { + private Integer paperNo; + private Integer confidenceScore; + private String extractedValue; + private JsonNode bbox; + private Long synonymId; + private Long questionId; + private Long rootPipelineId; + private String feature; + private String state; + private JsonNode tableData; + } + + @AllArgsConstructor + @Data + @Builder + public static class AlchemyResponseOutputTable implements CoproProcessor.Entity { + + @Override + public List getRowData() { + return null; + } + } + +} diff --git a/src/main/java/in/handyman/raven/lib/AlchemyTableResponseAction.java b/src/main/java/in/handyman/raven/lib/AlchemyTableResponseAction.java new file mode 100644 index 00000000..1506df63 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AlchemyTableResponseAction.java @@ -0,0 +1,46 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AlchemyTableResponse; +import java.lang.Exception; +import java.lang.Object; +import java.lang.Override; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "AlchemyTableResponse" +) +public class AlchemyTableResponseAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final AlchemyTableResponse alchemyTableResponse; + + private final Marker aMarker; + + public AlchemyTableResponseAction(final ActionExecutionAudit action, final Logger log, + final Object alchemyTableResponse) { + this.alchemyTableResponse = (AlchemyTableResponse) alchemyTableResponse; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" AlchemyTableResponse:"+this.alchemyTableResponse.getName()); + } + + @Override + public void execute() throws Exception { + + } + + @Override + public boolean executeIf() throws Exception { + return alchemyTableResponse.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/AlphanumericvalidatorAction.java b/src/main/java/in/handyman/raven/lib/AlphanumericvalidatorAction.java new file mode 100644 index 00000000..ddd4c63b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AlphanumericvalidatorAction.java @@ -0,0 +1,73 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.adapters.AlphaNumericAdapter; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import in.handyman.raven.lib.model.Alphanumericvalidator; +import in.handyman.raven.lib.model.Validator; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "Alphanumericvalidator" +) +public class AlphanumericvalidatorAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final Alphanumericvalidator alphanumericvalidator; + + private final Marker aMarker; + private final AdapterInterface alphaNumericAdapter; + + + public AlphanumericvalidatorAction(final ActionExecutionAudit action, final Logger log, + final Object alphanumericvalidator) { + this.alphanumericvalidator = (Alphanumericvalidator) alphanumericvalidator; + this.action = action; + this.log = log; + this.alphaNumericAdapter = new AlphaNumericAdapter(); + this.aMarker = MarkerFactory.getMarker(" Alphanumericvalidator:" + this.alphanumericvalidator.getName()); + } + + public int getAlphaNumericScore(Validator adapter) { + try { + boolean validator = alphaNumericAdapter.getValidationModel(adapter.getInputValue(), adapter.getAllowedSpecialChar(), action); + return validator ? adapter.getThreshold() : 0; + } catch (Exception ex) { + log.error("Exception occurred in getting alpha numeric score", ex); + throw new HandymanException("Exception occurred in getting alpha numeric score", ex, action); + } + } + + @Override + public void execute() throws Exception { + + try { + log.info(aMarker, "Alpha Numeric Count Action for {} has been started" , alphanumericvalidator.getName()); + AdapterInterface alphaNumericAdapter = new AlphaNumericAdapter(); + boolean validator = alphaNumericAdapter.getValidationModel(alphanumericvalidator.getInputValue(), alphanumericvalidator.getAllowedSpecialCharacters(), action); + int confidenceScore = validator ? Integer.parseInt(alphanumericvalidator.getThresholdValue()) : 0; + action.getContext().put("validator.score", String.valueOf(confidenceScore)); + log.info(aMarker, "Alpha Numeric Action for {} has been completed" , alphanumericvalidator.getName()); + + } catch (Exception ex) { + action.getContext().put(alphanumericvalidator.getName().concat(".error"), "true"); + log.error(aMarker, "Exception occurred in alpha numeric validator action ", ex); + throw new HandymanException("Exception occurred in alpha numeric validator action", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return alphanumericvalidator.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/AlphavalidatorAction.java b/src/main/java/in/handyman/raven/lib/AlphavalidatorAction.java new file mode 100644 index 00000000..ac728b70 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AlphavalidatorAction.java @@ -0,0 +1,69 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.adapters.AlphaAdapter; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import in.handyman.raven.lib.model.Alphavalidator; +import in.handyman.raven.lib.model.Validator; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "Alphavalidator" +) +public class AlphavalidatorAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final Alphavalidator alphavalidator; + + private final Marker aMarker; + private final AdapterInterface alphaAdapter; + + public AlphavalidatorAction(final ActionExecutionAudit action, final Logger log, + final Object alphavalidator) { + this.alphavalidator = (Alphavalidator) alphavalidator; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" Alphavalidator:" + this.alphavalidator.getName()); + this.alphaAdapter = new AlphaAdapter(); + } + + public int getAlphaScore(Validator adapter) { + try { + boolean validator = alphaAdapter.getValidationModel(adapter.getInputValue(), adapter.getAllowedSpecialChar(), action); + return validator ? adapter.getThreshold() : 0; + } catch (Exception ex) { + log.error("Exception occurred in getting alpha score", ex); + throw new HandymanException("Exception occurred in getting alpha score", ex, action); + } + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Alpha Count Action for {} has been started" , alphavalidator.getName()); + boolean validator = alphaAdapter.getValidationModel(alphavalidator.getInputValue(), alphavalidator.getAllowedSpecialCharacters(), action); + int confidenceScore = validator ? Integer.parseInt(alphavalidator.getThresholdValue()) : 0; + action.getContext().put("validator.score", String.valueOf(confidenceScore)); + log.info(aMarker, "Alpha Count Action for {} has been completed" , alphavalidator.getName()); + } catch (Exception ex) { + action.getContext().put(alphavalidator.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred ", ex); + throw new HandymanException("Failed to execute", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return alphavalidator.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/AssetInfoAction.java b/src/main/java/in/handyman/raven/lib/AssetInfoAction.java new file mode 100644 index 00000000..2ba3e482 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AssetInfoAction.java @@ -0,0 +1,305 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AssetInfo; +import in.handyman.raven.util.CommonQueryUtil; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.commons.io.FilenameUtils; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.result.ResultIterable; +import org.jdbi.v3.core.statement.Query; +import org.jdbi.v3.core.statement.Update; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; + +import static java.lang.Math.random; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "AssetInfo" +) +public class AssetInfoAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final AssetInfo assetInfo; + + private final Marker aMarker; + + private final Integer writeBatchSize = 1000; + + public AssetInfoAction(final ActionExecutionAudit action, final Logger log, + final Object assetInfo) { + this.assetInfo = (AssetInfo) assetInfo; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" AssetInfo:" + this.assetInfo.getName()); + } + + @Override + public void execute() throws Exception { + + Long tenantId= Long.valueOf(action.getContext().get("tenant_id")); + try { + log.info(aMarker, "Asset Info Action for {} has been started", assetInfo.getName()); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(assetInfo.getResourceConn()); + final List tableInfos = new ArrayList<>(); + + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(assetInfo.getValues()); + AtomicInteger i = new AtomicInteger(0); + formattedQuery.forEach(sqlToExecute -> { + log.info(aMarker, "executing query {} from index {}", sqlToExecute, i.getAndIncrement()); + Query query = handle.createQuery(sqlToExecute); + ResultIterable resultIterable = query.mapToBean(inputResult.class); + List detailList = resultIterable.stream().collect(Collectors.toList()); + tableInfos.addAll(detailList); + log.info(aMarker, "executed query from index {}", i.get()); + }); + }); + List pathList = new ArrayList<>(); + List fileInfos = new ArrayList<>(); + tableInfos.forEach(tableInfo -> { + try { + log.info(aMarker, "executing for the file {}", tableInfo); + final String filePathString = Optional.ofNullable(tableInfo.getFilePath()).map(String::valueOf).orElse("[]"); + log.info(aMarker, "file path string {}", filePathString); + File file = new File(filePathString); + log.info(aMarker, "created file {}", file); + log.info("check file is directory {}", file.isDirectory()); + log.info("check file is a file path {}", file.isFile()); + if (file.isDirectory()) { + log.info(aMarker, "File is a directory {}", file); + try (var files = Files.walk(Path.of(filePathString)).filter(Files::isRegularFile)) { + log.info(aMarker, "Iterating each file in directory {}", files); + files.forEach(pathList::add); + } catch (IOException e) { + log.error(aMarker, "Exception occurred in directory iteration {}", ExceptionUtil.toString(e)); + throw new HandymanException("Exception occurred in directory iteration", e, action); + } + pathList.forEach(path -> { + log.info(aMarker, "insert query for each file from dir {}", path); + fileInfos.add(insertQuery(path.toFile(),tenantId)); + }); + } else if (file.isFile()) { + log.info(aMarker, "insert query for file {}", file); + fileInfos.add(insertQuery(file,tenantId)); + } + + if (fileInfos.size() == this.writeBatchSize) { + log.info(aMarker, "executing batch {}", fileInfos.size()); + consumerBatch(jdbi, fileInfos); + log.info(aMarker, "executed batch {}", fileInfos.size()); + insertSummaryAudit(jdbi, tableInfos.size(), fileInfos.size(), 0, "batch inserted",tenantId); + fileInfos.clear(); + log.info(aMarker, "cleared batch {}", fileInfos.size()); + } + } catch (Exception e) { + log.error(aMarker, "Error in file info for {}", tableInfo, e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Error in file info for " + tableInfo, handymanException, action); + } + }); + if (!fileInfos.isEmpty()) { + log.info(aMarker, "executing final batch {}", fileInfos.size()); + consumerBatch(jdbi, fileInfos); + log.info(aMarker, "executed final batch {}", fileInfos.size()); + insertSummaryAudit(jdbi, tableInfos.size(), fileInfos.size(), 0, "final batch inserted",tenantId); + fileInfos.clear(); + log.info(aMarker, "cleared final batch {}", fileInfos.size()); + } + + } catch (Exception e) { + action.getContext().put(assetInfo.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred ", e); + throw new HandymanException("Exception occurred in asset info execute", e, action); + } + log.info(aMarker, "Asset Info Action for {} has been completed", assetInfo.getName()); + } + + public FileInfo insertQuery(File file,Long tenantId) { + FileInfo fileInfoBuilder = new FileInfo(); + try { + log.info(aMarker, "insert query main caller for the file {}", file); + String sha1Hex; + try (InputStream is = Files.newInputStream(Path.of(file.getPath()))) { + sha1Hex = org.apache.commons.codec.digest.DigestUtils.sha1Hex(is); + } catch (IOException e) { + log.error("Error in reading input stream {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in reading input stream", e, action); + } + log.info(aMarker, "checksum for file {} and its {}", file, sha1Hex); + var fileSize = file.length() / 1024; + String fileExtension = FilenameUtils.getExtension(file.getName()); + String fielAbsolutePath = file.getAbsolutePath(); + String base64ForPathValue = getBase64ForPath(fielAbsolutePath, fileExtension); + fileInfoBuilder = FileInfo.builder() + .fileId(FilenameUtils.removeExtension(file.getName()) + "_" + ((int) (900000 * random() + 100000))) + .tenantId(tenantId) + .fileChecksum(sha1Hex) + .fileExtension(fileExtension) + .fileName(FilenameUtils.removeExtension(file.getName())) + .filePath(fielAbsolutePath) + .fileSize(String.valueOf(fileSize)) + .rootPipelineId(Long.valueOf(action.getContext().get("pipeline-id"))) + .processId(Long.valueOf(action.getContext().get("process-id"))) + .encode(base64ForPathValue) + .build(); + log.info(aMarker, "File Info Builder {}", fileInfoBuilder); + } catch (Exception ex) { + log.error(aMarker, "error occurred in builder {}", ExceptionUtil.toString(ex)); + throw new HandymanException("Failed to execute {} ", ex, action); + } + return fileInfoBuilder; + } + + void consumerBatch(final Jdbi jdbi, List resultQueue) { + Long tenantId= Long.valueOf(action.getContext().get("tenant_id")); + try { + resultQueue.forEach(insert -> { + jdbi.useTransaction(handle -> { + try { + handle.createUpdate("INSERT INTO " + assetInfo.getAssetTable() + "(file_id,process_id,root_pipeline_id, file_checksum, file_extension, file_name, file_path, file_size,encode,tenant_id)" + + "VALUES(:fileId,:processId, :rootPipelineId, :fileChecksum, :fileExtension, :fileName, :filePath, :fileSize,:encode,:tenantId);") + .bindBean(insert).execute(); + log.info(aMarker, "inserted {} into source of origin", insert); + } catch (Throwable t) { + insertSummaryAudit(jdbi, 0, 0, 1, "failed in batch for " + insert.getFileName(),tenantId); + log.error(aMarker, "error inserting result {}", resultQueue, t); + } + + }); + } + ); + } catch (Exception e) { + insertSummaryAudit(jdbi, 0, 0, resultQueue.size(), "failed in batch insert",tenantId); + log.error(aMarker, "error inserting result {}", resultQueue, e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("error inserting result" + resultQueue, handymanException, action); + } + } + + void insertSummaryAudit(final Jdbi jdbi, int rowCount, int executeCount, int errorCount, String comments,Long tenantId) { + try { + SanitarySummary summary = new SanitarySummary().builder() + .rowCount(rowCount) + .correctRowCount(executeCount) + .errorRowCount(errorCount) + .comments(comments) + .tenantId(tenantId) + .build(); + jdbi.useTransaction(handle -> { + Update update = handle.createUpdate(" INSERT INTO " + assetInfo.getAuditTable() + + " ( row_count, correct_row_count, error_row_count,comments, created_at,tenant_id) " + + " VALUES(:rowCount, :correctRowCount, :errorRowCount, :comments, NOW(),:tenantId);"); + Update bindBean = update.bindBean(summary); + bindBean.execute(); + }); + } catch (Exception exception) { + log.error(aMarker, "error inserting into batch insert audit {}", ExceptionUtil.toString(exception)); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("error inserting into batch insert audit", handymanException, action); + + } + } + + public String getBase64ForPath(String imagePath,String fileExtension) throws IOException { + String base64Image = new String(); + try { + if(!Objects.equals(fileExtension, "pdf")) { + + // Read the image file into a byte array + byte[] imageBytes = Files.readAllBytes(Path.of(imagePath)); + + // Encode the byte array to Base64 + base64Image = Base64.getEncoder().encodeToString(imageBytes); + + // Print the Base64 encoded string + log.info(aMarker, "base 64 created for this file {}", imagePath); + } + } catch (Exception e) { + log.error(aMarker, "error occurred in creating base 64 {}", ExceptionUtil.toString(e)); + throw new HandymanException("error occurred in creating base 64 {} ", e, action); + } + + return base64Image; + } + + + @Override + public boolean executeIf() throws Exception { + return assetInfo.getCondition(); + } + + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class FileInfo { + private String fileId; + private Long processId; + private Long tenantId; + private Long rootPipelineId; + private String fileChecksum; + private String fileExtension; + private String fileName; + private String filePath; + private String fileSize; + private String encode; + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class SanitarySummary { + private int rowCount; + private int correctRowCount; + private int errorRowCount; + private String comments; + private Long tenantId; + + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class inputResult { + private int inboundId; + private String createdOn; + private String createdUserId; + private String lastUpdatedOn; + private String lastUpdatedUserId; + private Long tenantId; + private String filePath; + private String documentId; + } +} \ No newline at end of file diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/AssignAction.java b/src/main/java/in/handyman/raven/lib/AssignAction.java similarity index 55% rename from handyman.raven/src/main/java/in/handyman/raven/lib/AssignAction.java rename to src/main/java/in/handyman/raven/lib/AssignAction.java index 06a70b12..76437a71 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/AssignAction.java +++ b/src/main/java/in/handyman/raven/lib/AssignAction.java @@ -1,5 +1,6 @@ package in.handyman.raven.lib; +import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.access.ResourceAccess; import in.handyman.raven.lambda.action.ActionExecution; import in.handyman.raven.lambda.action.IActionExecution; @@ -37,23 +38,29 @@ public AssignAction(final ActionExecutionAudit actionExecutionAudit, final Logge @Override public void execute() throws Exception { + log.info(aMarker, "Assign Action for {} has been started" , assign.getName()); final String dbSrc = assign.getSource(); log.info(aMarker, " input variables id: {}, name: {}, source-database: {} ", actionExecutionAudit.getActionId(), assign.getName(), dbSrc); - log.info(aMarker, "Sql input post parameter ingestion \n {}", assign.getValue()); + log.debug(aMarker, "Sql input post parameter ingestion \n {}", assign.getValue()); final Map context = actionExecutionAudit.getContext(); - final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(dbSrc); - jdbi.useTransaction(handle -> { - final List formattedQuery = CommonQueryUtil.getFormattedQuery(assign.getValue()); - formattedQuery.forEach(sqlToExecute -> { - log.info(aMarker, "Execution query sql#{} on db=#{}", sqlToExecute, dbSrc); - handle.createQuery(sqlToExecute).mapToMap().forEach(stringObjectMap -> stringObjectMap.forEach((s, o) ->{ - context.put(assign.getName().isEmpty()?s:String.format("%s.%s",assign.getName(),s), String.valueOf(o)); - log.info("Value "+ o +" has been added for "+s); - })); + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(dbSrc); + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(assign.getValue()); + formattedQuery.forEach(sqlToExecute -> { + log.info(aMarker, "Execution query sql#{} on db=#{}", sqlToExecute, dbSrc); + handle.createQuery(sqlToExecute).mapToMap().forEach(stringObjectMap -> stringObjectMap.forEach((s, o) -> { + context.put(assign.getName().isEmpty() ? s : String.format("%s.%s", assign.getName(), s), String.valueOf(o)); + log.debug("Value " + o + " has been added for " + s); + })); + }); }); - }); - + log.info(aMarker, "Assign Action for {} has been Completed" , assign.getName()); + } catch (Exception e) { + log.error(aMarker, "The Exception occurred ", e); + throw new HandymanException("Failed to execute", e, actionExecutionAudit); + } } @Override diff --git a/src/main/java/in/handyman/raven/lib/AuthTokenAction.java b/src/main/java/in/handyman/raven/lib/AuthTokenAction.java new file mode 100644 index 00000000..d74b2df7 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AuthTokenAction.java @@ -0,0 +1,105 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AuthToken; +import in.handyman.raven.util.InstanceUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Map; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "AuthToken" +) +public class AuthTokenAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + public static final String GATEKEEPER_URL = "gatekeeper.url"; + public static final String GATEKEEPER_APPID = "gatekeeper.appid"; + private final ActionExecutionAudit action; + + private final Logger log; + + private final AuthToken authToken; + + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + private final String appId; + + public AuthTokenAction(final ActionExecutionAudit action, final Logger log, + final Object authToken) { + this.authToken = (AuthToken) authToken; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" AuthToken:" + this.authToken.getName()); + this.URI = action.getContext().get(GATEKEEPER_URL); + this.appId = action.getContext().get(GATEKEEPER_APPID); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Auth Token Generation Action for {} has been started", authToken.getName()); + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("appId", appId); + objectNode.put("tenantId", Long.valueOf(action.getContext().get("tenant_id"))); + log.info(aMarker, " Input variables id : {}", action.getActionId()); + + // build a request + String gatekeeperUrl = URI + "api/v1/refresh"; + Request request = new Request.Builder().url(gatekeeperUrl) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + String name = authToken.getName(); + if (log.isInfoEnabled()) { + log.info(aMarker, "The Request Details url {} , appID {} ", gatekeeperUrl, appId); + } + + + try (Response response = httpclient.newCall(request).execute()) { + assert response.body() != null; + String responseBody = response.body().string(); + if (response.isSuccessful()) { + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + Map responseMap = mapper.readValue(responseBody, new TypeReference<>() { + }); + String authToken = responseMap.get("authToken"); + action.getContext().put(name.concat(".token"), authToken); + + } else { + log.info(aMarker, "The Failure Response {} --> {}", name, responseBody); + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), responseBody); + } + action.getContext().put(name + ".isSuccessful", String.valueOf(response.isSuccessful())); + } catch (Exception e) { + log.error(aMarker, "The Exception occurred ", e); + action.getContext().put(name + ".isSuccessful", "false"); + throw new HandymanException("Failed to execute", e, action); + } + log.info(aMarker, "Auth Token Generation Action for {} has been completed", authToken.getName()); + + } + + @Override + public boolean executeIf() throws Exception { + return authToken.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/AutoRotationAction.java b/src/main/java/in/handyman/raven/lib/AutoRotationAction.java new file mode 100644 index 00000000..44e8c659 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AutoRotationAction.java @@ -0,0 +1,145 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AutoRotation; +import in.handyman.raven.lib.model.autorotation.AutoRotationConsumerProcess; +import in.handyman.raven.lib.model.autorotation.AutoRotationInputTable; +import in.handyman.raven.lib.model.autorotation.AutoRotationOutputTable; +import okhttp3.MediaType; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "AutoRotation" +) +public class AutoRotationAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + public static final String DEFAULT_SOCKET_TIME_OUT = "100"; + public static final String COPRO_CLIENT_SOCKET_TIMEOUT = "copro.client.socket.timeout"; + public static final String COPRO_CLIENT_API_SLEEPTIME = "copro.client.api.sleeptime"; + public static final String CONSUMER_API_COUNT = "auto.rotation.consumer.API.count"; + public static final String WRITE_BATCH_SIZE = "write.batch.size"; + public static final String THREAD_SLEEP_TIME = "1000"; + public static final String INSERT_INTO = "INSERT INTO"; + public static final String DEFAULT_INFO_SCHEMA_NAME = "info"; + public static final String AUTO_ROTATION = "auto_rotation"; + public static final String COLUMN_LIST = "origin_id,group_id,tenant_id,template_id,process_id, processed_file_path,paper_no, status,stage,message,created_on,root_pipeline_id,model_name,model_version"; + public static final String VAL_STRING_LIST = "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + public static final String READ_BATCH_SIZE = "read.batch.size"; + public static final String COPRO_AUTOROTATION_URL1 = "copro.autorotation.url"; + private final int threadSleepTime; + private final Integer consumerApiCount; + private final Integer writeBatchSize; + private final String schemaName; + private final String targetTableName; + private final String columnList; + private final String autoRotateUrl; + private final String outputDir; + private final String insertQuery; + + private int timeout; + + private final ActionExecutionAudit action; + private final Logger log; + private final AutoRotation autoRotation; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + private final int readBatchSize; + + + public AutoRotationAction(final ActionExecutionAudit action, final Logger log, + final Object autoRotation) { + this.autoRotation = (AutoRotation) autoRotation; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" AutoRotation:" + this.autoRotation.getName()); + this.URI = ((AutoRotation) autoRotation).getEndPoint(); + String socketTimeStr = action.getContext().get(COPRO_CLIENT_SOCKET_TIMEOUT); + socketTimeStr = socketTimeStr != null && socketTimeStr.trim().length() > 0 ? socketTimeStr : DEFAULT_SOCKET_TIME_OUT; + this.timeout = Integer.parseInt(socketTimeStr); + String threadSleepTimeStr = action.getContext().get(COPRO_CLIENT_API_SLEEPTIME); + threadSleepTimeStr = threadSleepTimeStr != null && threadSleepTimeStr.trim().length() > 0 ? threadSleepTimeStr : THREAD_SLEEP_TIME; + this.threadSleepTime = Integer.parseInt(threadSleepTimeStr); + //TODO - Please do same as above to ensure that you don't assume default values + String consumerApiCountStr = this.action.getContext().get(CONSUMER_API_COUNT); + consumerApiCount = Integer.valueOf(consumerApiCountStr); + String writeBatchSizeStr = this.action.getContext().get(WRITE_BATCH_SIZE); + this.writeBatchSize = Integer.valueOf(writeBatchSizeStr); + this.readBatchSize = Integer.valueOf(action.getContext().get(READ_BATCH_SIZE)); + this.schemaName = DEFAULT_INFO_SCHEMA_NAME; + this.targetTableName = AUTO_ROTATION; + this.columnList = COLUMN_LIST; + this.autoRotateUrl = this.autoRotation.getEndPoint(); + this.outputDir = Optional.ofNullable(this.autoRotation.getOutputDir()).map(String::valueOf).orElse(null); + insertQuery = INSERT_INTO + " " + schemaName + "." + targetTableName + "(" + columnList + ") " + " " + VAL_STRING_LIST; + } + + @Override + public void execute() throws Exception { + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(autoRotation.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "Auto Rotation Action for {} has been started", autoRotation.getName()); + final List urls = Optional.ofNullable(autoRotateUrl).map(s -> Arrays.stream(s.split(",")).map(urlItem -> { + try { + return new URL(urlItem); + } catch (MalformedURLException e) { + log.error("Error in processing the URL " + urlItem, e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + AutoRotationInputTable autoRotationInputTable = new AutoRotationInputTable(); + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + AutoRotationOutputTable.class, + AutoRotationInputTable.class, + jdbi, log, + autoRotationInputTable, urls, action); + + coproProcessor.startProducer(autoRotation.getQuerySet(), readBatchSize); + Thread.sleep(threadSleepTime); + final AutoRotationConsumerProcess autoRotationConsumerProcess = new AutoRotationConsumerProcess(log, aMarker, action, outputDir, this); + coproProcessor.startConsumer(insertQuery, consumerApiCount, writeBatchSize, autoRotationConsumerProcess); + log.info(aMarker, " Auto Rotation Action has been completed {} ", autoRotation.getName()); + } catch (Exception e) { + action.getContext().put(autoRotation.getName() + ".isSuccessful", "false"); + log.error(aMarker, "error in execute method for auto rotation ", e); + throw new HandymanException("error in execute method for auto rotation", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return autoRotation.getCondition(); + } + + public Integer getTimeOut() { + return this.timeout; + } + +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/AutoRotationResponse.java b/src/main/java/in/handyman/raven/lib/AutoRotationResponse.java new file mode 100644 index 00000000..18671eb6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/AutoRotationResponse.java @@ -0,0 +1,15 @@ +package in.handyman.raven.lib; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class AutoRotationResponse { + + private String processedFilePaths; +} diff --git a/src/main/java/in/handyman/raven/lib/BlankPageRemoverAction.java b/src/main/java/in/handyman/raven/lib/BlankPageRemoverAction.java new file mode 100644 index 00000000..29f5b0d0 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/BlankPageRemoverAction.java @@ -0,0 +1,230 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.BlankPageRemover; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "BlankPageRemover" +) +public class BlankPageRemoverAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final BlankPageRemover blankPageRemover; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + private final Marker aMarker; + + public BlankPageRemoverAction(final ActionExecutionAudit action, final Logger log, + final Object blankPageRemover) { + this.blankPageRemover = (BlankPageRemover) blankPageRemover; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" BlankPageRemover:" + this.blankPageRemover.getName()); + this.URI = action.getContext().get("copro.blank-page-remover.url"); + + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, " Blank Page Removal Action has been started {} ", blankPageRemover.getName()); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(blankPageRemover.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + final String outputDir = Optional.ofNullable(blankPageRemover.getOutputDir()).map(String::valueOf).orElse(null); + //5. build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO info.blank_page_removal_" + blankPageRemover.getProcessId() + "(origin_id,group_id,processed_file_path, status,stage,message,created_on) " + + " VALUES(?,?,?, ?,?,?,now())"; + log.info(aMarker, "Blank Page Removal Insert query {}", insertQuery); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(action.getContext().get("copro.blank-page-remover.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new RuntimeException(e); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + BlankPageRemoverAction.BlankPageRemoverOutputTable.class, + BlankPageRemoverAction.BlankPageRemoverInputTable.class, + jdbi, log, + new BlankPageRemoverAction.BlankPageRemoverInputTable(), urls, action); + + //4. call the method start producer from coproprocessor + coproProcessor.startProducer(blankPageRemover.getQuerySet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + Thread.sleep(1000); + //8. call the method start consumer from coproprocessor + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("blank.page.removal.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), new BlankPageRemoverAction.BlankPageRemoverConsumerProcess(log, aMarker, action, outputDir)); + log.info(aMarker, " Blank Page Removal Action has been completed {} ", blankPageRemover.getName()); + } catch (Throwable t) { + action.getContext().put(blankPageRemover.getName() + ".isSuccessful", "false"); + log.error(aMarker, "error at blank page removal execute method {}", t); + } + } + + //6. write consumer process class which implements CoproProcessor.ConsumerProcess + public static class BlankPageRemoverConsumerProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final String outputDir; + + public final ActionExecutionAudit action; + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public BlankPageRemoverConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action, String outputDir) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.outputDir = outputDir; + } + + //7. overwrite the method process in coproprocessor, write copro api logic inside this method + @Override + public List process(URL endpoint, BlankPageRemoverAction.BlankPageRemoverInputTable entity) throws JsonProcessingException { + List parentObj = new ArrayList<>(); + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("inputFilePath", entity.filePath); + objectNode.put("outputDir", outputDir); + log.info(aMarker, " Input variables id : {}", action.getActionId()); + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + log.debug(aMarker, "Request has been build with the parameters \n URI : {} "); + log.debug(aMarker, "The Request Details: {}", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + JSONObject parentResponseObject = new JSONObject(responseBody); + parentObj.add( + BlankPageRemoverOutputTable + .builder() + .processedFilePath(Optional.ofNullable(parentResponseObject.get("processedFilePath")).map(String::valueOf).orElse(null)) + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(entity.getGroupId()) + .status("COMPLETED") + .stage("BLANK_PAGE_REMOVAL") + .message("Blankpage removal finished") + .build()); + }else{ + parentObj.add( + BlankPageRemoverOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(entity.getGroupId()) + .status("FAILED") + .stage("BLANK_PAGE_REMOVAL") + .message(response.message()) + .build()); + log.info(aMarker, "The Exception occurred in blank page remover "); + } + } catch (Exception e) { + parentObj.add( + BlankPageRemoverOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(entity.getGroupId()) + .status("FAILED") + .stage("BLANK_PAGE_REMOVAL") + .message(ExceptionUtil.toString(e)) + .build()); + log.error(aMarker, "The Exception occurred in blank page remover ", e); + //TODO insert query for error queue + } + return parentObj; + } + + } + + @Override + public boolean executeIf() throws Exception { + return blankPageRemover.getCondition(); + } + + //1. input pojo from select query, which implements CoproProcessor.Entity + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class BlankPageRemoverInputTable implements CoproProcessor.Entity { + private String originId; + private Integer groupId; + private String inboundId; + private Long tenantId; + private String filePath; + private String outputDir; + private String documentId; + + + @Override + public List getRowData() { + return null; + } + } + + //2. output pojo for table, which implements CoproProcessor.Entity + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class BlankPageRemoverOutputTable implements CoproProcessor.Entity { + + private String originId; + private Integer groupId; + private String processedFilePath; + private String status; + private String stage; + private String message; + + @Override + public List getRowData() { + return Stream.of(this.originId, this.groupId, this.processedFilePath,this.status,this.stage,this.message).collect(Collectors.toList()); + } + } + + +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/BlankPageRemoverConsumerProcess.java b/src/main/java/in/handyman/raven/lib/BlankPageRemoverConsumerProcess.java new file mode 100644 index 00000000..a18346a4 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/BlankPageRemoverConsumerProcess.java @@ -0,0 +1,103 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.*; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + +//6. write consumer process class which implements CoproProcessor.ConsumerProcess +public class BlankPageRemoverConsumerProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final String outputDir; + + public final ActionExecutionAudit action; + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public BlankPageRemoverConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action, String outputDir) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.outputDir = outputDir; + } + + //7. overwrite the method process in coproprocessor, write copro api logic inside this method + @Override + public List process(URL endpoint, BlankPageRemoverInputTable entity) throws JsonProcessingException { + List parentObj = new ArrayList<>(); + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("inputFilePath", entity.getFilePath()); + objectNode.put("outputDir", outputDir); + log.info(aMarker, " Input variables id : {}", action.getActionId()); + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + log.debug(aMarker, "Request has been build with the parameters \n URI : {} ", request.body()); + log.debug(aMarker, "The Request Details: {}", request); + Integer groupId = entity.getGroupId(); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + JSONObject parentResponseObject = new JSONObject(responseBody); + parentObj.add( + BlankPageRemoverOutputTable + .builder() + .processedFilePath(Optional.ofNullable(parentResponseObject.get("processedFilePath")).map(String::valueOf).orElse(null)) + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(groupId) + .status("COMPLETED") + .stage("BLANK_PAGE_REMOVAL") + .message("Blankpage removal finished") + .build()); + } else { + parentObj.add( + BlankPageRemoverOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(groupId) + .status("FAILED") + .stage("BLANK_PAGE_REMOVAL") + .message(response.message()) + .build()); + log.info(aMarker, "The Exception occurred in blank page remover "); + } + } catch (Exception e) { + parentObj.add( + BlankPageRemoverOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(groupId) + .status("FAILED") + .stage("BLANK_PAGE_REMOVAL") + .message(ExceptionUtil.toString(e)) + .build()); + log.info(aMarker, "The Exception occurred in blank page remover ", e); + //TODO insert query for error queue + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("AutoRotation consumer failed for batch/group "+groupId, + handymanException, + this.action); + } + return parentObj; + } + +} diff --git a/src/main/java/in/handyman/raven/lib/BlankPageRemoverInputTable.java b/src/main/java/in/handyman/raven/lib/BlankPageRemoverInputTable.java new file mode 100644 index 00000000..d3cc19e9 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/BlankPageRemoverInputTable.java @@ -0,0 +1,29 @@ +package in.handyman.raven.lib; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +//1. input pojo from select query, which implements CoproProcessor.Entity +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class BlankPageRemoverInputTable implements CoproProcessor.Entity { + private String originId; + private Integer groupId; + private String inboundId; + private Long tenantId; + private String filePath; + private String outputDir; + private String documentId; + + + @Override + public List getRowData() { + return null; + } +} diff --git a/src/main/java/in/handyman/raven/lib/BlankPageRemoverOutputTable.java b/src/main/java/in/handyman/raven/lib/BlankPageRemoverOutputTable.java new file mode 100644 index 00000000..36638acc --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/BlankPageRemoverOutputTable.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +//2. output pojo for table, which implements CoproProcessor.Entity +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class BlankPageRemoverOutputTable implements CoproProcessor.Entity { + + private String originId; + private Integer groupId; + private String processedFilePath; + private String status; + private String stage; + private String message; + + @Override + public List getRowData() { + return Stream.of(this.originId, this.groupId, this.processedFilePath, this.status, this.stage, this.message).collect(Collectors.toList()); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/CallProcessAction.java b/src/main/java/in/handyman/raven/lib/CallProcessAction.java similarity index 55% rename from handyman.raven/src/main/java/in/handyman/raven/lib/CallProcessAction.java rename to src/main/java/in/handyman/raven/lib/CallProcessAction.java index 621d9c17..6cb95a4d 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/CallProcessAction.java +++ b/src/main/java/in/handyman/raven/lib/CallProcessAction.java @@ -1,6 +1,5 @@ package in.handyman.raven.lib; -import com.zaxxer.hikari.HikariDataSource; import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.access.ResourceAccess; import in.handyman.raven.lambda.action.ActionExecution; @@ -11,12 +10,14 @@ import in.handyman.raven.lambda.process.LContext; import in.handyman.raven.lib.model.CallProcess; import in.handyman.raven.util.CommonQueryUtil; +import org.jdbi.v3.core.Jdbi; import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.MarkerFactory; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Optional; import java.util.concurrent.CountDownLatch; @@ -43,21 +44,26 @@ public CallProcessAction(final ActionExecutionAudit actionExecutionAudit, final @Override public void execute() throws Exception { + log.info(aMarker, "Call Process Action for {} has been started" , callProcess.getName()); final String fileRelativePath = callProcess.getSource(); var targetProcess = callProcess.getTarget(); var dbSrc = callProcess.getDatasource(); var sql = callProcess.getValue().replaceAll("\"", ""); log.info(aMarker, " id#{}, name#{}, calledProcess#{}, calledFile#{}, db=#{}", actionExecutionAudit.getActionId(), callProcess.getName(), targetProcess, fileRelativePath, dbSrc); - final HikariDataSource source = ResourceAccess.rdbmsConn(dbSrc); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(dbSrc); var runContext = new ArrayList(); final Map context = actionExecutionAudit.getContext(); - try (var conn = source.getConnection()) { - try (var stmt = conn.createStatement()) { - try (var rs = stmt.executeQuery(sql)) { - var columnCount = rs.getMetaData().getColumnCount(); - while (rs.next()) { - CommonQueryUtil.addKeyConfig(context, log, - rs, columnCount, ""); + try { + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(sql); + formattedQuery.forEach(sqlToExecute -> { + log.info(aMarker, "Execution query sql#{} on db=#{}", sqlToExecute, dbSrc); + handle.createQuery(sqlToExecute).mapToMap().forEach(stringObjectMap -> { + stringObjectMap.forEach((s, o) -> { + context.put(s, String.valueOf(o)); + log.debug("Value " + o + " has been added for " + s); + }); final LContext lContext = LContext.builder() .inheritedContext(new HashMap<>(context)) .lambdaName(actionExecutionAudit.getLambdaName()) @@ -71,36 +77,50 @@ public void execute() throws Exception { .rootPipelineId(actionExecutionAudit.getRootPipelineId()) .build(); runContext.add(lContext); - } - } - } + }); + }); + }); + } catch (Exception e) { + log.error(aMarker, "The Exception occurred ", e); + throw new HandymanException("Failed to execute call process action for call process "+ callProcess.getName(), e, actionExecutionAudit); } + log.info(aMarker, "Completed name#{}, calledProcess#{}, calledFile#{}, db=#{}", callProcess.getName(), targetProcess, fileRelativePath, dbSrc); - final int forkBatchSize = Optional.ofNullable(callProcess.getForkBatchSize()).map(Integer::valueOf).orElse(0); - if (forkBatchSize != 0) { - var executor = Executors.newWorkStealingPool(forkBatchSize); - var counter = new CountDownLatch(runContext.size()); - runContext.forEach(lContext -> { - final LambdaCallable lambdaCallable = new LambdaCallable(lContext, counter); - executor.submit(lambdaCallable); - }); + try { + final int forkBatchSize = Optional.ofNullable(callProcess.getForkBatchSize()).map(Integer::valueOf).orElse(0); + if (forkBatchSize != 0) { + var executor = Executors.newWorkStealingPool(forkBatchSize); + var counter = new CountDownLatch(runContext.size()); + runContext.forEach(lContext -> { + final LambdaCallable lambdaCallable = new LambdaCallable(lContext, counter); + executor.submit(lambdaCallable); + }); - try { - counter.await(); - } catch (InterruptedException e) { - throw new HandymanException("Call process parallel failed ", e); - } + try { + counter.await(); + } catch (InterruptedException e) { + log.error(aMarker, "The Exception occurred ", e); + throw new HandymanException("Call process parallel failed ", e, actionExecutionAudit); + } - } else { - runContext.forEach(lContext -> { - final LambdaCallable lambdaCallable = new LambdaCallable(lContext, null); - final PipelineExecutionAudit start = lambdaCallable.call(); - context.putAll(start.getContext()); - }); + } else { + runContext.forEach(lContext -> { + final LambdaCallable lambdaCallable = new LambdaCallable(lContext, null); + try { + final PipelineExecutionAudit start = lambdaCallable.call(); + context.putAll(start.getContext()); + } catch (Exception e) { + log.error(aMarker, "Failed process {}", lContext, e); + } + }); + } + } catch (Exception e) { + log.error(aMarker, "The Exception occurred ", e); + throw new HandymanException("Failed to execute", e, actionExecutionAudit); } - + log.info(aMarker, "Call Process Action for {} has been Completed" , callProcess.getName()); } diff --git a/src/main/java/in/handyman/raven/lib/CharactercountAction.java b/src/main/java/in/handyman/raven/lib/CharactercountAction.java new file mode 100644 index 00000000..51e8353c --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/CharactercountAction.java @@ -0,0 +1,73 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.adapters.CharacterCountAdapter; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import in.handyman.raven.lib.model.Charactercount; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "Charactercount" +) +public class CharactercountAction implements IActionExecution { + private final ActionExecutionAudit action; + private final Logger log; + private final Charactercount charactercount; + private final Marker aMarker; + static AdapterInterface charCountAdapter; + private static int limitedCharCount; + + + public CharactercountAction(final ActionExecutionAudit action, final Logger log, + final Object charactercount) { + this.charactercount = (Charactercount) charactercount; + this.action = action; + this.log = log; + this.charCountAdapter = new CharacterCountAdapter(); + this.limitedCharCount = Integer.parseInt(action.getContext().get("validaiton.char-limit-count")); + this.aMarker = MarkerFactory.getMarker(" Charactercount:" + this.charactercount.getName()); + } + + public static int getCharCount(String input, int countLimit, int threshold) { + try { + int charCount = charCountAdapter.getThresholdScore(input); + if(charCount<=limitedCharCount){ + return 0; + } + return charCount <= countLimit ? threshold : 0; + } catch (Exception ex) { + throw new HandymanException("Failed to execute char count", ex); + } + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Character Count Action for {} has been started" , charactercount.getName()); + AdapterInterface charCountAdapter = new CharacterCountAdapter(); + int wordCount = charCountAdapter.getThresholdScore(charactercount.getInputValue()); + int confidenceScore = wordCount <= Integer.parseInt(charactercount.getCountLimit()) + ? Integer.parseInt(charactercount.getThresholdValue()) : 0; + action.getContext().put(charactercount.getName().concat(".score"), String.valueOf(confidenceScore)); + log.info(aMarker, "Character Count Action for {} has been completed" , charactercount.getName()); + + } catch (Exception ex) { + action.getContext().put(charactercount.getName().concat(".error"), "true"); + log.info(aMarker, "The Exception occurred ", ex); + throw new HandymanException("Failed to execute", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return charactercount.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/CheckboxClassificationAction.java b/src/main/java/in/handyman/raven/lib/CheckboxClassificationAction.java new file mode 100644 index 00000000..0303459b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/CheckboxClassificationAction.java @@ -0,0 +1,88 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.CheckboxClassification; +import in.handyman.raven.util.ExceptionUtil; +import in.handyman.raven.util.InstanceUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "CheckboxClassification" +) +public class CheckboxClassificationAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final CheckboxClassification checkboxClassification; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + public CheckboxClassificationAction(final ActionExecutionAudit action, final Logger log, + final Object checkboxClassification) { + this.checkboxClassification = (CheckboxClassification) checkboxClassification; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" CheckboxClassification:" + this.checkboxClassification.getName()); + this.URI = action.getContext().get("copro.checkbox.url"); + + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Checkbox Classification Action for {} has been started" , checkboxClassification.getName()); + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("inputFilePath", checkboxClassification.getFilePath()); + objectNode.put("outputDir", checkboxClassification.getOutputDir()); + objectNode.put("modelFilePath", checkboxClassification.getModelFilePath()); + + log.info(aMarker, " Input variables id : {}", action.getActionId()); + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + log.debug(aMarker, "The Request Details: {}", objectNode); + String name = checkboxClassification.getName() + "_response"; + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + action.getContext().put(name, responseBody); + action.getContext().put(name.concat(".error"), "false"); + } else { + log.info(aMarker, "The Failure Response {} --> {}", name, responseBody); + action.getContext().put(name.concat(".error"), "true"); + } + log.info(aMarker, "Checkbox Classification Action for {} has been completed" , checkboxClassification.getName()); + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), e.getMessage()); + log.error(aMarker, "Exception occurred with {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return checkboxClassification.getCondition(); + } +} + diff --git a/src/main/java/in/handyman/raven/lib/CheckboxVqaAction.java b/src/main/java/in/handyman/raven/lib/CheckboxVqaAction.java new file mode 100644 index 00000000..5dca1fc0 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/CheckboxVqaAction.java @@ -0,0 +1,272 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.CheckboxVqa; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "CheckboxVqa" +) +public class CheckboxVqaAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private static CheckboxVqa checkboxVqa = new CheckboxVqa(); + + private final Marker aMarker; + + public CheckboxVqaAction(final ActionExecutionAudit action, final Logger log, + final Object checkboxVqa) { + this.checkboxVqa = (CheckboxVqa) checkboxVqa; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" CheckboxVqa:" + this.checkboxVqa.getName()); + } + + @Override + public void execute() throws Exception { + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(checkboxVqa.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "Urgency Triage Action for {} has been started", checkboxVqa.getName()); + final String insertQuery = "INSERT INTO urgency_triage.chk_triage_transaction_"+checkboxVqa.getProcessID()+"(created_on, created_user_id, last_updated_on, last_updated_user_id, process_id, group_id, tenant_id, model_score, origin_id, paper_no, template_id, model_id, triage_label, triage_state, paper_type, status, stage, message, checkbox_bbox)" + + "values(now(),?,now(),?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + final List urls = Optional.ofNullable(action.getContext().get("copro.checkbox-vqa.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + CheckboxVqaOutputTable.class, + CheckboxVqaInputTable.class, + jdbi, log, + new CheckboxVqaInputTable(), urls, action); + coproProcessor.startProducer(checkboxVqa.getQuerySet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("ut.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), new CheckboxVqaConsumerProcess(log, aMarker, action)); + log.info(aMarker, " Urgency Triage has been completed {} ", checkboxVqa.getName()); + } catch (Exception t) { + action.getContext().put(checkboxVqa.getName() + ".isSuccessful", "false"); + log.error(aMarker, "Error at urgency triage execute method {}", ExceptionUtil.toString(t)); + throw new HandymanException("error in execute method for urgency triage", t, action); + + } + } + + @Override + public boolean executeIf() throws Exception { + return checkboxVqa.getCondition(); + } + + public static class CheckboxVqaConsumerProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + public final ActionExecutionAudit action; + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public CheckboxVqaConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + } + + @Override + public List process(URL endpoint, CheckboxVqaInputTable entity) throws Exception { + + List parentObj = new ArrayList<>(); + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("inputFilePath", entity.getFilePath()); + objectNode.put("cadModelPath", checkboxVqa.getCadModelPath()); + objectNode.put("cdModelPath", checkboxVqa.getCdModelPath()); + objectNode.put("crModelPath", checkboxVqa.getCrModelPath()); + objectNode.put("textModel", checkboxVqa.getTextModel()); + objectNode.put("crWidth", checkboxVqa.getCrWidth()); + objectNode.put("crHeight", checkboxVqa.getCrHeight()); + objectNode.put("outputDir", checkboxVqa.getOutputDir()); + log.info(aMarker, "Request List {}", objectNode); + + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + log.debug(aMarker, "The Request Details: {}", objectNode); + + + String createdUserId = entity.getCreatedUserId(); + String lastUpdatedUserId = entity.getLastUpdatedUserId(); + Long tenantId = entity.getTenantId(); + Double modelScore = entity.getModelScore(); + Long processId = entity.getProcessId(); + Integer groupId = entity.getGroupId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + String templateId = entity.getTemplateId(); + String modelId = entity.getModelId(); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + String checkboxState = Optional.ofNullable(mapper.readTree(responseBody).get("checkbox_state")).map(JsonNode::asText).orElse(null); + String extractedPrintedText = Optional.ofNullable(mapper.readTree(responseBody).get("extracted_printed_text")).map(JsonNode::asText).orElse(null); + String paperFinalResult = Optional.ofNullable(mapper.readTree(responseBody).get("paper_type")).map(JsonNode::asText).orElse(null); + final String checkboxBoundingBox = Optional.ofNullable(mapper.readTree(responseBody).get("bbox")).map(JsonNode::toString).orElse(null); + parentObj.add(CheckboxVqaOutputTable.builder() + .createdUserId(Optional.ofNullable(createdUserId).map(String::valueOf).orElse(null)) + .lastUpdatedUserId(Optional.ofNullable(lastUpdatedUserId).map(String::valueOf).orElse(null)) + .tenantId(Optional.ofNullable(tenantId).map(Long::valueOf).orElse(null)) + .modelScore(Optional.ofNullable(modelScore).map(String::valueOf).map(Double::parseDouble).orElse(null)) + .processId(Optional.ofNullable(processId).map(String::valueOf).map(Long::parseLong).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(Optional.ofNullable(paperNo).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .templateId(Optional.ofNullable(templateId).map(String::valueOf).orElse(null)) + .modelId(Optional.ofNullable(modelId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .triageLabel(extractedPrintedText) + .bBox(checkboxBoundingBox) + .triageState(checkboxState) + .paperType(paperFinalResult) + .status("COMPLETED") + .stage("TRIAGE_CHECKBOX") + .message("Urgency Triage Finished") + .build()); + log.info(aMarker, "Execute for urgency triage {}",response); + } else { + parentObj.add(CheckboxVqaOutputTable.builder() + .createdUserId(Optional.ofNullable(createdUserId).map(String::valueOf).orElse(null)) + .lastUpdatedUserId(Optional.ofNullable(lastUpdatedUserId).map(String::valueOf).orElse(null)) + .tenantId(Optional.ofNullable(tenantId).map(Long::valueOf).orElse(null)) + .modelScore(Optional.ofNullable(modelScore).map(String::valueOf).map(Double::parseDouble).orElse(null)) + .processId(Optional.ofNullable(checkboxVqa.getProcessID()).map(String::valueOf).map(Long::parseLong).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(Optional.ofNullable(paperNo).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .templateId(Optional.ofNullable(templateId).map(String::valueOf).orElse(null)) + .modelId(Optional.ofNullable(modelId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .status("FAILED") + .stage("TRIAGE_CHECKBOX") + .message(response.message()) + .build()); + log.error(aMarker, "The Exception occurred in urgency triage {}",response); + } + } catch (Exception e) { + parentObj.add(CheckboxVqaOutputTable.builder() + .createdUserId(Optional.ofNullable(createdUserId).map(String::valueOf).orElse(null)) + .lastUpdatedUserId(Optional.ofNullable(lastUpdatedUserId).map(String::valueOf).orElse(null)) + .tenantId(Optional.ofNullable(tenantId).map(Long::valueOf).orElse(null)) + .modelScore(Optional.ofNullable(modelScore).map(String::valueOf).map(Double::parseDouble).orElse(null)) + .processId(Optional.ofNullable(checkboxVqa.getProcessID()).map(String::valueOf).map(Long::parseLong).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(Optional.ofNullable(paperNo).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .templateId(Optional.ofNullable(templateId).map(String::valueOf).orElse(null)) + .modelId(Optional.ofNullable(modelId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .status("FAILED") + .stage("TRIAGE_CHECKBOX") + .message(ExceptionUtil.toString(e)) + .build()); + log.error(aMarker, "The Exception occurred in urgency triage {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Blank Page removal consumer failed for batch/group "+ groupId, handymanException, this.action); + + } + return parentObj; + } + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public static class CheckboxVqaInputTable implements CoproProcessor.Entity { + private String createdUserId; + private String lastUpdatedUserId; + private Long tenantId; + private Double modelScore; + private Long processId; + private Integer groupId; + private String originId; + private Integer paperNo; + private String templateId; + private String modelId; + private String filePath; + + @Override + public List getRowData() { + return null; + } + } + + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public static class CheckboxVqaOutputTable implements CoproProcessor.Entity { + + private String createdUserId; + private String lastUpdatedUserId; + private Long tenantId; + private Double modelScore; + private Long processId; + private Integer groupId; + private String originId; + private Integer paperNo; + private String templateId; + private Integer modelId; + private String triageState; + private String triageLabel; + private String paperType; + private String status; + private String stage; + private String message; + private String bBox; + + @Override + public List getRowData() { + return Stream.of(this.createdUserId, this.lastUpdatedUserId, this.processId, this.groupId, this.tenantId, this.modelScore, + this.originId, this.paperNo, this.templateId, this.modelId, this.triageLabel, this.triageState, + this.paperType, this.status, this.stage, this.message, this.bBox + ).collect(Collectors.toList()); + } + } +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/ChecksumAction.java b/src/main/java/in/handyman/raven/lib/ChecksumAction.java new file mode 100644 index 00000000..68841853 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ChecksumAction.java @@ -0,0 +1,65 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.Checksum; +import in.handyman.raven.util.ExceptionUtil; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Paths; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "Checksum" +) +public class ChecksumAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final Checksum checksum; + + private final Marker aMarker; + + public ChecksumAction(final ActionExecutionAudit action, final Logger log, + final Object checksum) { + this.checksum = (Checksum) checksum; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" Checksum:" + this.checksum.getName()); + } + + @Override + public void execute() throws Exception { + + log.info(aMarker, "Checksum Action for {} has been started", checksum.getName()); + try { + String filePath = checksum.getFilePath(); + Thread.sleep(5000); + log.info(aMarker, "FilePath and Checksum details -> {} {}", filePath, checksum); + + try (InputStream is = Files.newInputStream(Paths.get(filePath))) { + String sha1Hex = org.apache.commons.codec.digest.DigestUtils.sha1Hex(is); + log.debug("MD5 CHECKSUM details {} for file {} ", sha1Hex, filePath); + action.getContext().put(checksum.getName(), sha1Hex); + } + log.info(aMarker, "Checksum Action for {} has been Completed", checksum.getName()); + } catch (Exception e) { + log.error(aMarker, "Error in generating checksum with exception {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in generating checksum", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return checksum.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/ClassificationTypeAction.java b/src/main/java/in/handyman/raven/lib/ClassificationTypeAction.java new file mode 100644 index 00000000..928acfd7 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ClassificationTypeAction.java @@ -0,0 +1,97 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ClassificationType; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "ClassificationType" +) +public class ClassificationTypeAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final ClassificationType classificationType; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + public ClassificationTypeAction(final ActionExecutionAudit action, final Logger log, + final Object classificationType) { + this.classificationType = (ClassificationType) classificationType; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" ClassificationType:" + this.classificationType.getName()); + this.URI = action.getContext().get("copro.classifier-type.url"); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Pixel Classifier Action for {} has been started" , classificationType.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + final ObjectNode objectNode = mapper.createObjectNode(); + + objectNode.put("inputFilePath", classificationType.getInputFilePath()); + objectNode.put("outputDir", classificationType.getOutputDir()); + objectNode.put("modelFilePath", classificationType.getModelFilePath()); + objectNode.set("labels", mapper.readTree(classificationType.getLabels())); + + log.info(aMarker, " Input variables id : {}", action.getActionId()); + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + log.debug(aMarker, "Request has been build with the parameters \n URI : {} \n Input-File-Path : {} \n Output-Directory : {} \n Model-Path : {} \n Path-Labels : {}", URI, classificationType.getInputFilePath(), classificationType.getOutputDir(), classificationType.getModelFilePath(), classificationType.getLabels()); + String name = classificationType.getName() + "_response"; + log.debug(aMarker, "The Request Details: {}", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); +// String labelName = classificationType.getName() + "_label"; + if (response.isSuccessful()) { + action.getContext().put(name, responseBody); +// action.getContext().put(labelName, Optional.ofNullable(mapper.readTree(responseBody).get("label")).map(JsonNode::asText).map(String::toLowerCase).orElseThrow()); + action.getContext().put(name.concat(".error"), "false"); + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + } else { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), responseBody); + log.info(aMarker, "The Failure Response {} --> {}", name, responseBody); + } + log.info(aMarker, "Pixel Classifier Action for {} has been completed", classificationType.getName()); + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), e.getMessage()); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return classificationType.getCondition(); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/Constants.java b/src/main/java/in/handyman/raven/lib/Constants.java similarity index 95% rename from handyman.raven/src/main/java/in/handyman/raven/lib/Constants.java rename to src/main/java/in/handyman/raven/lib/Constants.java index 9cd8261a..e3f5e262 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/Constants.java +++ b/src/main/java/in/handyman/raven/lib/Constants.java @@ -21,7 +21,7 @@ public interface Constants { String BODY_TYPE_NONE = "NONE"; String BODY_TYPE_JSON = "JSON"; String BODY_TYPE_FORM = "FORM"; - + String PART_TYPE_ARRAY = "ARRAY"; String PART_TYPE_TEXT = "TEXT"; String PART_TYPE_FILE = "FILE"; diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/ConsumerAction.java b/src/main/java/in/handyman/raven/lib/ConsumerAction.java similarity index 95% rename from handyman.raven/src/main/java/in/handyman/raven/lib/ConsumerAction.java rename to src/main/java/in/handyman/raven/lib/ConsumerAction.java index 3966c636..10fb7d08 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/ConsumerAction.java +++ b/src/main/java/in/handyman/raven/lib/ConsumerAction.java @@ -6,6 +6,7 @@ import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; import in.handyman.raven.lambda.process.LambdaEngine; import in.handyman.raven.lib.model.Consumer; +import in.handyman.raven.util.ExceptionUtil; import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.MarkerFactory; @@ -92,7 +93,8 @@ public void execute() { try { downLatch.await(); } catch (InterruptedException e) { - throw new HandymanException("Failed to execute the consumer", e); + log.error(aMarker, "Failed to execute the consumer {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute the consumer", e, actionExecutionAudit); } log.info("completed all task to executors"); } diff --git a/src/main/java/in/handyman/raven/lib/CoproProcessor.java b/src/main/java/in/handyman/raven/lib/CoproProcessor.java new file mode 100644 index 00000000..92ea8093 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/CoproProcessor.java @@ -0,0 +1,268 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.actor.HandymanActorSystemAccess; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lambda.doa.audit.StatementExecutionAudit; +import in.handyman.raven.util.CommonQueryUtil; +import in.handyman.raven.util.ExceptionUtil; +import lombok.extern.slf4j.Slf4j; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.statement.PreparedBatch; +import org.slf4j.Logger; + +import java.net.URL; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.*; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +@Slf4j +public class CoproProcessor { + + private final BlockingQueue queue; + private final ExecutorService executorService; + + private final Class outputTargetClass; + private final Class inputTargetClass; + private final Jdbi jdbi; + + private final Logger logger; + + private final I stoppingSeed; + + private final List nodes; + private final Integer nodeSize; + + private final AtomicInteger nodeCount = new AtomicInteger(); + + private final ActionExecutionAudit actionExecutionAudit; + + public CoproProcessor(final BlockingQueue queue, final Class outputTargetClass, + final Class inputTargetClass, final Jdbi jdbi, final Logger logger, + final I stoppingSeed, final List coproNodes, + final ActionExecutionAudit actionExecutionAudit) { + this.queue = queue; + this.inputTargetClass = inputTargetClass; + this.stoppingSeed = stoppingSeed; + this.nodes = coproNodes; + this.executorService = Executors.newWorkStealingPool(); + this.outputTargetClass = outputTargetClass; + this.jdbi = jdbi; + this.logger = logger; + this.actionExecutionAudit = actionExecutionAudit; + this.nodeSize = coproNodes.size(); + final LocalDateTime startTime = LocalDateTime.now(); + if (nodeSize > 0) { + this.logger.info("Copro processor created for copro coproNodes {}", nodeSize); + } else { + this.logger.info("Failed to create Copro processor due to empty copro coproNodes"); + throw new HandymanException("Failed to create Copro processor due to empty copro coproNodes"); + } + final StatementExecutionAudit audit = StatementExecutionAudit.builder() + .rootPipelineId(actionExecutionAudit.getRootPipelineId()) + .actionId(actionExecutionAudit.getActionId()) + .statementContent("CoproProcessor created for " + actionExecutionAudit.getActionName()) + .build(); + addAudit(audit, startTime); + } + + private void addAudit(final StatementExecutionAudit audit, final LocalDateTime startTime) { + audit.setCreatedBy(actionExecutionAudit.getCreatedBy()); + audit.setLastModifiedBy(actionExecutionAudit.getLastModifiedBy()); + audit.setCreatedDate(startTime); + audit.setLastModifiedDate(LocalDateTime.now()); + HandymanActorSystemAccess.insert(audit); + } + + public void startProducer(final String sqlQuery, final Integer readBatchSize) { + + final LocalDateTime startTime = LocalDateTime.now(); + final List formattedQuery = CommonQueryUtil.getFormattedQuery(sqlQuery); +// final StatementExecutionAudit audit = StatementExecutionAudit.builder() +// .rootPipelineId(actionExecutionAudit.getRootPipelineId()) +// .actionId(actionExecutionAudit.getActionId()) +// .statementContent("CoproProcessor started producer for " + actionExecutionAudit.getActionName()) +// .build(); +// addAudit(audit, startTime); + formattedQuery.forEach(sql -> jdbi.useTransaction(handle -> handle.createQuery(sql).mapToBean(inputTargetClass).useStream(stream -> { + final AtomicInteger counter = new AtomicInteger(); + final Map> partitions = stream.collect(Collectors.groupingBy(it -> counter.getAndIncrement() / readBatchSize)); + logger.info("Total no of rows created {}", counter.get()); + executorService.submit(() -> { + try { + partitions.forEach((integer, ts) -> { + queue.addAll(ts); + final StatementExecutionAudit audit2 = StatementExecutionAudit.builder() + .rootPipelineId(actionExecutionAudit.getRootPipelineId()) + .actionId(actionExecutionAudit.getActionId()) + .statementContent("CoproProcessor producer for " + actionExecutionAudit.getActionName()) + .timeTaken((double) ChronoUnit.SECONDS.between(startTime, LocalDateTime.now())) + .rowsRead(ts.size()) + .build(); + addAudit(audit2, startTime); + logger.info("Partition {} added to the queue", integer); + try { + Thread.sleep(10); + } catch (InterruptedException e) { + logger.error("Error at Producer sleep", e); + throw new HandymanException("Error at Producer sleep", e, actionExecutionAudit); + } + }); + logger.info("Total Partition added to the queue: {} ", partitions.size()); + final StatementExecutionAudit audit3 = StatementExecutionAudit.builder() + .rootPipelineId(actionExecutionAudit.getRootPipelineId()) + .actionId(actionExecutionAudit.getActionId()) + .statementContent("CoproProcessor producer completed " + actionExecutionAudit.getActionName()) + .timeTaken((double) ChronoUnit.SECONDS.between(startTime, LocalDateTime.now())) + .build(); + addAudit(audit3, startTime); + } finally { + queue.add(stoppingSeed); + logger.info("Added stopping seed to the queue"); + } + + }); + + }))); + } + + public void startConsumer(final String insertSql, final Integer consumerCount, final Integer writeBatchSize, + final ConsumerProcess callable) { + final LocalDateTime startTime = LocalDateTime.now(); + final Predicate tPredicate = t -> !Objects.equals(t, stoppingSeed); + final CountDownLatch countDownLatch = new CountDownLatch(consumerCount); + for (int consumer = 0; consumer < consumerCount; consumer++) { + executorService.submit(() -> { + final List processedEntity = new ArrayList<>(); + try { + while (true) { + try { + final I take = queue.take(); + if (tPredicate.test(take)) { + final int index = nodeCount.incrementAndGet() % nodeSize;//Round robin + final List results = new ArrayList<>(); + try { + int nodesSize = nodes.size(); + logger.info("Nodes size {} and index value {}", nodesSize, index); + if (nodesSize != index) { + final List list = callable.process(nodes.get(index), take); + results.addAll(list); + } + } catch (Exception e) { + logger.error("Error in callable process in consumer", e); + } + processedEntity.addAll(results); + if (nodeCount.get() % writeBatchSize == 0) { + jdbi.useTransaction(handle -> { + final PreparedBatch preparedBatch = handle.prepareBatch(insertSql); + for (final O output : processedEntity) { + final List rowData = output.getRowData(); + for (int i = 0; i < rowData.size(); i++) { + preparedBatch.bind(i, rowData.get(i)); + } + preparedBatch.add(); + } + int[] execute = preparedBatch.execute(); + logger.info("Consumer persisted {}", execute); + }); + final StatementExecutionAudit audit = StatementExecutionAudit.builder() + .rootPipelineId(actionExecutionAudit.getRootPipelineId()) + .actionId(actionExecutionAudit.getActionId()) + .timeTaken((double) ChronoUnit.SECONDS.between(startTime, LocalDateTime.now())) + .rowsProcessed(processedEntity.size()) + .statementContent("CoproProcessor consumer for " + actionExecutionAudit.getActionName()) + .build(); + addAudit(audit, startTime); + processedEntity.clear(); + } + } else { + logger.info("Breaking the consumer"); + queue.add(take); + break; + } + } catch (InterruptedException e) { + logger.error("Error at Consumer thread", e); + throw new HandymanException("Error at Consumer thread", e, actionExecutionAudit); + } catch (Exception e) { + logger.error("Error at Consumer Process", e); + throw new HandymanException("Error at Consumer Process", e, actionExecutionAudit); + } + } + if (!processedEntity.isEmpty()) { + jdbi.useTransaction(handle -> { + int rowCount = 0; + final Connection connection = handle.getConnection(); +// connection.setAutoCommit(false); + try { + try (PreparedStatement preparedStatement = connection.prepareStatement(insertSql)) { + for (final O output : processedEntity) { + final List rowData = output.getRowData(); + for (int i = 1; i <= rowData.size(); i++) { + preparedStatement.setObject(i, rowData.get(i - 1)); + } + preparedStatement.addBatch(); + } + rowCount = (int) Arrays.stream(preparedStatement.executeBatch()).count(); + final StatementExecutionAudit audit = StatementExecutionAudit.builder() + .rootPipelineId(actionExecutionAudit.getRootPipelineId()) + .actionId(actionExecutionAudit.getActionId()) + .timeTaken((double) ChronoUnit.SECONDS.between(startTime, LocalDateTime.now())) + .rowsProcessed(processedEntity.size()) + .statementContent("CoproProcessor consumer for " + actionExecutionAudit.getActionName()) + .build(); + addAudit(audit, startTime); + } + } catch (Exception e) { + logger.error("Error in executing prepared statement {}", ExceptionUtil.toString(e)); + handle.rollback(); + throw new HandymanException("Error in executing prepared statement ", e, actionExecutionAudit); + } finally { + if (handle != null && handle.isInTransaction()) { +// handle.commit(); + } +// handle.commit(); + } + logger.info("Consumer persisted {}", rowCount); + }); + + } + } catch (Exception e) { + logger.error("Final persistence failed", e); + } finally { + logger.info("Consumer {} completed the process and persisted {} rows", countDownLatch.getCount(), nodeCount.get()); + countDownLatch.countDown(); + } + }); + + logger.info("Consumer {} submitted the process", consumer); + } + try { + countDownLatch.await(); + } catch (InterruptedException e) { + logger.error("Consumer completed the process and persisted {} rows", nodeCount.get(), e); + } + } + + + public interface ConsumerProcess { + + List process(final URL endpoint, final I entity) throws Exception; + + } + + public interface Entity { + + List getRowData(); + + } + +} diff --git a/src/main/java/in/handyman/raven/lib/CoproStartAction.java b/src/main/java/in/handyman/raven/lib/CoproStartAction.java new file mode 100644 index 00000000..0b3403e5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/CoproStartAction.java @@ -0,0 +1,144 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.CoproStart; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "CoproStart" +) +public class CoproStartAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final CoproStart coproStart; + + private final Marker aMarker; + + private final ObjectMapper mapper = new ObjectMapper(); + // private final String URI; + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + + public CoproStartAction(final ActionExecutionAudit action, final Logger log, + final Object coproStart) { + this.coproStart = (CoproStart) coproStart; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" CoproStart:" + this.coproStart.getName()); +// this.URI = action.getContext().get("copro.admin.start.server.url"); + + } + + @Override + public void execute() throws Exception { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(coproStart.getResourceConn()); + log.info(aMarker, "copro admin API call for {} has been started------->", coproStart.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + String process="COPRO_START"; + Long rootPipelineId=action.getRootPipelineId(); + Long actionId=action.getActionId(); + final ObjectNode objectNode = mapper.createObjectNode(); + String coproCommand = coproStart.getCommand(); + String exportCommand = coproStart.getExportCommand(); + objectNode.put("processStartCommand", coproCommand); + objectNode.put("exportCommand", exportCommand); + objectNode.put("processUp","1"); + objectNode.put("process",process); + objectNode.put("rootPipelineId",rootPipelineId); + objectNode.put("actionId",actionId); + + String coproServerUrl = coproStart.getCoproServerUrl(); + Request request = new Request.Builder().url(coproServerUrl) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + if(log.isInfoEnabled()) { + log.info(aMarker, "Request has been build with the parameters \n coproUrl {} ,coproCommand : {} exportCommand {} ", coproServerUrl,coproCommand,exportCommand); + } + String name = coproStart.getName() + "_response"; + log.debug(aMarker, "The Request Details: {} ", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + JSONObject responseObj = new JSONObject(responseBody); + CoproStartAction.coproStartActionEntity coproStartActionEntity = CoproStartAction.coproStartActionEntity + .builder() + .processId(Optional.ofNullable(coproStart.getProcessID()).map(Long::valueOf).orElse(null)) + .actionId(action.getActionId()) + .rootPipelineId(action.getRootPipelineId()) + .coproActionName(Optional.ofNullable(coproStart.getModuleName()).map(String::valueOf).orElse(null)) + .command(Optional.ofNullable(coproCommand).map(String::valueOf).orElse(null)) + .coproProcessId(Optional.ofNullable(responseObj.get("Pid")).map(String::valueOf).orElse(null)) + .ram(Optional.ofNullable(responseObj.get("cpuUtilize")).map(String::valueOf).orElse(null)) + .gpuRam(Optional.ofNullable(responseObj.get("gpuUtilize")).map(String::valueOf).orElse(null)) + .build(); + Thread.sleep(Long.parseLong(action.getContext().get("macro.copro.stop.action"))); + jdbi.useTransaction(handle -> handle.createUpdate("INSERT INTO info.resource_utilization_details (process_id, action_id, root_pipeline_id, copro_action_name, copro_pid, created_on, command_exec, cpu, gpu, ram, gpu_ram)" + + " select :processId,:actionId,:rootPipelineId,:coproActionName,:coproProcessId,now(),:command,:cpu,:gpu,:ram,:gpuRam;") + .bindBean(coproStartActionEntity) + .execute()); + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + } else { + log.error(aMarker, "The Failure Response {} --> {}", name, responseBody); + } + log.info(aMarker, "copro admin API call for {} has been completed" , coproStart.getName()); + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), e.getMessage()); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return coproStart.getCondition(); + } + + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class coproStartActionEntity { + private Long processId; + private Long actionId; + private Long rootPipelineId; + private String command; + private String coproActionName; + private String coproProcessId; + private String cpu; + private String gpu; + private String ram; + private String gpuRam; + + } +} diff --git a/src/main/java/in/handyman/raven/lib/CoproStopAction.java b/src/main/java/in/handyman/raven/lib/CoproStopAction.java new file mode 100644 index 00000000..14c8f5ee --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/CoproStopAction.java @@ -0,0 +1,147 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.CoproStop; +import java.lang.Exception; +import java.lang.Object; +import java.lang.Override; +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "CoproStop" +) +public class CoproStopAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final CoproStop coproStop; + + private final Marker aMarker; + + private final ObjectMapper mapper = new ObjectMapper(); + // private final String URI; + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + + public CoproStopAction(final ActionExecutionAudit action, final Logger log, + final Object coproStop) { + this.coproStop = (CoproStop) coproStop; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" CoproStop:"+this.coproStop.getName()); +// this.URI = action.getContext().get("copro.admin.stop.server.url"); + + } + + @Override + public void execute() throws Exception { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(coproStop.getResourceConn()); + log.info(aMarker, "copro admin API call for {} has been started", coproStop.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + String process="COPRO_STOP"; + Long rootPipelineId=action.getRootPipelineId(); + Long actionId=action.getActionId(); + final ObjectNode objectNode = mapper.createObjectNode(); + String gunicorn = "gunicorn"; + objectNode.put("processName", gunicorn); + objectNode.put("process",process); + objectNode.put("rootPipelineId",rootPipelineId); + objectNode.put("actionId",actionId); + + log.info(aMarker, " Input variables id : {}", action.getActionId()); + String coproServerUrl = coproStop.getCoproServerUrl(); + Request request = new Request.Builder().url(coproServerUrl) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + String name = coproStop.getName() + "_response"; + + if(log.isInfoEnabled()) { + log.info(aMarker, "Request has been build with the parameters \n URI : {} processName {} ", coproServerUrl,gunicorn); + } + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + JSONObject responseObj = new JSONObject(responseBody); + CoproStopAction.coproStopActionEntity coproStopActionEntity = CoproStopAction.coproStopActionEntity + .builder() + .processId(Optional.ofNullable(coproStop.getProcessID()).map(Long::valueOf).orElse(null)) + .actionId(action.getActionId()) + .rootPipelineId(action.getRootPipelineId()) + .coproActionName(Optional.ofNullable(coproStop.getModuleName()).map(String::valueOf).orElse(null)) + .command(Optional.ofNullable(coproStop.getCommand()).map(String::valueOf).orElse(null)) + .coproProcessId(Optional.ofNullable(responseObj.get("Pid")).map(String::valueOf).orElse(null)) +// .cpu(Optional.ofNullable(responseObj.get("cpu")).map(String::valueOf).orElse(null)) +// .gpu(Optional.ofNullable(responseObj.get("gpu")).map(String::valueOf).orElse(null)) + .ram(Optional.ofNullable(responseObj.get("cpuUtilize")).map(String::valueOf).orElse(null)) + .gpuRam(Optional.ofNullable(responseObj.get("gpuUtilize")).map(String::valueOf).orElse(null)) + .build(); + Thread.sleep(Long.parseLong(action.getContext().get("macro.copro.start.action"))); + jdbi.useTransaction(handle -> handle.createUpdate("INSERT INTO info.resource_utilization_details (process_id, action_id, root_pipeline_id, copro_action_name, copro_pid, created_on, command_exec, cpu, gpu, ram, gpu_ram)" + + " select :processId,:actionId,:rootPipelineId,:coproActionName,:coproProcessId,now(),:command,:cpu,:gpu,:ram,:gpuRam;") + .bindBean(coproStopActionEntity) + .execute()); + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + } else { + log.error(aMarker, "The Failure Response {} --> {}", name, responseBody); + } + log.info(aMarker, "copro admin API call for {} has been completed" , coproStop.getName()); + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), e.getMessage()); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return coproStop.getCondition(); + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class coproStopActionEntity { + private Long processId; + private Long actionId; + private Long rootPipelineId; + private String command; + private String coproActionName; + private String coproProcessId; + private String cpu; + private String gpu; + private String ram; + private String gpuRam; + + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/CopyDataAction.java b/src/main/java/in/handyman/raven/lib/CopyDataAction.java similarity index 70% rename from handyman.raven/src/main/java/in/handyman/raven/lib/CopyDataAction.java rename to src/main/java/in/handyman/raven/lib/CopyDataAction.java index c91214f7..3dc51c95 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/CopyDataAction.java +++ b/src/main/java/in/handyman/raven/lib/CopyDataAction.java @@ -94,49 +94,50 @@ public void execute() throws Exception { log.info(aMarker, "CopyData Insert Sql input post parameter ingestion \n : {}", insert); log.info(aMarker, "CopyData Select Sql input post parameter ingestion \n : {}", insert); //initializing the connection related statement - var hikariDataSource = ResourceAccess.rdbmsConn(source); - final Long statementId = UniqueID.getId(); - final ExecutorService executor = Executors.newWorkStealingPool(); - var rand = new Random(); - var rowQueueMap = new LinkedHashMap>(); - var rowsProcessed = new AtomicInteger(0); + try (var hikariDataSource = ResourceAccess.rdbmsConn(source)) { + final Long statementId = UniqueID.getId(); + final ExecutorService executor = Executors.newWorkStealingPool(); + var rand = new Random(); + var rowQueueMap = new LinkedHashMap>(); + var rowsProcessed = new AtomicInteger(0); - try (final Connection sourceConnection = hikariDataSource.getConnection()) { - //TODO AUDIT - try (final Statement stmt = sourceConnection.createStatement()) { - stmt.setFetchSize(fetchSize); - var countDownLatch = new CountDownLatch(upperThreadCount); - IntStream.range(lowerThreadCount, upperThreadCount + 1).forEach(i -> { - var rowQueue = new LinkedBlockingDeque(); - var poisonPill = new Table.Row(i, null); - log.info(aMarker, " action is prepping up writer thread with poison pill {}", poisonPill); - final CopyDataJdbcWriter jdbcWriter = new CopyDataJdbcWriter(configMap, insert, poisonPill, copyData, - actionExecutionAudit, rowQueue, countDownLatch); - executor.submit(jdbcWriter); - rowQueueMap.put(poisonPill.getRowId(), rowQueue); - }); - //Retrieving the data from the source - var selectStatement = select.toString(); - try (var rs = stmt.executeQuery(selectStatement)) { - var nrCols = rs.getMetaData().getColumnCount(); - while (rs.next()) { - var startTime = System.currentTimeMillis(); - var row = getRow(rs, nrCols); - addRowToQueue(upperThreadCount, lowerThreadCount, rand, rowQueueMap, row); - addAudit(pipelineId, name, fetchSize, statementId, rowsProcessed, startTime); - rowQueueMap.forEach((integer, rows) -> rows.add(new Table.Row(integer, null))); - try { - countDownLatch.await(); - } catch (final InterruptedException ex) { - log.error(aMarker, "{} error during waiting for worker threads to finish their job", pipelineId, ex); - throw ex; + try (final Connection sourceConnection = hikariDataSource.getConnection()) { + //TODO AUDIT + try (final Statement stmt = sourceConnection.createStatement()) { + stmt.setFetchSize(fetchSize); + var countDownLatch = new CountDownLatch(upperThreadCount); + IntStream.range(lowerThreadCount, upperThreadCount + 1).forEach(i -> { + var rowQueue = new LinkedBlockingDeque(); + var poisonPill = new Table.Row(i, null); + log.info(aMarker, " action is prepping up writer thread with poison pill {}", poisonPill); + final CopyDataJdbcWriter jdbcWriter = new CopyDataJdbcWriter(configMap, insert, poisonPill, copyData, + actionExecutionAudit, rowQueue, countDownLatch); + executor.submit(jdbcWriter); + rowQueueMap.put(poisonPill.getRowId(), rowQueue); + }); + //Retrieving the data from the source + var selectStatement = select.toString(); + try (var rs = stmt.executeQuery(selectStatement)) { + var nrCols = rs.getMetaData().getColumnCount(); + while (rs.next()) { + var startTime = System.currentTimeMillis(); + var row = getRow(rs, nrCols); + addRowToQueue(upperThreadCount, lowerThreadCount, rand, rowQueueMap, row); + addAudit(pipelineId, name, fetchSize, statementId, rowsProcessed, startTime); + rowQueueMap.forEach((integer, rows) -> rows.add(new Table.Row(integer, null))); + try { + countDownLatch.await(); + } catch (final InterruptedException ex) { + log.error(aMarker, "{} error during waiting for worker threads to finish their job", pipelineId, ex); + throw ex; + } } } } + } catch (Exception ex) { + log.error(aMarker, "{} error closing source connection for database {}", pipelineId, source, ex); + throw new HandymanException("Error closing source connection for database", ex, actionExecutionAudit); } - } catch (Exception ex) { - log.error(aMarker, "{} error closing source connection for database {}", pipelineId, source, ex); - throw ex; } } else { throw new HandymanException("Insert stmt not found"); @@ -180,7 +181,7 @@ private Table.ColumnInARow createColumn(final int i, final ResultSet rs) { return new Table.ColumnInARow(columnType, columnTypeName, columnName, columnLabel, scale, value, null, isLastColumn); } catch (Exception ex) { - throw new HandymanException("Column mapping failed", ex); + throw new HandymanException("Column mapping failed", ex, actionExecutionAudit); } } diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/CopyDataJdbcWriter.java b/src/main/java/in/handyman/raven/lib/CopyDataJdbcWriter.java similarity index 85% rename from handyman.raven/src/main/java/in/handyman/raven/lib/CopyDataJdbcWriter.java rename to src/main/java/in/handyman/raven/lib/CopyDataJdbcWriter.java index 7338ee59..fd69687b 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/CopyDataJdbcWriter.java +++ b/src/main/java/in/handyman/raven/lib/CopyDataJdbcWriter.java @@ -89,23 +89,24 @@ public Void call() throws Exception { private void writeToDb() { - var hikariDataSource = ResourceAccess.rdbmsConn(target); - try (final Connection sourceConnection = hikariDataSource.getConnection()) { - sourceConnection.setAutoCommit(false); - log.info("Writing to database using conn: {}", target); - final Long statementId = UniqueID.getId(); - //TODO audit - try (final Statement stmt = sourceConnection.createStatement()) { - for (var s : writeBuffer) { - stmt.addBatch(s); + try (var hikariDataSource = ResourceAccess.rdbmsConn(target)) { + try (final Connection sourceConnection = hikariDataSource.getConnection()) { + sourceConnection.setAutoCommit(false); + log.info("Writing to database using conn: {}", target); + final Long statementId = UniqueID.getId(); + //TODO audit + try (final Statement stmt = sourceConnection.createStatement()) { + for (var s : writeBuffer) { + stmt.addBatch(s); + } + stmt.executeBatch(); + sourceConnection.commit(); + writeBuffer.clear(); } - stmt.executeBatch(); - sourceConnection.commit(); - writeBuffer.clear(); + } catch (Exception ex) { + log.error("CopyDataWriter: {} error closing source connection for database: {} ", actionExecutionAudit.getActionId(), target, ex); + throw new HandymanException("writeToDb failed", ex, actionExecutionAudit); } - } catch (Exception ex) { - log.error("CopyDataWriter: {} error closing source connection for database: {} ", actionExecutionAudit.getActionId(), target, ex); - throw new HandymanException("writeToDb failed", ex); } } diff --git a/src/main/java/in/handyman/raven/lib/CopyFileAction.java b/src/main/java/in/handyman/raven/lib/CopyFileAction.java new file mode 100644 index 00000000..dd244c9d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/CopyFileAction.java @@ -0,0 +1,58 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.CopyFile; +import org.apache.commons.io.FileUtils; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.File; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "CopyFile" +) +public class CopyFileAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final CopyFile copyFile; + + private final Marker aMarker; + + public CopyFileAction(final ActionExecutionAudit action, final Logger log, + final Object copyFile) { + this.copyFile = (CopyFile) copyFile; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" CopyFile:" + this.copyFile.getName()); + } + + @Override + public void execute() throws Exception { + String srcLocation = copyFile.getSrcLocation(); + String destLocation = copyFile.getDestLocation(); + String fileName = copyFile.getFileName(); + String extension = copyFile.getExtension(); + + var srcFile = new File(srcLocation.concat(fileName + extension)); + var destFile = new File(destLocation.concat(fileName + extension)); + try { + FileUtils.copyFile(srcFile, destFile); + } catch (Exception e) { + throw new HandymanException("Error in copy file action", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return copyFile.getCondition(); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/CreateDirectoryAction.java b/src/main/java/in/handyman/raven/lib/CreateDirectoryAction.java similarity index 64% rename from handyman.raven/src/main/java/in/handyman/raven/lib/CreateDirectoryAction.java rename to src/main/java/in/handyman/raven/lib/CreateDirectoryAction.java index a629438e..15c53c04 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/CreateDirectoryAction.java +++ b/src/main/java/in/handyman/raven/lib/CreateDirectoryAction.java @@ -1,13 +1,16 @@ package in.handyman.raven.lib; +import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.action.ActionExecution; import in.handyman.raven.lambda.action.IActionExecution; import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; import in.handyman.raven.lib.model.CreateDirectory; +import in.handyman.raven.util.ExceptionUtil; import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.MarkerFactory; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; @@ -35,17 +38,24 @@ public CreateDirectoryAction(final ActionExecutionAudit actionExecutionAudit, fi } @Override - public void execute() throws Exception { - log.info(aMarker, "Directory creation operation has been started for listed files {}", createDirectory.getDirectoryPath()); + public void execute(){ + log.info(aMarker, "Create Directory Action for {} has been started" , createDirectory.getName()); + log.debug(aMarker, "Directory creation operation has been started for listed files {}", createDirectory.getDirectoryPath()); for (var fileName : createDirectory.getDirectoryPath()) { var path = Paths.get(fileName); - if (!Files.exists(path)) { - Files.createDirectory(path); + if (!path.toFile().exists()) { + try { + Files.createDirectories(Paths.get(path.toUri())); + } catch (IOException e) { + log.error("Error in creating directory {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in creating directory", e, actionExecutionAudit); + } log.info(aMarker, "{} Directory Created", path); } else { log.info(aMarker, "{} Directory already exists", path); } } + log.info(aMarker, "Create Directory Action for {} has been completed" , createDirectory.getName()); } @Override diff --git a/src/main/java/in/handyman/raven/lib/CreateFileAction.java b/src/main/java/in/handyman/raven/lib/CreateFileAction.java new file mode 100644 index 00000000..4a0e75d9 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/CreateFileAction.java @@ -0,0 +1,88 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.CreateFile; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "CreateFile" +) +public class CreateFileAction implements IActionExecution { + private final ActionExecutionAudit actionExecutionAudit; + + private final Logger log; + + private final CreateFile createFile; + + private final Marker aMarker; + + public CreateFileAction(final ActionExecutionAudit actionExecutionAudit, final Logger log, final Object createFile) { + this.createFile = (CreateFile) createFile; + this.actionExecutionAudit = actionExecutionAudit; + this.log = log; + this.aMarker = MarkerFactory.getMarker("CreateFile"); + } + + @Override + public void execute() throws Exception { +// String fileLocation = createFile.getLocation(); +// String fileName = createFile.getFileName(); +// String extension = createFile.getExtension(); +// +// String createFile = fileLocation.concat(fileName + extension); +// Path path = Paths.get(createFile); +// if (!Files.exists(path)) { +// switch (extension) { +// case ".doc": +// case ".docx": +// XWPFDocument xwpfdocument = new XWPFDocument(); +// File file = new File(createFile); +// try (FileOutputStream ostream = new FileOutputStream(file)) { +// xwpfdocument.write(ostream); +// } +// break; +// case ".html": +// case ".htm": +// case ".txt": +// Files.createFile(path); +// case ".odt": +// OdfTextDocument odt = OdfTextDocument.newTextDocument(); +// odt.save(createFile); +// case ".pdf": +// try (PDDocument document = new PDDocument()) { +// document.addPage(new PDPage()); +// document.save(createFile); +// } +// case ".xls": +// case ".xlsx": +// XSSFWorkbook workbook = new XSSFWorkbook(); +// try (FileOutputStream out = new FileOutputStream(new File(createFile))) { +// workbook.write(out); +// } +// case ".ppt": +// case ".pptx": +// try (SlideShow slideShow = new HSLFSlideShow()) { +// Slide slide = slideShow.createSlide(); +// FileOutputStream out1 = new FileOutputStream(createFile); +// slideShow.write(out1); +// } +// default: +// //log.info("No Extension found"); +// } +// } else { +// //log.info("{} File already exists",path); +// } + } + + @Override + public boolean executeIf() throws Exception { + return createFile.getCondition(); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/CreateTARAction.java b/src/main/java/in/handyman/raven/lib/CreateTARAction.java similarity index 67% rename from handyman.raven/src/main/java/in/handyman/raven/lib/CreateTARAction.java rename to src/main/java/in/handyman/raven/lib/CreateTARAction.java index 7984a8e9..5589ef0a 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/CreateTARAction.java +++ b/src/main/java/in/handyman/raven/lib/CreateTARAction.java @@ -1,5 +1,6 @@ package in.handyman.raven.lib; +import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.action.ActionExecution; import in.handyman.raven.lambda.action.IActionExecution; import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; @@ -7,7 +8,6 @@ import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream; -import org.apache.commons.compress.utils.FileNameUtils; import org.apache.commons.compress.utils.IOUtils; import org.slf4j.Logger; import org.slf4j.Marker; @@ -23,6 +23,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Optional; +import java.util.UUID; /** @@ -62,8 +63,7 @@ public void execute() throws Exception { } var extension = createTAR.getExtension(); var sourceFile = new File(source); - var fileNameWithOutExt = FileNameUtils.getBaseName(sourceFile.getName()); - var destinationFile = new File(destination.concat("/" + fileNameWithOutExt)); + var destinationFile = new File(destination.concat("/" + UUID.randomUUID())); log.info(aMarker, "Destination {}", destinationFile); final String fileName = destinationFile.getAbsolutePath().concat("." + extension); try (var fileOutputStream = new FileOutputStream(fileName)) { @@ -80,31 +80,39 @@ public void execute() throws Exception { } - private double calculateSize(final String fileName) throws IOException { - return BigDecimal.valueOf(Files.size(new File(fileName).toPath()) / (1024.0 * 1024)).setScale(2, RoundingMode.CEILING).doubleValue(); + private double calculateSize(final String fileName) { + try { + return BigDecimal.valueOf(Files.size(new File(fileName).toPath()) / (1024.0 * 1024)).setScale(2, RoundingMode.CEILING).doubleValue(); + } catch (IOException e) { + throw new HandymanException("Error in getting file details", e, actionExecutionAudit); + } } - private void addFilesToTarGZ(final String filePath, final String parent, final TarArchiveOutputStream tarArchive) throws IOException { - log.info(aMarker, " source {} parent {}", filePath, parent); - final File file = new File(filePath); - final String baseName = parent + file.getName(); - final TarArchiveEntry archiveEntry = new TarArchiveEntry(file); - tarArchive.putArchiveEntry(archiveEntry); - if (file.isFile()) { - try (var fileInputStream = new FileInputStream(file)) { - IOUtils.copy(fileInputStream, tarArchive); + private void addFilesToTarGZ(final String filePath, final String parent, final TarArchiveOutputStream tarArchive){ + try { + log.info(aMarker, " source {} parent {}", filePath, parent); + final File file = new File(filePath); + final String baseName = parent + file.getName(); + final TarArchiveEntry archiveEntry = new TarArchiveEntry(file); + tarArchive.putArchiveEntry(archiveEntry); + if (file.isFile()) { + try (var fileInputStream = new FileInputStream(file)) { + IOUtils.copy(fileInputStream, tarArchive); + tarArchive.closeArchiveEntry(); + } + } else if (file.isDirectory()) { tarArchive.closeArchiveEntry(); - } - } else if (file.isDirectory()) { - tarArchive.closeArchiveEntry(); - final Optional files = Optional.ofNullable(file.listFiles()); - if (files.isPresent()) { - for (var childFile : files.get()) { - addFilesToTarGZ(childFile.getAbsolutePath(), baseName + File.separator, tarArchive); + final Optional files = Optional.ofNullable(file.listFiles()); + if (files.isPresent()) { + for (var childFile : files.get()) { + addFilesToTarGZ(childFile.getAbsolutePath(), baseName + File.separator, tarArchive); + } } + } else { + tarArchive.closeArchiveEntry(); } - } else { - tarArchive.closeArchiveEntry(); + } catch (Exception e) { + throw new HandymanException("Error in adding files to tar", e, actionExecutionAudit); } } diff --git a/src/main/java/in/handyman/raven/lib/CreateZipAction.java b/src/main/java/in/handyman/raven/lib/CreateZipAction.java new file mode 100644 index 00000000..9760abd5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/CreateZipAction.java @@ -0,0 +1,106 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.CreateZip; +import in.handyman.raven.util.ExceptionUtil; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "CreateZip" +) +public class CreateZipAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final CreateZip createZip; + + private final Marker aMarker; + + public CreateZipAction(final ActionExecutionAudit action, final Logger log, + final Object createZip) { + this.createZip = (CreateZip) createZip; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" CreateZip:" + this.createZip.getName()); + } + + @Override + public void execute() throws Exception { + try { + final String zipFileName = createZip.getFileName(); + final String source = createZip.getSource(); + final String destFileDir = createZip.getDestination(); + if (!Files.exists(Paths.get(source))) + log.info(aMarker, "{} source Folder not found", source); + FileOutputStream fos = new FileOutputStream(destFileDir + File.separator + zipFileName + ".zip"); + ZipOutputStream zipOut = new ZipOutputStream(fos); + File fileToZip = new File(source); + zipFile(fileToZip, fileToZip.getName(), zipOut); + zipOut.close(); + fos.close(); + } catch (Exception e) { + log.error(aMarker, "Error in execute method in create zip action {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in execute method in create zip action", e, action); + } + } + + public void zipFile(File fileToZip, String fileName, ZipOutputStream zipOut) { + try { + if (fileToZip.isHidden()) { + return; + } + if (fileToZip.isDirectory()) { + if (fileName.endsWith("/")) { + zipOut.putNextEntry(new ZipEntry(fileName)); + zipOut.closeEntry(); + } else { + zipOut.putNextEntry(new ZipEntry(fileName + "/")); + zipOut.closeEntry(); + } + File[] children = fileToZip.listFiles(); + if (children != null && children.length > 0) { + for (File childFile : children) { + zipFile(childFile, fileName + "/" + childFile.getName(), zipOut); + } + return; + } + } + FileInputStream fis = new FileInputStream(fileToZip); + ZipEntry zipEntry = new ZipEntry(fileName); + zipOut.putNextEntry(zipEntry); + byte[] bytes = new byte[1024]; + int length; + while ((length = fis.read(bytes)) >= 0) { + zipOut.write(bytes, 0, length); + } + fis.close(); + log.info(aMarker, "Created zip {} and saved in the {} directory", fileToZip.getName(), fileToZip.getAbsolutePath()); + } catch (Exception e) { + log.error(aMarker, "Error in zip file generation {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in zip file generation", e, action); + } + + } + + @Override + public boolean executeIf() throws Exception { + return createZip.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/DataExtractionAction.java b/src/main/java/in/handyman/raven/lib/DataExtractionAction.java new file mode 100644 index 00000000..4920e0b6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/DataExtractionAction.java @@ -0,0 +1,115 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.DataExtraction; +import in.handyman.raven.lib.model.textextraction.DataExtractionConsumerProcess; +import in.handyman.raven.lib.model.textextraction.DataExtractionInputTable; +import in.handyman.raven.lib.model.textextraction.DataExtractionOutputTable; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.MediaType; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution(actionName = "DataExtraction") +public class DataExtractionAction implements IActionExecution { + public static final String OKHTTP_CLIENT_TIMEOUT = "okhttp.client.timeout"; + public static final String INSERT_COLUMNS = "origin_id,group_id,tenant_id,template_id,process_id, file_path, extracted_text,paper_no,file_name, status,stage,message,is_blank_page, created_on ,root_pipeline_id,template_name,model_name,model_version"; + public static final String INSERT_INTO = "INSERT INTO "; + public static final String INSERT_INTO_VALUES = "VALUES(?,? ,?,?,? ,?,?,?,?, ?,?,?,?,? ,?, ?,?,?)"; + public static final String READ_BATCH_SIZE = "read.batch.size"; + public static final String TEXT_EXTRACTION_CONSUMER_API_COUNT = "text.extraction.consumer.API.count"; + public static final String WRITE_BATCH_SIZE = "write.batch.size"; + private final ActionExecutionAudit action; + + private final Logger log; + + private final DataExtraction dataExtraction; + private final Marker aMarker; + + public DataExtractionAction(final ActionExecutionAudit action, final Logger log, final Object dataExtraction) { + this.dataExtraction = (DataExtraction) dataExtraction; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" DataExtraction:" + this.dataExtraction.getName()); + } + + @Override + public void execute() throws Exception { + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(dataExtraction.getResourceConn()); + + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "Data Extraction Action for {} has been started", dataExtraction.getName()); + + String outputTableName = dataExtraction.getResultTable(); + final String insertQuery = INSERT_INTO + outputTableName + " ( " + INSERT_COLUMNS + " ) " + INSERT_INTO_VALUES; + final List urls = Optional.ofNullable(dataExtraction.getEndPoint()).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + final CoproProcessor coproProcessor = new CoproProcessor<>(new LinkedBlockingQueue<>(), DataExtractionOutputTable.class, DataExtractionInputTable.class, jdbi, log, new DataExtractionInputTable(), urls, action); + + Integer readBatchSize = Integer.valueOf(action.getContext().get(READ_BATCH_SIZE)); + Integer consumerApiCount = Integer.valueOf(action.getContext().get(TEXT_EXTRACTION_CONSUMER_API_COUNT)); + Integer writeBatchSize = Integer.valueOf(action.getContext().get(WRITE_BATCH_SIZE)); + DataExtractionConsumerProcess dataExtractionConsumerProcess = new DataExtractionConsumerProcess(log, aMarker, action); + + coproProcessor.startProducer(dataExtraction.getQuerySet(), readBatchSize); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, consumerApiCount, writeBatchSize, dataExtractionConsumerProcess); + log.info(aMarker, " Data Extraction Action has been completed {} ", dataExtraction.getName()); + } catch (Exception e) { + action.getContext().put(dataExtraction.getName() + ".isSuccessful", "false"); + log.error(aMarker, "error in execute method in data extraction", e); + throw new HandymanException("error in execute method in data extraction", e, action); + } + + } + + + @Override + public boolean executeIf() throws Exception { + return dataExtraction.getCondition(); + } + + @Data + @AllArgsConstructor + @Builder + @NoArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class AssetAttributionResponse { + private String pageContent; + } + +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/DatevalidatorAction.java b/src/main/java/in/handyman/raven/lib/DatevalidatorAction.java new file mode 100644 index 00000000..7a6e2548 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/DatevalidatorAction.java @@ -0,0 +1,84 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.adapters.DateAdapter; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import in.handyman.raven.lib.model.Datevalidator; +import in.handyman.raven.lib.model.Validator; +import in.handyman.raven.util.ExceptionUtil; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Optional; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "Datevalidator" +) +public class DatevalidatorAction implements IActionExecution { + private final ActionExecutionAudit action; + private final Logger log; + private final Datevalidator datevalidator; + private final Marker aMarker; + AdapterInterface dobValidatorAdapter ; + + + public DatevalidatorAction(final ActionExecutionAudit action, final Logger log, + final Object datevalidator) { + this.datevalidator = (Datevalidator) datevalidator; + this.action = action; + this.log = log; + this.dobValidatorAdapter = new DateAdapter(); + this.aMarker = MarkerFactory.getMarker(" Datevalidator:" + this.datevalidator.getName()); + } + + public int getDateScore(Validator adapter) { + try { + int currentYear = Integer.parseInt(new SimpleDateFormat("yyyy").format(new Date())); + int comparableYear; + if(Optional.ofNullable(adapter.getComparableChar()).isPresent()) + comparableYear = Integer.parseInt(adapter.getComparableChar()); + else comparableYear = currentYear; + String[] dateFormats = adapter.getAllowedSpecialChar().split(","); + boolean dobValidator = dobValidatorAdapter.getDateValidationModel(adapter.getInputValue(), comparableYear, dateFormats); + return dobValidator ? adapter.getThreshold() : 0; + } catch (Exception ex) { + log.error("Error in getting date score {}", ExceptionUtil.toString(ex)); + throw new HandymanException("Failed to execute", ex, action); + } + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Date Validator Action for {} has been started" , datevalidator.getName()); + + AdapterInterface dobValidatorAdapter = new DateAdapter(); + int comparableYear = Integer.parseInt(datevalidator.getComparableDate()); + String[] dateFormats = datevalidator.getAllowedDateFormats().split(","); + + boolean dobValidator = dobValidatorAdapter.getDateValidationModel(datevalidator.getInputValue(), comparableYear, dateFormats); + int confidenceScore = dobValidator ? Integer.parseInt(datevalidator.getThresholdValue()) : 0; + action.getContext().put("validator.score", String.valueOf(confidenceScore)); + log.info(aMarker, "Date Validator Action for {} has been completed" , datevalidator.getName()); + + } catch (Exception ex) { + action.getContext().put(datevalidator.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(ex)); + throw new HandymanException("Failed to execute date validator action", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return datevalidator.getCondition(); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/DeleteFileDirectoryAction.java b/src/main/java/in/handyman/raven/lib/DeleteFileDirectoryAction.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/DeleteFileDirectoryAction.java rename to src/main/java/in/handyman/raven/lib/DeleteFileDirectoryAction.java diff --git a/src/main/java/in/handyman/raven/lib/DirPathAction.java b/src/main/java/in/handyman/raven/lib/DirPathAction.java new file mode 100644 index 00000000..0fb1a092 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/DirPathAction.java @@ -0,0 +1,83 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.DirPath; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.File; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "DirPath" +) +public class DirPathAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final DirPath dirPath; + + private final Marker aMarker; + + public DirPathAction(final ActionExecutionAudit action, final Logger log, final Object dirPath) { + this.dirPath = (DirPath) dirPath; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" DirPath:" + this.dirPath.getName()); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "FileDetails Action for {} has been started" , dirPath.getName()); + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(dirPath.getResourceConn()); + DirectoryDetails input = DirectoryDetails.builder() + .given_file_path(dirPath.getFilePath()) + .given_file_checksum(null) + .build(); + + jdbi.useTransaction(handle -> { + + handle.createUpdate("INSERT INTO macro.file_path_details" + + "(given_file_path, given_file_checksum)" + + " VALUES( :given_file_path, :given_file_checksum);") + .bindBean(input).execute(); + log.debug(aMarker, "inserted {} into true positive result", input); + log.info(aMarker, "File Details Action for {} has been Completed" , dirPath.getName()); + }); + } catch (Exception e) { + log.error(aMarker, "Error in inserting file path details {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in inserting file path details", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return dirPath.getCondition(); + } + + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class DirectoryDetails { + + private String given_file_path; + private String given_file_checksum; + } +} diff --git a/src/main/java/in/handyman/raven/lib/DocClassifierAction.java b/src/main/java/in/handyman/raven/lib/DocClassifierAction.java new file mode 100644 index 00000000..f7ab4cc9 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/DocClassifierAction.java @@ -0,0 +1,102 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.DocClassifier; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "DocClassifier" +) +public class DocClassifierAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final DocClassifier docClassifier; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + public DocClassifierAction(final ActionExecutionAudit action, final Logger log, + final Object docClassifier) { + this.docClassifier = (DocClassifier) docClassifier; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" DocClassifier:" + this.docClassifier.getName()); + this.URI = action.getContext().get("copro.doc-classifier.url"); + + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Pixel Classifier Action for {} has been started" , docClassifier.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + final ObjectNode objectNode = mapper.createObjectNode(); + + objectNode.put("inputFilePath", docClassifier.getInputFilePath()); + objectNode.put("labelledClassifierModelFilePath", docClassifier.getLabelModelFilePath()); + objectNode.put("handwrittenClassifierModelFilePath", docClassifier.getHandwrittenModelFilePath()); + objectNode.put("checkboxClassifierModelFilePath", docClassifier.getCheckboxModelFilePath()); + objectNode.put("outputDir", docClassifier.getOutputDir()); + objectNode.set("labelledClassifierLabels", mapper.readTree(docClassifier.getLabels())); + objectNode.set("synonyms", mapper.readTree(docClassifier.getSynonyms())); + objectNode.put("viltConfigLabel", docClassifier.getViltConfigLabel()); + + log.info(aMarker, " Input variables id : {}", action.getActionId()); + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + log.debug(aMarker, "Request has been build with the parameters \n URI : {} \n Input-File-Path : {} \n Output-Directory : {} \n Label-Data-Model-Path : {} \n Handwritten-Model-Path : {} \n Checkbox-Model-Path : {} ", URI, docClassifier.getInputFilePath(), docClassifier.getOutputDir(), docClassifier.getLabelModelFilePath(), docClassifier.getHandwrittenModelFilePath(), docClassifier.getCheckboxModelFilePath()); + log.debug(aMarker, "Request has been build with the parameters \n Classifier-Labels : {} \n Synonyms : {} ", docClassifier.getLabels(), docClassifier.getSynonyms()); + + String name = docClassifier.getName() + "_response"; + log.debug(aMarker, "The Request Details: {}", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + action.getContext().put(name, responseBody); + action.getContext().put(name.concat(".error"), "false"); + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + } else { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), responseBody); + log.error(aMarker, "The Failure Response {} --> {}", name, responseBody); + } + log.info(aMarker, "Pixel Classifier Action for {} has been completed" , docClassifier.getName()); + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), e.getMessage()); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return docClassifier.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/DocnetAttributionAction.java b/src/main/java/in/handyman/raven/lib/DocnetAttributionAction.java new file mode 100644 index 00000000..73726248 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/DocnetAttributionAction.java @@ -0,0 +1,135 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.DocnetAttribution; +import in.handyman.raven.util.CommonQueryUtil; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "DocnetAttribution" +) +public class DocnetAttributionAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final DocnetAttribution docnetAttribution; + private final Marker aMarker; + private final String URI; + + private final boolean SOR_FLAG; + private final ObjectMapper mapper = new ObjectMapper(); + + public DocnetAttributionAction(final ActionExecutionAudit action, final Logger log, + final Object docnetAttribution) { + this.docnetAttribution = (DocnetAttribution) docnetAttribution; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" DocnetAttribution:" + this.docnetAttribution.getName()); + this.URI = action.getContext().get("copro.docnet-attribution.url"); + this.SOR_FLAG = Boolean.parseBoolean(action.getContext().get("sor-key-filtering-flag")); + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Docnut Attribution Action for {} has been started" , docnetAttribution.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES).build(); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(docnetAttribution.getResourceConn()); + final List> questions = new ArrayList<>(); + + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(docnetAttribution.getAttributeQuestionSql()); + formattedQuery.forEach(sqlToExecute -> questions.addAll(handle.createQuery(sqlToExecute).mapToMap().stream().collect(Collectors.toList()))); + }); + final String docnetAttributionAsResponse = docnetAttribution.getDocnetAttributionAsResponse(); + final ArrayNode finalRes = mapper.createArrayNode(); + for (var question : questions) { + + final String questionsJsonString = Optional.ofNullable(question.get("questions")).map(String::valueOf).orElse("[]"); + final String sorKey = Optional.ofNullable(question.get("sor_key")).map(String::valueOf).orElse("[]"); + final String sorId = Optional.ofNullable(question.get("sor_id")).map(String::valueOf).orElse("[]"); + final String sorItemId = Optional.ofNullable(question.get("sor_item_id")).map(String::valueOf).orElse("[]"); + + final JsonNode questionNodes = mapper.readTree(questionsJsonString); + + if (!questionNodes.isEmpty()) { + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("inputFilePath", docnetAttribution.getInputFilePath()); + objectNode.set("attributes", questionNodes); + objectNode.put("outputDir", docnetAttribution.getOutputDir()); + log.info(aMarker, "Question List for {} are {}", sorKey, questionNodes); + + final Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + log.info(aMarker, "The Request Details : {}", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + JsonNode actualObj = mapper.readTree(responseBody); + ObjectNode resultNode = mapper.createObjectNode(); + resultNode.put("sorKey", sorKey); + resultNode.put("sorId", sorId); + resultNode.put("sorItemId", sorItemId); + resultNode.putPOJO("attributionResult", actualObj); + finalRes.add(resultNode); + log.info(aMarker, "The Successful Response for {} --> {}", docnetAttributionAsResponse, responseBody); + } else { + log.error(aMarker, "The Failure Response {} --> {}", docnetAttributionAsResponse, responseBody); + action.getContext().put(docnetAttributionAsResponse.concat(".error"), "true"); + throw new HandymanException(responseBody); + } + } catch (Exception e) { + log.error(aMarker, "The Exception occurred ", e); + action.getContext().put(docnetAttributionAsResponse.concat(".error"), "true"); + throw new HandymanException("Failed to execute", e, action); + } + } + + } + action.getContext().put(docnetAttributionAsResponse.concat(".error"), "false"); + action.getContext().put(docnetAttributionAsResponse.concat(".response"), finalRes.toString().replace("'", "''")); + } catch (Exception e) { + action.getContext().put(docnetAttribution.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute the docnet attribution action", e, action); + } + log.info(aMarker, "Docnut Attribution Action for {} has been completed" , docnetAttribution.getName()); + + } + + @Override + public boolean executeIf() throws Exception { + return docnetAttribution.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/DocnetResultAction.java b/src/main/java/in/handyman/raven/lib/DocnetResultAction.java new file mode 100644 index 00000000..b0d2f2c8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/DocnetResultAction.java @@ -0,0 +1,219 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.DocnetResult; +import in.handyman.raven.util.CommonQueryUtil; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jdbi.v3.core.Jdbi; +import org.json.JSONArray; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.*; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "DocnetResult" +) +public class DocnetResultAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final DocnetResult docnetResult; + + private final Marker aMarker; + + public DocnetResultAction(final ActionExecutionAudit action, final Logger log, + final Object docnetResult) { + this.docnetResult = (DocnetResult) docnetResult; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" DocnetResult:" + this.docnetResult.getName()); + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Docnet Result Action for {} has been started" , docnetResult.getName()); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(docnetResult.getResourceConn()); + final List> results = new ArrayList<>(); + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(docnetResult.getCoproResultSqlQuery()); + formattedQuery.forEach(sqlToExecute -> results.addAll(handle.createQuery(sqlToExecute).mapToMap().stream().collect(Collectors.toList()))); + }); + + if (results.size() > 0) { + results.forEach(jsonData -> { + final String groupId = Optional.ofNullable(jsonData.get("group_id")).map(String::valueOf).orElse(null); + final Integer paperNo = Optional.ofNullable(jsonData.get("paper_no")).map(String::valueOf).map(Integer::parseInt).orElse(null); + final String fileRefId = Optional.ofNullable(jsonData.get("file_ref_id")).map(String::valueOf).orElse(null); + final String sorAttributionType = Optional.ofNullable(jsonData.get("sor_item_name")).map(String::valueOf).orElse(null); + final String createdUserId = Optional.ofNullable(jsonData.get("created_user_id")).map(String::valueOf).orElse(null); + final Long tenantId = Optional.ofNullable(jsonData.get("tenant_id")).map(String::valueOf).map(Long::valueOf).orElse(null); + final String response = Optional.ofNullable(jsonData.get("response")).map(String::valueOf).orElse(null); + + JSONArray jObj = new JSONArray(Objects.requireNonNull(response)); + + jObj.forEach(resultObject -> { + JSONObject obj = (JSONObject) resultObject; + JSONArray result = obj.getJSONArray("attributionResult"); + System.out.println("Attribution result " + result); + for (int i = 0; i < result.length(); i++) { + JSONObject object = (JSONObject) result.get(i); + final DocnetResultTable docnetResult = DocnetResultTable.builder() + .fileRefId(fileRefId) + .paperNo(paperNo) + .groupId(groupId) + .sorItemId(obj.getInt("sorId")) + .sorItemName(obj.getString("sorKey")) + .answer(object.getString("predictedAttributionValue")) + .question(object.getString("question")) + .createdUserId(createdUserId) + .tenantId(tenantId) + .confidenceScore(0) + .build(); + insertDocnutResult(jdbi, docnetResult); + } + }); + }); + } + } catch (Exception e) { + action.getContext().put(docnetResult.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, action); + } + + log.info(aMarker, "Docnut Result Action for {} has been completed" , docnetResult.getName()); + + } + + + @Override + public boolean executeIf() throws Exception { + return docnetResult.getCondition(); + } + + + private void insertDocnutResult(final Jdbi jdbi, final DocnetResultTable docnetResultTable) { + final List> sorConfigList = new ArrayList<>(); + + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil + .getFormattedQuery(docnetResult.getWeightageSqlQuery() + " WHERE si.sor_key= '" + docnetResultTable.getSorItemName() + "'"); + for (String sqlToExecute : formattedQuery) { + sorConfigList.addAll(handle.createQuery(sqlToExecute).mapToMap().stream().collect(Collectors.toList())); + } + }); + + if (sorConfigList.size() > 0) { + sorConfigList.forEach(jsonData -> { + Integer wordCount = Optional.ofNullable(jsonData.get("word_count")).map(String::valueOf).map(Integer::parseInt).orElse(null); + Integer characterCount = Optional.ofNullable(jsonData.get("character_count")).map(String::valueOf).map(Integer::parseInt).orElse(null); + String datatypePattern = Optional.ofNullable(jsonData.get("datatype_list")).map(String::valueOf).orElse(null); + Integer threshold = Optional.ofNullable(jsonData.get("threshold")).map(String::valueOf).map(Integer::parseInt).orElse(null); + + TCSConfiguration config = TCSConfiguration.builder() + .wordCount(wordCount) + .characterCount(characterCount) + .datatypeList(datatypePattern) + .threshold(threshold) + .answer(docnetResultTable.getAnswer()) + .build(); + int confidenceScore = createConfidenceScore(config); + docnetResultTable.setConfidenceScore(confidenceScore); + }); + } + + + jdbi.useTransaction(handle -> handle.createUpdate("INSERT INTO macro.docnet_process(file_ref_id,paper_no,group_id,sor_item_id,sor_item_name,question,answer,created_user_id,tenant_id,confidence_score)" + + " select :fileRefId , :paperNo, :groupId, :sorItemId, :sorItemName, :question, :answer, :createdUserId, :tenantId, :confidenceScore;") + .bindBean(docnetResultTable) + .execute()); + } + + private Integer createConfidenceScore(TCSConfiguration config) { + int confidenceScoreNegative = 0; + try { + Integer wordCount = config.wordCount; + Integer charactersCount = config.characterCount; + JSONArray datatypeList = new JSONArray(config.datatypeList); + String answer = config.answer; + Integer threshold = config.threshold; + // Word count + int tokenizedCount = countWordsUsingStringTokenizer(answer); + confidenceScoreNegative = tokenizedCount >= wordCount ? confidenceScoreNegative : confidenceScoreNegative + threshold; + // Datatype Pattern + boolean datatypePattern = false; + for (Object datatype : datatypeList) { + String patterns = datatype.toString(); + boolean pattern = Pattern.matches(patterns, answer); + if (pattern) { + datatypePattern = true; + } + } + confidenceScoreNegative = datatypePattern ? confidenceScoreNegative : confidenceScoreNegative + threshold; + // Character count + int characterLength = answer.length(); + confidenceScoreNegative = characterLength <= charactersCount ? confidenceScoreNegative : confidenceScoreNegative + threshold; + + int confidenceScore = 100 - confidenceScoreNegative; + return confidenceScore; + } catch (Exception ex) { + log.error(aMarker, "The Exception occurred in Confidence score validation {}", ExceptionUtil.toString(ex)); + throw new HandymanException("Failed to execute", ex, action); + } + } + + private int countWordsUsingStringTokenizer(String sentence) { + if (sentence == null || sentence.isEmpty()) { + return 0; + } + StringTokenizer tokens = new StringTokenizer(sentence); + return tokens.countTokens(); + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class DocnetResultTable { + + private String fileRefId; + private Integer paperNo; + private String groupId; + private Integer sorItemId; + private String sorItemName; + private String question; + private String answer; + private String createdUserId; + private Long tenantId; + private Integer confidenceScore; + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class TCSConfiguration { + private Integer wordCount; + private Integer characterCount; + private Integer threshold; + private String datatypeList; + private String answer; + } +} diff --git a/src/main/java/in/handyman/raven/lib/DocumentClassificationAction.java b/src/main/java/in/handyman/raven/lib/DocumentClassificationAction.java new file mode 100644 index 00000000..191496fc --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/DocumentClassificationAction.java @@ -0,0 +1,102 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.DocumentClassification; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "DocumentClassification" +) +public class DocumentClassificationAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final DocumentClassification documentClassification; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + + public DocumentClassificationAction(final ActionExecutionAudit action, final Logger log, + final Object documentClassification) { + this.documentClassification = (DocumentClassification) documentClassification; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" DocumentClassification:" + this.documentClassification.getName()); + this.URI = action.getContext().get("copro.hwd-extraction.url"); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Document Classification Action for {} has been started" , documentClassification.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + final ObjectNode objectNode = mapper.createObjectNode(); + + objectNode.put("inputFilePath", documentClassification.getFilePath()); + objectNode.put("outputDir", documentClassification.getOutputDir()); + objectNode.put("modelFilePath", documentClassification.getModelFilePath()); + objectNode.set("labels", mapper.readTree(documentClassification.getLabels())); + + log.info(aMarker, " Input variables id : {}", action.getActionId()); + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + log.debug(aMarker, "Request has been build with the parameters \n URI : {} \n Input-File-Path : {} \n Output-Directory : {} \n Model-Path : {} \n Path-Labels : {}", URI, documentClassification.getFilePath(), documentClassification.getOutputDir(), documentClassification.getModelFilePath(), documentClassification.getLabels()); + String name = documentClassification.getName() + "_response"; + log.debug(aMarker, "The Request Details: {}", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + String labelName = documentClassification.getName() + "_label"; + if (response.isSuccessful()) { + action.getContext().put(name, responseBody); + action.getContext().put(labelName, Optional.ofNullable(mapper.readTree(responseBody).get("label")).map(JsonNode::asText).map(String::toLowerCase).orElseThrow()); + action.getContext().put(name.concat(".error"), "false"); + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + } else { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), responseBody); + log.error(aMarker, "The Failure Response {} --> {}", name, responseBody); + } + log.info(aMarker, "Document Classification Action for {} has been completed" , documentClassification.getName()); + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), e.getMessage()); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return documentClassification.getCondition(); + } +} + + diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/DogLegAction.java b/src/main/java/in/handyman/raven/lib/DogLegAction.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/DogLegAction.java rename to src/main/java/in/handyman/raven/lib/DogLegAction.java diff --git a/src/main/java/in/handyman/raven/lib/DonutDocQaAction.java b/src/main/java/in/handyman/raven/lib/DonutDocQaAction.java new file mode 100644 index 00000000..c5016c2a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/DonutDocQaAction.java @@ -0,0 +1,296 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.collect.Lists; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.DonutDocQa; +import in.handyman.raven.util.CommonQueryUtil; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.statement.PreparedBatch; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.*; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "DonutDocQa" +) +public class DonutDocQaAction implements IActionExecution { + public static final String ATTRIBUTION_URL = "copro.docnet-attribution.url"; + private final ActionExecutionAudit action; + + private final Logger log; + + private final DonutDocQa donutDocQa; + + private final Marker aMarker; + private final List nodes; + + private final AtomicInteger counter = new AtomicInteger(); + private static String httpClientTimeout = new String(); + + + public DonutDocQaAction(final ActionExecutionAudit action, final Logger log, + final Object donutDocQa) { + this.donutDocQa = (DonutDocQa) donutDocQa; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" DonutDocQa: " + this.donutDocQa.getName()); + this.nodes = Optional.ofNullable(action.getContext().get(ATTRIBUTION_URL)).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList()); + this.httpClientTimeout = action.getContext().get("okhttp.client.timeout"); + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Donut Attribution Action for {} has been started", donutDocQa.getName()); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(donutDocQa.getResourceConn()); + final List donutQueryResults = new ArrayList<>(); + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(donutDocQa.getQuestionSql()); + formattedQuery.forEach(sqlToExecute -> donutQueryResults.addAll(handle.createQuery(sqlToExecute) + .mapToBean(DonutQueryResult.class) + .stream().collect(Collectors.toList()))); + }); + + // Create DDL + + jdbi.useTransaction(handle -> handle.execute("create table if not exists macro." + donutDocQa.getResponseAs() + " ( id bigserial not null, file_path text,question text, predicted_attribution_value text,b_box json null, image_dpi int8 null, image_width int8 null, image_height int8 null, extracted_image_unit varchar null, action_id bigint, root_pipeline_id bigint,process_id bigint, created_on timestamp not null default now(),status varchar NULL,stage varchar NULL );")); + jdbi.useTransaction(handle -> handle.execute("create table if not exists macro." + donutDocQa.getResponseAs() + "_error ( id bigserial not null, file_path text,error_message text, action_id bigint, root_pipeline_id bigint,process_id bigint, created_on timestamp not null default now() );")); + final List donutLineItems = new ArrayList<>(); + + donutQueryResults.stream().collect(Collectors.groupingBy(DonutQueryResult::getFilePath)) + .forEach((s, donutQueryResults1) -> donutLineItems.add(DonutLineItem.builder() + .filePath(s).questions(donutQueryResults1.stream().map(DonutQueryResult::getQuestion).collect(Collectors.toList())) + .build())); + + doProcess(donutLineItems); + } catch (Exception e) { + log.error(aMarker, "Error in donut attribution action", e); + throw new HandymanException("Error in donut attribution action", e, action); + } + + + } + + private void doProcess(final List donutLineItems) { + final int parallelism; + if (donutDocQa.getForkBatchSize() != null) { + parallelism = Integer.parseInt(donutDocQa.getForkBatchSize()); + } else { + parallelism = 1; + } + final int size = nodes.size(); + try { + if (size > 0) { + final int batchSize = donutLineItems.size() / parallelism; + if (parallelism > 1 && size > 1 && batchSize > 0) { + final List> donutLineItemPartitions = Lists.partition(donutLineItems, batchSize); + final CountDownLatch countDownLatch = new CountDownLatch(donutLineItemPartitions.size()); + final ExecutorService executorService = Executors.newFixedThreadPool(parallelism); + donutLineItemPartitions.forEach(items -> executorService.submit(() -> { + + try { + computeProcess(size, items); + } finally { + countDownLatch.countDown(); + } + + })); + countDownLatch.await(); + + } else { + computeProcess(size, donutLineItems); + } + + } + action.getContext().put(donutDocQa.getResponseAs().concat(".error"), "false"); + } catch (Exception e) { + log.error(aMarker, "The Failure Response {} --> {}", donutDocQa.getResponseAs(), e.getMessage(), e); + action.getContext().put(donutDocQa.getResponseAs().concat(".error"), "true"); + throw new HandymanException("Failure in donut response", e, action); + } + } + + private void computeProcess(final int nodeSize, final List donutLineItems) { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(donutDocQa.getResourceConn()); + + donutLineItems.forEach(donutLineItem -> { + final String filePath = donutLineItem.getFilePath(); + + try { + final List questions = donutLineItem.getQuestions(); + final String node = nodes.get(counter.incrementAndGet() % nodeSize); + + log.info(aMarker, "preparing {} for rest api call", questions.size()); + final DonutResultLineItem lineItems = new DonutApiCaller(node).compute(filePath, donutDocQa.getOutputDir(), questions); + log.info(aMarker, "completed {}", lineItems.attributes.size()); + + jdbi.useTransaction(handle -> { + final PreparedBatch batch = handle.prepareBatch("INSERT INTO macro." + donutDocQa.getResponseAs() + " (process_id,file_path,question, predicted_attribution_value,b_box, image_dpi , image_width , image_height , extracted_image_unit , action_id, root_pipeline_id,status,stage) VALUES(" + action.getPipelineId() + ",:filePath,:question,:predictedAttributionValue, :bBoxes::json, :imageDpi, :imageWidth, :imageHeight , :extractedImageUnit, " + action.getActionId() + "," + action.getRootPipelineId() + ",:status,:stage);"); + + Lists.partition(lineItems.attributes, 100).forEach(resultLineItems -> { + log.info(aMarker, "inserting into donut_docqa_action {}", resultLineItems.size()); + resultLineItems.forEach(resultLineItem -> { + batch.bind("filePath", filePath) + .bind("question", resultLineItem.question) + .bind("predictedAttributionValue", resultLineItem.predictedAttributionValue) + .bind("bBoxes", String.valueOf(resultLineItem.bBoxes)) + .bind("imageDpi", lineItems.imageDPI) + .bind("imageWidth", lineItems.imageWidth) + .bind("imageHeight", lineItems.imageHeight) + .bind("extractedImageUnit", lineItems.extractedImageUnit) + .bind("status", "COMPLETED") + .bind("stage", "VQA_TRANSACTION") + .add(); + + }); + int[] counts = batch.execute(); + log.info(aMarker, " persisted {} in donut_docqa_action", counts); + }); + }); + } catch (Exception e) { + jdbi.useTransaction(handle -> handle.createUpdate("INSERT INTO macro." + donutDocQa.getResponseAs() + "_error (file_path,error_message, action_id, root_pipeline_id,process_id) VALUES(:filePath,:errorMessage, " + action.getActionId() + ", " + action.getRootPipelineId() + "," + action.getPipelineId() + ");") + .bind("filePath", filePath) + .bind("errorMessage", e.getMessage()) + .execute()); + log.error(aMarker, "Error in inserting into docqa action {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Error in donut docQa action", handymanException, action); + } + + }); + + } + + @Override + public boolean executeIf() throws Exception { + return donutDocQa.getCondition(); + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DonutLineItem { + + private String filePath; + private List questions; + + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DonutQueryResult { + + private String filePath; + private String question; + + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DonutResultLineItem { + //private String question; + //private String predictedAttributionValue; + //private JsonNode bBoxes; + private List attributes; + private double imageDPI; + private double imageWidth; + private double imageHeight; + private String extractedImageUnit; + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DonutResult { + private String question; + private String predictedAttributionValue; + private JsonNode bBoxes; + } + + + @Slf4j + public static class DonutApiCaller { + + private static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + private static final ObjectMapper MAPPER = new ObjectMapper(); + private final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .writeTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .readTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .build(); + //TODO rename to copro url + private final String node; + + public DonutApiCaller(final String node) { + this.node = node; + } + + protected DonutResultLineItem compute(final String inputPath, final String outputDir, final List questions) { + final ObjectNode objectNode = MAPPER.createObjectNode(); + objectNode.put("inputFilePath", inputPath); + objectNode.putPOJO("attributes", questions); +// objectNode.put("outputDir", outputDir); + final Request request = new Request.Builder().url(node) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + if(log.isInfoEnabled()) { + log.info( "Request has been build with the parameters \n coproUrl {} ,inputFilePath : {} ,attributes {} ",node,inputPath,questions ); + } + log.info("Request URL : {} Question List size {}", node, questions.size()); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + + DonutResultLineItem donutLineItems = MAPPER.readValue(responseBody, new TypeReference<>() { + }); + log.info("DonutLineItem size {}", donutLineItems.attributes.size()); + return donutLineItems; + } else { + log.error("Error in the donut docqa response {}", responseBody); + throw new HandymanException(responseBody); + } + } catch (Exception e) { + log.error("Failed to execute the rest api call"); + throw new HandymanException("Failed to execute the rest api call " + node, e); + } + } + } + +} diff --git a/src/main/java/in/handyman/raven/lib/DonutImpiraQaAction.java b/src/main/java/in/handyman/raven/lib/DonutImpiraQaAction.java new file mode 100644 index 00000000..867058c0 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/DonutImpiraQaAction.java @@ -0,0 +1,295 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.collect.Lists; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.DonutImpiraQa; +import in.handyman.raven.util.CommonQueryUtil; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.statement.PreparedBatch; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.*; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "DonutImpiraQa" +) +public class DonutImpiraQaAction implements IActionExecution { + + public static final String ATTRIBUTION_URL = "copro.docnutImpira-attribution.url"; + private final ActionExecutionAudit action; + + private final Logger log; + + private final DonutImpiraQa donutImpiraQa; + + private final Marker aMarker; + + private final List nodes; + private static String httpClientTimeout = new String(); + + private final AtomicInteger counter = new AtomicInteger(); + + public DonutImpiraQaAction(final ActionExecutionAudit action, final Logger log, + final Object donutImpiraQa) { + this.donutImpiraQa = (DonutImpiraQa) donutImpiraQa; + this.action = action; + this.log = log; + this.nodes = Optional.ofNullable(action.getContext().get(ATTRIBUTION_URL)).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList()); + this.aMarker = MarkerFactory.getMarker(" DonutImpiraQa:"+this.donutImpiraQa.getName()); + httpClientTimeout = action.getContext().get("okhttp.client.timeout"); + } + + @Override + public void execute() throws Exception { + try{ + log.info(aMarker, "Donut Impira Attribution Action for {} has been started" , donutImpiraQa.getName()); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(donutImpiraQa.getResourceConn()); + final List donutImpiraQueryResults = new ArrayList<>(); + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(donutImpiraQa.getQuestionSql()); + formattedQuery.forEach(sqlToExecute -> donutImpiraQueryResults.addAll(handle.createQuery(sqlToExecute) + .mapToBean(DonutImpiraQueryResult.class) + .stream().collect(Collectors.toList()))); + }); + + // Create DDL + + jdbi.useTransaction(handle -> handle.execute("create table if not exists macro." + donutImpiraQa.getResponseAs() + " ( id bigserial not null, file_path text,question text, predicted_attribution_value text NULL,confidence_score float8 NULL, b_box json null, image_dpi int8 null, image_width int8 null, image_height int8 null, extracted_image_unit varchar null, action_id bigint, root_pipeline_id bigint, process_id bigint, created_on timestamp not null default now(), status varchar NULL, stage varchar NULL );")); + jdbi.useTransaction(handle -> handle.execute("create table if not exists macro." + donutImpiraQa.getResponseAs() + "_error ( id bigserial not null, file_path text,error_message text, action_id bigint, root_pipeline_id bigint,process_id bigint, created_on timestamp not null default now() );")); + + final List docnutImpiraLineItems = new ArrayList<>(); + + donutImpiraQueryResults.stream().collect(Collectors.groupingBy(DonutImpiraQueryResult::getFilePath)) + .forEach((s, donutQueryResults1) -> docnutImpiraLineItems.add(DocnutImpiraLineItem.builder() + .filePath(s).questions(donutQueryResults1.stream().map(DonutImpiraQueryResult::getQuestion).collect(Collectors.toList())) + .build())); + + doProcess(docnutImpiraLineItems); + } catch (Exception e) { + log.error(aMarker, "Error in ernie attribution action", e); + throw new HandymanException("Error in ernie attribution action", e, action); + } + } + + private void doProcess(final List donutLineItems) { + final int parallelism; + if (donutImpiraQa.getForkBatchSize() != null) { + parallelism = Integer.parseInt(donutImpiraQa.getForkBatchSize()); + } else { + parallelism = 1; + } + final int size = nodes.size(); + try { + if (size > 0) { + final int batchSize = donutLineItems.size() / parallelism; + if (parallelism > 1 && size > 1 && batchSize > 0) { + final List> donutLineItemPartitions = Lists.partition(donutLineItems, batchSize); + final CountDownLatch countDownLatch = new CountDownLatch(donutLineItemPartitions.size()); + final ExecutorService executorService = Executors.newFixedThreadPool(parallelism); + donutLineItemPartitions.forEach(items -> executorService.submit(() -> { + + try { + computeProcess(size, items); + } finally { + countDownLatch.countDown(); + } + + })); + countDownLatch.await(); + + } else { + computeProcess(size, donutLineItems); + } + + } + action.getContext().put(donutImpiraQa.getResponseAs().concat(".error"), "false"); + } catch (Exception e) { + log.error(aMarker, "The Failure Response {} --> {}", donutImpiraQa.getResponseAs(), e.getMessage(), e); + action.getContext().put(donutImpiraQa.getResponseAs().concat(".error"), "true"); + } + } + + private void computeProcess(final int nodeSize, final List docnutImpiraLineItems) { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(donutImpiraQa.getResourceConn()); + + docnutImpiraLineItems.forEach(docnutImpiraLineItem -> { + final String filePath = docnutImpiraLineItem.getFilePath(); + + try { + final List questions = docnutImpiraLineItem.getQuestions(); + final String node = nodes.get(counter.incrementAndGet() % nodeSize); + + log.info(aMarker, "preparing {} for rest api call", questions.size()); + final DonutImpiraResultLineItem donutImpiraResultLineItem = new DocnutImpiraApiCaller(node).compute(filePath, donutImpiraQa.getOutputDir(), questions); + log.info(aMarker, "completed {}", donutImpiraResultLineItem.attributes.size()); + + jdbi.useTransaction(handle -> { + final PreparedBatch batch = handle.prepareBatch("INSERT INTO macro." + donutImpiraQa.getResponseAs() + " (process_id,file_path,question, predicted_attribution_value,b_box, image_dpi , image_width , image_height , extracted_image_unit , action_id, root_pipeline_id, confidence_score, status, stage) VALUES(" + action.getPipelineId() + ",:filePath,:question,:predictedAttributionValue, :bBoxes::json, :imageDpi, :imageWidth, :imageHeight , :extractedImageUnit, " + action.getActionId() + "," + action.getRootPipelineId() + ",:confidenceScore, :status, :stage);"); + + Lists.partition(donutImpiraResultLineItem.attributes, 100).forEach(resultLineItems -> { + log.info(aMarker, "inserting into donut_docqa_action {}", resultLineItems.size()); + resultLineItems.forEach(resultLineItem -> { + batch.bind("filePath", filePath) + .bind("question", resultLineItem.question) + .bind("predictedAttributionValue", resultLineItem.predictedAttributionValue) + .bind("bBoxes", String.valueOf(resultLineItem.bBoxes)) + .bind("imageDpi", donutImpiraResultLineItem.imageDPI) + .bind("imageWidth", donutImpiraResultLineItem.imageWidth) + .bind("imageHeight", donutImpiraResultLineItem.imageHeight) + .bind("extractedImageUnit", donutImpiraResultLineItem.extractedImageUnit) + .bind("confidenceScore",(resultLineItem.score * 100)) + .bind("status", "COMPLETED") + .bind("stage", "VQA_TRANSACTION") + .add(); + + }); + int[] counts = batch.execute(); + log.info(aMarker, " persisted {} in donut_docqa_action", counts); + }); + }); + } catch (Exception e) { + jdbi.useTransaction(handle -> { + handle.createUpdate("INSERT INTO macro." + donutImpiraQa.getResponseAs() + "_error (file_path,error_message, action_id, root_pipeline_id,process_id) VALUES(:filePath,:errorMessage, " + action.getActionId() + ", " + action.getRootPipelineId() + "," + action.getPipelineId() + ");") + .bind("filePath", filePath) + .bind("errorMessage", e.getMessage()) + .execute(); + }); + } + + }); + + } + + @Override + public boolean executeIf() throws Exception { + return donutImpiraQa.getCondition(); + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DocnutImpiraLineItem { + + private String filePath; + private List questions; + + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DonutImpiraQueryResult { + + private String filePath; + private String question; + + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DonutImpiraResultLineItem { + //private String question; + //private String predictedAttributionValue; + //private JsonNode bBoxes; + private List attributes; + private double imageDPI; + private double imageWidth; + private double imageHeight; + private String extractedImageUnit; + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DocnutImpiraResult { + private String question; + private String predictedAttributionValue; + private JsonNode bBoxes; + private float score; + } + + + @Slf4j + public static class DocnutImpiraApiCaller { + + private static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + private static final ObjectMapper MAPPER = new ObjectMapper(); + + private final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .writeTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .readTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .build(); + private final String node; + + public DocnutImpiraApiCaller(final String node) { + this.node = node; + } + + protected DonutImpiraResultLineItem compute(final String inputPath, final String outputDir, final List questions) { + final ObjectNode objectNode = MAPPER.createObjectNode(); + objectNode.put("inputFilePath", inputPath); + objectNode.putPOJO("attributes", questions); +// objectNode.put("outputDir", outputDir); + final Request request = new Request.Builder().url(node) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + if(log.isInfoEnabled()){ + log.info("1. input object node in the consumer process copro url {}, inputFilePath{} , attributes {}",node,inputPath,questions); + log.info("2. Request URL : {} Question List size {}", node, questions.size()); + + } + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + + DonutImpiraResultLineItem donutImpiraResultLineItem = MAPPER.readValue(responseBody, new TypeReference<>() { + }); + log.info("DonutLineItem size {}", donutImpiraResultLineItem.attributes.size()); + return donutImpiraResultLineItem; + } else { + throw new HandymanException(responseBody); + } + } catch (Exception e) { + log.error("Failed to execute the rest api call {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute the rest api call " + node, e); + } + } + } +} diff --git a/src/main/java/in/handyman/raven/lib/DownloadAssetAction.java b/src/main/java/in/handyman/raven/lib/DownloadAssetAction.java new file mode 100644 index 00000000..286749d8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/DownloadAssetAction.java @@ -0,0 +1,90 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.DownloadAsset; +import in.handyman.raven.util.ExceptionUtil; +import in.handyman.raven.util.InstanceUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "DownloadAsset" +) +public class DownloadAssetAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final DownloadAsset downloadAsset; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + private final Marker aMarker; + + public DownloadAssetAction(final ActionExecutionAudit action, final Logger log, + final Object downloadAsset) { + this.downloadAsset = (DownloadAsset) downloadAsset; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" DownloadAsset:" + this.downloadAsset.getName()); + this.URI = action.getContext().get("copro.download-file.url"); + + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Download Action for {} has been started" , downloadAsset.getName()); + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + + // convert the book to JSON by Jackson + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.putPOJO("inputFileUri", downloadAsset.getUrl()); + objectNode.put("outputDir", downloadAsset.getLocation()); + + // build a request + Request request = new Request.Builder().url(this.URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + log.info(aMarker, "The request details: {} ", request); + String name = downloadAsset.getName(); + + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + log.debug(aMarker, responseBody); + String path = mapper.readTree(responseBody).get("paperPath").asText(); + action.getContext().put(name, path); + log.info(aMarker, "Successful Response Details {} {}", name, responseBody); + action.getContext().put(name + ".isSuccessful", String.valueOf(response.isSuccessful())); + } else { + log.error(aMarker, "Failure Response Details {} {}", name, responseBody); + log.error(aMarker, name + ".errorMessage {}", responseBody); + } + } catch (Exception e) { + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + action.getContext().put(name + ".isSuccessful", "false"); + throw new HandymanException("Failed to execute", e, action); + } + log.info(aMarker, "Download Action for {} has been Completed" , downloadAsset.getName()); + } + + @Override + public boolean executeIf() throws Exception { + return downloadAsset.getCondition(); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/DropFileAction.java b/src/main/java/in/handyman/raven/lib/DropFileAction.java similarity index 76% rename from handyman.raven/src/main/java/in/handyman/raven/lib/DropFileAction.java rename to src/main/java/in/handyman/raven/lib/DropFileAction.java index 0fb2fee2..2afcc81e 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/DropFileAction.java +++ b/src/main/java/in/handyman/raven/lib/DropFileAction.java @@ -1,5 +1,6 @@ package in.handyman.raven.lib; +import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.action.ActionExecution; import in.handyman.raven.lambda.action.IActionExecution; import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; @@ -40,10 +41,14 @@ public void execute() throws Exception { var id = actionExecutionAudit.getActionId(); log.info(aMarker, " id#{}, name#{}, file#{}", id, name, filePath); - - var file = new File(filePath); - Files.deleteIfExists(file.toPath()); - log.info(aMarker, " Completed id#{}, name#{}, file#{}", id, name, file); + try { + var file = new File(filePath); + Files.deleteIfExists(file.toPath()); + log.info(aMarker, " Completed id#{}, name#{}, file#{}", id, name, file); + } catch (Exception e) { + log.error(aMarker, "Error in dropping file", e); + throw new HandymanException("Error in dropping file", e, actionExecutionAudit); + } } @Override diff --git a/src/main/java/in/handyman/raven/lib/DrugMatchAction.java b/src/main/java/in/handyman/raven/lib/DrugMatchAction.java new file mode 100644 index 00000000..f81ed017 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/DrugMatchAction.java @@ -0,0 +1,308 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.*; + +import java.lang.Exception; +import java.lang.Object; +import java.lang.Override; +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Timestamp; +import java.sql.Types; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "DrugMatch" +) +public class DrugMatchAction implements IActionExecution { + private final ActionExecutionAudit action; + private final Logger log; + private final DrugMatch drugMatch; + private final Marker aMarker; + + public DrugMatchAction(final ActionExecutionAudit action, final Logger log, + final Object drugMatch) { + this.drugMatch = (DrugMatch) drugMatch; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" DrugMatch:" + this.drugMatch.getName()); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "drug match process for {} has been started" , drugMatch.getName()); + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(drugMatch.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + // build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO " + drugMatch.getDrugCompare() + + " (origin_id ,eoc_identifier,paper_no,created_on,document_id,drug_name,drug_jcode,actual_value,status,stage,message, root_pipeline_id)" + + " VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"; + log.info(aMarker, "Drug Match Insert query {}", insertQuery); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(action.getContext().get("drugname.api.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "Drug Match copro urls {}", urls); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + DrugMatchOutputTable.class, + DrugMatchInputTable.class, + jdbi, log, + new DrugMatchInputTable(), urls, action); + + log.info(aMarker, "Drug Match coproProcessor initialization {}", coproProcessor); + + //4. call the method start producer from coproprocessor + coproProcessor.startProducer(drugMatch.getInputSet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + log.info(aMarker, "Drug Match coproProcessor startProducer called read batch size {}", action.getContext().get("read.batch.size")); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("consumer.masterdata.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), + new DrugMatchConsumerProcess(log, aMarker, action)); + log.info(aMarker, "Drug Match coproProcessor startConsumer called consumer count {} write batch count {} ", Integer.valueOf(action.getContext().get("consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size"))); + + + } catch (Exception ex) { + log.error(aMarker, "error in execute method for Drug Match {}", ExceptionUtil.toString(ex)); + throw new HandymanException("error in execute method for Drug Match", ex, action); + } + log.info(aMarker, "drug match process for {} has been completed" , drugMatch.getName()); + } + + + public static class DrugMatchConsumerProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + public final ActionExecutionAudit action; + private String appId; + private String appKeyId; + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + private final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + + public DrugMatchConsumerProcess(Logger log, Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.appId = action.getContext().get("agadia.appId"); + this.appKeyId = action.getContext().get("agadia.appKeyId"); + } + + @Override + public List process(URL endpoint, DrugMatchInputTable result) throws Exception { + log.info(aMarker, "coproProcessor consumer process started with endpoint {} and entity {}", endpoint, result); + List parentObj = new ArrayList<>(); + AtomicInteger atomicInteger = new AtomicInteger(); + String requestString; + ObjectMapper mapper = new ObjectMapper(); + String drugName = result.getDrugName(); + if (drugName != null) { + DrugNameRequest drugNameRequest = DrugNameRequest.builder() + .drugName(result.drugName) + .jCode(result.jCode) + .build(); + try { + requestString = mapper.writeValueAsString(drugNameRequest); + } catch (JsonProcessingException e) { + log.error(aMarker, "error in mapper value {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in mapper value", e, action); + } + + final Request request = new Request.Builder().url(endpoint).header("appId", appId) + .header("appKeyId", appKeyId) + .post(RequestBody.create(requestString, MediaTypeJSON)) + .build(); + String originId = result.getOriginId(); + String eocIdentifier = result.eocIdentifier; + Integer paperNo = result.paperNo; + String documentId = result.documentId; + String jCode = result.getJCode(); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + List output = mapper.readValue(responseBody, new TypeReference<>() { + }); + output.forEach(drugNameResponse -> { + parentObj.add( + DrugMatchOutputTable.builder() + .originId(originId) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .eocIdentifier(eocIdentifier) + .paperNo(paperNo) + .documentId(documentId) + .drugJCode(jCode) + .drugName(drugName) + .actualValue(drugNameResponse.getDrugName()) + .status("COMPLETED") + .stage("PAHUB-DRUGNAME") + .rootPipelineId(result.rootPipelineId) + .message("Drug name master data extracted").build()); + }); + + } else { + parentObj.add( + DrugMatchOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .eocIdentifier(eocIdentifier) + .paperNo(paperNo) + .documentId(documentId) + .drugJCode(jCode) + .drugName(drugName) + .actualValue("") + .status("COMPLETED") + .stage("PAHUB-DRUGNAME") + .message("Drug name with pahub instance has been failed") + .rootPipelineId(result.rootPipelineId) + .build()); + log.error(aMarker, "failed for request {} and response {}", request, response); + throw new HandymanException(responseBody); + } + } catch (Exception exception) { + parentObj.add( + DrugMatchOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .eocIdentifier(eocIdentifier) + .paperNo(paperNo) + .documentId(documentId) + .drugJCode(jCode) + .drugName(drugName) + .actualValue("") + .status("FAILED") + .stage("PAHUB-DRUGNAME") + .message("Drug name with pahub instance has been failed") + .rootPipelineId(result.rootPipelineId) + .build()); + log.error(aMarker, "error in hitting the file for mentioned request {} with exception {}", request, ExceptionUtil.toString(exception)); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("Blank Page removal consumer failed for originId"+ originId, handymanException, this.action); + } + } + + atomicInteger.set(0); + log.info(aMarker, "coproProcessor consumer process with output entity {}", parentObj); + return parentObj; + } + } + + @Override + public boolean executeIf() throws Exception { + return drugMatch.getCondition(); + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DrugMatchInputTable implements CoproProcessor.Entity { + + private String originId; + private String eocIdentifier; + private Integer paperNo; + private String documentId; + private String drugName; + private String jCode; + private Long rootPipelineId; + + @Override + public List getRowData() { + return null; + } + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DrugMatchOutputTable implements CoproProcessor.Entity { + + private String originId; + private String eocIdentifier; + private Integer paperNo; + private String documentId; + private String drugName; + private String drugJCode; + private Timestamp createdOn; + private String actualValue; + private String status; + private String stage; + private String message; + private Long rootPipelineId; + + @Override + public List getRowData() { + return Stream.of(this.originId, this.eocIdentifier, this.paperNo, this.createdOn, this.documentId, + this.drugName, this.drugJCode, + this.actualValue, this.status, this.stage, this.message, this.rootPipelineId + ).collect(Collectors.toList()); + } + } + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DrugNameRequest { + private String drugName; + private String jCode; + } + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class drugNameResponse { + private String drugName; + private String ndc; + private String jCode; + } +} + + diff --git a/src/main/java/in/handyman/raven/lib/EntityFilterAction.java b/src/main/java/in/handyman/raven/lib/EntityFilterAction.java new file mode 100644 index 00000000..a2ce1ff6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/EntityFilterAction.java @@ -0,0 +1,147 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.EntityFilter; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.jdbi.v3.core.Jdbi; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "EntityFilter" +) +public class EntityFilterAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final EntityFilter entityFilter; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + public EntityFilterAction(final ActionExecutionAudit action, final Logger log, + final Object entityFilter) { + this.entityFilter = (EntityFilter) entityFilter; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" EntityFilter:" + this.entityFilter.getName()); + this.URI = action.getContext().get("copro.doc-filtering.url"); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "<-------Pixel Classifier Action for {} has been started------->", entityFilter.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + final ObjectNode objectNode = mapper.createObjectNode(); + + objectNode.put("inputFilePath", entityFilter.getInputFilePath()); + objectNode.set("entityKeysToFilter", mapper.readTree(entityFilter.getEntityKeysToFilter())); + objectNode.set("mandatoryKeysToFilter", mapper.readTree(entityFilter.getMandatoryKeysToFilter())); + + log.info(aMarker, " Input variables id : {}", action.getActionId()); + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + log.debug(aMarker, "Request has been build with the parameters \n URI : {} \n Input-File-Path : {} \n entity-key-filters : {} \n mandatory-key-filters : {}", URI, entityFilter.getInputFilePath(), entityFilter.getEntityKeysToFilter(), entityFilter.getMandatoryKeysToFilter()); + + String name = entityFilter.getName() + "_response"; + log.debug(aMarker, "The Request Details: {}", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + JSONObject responseObject = new JSONObject(responseBody); + final Integer paperNo = Optional.ofNullable(entityFilter.getPaperNo()).map(String::valueOf).map(Integer::parseInt).orElse(null); + if (!responseObject.isEmpty()) { + final PaperFilteringResultTable paperFilteringResultTable = PaperFilteringResultTable + .builder() + .fileRefId(Optional.ofNullable(entityFilter.getDocId()).map(String::valueOf).orElse(null)) + .groupId(Optional.ofNullable(entityFilter.getGroupId()).map(String::valueOf).orElse(null)) + .filePath(Optional.ofNullable(responseObject.get("filePath")).map(String::valueOf).orElse(null)) + .fileName(Optional.ofNullable(responseObject.get("fileName")).map(String::valueOf).orElse(null)) + .pageContent(Optional.ofNullable(responseObject.get("page_content")).map(String::valueOf).orElse(null)) + .entityResponse(Optional.ofNullable(responseObject.get("entity_response")).map(String::valueOf).orElse(null)) + .entityConfidenceScore(Optional.ofNullable(responseObject.get("entity_confidence_score")).map(String::valueOf).orElse(null)) + .mandatoryResponse(Optional.ofNullable(responseObject.get("mandatory_response")).map(String::valueOf).orElse(null)) + .mandatoryConfidenceScore(Optional.ofNullable(responseObject.get("mandatory_confidence_score")).map(String::valueOf).orElse(null)) + .paperNo(paperNo) + .build(); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(entityFilter.getResourceConn()); + jdbi.useTransaction(handle -> { + handle.createUpdate("INSERT INTO pre_process.paper_filtering_result(intics_reference_id,group_id,paper_no, preprocessed_file_path,preprocessed_file_name,page_content,entity_response,entity_confidence_score,mandatory_response,mandatory_confidence_score)" + + " select :fileRefId, :groupId, :paperNo, :filePath , :fileName, :pageContent, :entityResponse ::jsonb, :entityConfidenceScore ::jsonb, :mandatoryResponse ::jsonb, :mandatoryConfidenceScore ::jsonb;") + .bindBean(paperFilteringResultTable) + .execute(); + }); + } + + action.getContext().put(name.concat(".error"), "false"); + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + } else { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), responseBody); + log.error(aMarker, "The Failure Response {} --> {}", name, responseBody); + } + log.info(aMarker, "<-------Text Filtering Action for {} has been completed ------->", entityFilter.getName()); + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), e.getMessage()); + log.error(aMarker, "The Exception occurred with exception {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute the entity filter action", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return entityFilter.getCondition(); + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class PaperFilteringResultTable { + + private String fileRefId; + private Integer paperNo; + private String groupId; + private String filePath; + private String fileName; + private String pageContent; + private String entityResponse; + private String entityConfidenceScore; + private String mandatoryResponse; + private String mandatoryConfidenceScore; + private String createdUserId; + private Long tenantId; + } +} diff --git a/src/main/java/in/handyman/raven/lib/EocJsonGeneratorAction.java b/src/main/java/in/handyman/raven/lib/EocJsonGeneratorAction.java new file mode 100644 index 00000000..4ab4c458 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/EocJsonGeneratorAction.java @@ -0,0 +1,136 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.EocJsonGenerator; +import in.handyman.raven.util.InstanceUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.URI; +import java.net.URL; +import java.util.Objects; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "EocJsonGenerator" +) +public class EocJsonGeneratorAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final EocJsonGenerator eocJsonGenerator; + + private final Marker aMarker; + private final String URI; + + public EocJsonGeneratorAction(final ActionExecutionAudit action, final Logger log, + final Object eocJsonGenerator) { + this.eocJsonGenerator = (EocJsonGenerator) eocJsonGenerator; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" EocJsonGenerator:" + this.eocJsonGenerator.getName()); + this.URI = action.getContext().get("gatekeeper.url"); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Eoc Json Generation Action for {} has been started", eocJsonGenerator.getName()); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(eocJsonGenerator.getResourceConn()); + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + final String documentId = eocJsonGenerator.getDocumentId(); + final String eocId = eocJsonGenerator.getEocId(); + final String originId = eocJsonGenerator.getOriginId(); + final String groupId = eocJsonGenerator.getGroupId(); + final long tenantId = Long.parseLong(action.getContext().get("tenant_id")); + + String apiUrl = urlEncoder(URI + "api/v1/" + documentId + "/docdetaillineitem/" + eocId + "?tenantId=" + tenantId); + + String authtoken = eocJsonGenerator.getAuthtoken(); + Request request = new Request.Builder().url(apiUrl) + .header("Authorization", "Bearer " + authtoken).build(); + + String name = eocJsonGenerator.getName(); + if(log.isInfoEnabled()){ + log.info(aMarker, "The Request Details api url {} authToken {} ", apiUrl,authtoken); + } + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + + + EocResponse eocResponse = EocResponse.builder() + .documentId(documentId) + .eocId(eocId) + .originId(originId) + .groupId(Integer.valueOf(groupId)) + .eocResponse(responseBody).rootPipelineId(action.getRootPipelineId()).build(); + + jdbi.useTransaction(handle -> { + handle.createUpdate("INSERT INTO outbound.eoc_response_details (document_id, eoc_id, origin_id, group_id, eoc_response, root_pipeline_id) " + + "VALUES( :documentId, :eocId, :originId, :groupId, :eocResponse::json, :rootPipelineId);") + .bindBean(eocResponse).execute(); + log.debug(aMarker, "inserted {} into eoc response details", eocResponse); + action.getContext().put(name + ".isSuccessful", String.valueOf(response.isSuccessful())); + }); + } else { + log.error(aMarker, "The Failure Response {} --> {}", name, responseBody); + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), responseBody); + } + } catch (Exception e) { + log.error(aMarker, "The Exception occurred ", e); + action.getContext().put(name + ".isSuccessful", "false"); + throw new HandymanException("Failed to execute for groupId- " + groupId + "originId- " + originId + "eocId- " + eocId, e, action); + } + log.info(aMarker, "Eoc Json Generation Action for {} has been completed for groupId- " + groupId + "originId- " + originId + "eocId- " + eocId, eocJsonGenerator.getName()); + } + private String urlEncoder(final String encodingUrl){ + String encodedUrl; + try { + URL url = new URL(encodingUrl); + URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef()); + encodedUrl = uri.toASCIIString(); + } catch (Exception exception) { + log.error(aMarker, "Exception occurred in encoding the url {}", encodingUrl, exception); + throw new HandymanException("Exception occurred in encoding the url", exception, action); + } + return encodedUrl; + } + + + @Override + public boolean executeIf() throws Exception { + return eocJsonGenerator.getCondition(); + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class EocResponse { + private String documentId; + private String eocId; + private String originId; + private Integer groupId; + private String eocResponse; + private Long rootPipelineId; + } +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/EpisodeOfCoverageAction.java b/src/main/java/in/handyman/raven/lib/EpisodeOfCoverageAction.java new file mode 100644 index 00000000..32b78824 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/EpisodeOfCoverageAction.java @@ -0,0 +1,239 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.agadia.eocsplitting.EocIdCoverage; +import in.handyman.raven.lib.agadia.eocsplitting.OriginCoverage; +import in.handyman.raven.lib.agadia.eocsplitting.QrCodeCoverage; +import in.handyman.raven.lib.agadia.eocsplitting.SorItemCoverage; +import in.handyman.raven.lib.model.EpisodeOfCoverage; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "EpisodeOfCoverage" +) +public class EpisodeOfCoverageAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + private final EpisodeOfCoverage episodeOfCoverage; + + private final Marker aMarker; + + public EpisodeOfCoverageAction(final ActionExecutionAudit action, final Logger log, + final Object episodeOfCoverage) { + this.episodeOfCoverage = (EpisodeOfCoverage) episodeOfCoverage; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" EpisodeOfCoverage:" + this.episodeOfCoverage.getName()); + } + + @Override + public void execute() throws Exception { + + try { + String name = episodeOfCoverage.getName(); + String eocIdCount = episodeOfCoverage.getEocIdCount(); + log.info(aMarker, "Episode of coverage with group by eoc-id has started name {} eoc_id_count {} ", name, eocIdCount); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(episodeOfCoverage.getResourceConn()); + final String splittingPrioritySelector = Optional.ofNullable(action.getContext().get("sor.grouping.priority.selector")).orElse("true"); + + final Boolean eocActivator = Boolean.valueOf(action.getContext().get("sor.grouping.eid.validator")); + final Boolean qrActivator = Boolean.valueOf(action.getContext().get("sor.grouping.qid.validator")); + final Boolean memberIdActivator = Boolean.valueOf(action.getContext().get("sor.grouping.pid.validator")); + final Boolean patientInfoActivator = Boolean.valueOf(action.getContext().get("sor.grouping.pnd.validator")); + + + if (log.isInfoEnabled()) { + log.info("Sor grouping enabled the priority selector {}", splittingPrioritySelector); + } + if (Objects.equals(splittingPrioritySelector, "true")) { + executeEocIdPriority(eocIdCount, jdbi, eocActivator, qrActivator, memberIdActivator, patientInfoActivator); + + } else { + executeNonEocIdPriority(eocIdCount, jdbi, eocActivator, qrActivator, memberIdActivator, patientInfoActivator); + + } + } catch (Exception e) { + log.error(aMarker, "Episode of coverage Action for {} with group by eoc-id has failed for {}", episodeOfCoverage.getName(), ExceptionUtil.toString(e)); + throw new HandymanException("Error in sor grouping", e, action); + } + + } + + private void executeEocIdPriority(String eocIdCount, Jdbi jdbi, Boolean eocActivator, Boolean qrActivator, Boolean memberIdActivator, Boolean patientInfoActivator) throws InterruptedException { + boolean eocIdEliminated = executeEocIdGrouping(eocIdCount, jdbi,eocActivator); + if (eocIdEliminated) { + boolean qrEliminated = executeQrCodeGrouping(jdbi,qrActivator); + if (qrEliminated) { + boolean memberIdEliminated = executeMemberIdGrouping(jdbi,memberIdActivator); + if (memberIdEliminated) { + boolean nameIdEliminated = executePatientNameGrouping(jdbi,patientInfoActivator); + if (nameIdEliminated) { + executeNidGrouping(jdbi); + } + } + } + + } + } + + private void executeNonEocIdPriority(String eocIdCount, Jdbi jdbi, Boolean eocActivator, Boolean qrActivator, Boolean memberIdActivator, Boolean patientInfoActivator) throws InterruptedException { + + boolean qrEliminated = executeQrCodeGrouping(jdbi,qrActivator); + if (qrEliminated) { + boolean eocIdEliminated = executeEocIdGrouping(eocIdCount, jdbi,eocActivator); + if (eocIdEliminated) { + boolean memberIdEliminated = executeMemberIdGrouping(jdbi,memberIdActivator); + + if (memberIdEliminated) { + boolean nameIdEliminated = executePatientNameGrouping(jdbi,patientInfoActivator); + if (nameIdEliminated) { + executeNidGrouping(jdbi); + } + } + } + + } + } + + private boolean executeEocIdGrouping(String eocIdCount, Jdbi jdbi,Boolean eocActivator) { + log.info("patient instance check for Eoc id in aggregation count {} is activate {}", eocIdCount, eocActivator); + if(Boolean.TRUE.equals(eocActivator)){ + EocIdCoverage eocIdCoverage = new EocIdCoverage(log, episodeOfCoverage, aMarker, action); + Map> sorIdPageNumbers = eocIdCoverage.SplitByEocId(jdbi, "patient_eoc"); + OutputQueryExecutor(jdbi, "EID", sorIdPageNumbers); + log.info("patient instance checked for Eoc id in aggregation and the output result is {}", sorIdPageNumbers); + return sorIdPageNumbers.isEmpty(); + }else { + return true; + } + } + + private boolean executeQrCodeGrouping(Jdbi jdbi, Boolean qrActivator) throws InterruptedException { + log.info("patient instance extract QR code from source of truth table if activated {}",qrActivator); + if(Boolean.TRUE.equals(qrActivator)){ + QrCodeCoverage qrCodeCoverage = new QrCodeCoverage(log, episodeOfCoverage, aMarker, action); + Map> qrPagenumbers = qrCodeCoverage.splitByQrcode(jdbi, "qr_code"); + OutputQueryExecutor(jdbi, "QID", qrPagenumbers); + log.info("patient instance checked for Qrcode from source of truth and the output result is {}", qrPagenumbers); + return qrPagenumbers.isEmpty(); + }else{ + return true; + } + + } + + private boolean executeMemberIdGrouping(Jdbi jdbi,Boolean memberIdActivator) { + log.info("patient instance check for member_id from aggregation if activated {}", memberIdActivator); + if(Boolean.TRUE.equals(memberIdActivator)){ + SorItemCoverage sorItemMemberIdCoverage = new SorItemCoverage(log, episodeOfCoverage, aMarker, action); + Map> patientMemberPageNumbers = sorItemMemberIdCoverage.splitBySorItem(jdbi, "patient_member_id"); + OutputQueryExecutor(jdbi, "PID", patientMemberPageNumbers); + log.info("patient instance check for member_id from aggregation and the output result is {}", patientMemberPageNumbers); + return patientMemberPageNumbers.isEmpty(); + }else{ + return true; + } + + } + private boolean executePatientNameGrouping(Jdbi jdbi, Boolean patientInfoActivator) { + log.info("patient instance check for patient_name and patient_dob from aggregation if activated {}",patientInfoActivator); + if(Boolean.TRUE.equals(patientInfoActivator)){ + SorItemCoverage sorItemPatientNameCoverage = new SorItemCoverage(log, episodeOfCoverage, aMarker, action); + Map> patientNamePageNumbers = sorItemPatientNameCoverage.splitBySorItem(jdbi, "patient_name"); + OutputQueryExecutor(jdbi, "PND", patientNamePageNumbers); + log.info("patient instance checked for patient_name and patient_dob from aggregation and the output result is {}", patientNamePageNumbers); + return patientNamePageNumbers.isEmpty(); + }else{ + return true; + } + + } + + private boolean executeNidGrouping(Jdbi jdbi) { + log.info("patient instance check for origin id from aggregation "); + OriginCoverage originCoverage = new OriginCoverage(log, episodeOfCoverage, aMarker, action); + Map> originIdPageNumbers = originCoverage.aggregateByOrigin(jdbi, episodeOfCoverage.getOriginId()); + OutputQueryExecutor(jdbi, "NID", originIdPageNumbers); + log.info("patient instance checked for no id from aggregation and the output result is {}", originIdPageNumbers); + return originIdPageNumbers.isEmpty(); + } + + @Override + public boolean executeIf() throws Exception { + return episodeOfCoverage.getCondition(); + } + + + public void OutputQueryExecutor(Jdbi jdbi, String sorItem, Map> stringListMap) { + Long tenantId = Long.valueOf(action.getContext().get("tenant_id")); + stringListMap.forEach((s, integers) -> { + for (Integer integer : integers) { + CoverageEntity coverageEntity = CoverageEntity.builder() + .paperNo(integer) + .pahubId(s) + .originId(episodeOfCoverage.getOriginId()) + .groupId(Integer.valueOf(episodeOfCoverage.getGroupId())) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .sourceOfPahub(sorItem) + .tenantId(tenantId) + .build(); + try { + jdbi.useTransaction(handle -> { + handle.createUpdate("INSERT INTO " + episodeOfCoverage.getOutputTable() + + "(pahub_id, origin_id, source_of_pahub,group_id,created_on, paper_no,status,stage,message,tenant_id)" + + "VALUES (:pahubId , :originId, :sourceOfPahub ,:groupId,:createdOn, :paperNo, 'COMPLETED', 'SOR_GROUPING', 'sor grouping completed',:tenantId)") + .bindBean(coverageEntity).execute(); + }); + log.info(aMarker, "Completed insert for the patient instance {}", coverageEntity); + + } catch (Exception e) { + log.error(aMarker, "Failed in executed formatted query {} for this sor item {}", e, sorItem); + throw new HandymanException("Failed in executed formatted query {} for this sor item {}", e, action); + } + } + }); + } + + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class CoverageEntity { + private String pahubId; + + private String originId; + private Integer groupId; + private String fileId; + private Timestamp createdOn; + private String sourceOfPahub; + + private Integer paperNo; + private Long tenantId; + } + + +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/EvalDateOfBirthAction.java b/src/main/java/in/handyman/raven/lib/EvalDateOfBirthAction.java new file mode 100644 index 00000000..e38963f0 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/EvalDateOfBirthAction.java @@ -0,0 +1,64 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.agadia.adapters.DateOfBirthAdapter; +import in.handyman.raven.lib.interfaces.ScalarEvaluationInterface; +import in.handyman.raven.lib.model.AgadiaAdapter; +import in.handyman.raven.lib.model.EvalDateOfBirth; +import in.handyman.raven.util.ExceptionUtil; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "EvalDateOfBirth" +) +public class EvalDateOfBirthAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final EvalDateOfBirth evalDateOfBirth; + + private final Marker aMarker; + + public EvalDateOfBirthAction(final ActionExecutionAudit action, final Logger log, + final Object evalDateOfBirth) { + this.evalDateOfBirth = (EvalDateOfBirth) evalDateOfBirth; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" EvalDateOfBirth:" + this.evalDateOfBirth.getName()); + } + + @Override + public void execute() throws Exception { + try { + ScalarEvaluationInterface dobAdapter = new DateOfBirthAdapter(); + AgadiaAdapter adapter = AgadiaAdapter.builder() + .wordCountLimit(evalDateOfBirth.getWordCountLimit()) + .wordCountThreshold(evalDateOfBirth.getWordCountThreshold()) + .charCountLimit(evalDateOfBirth.getCharCountLimit()) + .charCountThreshold(evalDateOfBirth.getCharCountThreshold()) + .dateFormats(evalDateOfBirth.getDateFormats().split(",")) + .comparableYear(evalDateOfBirth.getComparableYear()) + .validatorThreshold(evalDateOfBirth.getValidatorThreshold()).build(); + int score = dobAdapter.getConfidenceScore(evalDateOfBirth.getDob(), adapter,action); + action.getContext().put(evalDateOfBirth.getName().concat(".score"), String.valueOf(score)); + } catch (Exception ex) { + action.getContext().put(evalDateOfBirth.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred {} ", ExceptionUtil.toString(ex)); + throw new HandymanException("Failed to execute", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return evalDateOfBirth.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/EvalMemberIdAction.java b/src/main/java/in/handyman/raven/lib/EvalMemberIdAction.java new file mode 100644 index 00000000..ae79c4fe --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/EvalMemberIdAction.java @@ -0,0 +1,63 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.agadia.adapters.MemberIdAdapter; +import in.handyman.raven.lib.interfaces.ScalarEvaluationInterface; +import in.handyman.raven.lib.model.AgadiaAdapter; +import in.handyman.raven.lib.model.EvalMemberId; +import in.handyman.raven.util.ExceptionUtil; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "EvalMemberId" +) +public class EvalMemberIdAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final EvalMemberId evalMemberId; + + private final Marker aMarker; + + public EvalMemberIdAction(final ActionExecutionAudit action, final Logger log, + final Object evalMemberId) { + this.evalMemberId = (EvalMemberId) evalMemberId; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" EvalMemberId:" + this.evalMemberId.getName()); + } + + @Override + public void execute() throws Exception { + try { + ScalarEvaluationInterface memberAdapter = new MemberIdAdapter(); + AgadiaAdapter adapter = AgadiaAdapter.builder() + .wordCountLimit(evalMemberId.getWordCountLimit()) + .wordCountThreshold(evalMemberId.getWordCountThreshold()) + .charCountLimit(evalMemberId.getCharCountLimit()) + .charCountThreshold(evalMemberId.getCharCountThreshold()) + .validatorDetail(evalMemberId.getSpecialCharacter()) + .validatorThreshold(evalMemberId.getValidatorThreshold()).build(); + int score = memberAdapter.getConfidenceScore(evalMemberId.getMemberID(), adapter,action); + action.getContext().put(evalMemberId.getName().concat(".score"), String.valueOf(score)); + } catch (Exception ex) { + action.getContext().put(evalMemberId.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(ex)); + throw new HandymanException("Failed to execute the eval member id action", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return evalMemberId.getCondition(); + } +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/EvalPatientNameAction.java b/src/main/java/in/handyman/raven/lib/EvalPatientNameAction.java new file mode 100644 index 00000000..36066eb6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/EvalPatientNameAction.java @@ -0,0 +1,63 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.agadia.adapters.PatientNameAdapter; +import in.handyman.raven.lib.interfaces.ScalarEvaluationInterface; +import in.handyman.raven.lib.model.AgadiaAdapter; +import in.handyman.raven.lib.model.EvalPatientName; +import in.handyman.raven.util.ExceptionUtil; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "EvalPatientName" +) +public class EvalPatientNameAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final EvalPatientName evalPatientName; + + private final Marker aMarker; + + public EvalPatientNameAction(final ActionExecutionAudit action, final Logger log, + final Object evalPatientName) { + this.evalPatientName = (EvalPatientName) evalPatientName; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" EvalPatientName:" + this.evalPatientName.getName()); + } + + @Override + public void execute() throws Exception { + try { + ScalarEvaluationInterface patientAdapter = new PatientNameAdapter(); + AgadiaAdapter adapter = AgadiaAdapter.builder() + .wordCountLimit(evalPatientName.getWordCountLimit()) + .wordCountThreshold(evalPatientName.getWordCountThreshold()) + .charCountLimit(evalPatientName.getCharCountLimit()) + .charCountThreshold(evalPatientName.getCharCountThreshold()) + .validatorDetail(evalPatientName.getNerCoproApi()) + .validatorThreshold(evalPatientName.getNerApiThreshold()).build(); + int score = patientAdapter.getConfidenceScore(evalPatientName.getPatientName(), adapter,action); + action.getContext().put(evalPatientName.getName().concat(".score"), String.valueOf(score)); + } catch (Exception ex) { + action.getContext().put(evalPatientName.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(ex)); + throw new HandymanException("Failed to execute", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return evalPatientName.getCondition(); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/ExportCsvAction.java b/src/main/java/in/handyman/raven/lib/ExportCsvAction.java similarity index 55% rename from handyman.raven/src/main/java/in/handyman/raven/lib/ExportCsvAction.java rename to src/main/java/in/handyman/raven/lib/ExportCsvAction.java index f7063f11..29345642 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/ExportCsvAction.java +++ b/src/main/java/in/handyman/raven/lib/ExportCsvAction.java @@ -1,7 +1,5 @@ package in.handyman.raven.lib; -import com.opencsv.CSVWriter; -import com.opencsv.ResultSetHelperService; import com.zaxxer.hikari.HikariDataSource; import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.access.ResourceAccess; @@ -10,22 +8,15 @@ import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; import in.handyman.raven.lib.model.ExportCsv; import in.handyman.raven.util.ExceptionUtil; -import org.apache.commons.text.StringEscapeUtils; -import org.jdbi.v3.core.Jdbi; import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.MarkerFactory; import java.io.File; -import java.io.FileWriter; -import java.io.IOException; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.Collections; -import java.util.HashMap; import java.util.Map; import java.util.Optional; -import java.util.UUID; /** * Auto Generated By Raven @@ -55,39 +46,39 @@ public ExportCsvAction(final ActionExecutionAudit actionExecutionAudit, final Lo @Override public void execute() throws Exception { - var dbSrc = exportCsv.getSource(); - var executionSource = exportCsv.getExecutionSource(); - var location = exportCsv.getTargetLocation(); - var execStmt = StringEscapeUtils.unescapeJava(exportCsv.getStmt()); - log.info(aMarker, "Starting the execution with id {} dbSrc {} execStmt {} location {} executionSource {}", actionExecutionAudit.getActionId(), dbSrc, execStmt, location, executionSource); - var sql = new HashMap(); - if (dbSrc != null) { - final HikariDataSource hikariDataSource = ResourceAccess.rdbmsConn(dbSrc); - log.info(aMarker, "Created a hikariDataSource for rdbms connection src {}", dbSrc); - try (var con = hikariDataSource.getConnection()) { - con.setAutoCommit(false); - try (var stmt = con.createStatement()) { - log.info(aMarker, "Executing sql statement {}", execStmt); - var result = stmt.executeQuery(execStmt); - while (result.next()) { - sql.put(result.getString(1), result.getString(2)); - } - } - con.commit(); - } catch (SQLException ex) { - log.error(aMarker, "Stopping execution, General Error executing sql for {} with for campaign {}", execStmt, ex); - log.info(aMarker, execStmt + ".exception", ExceptionUtil.toString(ex)); - throw new HandymanException("Process failed", ex); - } - - } - if (!sql.isEmpty()) { - getSqlExecution(sql, executionSource, location); - } else if (execStmt != null) { - getSqlExecution(Collections.singletonMap("output_" + UUID.randomUUID(), execStmt), executionSource, location); - } else { - log.error("Sql stmts are empty"); - } +// var dbSrc = exportCsv.getSource(); +// var executionSource = exportCsv.getExecutionSource(); +// var location = exportCsv.getTargetLocation(); +// var execStmt = StringEscapeUtils.unescapeJava(exportCsv.getStmt()); +// log.info(aMarker, "Starting the execution with id {} dbSrc {} execStmt {} location {} executionSource {}", actionExecutionAudit.getActionId(), dbSrc, execStmt, location, executionSource); +// var sql = new HashMap(); +// if (dbSrc != null) { +// final HikariDataSource hikariDataSource = ResourceAccess.rdbmsConn(dbSrc); +// log.info(aMarker, "Created a hikariDataSource for rdbms connection src {}", dbSrc); +// try (var con = hikariDataSource.getConnection()) { +// con.setAutoCommit(false); +// try (var stmt = con.createStatement()) { +// log.info(aMarker, "Executing sql statement {}", execStmt); +// var result = stmt.executeQuery(execStmt); +// while (result.next()) { +// sql.put(result.getString(1), result.getString(2)); +// } +// } +// con.commit(); +// } catch (SQLException ex) { +// log.error(aMarker, "Stopping execution, General Error executing sql for {} with for campaign {}", execStmt, ex); +// log.info(aMarker, execStmt + ".exception", ExceptionUtil.toString(ex)); +// throw new HandymanException("Process failed", ex); +// } +// +// } +// if (!sql.isEmpty()) { +// getSqlExecution(sql, executionSource, location); +// } else if (execStmt != null) { +// getSqlExecution(Collections.singletonMap("output_" + UUID.randomUUID(), execStmt), executionSource, location); +// } else { +// log.error("Sql stmts are empty"); +// } } private void getSqlExecution(final Map sql, final String executionSource, final String location) { @@ -118,16 +109,16 @@ private void performWriteCsv(final ResultSet resultSet, final String fileName) { var file = new File(fileName); if (file.getParentFile().exists()) { log.info(aMarker, "Filename {} has been built", fileName); - try (var writer = new CSVWriter(new FileWriter(fileName))) { - var resultService = new ResultSetHelperService(); - resultService.setDateFormat("yyyy-MM-dd"); - resultService.setDateTimeFormat("yyyy-MM-dd HH:mm:ss"); - writer.setResultService(resultService); - - writer.writeAll(resultSet, true); - } catch (IOException | SQLException ex) { - throw new HandymanException(ex.toString()); - } +// try (var writer = new CSVWriter(new FileWriter(fileName))) { +// var resultService = new ResultSetHelperService(); +// resultService.setDateFormat("yyyy-MM-dd"); +// resultService.setDateTimeFormat("yyyy-MM-dd HH:mm:ss"); +// writer.setResultService(resultService); +// +// writer.writeAll(resultSet, true); +// } catch (IOException | SQLException ex) { +// throw new HandymanException(ex.toString()); +// } } else { throw new HandymanException("Directory not found"); } diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/ExtractTARAction.java b/src/main/java/in/handyman/raven/lib/ExtractTARAction.java similarity index 91% rename from handyman.raven/src/main/java/in/handyman/raven/lib/ExtractTARAction.java rename to src/main/java/in/handyman/raven/lib/ExtractTARAction.java index 60018d16..15a3b203 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/ExtractTARAction.java +++ b/src/main/java/in/handyman/raven/lib/ExtractTARAction.java @@ -1,9 +1,11 @@ package in.handyman.raven.lib; +import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.action.ActionExecution; import in.handyman.raven.lambda.action.IActionExecution; import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; import in.handyman.raven.lib.model.ExtractTAR; +import in.handyman.raven.util.ExceptionUtil; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import org.apache.commons.compress.utils.IOUtils; @@ -71,7 +73,8 @@ public void execute() throws Exception { unTarFile(tarFile, destFile); deleteDirectory(new File(tarFolder)); } catch (IOException e) { - e.printStackTrace(); + log.error(aMarker, "Error in extractTar Action with the exception {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in extractTar Action", e, actionExecutionAudit); } } @@ -110,14 +113,14 @@ private void unTarFile(File tarFile, File destFile) throws IOException { tis.close(); } - boolean deleteDirectory(File directoryToBeDeleted) { + void deleteDirectory(File directoryToBeDeleted) { File[] allContents = directoryToBeDeleted.listFiles(); if (allContents != null) { for (File file : allContents) { deleteDirectory(file); } } - return directoryToBeDeleted.delete(); + directoryToBeDeleted.delete(); } @Override diff --git a/src/main/java/in/handyman/raven/lib/ExtractZipAction.java b/src/main/java/in/handyman/raven/lib/ExtractZipAction.java new file mode 100644 index 00000000..0912ba17 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ExtractZipAction.java @@ -0,0 +1,125 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ExtractZip; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Enumeration; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "ExtractZip" +) +public class ExtractZipAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final ExtractZip extractZip; + + private final Marker aMarker; + + public ExtractZipAction(final ActionExecutionAudit action, final Logger log, + final Object extractZip) { + this.extractZip = (ExtractZip) extractZip; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" ExtractZip:" + this.extractZip.getName()); + } + + private static void processDirectory(int bufferSize, ZipFile zip, ZipEntry entry, File destFile) throws IOException { + BufferedInputStream is = null; + FileOutputStream fos = null; + BufferedOutputStream dest = null; + try { + is = new BufferedInputStream(zip.getInputStream(entry)); + int currentByte; + byte[] data = new byte[bufferSize]; + fos = new FileOutputStream(destFile); + dest = new BufferedOutputStream(fos, bufferSize); + while ((currentByte = is.read(data, 0, bufferSize)) != -1) { + dest.write(data, 0, currentByte); + } + } catch (Exception e) { + System.out.println("unable to extract entry:" + entry.getName()); + throw e; + } finally { + if (dest != null) { + dest.close(); + } + if (fos != null) { + fos.close(); + } + if (is != null) { + is.close(); + } + } + } + + @Override + public void execute() throws Exception { + final String source = extractZip.getSource(); + final String destFileDir = extractZip.getDestination(); + + File destDir = new File(destFileDir); + File sourceFile = new File(source); + int buffer = 2048; + extractZipFile(sourceFile, destDir, buffer); + } + + public void extractZipFile(File sourceFile, File destDir, int bufferSize) { + try (ZipFile zip = new ZipFile(sourceFile)) { + boolean parentDirFlag = destDir.getParentFile().mkdirs(); + if (parentDirFlag) + log.info(aMarker, "Create parent directory : {}", destDir.getParentFile()); + else + log.info(aMarker, "Failed to create the parent directory: {}", destDir.getParentFile()); + Enumeration zipFileEntries = zip.entries(); + while (zipFileEntries.hasMoreElements()) { + ZipEntry entry = zipFileEntries.nextElement(); + String currentEntry = entry.getName(); + File destFile = new File(destDir, currentEntry); + File destinationParent = destFile.getParentFile(); + boolean destinationParentDir = destinationParent.mkdirs(); + if (destinationParentDir) + log.info(aMarker, "Create destination directory : {}", destinationParent); + else + log.info(aMarker, "Failed to create the destination directory: {}", destinationParent.mkdirs()); + + if (!entry.isDirectory()) { + processDirectory(bufferSize, zip, entry, destFile); + } else { + log.info(aMarker, "Created destination directory : {}", destFile.mkdirs()); + } + if (currentEntry.endsWith(".zip")) { + extractZipFile(destFile, destinationParent, bufferSize); + if (!destFile.delete()) { + log.info(aMarker, "Could not delete zip"); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + log.error(aMarker, "Failed to successfully unzip {}", sourceFile.getName()); + } + log.info(aMarker, "Done Unzipping: {}", sourceFile.getName()); + } + + @Override + public boolean executeIf() throws Exception { + return extractZip.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/FileBucketingAction.java b/src/main/java/in/handyman/raven/lib/FileBucketingAction.java new file mode 100644 index 00000000..a3311c56 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/FileBucketingAction.java @@ -0,0 +1,123 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.FileBucketing; + +import java.io.File; +import java.io.IOException; +import java.lang.Exception; +import java.lang.Object; +import java.lang.Override; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; + +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; +import org.apache.pdfbox.pdmodel.PDDocument; + +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "FileBucketing" +) +public class FileBucketingAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final FileBucketing fileBucketing; + + private final Marker aMarker; + + public FileBucketingAction(final ActionExecutionAudit action, final Logger log, + final Object fileBucketing) { + this.fileBucketing = (FileBucketing) fileBucketing; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" FileBucketing:" + this.fileBucketing.getName()); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, " File Bucketing Action has been started {} ", fileBucketing.getName()); +// String inputFolder = getAbsolutePath(fileBucketing.getInputDirectory()); +// String outputFolder = getAbsolutePath(fileBucketing.getOutputDir()); + String inputFolder = fileBucketing.getInputDirectory(); + String outputFolder = fileBucketing.getOutputDir(); + + try { + splitFilesByPage(inputFolder, outputFolder); + System.out.println("File splitting completed successfully."); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void splitFilesByPage(String inputFolder, String outputFolder) throws IOException { + File folder = new File(inputFolder); + + // Create output folder if it doesn't exist + File outputDir = new File(outputFolder); + if (!outputDir.exists()) { + boolean created = outputDir.mkdirs(); + if (!created) { + throw new IOException("Failed to create output folder."); + } + } + + File[] files = folder.listFiles(); + if (files != null) { + for (File file : files) { + if (file.isFile()) { + String fileName = file.getName(); + String inputFile = inputFolder + "/" + fileName; + int pageCount = getNumberOfPages(inputFile); + String outputSubFolder; + if(pageCount >= Integer.parseInt(action.getContext().get("min-efficient-threshold")) && + pageCount <= Integer.parseInt(action.getContext().get("max-efficient-threshold"))) { + outputSubFolder = outputFolder + "/low_effort_high_yield/" + pageCount + "_pages/"; + } else if (pageCount >= Integer.parseInt(action.getContext().get("min-intensive-threshold")) + && pageCount <= Integer.parseInt(action.getContext().get("max-intensive-threshold"))) { + outputSubFolder = outputFolder + "/high_effort_high_yield/" + pageCount + "_pages/"; + } else { + outputSubFolder = outputFolder + "/high_effort_low_yield/" + pageCount + "_pages/"; + } + File subFolder = new File(outputSubFolder); + if (!subFolder.exists()) { + boolean created = subFolder.mkdirs(); + if (!created) { + throw new IOException("Failed to create subfolder for pages."); + } + } + String outputFilePath = outputSubFolder + "/" + file.getName(); + Files.copy(file.toPath(), new File(outputFilePath).toPath(), StandardCopyOption.REPLACE_EXISTING); + } + } + } + } + + public static String getAbsolutePath(String relativePath) { + Path path = Paths.get(relativePath); + String currentDir = System.getProperty("user.dir"); + Path resolvedPath = Paths.get(currentDir).resolve(path); + return resolvedPath.toAbsolutePath().toString(); + } + + private static int getNumberOfPages(String inputFile) throws IOException { + try (PDDocument document = PDDocument.load(new File(inputFile))) { + return document.getNumberOfPages(); + } + } + + @Override + public boolean executeIf() throws Exception { + return fileBucketing.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/FileDetailsAction.java b/src/main/java/in/handyman/raven/lib/FileDetailsAction.java new file mode 100644 index 00000000..72c355af --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/FileDetailsAction.java @@ -0,0 +1,127 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.FileDetails; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.commons.io.FilenameUtils; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +import static java.lang.Math.random; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "FileDetails" +) +public class FileDetailsAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final FileDetails fileDetails; + + private final Marker aMarker; + + public FileDetailsAction(final ActionExecutionAudit action, final Logger log, + final Object fileDetails) { + this.fileDetails = (FileDetails) fileDetails; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" FileDetails:" + this.fileDetails.getName()); + } + + @Override + public void execute() throws Exception { + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(fileDetails.getResourceConn()); + + List pathList = new ArrayList<>(); + try (var files = Files.walk(Path.of(fileDetails.getDirpath())).filter(Files::isRegularFile)) { + files.forEach(pathList::add); + } + pathList.forEach(path -> { + File file = new File(path.toUri()); + String sha1Hex; + try (InputStream is = Files.newInputStream(Path.of(file.getPath()))) { + sha1Hex = org.apache.commons.codec.digest.DigestUtils.sha1Hex(is); + } catch (IOException e) { + log.error(aMarker, "Error in reading the input stream {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in reading the input stream", e, action); + } + + var fileSize = file.length() / 1024; + FileInfo fileInfo = FileInfo.builder() + .file_ref_id(file.getName().toUpperCase() + " - " + (int) (900000 * random() + 100000)) + .file_path(file.getPath()) + .file_name(FilenameUtils.removeExtension(file.getName())) + .file_checksum(sha1Hex) + .file_size(fileSize) + .file_extension(FilenameUtils.getExtension(file.getName())) + .group_id(fileDetails.getGroup_id()) + .created_user_id(-1) + .tenant_id(-1) + .inbound_id(Integer.valueOf(fileDetails.getInbound_id())) + .build(); + + jdbi.useTransaction(handle -> { + handle.createUpdate("INSERT INTO ingestion.source_of_origin (file_ref_id, file_path, file_name, file_checksum, file_size, file_extension, group_id, created_user_id, tenant_id, inbound_id) " + + "VALUES( :file_ref_id, :file_path, :file_name, :file_checksum, :file_size, :file_extension, :group_id, :created_user_id, :tenant_id, :inbound_id );") + .bindBean(fileInfo).execute(); + log.debug(aMarker, "inserted {} into source of origin", fileInfo); + }); + action.getContext().put("group_id", fileDetails.getGroup_id()); + + }); + } catch (Exception e) { + log.error(aMarker, "Error in file details action with exception {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in file details action", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return fileDetails.getCondition(); + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class FileInfo { + + private Integer origin_id; + private String file_ref_id; + private String file_path; + private String file_name; + private String file_checksum; + private Long file_size; + private String file_extension; + private String group_id; + private Integer created_user_id; + private Integer tenant_id; + private LocalDateTime created_on; + private Integer inbound_id; + private String file_process_status; + } +} diff --git a/src/main/java/in/handyman/raven/lib/FileMergerAction.java b/src/main/java/in/handyman/raven/lib/FileMergerAction.java new file mode 100644 index 00000000..7d41d3e7 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/FileMergerAction.java @@ -0,0 +1,153 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.FileMerger; +import in.handyman.raven.lib.model.filemergerpdf.FileMergerResponse; +import in.handyman.raven.lib.model.filemergerpdf.TritonInputRequest; +import in.handyman.raven.lib.model.filemergerpdf.TritonRequest; +import in.handyman.raven.util.InstanceUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "FileMerger" +) +public class FileMergerAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + public static final String TRITON_REQUEST_ACTIVATOR = "triton.request.activator"; + private final ActionExecutionAudit action; + private final Logger log; + private final FileMerger fileMerger; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + public FileMergerAction(final ActionExecutionAudit action, final Logger log, + final Object fileMerger) { + this.fileMerger = (FileMerger) fileMerger; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" FileMerger:" + this.fileMerger.getName()); + this.URI = action.getContext().get("copro.file-merger.url"); + } + + @Override + public void execute() throws Exception { + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + String requestBody = fileMerger.getRequestBody(); + ObjectNode inputJSON = (ObjectNode) mapper.readTree(requestBody); + + String outputDir = fileMerger.getOutputDir(); + final String mergerProcessName="FILE_MERGER"; + String rootPipelineId= action.getContext().get("gen_id.root_pipeline_id"); + Long actionId=action.getActionId(); + + inputJSON.put("outputDir", outputDir); + inputJSON.put("actionId",actionId); + inputJSON.put("rootPipelineId",rootPipelineId); + inputJSON.put("process",mergerProcessName); + + + String jsonInputRequest = mapper.writeValueAsString(inputJSON); + + TritonRequest tritonRequestBody = new TritonRequest(); + tritonRequestBody.setName("MERGER START"); + tritonRequestBody.setShape(List.of(1, 1)); + tritonRequestBody.setDatatype("BYTES"); + tritonRequestBody.setData(Collections.singletonList(jsonInputRequest)); + + TritonInputRequest tritonInputRequest = new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(tritonRequestBody)); + + String jsonRequest = mapper.writeValueAsString(tritonInputRequest); + // BUILD A REQUEST + + + String tritonRequestActivator = action.getContext().get(TRITON_REQUEST_ACTIVATOR); + String name = "file-merger-response"; + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(jsonInputRequest, MediaTypeJSON)).build(); + coproRequestBuilder(httpclient,name,request); + } else { + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(jsonRequest, MediaTypeJSON)).build(); + tritonRequestBuilder(httpclient,name,request); + } + + + if(log.isInfoEnabled()){ + log.info(aMarker, "The request got it successfully the copro url {} ,request body {} and output directory {}", URI,requestBody,outputDir); + } + + } + + private void tritonRequestBuilder(OkHttpClient httpclient, String name,Request request) { + try (Response response = httpclient.newCall(request).execute()) { + FileMergerResponse modelResponse = mapper.readValue(response.body().string(), FileMergerResponse.class); + if (modelResponse.getOutputs() != null && !modelResponse.getOutputs().isEmpty()){ + modelResponse.getOutputs().forEach(fileMergerOutput -> { + fileMergerOutput.getData().forEach(responseBody -> { + extractedRequestOutput(name, responseBody); + }); + }); + } + + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + log.error(aMarker, "The Exception {} fileMerger ", e); + throw new HandymanException("Failed to execute", e, action); + } + } + + private void coproRequestBuilder(OkHttpClient httpclient, String name,Request request) { + try (Response response = httpclient.newCall(request).execute()) { + String responseBody=response.body().string(); + if(response.isSuccessful()){ + extractedRequestOutput(name, responseBody); + }else{ + action.getContext().put(name.concat(".error"), "true"); + } + + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + log.error(aMarker, "The Exception {} fileMerger ", e); + throw new HandymanException("Failed to execute", e, action); + } + } + + private void extractedRequestOutput(String name, String responseBody) { + try { + action.getContext().put(name, mapper.readTree(responseBody).toString()); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + action.getContext().put(name.concat(".success"), "true"); + log.info(aMarker, "The Successful Response {} {}", name, responseBody); + } + + + @Override + public boolean executeIf() throws Exception { + return fileMerger.getCondition(); + } +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/FileMergerPdfAction.java b/src/main/java/in/handyman/raven/lib/FileMergerPdfAction.java new file mode 100644 index 00000000..3bf42cfa --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/FileMergerPdfAction.java @@ -0,0 +1,114 @@ +package in.handyman.raven.lib; + + +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.FileMergerPdf; +import in.handyman.raven.lib.model.filemergerpdf.FileMergerPdfConsumerProcess; +import in.handyman.raven.lib.model.filemergerpdf.FileMergerpdfInputEntity; +import in.handyman.raven.lib.model.filemergerpdf.FileMergerpdfOutputEntity; +import okhttp3.MediaType; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "FileMergerPdf" + +) + + +public class FileMergerPdfAction implements IActionExecution { + public static final String FILE_MERGER_CONSUMER_API_COUNT = "file.merger.consumer.API.count"; + private final ActionExecutionAudit action; + private final Logger log; + private final FileMergerPdf fileMergerPdf; + private final Marker aMarker; + public FileMergerPdfAction(final ActionExecutionAudit action, final Logger log, + final Object fileMergerPdf) { + this.fileMergerPdf = (FileMergerPdf) fileMergerPdf; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" FileMerger:" + this.fileMergerPdf.getName()); + } + + + + @Override + public void execute(){ + try { + log.info(aMarker, "file mergerAction has been started {}",fileMergerPdf); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(fileMergerPdf.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + Integer consumerApiCount = Integer.valueOf(action.getContext().get(FILE_MERGER_CONSUMER_API_COUNT)); + Integer writeBatchSize1 = Integer.valueOf(action.getContext().get("write.batch.size")); + Integer readBatchSize = Integer.valueOf(action.getContext().get("read.batch.size")); + FileMergerPdfConsumerProcess fileMergerPdfConsumerProcess = new FileMergerPdfConsumerProcess(log, aMarker, action, fileMergerPdf); + + final String outputDir =fileMergerPdf.getOutputDir(); + log.info(aMarker, "file mergerAction output directory {}",outputDir); + //5. build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO "+fileMergerPdf.getOutputTable()+"(origin_id,tenant_id,group_id,processed_file_path,created_on,last_updated_on,root_pipeline_id,status,stage,message,model_name,model_version,file_name,process_id) " + + " VALUES(?,?,?,?,?::timestamp,?::timestamp,?,?,?,?,?,?,?,?)"; + + log.info(aMarker, "file mergerInsert query {}", insertQuery); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(fileMergerPdf.getEndPoint()).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "file mergercopro urls {}", urls); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + FileMergerpdfOutputEntity.class, + FileMergerpdfInputEntity.class, + jdbi, log, + new FileMergerpdfInputEntity(), urls, action); + + log.info(aMarker, "file mergercopro coproProcessor initialization {}", coproProcessor); + + //4. call the method start producer from coproprocessor + + coproProcessor.startProducer(fileMergerPdf.getQuerySet(), readBatchSize); + log.info(aMarker, "file mergercopro coproProcessor startProducer called read batch size {}",readBatchSize); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, consumerApiCount, writeBatchSize1, fileMergerPdfConsumerProcess); + log.info(aMarker, "file mergercopro coproProcessor startConsumer called consumer count {} write batch count {} ", consumerApiCount, writeBatchSize1); + + }catch(Exception ex){ + log.error(aMarker,"error in execute method for file merger ",ex); + throw new HandymanException("error in execute method for file merger", ex, action); + } + + } + + @Override + public boolean executeIf() throws Exception { + return fileMergerPdf.getCondition(); + } + +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/FileSizeAction.java b/src/main/java/in/handyman/raven/lib/FileSizeAction.java new file mode 100644 index 00000000..e985e05b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/FileSizeAction.java @@ -0,0 +1,66 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.FileSize; +import in.handyman.raven.util.ExceptionUtil; +import org.apache.commons.io.FileUtils; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.File; +import java.math.BigInteger; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "FileSize" +) +public class FileSizeAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final FileSize fileSize; + + private final Marker aMarker; + + public FileSizeAction(final ActionExecutionAudit action, final Logger log, + final Object fileSize) { + this.fileSize = (FileSize) fileSize; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" FileSize:" + this.fileSize.getName()); + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Filesize Action for {} has been started", fileSize.getName()); + String filePath = fileSize.getFilePath(); + File file = new File(filePath); + + if (file.exists()) { + BigInteger sizeBig = file.isDirectory() ? FileUtils.sizeOfDirectoryAsBigInteger(file) : FileUtils.sizeOfAsBigInteger(file); + action.getContext().put(fileSize.getName(), sizeBig.toString()); + log.info(aMarker, "File size {} for file {} ", fileSize, filePath); + } else { + log.error(aMarker, "Error in getting the file size for file {} ", filePath); + throw new HandymanException("Error in getting the file size"); + } + log.info(aMarker, "Filesize Action for {} has been Completed", fileSize.getName()); + } catch (Exception e) { + log.error("Error in getting the file size {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in getting the file size", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return fileSize.getCondition(); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/ForkProcessAction.java b/src/main/java/in/handyman/raven/lib/ForkProcessAction.java similarity index 98% rename from handyman.raven/src/main/java/in/handyman/raven/lib/ForkProcessAction.java rename to src/main/java/in/handyman/raven/lib/ForkProcessAction.java index ab7361a8..0a6f80b4 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/ForkProcessAction.java +++ b/src/main/java/in/handyman/raven/lib/ForkProcessAction.java @@ -97,6 +97,7 @@ public void execute() throws Exception { try { countDownLatch.await(); } catch (InterruptedException e) { + log.error(aMarker, "ForkProcess failed for batch " + batchNo, e); throw new HandymanException("ForkProcess failed for batch " + batchNo, e); } }); diff --git a/src/main/java/in/handyman/raven/lib/FtpsDownloadAction.java b/src/main/java/in/handyman/raven/lib/FtpsDownloadAction.java new file mode 100644 index 00000000..084f49ca --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/FtpsDownloadAction.java @@ -0,0 +1,175 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.FtpsDownload; +import org.apache.commons.net.PrintCommandListener; +import org.apache.commons.net.ftp.FTP; +import org.apache.commons.net.ftp.FTPClient; +import org.apache.commons.net.ftp.FTPFile; +import org.apache.commons.net.ftp.FTPReply; +import org.apache.commons.net.ftp.FTPSClient; +import org.apache.commons.net.util.TrustManagerUtils; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "FtpsDownload" +) +public class FtpsDownloadAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final FtpsDownload ftpsDownload; + + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + + + public FtpsDownloadAction(final ActionExecutionAudit action, final Logger log, + final Object ftpsDownload) { + this.ftpsDownload = (FtpsDownload) ftpsDownload; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" FtpsDownload:" + this.ftpsDownload.getName()); + } + + @Override + public void execute() throws Exception { + final String remoteHost = ftpsDownload.getHost(); + final String userName = ftpsDownload.getUserName(); + final String password = ftpsDownload.getPassword(); + final int remotePort = Integer.parseInt(ftpsDownload.getPort()); + final int sessionTimeout = Integer.parseInt(ftpsDownload.getSessionTimeOut()); + final String destDir = ftpsDownload.getDestDir(); + final String remoteFile = ftpsDownload.getSourceFile(); + final String check = ftpsDownload.getUploadCheck(); + if (Boolean.parseBoolean(check)) { + log.info(aMarker, "Got the sftp details for the host {} and user {}", remoteHost, userName); + FTPSClient ftpClient = new FTPSClient(); + try { + ftpClient.setEndpointCheckingEnabled(false); + ftpClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out))); + int reply; + ftpClient.setConnectTimeout(sessionTimeout); + ftpClient.connect(remoteHost, remotePort); + log.info(aMarker, "FTP URL is: {} ", ftpClient.getDefaultPort()); + reply = ftpClient.getReplyCode(); + if (!FTPReply.isPositiveCompletion(reply)) { + ftpClient.disconnect(); + log.error("Exception in connecting to FTP Server"); + } + ftpClient.login(userName, password); + ftpClient.setFileType(FTP.BINARY_FILE_TYPE); + ftpClient.enterLocalPassiveMode(); + ftpClient.setUseEPSVwithIPv4(true); + ftpClient.execPBSZ(0); + ftpClient.execPROT("P"); + System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2"); + ftpClient.setTrustManager(TrustManagerUtils.getAcceptAllTrustManager()); + ftpClient.setFileType(FTP.BINARY_FILE_TYPE); + log.info(aMarker, "Remote system is {}", (Object) ftpClient.getEnabledCipherSuites()); + log.info(aMarker, "SSL: {}", ftpClient.getEnableSessionCreation()); + log.info(aMarker, "Remote system is {} ", ftpClient.getSystemType()); + String workingDirectory = ftpClient.printWorkingDirectory(); + log.info(aMarker, "Current directory is {}", workingDirectory); + ftpDownloadDirectory(ftpClient, remoteFile, destDir); + String name = "ftps-file-download-connector-response"; + action.getContext().put(name, destDir); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (ftpClient.isConnected()) { + ftpClient.logout(); + ftpClient.disconnect(); + } + } + } else + log.info(aMarker, "Download flag is set to {}", check); + + } + + public void ftpDownloadDirectory(FTPClient ftpClient, String srcFile, String saveDir) throws IOException { + FTPFile[] subFiles = ftpClient.listFiles(srcFile); + if (subFiles != null) { + for (FTPFile aFile : subFiles) { + + String currentFileName = aFile.getName(); + if (currentFileName.equals(".") || currentFileName.equals("..")) continue; + String newDirPath = saveDir + File.separator + currentFileName; + if (aFile.isFile()) + downloadSingleFile(ftpClient, srcFile, newDirPath); + } + } + } +// +// private void fileIteration(FTPClient ftpClient, String saveDir, FTPFile[] subFiles) throws IOException { +// if (subFiles != null && subFiles.length > 0) { +// subFilesProcessing(ftpClient, saveDir, subFiles); +// } +// } +// +// private void subFilesProcessing(FTPClient ftpClient, String parentDir, String currentDir, String saveDir, String dirToList, FTPFile[] subFiles) throws IOException { +// for (FTPFile aFile : subFiles) { +// String currentFileName = aFile.getName(); +// if (currentFileName.equals(".") || currentFileName.equals("..")) continue; +// String filePath = parentDir + File.separator + currentDir + File.separator + currentFileName; +// String newDirPath = saveDir + parentDir + File.separator + currentDir + File.separator + currentFileName; +// if (currentDir.equals("")){ +// filePath = parentDir + File.separator + currentFileName; +// newDirPath = saveDir + parentDir + File.separator + currentFileName; +// } +// if(aFile.isFile()){ +// filePath = parentDir; +// newDirPath = saveDir + parentDir; +// } +// if (aFile.isDirectory()) +// createDirectoryForSubFilesAndIterate(ftpClient, saveDir, dirToList, currentFileName, newDirPath); +// else downloadSingleFile(ftpClient, filePath, newDirPath); +// } +// } + + private void createDirectoryForSubFilesAndIterate(FTPClient ftpClient, String saveDir, String dirToList, String currentFileName, String newDirPath) throws IOException { + File newDir = new File(newDirPath); + boolean created = newDir.mkdirs(); + if (created) log.info(aMarker, "Created the directory: {} ", newDirPath); + else log.info(aMarker, "Couldn't create the directory: {} ", newDirPath); +// ftpDownloadDirectory(ftpClient, dirToList, currentFileName, saveDir); + } + + public void downloadSingleFile(FTPClient ftpClient, String remoteFilePath, String savePath) throws IOException { + File downloadFile = new File(savePath); + File parentDir = downloadFile.getParentFile(); + if (!parentDir.exists()) { + boolean createDirSuccessful = parentDir.mkdir(); + if (!createDirSuccessful) log.error("Problem in creating the directory {} ", parentDir); + } + try (OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(downloadFile))) { + ftpClient.setFileType(FTP.BINARY_FILE_TYPE); + log.info(aMarker, "Download file {} ", savePath); + boolean success = ftpClient.retrieveFile(remoteFilePath, outputStream); + if (success) log.info(aMarker, "Download the file {} ", remoteFilePath); + else log.info(aMarker, "Couldn't download the file: {} ", remoteFilePath); + } + } + + + @Override + public boolean executeIf() throws Exception { + return ftpsDownload.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/FtpsUploadAction.java b/src/main/java/in/handyman/raven/lib/FtpsUploadAction.java new file mode 100644 index 00000000..74fec6c7 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/FtpsUploadAction.java @@ -0,0 +1,161 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.FtpsUpload; +import org.apache.commons.net.PrintCommandListener; +import org.apache.commons.net.ftp.FTP; +import org.apache.commons.net.ftp.FTPClient; +import org.apache.commons.net.ftp.FTPReply; +import org.apache.commons.net.ftp.FTPSClient; +import org.apache.commons.net.util.TrustManagerUtils; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintWriter; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "FtpsUpload" +) +public class FtpsUploadAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final FtpsUpload ftpsUpload; + + private final Marker aMarker; + + public FtpsUploadAction(final ActionExecutionAudit action, final Logger log, + final Object ftpsUpload) { + this.ftpsUpload = (FtpsUpload) ftpsUpload; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" FtpsUpload:" + this.ftpsUpload.getName()); + } + + @Override + public void execute() throws Exception { + final String remoteHost = ftpsUpload.getHost(); + final String userName = ftpsUpload.getUserName(); + final String password = ftpsUpload.getPassword(); + final int remotePort = Integer.parseInt(ftpsUpload.getPort()); + final int sessionTimeout = Integer.parseInt(ftpsUpload.getSessionTimeOut()); + final String destDir = ftpsUpload.getDestDir(); + final String remoteFile = ftpsUpload.getSourceFile(); + final String check = ftpsUpload.getUploadCheck(); + if (Boolean.parseBoolean(check)) { + log.info(aMarker, "Got the sftp details for the host {} and user {}", remoteHost, userName); + FTPSClient ftpClient = new FTPSClient(); + try { + ftpClient.setEndpointCheckingEnabled(false); + ftpClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out))); + int reply; + ftpClient.setConnectTimeout(sessionTimeout); + ftpClient.connect(remoteHost, remotePort); + log.info(aMarker, "FTP URL is: {} ", ftpClient.getDefaultPort()); + reply = ftpClient.getReplyCode(); + if (!FTPReply.isPositiveCompletion(reply)) { + ftpClient.disconnect(); + log.error("Exception in connecting to FTP Server"); + } + ftpClient.login(userName, password); + ftpClient.setFileType(FTP.BINARY_FILE_TYPE); + ftpClient.enterLocalPassiveMode(); + ftpClient.setUseEPSVwithIPv4(true); + ftpClient.execPBSZ(0); + ftpClient.execPROT("P"); + System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2"); + ftpClient.setTrustManager(TrustManagerUtils.getAcceptAllTrustManager()); + ftpClient.setFileType(FTP.BINARY_FILE_TYPE); + log.info(aMarker, "Remote system is {}", (Object) ftpClient.getEnabledCipherSuites()); + log.info(aMarker, "SSL: {}", ftpClient.getEnableSessionCreation()); + log.info(aMarker, "Remote system is {} ", ftpClient.getSystemType()); + String workingDirectory = ftpClient.printWorkingDirectory(); + log.info(aMarker, "Current directory is {}", workingDirectory); + uploadDirectory(ftpClient, destDir, remoteFile, ""); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (ftpClient.isConnected()) { + ftpClient.logout(); + ftpClient.disconnect(); + } + } + } else + log.info(aMarker, "Upload flag is set to {}", check); + + + } + + public void uploadDirectory(FTPClient ftpClient, String remoteDirPath, String localParentDir, String remoteParentDir) throws IOException { + log.info(aMarker, "Listing directory {} ", localParentDir); + File localDir = new File(localParentDir); + File[] subFiles = localDir.isFile() ? new File[]{localDir} : localDir.listFiles(); + if (subFiles != null) { + for (File item : subFiles) { + String remoteFilePath = remoteDirPath + File.separator + remoteParentDir + File.separator + item.getName(); + if (remoteParentDir.equals("")) { + remoteFilePath = remoteDirPath + File.separator + item.getName(); + } + if (item.isFile()) { + singleFileUploadProcessing(ftpClient, item, remoteFilePath); + } else { + directoryUploadProcessing(ftpClient, remoteDirPath, remoteParentDir, item, remoteFilePath); + } + } + } + } + + private void directoryUploadProcessing(FTPClient ftpClient, String remoteDirPath, String remoteParentDir, File item, String remoteFilePath) throws IOException { + String localParentDir; + boolean created = ftpClient.makeDirectory(remoteFilePath); + if (created) { + log.info(aMarker, "Created the directory: {} ", remoteFilePath); + } else { + log.info(aMarker, "Couldn't create the directory: {} ", remoteFilePath); + } + // upload the subdirectory + String parent = remoteParentDir + File.separator + item.getName(); + if (remoteParentDir.equals("")) { + parent = item.getName(); + } + localParentDir = item.getAbsolutePath(); + uploadDirectory(ftpClient, remoteDirPath, localParentDir, parent); + } + + private void singleFileUploadProcessing(FTPClient ftpClient, File item, String remoteFilePath) throws IOException { + // upload the file + String localFilePath = item.getAbsolutePath(); + log.info(aMarker, "About to upload the file: {} ", localFilePath); + uploadSingleFile(ftpClient, localFilePath, remoteFilePath); + } + + public void uploadSingleFile(FTPClient ftpClient, String localFilePath, String remoteFilePath) throws IOException { + File localFile = new File(localFilePath); + try (InputStream inputStream = new FileInputStream(localFile)) { + ftpClient.setFileType(FTP.BINARY_FILE_TYPE); + boolean uploaded = ftpClient.storeFile(remoteFilePath, inputStream); + if (uploaded) { + log.info(aMarker, "Uploaded a file to: {}", remoteFilePath); + } else { + log.info(aMarker, "COULD NOT upload the file: {} ", localFilePath); + } + } + } + + + @Override + public boolean executeIf() throws Exception { + return ftpsUpload.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/HwDetectionAction.java b/src/main/java/in/handyman/raven/lib/HwDetectionAction.java new file mode 100644 index 00000000..6105f8b8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/HwDetectionAction.java @@ -0,0 +1,106 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.HwDetection; +import in.handyman.raven.lib.model.hwdectection.*; +import in.handyman.raven.util.ExceptionUtil; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "HwDetection" +) +public class HwDetectionAction implements IActionExecution { + public static final String READ_BATCH_SIZE = "read.batch.size"; + public static final String PAPER_CLASSIFICATION_CONSUMER_API_COUNT = "paper.classification.consumer.API.count"; + public static final String WRITE_BATCH_SIZE = "write.batch.size"; + public static final String PAPER_CLASSIFICATION = "paper_classification"; + public static final String INSERT_INTO = "INSERT INTO "; + public static final String PAPER_CLASSIFICATION_RESULT = "paper_classification_result"; + public static final String INSERT_INTO_COLUMNS = "created_on, created_user_id, last_updated_on, last_updated_user_id, tenant_id, origin_id, paper_no, template_id, model_id, document_type, status, stage, message, group_id, root_pipeline_id, confidence_score,model_name,model_version"; + public static final String INSERT_INTO_VALUES = "now(),?,now(),?,?,?,?,?,?,?,?,?,?,?,?,?,?,?"; + public static final String OKHTTP_CLIENT_TIMEOUT = "okhttp.client.timeout"; + private final ActionExecutionAudit action; + + private final Logger log; + + private static HwDetection hwDetection = new HwDetection(); + + private final Marker aMarker; + public static String httpClientTimeout = new String(); + + public HwDetectionAction(final ActionExecutionAudit action, final Logger log, + final Object hwDetection) { + this.hwDetection = (HwDetection) hwDetection; + this.action = action; + this.log = log; + this.httpClientTimeout = action.getContext().get(OKHTTP_CLIENT_TIMEOUT); + this.aMarker = MarkerFactory.getMarker(" HwDetection:" + this.hwDetection.getName()); + } + + @Override + public void execute() throws Exception { + Integer readBatchSize = Integer.valueOf(action.getContext().get(READ_BATCH_SIZE)); + Integer consumerCount = Integer.valueOf(action.getContext().get(PAPER_CLASSIFICATION_CONSUMER_API_COUNT)); + Integer writeBatchSize = Integer.valueOf(action.getContext().get(WRITE_BATCH_SIZE)); + HwClassificationConsumerProcess hwClassificationConsumerProcess = new HwClassificationConsumerProcess(log, aMarker, action); + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(hwDetection.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + + log.info(aMarker, "Handwritten Classification Action for {} has been started", hwDetection.getName()); + final String insertQuery = INSERT_INTO + hwDetection.getOutputTable()+ "(" + INSERT_INTO_COLUMNS + ")" + + "values(" + INSERT_INTO_VALUES + ")"; + final List urls = Optional.ofNullable(hwDetection.getEndPoint()).map(s -> Arrays.stream(s.split(",")).map(url -> { + try { + return new URL(url); + } catch (MalformedURLException e) { + log.error("Error in processing the URL {}", url, e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info("urls used in hw detection macro {}", urls); + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + HwClassificationOutputTable.class, + HwClassificationInputTable.class, + jdbi, log, + new HwClassificationInputTable(), urls, action); + + coproProcessor.startProducer(hwDetection.getQuerySet(), readBatchSize); + log.info("hwdetection read batch size {} and queryset from macro {} ", readBatchSize, hwDetection.getQuerySet()); + Thread.sleep(1000); + + coproProcessor.startConsumer(insertQuery, consumerCount, writeBatchSize, hwClassificationConsumerProcess); + log.info(aMarker, " Handwritten Classification has been completed {} ", hwDetection.getName()); + } catch (Exception e) { + action.getContext().put(hwDetection.getName() + ".isSuccessful", "false"); + log.error(aMarker, "Error at handwritten classification execute method {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error at handwritten classification execute method ", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return hwDetection.getCondition(); + } + +} \ No newline at end of file diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/ImportCsvToDBAction.java b/src/main/java/in/handyman/raven/lib/ImportCsvToDBAction.java similarity index 65% rename from handyman.raven/src/main/java/in/handyman/raven/lib/ImportCsvToDBAction.java rename to src/main/java/in/handyman/raven/lib/ImportCsvToDBAction.java index 7b674d42..18fe0993 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/ImportCsvToDBAction.java +++ b/src/main/java/in/handyman/raven/lib/ImportCsvToDBAction.java @@ -10,6 +10,7 @@ import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; import in.handyman.raven.lambda.doa.config.SpwResourceConfig; import in.handyman.raven.lib.model.ImportCsvToDB; +import in.handyman.raven.util.ExceptionUtil; import org.jdbi.v3.core.Jdbi; import org.jdbi.v3.core.statement.PreparedBatch; import org.slf4j.Logger; @@ -52,36 +53,38 @@ public ImportCsvToDBAction(final ActionExecutionAudit actionExecutionAudit, fina @Override public void execute() throws Exception { + try { + final int threadCount = Optional.ofNullable(importCsvToDB.getWriteThreadCount()).map(Integer::valueOf).orElse(1); + final Integer batchSize = Optional.ofNullable(importCsvToDB.getBatchSize()).map(Integer::valueOf).orElse(10000); - final int threadCount = Optional.ofNullable(importCsvToDB.getWriteThreadCount()).map(Integer::valueOf).orElse(1); - final Integer batchSize = Optional.ofNullable(importCsvToDB.getBatchSize()).map(Integer::valueOf).orElse(10000); - - final SpwResourceConfig target = importCsvToDB.getTarget(); - if (Objects.isNull(target)) { - throw new HandymanException("target connection not provided"); - } - log.info(aMarker, "Resource provided " + target.getConfigName()); - - final Jdbi jdbi = Jdbi.create(target.getResourceUrl(), target.getUserName(), target.getPassword()); - final int size = importCsvToDB.getValue().size(); - if (threadCount > 1 && size > 1) { - final ExecutorService taskList - = Executors.newWorkStealingPool(threadCount); - final CountDownLatch downLatch = new CountDownLatch(size); - for (var path : importCsvToDB.getValue()) { - taskList.execute(() -> { - doImport(batchSize, jdbi, path); - downLatch.countDown(); - }); + final SpwResourceConfig target = importCsvToDB.getTarget(); + if (Objects.isNull(target)) { + throw new HandymanException("target connection not provided"); } - downLatch.await(); - } else { - for (var path : importCsvToDB.getValue()) { - doImport(batchSize, jdbi, path); + log.info(aMarker, "Resource provided " + target.getConfigName()); + + final Jdbi jdbi = Jdbi.create(target.getResourceUrl(), target.getUserName(), target.getPassword()); + final int size = importCsvToDB.getValue().size(); + if (threadCount > 1 && size > 1) { + final ExecutorService taskList + = Executors.newWorkStealingPool(threadCount); + final CountDownLatch downLatch = new CountDownLatch(size); + for (var path : importCsvToDB.getValue()) { + taskList.execute(() -> { + doImport(batchSize, jdbi, path); + downLatch.countDown(); + }); + } + downLatch.await(); + } else { + for (var path : importCsvToDB.getValue()) { + doImport(batchSize, jdbi, path); + } } + } catch (Exception e) { + log.error(aMarker, "Error in import csvToDb action", e); + throw new HandymanException("Error in import csvToDb action" , e, actionExecutionAudit); } - - } private void doImport(final Integer batchSize, final Jdbi jdbi, final String path) { @@ -102,15 +105,16 @@ private void doImport(final Integer batchSize, final Jdbi jdbi, final String pat } } } catch (Exception e) { - throw new HandymanException("Exception for file " + path, e); + log.error("Exception for file {}", ExceptionUtil.toString(e)); + throw new HandymanException("Exception for file " + path, e, actionExecutionAudit); } } - private void extracted(final Integer batchSize, final Jdbi jdbi, final File file) throws IOException { + private void extracted(final Integer batchSize, final Jdbi jdbi, final File file) { final List> maps = readObjectsFromCsv(file); final int size = maps.size(); - log.info(aMarker, "extracted data from CSV file with size " + size); + log.info(aMarker, "Extracted data from CSV file with size " + size); if (size != 0) { final Map map = maps.get(0); @@ -140,12 +144,17 @@ private void extracted(final Integer batchSize, final Jdbi jdbi, final File file } } - private List> readObjectsFromCsv(final File file) throws IOException { - var bootstrap = CsvSchema.emptySchema().withHeader(); - var csvMapper = new CsvMapper(); - final MappingIterator> mappingIterator = csvMapper.readerFor(new TypeReference>() { - }).with(bootstrap).readValues(file); - return mappingIterator.readAll(); + private List> readObjectsFromCsv(final File file){ + try { + var bootstrap = CsvSchema.emptySchema().withHeader(); + var csvMapper = new CsvMapper(); + final MappingIterator> mappingIterator = csvMapper.readerFor(new TypeReference>() { + }).with(bootstrap).readValues(file); + return mappingIterator.readAll(); + } catch (Exception e) { + log.error(aMarker, "Error in reading objects from csv {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in reading objects from csv", e, actionExecutionAudit); + } } @Override diff --git a/src/main/java/in/handyman/raven/lib/IncidentManagementAction.java b/src/main/java/in/handyman/raven/lib/IncidentManagementAction.java new file mode 100644 index 00000000..c68d9f12 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/IncidentManagementAction.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.IncidentManagement; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "IncidentManagement" +) +public class IncidentManagementAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final IncidentManagement incidentManagement; + + private final Marker aMarker; + + public IncidentManagementAction(final ActionExecutionAudit action, final Logger log, + final Object incidentManagement) { + this.incidentManagement = (IncidentManagement) incidentManagement; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" IncidentManagement:" + this.incidentManagement.getName()); + } + + @Override + public void execute() throws Exception { + } + + @Override + public boolean executeIf() throws Exception { + return incidentManagement.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/IntegratedNoiseModelApiAction.java b/src/main/java/in/handyman/raven/lib/IntegratedNoiseModelApiAction.java new file mode 100644 index 00000000..4fdbb595 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/IntegratedNoiseModelApiAction.java @@ -0,0 +1,120 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; + +import java.sql.Types; +import java.util.concurrent.LinkedBlockingQueue; + + +import java.lang.Exception; +import java.lang.Object; +import java.lang.Override; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import in.handyman.raven.lib.model.IntegratedNoiseModelApi; +import in.handyman.raven.lib.model.NoiseModel.NoiseModelConsumerProcess; +import in.handyman.raven.lib.model.NoiseModel.NoiseModelInputEntity; +import in.handyman.raven.lib.model.NoiseModel.NoiseModelOutputEnitity; +//import in.handyman.raven.lib.model.qrExtraction.QrConsumerProcess; +//import in.handyman.raven.lib.model.qrExtraction.QrInputEntity; +//import in.handyman.raven.lib.model.qrExtraction.QrOutputEntity; +import in.handyman.raven.util.ExceptionUtil; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "IntegratedNoiseModelApi" +) +public class IntegratedNoiseModelApiAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final IntegratedNoiseModelApi integratedNoiseModelApi; + private static String httpClientTimeout = new String(); + private final Marker aMarker; + + public IntegratedNoiseModelApiAction(final ActionExecutionAudit action, final Logger log, + final Object integratedNoiseModelApi) { + this.integratedNoiseModelApi = (IntegratedNoiseModelApi) integratedNoiseModelApi; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" IntegratedNoiseModelApi:"+this.integratedNoiseModelApi.getName()); + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Integrated noise model Action for {} with group by eoc-id has started", integratedNoiseModelApi.getName()); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(integratedNoiseModelApi.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); //for handling null values + //3. initiate Copro processor and Copro urls change the url to integrated noise model + final List urls = Optional.ofNullable(integratedNoiseModelApi.getEndPoint()).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL {}", s1, e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info("Urls for the Integrated noise model : {}", urls); + //5. build insert prepare statement with output table columns +// + final String insertQuery = "INSERT INTO " + integratedNoiseModelApi.getOutputTable() + + " ( origin_id, paper_no, process_id, group_id, tenant_id, input_file_path, " + + "consolidated_confidence_score, consolidated_class, noise_models_result, hw_noise_detection_output, " + + "check_noise_detection_output, checkbox_mark_detection_output, speckle_noise_detection_output," + + " created_on, root_pipeline_id,status,stage,message)" + + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + + + +// Class NoiseModelInputEntity = null; + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + NoiseModelOutputEnitity.class, + NoiseModelInputEntity.class, + jdbi, log, + new NoiseModelInputEntity(), urls, action); + + coproProcessor.startProducer(integratedNoiseModelApi.getQuerySet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + log.info("start producer method from copro processor "); + Thread.sleep(1000); + + //8. call the method start consumer from coproprocessor + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("noise.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), new NoiseModelConsumerProcess(log, aMarker, action)); + log.info("start consumer method from copro processor "); + + + + + + } catch (Exception e) { + log.error("Error in the Integrated noise model action {}", ExceptionUtil.toString(e)); + throw new HandymanException("Integrated noise model action failed ", e, action); + + + } + } + @Override + public boolean executeIf() throws Exception { + return integratedNoiseModelApi.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/IntellimatchAction.java b/src/main/java/in/handyman/raven/lib/IntellimatchAction.java new file mode 100644 index 00000000..b8a790b5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/IntellimatchAction.java @@ -0,0 +1,311 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.Intellimatch; +import in.handyman.raven.lib.model.common.*; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import in.handyman.raven.util.ExceptionUtil; +import in.handyman.raven.util.InstanceUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Timestamp; +import java.sql.Types; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "Intellimatch" +) +public class IntellimatchAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final Intellimatch intellimatch; + + private final Marker aMarker; + final String URI; + final OkHttpClient httpclient; + private static String httpClientTimeout = new String(); + private static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + + + public IntellimatchAction(final ActionExecutionAudit action, final Logger log, + final Object intellimatch) { + this.intellimatch = (Intellimatch) intellimatch; + this.URI = action.getContext().get("copro.intelli-match.url"); + this.action = action; + this.httpclient = InstanceUtil.createOkHttpClient(); + this.log = log; + this.aMarker = MarkerFactory.getMarker(" Intellimatch:" + this.intellimatch.getName()); + this.httpClientTimeout = action.getContext().get("okhttp.client.timeout"); + + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "master data comparison process for {} has been started" + intellimatch.getName()); + try { + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(intellimatch.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + // build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO " + intellimatch.getMatchResult() + + " ( file_name,origin_id,group_id,created_on,root_pipeline_id,actual_value, extracted_value,similarity,confidence_score,intelli_match,status,stage,message,model_name,model_version)" + + " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"; + log.info(aMarker, "intelli match Insert query {}", insertQuery); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(action.getContext().get("copro.intelli-match.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "intelli match copro urls {}", urls); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + IntellimatchOutputTable.class, + IntellimatchInputTable.class, + jdbi, log, + new IntellimatchInputTable(), urls, action); + log.info(aMarker, "intelli match copro Processor initialization {}", coproProcessor); + + //4. call the method start producer from coproprocessor + coproProcessor.startProducer(intellimatch.getInputSet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + log.info(aMarker, "intelli match startProducer called read batch size {}", action.getContext().get("read.batch.size")); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("consumer.intellimatch.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), + new IntellimatchProcess(log, aMarker, action)); + log.info(aMarker, "intelli match coproProcessor startConsumer called consumer count {} write batch count {} ", Integer.valueOf(action.getContext().get("intelli.match.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size"))); + + } catch (Exception ex) { + log.error(aMarker, "Error in execute method for Drug Match {} ", ExceptionUtil.toString(ex)); + throw new HandymanException("Error in execute method for Drug Match", ex, action); + } + log.info(aMarker, "Intellimatch process for {} has been completed", intellimatch.getName()); + } + + + public static class IntellimatchProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + public final ActionExecutionAudit action; + final ObjectMapper mapper; + private final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .writeTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .readTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .build(); + + + public IntellimatchProcess(Logger log, Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.mapper = new ObjectMapper(); + this.action = action; + + + } + + @Override + public List process(URL endpoint, IntellimatchInputTable result) throws Exception { + log.info(aMarker, "coproProcessor consumer process started with endpoint {} and entity {}", endpoint, result); + List parentObj = new ArrayList<>(); + AtomicInteger atomicInteger = new AtomicInteger(); + + if (result.getActualValue() != null) { + List sentence = Arrays.asList(result.getExtractedValue()); + final String process = "CONTROL_DATA"; + Long actionId = action.getActionId(); + Long rootpipelineId = result.getRootPipelineId(); + String inputSentence = result.getExtractedValue(); + ObjectMapper objectMapper = new ObjectMapper(); + + + ComparisonPayload Comparisonpayload = new ComparisonPayload(); + Comparisonpayload.setRootPipelineId(rootpipelineId); + Comparisonpayload.setActionId(actionId); + Comparisonpayload.setProcess(process); + Comparisonpayload.setInputSentence(inputSentence); + Comparisonpayload.setSentence(sentence); + String jsonInputRequest = objectMapper.writeValueAsString(Comparisonpayload); + + + + ComparisonResquest requests = new ComparisonResquest(); + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("COS START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + // requestBody.setData(Collections.singletonList(Comparisonpayload)); + + TritonInputRequest tritonInputRequest = new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + + final Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonRequest.toString(), MediaTypeJSON)).build(); + log.info("intellimatch reqest body {}", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + + if (response.isSuccessful()) { + List output = mapper.readValue(responseBody, new TypeReference<>() { + }); + + double matchPercent = output.get(0) != null ? Math.round(output.get(0).getSimilarityPercent() * 100.0) / 100.0 : 0.0; + ObjectMapper objectMappers = new ObjectMapper(); + ComparisonResponse Response = objectMappers.readValue(responseBody, ComparisonResponse.class); + if (Response.getOutputs() != null && !Response.getOutputs().isEmpty()) { + Response.getOutputs().forEach(o -> { + o.getData().forEach(ComparisonDataItem -> { + log.info("copro response body {} ", output); + double similarityPercent = output.get(0) != null ? Math.round(output.get(0).getSimilarityPercent() * 100.0) / 100.0 : 0.0; + parentObj.add(IntellimatchOutputTable.builder(). + fileName(result.getFileName()). + originId(result.getOriginId()). + groupId(result.getGroupId()). + createdOn(Timestamp.valueOf(LocalDateTime.now())). + rootPipelineId(result.getRootPipelineId()). + actualValue(result.getActualValue()). + extractedValue(result.getExtractedValue()). + similarity(result.getSimilarity()). + confidenceScore(result.getConfidenceScore()). + intelliMatch(ComparisonDataItem.getSimilarityPercent()). + status("completed"). + stage("control data"). + message("data insertion is completed"). + modelName(Response.getModelName()). + modelVersion(Response.getModelVersion()). + build() + ); + }); + }); + } + + + } else { + parentObj.add(IntellimatchOutputTable.builder(). + fileName(result.getFileName()). + originId(result.getOriginId()). + groupId(result.getGroupId()). + createdOn(Timestamp.valueOf(LocalDateTime.now())). + rootPipelineId(result.getRootPipelineId()). + actualValue(result.getActualValue()). + extractedValue(result.getExtractedValue()). + similarity(result.getSimilarity()). + intelliMatch(0.00). + status("failed"). + stage("control data"). + message("data insertion is failed"). + build() + ); + log.error(aMarker, "The Exception occurred in control data comparison by {} ", response); + throw new HandymanException(responseBody); + + } + } catch (Exception exception) { + parentObj.add(IntellimatchOutputTable.builder(). + fileName(result.getFileName()). + originId(result.getOriginId()). + groupId(result.getGroupId()). + createdOn(Timestamp.valueOf(LocalDateTime.now())). + rootPipelineId(result.getRootPipelineId()). + actualValue(result.getActualValue()). + extractedValue(result.getExtractedValue()). + similarity(result.getSimilarity()). + intelliMatch(0.00). + status("failed"). + stage("control data"). + message("data insertion is failed"). + build() + ); + log.error(aMarker, "Exception occurred in copro api for intelli match - {} ", ExceptionUtil.toString(exception)); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("control data comparison consumer failed for originId " + result.getOriginId(), handymanException, this.action); + + + } + } else { + parentObj.add(IntellimatchOutputTable.builder(). + fileName(result.getFileName()). + originId(result.getOriginId()). + groupId(result.getGroupId()). + createdOn(Timestamp.valueOf(LocalDateTime.now())). + rootPipelineId(result.getRootPipelineId()). + actualValue(result.getActualValue()). + extractedValue(result.getExtractedValue()). + similarity(result.getSimilarity()). + intelliMatch(0.0000). + status("completed"). + stage("control data"). + message("data insertion is completed"). + build() + ); + log.info(aMarker, " control data coproProcessor consumer process with empty actual value entity {}", result); + + } + atomicInteger.set(0); + log.info(aMarker, "coproProcessor consumer process with output entity {}", parentObj); + return parentObj; + + } + } + + + @Override + public boolean executeIf() throws Exception { + return intellimatch.getCondition(); + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ControlDataCopro { + String sentence; + Double similarityPercent; + } + +} + + diff --git a/src/main/java/in/handyman/raven/lib/JsonToFileAction.java b/src/main/java/in/handyman/raven/lib/JsonToFileAction.java new file mode 100644 index 00000000..c589d42e --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/JsonToFileAction.java @@ -0,0 +1,62 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.JsonToFile; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.FileWriter; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "JsonToFile" +) +public class JsonToFileAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final JsonToFile jsonToFile; + private final ObjectMapper mapper = new ObjectMapper(); + + private final Marker aMarker; + + public JsonToFileAction(final ActionExecutionAudit action, final Logger log, + final Object jsonToFile) { + this.jsonToFile = (JsonToFile) jsonToFile; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" JsonToFile:" + this.jsonToFile.getName()); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Json toFile Action for {} has been started", jsonToFile.getName()); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(jsonToFile.getResourceConn()); + try (FileWriter file = new FileWriter(jsonToFile.getFilePath())) { + mapper.enable(SerializationFeature.INDENT_OUTPUT); + JsonNode jsonNode = mapper.readTree(jsonToFile.getJsonSql()); + mapper.writeValue(file, jsonNode); + } catch (Exception e) { + log.error(aMarker, "The Exception occurred ", e); + throw new HandymanException("Failed to execute", e); + } + log.info(aMarker, "Json toFile Action for {} has been completed", jsonToFile.getName()); + } + + @Override + public boolean executeIf() throws Exception { + return jsonToFile.getCondition(); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/LambdaCallable.java b/src/main/java/in/handyman/raven/lib/LambdaCallable.java similarity index 89% rename from handyman.raven/src/main/java/in/handyman/raven/lib/LambdaCallable.java rename to src/main/java/in/handyman/raven/lib/LambdaCallable.java index 9c72b6a4..58647f1e 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/LambdaCallable.java +++ b/src/main/java/in/handyman/raven/lib/LambdaCallable.java @@ -1,6 +1,5 @@ package in.handyman.raven.lib; -import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.doa.audit.PipelineExecutionAudit; import in.handyman.raven.lambda.process.LContext; import in.handyman.raven.lambda.process.LambdaEngine; @@ -23,7 +22,8 @@ public PipelineExecutionAudit call() { try { return LambdaEngine.start(lContext); } catch (Exception e) { - throw new HandymanException("", e); + log.trace(e.getMessage(), e); + throw e; } finally { if (countDownLatch != null) { countDownLatch.countDown(); diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/LoadCsvAction.java b/src/main/java/in/handyman/raven/lib/LoadCsvAction.java similarity index 73% rename from handyman.raven/src/main/java/in/handyman/raven/lib/LoadCsvAction.java rename to src/main/java/in/handyman/raven/lib/LoadCsvAction.java index e8d75922..fa115e4a 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/LoadCsvAction.java +++ b/src/main/java/in/handyman/raven/lib/LoadCsvAction.java @@ -1,6 +1,5 @@ package in.handyman.raven.lib; -import com.opencsv.CSVReader; import com.zaxxer.hikari.HikariDataSource; import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.access.ResourceAccess; @@ -13,7 +12,6 @@ import org.slf4j.Marker; import org.slf4j.MarkerFactory; -import java.io.FileReader; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; @@ -21,7 +19,6 @@ import java.util.Iterator; import java.util.List; import java.util.Objects; -import java.util.UnknownFormatConversionException; import java.util.concurrent.atomic.AtomicInteger; /** @@ -48,45 +45,45 @@ public LoadCsvAction(final ActionExecutionAudit actionExecutionAudit, final Logg @Override public void execute() throws Exception { - var csvFile = loadCsv.getSource(); - var sqlList = loadCsv.getValue().replace("\"", ""); - final String fileName; - if (csvFile.contains("\\")) { - var counter = csvFile.length() - csvFile.replace("\\\\", "").length(); - var file = csvFile.split("\\\\", counter + 1); - fileName = file[counter]; - } else { - var counter = csvFile.length() - csvFile.replace("\\/", "").length(); - var file = csvFile.split("/", counter + 1); - fileName = file[counter]; - } - log.info(aMarker, "id#{}, name#{}, from#{}, sqlList#{}", actionExecutionAudit.getActionId(), loadCsv.getName(), loadCsv.getSource(), sqlList); - final String csvExtension = ".csv"; - final String tsvExtension = ".tsv"; - try (final CSVReader csvReader = new CSVReader(new FileReader(csvFile))) { - final Iterator iterator = csvReader.iterator(); - final String[] firstLine = iterator.next(); - final String ct = convertArrayToInsertLine(firstLine, "`VARCHAR(344),`"); - if (fileName.contains(csvExtension)) { - var column = convertArrayToInsertLine(firstLine, "`,`"); - perform(fileName, - csvExtension, - iterator, column, ct); - } else if (fileName.contains(tsvExtension)) { - - final String atos = String.join("", firstLine).replace("\t", ","); - var tsvFirstLine = atos.split(","); - var column = convertArrayToInsertLine(tsvFirstLine, "`,`"); - - perform(fileName, - tsvExtension, - iterator, column, ct); - } else { - log.info("File format is invalid"); - throw new UnknownFormatConversionException("File format is invalid"); - } - } - +// var csvFile = loadCsv.getSource(); +// var sqlList = loadCsv.getValue().replace("\"", ""); +// final String fileName; +// if (csvFile.contains("\\")) { +// var counter = csvFile.length() - csvFile.replace("\\\\", "").length(); +// var file = csvFile.split("\\\\", counter + 1); +// fileName = file[counter]; +// } else { +// var counter = csvFile.length() - csvFile.replace("\\/", "").length(); +// var file = csvFile.split("/", counter + 1); +// fileName = file[counter]; +// } +// log.info(aMarker, "id#{}, name#{}, from#{}, sqlList#{}", actionExecutionAudit.getActionId(), loadCsv.getName(), loadCsv.getSource(), sqlList); +// final String csvExtension = ".csv"; +// final String tsvExtension = ".tsv"; +// try (final CSVReader csvReader = new CSVReader(new FileReader(csvFile))) { +// final Iterator iterator = csvReader.iterator(); +// final String[] firstLine = iterator.next(); +// final String ct = convertArrayToInsertLine(firstLine, "`VARCHAR(344),`"); +// if (fileName.contains(csvExtension)) { +// var column = convertArrayToInsertLine(firstLine, "`,`"); +// perform(fileName, +// csvExtension, +// iterator, column, ct); +// } else if (fileName.contains(tsvExtension)) { +// +// final String atos = String.join("", firstLine).replace("\t", ","); +// var tsvFirstLine = atos.split(","); +// var column = convertArrayToInsertLine(tsvFirstLine, "`,`"); +// +// perform(fileName, +// tsvExtension, +// iterator, column, ct); +// } else { +// log.info("File format is invalid"); +// throw new UnknownFormatConversionException("File format is invalid"); +// } +// } +// } diff --git a/src/main/java/in/handyman/raven/lib/LoadExtractedDataAction.java b/src/main/java/in/handyman/raven/lib/LoadExtractedDataAction.java new file mode 100644 index 00000000..249548be --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/LoadExtractedDataAction.java @@ -0,0 +1,165 @@ +package in.handyman.raven.lib; + +import co.elastic.clients.elasticsearch.ElasticsearchClient; +import co.elastic.clients.elasticsearch.core.IndexRequest; +import co.elastic.clients.elasticsearch.core.IndexResponse; +import co.elastic.clients.elasticsearch.indices.Alias; +import co.elastic.clients.elasticsearch.indices.CreateIndexRequest; +import co.elastic.clients.json.jackson.JacksonJsonpMapper; +import co.elastic.clients.transport.rest_client.RestClientTransport; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.LoadExtractedData; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.apache.http.HttpHost; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.impl.nio.reactor.IOReactorConfig; +import org.elasticsearch.client.RestClient; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.IOException; +import java.time.LocalDateTime; +import java.util.Collections; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "LoadExtractedData" +) +public class LoadExtractedDataAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final LoadExtractedData loadExtractedData; + private final Marker aMarker; + private final ElasticsearchClient elasticsearchClient; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + private final String esUsername; + private final String esPassword; + private final String esHostname; + + + public LoadExtractedDataAction(final ActionExecutionAudit action, final Logger log, + final Object loadExtractedData) { + this.loadExtractedData = (LoadExtractedData) loadExtractedData; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" LoadExtractedData:" + this.loadExtractedData.getName()); + this.esUsername = action.getContext().get("es.username"); + this.esPassword = action.getContext().get("es.password"); + this.esHostname = action.getContext().get("es.hostname"); + this.elasticsearchClient = getElasticsearchClient(esUsername, esPassword, esHostname); + this.URI = action.getContext().get("copro.data-extraction.url"); + } + + private static ElasticsearchClient getElasticsearchClient(String userName, String password, String hostName) { + + final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); + credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password)); + var restClient = RestClient.builder(new HttpHost(hostName, Integer.parseInt("9200"))).setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(6000000).setSocketTimeout(6000000)).setHttpClientConfigCallback(httpAsyncClientBuilder -> { + httpAsyncClientBuilder.setMaxConnTotal(500); + httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider); + httpAsyncClientBuilder.setDefaultIOReactorConfig(IOReactorConfig.custom().setIoThreadCount(10).build()); + return httpAsyncClientBuilder; + }).build(); + final ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + var transport = new RestClientTransport(restClient, new JacksonJsonpMapper(mapper)); + return new ElasticsearchClient(transport); + } + + @Override + public void execute() throws Exception { + + log.info(aMarker, "Store Data in Elastic Search Action for {} has been started" , loadExtractedData.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES).build(); + log.info(aMarker, " Input variables id : {}", action.getActionId()); + + final String indexName = "source_of_truth"; + Set alias = Collections.emptySet(); + + try { + final boolean exists = elasticsearchClient.indices().exists(builder -> builder.index(indexName)).value(); + if (!exists) { + var createIndexResponse = elasticsearchClient.indices() + .create(new CreateIndexRequest.Builder().index(indexName) + .aliases(alias.stream().collect(Collectors.toMap(o -> o, s -> + new Alias.Builder().isWriteIndex(true).build()))).build()); + log.info(aMarker, "response status {} shard {}", createIndexResponse.acknowledged(), + createIndexResponse.shardsAcknowledged()); + } + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("inputFilePath", loadExtractedData.getFilePath()); + objectNode.put("outputDir", loadExtractedData.getTargetDir()); + + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + JsonNode extractedResult = mapper.readTree(responseBody); + String name = loadExtractedData.getName() + "_response"; + if (response.isSuccessful()) { + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + action.getContext().put(name.concat(".error"), "false"); + } else { + log.info(aMarker, "The Failure Response {} --> {}", name, responseBody); + action.getContext().put(name.concat(".error"), "true"); + } + + + String indexId = String.valueOf(System.currentTimeMillis()); + ObjectNode indexNode = mapper.createObjectNode(); + indexNode.put("type", "AGADIA_SOT"); + indexNode.put("created_at", String.valueOf(LocalDateTime.now())); + indexNode.put("file_path", loadExtractedData.getFilePath()); + indexNode.put("intics_reference_id", loadExtractedData.getInticsReferenceId()); + indexNode.put("page_no", loadExtractedData.getPaperNo()); + indexNode.put("batch_id", loadExtractedData.getBatchId()); + indexNode.set("page_content", extractedResult.get("pageContent")); + IndexResponse indexResponse = elasticsearchClient.index(IndexRequest.of(indexReq -> indexReq + .index(indexName) + .id(indexId) + .document(indexNode)) + ); + log.info(aMarker, "response status {} payloadID {}", indexResponse.index(), indexResponse.id()); + } catch (Exception e) { + log.info(aMarker, "The Exception occurred ", e); + throw new HandymanException("Failed to execute", e, action); + } + } catch (IOException ex) { + log.info(aMarker, "Index save failed {}", ExceptionUtil.toString(ex)); + throw new HandymanException("Index save failed", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return loadExtractedData.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/MailServerAction.java b/src/main/java/in/handyman/raven/lib/MailServerAction.java new file mode 100644 index 00000000..4ce9c323 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/MailServerAction.java @@ -0,0 +1,164 @@ +package in.handyman.raven.lib; + +import com.sendgrid.helpers.mail.Mail; +import com.sendgrid.helpers.mail.objects.Attachments; +import com.sendgrid.helpers.mail.objects.Content; +import com.sendgrid.helpers.mail.objects.Email; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.MailServer; + +import java.io.IOException; +import java.lang.Exception; +import java.lang.Object; +import java.lang.Override; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.Base64; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +import in.handyman.raven.util.CommonQueryUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.result.ResultIterable; +import org.jdbi.v3.core.statement.Query; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; +import com.sendgrid.*; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "MailServer" +) +public class MailServerAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final MailServer mailServer; + + private final Marker aMarker; + + public MailServerAction(final ActionExecutionAudit action, final Logger log, + final Object mailServer) { + this.mailServer = (MailServer) mailServer; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" MailServer:"+this.mailServer.getName()); + } + + @Override + public void execute() throws Exception { + sendEmail(); + } + + @Override + public boolean executeIf() throws Exception { + return mailServer.getCondition(); + } + + private void sendEmail() { + // Initialize SendGrid + SendGrid sendGrid = new SendGrid("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"); // Replace with your SendGrid API key + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(mailServer.getResourceConn()); + List extractedQuerySet = extractQuerySet(jdbi); + + extractedQuerySet.forEach(mailServerQuerySet -> { + + Email from = new Email("admin@askjuno.com"); + + // Create an Email object for the recipient + Email to = new Email("sanjeeya.v@zucisystems.com"); + + // Create a subject for the email + String subject = "Invoice Rejection"; + + Content content = new Content("text/html", + "Greetings " + ",

" + + "I hope this message finds you well. We appreciate your prompt submission of the invoice " + ". However, after a thorough review, we regret to inform you that we cannot process this invoice due to the following reasons:

" + + "To expedite the resolution process, we kindly request that you make the necessary adjustments and promptly submit a revised invoice. Once we receive the corrected invoice, we will proceed with the payment process.

" + + "If you have any questions or require further clarification regarding these issues, please do not hesitate to contact our accounts payable department at " + ". We value our partnership with your company and aim to resolve this matter as efficiently as possible.

" + + "Thank you for your attention to this matter, and we appreciate your cooperation in resolving these discrepancies promptly.

" + + "Sincerely,
" ); + + // Create a Mail object + Mail mail = new Mail(from, subject, to, content); + + Attachments attachments = new Attachments(); + attachments.setFilename("invoice_rejection.pdf"); // Replace with the actual filename + attachments.setType("application/pdf"); // Set the correct MIME type for PDF + attachments.setContentId("pdfAttachment"); // Content ID for the attachment + attachments.setDisposition("attachment"); + + // Read the PDF file and set it as content + try { + byte[] pdfContent = Files.readAllBytes(Paths.get(mailServerQuerySet.getFileName())); + attachments.setContent(Base64.getEncoder().encodeToString(pdfContent)); + } catch (IOException e) { + e.printStackTrace(); + } + + mail.addAttachments(attachments); + + // Send the email + try { + Request request = new Request(); + request.setMethod(Method.POST); + request.setEndpoint("mail/send"); + request.setBody(mail.build()); + Response response = sendGrid.api(request); + + // Check the response and handle any errors + if (response.getStatusCode() >= 200 && response.getStatusCode() < 300) { + System.out.println("Email sent successfully."); + } else { + System.err.println("Failed to send email. Status code: " + response.getStatusCode()); + } + } catch (IOException ex) { + ex.printStackTrace(); + } + + + }); + + } + + public List extractQuerySet(Jdbi jdbi){ + final List tableInfos = new ArrayList<>(); + + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(mailServer.getQuerySet()); + AtomicInteger i = new AtomicInteger(0); + formattedQuery.forEach(sqlToExecute -> { + log.info(aMarker, "executing query {} from index {}", sqlToExecute, i.getAndIncrement()); + Query query = handle.createQuery(sqlToExecute); + ResultIterable resultIterable = query.mapToBean(MailServerQuerySet.class); + List detailList = resultIterable.stream().collect(Collectors.toList()); + tableInfos.addAll(detailList); + log.info(aMarker, "executed query from index {}", i.get()); + }); + }); + return tableInfos; + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class MailServerQuerySet { + private String fileName; + private String invoiceRejection; + + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/MapJsonActionAction.java b/src/main/java/in/handyman/raven/lib/MapJsonActionAction.java similarity index 56% rename from handyman.raven/src/main/java/in/handyman/raven/lib/MapJsonActionAction.java rename to src/main/java/in/handyman/raven/lib/MapJsonActionAction.java index ae5b07f3..cb2c05ce 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/MapJsonActionAction.java +++ b/src/main/java/in/handyman/raven/lib/MapJsonActionAction.java @@ -3,10 +3,12 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.action.ActionExecution; import in.handyman.raven.lambda.action.IActionExecution; import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; import in.handyman.raven.lib.model.MapJson; +import in.handyman.raven.util.ExceptionUtil; import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.MarkerFactory; @@ -38,17 +40,22 @@ public MapJsonActionAction(final ActionExecutionAudit actionExecutionAudit, fina @Override public void execute() throws Exception { - final JsonNode value = objectMapper.readTree(this.actionExecutionAudit.getContext().getOrDefault(mapJson.getValue(), "{}")); - if (value != null) { - actionExecutionAudit.getContext().get(value.toString()); - if (!value.isArray()) { - final Map stringStringMap = objectMapper.readValue(value.toString(), new TypeReference>() { - }); - final Map stringMap = stringStringMap.entrySet().stream().collect(Collectors - .toMap(stringStringEntry -> mapJson.getName() + "." + stringStringEntry.getKey(), - Map.Entry::getValue, (p, q) -> p)); - actionExecutionAudit.getContext().putAll(stringMap); + try { + final JsonNode value = objectMapper.readTree(this.actionExecutionAudit.getContext().getOrDefault(mapJson.getValue(), "{}")); + if (value != null) { + actionExecutionAudit.getContext().get(value.toString()); + if (!value.isArray()) { + final Map stringStringMap = objectMapper.readValue(value.toString(), new TypeReference<>() { + }); + final Map stringMap = stringStringMap.entrySet().stream().collect(Collectors + .toMap(stringStringEntry -> mapJson.getName() + "." + stringStringEntry.getKey(), + Map.Entry::getValue, (p, q) -> p)); + actionExecutionAudit.getContext().putAll(stringMap); + } } + } catch (Exception e) { + log.error(aMarker, "Error in map json action {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in map json action", e, actionExecutionAudit); } } diff --git a/src/main/java/in/handyman/raven/lib/MasterdataComparisonAction.java b/src/main/java/in/handyman/raven/lib/MasterdataComparisonAction.java new file mode 100644 index 00000000..7131221f --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/MasterdataComparisonAction.java @@ -0,0 +1,147 @@ + + + +package in.handyman.raven.lib; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.MasterdataComparison; +import in.handyman.raven.lib.model.common.*; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import in.handyman.raven.util.ExceptionUtil; +import in.handyman.raven.util.InstanceUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Timestamp; +import java.sql.Types; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +/** + /** + /** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "MasterdataComparison" +) +public class MasterdataComparisonAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final MasterdataComparison masterdataComparison; + private String name; + + private String resourceConn; + + private String matchResult; + + private String inputSet; + private Boolean condition = true; + final String URI; + private final Marker aMarker; + final ObjectMapper MAPPER; + final OkHttpClient httpclient; + public static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + + private final Integer writeBatchSize = 1000; + private static String httpClientTimeout = new String(); + + + public MasterdataComparisonAction(final ActionExecutionAudit action, final Logger log, + final Object intellimatch) { + this.masterdataComparison = (MasterdataComparison) intellimatch; + this.action = action; + this.log = log; + this.URI = action.getContext().get("copro.masterdata-comparison.url"); + this.MAPPER = new ObjectMapper(); + this.httpclient = InstanceUtil.createOkHttpClient(); + this.aMarker = MarkerFactory.getMarker(" Intellimatch:" + this.masterdataComparison.getName()); + this.httpClientTimeout = action.getContext().get("okhttp.client.timeout"); + } + + + @Override + public void execute() throws Exception { + log.info(aMarker, "master data comparison process for {} has been started" + masterdataComparison.getName()); + try { + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(masterdataComparison.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + // build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO " + masterdataComparison.getMatchResult() + + " ( origin_id, paper_no,eoc_identifier,created_on, actual_value, extracted_value,intelli_match,status,stage,message, root_pipeline_id,model_name,model_version)" + + " VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ? , ?,?,?);"; + log.info(aMarker, "master data comparison Insert query {}", insertQuery); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(action.getContext().get("copro.masterdata-comparison.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "master data comparison copro urls {}", urls); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + MasterDataOutputTable.class, + MasterDataInputTable.class, + jdbi, log, + new MasterDataInputTable(), urls, action); + log.info(aMarker, "master data comparison copro Processor initialization {}", coproProcessor); + + //4. call the method start producer from coproprocessor + coproProcessor.startProducer(masterdataComparison.getInputSet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + log.info(aMarker, "master data comparison coproProcessor startProducer called read batch size {}", action.getContext().get("read.batch.size")); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("consumer.masterdata.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), + new MasterdataComparisonProcess(log, aMarker, action)); + log.info(aMarker, "master data comparison coproProcessor startConsumer called consumer count {} write batch count {} ", Integer.valueOf(action.getContext().get("consumer.masterdata.API.count")), Integer.valueOf(action.getContext().get("write.batch.size"))); + + } catch (Exception ex) { + log.error(aMarker, "Error in execute method for Drug Match {} ", ExceptionUtil.toString(ex)); + throw new HandymanException("Error in execute method for Drug Match", ex, action); + } + log.info(aMarker, "master data comparison process for {} has been completed", masterdataComparison.getName()); + } + + /** + * @return + * @throws Exception + */ + @Override + public boolean executeIf() throws Exception { + return false; + } + + +} \ No newline at end of file diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/MultitudeAction.java b/src/main/java/in/handyman/raven/lib/MultitudeAction.java similarity index 95% rename from handyman.raven/src/main/java/in/handyman/raven/lib/MultitudeAction.java rename to src/main/java/in/handyman/raven/lib/MultitudeAction.java index 9d0fe8eb..81a7bb8b 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/MultitudeAction.java +++ b/src/main/java/in/handyman/raven/lib/MultitudeAction.java @@ -7,6 +7,7 @@ import in.handyman.raven.lambda.doa.audit.ExecutionGroup; import in.handyman.raven.lambda.process.LambdaEngine; import in.handyman.raven.lib.model.Multitude; +import in.handyman.raven.util.ExceptionUtil; import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.MarkerFactory; @@ -68,7 +69,7 @@ public void execute() throws Exception { try { actionCallable.run(); } catch (Exception e) { - throw new HandymanException("Failed to execute", e); + throw new HandymanException("Failed to execute", e, actionExecutionAudit); } finally { countDown.countDown(); } @@ -81,7 +82,8 @@ public void execute() throws Exception { log.info(aMarker, "Completed execution of multitude"); } } catch (Exception e) { - throw new HandymanException("Failed to execute", e); + log.error(aMarker, "Error in execution in parallel thread {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, actionExecutionAudit); } finally { try { countDown.await(); diff --git a/src/main/java/in/handyman/raven/lib/NerAdapterAction.java b/src/main/java/in/handyman/raven/lib/NerAdapterAction.java new file mode 100644 index 00000000..cc21f4a1 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/NerAdapterAction.java @@ -0,0 +1,109 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.NerAdapter; +import in.handyman.raven.lib.model.neradaptors.NerAdapterConsumerProcess; +import in.handyman.raven.lib.model.neradaptors.NerInputTable; +import in.handyman.raven.lib.model.neradaptors.NerOutputTable; +import in.handyman.raven.util.ExceptionUtil; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "NerAdapter" +) +public class NerAdapterAction implements IActionExecution { + public static final String COLUMN_LIST = "origin_id, paper_no, group_id, process_id, sor_id, sor_item_id, sor_item_name, question, answer,weight, created_user_id, tenant_id, created_on, word_score, char_score, validator_score_allowed, validator_score_negative, confidence_score, validation_name, b_box,status,stage,message,vqa_score,question_id,synonym_id,model_name,model_version"; + private final ActionExecutionAudit action; + private final Logger log; + private final NerAdapter nerAdapter; + private final Marker aMarker; + + + public NerAdapterAction(final ActionExecutionAudit action, final Logger log, + final Object nerAdapter) { + this.nerAdapter = (NerAdapter) nerAdapter; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" NerAdapter:" + this.nerAdapter.getName()); + + } + + @Override + public void execute() throws Exception { + + try { + log.info(aMarker, "ner adapter Action has been started {}", nerAdapter); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(nerAdapter.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + // build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO " + nerAdapter.getResultTable() + + "(" + COLUMN_LIST + ")" + + " VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ,?,?, ?, ?, ?, ?, ?,?,?,? ,? ,?,?,?,?);"; + log.info(aMarker, "ner adapter Insert query {}", insertQuery); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(action.getContext().get("copro.text-validation.url")).map(s -> Arrays.stream(s.split(",")).map(url -> { + try { + return new URL(url); + } catch (MalformedURLException e) { + log.error("Error in processing the URL {}", url, e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "ner adapter copro urls {}", urls); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + NerOutputTable.class, + NerInputTable.class, + jdbi, log, + new NerInputTable(), urls, action); + + log.info(aMarker, "ner adapter copro coproProcessor initialization {}", coproProcessor); + + //4. call the method start producer from coproprocessor + coproProcessor.startProducer(nerAdapter.getResultSet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + log.info(aMarker, "ner adapter copro coproProcessor startProducer called read batch size {}", action.getContext().get("read.batch.size")); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("ner.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), + new NerAdapterConsumerProcess(log, aMarker, action)); + log.info(aMarker, "ner adapter copro coproProcessor startConsumer called consumer count {} write batch count {} ", Integer.valueOf(action.getContext().get("ner.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size"))); + + + } catch (Exception ex) { + log.error(aMarker, "Error in execute method for ner adapter {} ", ExceptionUtil.toString(ex)); + throw new HandymanException("Error in execute method for ner adapter", ex, action); + + } + } + + @Override + public boolean executeIf() throws Exception { + return nerAdapter.getCondition(); + } + + +} diff --git a/src/main/java/in/handyman/raven/lib/NervalidatorAction.java b/src/main/java/in/handyman/raven/lib/NervalidatorAction.java new file mode 100644 index 00000000..e0ea00e9 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/NervalidatorAction.java @@ -0,0 +1,93 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.adapters.AlphaAdapter; +import in.handyman.raven.lib.adapters.NameAdapter; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import in.handyman.raven.lib.model.Nervalidator; +import in.handyman.raven.lib.model.Validator; +import in.handyman.raven.util.ExceptionUtil; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "Nervalidator" +) +public class NervalidatorAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + private final String URI; + private final Nervalidator nervalidator; + private final Marker aMarker; + AdapterInterface alphaAdapter; + AdapterInterface nameAdapter; + final String NAME_NUMBER_REGEX = "^(.+?)\\s*(\\d+)$"; + + + public NervalidatorAction(final ActionExecutionAudit action, final Logger log, + final Object nervalidator) { + this.nervalidator = (Nervalidator) nervalidator; + this.action = action; + this.log = log; + this.URI = action.getContext().get("copro.text-validation.url"); + this.alphaAdapter = new AlphaAdapter(); + this.nameAdapter = new NameAdapter(); + this.aMarker = MarkerFactory.getMarker(" Nervalidator:" + this.nervalidator.getName()); + } + + public int getNerScore(Validator adapter, String uri) { + int confidenceScore = 0; + try { + boolean alphaValidator = alphaAdapter.getValidationModel(adapter.getInputValue(), adapter.getAllowedSpecialChar(), action); + if (alphaValidator) { + boolean validator = nameAdapter.getValidationModel(adapter.getInputValue(), uri, action); + confidenceScore = validator ? adapter.getThreshold() : 0; + } else { + Pattern pattern = Pattern.compile(NAME_NUMBER_REGEX); + Matcher matcher = pattern.matcher(adapter.getInputValue()); + if (matcher.matches()) { + String name = matcher.group(1); + boolean validator = nameAdapter.getValidationModel(name, uri, action); + confidenceScore = validator ? adapter.getThreshold() : 0; + } + } + } catch (Exception ex) { + log.error("Error in getting ner score {}", ExceptionUtil.toString(ex)); + throw new HandymanException("Failed to execute", ex, action); + } + return confidenceScore; + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Ner Validator Count Action for {} has been started", nervalidator.getName()); + AdapterInterface nameAdapter = new NameAdapter(); + boolean validator = nameAdapter.getValidationModel(nervalidator.getInputValue(), URI, action); + int confidenceScore = validator ? Integer.parseInt(nervalidator.getNerThreshold()) : 0; + action.getContext().put("validator.score", String.valueOf(confidenceScore)); + log.info(aMarker, "Ner Validator Action for {} has been completed", nervalidator.getName()); + + } catch (Exception ex) { + action.getContext().put(nervalidator.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred {} ", ExceptionUtil.toString(ex)); + throw new HandymanException("Failed to execute", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return nervalidator.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/NumericvalidatorAction.java b/src/main/java/in/handyman/raven/lib/NumericvalidatorAction.java new file mode 100644 index 00000000..b0196172 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/NumericvalidatorAction.java @@ -0,0 +1,74 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.adapters.NumericAdapter; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import in.handyman.raven.lib.model.Numericvalidator; +import in.handyman.raven.lib.model.Validator; +import in.handyman.raven.util.ExceptionUtil; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "Numericvalidator" +) +public class NumericvalidatorAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final Numericvalidator numericvalidator; + + private final Marker aMarker; + AdapterInterface numericAdapter; + + + public NumericvalidatorAction(final ActionExecutionAudit action, final Logger log, + final Object numericvalidator) { + this.numericvalidator = (Numericvalidator) numericvalidator; + this.action = action; + this.log = log; + this.numericAdapter = new NumericAdapter(); + this.aMarker = MarkerFactory.getMarker(" Numericvalidator:" + this.numericvalidator.getName()); + } + + public int getNumericScore(Validator adapter) { + try { + boolean validator = numericAdapter.getValidationModel(adapter.getInputValue(), adapter.getAllowedSpecialChar(), action); + return validator ? adapter.getThreshold() : 0; + } catch (Exception ex) { + log.error(aMarker, "Error in getting numeric score"); + throw new HandymanException("Failed to execute", ex, action); + } + } + + @Override + public void execute() throws Exception { + try { + + log.info(aMarker, "Numeric Validator Action for {} has been started" , numericvalidator.getName()); + AdapterInterface numericAdapter = new NumericAdapter(); + boolean validator = numericAdapter.getValidationModel(numericvalidator.getInputValue(), numericvalidator.getAllowedSpecialCharacters(), action); + int confidenceScore = validator ? Integer.parseInt(numericvalidator.getThresholdValue()) : 0; + action.getContext().put("validator.score", String.valueOf(confidenceScore)); + log.info(aMarker, "Numeric Validator Action for {} has been completed" , numericvalidator.getName()); + + } catch (Exception ex) { + action.getContext().put(numericvalidator.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(ex)); + throw new HandymanException("Failed to execute", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return numericvalidator.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/OutboundDeliveryNotifyAction.java b/src/main/java/in/handyman/raven/lib/OutboundDeliveryNotifyAction.java new file mode 100644 index 00000000..3455ad57 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/OutboundDeliveryNotifyAction.java @@ -0,0 +1,119 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.OutboundDeliveryNotify; +import in.handyman.raven.util.InstanceUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.apache.pdfbox.util.Hex; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; +import java.util.Objects; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "OutboundDeliveryNotify" +) +public class OutboundDeliveryNotifyAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + private final OutboundDeliveryNotify outboundDeliveryNotify; + private final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + final ObjectMapper MAPPER = new ObjectMapper(); + private final Marker aMarker; + String deliveryNotifyUrl; + String appId; + String appKeyId; + + public OutboundDeliveryNotifyAction(final ActionExecutionAudit action, final Logger log, + final Object outboundDeliveryNotify) { + this.outboundDeliveryNotify = (OutboundDeliveryNotify) outboundDeliveryNotify; + this.action = action; + this.log = log; + this.appId = action.getContext().get("agadia.appId"); + this.appKeyId = action.getContext().get("agadia.appKeyId"); + this.deliveryNotifyUrl = action.getContext().get("doc.delivery.notify.url"); + this.aMarker = MarkerFactory.getMarker(" OutboundDeliveryNotify:" + this.outboundDeliveryNotify.getName()); + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Outbound Delivery Notification Action has been started {}", outboundDeliveryNotify); + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + final ObjectNode objectNode = MAPPER.createObjectNode(); + String agadiaSecretKey = action.getContext().get("agadia.secretKey"); + objectNode.put("documentId", outboundDeliveryNotify.getDocumentId()); + objectNode.put("inticsZipUri", outboundDeliveryNotify.getInticsZipUri()); + objectNode.put("checksum", outboundDeliveryNotify.getZipChecksum()); + String signature = getSignature(MAPPER.writeValueAsString(objectNode), agadiaSecretKey); + + RequestBody requestBody = RequestBody.create(objectNode.toString(), MediaTypeJSON); + Request request = new Request.Builder() + .url(deliveryNotifyUrl) + .addHeader("x-hmac-signature", signature) + .post(requestBody) + .build(); + + log.info(aMarker, "Request for document {} is {}", outboundDeliveryNotify.getDocumentId(), request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + log.info(aMarker, "Response body for document {} is {}", outboundDeliveryNotify.getDocumentId(), responseBody); + if (response.isSuccessful()) { + log.info(aMarker, "Sent response for the document {} for Outbound Delivery Notification Action", outboundDeliveryNotify.getDocumentId()); + } else { + log.error(aMarker, "Error in response for Outbound Delivery Notification Action {}", responseBody); + throw new HandymanException(responseBody); + } + } catch (Exception exception) { + log.error(aMarker, "Error occurred for document id {} for Outbound Delivery Notification Action", outboundDeliveryNotify.getDocumentId(), exception); + throw new HandymanException("Error occurred for document for Outbound Delivery Notification Action", exception, action); + } + log.info(aMarker, "Outbound Delivery Notification Action has been completed {}", outboundDeliveryNotify); + } catch (Exception ex) { + log.error(aMarker, "Error in execute method for Outbound Delivery Notification Action", ex); + throw new HandymanException("Error in execute method for Outbound Delivery Notification Action", ex, action); + + } + } + + private String getSignature(String objectNode, String secretKey) { + log.info("Initialization for Signature Generation"); + byte[] payloadFormatted = objectNode.getBytes(StandardCharsets.UTF_8); + byte[] res = secretKey.getBytes(StandardCharsets.UTF_8); + String signature = null; + try { + String algorithm = "HmacSHA256"; + Mac sha256Hmac = Mac.getInstance(algorithm); + SecretKeySpec secretKeySpec = new SecretKeySpec(res, algorithm); + sha256Hmac.init(secretKeySpec); + byte[] hmacBytes = sha256Hmac.doFinal(payloadFormatted); + signature = Hex.getString(hmacBytes).toLowerCase(); + log.info("Generated Signature for object:" + objectNode + " -- " + signature); + } catch (Throwable e) { + log.error("Error Signature creation: " + e.getMessage()); + } + return signature; + } + + @Override + public boolean executeIf() throws Exception { + return outboundDeliveryNotify.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/OutboundKvpResponseAction.java b/src/main/java/in/handyman/raven/lib/OutboundKvpResponseAction.java new file mode 100644 index 00000000..40c7fe20 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/OutboundKvpResponseAction.java @@ -0,0 +1,111 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.OutboundKvpResponse; +import java.lang.Exception; +import java.lang.Object; +import java.lang.Override; +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +import in.handyman.raven.lib.model.outbound.AlchemyKvpInputEntity; +import in.handyman.raven.lib.model.outbound.AlchemyKvpOutputEntity; +import in.handyman.raven.lib.model.outbound.OutboundKvpConsumerProcess; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "OutboundKvpResponse" +) +public class OutboundKvpResponseAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final OutboundKvpResponse outboundKvpResponse; + + private final Marker aMarker; + + public OutboundKvpResponseAction(final ActionExecutionAudit action, final Logger log, + final Object outboundKvpResponse) { + this.outboundKvpResponse = (OutboundKvpResponse) outboundKvpResponse; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" OutboundKvpResponse:"+this.outboundKvpResponse.getName()); + } + + @Override + public void execute() throws Exception { + + + try { + log.info(aMarker, "alchemy kvp response Action has been started {}",outboundKvpResponse.getName()); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(outboundKvpResponse.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "alchemy table response Action output table {}",outboundKvpResponse.getResultTable()); + //5. build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO " +outboundKvpResponse.getResultTable()+ + "(process_id,group_Id,alchemy_origin_id,pipeline_origin_id,kvp_response, tenant_id,file_name,root_pipeline_id,status,stage,message) " + + " VALUES(?,?,?,?,?,?,?,?,?,?,?)"; + + log.info(aMarker, "alchemy kvp Insert query {}", insertQuery); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(action.getContext().get("alchemy.outbound.kvp.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "alchemy kvp copro urls {}", urls); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + AlchemyKvpOutputEntity.class, + AlchemyKvpInputEntity.class, + jdbi, log, + new AlchemyKvpInputEntity(), urls, action); + + log.info(aMarker, "alchemy kvp copro coproProcessor initialization {}", coproProcessor); + + //4. call the method start producer from coproprocessor + coproProcessor.startProducer(outboundKvpResponse.getQuerySet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + log.info(aMarker, "product outbound copro coproProcessor startProducer called read batch size {}",action.getContext().get("read.batch.size")); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("alchemy.kvp.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), new OutboundKvpConsumerProcess(log,aMarker,action,this)); + log.info(aMarker, "product outbound coproProcessor startConsumer called consumer count {} write batch count {} ",Integer.valueOf(action.getContext().get("alchemy.kvp.consumer.API.count")),Integer.valueOf(action.getContext().get("write.batch.size"))); + + + }catch(Exception ex){ + log.error(aMarker,"error in execute method for alchemy response ",ex); + throw new HandymanException("error in execute method for alchemy response", ex, action); + } + + } + + @Override + public boolean executeIf() throws Exception { + return outboundKvpResponse.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/OutboundTableResponseAction.java b/src/main/java/in/handyman/raven/lib/OutboundTableResponseAction.java new file mode 100644 index 00000000..d2220224 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/OutboundTableResponseAction.java @@ -0,0 +1,115 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.OutboundTableResponse; + +import java.lang.Exception; +import java.lang.Object; +import java.lang.Override; +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +import in.handyman.raven.lib.model.outbound.AlchemyKvpInputEntity; +import in.handyman.raven.lib.model.outbound.AlchemyKvpOutputEntity; +import in.handyman.raven.lib.model.outbound.OutboundKvpConsumerProcess; +import in.handyman.raven.lib.model.outbound.table.AlchemyTableInputEntity; +import in.handyman.raven.lib.model.outbound.table.AlchemyTableOutputEntity; +import in.handyman.raven.lib.model.outbound.table.OutboundTableConsumerProcess; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "OutboundTableResponse" +) +public class OutboundTableResponseAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final OutboundTableResponse outboundTableResponse; + + private final Marker aMarker; + + public OutboundTableResponseAction(final ActionExecutionAudit action, final Logger log, + final Object outboundTableResponse) { + this.outboundTableResponse = (OutboundTableResponse) outboundTableResponse; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" OutboundTableResponse:" + this.outboundTableResponse.getName()); + } + + @Override + public void execute() throws Exception { + + + try { + log.info(aMarker, "alchemy table response Action has been started {}", outboundTableResponse.getName()); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(outboundTableResponse.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "alchemy table response Action output table {}", outboundTableResponse.getResultTable()); + //5. build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO " + outboundTableResponse.getResultTable() + + "(process_id,group_id,alchemy_origin_id,pipeline_origin_id,table_response, tenant_id,root_pipeline_id,status,stage,message,paper_no) " + + " VALUES(?,?,?,?,?,?,?,?,?,?,?)"; + + log.info(aMarker, "alchemy table Insert query {}", insertQuery); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(action.getContext().get("alchemy.outbound.table.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "alchemy table copro urls {}", urls); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + AlchemyTableOutputEntity.class, + AlchemyTableInputEntity.class, + jdbi, log, + new AlchemyTableInputEntity(), urls, action); + + log.info(aMarker, "alchemy table copro coproProcessor initialization {}", coproProcessor); + + //4. call the method start producer from coproprocessor + String readBatchSize = action.getContext().get("read.batch.size"); + coproProcessor.startProducer(outboundTableResponse.getQuerySet(), Integer.valueOf(readBatchSize)); + log.info(aMarker, "product outbound copro coproProcessor startProducer called read batch size {}", readBatchSize); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("alchemy.table.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), new OutboundTableConsumerProcess(log, aMarker, action, this)); + log.info(aMarker, "product outbound coproProcessor startConsumer called consumer count {} write batch count {} ", Integer.valueOf(action.getContext().get("alchemy.table.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size"))); + + + } catch (Exception ex) { + log.error(aMarker, "error in execute method for alchemy response ", ex); + throw new HandymanException("error in execute method for alchemy response", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return outboundTableResponse.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/PaperItemizationAction.java b/src/main/java/in/handyman/raven/lib/PaperItemizationAction.java new file mode 100644 index 00000000..64ceafbb --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/PaperItemizationAction.java @@ -0,0 +1,96 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.PaperItemization; +import in.handyman.raven.util.ExceptionUtil; +import in.handyman.raven.util.InstanceUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Map; +import java.util.Objects; + + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "PaperItemization" +) +public class PaperItemizationAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final PaperItemization paperItemization; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + + public PaperItemizationAction(final ActionExecutionAudit action, final Logger log, + final Object paperItemization) { + this.paperItemization = (PaperItemization) paperItemization; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" PaperItemization:" + this.paperItemization.getName()); + this.URI = action.getContext().get("copro.paper-itemizer.url"); + } + + @Override + public void execute() throws Exception { + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + // convert the book to JSON by Jackson + + final ObjectNode objectNode = mapper.createObjectNode(); + + objectNode.put("inputFilePath", paperItemization.getFilePath()); + objectNode.put("outputDir", paperItemization.getOutputDir()); + log.info(aMarker, " input variables id : {}, name : {}", action.getActionId(), paperItemization.getName()); + // build a request + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + log.debug(aMarker, "Request has been build with the parameters \n URI : {} \n Input-File-Path : {} \n Output-Directory : {}", URI, paperItemization.getFilePath(), paperItemization.getOutputDir()); + + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + log.info(aMarker, "The response received successfully for Asset ID and Attribution List {}", responseBody); + String name = paperItemization.getName() + "-Paper-itemized-response"; + if (response.isSuccessful()) { + log.info(aMarker, "Paper Itemization Action has completed its execution"); + Map responseMap = mapper.readValue(responseBody, new TypeReference<>() { + }); + responseMap.forEach((s, s2) -> action.getContext().put(String.format("%s.%s", paperItemization.getName(), s), s2)); + action.getContext().put(name.concat(".error"), "false"); + log.info(aMarker, "The Successful Response {} {}", name, responseBody); + } else { + log.error(aMarker, "Paper Itemization has failed with bad response"); + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), responseBody); + log.error(aMarker, "The Failure Response {} {}", name, responseBody); + } + } catch (Exception e) { + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, action); + } + + } + + + @Override + public boolean executeIf() throws Exception { + return paperItemization.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/PaperItemizerAction.java b/src/main/java/in/handyman/raven/lib/PaperItemizerAction.java new file mode 100644 index 00000000..8256ff0a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/PaperItemizerAction.java @@ -0,0 +1,115 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.PaperItemizer; +import in.handyman.raven.lib.model.paperitemizer.PaperItemizerConsumerProcess; +import in.handyman.raven.lib.model.paperitemizer.PaperItemizerInputTable; +import in.handyman.raven.lib.model.paperitemizer.PaperItemizerOutputTable; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "PaperItemizer" +) +public class PaperItemizerAction implements IActionExecution { + public static final String READ_BATCH_SIZE = "read.batch.size"; + public static final String PAPER_ITEMIZER_CONSUMER_API_COUNT = "paper.itemizer.consumer.API.count"; + public static final String WRITE_BATCH_SIZE = "write.batch.size"; + public static final String INSERT_COLUMNS = "origin_id,group_id,tenant_id,template_id,processed_file_path,paper_no, status,stage,message,created_on,process_id,root_pipeline_id,model_name,model_version"; + private final ActionExecutionAudit action; + + private final Logger log; + + private final PaperItemizer paperItemizer; + + private final Marker aMarker; + + public PaperItemizerAction(final ActionExecutionAudit action, final Logger log, + final Object paperItemizer) { + this.paperItemizer = (PaperItemizer) paperItemizer; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" PaperItemizer:" + this.paperItemizer.getName()); + } + + @Override + public void execute() { + try { + log.info(aMarker, "paper itemizer Action has been started {}", paperItemizer); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(paperItemizer.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + final String outputDir = Optional.ofNullable(paperItemizer.getOutputDir()).map(String::valueOf).orElse(null); + log.info(aMarker, "paper itemizer Action output directory {}", outputDir); + //5. build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO " + paperItemizer.getResultTable() + + "(" + INSERT_COLUMNS + ") " + + " VALUES(?,?, ?,?, ?,?, ?,?,?,? ,?, ?,?,?)"; + log.info(aMarker, "paper itemizer Insert query {}", insertQuery); + + //3. initiate copro processor and copro urls + String endpoint = paperItemizer.getEndpoint(); + + List urls = Optional.of(endpoint).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "paper itemizer copro urls {}", urls);; + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + PaperItemizerOutputTable.class, + PaperItemizerInputTable.class, + jdbi, log, + new PaperItemizerInputTable(), urls, action); + + log.info(aMarker, "paper itemizer copro coproProcessor initialization {}", coproProcessor); + + //4. call the method start producer from coproprocessor + Integer readBatchSize = Integer.valueOf(action.getContext().get(READ_BATCH_SIZE)); + Integer consumerApiCount = Integer.valueOf(action.getContext().get(PAPER_ITEMIZER_CONSUMER_API_COUNT)); + Integer writeBatchSize = Integer.valueOf(action.getContext().get(WRITE_BATCH_SIZE)); + + coproProcessor.startProducer(paperItemizer.getQuerySet(), readBatchSize); + log.info(aMarker, "paper itemizer copro coproProcessor startProducer called read batch size {}", readBatchSize); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, consumerApiCount, writeBatchSize, new PaperItemizerConsumerProcess(log, aMarker, outputDir, action)); + log.info(aMarker, "paper itemizer copro coproProcessor startConsumer called consumer count {} write batch count {} ", consumerApiCount, writeBatchSize); + + } catch (Exception ex) { + log.error(aMarker, "error in execute method for paper itemizer ", ex); + throw new HandymanException("error in execute method for paper itemizer", ex, action); + } + } + @Override + public boolean executeIf() throws Exception { + return paperItemizer.getCondition(); + } + +} + diff --git a/src/main/java/in/handyman/raven/lib/PhraseMatchPaperFilterAction.java b/src/main/java/in/handyman/raven/lib/PhraseMatchPaperFilterAction.java new file mode 100644 index 00000000..4a22aab2 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/PhraseMatchPaperFilterAction.java @@ -0,0 +1,95 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.PhraseMatchPaperFilter; +import in.handyman.raven.lib.model.pharsematch.*; +import in.handyman.raven.util.ExceptionUtil; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "PhraseMatchPaperFilter" +) +public class PhraseMatchPaperFilterAction implements IActionExecution { + public static final String SCHEMA_NAME = "paper"; + public static final String OUTPUT_TABLE_NAME = "phrase_match_filtering_result_"; + public static final String INSERT_INTO_COLUMNS = "origin_id,group_id,paper_no,truth_entity, synonym, is_key_present,status,stage,message, created_on,root_pipeline_id,model_name,model_version,tenant_id"; + public static final String INSERT_INTO_VALUES = "?,?,?,?,?,?,?,?,?,now(), ?, ?,?,?"; + private final ActionExecutionAudit action; + private final Logger log; + private final PhraseMatchPaperFilter phraseMatchPaperFilter; + private final Marker aMarker; + + public PhraseMatchPaperFilterAction(final ActionExecutionAudit action, final Logger log, + final Object phraseMatchPaperFilter) { + this.phraseMatchPaperFilter = (PhraseMatchPaperFilter) phraseMatchPaperFilter; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" PhraseMatchPaperFilter:" + this.phraseMatchPaperFilter.getName()); + } + + @Override + public void execute() throws Exception { + try {String endPoint = phraseMatchPaperFilter.getEndPoint(); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(phraseMatchPaperFilter.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "<-------Phrase match paper filter Action for {} has been started------->", phraseMatchPaperFilter.getName()); + final String processId = Optional.ofNullable(phraseMatchPaperFilter.getProcessID()).map(String::valueOf).orElse(null); + final String insertQuery = "INSERT INTO " + SCHEMA_NAME + "." + OUTPUT_TABLE_NAME + processId + "(" + INSERT_INTO_COLUMNS + ") " + + " VALUES(" + INSERT_INTO_VALUES + ")"; + + final List urls = Optional.ofNullable(endPoint).map(s -> Arrays.stream(s.split(",")).map(url -> { + try { + return new URL(url); + } catch (MalformedURLException e) { + log.error("Error in processing the URL {} ", url, e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + PhraseMatchOutputTable.class, + PhraseMatchInputTable.class, + jdbi, log, + new PhraseMatchInputTable(), urls, action); + coproProcessor.startProducer(phraseMatchPaperFilter.getQuerySet(), Integer.parseInt(phraseMatchPaperFilter.getReadBatchSize())); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.parseInt(phraseMatchPaperFilter.getThreadCount()), + Integer.parseInt(phraseMatchPaperFilter.getWriteBatchSize()), + new PhraseMatchConsumerProcess(log, aMarker, action)); + log.info(aMarker, " Zero shot classifier has been completed {} ", phraseMatchPaperFilter.getName()); + + } catch (Exception e) { + log.error(aMarker, "Error in phrase match with exception {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in phrase match action", e, action); + } + + } + + @Override + public boolean executeIf() throws Exception { + return phraseMatchPaperFilter.getCondition(); + } + + +} diff --git a/src/main/java/in/handyman/raven/lib/PixelClassifierAction.java b/src/main/java/in/handyman/raven/lib/PixelClassifierAction.java new file mode 100644 index 00000000..214e5158 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/PixelClassifierAction.java @@ -0,0 +1,106 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.PixelClassifier; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "PixelClassifier" +) +public class PixelClassifierAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final PixelClassifier pixelClassifier; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + public PixelClassifierAction(final ActionExecutionAudit action, final Logger log, + final Object pixelClassifier) { + this.pixelClassifier = (PixelClassifier) pixelClassifier; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" PixelClassifier:" + this.pixelClassifier.getName()); + this.URI = action.getContext().get("copro.pixel-classifier.url"); + + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Pixel Classifier Action for {} has been started" , pixelClassifier.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + final ObjectNode objectNode = mapper.createObjectNode(); + + objectNode.put("inputFilePath", pixelClassifier.getInputFilePath()); + objectNode.put("outputDir", pixelClassifier.getOutputDir()); + objectNode.put("modelFilePath", pixelClassifier.getModelFilePath()); + objectNode.set("labels", mapper.readTree(pixelClassifier.getLabels())); + + log.info(aMarker, " Input variables id : {}", action.getActionId()); + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + log.debug(aMarker, "Request has been build with the parameters \n URI : {} \n Input-File-Path : {} \n Output-Directory : {} \n Model-Path : {} \n Path-Labels : {}", URI, pixelClassifier.getInputFilePath(), pixelClassifier.getOutputDir(), pixelClassifier.getModelFilePath(), pixelClassifier.getLabels()); + String name = pixelClassifier.getName() + "_response"; + log.debug(aMarker, "The Request Details: {}", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + String labelName = pixelClassifier.getName() + "_label"; + if (response.isSuccessful()) { + action.getContext().put(name, responseBody); + action.getContext().put(labelName, Optional.ofNullable(mapper.readTree(responseBody).get("label")).map(JsonNode::asText).map(String::toLowerCase).orElseThrow()); + action.getContext().put(name.concat(".error"), "false"); + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + } else { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), responseBody); + log.info(aMarker, "The Failure Response {} --> {}", name, responseBody); + } + log.info(aMarker, "Pixel Classifier Action for {} has been completed" , pixelClassifier.getName()); + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), e.getMessage()); + log.error(aMarker, "The Exception occurred {} ", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute pixel classifier action", e, action); + } + } catch (JsonProcessingException | HandymanException e) { + log.error(aMarker, "Error in pixel classifier action with {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in pixel classifier action", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return pixelClassifier.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/PixelClassifierUrgencyTriageAction.java b/src/main/java/in/handyman/raven/lib/PixelClassifierUrgencyTriageAction.java new file mode 100644 index 00000000..565fbb8e --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/PixelClassifierUrgencyTriageAction.java @@ -0,0 +1,273 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.PixelClassifierUrgencyTriage; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "PixelClassifierUrgencyTriage" +) +public class PixelClassifierUrgencyTriageAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private static PixelClassifierUrgencyTriage pixelClassifierUrgencyTriage = new PixelClassifierUrgencyTriage(); + + private final Marker aMarker; + + public PixelClassifierUrgencyTriageAction(final ActionExecutionAudit action, final Logger log, + final Object hwUrgencyTriage) { + pixelClassifierUrgencyTriage = (PixelClassifierUrgencyTriage) hwUrgencyTriage; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" HwUrgencyTriage:" + pixelClassifierUrgencyTriage.getName()); + } + + @Override + public void execute() throws Exception { + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(pixelClassifierUrgencyTriage.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "Handwritten Urgency Triage Action for {} has been started", pixelClassifierUrgencyTriage.getName()); + final String insertQuery = "INSERT INTO urgency_triage.pixel_classifier_triage_transaction_"+pixelClassifierUrgencyTriage.getProcessID()+"(created_on, created_user_id, last_updated_on, last_updated_user_id, process_id, group_id, tenant_id, model_score, origin_id, paper_no, template_id, model_id, binary_model, multiclass_model, checkbox_model, status, stage, message)" + + "values(now(),?,now(),?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + final List urls = Optional.ofNullable(action.getContext().get("copro.hw-urgency-triage.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + HwUrgencyTriageOutputTable.class, + HwUrgencyTriageInputTable.class, + jdbi, log, + new HwUrgencyTriageInputTable(), urls, action); + coproProcessor.startProducer(pixelClassifierUrgencyTriage.getQuerySet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, 1, 1, new HwUrgencyTriageConsumerProcess(log, aMarker, action)); + log.info(aMarker, " Handwritten Urgency Triage has been completed {} ", pixelClassifierUrgencyTriage.getName()); + } catch (Exception e) { + action.getContext().put(pixelClassifierUrgencyTriage.getName() + ".isSuccessful", "false"); + log.error(aMarker, "Error at handwritten urgency triage execute method {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error at handwritten urgency triage execute method", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return pixelClassifierUrgencyTriage.getCondition(); + } + + public static class HwUrgencyTriageConsumerProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + public final ActionExecutionAudit action; + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public HwUrgencyTriageConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + } + + @Override + public List process(URL endpoint, HwUrgencyTriageInputTable entity) throws Exception { + + List parentObj = new ArrayList<>(); + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("inputFilePath", entity.getFilePath()); + objectNode.put("binaryClassifierModelFilePath", pixelClassifierUrgencyTriage.getBinaryClassifierModelFilePath()); + objectNode.put("multiClassifierModelFilePath", pixelClassifierUrgencyTriage.getMultiClassifierModelFilePath()); + objectNode.put("checkboxClassifierModelFilePath", pixelClassifierUrgencyTriage.getCheckboxClassifierModelFilePath()); + objectNode.putPOJO("synonyms", pixelClassifierUrgencyTriage.getSynonyms().split(",")); + objectNode.putPOJO("binaryClassifierLabels", pixelClassifierUrgencyTriage.getBinaryClassifierLabels().split(",")); + objectNode.putPOJO("multiClassifierLabels", pixelClassifierUrgencyTriage.getMultiClassifierLabels().split(",")); + objectNode.putPOJO("checkboxClassifierLabels", pixelClassifierUrgencyTriage.getCheckboxClassifierLabels().split(",")); + objectNode.put("outputDir", pixelClassifierUrgencyTriage.getOutputDir()); + objectNode.put("binaryImageWidth", pixelClassifierUrgencyTriage.getBinaryImageWidth()); + objectNode.put("binaryImageHeight", pixelClassifierUrgencyTriage.getBinaryImageHeight()); + objectNode.put("multiImageWidth", pixelClassifierUrgencyTriage.getMultiImageWidth()); + objectNode.put("multiImageHeight", pixelClassifierUrgencyTriage.getMultiImageHeight()); + objectNode.put("checkboxImageWidth", pixelClassifierUrgencyTriage.getCheckboxImageWidth()); + objectNode.put("checkboxImageHeight", pixelClassifierUrgencyTriage.getCheckboxImageHeight()); + + log.info("request builder object node {}",objectNode); + + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + log.debug(aMarker, "The Request Details: {}", request); + + + String createdUserId = entity.getCreatedUserId(); + String lastUpdatedUserId = entity.getLastUpdatedUserId(); + Long tenantId = entity.getTenantId(); + Double modelScore = entity.getModelScore(); + Long processId = entity.getProcessId(); + Integer groupId = entity.getGroupId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + String templateId = entity.getTemplateId(); + String modelId = entity.getModelId(); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + log.info("Response Details: {}",response); + String binaryModelOutput = Optional.ofNullable(mapper.readTree(responseBody).get("binary_model")).map(JsonNode::asText).orElse(null); + String multiClassModelOutput = Optional.ofNullable(mapper.readTree(responseBody).get("multiclass_model")).map(JsonNode::asText).orElse(null); + String checkboxModelOutput = Optional.ofNullable(mapper.readTree(responseBody).get("checkbox_model")).map(JsonNode::asText).orElse(null); + parentObj.add(HwUrgencyTriageOutputTable.builder() + .createdUserId(Optional.ofNullable(createdUserId).map(String::valueOf).orElse(null)) + .lastUpdatedUserId(Optional.ofNullable(lastUpdatedUserId).map(String::valueOf).orElse(null)) + .tenantId(Optional.ofNullable(tenantId).map(String::valueOf).map(Long::valueOf).orElse(null)) + .modelScore(Optional.ofNullable(modelScore).map(String::valueOf).map(Double::parseDouble).orElse(null)) + .processId(Optional.ofNullable(processId).map(String::valueOf).map(Long::parseLong).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(Optional.ofNullable(paperNo).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .templateId(Optional.ofNullable(templateId).map(String::valueOf).orElse(null)) + .modelId(Optional.ofNullable(modelId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .binaryModel(binaryModelOutput) + .multiClassModel(multiClassModelOutput) + .checkboxModel(checkboxModelOutput) + .status("COMPLETED") + .stage("PIXEL_CLASSIFIER_URGENCY_TRIAGE") + .message("Handwritten Urgency Triage Finished") + .build()); + log.info(aMarker, "Execute for handwritten urgency triage {}",response); + } else { + parentObj.add(HwUrgencyTriageOutputTable.builder() + .createdUserId(Optional.ofNullable(createdUserId).map(String::valueOf).orElse(null)) + .lastUpdatedUserId(Optional.ofNullable(lastUpdatedUserId).map(String::valueOf).orElse(null)) + .tenantId(Optional.ofNullable(tenantId).map(String::valueOf).map(Long::valueOf).orElse(null)) + .modelScore(Optional.ofNullable(modelScore).map(String::valueOf).map(Double::parseDouble).orElse(null)) + .processId(Optional.ofNullable(processId).map(String::valueOf).map(Long::parseLong).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(Optional.ofNullable(paperNo).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .templateId(Optional.ofNullable(templateId).map(String::valueOf).orElse(null)) + .modelId(Optional.ofNullable(modelId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .status("FAILED") + .stage("PIXEL_CLASSIFIER_URGENCY_TRIAGE") + .message(response.message()) + .build()); + log.error(aMarker, "The Exception occurred in handwritten urgency triage {}",response); + } + } catch (Exception e) { + parentObj.add(HwUrgencyTriageOutputTable.builder() + .createdUserId(Optional.ofNullable(createdUserId).map(String::valueOf).orElse(null)) + .lastUpdatedUserId(Optional.ofNullable(lastUpdatedUserId).map(String::valueOf).orElse(null)) + .tenantId(Optional.ofNullable(tenantId).map(String::valueOf).map(Long::valueOf).orElse(null)) + .modelScore(Optional.ofNullable(modelScore).map(String::valueOf).map(Double::parseDouble).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .processId(Optional.ofNullable(processId).map(String::valueOf).map(Long::parseLong).orElse(null)) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(Optional.ofNullable(paperNo).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .templateId(Optional.ofNullable(templateId).map(String::valueOf).orElse(null)) + .modelId(Optional.ofNullable(modelId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .status("FAILED") + .stage("PIXEL_CLASSIFIER_URGENCY_TRIAGE") + .message(ExceptionUtil.toString(e)) + .build()); + log.error(aMarker, "The Exception occurred in handwritten urgency triage", e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Error in pixel classifier urgency triage action", handymanException, this.action); + } + return parentObj; + } + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public static class HwUrgencyTriageInputTable implements CoproProcessor.Entity { + private String createdUserId; + private String lastUpdatedUserId; + private Long tenantId; + private Long processId; + private Integer groupId; + private Double modelScore; + private String originId; + private Integer paperNo; + private String templateId; + private String modelId; + private String filePath; + + @Override + public List getRowData() { + return null; + } + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public static class HwUrgencyTriageOutputTable implements CoproProcessor.Entity { + private String createdUserId; + private String lastUpdatedUserId; + private Long processId; + private Integer groupId; + private Long tenantId; + private Double modelScore; + private String originId; + private Integer paperNo; + private String templateId; + private Integer modelId; + private String binaryModel; + private String multiClassModel; + private String checkboxModel; + private String status; + private String stage; + private String message; + + @Override + public List getRowData() { + return Stream.of(this.createdUserId, this.lastUpdatedUserId, this.processId, this.groupId, this.tenantId, this.modelScore, + this.originId, this.paperNo, this.templateId, this.modelId, + this.binaryModel, this.multiClassModel,this.checkboxModel, this.status, this.stage, this.message).collect(Collectors.toList()); + } + } +} \ No newline at end of file diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/ProducerAction.java b/src/main/java/in/handyman/raven/lib/ProducerAction.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/ProducerAction.java rename to src/main/java/in/handyman/raven/lib/ProducerAction.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/ProducerConsumerModelAction.java b/src/main/java/in/handyman/raven/lib/ProducerConsumerModelAction.java similarity index 97% rename from handyman.raven/src/main/java/in/handyman/raven/lib/ProducerConsumerModelAction.java rename to src/main/java/in/handyman/raven/lib/ProducerConsumerModelAction.java index 0f2415f2..2123bf61 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/ProducerConsumerModelAction.java +++ b/src/main/java/in/handyman/raven/lib/ProducerConsumerModelAction.java @@ -117,7 +117,7 @@ public void execute() throws Exception { try { LambdaEngine.execute(consumerAction, consumerAction.getAction()); } catch (Exception e) { - throw new HandymanException("Failed to execute", e); + throw new HandymanException("Failed to execute", e, actionExecutionAudit); } finally { consumerCountDown.countDown(); } @@ -129,7 +129,7 @@ public void execute() throws Exception { try { LambdaEngine.execute(producerAction, producerAction.getAction()); } catch (Exception e) { - throw new HandymanException("Failed to execute", e); + throw new HandymanException("Failed to execute", e, actionExecutionAudit); } finally { producerCountdown.countDown(); } @@ -139,10 +139,10 @@ public void execute() throws Exception { try { producerCountdown.await(); } catch (InterruptedException e) { - throw new HandymanException("Failed to execute", e); + throw new HandymanException("Failed to execute", e, actionExecutionAudit); } } catch (Exception e) { - throw new HandymanException("Failed to execute", e); + throw new HandymanException("Failed to execute", e, actionExecutionAudit); } finally { consumers.forEach(consumer -> consumer.setCompleted(true)); try { diff --git a/src/main/java/in/handyman/raven/lib/ProductOutboundZipfileAction.java b/src/main/java/in/handyman/raven/lib/ProductOutboundZipfileAction.java new file mode 100644 index 00000000..5f1e9ac1 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ProductOutboundZipfileAction.java @@ -0,0 +1,287 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ProductOutboundZipFile; +import in.handyman.raven.lib.model.outbound.OutboundInputTableEntity; +import in.handyman.raven.lib.model.outbound.OutboundOutputTableEntity; +import in.handyman.raven.util.CommonQueryUtil; +import in.handyman.raven.util.ExceptionUtil; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.result.ResultIterable; +import org.jdbi.v3.core.statement.Query; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "ProductOutboundZipfile" +) +public class ProductOutboundZipfileAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final ProductOutboundZipFile productOutboundZipfile; + + private final Marker aMarker; + + public ProductOutboundZipfileAction(final ActionExecutionAudit action, final Logger log, + final Object productOutboundZipfile) { + this.productOutboundZipfile = (ProductOutboundZipFile) productOutboundZipfile; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" ProductOutboundZipfile:" + this.productOutboundZipfile.getName()); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Asset Info Action for {} has been started", productOutboundZipfile.getName()); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(productOutboundZipfile.getResourceConn()); + final List tableInfos = new ArrayList<>(); + + String sourceOutputFolderPath = productOutboundZipfile.getOutputDir(); + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(productOutboundZipfile.getQuerySet()); + AtomicInteger i = new AtomicInteger(0); + formattedQuery.forEach(sqlToExecute -> { + log.info(aMarker, "executing query {} from index {}", sqlToExecute, i.getAndIncrement()); + Query query = handle.createQuery(sqlToExecute); + ResultIterable resultIterable = query.mapToBean(OutboundInputTableEntity.class); + List detailList = resultIterable.stream().collect(Collectors.toList()); + tableInfos.addAll(detailList); + log.info(aMarker, "executed query from index {}", i.get()); + }); + }); + + List outboundOutputTableEntities = new ArrayList<>(); + + tableInfos.forEach(outboundInputTableEntity -> { + + String tenantPathStr = sourceOutputFolderPath + File.separator + outboundInputTableEntity.getTenantId() + File.separator; + final String originFolderPath = tenantPathStr + "outbound-files" + File.separator + outboundInputTableEntity.getOriginId() + File.separator; + final String originKvpFolderPath = tenantPathStr + File.separator + "outbound-files" + File.separator + outboundInputTableEntity.getOriginId() + File.separator + "Kvp" + File.separator; + final String originTableFolderPath = tenantPathStr + File.separator + "outbound-files" + File.separator + outboundInputTableEntity.getOriginId() + File.separator + "Table" + File.separator; + final String originZipPath = tenantPathStr + File.separator + "zip-files" + File.separator + outboundInputTableEntity.getOriginId() + File.separator; + String sourceCleanedPdfPath = outboundInputTableEntity.getCleanedPdfPath(); + String sourceOriginPdfPath = outboundInputTableEntity.getOriginPdfPath(); + String sourceJsonString = outboundInputTableEntity.getProductJson(); + String sourceKvpJsonString = outboundInputTableEntity.getKvpResponse(); + String fileNameStr = outboundInputTableEntity.getFileName(); + + createFolder(originFolderPath); + createFolder(originKvpFolderPath); + // createFolder(originTableFolderPath); + createFolder(originZipPath); + + + createJsonFile(sourceJsonString, originFolderPath, "productJson"); + createJsonFile(sourceKvpJsonString, originKvpFolderPath, "kvpJson"); + moveFileIntoOrigin(sourceCleanedPdfPath, originFolderPath); + moveFileIntoOrigin(sourceOriginPdfPath, originFolderPath); + try { + String ZipFileNameStr = String.valueOf(outboundInputTableEntity.getRootPipelineId()); + String outboundZipFilePath = createZipFile(originFolderPath, originZipPath, ZipFileNameStr); + + OutboundOutputTableEntity outboundOutputTableEntity = OutboundOutputTableEntity.builder() + .originId(outboundInputTableEntity.getOriginId()) + .groupId(outboundInputTableEntity.getGroupId()) + .rootPipelineId(outboundInputTableEntity.getRootPipelineId()) + .processId(outboundInputTableEntity.getProcessId()) + .cleanedPdfPath(outboundInputTableEntity.getCleanedPdfPath()) + .originPdfPath(outboundInputTableEntity.getOriginPdfPath()) + .productJson(outboundInputTableEntity.getProductJson()) + .kvpResponse(outboundInputTableEntity.getKvpResponse()) + .tableResponse(outboundInputTableEntity.getTableResponse()) + .tenantId(outboundInputTableEntity.getTenantId()) + .zipFilePath(outboundZipFilePath) + .fileName(fileNameStr) + .stage("PRODUCT_OUTBOUND") + .status("COMPLETED") + .message("completed for the outbound zip file creation ") + .build(); + outboundOutputTableEntities.add(outboundOutputTableEntity); + + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + consumerBatch(jdbi, outboundOutputTableEntities); + + }); + + + } + + public void consumerBatch(final Jdbi jdbi, List resultQueue) { + try { + resultQueue.forEach(insert -> { + jdbi.useTransaction(handle -> { + try { + handle.createUpdate("INSERT INTO " + productOutboundZipfile.getResultTable() + "(origin_id, root_pipeline_id,group_id,process_id,cleaned_pdf_path,origin_pdf_path,product_json,kvp_response,table_response,tenant_id,zip_file_path,status,stage,message,file_name)" + + "VALUES(:originId,:rootPipelineId,:groupId,:processId,:cleanedPdfPath,:originPdfPath,:productJson,:kvpResponse,:tableResponse,:tenantId,:zipFilePath,:status,:stage,:message,:fileName);") + .bindBean(insert).execute(); + log.info(aMarker, "inserted {} into outbound zip file details", insert); + } catch (Throwable t) { + log.error(aMarker, "error inserting result into outbound file details {}", resultQueue, t); + } + + }); + } + ); + } catch (Exception e) { + log.error(aMarker, "error inserting result {}", resultQueue, e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("error inserting result" + resultQueue, handymanException, action); + } + } + + + public void moveFileIntoOrigin(String inputFilePath, String outputDirectory) { + Path sourcePath = Path.of(inputFilePath); + + File sourceFile = new File(sourcePath.toString()); + // Specify the target directory path + Path targetDirectory = Path.of(outputDirectory); + + if (!Files.exists(targetDirectory)) { + createFolder(targetDirectory.toString()); + } + + boolean isFileExists = sourceFile.exists(); + if (isFileExists) { + try { + // Use Files.move() to move the file to the target directory + Path targetPath = targetDirectory.resolve(sourcePath.getFileName()); + Files.move(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING); + + log.info("File moved from {} to {}", inputFilePath, outputDirectory); + } catch (IOException e) { + log.error("File moved failed for {} to {}", inputFilePath, outputDirectory); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("failed in moving the file", handymanException, action); + throw new HandymanException("Error in execute method for ner adapter", e, action); + } + } else { + log.info("File not found from {} to {}", inputFilePath, outputDirectory); + } + } + + public void createFolder(String directoryPath) { + + File directoryFile = new File(directoryPath); + + if (!directoryFile.exists()) { + if (directoryFile.mkdirs()) { + log.info("Origin Directory created {}", directoryPath); + + } else { + log.info("Origin Directory creation failed {}", directoryPath); + } + } else { + log.info("Origin Directory already present {}", directoryPath); + } + + } + + public String createZipFile(String inputFolder, String outputZipPath, String fileName) throws FileNotFoundException { + + + try { + + if (!Files.exists(Paths.get(inputFolder))) + log.info(aMarker, "{} inputFolder Folder not found", inputFolder); + FileOutputStream fos = new FileOutputStream(outputZipPath + File.separator + fileName + ".zip"); + ZipOutputStream zipOut = new ZipOutputStream(fos); + File fileToZip = new File(inputFolder); + zipFile(fileToZip, fileToZip.getName(), zipOut); + zipOut.close(); + fos.close(); + } catch (Exception e) { + log.error(aMarker, "Error in execute method in create zip action {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in execute method in create zip action", e, action); + } + return outputZipPath; + } + + public void zipFile(File fileToZip, String fileName, ZipOutputStream zipOut) { + try { + if (fileToZip.isHidden()) { + return; + } + if (fileToZip.isDirectory()) { + if (fileName.endsWith("/")) { + zipOut.putNextEntry(new ZipEntry(fileName)); + zipOut.closeEntry(); + } else { + zipOut.putNextEntry(new ZipEntry(fileName + "/")); + zipOut.closeEntry(); + } + File[] children = fileToZip.listFiles(); + if (children != null && children.length > 0) { + for (File childFile : children) { + zipFile(childFile, fileName + "/" + childFile.getName(), zipOut); + } + return; + } + } + FileInputStream fis = new FileInputStream(fileToZip); + ZipEntry zipEntry = new ZipEntry(fileName); + zipOut.putNextEntry(zipEntry); + byte[] bytes = new byte[1024]; + int length; + while ((length = fis.read(bytes)) >= 0) { + zipOut.write(bytes, 0, length); + } + fis.close(); + log.info(aMarker, "Created zip {} and saved in the {} directory", fileToZip.getName(), fileToZip.getAbsolutePath()); + } catch (Exception e) { + log.error(aMarker, "Error in zip file generation {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in zip file generation", e, action); + } + + } + + public void createJsonFile(String jsonString, String jsonPath, String jsonName) { + + String filePath = jsonPath + File.separator + jsonName + ".json"; + + Path path = Paths.get(jsonPath); + if (!Files.exists(path)) { + createFolder(path.toString()); + } + + try (FileWriter fileWriter = new FileWriter(filePath)) { + fileWriter.write(jsonString); + log.info("json response coverted to json file {}", jsonString); + } catch (IOException e) { + log.info("json file creation failed {}", filePath); + + } + + } + + + @Override + public boolean executeIf() throws Exception { + return productOutboundZipfile.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/ProductResponseAction.java b/src/main/java/in/handyman/raven/lib/ProductResponseAction.java new file mode 100644 index 00000000..4fce6ae5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ProductResponseAction.java @@ -0,0 +1,214 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.alchemy.common.AlchemyApiPayload; +import in.handyman.raven.lib.model.ProductResponse; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "ProductResponse" +) +public class ProductResponseAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final ProductResponse productResponse; + + private final Marker aMarker; + + public ProductResponseAction(final ActionExecutionAudit action, final Logger log, + final Object productResponse) { + this.productResponse = (ProductResponse) productResponse; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" ProductResponse:" + this.productResponse.getName()); + } + + @Override + public void execute() throws Exception { + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(productResponse.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "Product Response Action for {} has been started", productResponse.getName()); + final String insertQuery = "INSERT INTO " + productResponse.getResultTable() + + "(process_id,group_id,origin_id,product_response, tenant_id,root_pipeline_id,status,stage,message) " + + " VALUES(?,?,?,?,?,?,?,?,?)"; + final List urls = Optional.ofNullable(action.getContext().get("alchemy.product.response.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new RuntimeException(e); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + ProductResponseAction.ProductResponseOutputTable.class, + ProductResponseAction.ProductResponseInputTable.class, + jdbi, log, + new ProductResponseAction.ProductResponseInputTable(), urls, action); + coproProcessor.startProducer(productResponse.getQuerySet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, 1, Integer.valueOf(action.getContext().get("write.batch.size")), new ProductResponseAction.ProductResponseConsumerProcess(log, aMarker, action)); + log.info(aMarker, "Product Response has been completed {} ", productResponse.getName()); + } catch (Exception t) { + action.getContext().put(productResponse.getName() + ".isSuccessful", "false"); + log.error(aMarker, "Error at Product Response execute method {}", ExceptionUtil.toString(t)); + throw new HandymanException("Error at Product Response execute method ", t, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return productResponse.getCondition(); + } + + public static class ProductResponseConsumerProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + + public final ActionExecutionAudit action; + + private final Long tenantId; + private final String authToken; + private final ObjectMapper mapper = new ObjectMapper(); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public ProductResponseConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.tenantId = Long.valueOf(action.getContext().get("alchemyAuth.tenantId")); + this.authToken = action.getContext().get("alchemyAuth.token"); + } + + @Override + public List process(URL endpoint, ProductResponseAction.ProductResponseInputTable entity) throws Exception { + + List parentObj = new ArrayList<>(); + Long rootPipelineId=entity.getRootPipelineId(); + + RequestBody requestBody = RequestBody.create("", MediaType.parse("application/json; charset=utf-8")); + + String originId = entity.getOriginId(); + URL url = new URL(endpoint.toString() + "/" + entity.getTransactionId() + "/" + originId + "/?tenantId=" + this.tenantId); + Request request = new Request.Builder().url(url) + .addHeader("accept", "*/*") + .addHeader("Authorization", "Bearer " + authToken) + .addHeader("Content-Type", "application/json") + .post(requestBody) + .build(); + + try (Response response = httpclient.newCall(request).execute()) { + if (response.isSuccessful()) { + AlchemyApiPayload alchemyApiPayload = mapper.readValue(Objects.requireNonNull(response.body()).string(), AlchemyApiPayload.class); + + if (!alchemyApiPayload.getPayload().isEmpty() && !alchemyApiPayload.getPayload().isNull() && alchemyApiPayload.isSuccess()) { + + parentObj.add(ProductResponseOutputTable + .builder() + .processId(entity.getProcessId()) + .tenantId(tenantId) + .groupId(entity.getGroupId()) + .productResponse(String.valueOf(alchemyApiPayload.getPayload())) + .originId(originId) + .rootPipelineId(rootPipelineId) + .stage("PRODUCT_OUBOUND") + .status("COMPLETED") + .message("alchemy product response completed for origin_id - "+ originId) + .build()); + } + } else { + parentObj.add(ProductResponseOutputTable + .builder() + .processId(entity.getProcessId()) + .tenantId(tenantId) + .groupId(entity.getGroupId()) + .originId(originId) + .rootPipelineId(rootPipelineId) + .stage("PRODUCT_OUBOUND") + .status("FAILED") + .message("alchemy product response failed for origin_id - "+ originId) + .build()); + } + } catch (Exception e) { + log.error(aMarker, "The Exception occurred in product response action", e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Exception occurred in Product Response action for originId - " + originId, handymanException, this.action); + } + return parentObj; + } + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public static class ProductResponseInputTable implements CoproProcessor.Entity { + private String originId; + private String transactionId; + private Integer processId; + private Long groupId; + private Long tenantId; + private Long rootPipelineId; + @Override + public List getRowData() { + return null; + } + } + + @AllArgsConstructor + @Data + @Builder + public static class ProductResponseOutputTable implements CoproProcessor.Entity { + + private Integer processId; + private Long groupId; + private String productResponse; + private String originId; + private Long tenantId; + private Long rootPipelineId; + private String status; + private String stage; + private String message; + + @Override + public List getRowData() { + return Stream.of(this.processId, this.groupId, this.originId,this.productResponse, this.tenantId, this.rootPipelineId,this.stage,this.stage,this.message).collect(Collectors.toList()); + } + } +} \ No newline at end of file diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/PushJsonAction.java b/src/main/java/in/handyman/raven/lib/PushJsonAction.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/PushJsonAction.java rename to src/main/java/in/handyman/raven/lib/PushJsonAction.java diff --git a/src/main/java/in/handyman/raven/lib/QrAttributionAction.java b/src/main/java/in/handyman/raven/lib/QrAttributionAction.java new file mode 100644 index 00000000..4eae21fd --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/QrAttributionAction.java @@ -0,0 +1,79 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.QrAttribution; +import in.handyman.raven.util.ExceptionUtil; +import in.handyman.raven.util.InstanceUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "QrAttribution" +) +public class QrAttributionAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final QrAttribution qrAttribution; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + private final Marker aMarker; + + public QrAttributionAction(final ActionExecutionAudit action, final Logger log, + final Object qrAttribution) { + this.qrAttribution = (QrAttribution) qrAttribution; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" QrAttribution:" + this.qrAttribution.getName()); + this.URI = action.getContext().get("copro.qr-attribution.url"); + } + + @Override + public void execute() throws Exception { + { + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("inputFilePath", qrAttribution.getFilePath()); + // build a request + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + log.info(aMarker, "The request got it successfully the File Path {}", qrAttribution.getFilePath()); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + String name = "qr-attribution-response"; + if (response.isSuccessful()) { + action.getContext().put(name, mapper.readTree(responseBody).toString()); + log.info(aMarker, "The Successful Response {} {}", name, responseBody); + } else { + log.error(aMarker, "The Failure Response {} {}", name, responseBody); + throw new HandymanException(responseBody); + } + } catch (Exception e) { + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, action); + } + } + } + + @Override + public boolean executeIf() throws Exception { + return qrAttribution.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/QrExtractionAction.java b/src/main/java/in/handyman/raven/lib/QrExtractionAction.java new file mode 100644 index 00000000..e5db0a9f --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/QrExtractionAction.java @@ -0,0 +1,111 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.QrExtraction; +import in.handyman.raven.lib.model.qrextraction.*; +import in.handyman.raven.util.ExceptionUtil; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "QrExtraction" +) +public class QrExtractionAction implements IActionExecution { + public static final String READ_BATCH_SIZE = "read.batch.size"; + public static final String QR_CONSUMER_API_COUNT = "qr.consumer.API.count"; + public static final String WRITE_BATCH_SIZE = "write.batch.size"; + public static final String INSERT_INTO = "INSERT INTO "; + public static final String INSERT_INTO_COLUMNS = "origin_id, group_id, paper_no, created_on, qr_format, qr_format_id, extracted_value, file_id, b_box, angle, confidence_score, status, stage, message,decode_type, model_name, model_version,root_pipeline_id,tenant_id"; + public static final String INSERT_INTO_VALUES = "?,?,?,?, ?,?,? ,?,?, ?,?,?, ?,? ,?, ?,? , ?,?"; + public static final String OKHTTP_CLIENT_TIMEOUT = "okhttp.client.timeout"; + private final ActionExecutionAudit action; + + private final Logger log; + + private final QrExtraction qrExtraction; + private static String httpClientTimeout = new String(); + private final Marker aMarker; + + public QrExtractionAction(final ActionExecutionAudit action, final Logger log, + final Object qrExtraction) { + this.qrExtraction = (QrExtraction) qrExtraction; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" QrExtraction:" + this.qrExtraction.getName()); + this.httpClientTimeout = action.getContext().get(OKHTTP_CLIENT_TIMEOUT); + } + + @Override + public void execute() throws Exception { + Integer consumerCount = Integer.valueOf(action.getContext().get(QR_CONSUMER_API_COUNT)); + Integer writeBatchSize = Integer.valueOf(action.getContext().get(WRITE_BATCH_SIZE)); + QrConsumerProcess qrConsumerProcess = new QrConsumerProcess(log, aMarker, action); + Integer readBatchSize = Integer.valueOf(action.getContext().get(READ_BATCH_SIZE)); + + try { + log.info(aMarker, "Qr extraction Action for {} with group by eoc-id has started", qrExtraction.getName()); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(qrExtraction.getResourceConn()); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(qrExtraction.getEndPoint()).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL {}", s1, e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + log.info("Urls for the qr attribution for sor grouping {}", urls); + + //5. build insert prepare statement with output table columns + final String insertQuery = INSERT_INTO + qrExtraction.getOutputTable() + + " (" + INSERT_INTO_COLUMNS + ")" + + "VALUES(" + INSERT_INTO_VALUES + ")"; + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + QrOutputEntity.class, + QrInputEntity.class, + jdbi, log, + new QrInputEntity(), urls, action); + + //4. call the method start producer from coproprocessor + coproProcessor.startProducer(qrExtraction.getQuerySet(), readBatchSize); + log.info("start producer method from copro processor "); + Thread.sleep(1000); + //8. call the method start consumer from coproprocessor + coproProcessor.startConsumer(insertQuery, consumerCount, writeBatchSize, qrConsumerProcess); + log.info("start consumer method from copro processor "); + + + } catch (Exception e) { + log.error("Error in the Qr extraction action {}", ExceptionUtil.toString(e)); + throw new HandymanException("QR extraction action failed ", e, action); + + } + + } + + + //6. write consumer process class which implements CoproProcessor.ConsumerProcess + + @Override + public boolean executeIf() throws Exception { + return qrExtraction.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/RavenVmExceptionAction.java b/src/main/java/in/handyman/raven/lib/RavenVmExceptionAction.java new file mode 100644 index 00000000..c0f45e8a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/RavenVmExceptionAction.java @@ -0,0 +1,45 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.RavenVmException; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "RavenVmException" +) +public class RavenVmExceptionAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final RavenVmException ravenVmException; + + private final Marker aMarker; + + public RavenVmExceptionAction(final ActionExecutionAudit action, final Logger log, + final Object ravenVmException) { + this.ravenVmException = (RavenVmException) ravenVmException; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" RavenVmException:" + this.ravenVmException.getName()); + } + + @Override + public void execute() throws Exception { + log.error(aMarker, ravenVmException.getMessage()); + throw new HandymanException(ravenVmException.getMessage()); + } + + @Override + public boolean executeIf() throws Exception { + return ravenVmException.getCondition(); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/RestApiAction.java b/src/main/java/in/handyman/raven/lib/RestApiAction.java similarity index 75% rename from handyman.raven/src/main/java/in/handyman/raven/lib/RestApiAction.java rename to src/main/java/in/handyman/raven/lib/RestApiAction.java index 2ce0cdc1..ca257095 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/RestApiAction.java +++ b/src/main/java/in/handyman/raven/lib/RestApiAction.java @@ -1,8 +1,9 @@ package in.handyman.raven.lib; import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import com.zaxxer.hikari.HikariDataSource; import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.access.ResourceAccess; import in.handyman.raven.lambda.action.ActionExecution; @@ -17,6 +18,7 @@ import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; +import org.jdbi.v3.core.Jdbi; import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.MarkerFactory; @@ -64,7 +66,7 @@ public void execute() throws Exception { var payload = restApi.getValue(); var id = actionExecutionAudit.getActionId(); var header = restApi.getHeaders(); - final HikariDataSource hikariDataSource = ResourceAccess.rdbmsConn(source); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(source); log.info(aMarker, " id#{}, name#{}, url#{}, payload#{}", id, name, url, payload); final OkHttpClient client = new OkHttpClient(); final Request request; @@ -73,10 +75,10 @@ public void execute() throws Exception { final List paramList = new ArrayList<>(); if (params.isArray()) { params.forEach(jsonNode -> jsonNode.fields() - .forEachRemaining(stringJsonNodeEntry -> addParam(hikariDataSource, paramList, stringJsonNodeEntry))); + .forEachRemaining(stringJsonNodeEntry -> addParam(jdbi, paramList, stringJsonNodeEntry))); } else { params.fields() - .forEachRemaining(stringJsonNodeEntry -> addParam(hikariDataSource, paramList, stringJsonNodeEntry)); + .forEachRemaining(stringJsonNodeEntry -> addParam(jdbi, paramList, stringJsonNodeEntry)); } if (!paramList.isEmpty()) { url.append("?"); @@ -88,26 +90,31 @@ public void execute() throws Exception { if (Objects.nonNull(header)) { if (header.isArray()) { header.forEach(jsonNode -> jsonNode.fields() - .forEachRemaining(stringJsonNodeEntry -> addHeader(hikariDataSource, builder, stringJsonNodeEntry))); + .forEachRemaining(stringJsonNodeEntry -> addHeader(jdbi, builder, stringJsonNodeEntry))); } else { header.fields() - .forEachRemaining(stringJsonNodeEntry -> addHeader(hikariDataSource, builder, stringJsonNodeEntry)); + .forEachRemaining(stringJsonNodeEntry -> addHeader(jdbi, builder, stringJsonNodeEntry)); } } final RequestBody body; if (Objects.equals(Constants.BODY_TYPE_JSON, restApi.getBodyType())) { var bodyNode = JsonNodeFactory.instance.objectNode(); - payload.forEach(restPart -> bodyNode.put(restPart.getPartName(), getResult(hikariDataSource, restPart.getPartData()))); + payload.forEach(restPart -> { + if (Objects.equals(Constants.PART_TYPE_ARRAY, restPart.getType())) + bodyNode.putArray(restPart.getPartName()).addAll(getArrayNode(restPart.getPartData())); + else if (Objects.equals(Constants.PART_TYPE_TEXT, restPart.getType())) + bodyNode.put(restPart.getPartName(), getResult(jdbi, restPart.getPartData())); + }); body = RequestBody.create(bodyNode.toString(), MediaType.get(APPLICATION_JSON_CHARSET_UTF_8)); } else if (Objects.equals(Constants.BODY_TYPE_FORM, restApi.getBodyType())) { final MultipartBody.Builder formBody = new MultipartBody.Builder() .setType(MultipartBody.FORM); restApi.getValue().forEach(restPart -> { if (Objects.equals(restPart.getType(), Constants.PART_TYPE_TEXT)) { - formBody.addFormDataPart(restPart.getPartName(), getResult(hikariDataSource, restPart.getPartData())); + formBody.addFormDataPart(restPart.getPartName(), getResult(jdbi, restPart.getPartData())); } else if (Objects.equals(restPart.getType(), Constants.PART_TYPE_FILE)) { - final File multiPart = new File(getResult(hikariDataSource, restPart.getPartData())); + final File multiPart = new File(getResult(jdbi, restPart.getPartData())); final String multiPartName = multiPart.getName(); if (!multiPart.exists()) { throw new HandymanException(String.format("File %s not found ", multiPartName)); @@ -138,29 +145,40 @@ public void execute() throws Exception { try { final Response execute = client.newCall(request).execute(); + var t = execute.body(); + assert t != null; + actionExecutionAudit.getContext().put(name, t.string()); log.info("Rest Api Response Content: " + execute.body() + " for URL: " + url); + log.info("Rest Api Response Content for " + name + " has been added to context : " + t.string()); } catch (Exception e) { log.error(aMarker, "Stopping execution, {}", url, e); log.error("Exception {}", ExceptionUtil.toString(e)); } } - private void addParam(final HikariDataSource hikariDataSource, final List paramList, final Map.Entry stringJsonNodeEntry) { - final String result = getResult(hikariDataSource, stringJsonNodeEntry.getValue().textValue()); + private void addParam(final Jdbi jdbi, final List paramList, final Map.Entry stringJsonNodeEntry) { + final String result = getResult(jdbi, stringJsonNodeEntry.getValue().textValue()); if (Objects.nonNull(result)) { paramList.add(String.format("%s=\"%s\"", stringJsonNodeEntry.getKey(), result)); } } - private void addHeader(final HikariDataSource hikariDataSource, final Request.Builder builder, final Map.Entry stringJsonNodeEntry) { - final String result = getResult(hikariDataSource, stringJsonNodeEntry.getValue().textValue()); + private void addHeader(final Jdbi jdbi, final Request.Builder builder, final Map.Entry stringJsonNodeEntry) { + final String result = getResult(jdbi, stringJsonNodeEntry.getValue().textValue()); if (Objects.nonNull(result)) { builder.header(stringJsonNodeEntry.getKey(), result); } } - private String getResult(final HikariDataSource hikariDataSource, final String partData) { - return CommonQueryUtil.getResult(hikariDataSource, partData, log); + private String getResult(final Jdbi jdbi, final String partData) { + return CommonQueryUtil.getResult(jdbi, partData); + } + + private ArrayNode getArrayNode(String value) { + var withoutBraces = value.replaceAll("\\[", "").replaceAll("]", "") + .replaceAll("\"", ""); + final List values = List.of(withoutBraces.split(",")); + return new ObjectMapper().valueToTree(values); } @Override diff --git a/src/main/java/in/handyman/raven/lib/ScalarAdapterAction.java b/src/main/java/in/handyman/raven/lib/ScalarAdapterAction.java new file mode 100644 index 00000000..2fc27aad --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ScalarAdapterAction.java @@ -0,0 +1,423 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.Alphanumericvalidator; +import in.handyman.raven.lib.model.Alphavalidator; +import in.handyman.raven.lib.model.Charactercount; +import in.handyman.raven.lib.model.Datevalidator; +import in.handyman.raven.lib.model.Nervalidator; +import in.handyman.raven.lib.model.Numericvalidator; +import in.handyman.raven.lib.model.ScalarAdapter; +import in.handyman.raven.lib.model.Validator; +import in.handyman.raven.lib.model.Wordcount; +import in.handyman.raven.util.CommonQueryUtil; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.result.ResultIterable; +import org.jdbi.v3.core.statement.Query; +import org.jdbi.v3.core.statement.Update; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "ScalarAdapter" +) +public class ScalarAdapterAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final ScalarAdapter scalarAdapter; + private final Marker aMarker; + + private final Integer writeBatchSize = 1000; + + private final AlphavalidatorAction alphaAction; + private final NumericvalidatorAction numericAction; + private final AlphanumericvalidatorAction alphaNumericAction; + private final DatevalidatorAction dateAction; + private final WordcountAction wordcountAction; + private final CharactercountAction charactercountAction; + String URI; + boolean multiverseValidator; + String[] restrictedAnswers; + private final String PHONE_NUMBER_REGEX = "^\\(?(\\d{3})\\)?[-]?(\\d{3})[-]?(\\d{4})$"; + private final String NUMBER_REGEX = "^[+-]?(\\d+\\.?\\d*|\\.\\d+)$"; + + public ScalarAdapterAction(final ActionExecutionAudit action, final Logger log, + final Object scalarAdapter) { + this.scalarAdapter = (ScalarAdapter) scalarAdapter; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" ScalarAdapter:" + this.scalarAdapter.getName()); + this.wordcountAction = new WordcountAction(action, log, Wordcount.builder().build()); + this.charactercountAction = new CharactercountAction(action, log, Charactercount.builder().build()); + this.alphaAction = new AlphavalidatorAction(action, log, Alphavalidator.builder().build()); + this.numericAction = new NumericvalidatorAction(action, log, Numericvalidator.builder().build()); + this.alphaNumericAction = new AlphanumericvalidatorAction(action, log, Alphanumericvalidator.builder().build()); + this.dateAction = new DatevalidatorAction(action, log, Datevalidator.builder().build()); + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "scalar has started" + scalarAdapter.getName()); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(scalarAdapter.getResourceConn()); + final List validatorConfigurationDetails = new ArrayList<>(); + URI = action.getContext().get("copro.text-validation.url"); + multiverseValidator = Boolean.valueOf(action.getContext().get("validation.multiverse-mode")); + restrictedAnswers = action.getContext().get("validation.restricted-answers").split(","); + + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(scalarAdapter.getResultSet()); + AtomicInteger i = new AtomicInteger(0); + formattedQuery.forEach(sqlToExecute -> { + log.info(aMarker, "executing query {} from index {}", sqlToExecute, i.getAndIncrement()); + Query query = handle.createQuery(sqlToExecute); + ResultIterable resultIterable = query.mapToBean(ValidatorConfigurationDetail.class); + List detailList = resultIterable.stream().collect(Collectors.toList()); + validatorConfigurationDetails.addAll(detailList); + log.info(aMarker, "executed query from index {}", i.get()); + }); + }); + + //Add summary audit - ${process-id}.sanitizer_summary - this should hold row count, correct row count, error_row_count + insertSummaryAudit(jdbi, validatorConfigurationDetails.size(), 0, 0); + doCompute(jdbi, validatorConfigurationDetails); + //doProcess(jdbi, validatorConfigurationDetails); + log.info(aMarker, "scalar has completed" + scalarAdapter.getName()); + } catch (Exception e) { + action.getContext().put(scalarAdapter.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred in Scalar Adapter ", e); + throw new HandymanException("The Exception occurred in Scalar Adapter", e, action); + } + } + + /* private void doProcess(final Jdbi jdbi, final List validatorConfigurationDetails) { + final int parallelism; + if (scalarAdapter.getForkBatchSize() != null) { + parallelism = Integer.parseInt(scalarAdapter.getForkBatchSize()); + } else { + parallelism = 1; + } + log.info(aMarker, "total records to process {}", validatorConfigurationDetails.size()); + try { + final int batchSize = validatorConfigurationDetails.size() / parallelism; + if (parallelism > 1 && batchSize > 0) { + log.info(aMarker, "parallel processing has started" + scalarAdapter.getName()); + final List nerValidatorConfigurationDetails = validatorConfigurationDetails.stream().filter(validatorConfigurationDetail -> Objects.equals(validatorConfigurationDetail.getAllowedAdapter(), "")).collect(Collectors.toList()); + + validatorConfigurationDetails.removeAll(nerValidatorConfigurationDetails); + + final List> partition = Lists.partition(validatorConfigurationDetails, batchSize); + final CountDownLatch countDownLatch = new CountDownLatch(partition.size()); + final ExecutorService executorService = Executors.newFixedThreadPool(parallelism); + + partition.forEach(items -> executorService.submit(() -> { + try { + items.forEach(validatorConfigurationDetail -> { + + doCompute(jdbi, validatorConfigurationDetail); + + }); + log.info(aMarker, "total records to processed {}", items.size()); + } finally { + countDownLatch.countDown(); + log.info(aMarker, " {} batch processed", countDownLatch.getCount()); + } + })); + + if (!nerValidatorConfigurationDetails.isEmpty()) { + doProcess(jdbi, nerValidatorConfigurationDetails); + } + + countDownLatch.await(); + + } else { + log.info(aMarker, "sequential processing has started" + scalarAdapter.getName()); + + validatorConfigurationDetails.forEach(validatorConfigurationDetail -> { + + doCompute(jdbi, validatorConfigurationDetail); + + }); + } + } catch (Exception e) { + log.error(aMarker, "The Failure Response {} --> {}", scalarAdapter.getName(), e.getMessage(), e); + } + }*/ + + private void doCompute(final Jdbi jdbi, List listOfDetails) { + try { + List resultQueue = new ArrayList<>(); + for (ValidatorConfigurationDetail result : listOfDetails) { + log.info(aMarker, "Build 19- scalar executing validator {}", result); + + String inputValue = result.getInputValue(); + int wordScore = wordcountAction.getWordCount(inputValue, + result.getWordLimit(), result.getWordThreshold()); + int charScore = charactercountAction.getCharCount(inputValue, + result.getCharLimit(), result.getCharThreshold()); + Validator configurationDetails = Validator.builder() + .inputValue(inputValue) + .adapter(result.getAllowedAdapter()) + .allowedSpecialChar(result.getAllowedCharacters()) + .comparableChar(result.getComparableCharacters()) + .threshold(result.getValidatorThreshold()) + .build(); + + int validatorScore = computeAdapterScore(configurationDetails); + int validatorNegativeScore = 0; + if (result.getRestrictedAdapterFlag() == 1 && validatorScore != 0) { + configurationDetails.setAdapter(result.getRestrictedAdapter()); + validatorNegativeScore = computeAdapterScore(configurationDetails); + } + + double valConfidenceScore = wordScore + charScore + validatorScore - validatorNegativeScore; + log.info(aMarker, "Build 19-validator scalar confidence score {}", valConfidenceScore); + + updateEmptyValueIfLowCf(result, valConfidenceScore); + updateEmptyValueForRestrictedAns(result, inputValue); + log.info(aMarker, "Build 19-validator vqa score {}", result.getVqaScore()); + + result.setWordScore(wordScore); + result.setCharScore(charScore); + result.setValidatorScore(validatorScore); + result.setValidatorNegativeScore(validatorNegativeScore); + result.setConfidenceScore(valConfidenceScore); + result.setProcessId(String.valueOf(action.getProcessId())); + result.setStatus("COMPLETED"); + result.setStage("SCALAR_VALIDATION"); + result.setMessage("scalar validation macro completed"); + resultQueue.add(result); + log.info(aMarker, "executed validator {}", result); + + if (resultQueue.size() == this.writeBatchSize) { + log.info(aMarker, "executing batch {}", resultQueue.size()); + consumerBatch(jdbi, resultQueue); + log.info(aMarker, "executed batch {}", resultQueue.size()); + insertSummaryAudit(jdbi, listOfDetails.size(), resultQueue.size(), 0); + resultQueue.clear(); + log.info(aMarker, "cleared batch {}", resultQueue.size()); + } + } + if (!resultQueue.isEmpty()) { + log.info(aMarker, "executing final batch {}", resultQueue.size()); + consumerBatch(jdbi, resultQueue); + log.info(aMarker, "executed final batch {}", resultQueue.size()); + insertSummaryAudit(jdbi, listOfDetails.size(), resultQueue.size(), 0); + resultQueue.clear(); + log.info(aMarker, "cleared final batch {}", resultQueue.size()); + } + } catch (Exception e) { + action.getContext().put(scalarAdapter.getName().concat(".error"), "true"); + log.error(aMarker, "Exception occurred in Scalar Computation {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Exception occurred in Scalar Computation", handymanException, action); + } + } + + private void updateEmptyValueForRestrictedAns(ValidatorConfigurationDetail result, String inputValue) { + if (multiverseValidator) { + log.info(aMarker, "Build 19-validator updatating for Restricted answer {}"); + for (String format : restrictedAnswers) { + if (inputValue.equalsIgnoreCase(format)) { + updateEmptyValueAndCf(result); + } + } + } + } + + private void updateEmptyValueIfLowCf(ValidatorConfigurationDetail result, double valConfidenceScore) { + if (valConfidenceScore < 100 && multiverseValidator) { + log.info(aMarker, "Build 19-validator updateEmptyValueIfLowCf {}", valConfidenceScore); + updateEmptyValueAndCf(result); + + } + } + + private static void updateEmptyValueAndCf(ValidatorConfigurationDetail result) { + result.setInputValue(""); + result.setVqaScore(0); + } + + void consumerBatch(final Jdbi jdbi, List resultQueue) { + try { + resultQueue.forEach(insert -> { + jdbi.useTransaction(handle -> { + try { + String COLUMN_LIST = "origin_id, paper_no, group_id, process_id, sor_id, sor_item_id, sor_item_name,question, answer, weight, created_user_id, tenant_id, created_on, word_score, char_score, validator_score_allowed, validator_score_negative, confidence_score,validation_name,b_box,status,stage,message,vqa_score,question_id,synonym_id"; + String COLUMN_BINDED_LIST = ":originId, :paperNo, :groupId, :processId , :sorId, :sorItemId, :sorKey, :question ,:inputValue, :weight, :createdUserId, :tenantId, NOW(), :wordScore , :charScore , :validatorScore, :validatorNegativeScore, :confidenceScore,:allowedAdapter,:bbox,:status,:stage,:message,:vqaScore,:questionId,:synonymId"; + Update update = handle.createUpdate(" INSERT INTO sor_transaction.adapter_result_" + scalarAdapter.getProcessID() + + " ( " + COLUMN_LIST + ") " + + " VALUES( " + COLUMN_BINDED_LIST + ");" + + " "); + Update bindBean = update.bindBean(insert); + bindBean.execute(); + } catch (Exception t) { + insertSummaryAudit(jdbi, 0, 0, 1); + log.error(aMarker, "error inserting result {}", resultQueue, t); + HandymanException handymanException = new HandymanException(t); + HandymanException.insertException("Exception occurred in Scalar Computation consumer batch insert into adapter result for groupId" + insert.groupId, handymanException, action); + } + }); + } + ); + } catch (Exception t) { + insertSummaryAudit(jdbi, 0, 0, resultQueue.size()); + log.error(aMarker, "error inserting result {}", resultQueue, t); + HandymanException handymanException = new HandymanException(t); + HandymanException.insertException("Exception occurred in Scalar Computation consumer batch insert into adapter result", handymanException, action); + } + } + + int computeAdapterScore(Validator inputDetail) { + int confidenceScore = 0; + try { + switch (inputDetail.getAdapter()) { + case "alpha": + confidenceScore = this.alphaAction.getAlphaScore(inputDetail); + break; + case "alphanumeric": + confidenceScore = this.alphaNumericAction.getAlphaNumericScore(inputDetail); + break; + case "numeric": + confidenceScore = this.numericAction.getNumericScore(inputDetail); + break; + case "date": + confidenceScore = this.dateAction.getDateScore(inputDetail); + break; + case "phone_reg": + confidenceScore = regValidator(inputDetail, PHONE_NUMBER_REGEX); + break; + case "numeric_reg": + confidenceScore = regValidator(inputDetail, NUMBER_REGEX); + break; + } + } catch (Exception t) { + log.error(aMarker, "error adpater validation{}", inputDetail, t); + HandymanException handymanException = new HandymanException(t); + HandymanException.insertException("Exception occurred in computing adapter score", handymanException, action); + } + return confidenceScore; + + } + + void insertSummaryAudit(final Jdbi jdbi, int rowCount, int executeCount, int errorCount) { + SanitarySummary summary = new SanitarySummary().builder() + .rowCount(rowCount) + .correctRowCount(executeCount) + .errorRowCount(errorCount) + .build(); + jdbi.useTransaction(handle -> { + Update update = handle.createUpdate(" INSERT INTO sor_transaction.sanitizer_summary_" + scalarAdapter.getProcessID() + + " ( row_count, correct_row_count, error_row_count, created_at) " + + " VALUES(:rowCount, :correctRowCount, :errorRowCount, NOW());"); + Update bindBean = update.bindBean(summary); + bindBean.execute(); + }); + + } + + private int regValidator(Validator validator, String regForm) { + String inputValue = validator.getInputValue(); + inputValue = replaceSplChars(validator.getAllowedSpecialChar(), inputValue); + Pattern pattern = Pattern.compile(regForm); + Matcher matcher = pattern.matcher(inputValue); + boolean matchValue = matcher.matches(); + return matchValue ? validator.getThreshold() : 0; + } + + private String replaceSplChars(final String specialCharacters, String input) { + if (specialCharacters != null) { + for (int i = 0; i < specialCharacters.length(); i++) { + if (input.contains(Character.toString(specialCharacters.charAt(i)))) { + input = input.replace(Character.toString(specialCharacters.charAt(i)), ""); + } + } + } + return input; + } + + @Override + public boolean executeIf() throws Exception { + return scalarAdapter.getCondition(); + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class SanitarySummary { + int rowCount; + int correctRowCount; + int errorRowCount; + + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ValidatorConfigurationDetail { + private int sorId; + private String originId; + private String ProcessId; + private String sorKey; + private String question; + private String inputValue; + private String allowedAdapter; + private String restrictedAdapter; + private int wordLimit; + private int wordThreshold; + private int charLimit; + private int charThreshold; + private int validatorThreshold; + private String allowedCharacters; + private String comparableCharacters; + private int restrictedAdapterFlag; + private int paperNo; + private Integer groupId; + private String bbox; + private int sorItemId; + private String createdUserId; + private Long tenantId; + private double wordScore; + private double charScore; + private double validatorScore; + private double validatorNegativeScore; + private double confidenceScore; + private String sorItemName; + private float vqaScore; + private int weight; + private String status; + private String stage; + private String message; + private Integer synonymId; + private Integer questionId; + } + +} diff --git a/src/main/java/in/handyman/raven/lib/SetActionValueAction.java b/src/main/java/in/handyman/raven/lib/SetActionValueAction.java new file mode 100644 index 00000000..f86ec6e4 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/SetActionValueAction.java @@ -0,0 +1,43 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.SetValue; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "SetValue" +) +public class SetActionValueAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final SetValue setValue; + + private final Marker aMarker; + + public SetActionValueAction(final ActionExecutionAudit action, final Logger log, + final Object setValue) { + this.setValue = (SetValue) setValue; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" SetValue:" + this.setValue.getName()); + } + + @Override + public void execute() throws Exception { + action.getContext().put(setValue.getContextKey(), setValue.getContextValue()); + } + + @Override + public boolean executeIf() throws Exception { + return setValue.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/SftpConnectorAction.java b/src/main/java/in/handyman/raven/lib/SftpConnectorAction.java new file mode 100644 index 00000000..103e0a71 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/SftpConnectorAction.java @@ -0,0 +1,85 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.jcraft.jsch.Channel; +import com.jcraft.jsch.ChannelSftp; +import com.jcraft.jsch.JSch; +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; +import com.jcraft.jsch.SftpException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.SftpConnector; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "SftpConnector" +) +public class SftpConnectorAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final SftpConnector sftpConnector; + + private final Marker aMarker; + + private final ObjectMapper mapper = new ObjectMapper(); + + public SftpConnectorAction(final ActionExecutionAudit action, final Logger log, + final Object sftpConnector) { + this.sftpConnector = (SftpConnector) sftpConnector; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" SftpConnector:" + this.sftpConnector.getName()); + } + + @Override + public void execute() throws Exception { + final String remoteHost = sftpConnector.getHost(); + final String userName = sftpConnector.getUserName(); + final String password = sftpConnector.getPassword(); + final int remotePort = Integer.parseInt(sftpConnector.getPort()); + final int sessionTimeout = Integer.parseInt(sftpConnector.getSessionTimeOut()); + final int channelTimeout = Integer.parseInt(sftpConnector.getChannelTimeOut()); + final String destDir = sftpConnector.getDestDir(); + final String remoteFile = sftpConnector.getSourceFile(); + log.info(aMarker, "Got the sftp details for the host {} and user {}", remoteHost, userName); + Session jschSession = null; + try { + JSch jsch = new JSch(); + jsch.setKnownHosts("/home/sanjeeya.v@zucisystems.com/.ssh/known_hosts"); + jschSession = jsch.getSession(userName, remoteHost, remotePort); + jschSession.setPassword(password); + jschSession.connect(sessionTimeout); + Channel sftp = jschSession.openChannel("sftp"); + sftp.connect(channelTimeout); + log.info(aMarker, "sftp connection established for the host {} and user {}", remoteHost, userName); + ChannelSftp channelSftp = (ChannelSftp) sftp; + if (!(remoteFile.isEmpty())) { + channelSftp.get(remoteFile, destDir); + log.info(aMarker, "Downloaded {} file and saved in the {} directory", remoteFile, destDir); + String name = "sftp-file-download-connector-response"; + action.getContext().put(name, mapper.readTree(destDir).toString()); + channelSftp.exit(); + } + } catch (JSchException | SftpException e) { + e.printStackTrace(); + } finally { + if (jschSession != null) { + jschSession.disconnect(); + } + } + } + + @Override + public boolean executeIf() throws Exception { + return sftpConnector.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/SharePointAction.java b/src/main/java/in/handyman/raven/lib/SharePointAction.java new file mode 100644 index 00000000..605c6ec4 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/SharePointAction.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.SharePoint; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "SharePoint" +) +public class SharePointAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final SharePoint sharePoint; + + private final Marker aMarker; + + public SharePointAction(final ActionExecutionAudit action, final Logger log, + final Object sharePoint) { + this.sharePoint = (SharePoint) sharePoint; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" SharePoint:" + this.sharePoint.getName()); + } + + @Override + public void execute() throws Exception { + } + + @Override + public boolean executeIf() throws Exception { + return sharePoint.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/SorFilterAction.java b/src/main/java/in/handyman/raven/lib/SorFilterAction.java new file mode 100644 index 00000000..627e8dd5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/SorFilterAction.java @@ -0,0 +1,122 @@ +package in.handyman.raven.lib; + +import co.elastic.clients.elasticsearch.ElasticsearchClient; +import co.elastic.clients.elasticsearch.core.SearchResponse; +import co.elastic.clients.json.jackson.JacksonJsonpMapper; +import co.elastic.clients.transport.rest_client.RestClientTransport; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.SorFilter; +import in.handyman.raven.util.ExceptionUtil; +import org.apache.http.HttpHost; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.impl.nio.reactor.IOReactorConfig; +import org.elasticsearch.client.RestClient; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "SorFilter" +) +public class SorFilterAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final SorFilter sorFilter; + + private final Marker aMarker; + private final String esUsername; + private final String esPassword; + private final String esHostname; + private final ElasticsearchClient elasticsearchClient; + private final ObjectMapper mapper = new ObjectMapper(); + + public SorFilterAction(final ActionExecutionAudit action, final Logger log, + final Object sorFilter) { + this.sorFilter = (SorFilter) sorFilter; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" SorFilter:" + this.sorFilter.getName()); + this.esUsername = action.getContext().get("es.username"); + this.esPassword = action.getContext().get("es.password"); + this.esHostname = action.getContext().get("es.hostname"); + this.elasticsearchClient = getElasticsearchClient(esUsername, esPassword, esHostname); + } + + private static ElasticsearchClient getElasticsearchClient(String userName, String password, String hostName) { + + final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); + credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password)); + var restClient = RestClient.builder(new HttpHost(hostName, Integer.parseInt("9200"))).setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(6000000).setSocketTimeout(6000000)).setHttpClientConfigCallback(httpAsyncClientBuilder -> { + httpAsyncClientBuilder.setMaxConnTotal(500); + httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider); + httpAsyncClientBuilder.setDefaultIOReactorConfig(IOReactorConfig.custom().setIoThreadCount(10).build()); + return httpAsyncClientBuilder; + }).build(); + final ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + var transport = new RestClientTransport(restClient, new JacksonJsonpMapper(mapper)); + return new ElasticsearchClient(transport); + } + + @Override + public void execute() throws Exception { + + try { + log.info(aMarker, "Match Phrase query Action for {} has been started" , sorFilter.getName()); + JsonNode sorList = mapper.readTree(sorFilter.getSearchValue()); + + List filteredSorList = new ArrayList(); + for (JsonNode synonym : sorList) { + SearchResponse filterList = elasticsearchClient + .search(s -> s.index("source_of_truth") + .query(q -> q.bool(bool -> bool.must(query -> + query.matchPhrase(dd -> dd.field("page_content").query(synonym.asText()))).must(query -> + query.matchPhrase(dd -> dd.field("intics_reference_id").query(sorFilter.getInticsReferenceId()))).must(query -> + query.matchPhrase(dd -> dd.field("file_path").query(sorFilter.getFilePath())) + ) + )), Object.class); + long hitsCount = Objects.requireNonNull(filterList.hits().total()).value(); + if (hitsCount > 0) { + filteredSorList.add(synonym.asText()); + } + } + if (filteredSorList.size() > 0) { + action.getContext().put(sorFilter.getName() + "_is_present", "true"); + } else { + action.getContext().put(sorFilter.getName() + "_is_present", "false"); + } + + action.getContext().put(sorFilter.getName() + "_filtered_sorlist", String.valueOf(filteredSorList)); + + log.info(aMarker, "Match Phrase Query Action for {} has been completed" , sorFilter.getName()); + } catch (Exception e) { + action.getContext().put(sorFilter.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred {} ", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute sor filter action", e, action); + } + + } + + @Override + public boolean executeIf() throws Exception { + return sorFilter.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/SorGroupDetailsAction.java b/src/main/java/in/handyman/raven/lib/SorGroupDetailsAction.java new file mode 100644 index 00000000..33dd710b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/SorGroupDetailsAction.java @@ -0,0 +1,195 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.zaxxer.hikari.HikariDataSource; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.SorGroupDetails; +import in.handyman.raven.util.CommonQueryUtil; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.sql.Connection; +import java.sql.Statement; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "SorGroupDetails" +) +public class SorGroupDetailsAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final SorGroupDetails sorGroupDetails; + + private final Set writeBuffer = new HashSet<>(); + + private final Marker aMarker; + + public SorGroupDetailsAction(final ActionExecutionAudit action, final Logger log, + final Object sorGroupDetails) { + this.sorGroupDetails = (SorGroupDetails) sorGroupDetails; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" SorGroupDetails:" + this.sorGroupDetails.getName()); + } + + public static JSONObject mergeJSONObjects(JSONObject... jsonObjects) { + JSONObject mergedJSON = new JSONObject(); + try { + for (JSONObject temp : jsonObjects) { + Iterator keys = temp.keys(); + while (keys.hasNext()) { + String key = keys.next(); + mergedJSON.put(key, temp.get(key)); + } + + } + } catch (JSONException e) { + throw new RuntimeException("JSON Exception" + e); + } + return mergedJSON; + } + + @Override + public void execute() throws Exception { + var dbSrc = sorGroupDetails.getOn(); + var sql = sorGroupDetails.getValue(); + var keyfields = sorGroupDetails.getKeyfields(); + var searchfields = sorGroupDetails.getSearchfields(); + var groupbyfields = sorGroupDetails.getGroupbyfields(); + + log.info(aMarker, "id#{}, name#{}, from#{}, keyfileds#{} searchfileds-{}", action.getActionId(), + sorGroupDetails.getName(), sorGroupDetails.getOn(), sorGroupDetails.getKeyfields(), + sorGroupDetails.getSearchfields()); + + if (sorGroupDetails.getValue() != null) { + final HikariDataSource source = ResourceAccess.rdbmsConn(dbSrc); + try (var conn = source.getConnection()) { + try (var stmt = conn.createStatement()) { + final Map context = action.getContext(); + try (var rs = stmt.executeQuery(sql)) { + var columnCount = rs.getMetaData().getColumnCount(); + String prevkey = ""; + String key = ""; + Map preValue = new HashMap<>(); + JSONArray groupElmentArray = null; + JSONObject groupElmentObject = new JSONObject(); + while (rs.next()) { + ObjectMapper objectMapper = new ObjectMapper(); + CommonQueryUtil.addKeyConfig(context, log, rs, columnCount, ""); + String[] keysplitarr = keyfields.split(","); + String[] searchsplitarr = searchfields.split(","); + final Map stringStringMap = objectMapper.readValue(rs.getString(1), + new TypeReference<>() { + }); + final Map stringMap = stringStringMap.entrySet().stream() + .filter(field -> (Arrays.asList(searchsplitarr).contains(field.getKey()))) + .collect(Collectors + .toMap(Map.Entry::getKey, + Map.Entry::getValue, (p, q) -> p)); + // TODO add logic to use any number of keys + key = rs.getString(keysplitarr[0]) + "#" + rs.getString(keysplitarr[1]); + boolean isfound = false; + for (Map.Entry pentry : stringMap.entrySet()) { + if (preValue.containsValue(pentry.getValue()) && !isfound) { + groupElmentArray.put(rs.getInt(groupbyfields)); + groupElmentObject = mergeJSONObjects(groupElmentObject, new JSONObject(rs.getString(1))); + isfound = true; + } + } + if (!isfound) { + if (groupElmentArray != null) { + generateDataFrame(prevkey, groupElmentArray, groupElmentObject); + } + groupElmentArray = new JSONArray(); + groupElmentArray.put(rs.getInt(groupbyfields)); + groupElmentObject = new JSONObject(rs.getString(1)); + prevkey = key; + } + + preValue.clear(); + preValue.putAll(stringMap); + stringMap.clear(); + } + if (groupElmentArray != null) + generateDataFrame(key, groupElmentArray, groupElmentObject); + } + } + } + } + action.getContext().put(sorGroupDetails.getName(), writeBuffer.toString()); + writeToDb(writeBuffer); + } + + private void generateDataFrame(String key, JSONArray jarray, JSONObject groupElmentObject) { + String targetTable = sorGroupDetails.getTargettable(); + var keyfields = sorGroupDetails.getKeyfields(); + var groupbyfields = sorGroupDetails.getGroupbyfields(); + + final String qryFrameBuilder = "INSERT INTO " + targetTable + " (" + + keyfields + "," + + groupbyfields + "," + + "combinedvalue" + + ") VALUES" + Constants.INSERT_STMT_VALUE_START; + + var dataFrameBuilder = new StringBuilder(); + dataFrameBuilder.append(qryFrameBuilder).append("'") + .append(key.split("#")[0]).append("','") + .append(key.split("#")[1]).append("','") + .append(jarray.toString().replace("[", "{").replace("]", "}")).append("','") + .append(groupElmentObject).append("'") + .append(Constants.INSERT_STMT_VALUE_END).append(";"); + writeBuffer.add(dataFrameBuilder.toString()); + + dataFrameBuilder.setLength(0); + + } + + + private void writeToDb(Set writeBuffer) { + var dbSrc = sorGroupDetails.getOn(); + String targebtable = sorGroupDetails.getTargettable(); + var hikariDataSource = ResourceAccess.rdbmsConn(dbSrc); + try (final Connection sourceConnection = hikariDataSource.getConnection()) { + sourceConnection.setAutoCommit(false); + log.info("Writing to database using conn: {} table- {}", dbSrc, targebtable); + //TODO audit + try (final Statement stmt = sourceConnection.createStatement()) { + for (var s : writeBuffer) { + stmt.addBatch(s); + } + stmt.executeBatch(); + sourceConnection.commit(); + writeBuffer.clear(); + } + } catch (Exception ex) { + log.error("SorGroupDetailsAction: {} error closing source connection for database: {} ", + action.getActionId(), targebtable, ex); + throw new HandymanException("writeToDb failed", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return sorGroupDetails.getCondition(); + } +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/SpawnProcessAction.java b/src/main/java/in/handyman/raven/lib/SpawnProcessAction.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/SpawnProcessAction.java rename to src/main/java/in/handyman/raven/lib/SpawnProcessAction.java diff --git a/src/main/java/in/handyman/raven/lib/TableExtractionAction.java b/src/main/java/in/handyman/raven/lib/TableExtractionAction.java new file mode 100644 index 00000000..2467aa66 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/TableExtractionAction.java @@ -0,0 +1,430 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.opencsv.CSVReader; +import com.opencsv.exceptions.CsvValidationException; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.TableExtraction; +import in.handyman.raven.lib.model.tableextraction.TableOutputResponse; +import in.handyman.raven.util.UniqueID; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.apache.commons.io.FilenameUtils; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.json.JSONArray; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Timestamp; +import java.sql.Types; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "TableExtraction" +) +public class TableExtractionAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final TableExtraction tableExtraction; + + private final Marker aMarker; + + public TableExtractionAction(final ActionExecutionAudit action, final Logger log, + final Object tableExtraction) { + this.tableExtraction = (TableExtraction) tableExtraction; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" TableExtraction:" + this.tableExtraction.getName()); + } + + @Override + public void execute() { + try { + log.info(aMarker, "Table Extraction Action has been started {}", tableExtraction); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(tableExtraction.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + final String outputDir = Optional.ofNullable(tableExtraction.getOutputDir()).map(String::valueOf).orElse(null); + log.info(aMarker, "Table Extraction Action output directory {}", outputDir); + //5. build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO " + tableExtraction.getResultTable() + + "(origin_id,group_id,tenant_id,template_id,processed_file_path,paper_no, status,stage,message,created_on,process_id,root_pipeline_id,table_response, bboxes, croppedImage) " + + " VALUES(?,?, ?,?, ?,?, ?,?,?,? ,?, ?, ? , ?, ?)"; + log.info(aMarker, "table extraction Insert query {}", insertQuery); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(action.getContext().get("copro.table-extraction.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "table extraction copro urls {}", urls); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + TableExtractionOutputTable.class, + TableExtractionInputTable.class, + jdbi, log, + new TableExtractionInputTable(), urls, action); + + log.info(aMarker, "table extraction copro coproProcessor initialization {}", coproProcessor); + + //4. call the method start producer from coproprocessor + coproProcessor.startProducer(tableExtraction.getQuerySet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + log.info(aMarker, "table extraction copro coproProcessor startProducer called read batch size {}", action.getContext().get("read.batch.size")); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("table.extraction.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), new TableExtractionConsumerProcess(log, aMarker, outputDir, action)); + log.info(aMarker, "table extraction copro coproProcessor startConsumer called consumer count {} write batch count {} ", Integer.valueOf(action.getContext().get("table.extraction.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size"))); + + + } catch (Exception ex) { + log.error(aMarker, "error in execute method for table extraction ", ex); + throw new HandymanException("error in execute method for table extraction", ex, action); + } + } + + + public static class TableExtractionConsumerProcess implements CoproProcessor.ConsumerProcess { + + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final String outputDir; + + public final ActionExecutionAudit action; + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public TableExtractionConsumerProcess(Logger log, Marker aMarker, String outputDir, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.outputDir = outputDir; + this.action = action; + } + + @Override + public List process(URL endpoint, TableExtractionInputTable entity) throws Exception { + log.info(aMarker, "coproProcessor consumer process started with endpoint {} and entity {}", endpoint, entity); + List parentObj = new ArrayList<>(); + final ObjectNode objectNode = mapper.createObjectNode(); + String inputFilePath = entity.getFilePath(); + Long uniqueId = UniqueID.getId(); + String uniqueIdStr = String.valueOf(uniqueId); + Long rootPipelineId = action.getRootPipelineId(); + final String tableExtractionProcessName = "TABLE_EXTRACTION"; + Long actionId = action.getActionId(); + objectNode.put("rootPipelineId", 1); + objectNode.put("process", tableExtractionProcessName); + objectNode.put("inputFilePath", inputFilePath); + objectNode.put("outputDir", outputDir); + objectNode.put("actionId", 1); + + log.info(aMarker, "coproProcessor mapper object node {}", objectNode); + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + if (log.isInfoEnabled()) { + log.info(aMarker, "Request has been build with the parameters \n URI : {}, with inputFilePath {} and outputDir {}", endpoint, inputFilePath, outputDir); + } + AtomicInteger atomicInteger = new AtomicInteger(); + String originId = entity.getOriginId(); + Integer groupId = entity.getGroupId(); + String templateId = entity.templateId; + Long tenantId = entity.tenantId; + Long processId = entity.processId; + + + try (Response response = httpclient.newCall(request).execute()) { + + if (log.isInfoEnabled()) + log.info(aMarker, "coproProcessor consumer process response with status{}, and message as {}, ", response.isSuccessful(), response.message()); + if (response.isSuccessful()) { + log.info(aMarker, "coproProcessor consumer process response status {}", response.message()); + + String responseBody = response.body().string(); + List tableOutputResponses = mapper.readValue(responseBody, new TypeReference<>() { + }); + tableOutputResponses.forEach(tableOutputResponse1 -> { + String csvTablesPath = tableOutputResponse1.getCsvTablesPath(); + String tableResponse = null; + try { + tableResponse = tableDataJson(csvTablesPath, action); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + parentObj.add( + TableExtractionOutputTable + .builder() + .originId(entity.getOriginId()) + .paperNo(entity.getPaperNo()) + .tableResponse(tableResponse) + .processedFilePath(tableOutputResponse1.getCsvTablesPath()) + .croppedImage(tableOutputResponse1.getCroppedImage()) + .bboxes(tableOutputResponse1.getBboxes().asText()) + .groupId(groupId) + .processId(processId) + .templateId(templateId) + .tenantId(tenantId) + .status("COMPLETED") + .stage(tableExtractionProcessName) + .message(response.message()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .build()); + + }); + + } else { + parentObj.add( + TableExtractionOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .templateId(templateId) + .tenantId(tenantId) + .status("FAILED") + .stage(tableExtractionProcessName) + .message(response.message()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .build()); + log.error(aMarker, "Error in response {}", response.message()); + } + } catch (Exception exception) { + parentObj.add( + TableExtractionOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .templateId(templateId) + .tenantId(tenantId) + .status("FAILED") + .stage(tableExtractionProcessName) + .message(exception.getMessage()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .build()); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("Table Extraction consumer failed for originId " + originId, handymanException, this.action); + log.error(aMarker, "The Exception occurred in request {}", request, exception); + } + atomicInteger.set(0); + log.info(aMarker, "coproProcessor consumer process with output entity {}", parentObj); + return parentObj; + } + + + } + + private static void extractedOutputResponse(String responseParse, List parentObj, String originId, Integer groupId, String templateId, Long tenantId, Long processId, String tableExtractionProcessName, Long rootPipelineId) { +// JSONObject parentResponse = new JSONObject(responseParse); +// JSONArray filePathArray = new JSONArray(parentResponse.get("csvTablesPath").toString()); +// +// //JSONArray tableResponseArray = new JSONArray(parentResponse.get("table_response").toString()); +// log.info(aMarker, "coproProcessor consumer process response body filePathArray {}", filePathArray); +// filePathArray.forEach(s -> { +// Map processedJsonNode; +// try { +// processedJsonNode = mapper.readValue(s.toString(), Map.class); +// } catch (IOException e) { +// throw new RuntimeException(e); +// } +// log.info(aMarker, "coproProcessor consumer process response body processedJsonNode {}", processedJsonNode); +// +// processedJsonNode.forEach((schemaName, csvFilePathNode) -> { +// try { +// log.info(aMarker, "coproProcessor consumer process response body scheme {} and csv file path {}", schemaName, csvFilePathNode); +// +// String csvJsonObject = tableDataJson(String.valueOf(csvFilePathNode),action); +// Long paperNo = getPaperNobyFileName(String.valueOf(csvFilePathNode)); +// +// parentObj.add( +// TableExtractionOutputTable +// .builder() +// .processedFilePath(String.valueOf(s)) +// .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) +// .groupId(groupId) +// .templateId(templateId) +// .tenantId(tenantId) +// .processId(processId) +// .paperNo(paperNo) +// .status("COMPLETED") +// .stage(tableExtractionProcessName) +// .tableResponse(csvJsonObject) +// .message("Table Extraction macro completed") +// .createdOn(Timestamp.valueOf(LocalDateTime.now())) +// .rootPipelineId(rootPipelineId) +// .build()); +// } catch (JsonProcessingException e) { +// throw new RuntimeException(e); +// } +// }); +// }); + } + + @Override + public boolean executeIf() throws Exception { + return tableExtraction.getCondition(); + } + + public static String tableDataJson(String filePath, ActionExecutionAudit action) throws JsonProcessingException { + try (CSVReader reader = new CSVReader(new FileReader(filePath))) { + String removeFirstRow = action.getContext().get("table.extraction.header.exclude"); + if (Objects.equals("true", removeFirstRow)) { + reader.readNext(); + } + + String[] headers = reader.readNext(); // Read the headers + + JSONArray dataArray = new JSONArray(); // Array for data rows + JSONArray headersArray = new JSONArray(); // Array for column headers + + // Convert headers to JSON + for (String header : headers) { + headersArray.put(header); + } + + String[] row; + + while ((row = reader.readNext()) != null) { + JSONArray rowArray = new JSONArray(); + + // Convert data row to JSON + for (int i = 0; i < headers.length; i++) { + rowArray.put(row[i]); + } + dataArray.put(rowArray); + } + + // Create the main JSON object + JSONObject json = new JSONObject(); + json.put("csvFilePath", filePath); + json.put("data", dataArray); + json.put("columnHeaders", headersArray); + return json.toString(); + + + } catch (CsvValidationException | IOException e) { + throw new RuntimeException(e); + } + } + + public static Long getPaperNobyFileName(String filePath) { + Long extractedNumber = null; + File file = new File(filePath); + + String fileNameStr = FilenameUtils.removeExtension(file.getName()); + + String[] parts = fileNameStr.split("_"); + + // Check if there are at least two parts (0 and 1 after the first underscore) + if (parts.length >= 2) { + // Extract the second part (index 1 in the array after splitting) + String number = parts[parts.length - 2]; + + // Convert the extracted string to an integer if needed + extractedNumber = Long.parseLong(number); + + // Print the extracted number + return extractedNumber + 1; + } + + return extractedNumber; + } + + + //1. input pojo from select query, which implements CoproProcessor.Entity + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class TableExtractionInputTable implements CoproProcessor.Entity { + private String originId; + private Long processId; + private Integer groupId; + private Long tenantId; + private String templateId; + private String filePath; + private String outputDir; + private Long rootPipelineId; + private Long paperNo; + + + @Override + public List getRowData() { + return null; + } + } + + //2. output pojo for table, which implements CoproProcessor.Entity + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class TableExtractionOutputTable implements CoproProcessor.Entity { + + private String originId; + private Integer groupId; + private Long tenantId; + private Long processId; + private String templateId; + private String processedFilePath; + private String croppedImage; + private String bboxes; + private Long paperNo; + private String status; + private String stage; + private String message; + private Timestamp createdOn; + private Long rootPipelineId; + private String tableResponse; + + @Override + public List getRowData() { + return Stream.of(this.originId, this.groupId, this.tenantId, this.templateId, this.processedFilePath, + this.paperNo, this.status, this.stage, this.message, this.createdOn, this.processId, this.rootPipelineId, this.tableResponse, this.bboxes, this.croppedImage).collect(Collectors.toList()); + } + } + + +} diff --git a/src/main/java/in/handyman/raven/lib/TemplateDetectionAction.java b/src/main/java/in/handyman/raven/lib/TemplateDetectionAction.java new file mode 100644 index 00000000..af5bad60 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/TemplateDetectionAction.java @@ -0,0 +1,172 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.templatedetection.TemplateDetectionConsumerProcess; +import in.handyman.raven.lib.model.templatedetection.TemplateDetectionInputTable; +import in.handyman.raven.lib.model.templatedetection.TemplateDetectionOutputTable; +import in.handyman.raven.lib.model.TemplateDetection; +import in.handyman.raven.util.ExceptionUtil; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "TemplateDetection" +) +public class TemplateDetectionAction implements IActionExecution { + + private final ActionExecutionAudit action; + + private final Logger log; + + private final TemplateDetection templateDetection; + + private final Marker aMarker; + public static final String DEFAULT_BATCH_SIZE = "100"; + public static final String READ_BATCH_SIZE = "read.batch.size"; + public static final String WRITE_BATCH_SIZE = "read.batch.size"; + public static final String CONSUMER_API_COUNT = "template.detection.consumer.API.count"; + public static final String INSERT_INTO = "INSERT INTO "; + public static final String SCHEMA_NAME = "macro"; + public static final String COLUMN_LIST = "process_id, origin_id, paper_no, group_id, processed_file_path, question, predictedattribution_value, score, bboxes, image_width, image_height, image_dpi, extracted_image_unit, tenant_id, template_id, status, stage, message, created_on, root_pipeline_id,model_name,model_version"; + public static final String VAL_STRING_LIST = "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + public static final String THREAD_SLEEP_TIME = "1000"; + public static final String COPRO_CLIENT_SOCKET_TIMEOUT = "copro.client.socket.timeout"; + private final String DEFAULT_THREAD_SLEEP = "1000"; + private final Integer writeBatchSize; + private final int readBatchSize; + private final Integer consumerApiCount; + private final String insertQuery; + public static final String COPRO_CLIENT_API_SLEEPTIME = "copro.client.api.sleeptime"; + public static final String DEFAULT_SOCKET_TIME_OUT = "1000"; + private final String schemaName; + private final String targetTableName; + private final String columnList; + private final Integer threadSleepTime; + private int timeout; + + + public TemplateDetectionAction(final ActionExecutionAudit action, final Logger log, + final Object templateDetection) { + this.templateDetection = (TemplateDetection) templateDetection; + this.action = action; + this.log = log; + this.schemaName = SCHEMA_NAME; + this.targetTableName = ((TemplateDetection) templateDetection).getOuputTable(); + this.columnList = COLUMN_LIST; + String readBatchSizeStr = Optional.ofNullable(this.action.getContext().get(READ_BATCH_SIZE)).orElse(DEFAULT_BATCH_SIZE); + String writeBatchSizeStr = Optional.ofNullable(this.action.getContext().get(WRITE_BATCH_SIZE)).orElse(DEFAULT_BATCH_SIZE); + String consumerCount = Optional.ofNullable(this.action.getContext().get(CONSUMER_API_COUNT)).orElse("1000"); + String socketTimeStr= Optional.ofNullable(this.action.getContext().get(COPRO_CLIENT_SOCKET_TIMEOUT)).orElse(DEFAULT_SOCKET_TIME_OUT); + String threadSleep = Optional.ofNullable(this.action.getContext().get(THREAD_SLEEP_TIME)).orElse(DEFAULT_THREAD_SLEEP); + + insertQuery = INSERT_INTO + targetTableName + "(" + columnList + ")" + " " + VAL_STRING_LIST; + this.timeout = Integer.parseInt(socketTimeStr); + this.writeBatchSize = Integer.parseInt(writeBatchSizeStr); + this.readBatchSize = Integer.parseInt(readBatchSizeStr); + this.consumerApiCount = Integer.parseInt(consumerCount); + this.aMarker = MarkerFactory.getMarker(" TemplateDetection:" + this.templateDetection.getName()); + this.threadSleepTime = Integer.parseInt(threadSleep); + + } + + @Override + public void execute() throws Exception { + try { + final String jdbiStr = templateDetection.getResourceConn(); + final String nameStr = templateDetection.getName(); + final String querysetStr = templateDetection.getQuerySet(); + final String coproUrlStr = templateDetection.getCoproUrl(); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(jdbiStr); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "Template detection macro started {}", templateDetection); + + final List urls = Optional.ofNullable(coproUrlStr).map(s -> Arrays.stream(s.split(",")).map(urlItem -> { + try { + return new URL(urlItem); + } catch (MalformedURLException e) { + log.error("Error in Template detection while processing the URL " + urlItem, e); + throw new HandymanException("Error in Template detection while processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + final CoproProcessor coproProcessor = getTemplateDetectionCoproProcessor(jdbi, urls, querysetStr); + log.info(aMarker, "Copro processor start compose completed {}", nameStr); + Thread.sleep(threadSleepTime); + final TemplateDetectionConsumerProcess templateDetectionConsumerProcess = new TemplateDetectionConsumerProcess(log, aMarker, action, this); + coproProcessor.startConsumer(insertQuery, consumerApiCount, writeBatchSize, templateDetectionConsumerProcess); + + } catch (Exception e) { + log.error(aMarker, "Error in execute method for template detection {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in execute method for template detection {}", e, action); + } + + + } + + @NotNull + private CoproProcessor getTemplateDetectionCoproProcessor(Jdbi jdbi, List urls, String querysetStr) { + final TemplateDetectionInputTable templateDetectionInputTable = new TemplateDetectionInputTable(); + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + TemplateDetectionOutputTable.class, + TemplateDetectionInputTable.class, + jdbi, log, + templateDetectionInputTable, urls, action); + + + coproProcessor.startProducer(querysetStr, readBatchSize); + return coproProcessor; + } + + @Override + public boolean executeIf() throws Exception { + return templateDetection.getCondition(); + } + private List extractCoproEndPoints(String endpoint) { + final List urls; + if (endpoint.isEmpty() && endpoint.isBlank()) { + urls = Optional.of(endpoint).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "paper itemizer copro urls {}", urls); + } else { + log.info(aMarker, "paper itemizer copro url not found"); + return Collections.emptyList(); + + } + return urls; + } + + + public Integer getTimeOut() { + return this.timeout; + } +} diff --git a/src/main/java/in/handyman/raven/lib/TextFilterAction.java b/src/main/java/in/handyman/raven/lib/TextFilterAction.java new file mode 100644 index 00000000..ac59f9de --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/TextFilterAction.java @@ -0,0 +1,97 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.TextFilter; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "TextFilter" +) +public class TextFilterAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final TextFilter textFilter; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + public TextFilterAction(final ActionExecutionAudit action, final Logger log, + final Object textFilter) { + this.textFilter = (TextFilter) textFilter; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" TextFilter:" + this.textFilter.getName()); + this.URI = action.getContext().get("copro.doc-filtering.url"); + + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Pixel Classifier Action for {} has been started", textFilter.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + final ObjectNode objectNode = mapper.createObjectNode(); + + objectNode.put("inputFilePath", textFilter.getInputFilePath()); + objectNode.set("keysToFilter", mapper.readTree(textFilter.getFilteringKeys())); + + log.info(aMarker, " Input variables id : {}", action.getActionId()); + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + log.debug(aMarker, "Request has been build with the parameters \n URI : {} \n Input-File-Path : {} \n key-filters : {} ", URI, textFilter.getInputFilePath(), textFilter.getFilteringKeys()); + + String name = textFilter.getName() + "_response"; + log.debug(aMarker, "The Request Details: {}", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + JSONObject responseObject = new JSONObject(responseBody); + action.getContext().put(name, responseObject.get("filterFlag").toString()); + action.getContext().put(name.concat(".error"), "false"); + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + } else { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), responseBody); + log.error(aMarker, "The Failure Response {} --> {}", name, responseBody); + throw new HandymanException(responseBody); + } + log.info(aMarker, "Text Filtering Action for {} has been completed", textFilter.getName()); + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), e.getMessage()); + log.error(aMarker, "The Exception occurred ", e); + throw new HandymanException("Failed to execute", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return textFilter.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/ThresholdCheckAction.java b/src/main/java/in/handyman/raven/lib/ThresholdCheckAction.java new file mode 100644 index 00000000..2473cb37 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ThresholdCheckAction.java @@ -0,0 +1,58 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ThresholdCheck; +import org.json.JSONArray; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution(actionName = "ThresholdCheck") +public class ThresholdCheckAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final ThresholdCheck thresholdCheck; + + private final Marker aMarker; + + public ThresholdCheckAction(final ActionExecutionAudit action, final Logger log, final Object thresholdCheck) { + this.thresholdCheck = (ThresholdCheck) thresholdCheck; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" ThresholdCheck:" + this.thresholdCheck.getName()); + } + + @Override + public void execute() throws Exception { + String name = thresholdCheck.getName() + "_response"; + JSONObject inputObject = new JSONObject(thresholdCheck.getInput()); + JSONArray filteredEntity = new JSONArray(); + inputObject.keys().forEachRemaining(entry -> { + final double predictedValue = Double.parseDouble(String.valueOf(inputObject.get(entry))); + final double thresholdValue = Double.parseDouble(thresholdCheck.getThreshold()); + if (predictedValue >= thresholdValue) { + JSONObject responseObject = new JSONObject(); + responseObject.put("key_name", entry); + responseObject.put("score", inputObject.get(entry)); + filteredEntity.put(responseObject); + + } + }); + if (filteredEntity.isEmpty()) action.getContext().put(name, ""); + else action.getContext().put(name, String.valueOf(filteredEntity)); + log.info(aMarker, "The Successful Response for {} --> {}", name, filteredEntity); + } + + @Override + public boolean executeIf() throws Exception { + return thresholdCheck.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/TqaFilterAction.java b/src/main/java/in/handyman/raven/lib/TqaFilterAction.java new file mode 100644 index 00000000..71951f12 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/TqaFilterAction.java @@ -0,0 +1,454 @@ +package in.handyman.raven.lib; + +import co.elastic.clients.elasticsearch.ElasticsearchClient; +import co.elastic.clients.elasticsearch.core.IndexRequest; +import co.elastic.clients.elasticsearch.core.IndexResponse; +import co.elastic.clients.elasticsearch.core.SearchResponse; +import co.elastic.clients.elasticsearch.core.search.TotalHits; +import co.elastic.clients.elasticsearch.indices.Alias; +import co.elastic.clients.elasticsearch.indices.CreateIndexRequest; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.collect.Lists; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.TqaFilter; +import in.handyman.raven.util.CommonQueryUtil; +import in.handyman.raven.util.InstanceUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.IOException; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "TqaFilter" +) +public class TqaFilterAction implements IActionExecution { + public static final String INPUT_FILE_PATH = "input_file_path"; + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final TqaFilter tqaFilter; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + + + public TqaFilterAction(final ActionExecutionAudit action, final Logger log, + final Object tqaFilter) { + this.tqaFilter = (TqaFilter) tqaFilter; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" TqaFilter:" + this.tqaFilter.getName()); + } + + @Override + public void execute() throws Exception { + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(tqaFilter.getResourceConn()); + final List> synonymsResult = new ArrayList<>(); + final List> inputPathResult = new ArrayList<>(); + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(tqaFilter.getSynonymSqlQuery()); + formattedQuery.forEach(sqlToExecute -> { + synonymsResult.addAll(handle.createQuery(sqlToExecute).mapToMap().stream().collect(Collectors.toList())); + }); + }); + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(tqaFilter.getInputFilePathSqlQuery()); + formattedQuery.forEach(sqlToExecute -> { + inputPathResult.addAll(handle.createQuery(sqlToExecute).mapToMap().stream().collect(Collectors.toList())); + }); + }); + + final String esUsername = action.getContext().get("es.username"); + final String esPassword = action.getContext().get("es.password"); + final String esHostname = action.getContext().get("es.hostname"); + + var elasticsearchClient = InstanceUtil.createElasticsearchClient(esUsername, esPassword, esHostname); + final String indexName = "source_of_truth"; + createIndex(elasticsearchClient, indexName); + + final String threadCount = tqaFilter.getThreadCount(); + +// +// +// if (threadCount != null) { +// final ExecutorService executorService = Executors.newFixedThreadPool(Integer.parseInt(threadCount)); +// } +// + + createTruePositive(jdbi, synonymsResult, inputPathResult, elasticsearchClient, indexName); + + createFalsePositive(jdbi, inputPathResult); + + } + + private void createIndex(final ElasticsearchClient elasticsearchClient, final String indexName) throws IOException { + Set alias = Collections.emptySet(); + + final boolean exists = elasticsearchClient.indices().exists(builder -> builder.index(indexName)).value(); + if (!exists) { + var createIndexResponse = elasticsearchClient.indices() + .create(new CreateIndexRequest.Builder().index(indexName) + .aliases(alias.stream().collect(Collectors.toMap(o -> o, s -> + new Alias.Builder().isWriteIndex(true).build()))).build()); + log.info(aMarker, "response status {} shard {}", createIndexResponse.acknowledged(), + createIndexResponse.shardsAcknowledged()); + } + } + + private void createTruePositive(final Jdbi jdbi, final List> synonymsResult, final List> inputPathResult, final ElasticsearchClient elasticsearchClient, final String indexName) throws IOException { + + + final List truePositives = new ArrayList<>(); + + extractionApi(indexName, inputPathResult, tqaFilter.getOutputDir(), elasticsearchClient); + for (var input : inputPathResult) { + + final String inputFilePath = Optional.ofNullable(input.get(INPUT_FILE_PATH)).map(String::valueOf).orElse(null); + final Integer paperNo = Optional.ofNullable(input.get("paper_no")).map(String::valueOf).map(Integer::parseInt).orElse(null); + final String refId = Optional.ofNullable(input.get("ref_id")).map(String::valueOf).orElse(null); + + final Map>> longListMap = synonymsResult.stream() + .collect(Collectors.groupingBy(synonym -> Optional.ofNullable(synonym.get("sor_id")).map(String::valueOf).map(Long::valueOf).orElse(null))); + + for (var sorId : longListMap.keySet()) { + + for (var synonym : longListMap.get(sorId)) { + + final String synonymName = Optional.ofNullable(synonym.get("synonym_name")).map(String::valueOf).orElse(null); + final Long tsId = Optional.ofNullable(synonym.get("ts_id")).map(String::valueOf).map(Long::valueOf).orElse(null); + final Long sqId = Optional.ofNullable(synonym.get("sq_id")).map(String::valueOf).map(Long::valueOf).orElse(null); + final String question = Optional.ofNullable(synonym.get("question")).map(String::valueOf).orElse(null); + + if (synonymName != null && inputFilePath != null) { + + + final SearchResponse filterList = elasticsearchClient + .search(s -> s.index(indexName) + .query(q -> q.bool(bool -> bool.must(query -> + query.matchPhrase(dd -> dd.field("page_content").query(synonymName))) + .must(query -> + query.matchPhrase(dd -> dd.field("file_path").query(inputFilePath)) + ) + )), Object.class); + + log.debug(aMarker, filterList.toString()); + + final long hitsCount = Optional.ofNullable(filterList.hits().total()).map(TotalHits::value).orElse(0L); + truePositives.add(TruePositiveFilterResult.builder() + .inputFilePath(inputFilePath) + .synonymName(synonymName) + .rootPipelineId(action.getRootPipelineId()) + .truePositiveHitCount(hitsCount) + .truthSynonymId(tsId) + .synonymQuestionId(sqId) + .sorId(sorId) + .paperNo(paperNo) + .refId(refId) + .docnetQuestion(question) + .build()); +// if (hitsCount > 0) { +// break; +// } + } + } + } + } + + List> smallerLists = tqaFilter.getWriteBatchSize() != null + ? Lists.partition(truePositives, Integer.parseInt(tqaFilter.getWriteBatchSize())) + : Collections.singletonList(truePositives); + + smallerLists.forEach(truePositiveFilterResults -> { + jdbi.useTransaction(handle -> { + + for (var tpfr : truePositiveFilterResults) { + handle.createUpdate("INSERT INTO tqa.true_positive_filter_result (input_file_path, synonym_name, truth_synonym_id," + + " synonym_question_id, true_positive_hit_count, root_pipeline_id,ref_id,paper_no,sor_id,docnet_question)" + + " VALUES( :inputFilePath , :synonymName , :truthSynonymId , :synonymQuestionId , :truePositiveHitCount , :rootPipelineId ,:refId,:paperNo,:sorId,:docnetQuestion);") + .bindBean(tpfr).execute(); + log.debug(aMarker, "inserted {} into true positive result", tpfr); + } + + + }); + + }); + + } + + private void extractionApi(final String indexName, final List> inputPathResult, final String outputDir, final ElasticsearchClient elasticsearchClient) { + + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + + for (var input : inputPathResult) { + + final String inputFilePath = Optional.ofNullable(input.get(INPUT_FILE_PATH)).map(String::valueOf).orElse(null); + + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("inputFilePath", inputFilePath); + objectNode.put("outputDir", outputDir); + final String extractionUrl = action.getContext().get("copro.data-extraction.url"); + + Request request = new Request.Builder().url(extractionUrl) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = response.body().string(); + JsonNode extractedResult = mapper.readTree(responseBody); + if (response.isSuccessful()) { + String indexId = String.valueOf(System.currentTimeMillis()); + ObjectNode indexNode = mapper.createObjectNode(); + indexNode.put("type", "AGADIA_SOT"); + indexNode.put("created_at", String.valueOf(LocalDateTime.now())); + indexNode.put("file_path", inputFilePath); + indexNode.set("page_content", extractedResult.get("pageContent")); + final IndexResponse indexResponse = elasticsearchClient.index(IndexRequest.of(indexReq -> indexReq + .index(indexName) + .id(indexId) + .document(indexNode)) + ); + log.info(aMarker, "response status {} payloadID {}", indexResponse.index(), indexResponse.id()); + } else { + log.error(aMarker, "The Failure Response {} --> {}", inputFilePath, responseBody); + } + + + } catch (Exception e) { + log.error(aMarker, "The Exception occurred ", e); + throw new HandymanException("Failed to execute", e); + } + } + + } + + private void createFalsePositive(final Jdbi jdbi, final List> inputPathResult) { + final OkHttpClient okHttpClient = InstanceUtil.createOkHttpClient(); + final Long processId = action.getProcessId(); + + for (var input : inputPathResult) { + + final String inputFilePath = Optional.ofNullable(input.get(INPUT_FILE_PATH)).map(String::valueOf).orElse(null); + final Integer paperNo = Optional.ofNullable(input.get("paper_no")).map(String::valueOf).map(Integer::parseInt).orElse(null); + final String refId = Optional.ofNullable(input.get("ref_id")).map(String::valueOf).orElse(null); + + final ObjectNode objectNode = mapper.createObjectNode(); + + objectNode.put("inputFilePath", inputFilePath); + objectNode.put("outputDir", tqaFilter.getOutputDir()); + objectNode.put("maxDoctrDiff", tqaFilter.getMaxDoctrDiff()); + objectNode.put("maxQuestionDiff", tqaFilter.getMaxQuestionDiff()); + + + final String truthExtractorUrl = tqaFilter.getTruthExtractorUrl(); + final Request request = new Request.Builder().url(truthExtractorUrl) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + log.debug(aMarker, "URL {} request body {}", truthExtractorUrl, objectNode); + try (final Response response = okHttpClient.newCall(request).execute()) { + final String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + final TruthExtractionResponse truthExtractionResponse = mapper.readValue(responseBody, TruthExtractionResponse.class); + jdbi.useTransaction(handle -> { + + final QaPairResult qaPairResult = QaPairResult.builder() + .inputFilePath(inputFilePath) + .rootPipelineId(action.getRootPipelineId()) + .processId(processId) + .response(responseBody) + .paperNo(paperNo) + .refId(refId) + .build(); + handle.createUpdate("INSERT INTO truth_attribution.sot_qa_pairing_result (input_file_path,root_pipeline_id, process_id, response,intics_reference_id, paper_no )" + + " select :inputFilePath , :rootPipelineId , :processId ,cast(:response as json),:refId,:paperNo ;") + .bindBean(qaPairResult) + .execute(); + log.debug(aMarker, "inserted {} into QA pairing result", qaPairResult); + }); + final List falsePositiveFilterResults = truthExtractionResponse.getQaPairs().stream() + .map(qaPair -> FalsePositiveFilterResult.builder() + // .question(qaPair.getQuestionParts() + // .stream().map(Part::getContent).collect(Collectors.joining(" "))) + .question(qaPair.getQuestion()) + .answerCount(qaPair.getAnswerParts().size()) + .inputFilePath(inputFilePath) + .rootPipelineId(action.getRootPipelineId()) + .paperNo(paperNo) + .refId(refId) + .build()) + .collect(Collectors.toList()); + + + List> smallerLists = tqaFilter.getWriteBatchSize() != null + ? Lists.partition(falsePositiveFilterResults, Integer.parseInt(tqaFilter.getWriteBatchSize())) + : Collections.singletonList(falsePositiveFilterResults); + + smallerLists.forEach(truePositiveFilterResults -> { + + jdbi.useTransaction(handle -> { + + for (var tpfr : truePositiveFilterResults) { + handle.createUpdate("INSERT INTO tqa.false_positive_filter_result (input_file_path, question, answer_count, root_pipeline_id,ref_id,paper_no)" + + " VALUES( :inputFilePath , :question , :answerCount ,:rootPipelineId,:refId,:paperNo );").bindBean(tpfr).execute(); + log.debug(aMarker, "inserted {} into false positive result", tpfr); + } + + + }); + + }); + } else { + log.error(aMarker, " response failed {} ", responseBody); + } + } catch (Exception e) { + log.error(aMarker, "The Exception occurred ", e); + } + + } + + + } + + @Override + public boolean executeIf() throws Exception { + return tqaFilter.getCondition(); + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class TruePositiveFilterResult { + + private String inputFilePath; + private String synonymName; + private String docnetQuestion; + + private Long truthSynonymId; + private Long synonymQuestionId; + + private long truePositiveHitCount; + + private Long rootPipelineId; + + private String refId; + private Long sorId; + private Integer paperNo; + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class FalsePositiveFilterResult { + + private String inputFilePath; + private String question; + + private long answerCount; + + private Long rootPipelineId; + private String refId; + private Integer paperNo; + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class QaPairResult { + + private String inputFilePath; + private String response; + private Long rootPipelineId; + private String refId; + private Long processId; + private Integer paperNo; + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + static + class TruthExtractionResponse { + + private List qaPairs = new ArrayList<>(); + + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class QaPair { + + private Integer id; + private List questionParts = new ArrayList<>(); + private String question; + private String answer; + private List answerParts = new ArrayList<>(); + + } + + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Part { + + private String content; + private PartPosition position; + + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class PartPosition { + + private Double left; + private Double upper; + private Double right; + private Double lower; + private String filePath; + } + + +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/TransferFileDirectoryAction.java b/src/main/java/in/handyman/raven/lib/TransferFileDirectoryAction.java similarity index 72% rename from handyman.raven/src/main/java/in/handyman/raven/lib/TransferFileDirectoryAction.java rename to src/main/java/in/handyman/raven/lib/TransferFileDirectoryAction.java index b4fecc9e..ef9a3877 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/TransferFileDirectoryAction.java +++ b/src/main/java/in/handyman/raven/lib/TransferFileDirectoryAction.java @@ -1,13 +1,16 @@ package in.handyman.raven.lib; +import in.handyman.raven.exception.HandymanException; import in.handyman.raven.lambda.action.ActionExecution; import in.handyman.raven.lambda.action.IActionExecution; import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; import in.handyman.raven.lib.model.TransferFileDirectory; +import org.apache.commons.io.FileUtils; import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.MarkerFactory; +import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -41,19 +44,27 @@ public void execute() throws Exception { log.info("Copy file from {} to {} operation has been started", transferFileDirectory.getSource(), transferFileDirectory.getTo()); Path sourcePath = Paths.get(transferFileDirectory.getSource()); Path destinationPath = Paths.get(transferFileDirectory.getTo()); - if (Files.exists(sourcePath)) { + if (sourcePath.toFile().isFile()) { + if (destinationPath.toFile().isFile()) { + FileUtils.copyFile(sourcePath.toFile(), destinationPath.toFile()); + } else { + File destFile = new File(destinationPath + "/" + sourcePath.toFile().getName()); + FileUtils.copyFile(sourcePath.toFile(), destFile); + } + } else if (Files.exists(sourcePath)) { Files.copy(sourcePath, destinationPath); if (Files.exists(destinationPath)) { Files.copy(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING); } - log.info("Source File copied to Destination has Deleted", sourcePath); + log.info("Source File copied to Destination has Deleted {}", sourcePath); } else { - log.info("Source file -{} not exists", sourcePath); + log.error("Source file -{} does not exists", sourcePath); + throw new HandymanException("Source file does not exists"); } } @Override public boolean executeIf() throws Exception { - return false; + return transferFileDirectory.getCondition(); } } diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/TransformAction.java b/src/main/java/in/handyman/raven/lib/TransformAction.java similarity index 65% rename from handyman.raven/src/main/java/in/handyman/raven/lib/TransformAction.java rename to src/main/java/in/handyman/raven/lib/TransformAction.java index d89956e3..d081ec10 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/TransformAction.java +++ b/src/main/java/in/handyman/raven/lib/TransformAction.java @@ -45,9 +45,10 @@ public TransformAction(final ActionExecutionAudit actionExecutionAudit, final Lo @Override public void execute() { + log.info(aMarker, "Transform Action for {} has been started" , transform.getName()); final String dbSrc = transform.getOn(); log.info(aMarker, "Transform action input variables id: {}, name: {}, source-database: {} ", actionExecutionAudit.getActionId(), transform.getName(), dbSrc); - log.info(aMarker, "Sql input post parameter ingestion \n {}", transform.getValue()); + log.debug(aMarker, "Sql input post parameter ingestion \n {}", transform.getValue()); final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(dbSrc); jdbi.useTransaction(handle -> { try { @@ -56,39 +57,44 @@ public void execute() { for (String givenQuery : transform.getValue()) { var sqlList = transform.getFormat() ? CommonQueryUtil.getFormattedQuery(givenQuery) : Collections.singletonList(givenQuery); for (var sqlToExecute : sqlList) { - log.info(aMarker, "Transform with id:{}, executing script {}", actionExecutionAudit.getActionId(), givenQuery); + if(sqlToExecute.startsWith("--")){ + log.error(aMarker, "Transform with id:{}, Skipping comment {}", actionExecutionAudit.getActionId(), sqlToExecute); + + } + log.info(aMarker, "Transform with id:{}, executing script {}", actionExecutionAudit.getActionId(), sqlToExecute); final Long statementId = UniqueID.getId(); //TODO try (final Statement stmt = connection.createStatement()) { var rowCount = stmt.executeUpdate(sqlToExecute); var warnings = ExceptionUtil.completeSQLWarning(stmt.getWarnings()); - log.info(aMarker, sqlToExecute + ".count", rowCount); - log.info(aMarker, sqlToExecute + ".stmtCount", stmt.getUpdateCount()); - log.info(aMarker, sqlToExecute + ".warnings", warnings); + log.debug(aMarker, sqlToExecute + ".count", rowCount); + log.debug(aMarker, sqlToExecute + ".stmtCount", stmt.getUpdateCount()); + log.debug(aMarker, sqlToExecute + ".warnings", warnings); log.info(aMarker, "Transform id# {}, executed script {} rows returned {}", statementId, sqlToExecute, rowCount); stmt.clearWarnings(); } catch (SQLSyntaxErrorException ex) { - log.error(aMarker, "Stopping execution, General Error executing sql for {} with for {}", sqlToExecute, ex); - log.info(aMarker, sqlToExecute + ".exception", ExceptionUtil.toString(ex)); - throw new HandymanException("Process failed", ex); + log.error(aMarker, "Stopping execution, General Error executing sql for {} with for {}", sqlToExecute, ExceptionUtil.toString(ex)); + //log.error(aMarker, sqlToExecute + ".exception", ExceptionUtil.toString(ex)); + throw new HandymanException("Transform failed for statement "+statementId, ex, actionExecutionAudit); } catch (SQLException ex) { log.error(aMarker, "Continuing to execute, even though SQL Error executing sql for {} ", sqlToExecute, ex); - log.info(aMarker, sqlToExecute + ".exception", ExceptionUtil.toString(ex)); - throw new HandymanException("Process failed", ex); + // log.error(aMarker, sqlToExecute + ".exception", ExceptionUtil.toString(ex)); + throw new HandymanException("Transform failed for statement "+statementId, ex, actionExecutionAudit); } catch (Exception ex) { - log.error(aMarker, "Stopping execution, General Error executing sql for {} with for {}", sqlToExecute, ex); - log.info(aMarker, sqlToExecute + ".exception", ExceptionUtil.toString(ex)); - throw new HandymanException("Process failed", ex); + log.error(aMarker, "Stopping execution, General Error executing sql for {} with for {}", sqlToExecute, ExceptionUtil.toString(ex)); + //log.error(aMarker, sqlToExecute + ".exception", ExceptionUtil.toString(ex)); + throw new HandymanException("Transform failed for statement "+statementId, ex, actionExecutionAudit); } } connection.commit(); - log.info(aMarker, "Completed Transform id#{}, name#{}, dbSrc#{}, sqlList#{}", actionExecutionAudit.getActionId(), transform.getName() + log.debug(aMarker, "Completed Transform id#{}, name#{}, dbSrc#{}, sqlList#{}", actionExecutionAudit.getActionId(), transform.getName() , dbSrc, sqlList); } + log.info(aMarker, "Transform Action for {} has been completed" , transform.getName()); } catch (SQLException ex) { log.error(aMarker, "Stopping execution, Fetching connection failed", ex); - log.info(aMarker, "connection.exception {}", ExceptionUtil.toString(ex)); - throw new HandymanException("Process failed", ex); + //log.error(aMarker, "connection.exception {}", ExceptionUtil.toString(ex)); + throw new HandymanException("Transform failed for action "+actionExecutionAudit.getActionId(), ex, actionExecutionAudit); } }); diff --git a/src/main/java/in/handyman/raven/lib/TriageAttributionAction.java b/src/main/java/in/handyman/raven/lib/TriageAttributionAction.java new file mode 100644 index 00000000..7f519378 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/TriageAttributionAction.java @@ -0,0 +1,101 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.TriageAttribution; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "TriageAttribution" +) +public class TriageAttributionAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final TriageAttribution triageAttribution; + private final Marker aMarker; + private final String URI; + private final ObjectMapper mapper = new ObjectMapper(); + + public TriageAttributionAction(final ActionExecutionAudit action, final Logger log, + final Object triageAttribution) { + this.triageAttribution = (TriageAttribution) triageAttribution; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" TriageAttribution: " + this.triageAttribution.getName()); + this.URI = action.getContext().get("copro.triage.attribution.url"); + } + + @Override + public void execute() throws Exception { + + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + final ObjectNode objectNode = mapper.createObjectNode(); + + + objectNode.put("inputFilePath", triageAttribution.getInputFilePath()); + objectNode.put("labelledClassifierModelFilePath", triageAttribution.getLabelledClassifierModelFilePath()); + objectNode.put("handwrittenClassifierModelFilePath", triageAttribution.getHandwrittenClassifierModelFilePath()); + objectNode.put("checkboxClassifierModelFilePath", triageAttribution.getCheckboxClassifierModelFilePath()); + objectNode.set("synonyms", mapper.readTree(triageAttribution.getSynonyms())); + objectNode.set("labelledClassifierLabels", mapper.readTree(triageAttribution.getLabelledClassifierLabels())); + objectNode.put("viltConfigLabel", triageAttribution.getViltConfigLabel()); + objectNode.put("isViltCocoOverride", triageAttribution.getIsViltCocoOverride()); + objectNode.put("viltCocoThreshold", triageAttribution.getViltCocoThreshold()); + objectNode.put("outputDir", triageAttribution.getOutputDir()); + objectNode.put("vggImageWidth", triageAttribution.getVggImageWidth()); + objectNode.put("vggImageHeight", triageAttribution.getVggImageHeight()); + objectNode.set("viltCocoLabels", mapper.readTree(triageAttribution.getViltCocoLabels())); + + final Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + + try (final Response response = httpclient.newCall(request).execute()) { + final String responseBody = Objects.requireNonNull(response.body()).string(); + log.debug(aMarker, "Request has been build with the parameters \n URI : {} \n request body : {} \n saved response as {} \n response body {} {} ", + URI, objectNode, triageAttribution.getTriageAttributionResponseName(), response.code(), responseBody); + if (response.isSuccessful()) { + action.getContext().put(triageAttribution.getTriageAttributionResponseName(), responseBody); + action.getContext().put(triageAttribution.getTriageAttributionResponseName().concat(".error"), "false"); + } else { + action.getContext().put(triageAttribution.getTriageAttributionResponseName().concat(".error"), "true"); + action.getContext().put(triageAttribution.getTriageAttributionResponseName().concat(".errorMessage"), responseBody); + } + } catch (Exception e) { + action.getContext().put(triageAttribution.getTriageAttributionResponseName().concat(".error"), "true"); + action.getContext().put(triageAttribution.getTriageAttributionResponseName().concat(".errorMessage"), e.getMessage()); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return triageAttribution.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/TrinityModelAction.java b/src/main/java/in/handyman/raven/lib/TrinityModelAction.java new file mode 100644 index 00000000..4de92b84 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/TrinityModelAction.java @@ -0,0 +1,252 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.TrinityModel; +import in.handyman.raven.lib.model.trinitymodel.*; +import in.handyman.raven.util.CommonQueryUtil; +import in.handyman.raven.util.ExceptionUtil; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.statement.PreparedBatch; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.*; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "TrinityModel" +) +public class TrinityModelAction implements IActionExecution { + public static final String COLUMN_LIST = "process_id,file_path,question, predicted_attribution_value,b_box, image_dpi , image_width , image_height , extracted_image_unit , action_id, root_pipeline_id,status,stage,paper_type, score,model_name,model_version,tenant_id"; + public static final String CREATE_TABLE_COLUMN = "id bigserial not null, file_path text,question text, predicted_attribution_value text , score float8 NULL, b_box json null, image_dpi int8 null, image_width int8 null, image_height int8 null, extracted_image_unit varchar null, action_id bigint, root_pipeline_id bigint,process_id bigint, created_on timestamp not null default now(),status varchar NULL,stage varchar NULL ,paper_type varchar NULL,tenant_id int8 null"; + public static final String CREATE_ERROR_TABLE_COLUMN = "id bigserial not null, file_path text,error_message text, action_id bigint, root_pipeline_id bigint,process_id bigint, created_on timestamp not null default now() ,tenant_id int8 null"; + private final ActionExecutionAudit action; + + private final Logger log; + private final Long tenantId; + + private final TrinityModel trinityModel; + + private final Marker aMarker; + private final AtomicInteger counter = new AtomicInteger(); + private static String httpClientTimeout = new String(); + + + public TrinityModelAction(final ActionExecutionAudit action, final Logger log, + final Object trinityModel) { + this.trinityModel = (TrinityModel) trinityModel; + this.action = action; + this.log = log; + this.tenantId= Long.valueOf(action.getContext().get("tenant_id")); + this.aMarker = MarkerFactory.getMarker(" TrinityModel:" + this.trinityModel.getName()); + httpClientTimeout = Optional.ofNullable(action.getContext().get("okhttp.client.timeout")).orElse("100"); + } + + @Override + public void execute() throws Exception { + + + try { + log.info(aMarker, "Trinity Model Attribution Action for {} has been started", trinityModel.getName()); + log.info(aMarker, "Api endpoint to copro {}", trinityModel.getRequestUrl()); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(trinityModel.getResourceConn()); + final List trinityModelQueryResults = new ArrayList<>(); + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(trinityModel.getQuestionSql()); + formattedQuery.forEach(sqlToExecute -> trinityModelQueryResults.addAll(handle.createQuery(sqlToExecute) + .mapToBean(TrinityModelQueryResult.class) + .stream().collect(Collectors.toList()))); + }); + + + // Create DDL + + jdbi.useTransaction(handle -> handle.execute("create table if not exists macro." + trinityModel.getResponseAs() + " ( " + CREATE_TABLE_COLUMN + ");")); + jdbi.useTransaction(handle -> handle.execute("create table if not exists macro." + trinityModel.getResponseAs() + "_error ( " + CREATE_ERROR_TABLE_COLUMN + ");")); + final List trinityModelLineItems = new ArrayList<>(); + + Map>> listTrinityModelQueryResult = trinityModelQueryResults.stream().collect(Collectors.groupingBy(TrinityModelQueryResult::getFilePath, Collectors.groupingBy(TrinityModelQueryResult::getPaperType))); + ObjectMapper mapper = new ObjectMapper(); + listTrinityModelQueryResult.forEach((s, stringListMap) -> { + stringListMap.forEach((s1, trinityModelQueryResults1) -> trinityModelLineItems.add(TrinityModelLineItem.builder() + .filePath(s).paperType(s1).questions(trinityModelQueryResults1.stream().map(TrinityModelQueryResult::getQuestion).collect(Collectors.toList())) + .build())); + }); + String trinityUrl = trinityModel.getRequestUrl(); + final List nodes = Optional.ofNullable(trinityUrl).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList()); + + doProcess(trinityModelLineItems, nodes,mapper); + } catch (Exception e) { + log.error(aMarker, "Error in trinity model attribution action", e); + throw new HandymanException("Error in trinity model attribution action", e, action); + } + + } + + private void doProcess(final List donutLineItems, List nodes,ObjectMapper mapper) { + final int parallelism; + if (trinityModel.getForkBatchSize() != null) { + parallelism = Integer.parseInt(trinityModel.getForkBatchSize()); + } else { + parallelism = 1; + } + final int size = nodes.size(); + try { + if (size > 0) { + final int batchSize = donutLineItems.size() / parallelism; + if (parallelism > 1 && size > 1 && batchSize > 0) { + final List> donutLineItemPartitions = Lists.partition(donutLineItems, batchSize); + final CountDownLatch countDownLatch = new CountDownLatch(donutLineItemPartitions.size()); + final ExecutorService executorService = Executors.newFixedThreadPool(parallelism); + donutLineItemPartitions.forEach(items -> executorService.submit(() -> { + + try { + computeProcess(size, items, nodes,mapper); + } finally { + countDownLatch.countDown(); + } + + })); + countDownLatch.await(); + + } else { + computeProcess(size, donutLineItems, nodes,mapper); + } + + } + action.getContext().put(trinityModel.getResponseAs().concat(".error"), "false"); + } catch (Exception e) { + log.error(aMarker, "The Failure Response {} --> {}", trinityModel.getResponseAs(), e.getMessage(), e); + action.getContext().put(trinityModel.getResponseAs().concat(".error"), "true"); + throw new HandymanException("Failure in trinity model response", e, action); + } + } + + private void computeProcess(final int nodeSize, final List donutLineItems, List nodes,ObjectMapper mapper) { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(trinityModel.getResourceConn()); + + donutLineItems.forEach(donutLineItem -> { + final String filePath = donutLineItem.getFilePath(); + final String paperType = donutLineItem.getPaperType(); + + + try { + final List questions = donutLineItem.getQuestions(); + final String node = nodes.get(counter.incrementAndGet() % nodeSize); + + if (log.isInfoEnabled()) { + log.info(aMarker, "1. preparing {} for rest api call", questions.size()); + log.info(aMarker, "2. info's are {}, {}, {}", filePath, paperType, questions); + } + String tritonRequestActivator = action.getContext().get("triton.request.activator"); + + if (Objects.equals("false", tritonRequestActivator)) { + + coproRequestBuilder(node,filePath,paperType,questions,jdbi,mapper); + } else { + + tritonRequestBuilder(node,filePath,paperType,questions,jdbi,mapper); + } + + } catch (JsonProcessingException e) { + + jdbi.useTransaction(handle -> handle.createUpdate("INSERT INTO macro." + trinityModel.getResponseAs() + "_error (file_path,error_message, action_id, root_pipeline_id,process_id) VALUES(:filePath,:errorMessage, " + action.getActionId() + ", " + action.getRootPipelineId() + "," + action.getPipelineId() + ");") + .bind("filePath", filePath) + .bind("errorMessage", e.getMessage()) + .execute()); + log.error(aMarker, "Error in inserting into trinity model action {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Error in trinity model action", handymanException, action); + } + }); + + + } + + private void tritonRequestBuilder(String node, String filePath, String paperType, List questions, Jdbi jdbi,ObjectMapper objectMapper) throws JsonProcessingException { + final String trinityModelResultLineItems = new TrinityModelApiCaller(this, node).computeTriton(filePath, paperType, questions, action); + TrinityModelResponse trinityModelResponse = objectMapper.readValue(trinityModelResultLineItems, new TypeReference<>() { + }); + trinityModelResponse.getOutputs().forEach(trinityModelOutput -> trinityModelOutput.getData().forEach(trinityModelResultLineItem -> { + extractedOuputDataRequest(trinityModelResultLineItem, jdbi, filePath,tenantId, paperType, trinityModelResponse.getModelName(),trinityModelResponse.getModelVersion(),objectMapper); + + })); + } + + private void coproRequestBuilder(String node, String filePath, String paperType, List questions, Jdbi jdbi,ObjectMapper mapper) throws JsonProcessingException { + final String trinityModelResultLineItems = new TrinityModelApiCaller(this, node).computeCopro(filePath, paperType, questions, action); + extractedOuputDataRequest(trinityModelResultLineItems, jdbi, filePath, tenantId,paperType,"","",mapper); + + } + + private void extractedOuputDataRequest(String trinityModelDataItems,Jdbi jdbi, String filePath,Long tenantId, String paperType,String modelName,String modelVersion,ObjectMapper objectMapper) { + + try { + + TrinityModelDataItem trinityModelDataItem=objectMapper.readValue(trinityModelDataItems, new TypeReference<>() { + }); + + log.info("TrinityModelLineItem size {}", trinityModelDataItem.getAttributes().size()); + + log.info(aMarker, "completed {}", trinityModelDataItem.getAttributes().size()); + jdbi.useTransaction(handle -> { + final PreparedBatch batch = handle.prepareBatch("INSERT INTO macro." + trinityModel.getResponseAs() + " (" + COLUMN_LIST + ") VALUES(" + action.getPipelineId() + ",:filePath,:question,:predictedAttributionValue, :bBoxes::json, :imageDpi, :imageWidth, :imageHeight , :extractedImageUnit, " + action.getActionId() + "," + action.getRootPipelineId() + ",:status,:stage,:paperType, :scores, :modelName, :modelVersion,:tenantId);"); + + Lists.partition(trinityModelDataItem.getAttributes(), 100).forEach(resultLineItems -> { + log.info(aMarker, "inserting into trinity model_action {}", resultLineItems.size()); + resultLineItems.forEach(resultLineItem -> { + batch.bind("filePath", filePath) + .bind("question", resultLineItem.getQuestion()) + .bind("predictedAttributionValue", resultLineItem.getPredictedAttributionValue()) + .bind("scores", resultLineItem.getScores()) + .bind("paperType", paperType) + .bind("bBoxes", String.valueOf(resultLineItem.getBboxes())) + .bind("imageDpi", trinityModelDataItem.getImageDPI()) + .bind("imageWidth", trinityModelDataItem.getImageWidth()) + .bind("imageHeight", trinityModelDataItem.getImageHeight()) + .bind("extractedImageUnit", trinityModelDataItem.getExtractedImageUnit()) + .bind("status", "COMPLETED") + .bind("stage", "VQA_TRANSACTION") + .bind("modelName", modelName) + .bind("modelVersion", modelVersion) + .bind("tenantId", tenantId) + .add(); + + }); + int[] counts = batch.execute(); + log.info(aMarker, " persisted {} in trinity model_action", counts); + }); + }); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + @Override + public boolean executeIf() throws Exception { + return trinityModel.getCondition(); + } + + public String getHttpClientTimeout() { + return httpClientTimeout; + } + + +} diff --git a/src/main/java/in/handyman/raven/lib/UploadAssetAction.java b/src/main/java/in/handyman/raven/lib/UploadAssetAction.java new file mode 100644 index 00000000..65a79ed7 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/UploadAssetAction.java @@ -0,0 +1,91 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.UploadAsset; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.File; +import java.util.concurrent.TimeUnit; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "UploadAsset" +) +public class UploadAssetAction implements IActionExecution { + private final ActionExecutionAudit action; + private final Logger log; + private final UploadAsset uploadAsset; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + private final Marker aMarker; + MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png/pdf"); + + public UploadAssetAction(final ActionExecutionAudit action, final Logger log, + final Object uploadAsset) { + this.uploadAsset = (UploadAsset) uploadAsset; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" UploadAsset:" + this.uploadAsset.getName()); + this.URI = action.getContext().get("copro.upload-asset.url"); + } + + @Override + public void execute() throws Exception { + OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES).build(); + + File file = new File(uploadAsset.getFilePath()); + RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM) + .addFormDataPart("multipartFile", file.getName(), RequestBody.create(file, MEDIA_TYPE_PNG)) + .addFormDataPart("templateId", uploadAsset.getTemplateId()) + .build(); + + Request request = new Request.Builder().url(URI) + .addHeader("Authorization", "Bearer " + uploadAsset.getToken()) + .post(requestBody).build(); + log.info(aMarker, "The request got it successfully to upload Asset {}", + uploadAsset.getFilePath()); + try (Response response = httpclient.newCall(request).execute()) { + assert response.body() != null; + String responseBody = response.body().string(); + JsonNode jsonResult = mapper.readTree(responseBody); + String name = uploadAsset.getName(); + log.info(aMarker, "The response got it successfully for upload Asset as ==> {}", + responseBody); + if (response.isSuccessful()) { + action.getContext().put(name, jsonResult.get("asset").get("assetId").asText()); + log.info(aMarker, "The Successful Response {} {}", name, responseBody); + } else { + log.info(aMarker, "The Failure Response {} {}", name, responseBody); + throw new HandymanException(responseBody); + } + log.info(aMarker, "The response got it successfully for upload Asset as ==> {}", + action); + } catch (Exception e) { + log.info(aMarker, "The Exception occurred ", e); + throw new HandymanException("Failed to execute", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return uploadAsset.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/UrgencyTriageAction.java b/src/main/java/in/handyman/raven/lib/UrgencyTriageAction.java new file mode 100644 index 00000000..ec3b8d18 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/UrgencyTriageAction.java @@ -0,0 +1,128 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.UrgencyTriage; +import lombok.Builder; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; +import java.util.concurrent.TimeUnit; +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "UrgencyTriage" +) +public class UrgencyTriageAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final UrgencyTriage urgencyTriage; + private final Marker aMarker; + private final String URI; + private final ObjectMapper mapper = new ObjectMapper(); + private String name; + + private String resourceConn; + + private String outputDir; + + private String querySet; + + private Boolean condition = true; + + public UrgencyTriageAction(final ActionExecutionAudit action, final Logger log, + final Object urgencyTriage) { + this.urgencyTriage = (UrgencyTriage) urgencyTriage; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" UrgencyTriage:" + this.urgencyTriage.getName()); + this.URI = action.getContext().get("copro.urgency-triage.url"); + + + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Urgency Triage Action for {} has been started" , urgencyTriage.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES).build(); + + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("inputFilePath", urgencyTriage.getInputFilePath()); + objectNode.put("binaryClassifierModelFilePath", urgencyTriage.getBinaryClassifierModelFilePath()); + objectNode.put("multiClassifierModelFilePath", urgencyTriage.getMultiClassifierModelFilePath()); + objectNode.put("checkboxClassifierModelFilePath", urgencyTriage.getCheckboxClassifierModelFilePath()); + objectNode.putPOJO("synonyms", urgencyTriage.getSynonyms().split(",")); + objectNode.putPOJO("binaryClassifierLabels", urgencyTriage.getBinaryClassifierLabels().split(",")); + objectNode.putPOJO("multiClassifierLabels", urgencyTriage.getMultiClassifierLabels().split(",")); + objectNode.putPOJO("checkboxClassifierLabels", urgencyTriage.getCheckboxClassifierLabels().split(",")); + objectNode.put("outputDir", urgencyTriage.getOutputDir()); + objectNode.put("binaryImageWidth", urgencyTriage.getBinaryImageWidth()); + objectNode.put("binaryImageHeight", urgencyTriage.getBinaryImageHeight()); + objectNode.put("multiImageWidth", urgencyTriage.getMultiImageWidth()); + objectNode.put("multiImageHeight", urgencyTriage.getMultiImageHeight()); + objectNode.put("checkboxImageWidth", urgencyTriage.getCheckboxImageWidth()); + objectNode.put("checkboxImageHeight", urgencyTriage.getCheckboxImageHeight()); + + + log.info(aMarker, "Request List {}", objectNode); + + final Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + log.info(aMarker, "The Request Details : {}", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + JsonNode actualObj = mapper.readTree(responseBody); + ObjectNode result = mapper.createObjectNode(); + result.set("file_name", actualObj.get("file_name")); + result.set("binary_model", actualObj.get("binary_model")); + + // responseBody = responseBody.replaceAll(""\",""); + if (response.isSuccessful()) { + action.getContext().put(urgencyTriage.getName().concat(".result"), responseBody); + log.info(aMarker, "The Successful Response for {} --> {}", urgencyTriage.getName(), responseBody); + action.getContext().put(urgencyTriage.getName().concat(".error"), "false"); + + } else { + log.error(aMarker, "The Failure Response {} --> {}", urgencyTriage.getName(), responseBody); + action.getContext().put(urgencyTriage.getName().concat(".error"), "true"); + throw new HandymanException(responseBody); + } + } catch (Exception e) { + log.error(aMarker, "The Exception occurred ", e); + action.getContext().put(urgencyTriage.getName().concat(".error"), "true"); + throw new HandymanException("Failed to execute", e, action); + } + + } catch (Exception e) { + action.getContext().put(urgencyTriage.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred ", e); + throw new HandymanException("Failed to execute", e, action); + } + log.info(aMarker, "Urgency Triage Action for {} has been completed" , urgencyTriage.getName()); + + + } + + @Override + public boolean executeIf() throws Exception { + return urgencyTriage.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/UrgencyTriageModelAction.java b/src/main/java/in/handyman/raven/lib/UrgencyTriageModelAction.java new file mode 100644 index 00000000..324f1df5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/UrgencyTriageModelAction.java @@ -0,0 +1,105 @@ + + +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.UrgencyTriageModel; +import in.handyman.raven.lib.model.utmodel.UrgencyTriageConsumerProcess; +import in.handyman.raven.lib.model.utmodel.UrgencyTriageInputTable; +import in.handyman.raven.lib.model.utmodel.UrgencyTriageOutputTable; +import in.handyman.raven.util.ExceptionUtil; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "UrgencyTriageModel" +) +public class UrgencyTriageModelAction implements IActionExecution { + public static final String COPRO_URGENCY_TRIAGE_MODEL_URL = "copro.urgency-triage-model.url"; + private final ActionExecutionAudit action; + private final Logger log; + public static UrgencyTriageModel urgencyTriageModel = new UrgencyTriageModel(); + private final Marker aMarker; + private final String URI; + + + public UrgencyTriageModelAction(final ActionExecutionAudit action, final Logger log, + final Object UrgencyTriageModel) { + UrgencyTriageModelAction.urgencyTriageModel = (UrgencyTriageModel) UrgencyTriageModel; + this.action = action; + this.log = log; + this.URI = action.getContext().get(COPRO_URGENCY_TRIAGE_MODEL_URL); + this.aMarker = MarkerFactory.getMarker(" UrgencyTriageModel:" + UrgencyTriageModelAction.urgencyTriageModel.getName()); + } + + + @Override + public void execute() throws Exception { + try { + Integer writeBatchSize = Integer.valueOf(action.getContext().get("write.batch.size")); + Integer consumerCount = Integer.valueOf(action.getContext().get("ut.consumer.API.count")); + Integer readBatchSize = Integer.valueOf(action.getContext().get("read.batch.size")); + String outputDir = urgencyTriageModel.getOutputDir(); + UrgencyTriageConsumerProcess urgencyTriageConsumerProcess = new UrgencyTriageConsumerProcess(log, aMarker, action); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(urgencyTriageModel.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "Urgency Triage Action for {} has been started", urgencyTriageModel.getName()); + final String insertQuery = "INSERT INTO "+urgencyTriageModel.getOutputTable()+" (created_on, created_user_id, last_updated_on, last_updated_user_id, process_id, group_id, tenant_id, confidence_score, origin_id, paper_no, template_id, model_id, status, stage, message, paper_type, bboxes, root_pipeline_id, model_name,model_version)" + + "values(now(),?,now(),?,?,?,?,?,?,?,?,?,?,?,?,?,?, ?,?,?)"; + final List urls = Optional.ofNullable(urgencyTriageModel.getEndPoint()).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new RuntimeException(e); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + UrgencyTriageOutputTable.class, + UrgencyTriageInputTable.class, + jdbi, log, + new UrgencyTriageInputTable(), urls, action); + + coproProcessor.startProducer(urgencyTriageModel.getQuerySet(), readBatchSize); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, consumerCount, writeBatchSize, urgencyTriageConsumerProcess); + log.info(aMarker, "Urgency Triage has been completed {} ", urgencyTriageModel.getName()); + } catch (Exception t) { + action.getContext().put(urgencyTriageModel.getName() + ".isSuccessful", "false"); + log.error(aMarker, "Error at urgency triage execute method {}", ExceptionUtil.toString(t)); + throw new HandymanException("Error at Urgency triage model execute method ", t, action); + + } + } + + @Override + public boolean executeIf() throws Exception { + return urgencyTriageModel.getCondition(); + } + + +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/UserRegistrationAction.java b/src/main/java/in/handyman/raven/lib/UserRegistrationAction.java new file mode 100644 index 00000000..9bcba4d2 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/UserRegistrationAction.java @@ -0,0 +1,80 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.UserRegistration; +import in.handyman.raven.util.ExceptionUtil; +import in.handyman.raven.util.InstanceUtil; +import okhttp3.*; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "UserRegistration" +) +public class UserRegistrationAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + + private final Logger log; + + private final UserRegistration userRegistration; + + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + private final String appId; + private final String apiSecret; + + public UserRegistrationAction(final ActionExecutionAudit action, final Logger log, + final Object userRegistration) { + this.userRegistration = (UserRegistration) userRegistration; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" UserRegistration:" + this.userRegistration.getName()); + this.URI = action.getContext().get("gatekeeper.url"); + this.appId = action.getContext().get("gatekeeper.appid"); + this.apiSecret = action.getContext().get("gatekeeper.apisecret"); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Registration Action for {} has been started" , userRegistration.getName()); + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + + final ObjectNode objectNode = mapper.createObjectNode(); + objectNode.put("appId", appId); + objectNode.put("apiSecret", apiSecret); + log.info(aMarker, " Input variables id : {}", action.getActionId()); + + Request registerRequest = new Request.Builder().url(URI + "api/v1/register") + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)) + .build(); + try (Response response = httpclient.newCall(registerRequest).execute()) { + if (response.isSuccessful()) { + log.info(aMarker, "User Registered"); + } else + log.info(aMarker, "User Already Exists "); + } catch (Exception e) { + log.error(aMarker, "Error in registering user {} ", ExceptionUtil.toString(e)); + throw new HandymanException("Error in registering user", e, action); + } + log.info(aMarker, "Registration Action for {} has been completed" , userRegistration.getName()); + + } + + @Override + public boolean executeIf() throws Exception { + return userRegistration.getCondition(); + } +} + diff --git a/src/main/java/in/handyman/raven/lib/WordcountAction.java b/src/main/java/in/handyman/raven/lib/WordcountAction.java new file mode 100644 index 00000000..05e2ceb8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/WordcountAction.java @@ -0,0 +1,72 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.adapters.WordCountAdapter; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import in.handyman.raven.lib.model.Wordcount; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "Wordcount" +) +public class WordcountAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final Wordcount wordcount; + + private final Marker aMarker; + AdapterInterface wordCountAdapter; + + + public WordcountAction(final ActionExecutionAudit action, final Logger log, + final Object wordcount) { + this.wordcount = (Wordcount) wordcount; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" Wordcount:" + this.wordcount.getName()); + this.wordCountAdapter = new WordCountAdapter(); + + } + + public int getWordCount(String input, int countLimit, int threshold) { + try { + int wordCount = wordCountAdapter.getThresholdScore(input); + return wordCount <= countLimit ? threshold : 0; + } catch (Exception e) { + throw new HandymanException("Failed to execute", e); + } + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Word Count Action for {} has been started" , wordcount.getName()); + AdapterInterface wordCountAdapter = new WordCountAdapter(); + int wordCount = wordCountAdapter.getThresholdScore(wordcount.getInputValue()); + int confidenceScore = wordCount <= Integer.parseInt(wordcount.getCountLimit()) + ? Integer.parseInt(wordcount.getThresholdValue()) : 0; + action.getContext().put(wordcount.getName().concat(".score"), String.valueOf(confidenceScore)); + log.info(aMarker, "Word Count Action for {} has been completed" , wordcount.getName()); + + } catch (Exception ex) { + action.getContext().put(wordcount.getName().concat(".error"), "true"); + log.error(aMarker, "The Exception occurred ", ex); + throw new HandymanException("Failed to execute", ex, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return wordcount.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/ZeroShotClassifierAction.java b/src/main/java/in/handyman/raven/lib/ZeroShotClassifierAction.java new file mode 100644 index 00000000..cd53c61b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ZeroShotClassifierAction.java @@ -0,0 +1,100 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ZeroShotClassifier; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "ZeroShotClassifier" +) +public class ZeroShotClassifierAction implements IActionExecution { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + private final Logger log; + private final ZeroShotClassifier zeroShotClassifier; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final String URI; + + public ZeroShotClassifierAction(final ActionExecutionAudit action, final Logger log, + final Object zeroShotClassifier) { + this.zeroShotClassifier = (ZeroShotClassifier) zeroShotClassifier; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" ZeroShotClassifier:" + this.zeroShotClassifier.getName()); + this.URI = action.getContext().get("copro.zero-shot-classifier.url"); + + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Zero Short Classifier Action for {} has been started" , zeroShotClassifier.getName()); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + final ObjectNode objectNode = mapper.createObjectNode(); + + objectNode.put("content", zeroShotClassifier.getContent()); + objectNode.set("labels", mapper.readTree(zeroShotClassifier.getCandidateLabels())); + + log.info(aMarker, " Input variables id : {}", action.getActionId()); + Request request = new Request.Builder().url(URI) + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)).build(); + + log.debug(aMarker, "Request has been build with the parameters \n URI : {} \n content : {} \n labels : {} ", URI, zeroShotClassifier.getContent(), zeroShotClassifier.getCandidateLabels()); + String name = zeroShotClassifier.getName() + "_response"; + log.debug(aMarker, "The Request Details: {} ", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + String labelName = zeroShotClassifier.getName() + "_label"; + if (response.isSuccessful()) { + action.getContext().put(name, responseBody); + action.getContext().put(labelName, Optional.ofNullable(mapper.readTree(responseBody).get("attributionValue")).map(JsonNode::asText).map(String::toLowerCase).orElseThrow()); + action.getContext().put(name.concat(".error"), "false"); + log.info(aMarker, "The Successful Response for {} --> {}", name, responseBody); + } else { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), responseBody); + log.error(aMarker, "The Failure Response {} --> {}", name, responseBody); + throw new HandymanException(responseBody); + } + log.info(aMarker, "Zero Short Classifier Action for {} has been completed" , zeroShotClassifier.getName()); + } catch (Exception e) { + action.getContext().put(name.concat(".error"), "true"); + action.getContext().put(name.concat(".errorMessage"), e.getMessage()); + log.error(aMarker, "The Exception occurred {}", ExceptionUtil.toString(e)); + throw new HandymanException("Failed to execute", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return zeroShotClassifier.getCondition(); + } + +} diff --git a/src/main/java/in/handyman/raven/lib/ZeroShotClassifierPaperFilterAction.java b/src/main/java/in/handyman/raven/lib/ZeroShotClassifierPaperFilterAction.java new file mode 100644 index 00000000..7c124372 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ZeroShotClassifierPaperFilterAction.java @@ -0,0 +1,97 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ZeroShotClassifierPaperFilter; +import in.handyman.raven.lib.model.zeroshotclassifier.ZeroShotClassifierInputTable; +import in.handyman.raven.lib.model.zeroshotclassifier.ZeroShotClassifierOutputTable; +import in.handyman.raven.lib.model.zeroshotclassifier.ZeroShotConsumerProcess; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Types; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.stream.Collectors; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "ZeroShotClassifierPaperFilter" +) +public class ZeroShotClassifierPaperFilterAction implements IActionExecution { + public static final String SCHEMA_NAME = "paper"; + public static final String OUTPUT_TABLE_NAME = "zero_shot_classifier_filtering_result_"; + public static final String INSERT_INTO_COLUMNS = "origin_id,group_id,paper_no,synonym,confidence_score,truth_entity,status,stage,message, created_on, root_pipeline_id,model_name,model_version,tenant_id"; + public static final String INSERT_INTO = "INSERT INTO"; + public static final String INSERT_INTO_VALUES = "?,?,?,?,?,?,?,?,?,now() ,?,?,?,?"; + public final ActionExecutionAudit action; + + public final Logger log; + public final ZeroShotClassifierPaperFilter zeroShotClassifierPaperFilter; + + public final Marker aMarker; + + public ZeroShotClassifierPaperFilterAction(final ActionExecutionAudit action, final Logger log, + final Object zeroShotClassifierPaperFilter) { + this.zeroShotClassifierPaperFilter = (ZeroShotClassifierPaperFilter) zeroShotClassifierPaperFilter; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" ZeroShotClassifierPaperFilter:" + this.zeroShotClassifierPaperFilter.getName()); + } + + @Override + public void execute() throws Exception { + try { + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(zeroShotClassifierPaperFilter.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + log.info(aMarker, "Phrase match paper filter Action for {} has been started", zeroShotClassifierPaperFilter.getName()); + final String processId = Optional.ofNullable(zeroShotClassifierPaperFilter.getProcessID()).map(String::valueOf).orElse(null); + final String insertQuery = INSERT_INTO + " " + SCHEMA_NAME + "." + OUTPUT_TABLE_NAME + processId + "(" + INSERT_INTO_COLUMNS + ") " + + " VALUES(" + INSERT_INTO_VALUES + ")"; + final List urls = Optional.ofNullable(zeroShotClassifierPaperFilter.getEndPoint()).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL {}", s1, e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + ZeroShotClassifierOutputTable.class, + ZeroShotClassifierInputTable.class, + jdbi, log, + new ZeroShotClassifierInputTable(), urls, action); + coproProcessor.startProducer(zeroShotClassifierPaperFilter.getQuerySet(), Integer.parseInt(zeroShotClassifierPaperFilter.getReadBatchSize())); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.parseInt(zeroShotClassifierPaperFilter.getThreadCount()), + Integer.parseInt(zeroShotClassifierPaperFilter.getWriteBatchSize()), + new ZeroShotConsumerProcess(log, aMarker, action)); + log.info(aMarker, " Zero shot classifier has been completed {} ", zeroShotClassifierPaperFilter.getName()); + + } catch (Exception e) { + log.error(aMarker, "Error in zero shot paper filter action", e); + throw new HandymanException("Error in zero shot paper filter action", e, action); + } + } + + @Override + public boolean executeIf() throws Exception { + return zeroShotClassifierPaperFilter.getCondition(); + } +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/ZipBatchAction.java b/src/main/java/in/handyman/raven/lib/ZipBatchAction.java new file mode 100644 index 00000000..d7dcce4e --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ZipBatchAction.java @@ -0,0 +1,168 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ZipBatch; +import in.handyman.raven.util.ExceptionUtil; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "ZipBatch" +) +public class ZipBatchAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final ZipBatch zipBatch; + + private final Marker aMarker; + private final SimpleDateFormat simpleDateTimeFormat = new SimpleDateFormat("MM_dd_yyyy_HH_mm_s"); + + + public ZipBatchAction(final ActionExecutionAudit action, final Logger log, + final Object zipBatch) { + this.zipBatch = (ZipBatch) zipBatch; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" ZipBatch:" + this.zipBatch.getName()); + } + + @Override + public void execute() throws Exception { + try { + log.info(aMarker, "Zip Batch Action for {} has been started", zipBatch.getName()); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(zipBatch.getResourceConn()); + List zipFilePathList = jdbi.withHandle(handle -> + handle.createQuery("select zip_file_path from outbound.outbound_zip_file_details where group_id = '" + zipBatch.getGroupId() + "' ") + .mapTo(String.class) + .collect(Collectors.toList())); + String outputDirPath = zipBatch.getOutputDir(); + Date currentDate = new Date(); + File outputDirFile = new File(outputDirPath); + if (outputDirFile.exists()) { + String zipBatchFolderPath = outputDirPath + File.separator + "ZipBatch" + File.separator + simpleDateTimeFormat.format(currentDate); + createDirectory(zipBatchFolderPath); + File zipBatchFolderFile = new File(zipBatchFolderPath); + zipFilePathList.forEach(zipFilePath -> { + File zipFile = new File(zipFilePath); + try { + log.info("moving zip file {} to folder path {}", zipFile.getName(), zipBatchFolderFile.toPath()); + Path zipPath = Path.of(zipFile.getPath()); + Files.copy(zipPath, zipBatchFolderFile.toPath().resolve(zipFile.getName())); + } catch (IOException e) { + log.error("Failed to copy Zip file"); + throw new HandymanException("Failed to copy zip file", e, action); + } + }); + + if (zipBatchFolderFile.listFiles() == null || Objects.requireNonNull(zipBatchFolderFile.listFiles()).length == 0) { + log.info(aMarker, "<-------Folder is Empty------->"); + } else { + FileOutputStream fos = new FileOutputStream(zipBatchFolderPath + ".zip"); + ZipOutputStream zos = new ZipOutputStream(fos); + + addFolderToZip(String.valueOf(zipBatchFolderFile.toPath()), zos); + + zos.close(); + fos.close(); + } + log.info(aMarker, "<------- Source folder deleted------->" + deleteFolder(zipBatchFolderFile)); + } else { + log.error("target directory path {} not found", zipBatch.getOutputDir()); + throw new HandymanException("target directory path not found"); + } + log.info(aMarker, "Zip Batch Action for {} has been completed", zipBatch.getName()); + } catch (Exception e) { + log.error(aMarker, "Zip Batch Action for {} has failed", zipBatch.getName()); + throw new HandymanException("Zip Batch Action has failed", e, action); + } + + } + + private static void addFolderToZip(String folderPath, ZipOutputStream zos) { + try { + File folder = new File(folderPath); + File[] files = folder.listFiles(); + + if (files != null) { + for (File file : files) { + if (file.isDirectory()) { + addFolderToZip(file.getAbsolutePath(), zos); + } else { + byte[] buffer = new byte[1024]; + FileInputStream fis = new FileInputStream(file); + zos.putNextEntry(new ZipEntry(file.getName())); + int length; + while ((length = fis.read(buffer)) > 0) { + zos.write(buffer, 0, length); + } + zos.closeEntry(); + fis.close(); + } + } + } + } catch (Exception e) { + throw new HandymanException("Error in adding folder to zip", e); + } + + } + + private void createDirectory(String folderPath) { + try { + Path filepath = Paths.get(folderPath); + if (!filepath.toFile().exists()) { + Files.createDirectories(Paths.get(filepath.toUri())); + log.info("{} Directory Created", filepath); + } else { + log.info("{} Directory already exists", filepath); + } + } catch (IOException e) { + log.error(aMarker, "Error in creating the directory {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in creating directory", e, action); + } + } + + private boolean deleteFolder(File folder) { + if (folder.isDirectory()) { + // recursively delete all contents of the folder + File[] files = folder.listFiles(); + if (files != null) { + for (File file : files) { + deleteFolder(file); + } + } + } + log.info("source batch folder {} deleted", folder.toPath()); + return folder.delete(); + } + + @Override + public boolean executeIf() throws Exception { + return zipBatch.getCondition(); + } +} diff --git a/src/main/java/in/handyman/raven/lib/ZipContentListAction.java b/src/main/java/in/handyman/raven/lib/ZipContentListAction.java new file mode 100644 index 00000000..04240ab3 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ZipContentListAction.java @@ -0,0 +1,163 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ZipContentList; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.commons.io.FilenameUtils; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; +import java.util.zip.ZipInputStream; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "ZipContentList" +) +public class ZipContentListAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final ZipContentList zipContentList; + + private final Marker aMarker; + + public ZipContentListAction(final ActionExecutionAudit action, final Logger log, + final Object zipContentList) { + this.zipContentList = (ZipContentList) zipContentList; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" ZipContentList:" + this.zipContentList.getName()); + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "Zip File List Action for {} has been started" , zipContentList.getName()); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(zipContentList.getResourceConn()); + String zipFilePath = zipContentList.getZipFilePath(); + File zipFile = new File(zipFilePath); + + + try (ZipFile zip = new ZipFile(zipFile)) { + var fileContent = zip.stream().filter(zipEntry -> !zipEntry.isDirectory()).collect(Collectors.toList()); + AtomicInteger i = new AtomicInteger(1); + fileContent.forEach(zipEntry -> { + + File contentFile = new File(zipFile.getParent() + zipEntry.getName()); + String contentFileName = FilenameUtils.removeExtension(contentFile.getName()); + long fileSize = zipEntry.getSize() / 1024; + String fileId = String.valueOf(i.getAndIncrement()); + LocalDateTime createdOn = LocalDateTime.ofInstant( + Instant.ofEpochMilli(zipEntry.getTime()), + ZoneId.systemDefault()); + String fileExtension = FilenameUtils.getExtension(zipEntry.getName()); + String fileChecksum; + try { + fileChecksum = getSHA256Checksum(zipFilePath, zipEntry.getName()); + } catch (IOException | NoSuchAlgorithmException e) { + log.error(aMarker, "Error in generating checksum for the file {} with the exception {}", contentFile.toPath(), ExceptionUtil.toString(e)); + throw new HandymanException("Error in generating checksum for the file", e, action); + } + + ZipContentListDetail zipContentListDetail = ZipContentListDetail.builder() + .fileId(fileId) + .fileName(contentFileName) + .fileSize(fileSize) + .createdOn(createdOn) + .fileExtension(fileExtension) + .originId(zipContentList.getOriginId()) + .documentId(zipContentList.getDocumentId()) + .fileChecksum(fileChecksum) + .build(); + jdbi.useTransaction(handle -> { + handle.createUpdate("INSERT INTO eoc_response.zip_file_content_list (document_id, file_check_sum, file_extension, file_id, file_name," + + "file_size, origin_id, created_on) " + + "VALUES( :documentId, :fileChecksum, :fileExtension, :fileId, :fileName, :fileSize, :originId, :createdOn);") + .bindBean(zipContentListDetail).execute(); + log.debug(aMarker, "inserted {} into eoc response details" , zipContentListDetail); + }); + }); + } catch (Exception e) { + log.error(aMarker, "Error creating zip file with exception {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error creating zip file", e, action); + } + log.info(aMarker, "Zip File List Action for {} has been completed" , zipContentList.getName()); + + } + + @Override + public boolean executeIf() throws Exception { + return zipContentList.getCondition(); + } + + public static String getSHA256Checksum(String zipFilePath, String entryName) + throws IOException, NoSuchAlgorithmException { + MessageDigest md = MessageDigest.getInstance("SHA-256"); + try (ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(zipFilePath)))) { + ZipEntry entry; + while ((entry = zis.getNextEntry()) != null) { + if (entry.getName().equals(entryName)) { + byte[] buffer = new byte[4096]; + int count; + while ((count = zis.read(buffer)) != -1) { + md.update(buffer, 0, count); + } + break; + } + } + } + return bytesToHex(md.digest()).toLowerCase(); + } + + private static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray(); + + private static String bytesToHex(byte[] bytes) { + char[] hexChars = new char[bytes.length * 2]; + for (int j = 0; j < bytes.length; j++) { + int v = bytes[j] & 0xFF; + hexChars[j * 2] = HEX_ARRAY[v >>> 4]; + hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F]; + } + return new String(hexChars); + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class ZipContentListDetail { + private String documentId; + private String fileChecksum; + private String fileExtension; + private String fileId; + private String fileName; + private Long fileSize; + private String originId; + private LocalDateTime createdOn; + } +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/ZipFileCreationOutboundAction.java b/src/main/java/in/handyman/raven/lib/ZipFileCreationOutboundAction.java new file mode 100644 index 00000000..cf4962d8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/ZipFileCreationOutboundAction.java @@ -0,0 +1,371 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectWriter; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ZipFileCreationOutbound; +import in.handyman.raven.lib.model.outbound.OutboundInputTableEntity; +import in.handyman.raven.lib.model.outbound.OutboundOutputTableEntity; +import in.handyman.raven.util.CommonQueryUtil; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.result.ResultIterable; +import org.jdbi.v3.core.statement.Query; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "ZipFileCreationOutbound" +) +public class ZipFileCreationOutboundAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final ZipFileCreationOutbound zipFileCreationOutbound; + + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + + private final String OUTBOUND_FILES = "outbound-files"; + + public ZipFileCreationOutboundAction(final ActionExecutionAudit action, final Logger log, + final Object zipFileCreationOutbound) { + this.zipFileCreationOutbound = (ZipFileCreationOutbound) zipFileCreationOutbound; + this.action = action; + this.log = log; + this.aMarker = MarkerFactory.getMarker(" ZipFileCreationOutbound:" + this.zipFileCreationOutbound.getName()); + } + + @Override + public void execute() throws Exception { + + log.info(aMarker, "Asset Info Action for {} has been started", zipFileCreationOutbound.getName()); + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(zipFileCreationOutbound.getResourceConn()); + final List tableInfos = new ArrayList<>(); + + String sourceOutputFolderPath = zipFileCreationOutbound.getOutputDir(); + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(zipFileCreationOutbound.getQuerySet()); + AtomicInteger i = new AtomicInteger(0); + formattedQuery.forEach(sqlToExecute -> { + log.info(aMarker, "executing query {} from index {}", sqlToExecute, i.getAndIncrement()); + Query query = handle.createQuery(sqlToExecute); + ResultIterable resultIterable = query.mapToBean(OutboundInputTableEntity.class); + List detailList = resultIterable.stream().collect(Collectors.toList()); + tableInfos.addAll(detailList); + log.info(aMarker, "executed query from index {}", i.get()); + }); + }); + + List outboundOutputTableEntities = new ArrayList<>(); + + tableInfos.forEach(outboundInputTableEntity -> { + + + String tenantPathStr = sourceOutputFolderPath + File.separator + outboundInputTableEntity.getTenantId() + File.separator; + String sourcePdfName = outboundInputTableEntity.getFileName(); + + + final String originFolderPath = tenantPathStr + OUTBOUND_FILES + File.separator + outboundInputTableEntity.getOriginId() + File.separator + sourcePdfName + File.separator; + + final String originKvpFolderPath = tenantPathStr + File.separator + OUTBOUND_FILES + File.separator + outboundInputTableEntity.getOriginId() + File.separator + sourcePdfName + File.separator + "Kvp" + File.separator; + final String originTableFolderPath = tenantPathStr + File.separator + OUTBOUND_FILES + File.separator + outboundInputTableEntity.getOriginId() + File.separator + sourcePdfName + File.separator + "Table" + File.separator; + final String originZipPath = tenantPathStr + File.separator + "zip-files" + File.separator + outboundInputTableEntity.getOriginId() + File.separator + sourcePdfName + File.separator; + String sourceCleanedPdfPath = outboundInputTableEntity.getCleanedPdfPath(); + String sourceOriginPdfPath = outboundInputTableEntity.getOriginPdfPath(); + + String sourceJsonString = outboundInputTableEntity.getProductJson(); + String sourceKvpJsonString = outboundInputTableEntity.getKvpResponse(); + String sourceTableJsonString = outboundInputTableEntity.getTableResponse(); + String fileNameStr = outboundInputTableEntity.getFileName(); + + createFolder(originFolderPath); + createFolder(originKvpFolderPath); + createFolder(originZipPath); + + createJsonFile(sourceJsonString, originFolderPath, sourcePdfName); + createJsonFile(sourceKvpJsonString, originKvpFolderPath, sourcePdfName + "_kvp"); + + moveFileIntoOrigin(sourceCleanedPdfPath, originFolderPath); + moveFileIntoOrigin(sourceOriginPdfPath, originFolderPath); + + List truthPaperList = getTruthPaperList(outboundInputTableEntity.getOriginId(), jdbi); + truthPaperList.stream().filter(Objects::nonNull).forEach(truthPaperList1 -> { + createFolder(originTableFolderPath); + String originPaperTablePath = originTableFolderPath + File.separator + truthPaperList1.getPaperNo(); + createFolder(originPaperTablePath); + + createJsonFile(truthPaperList1.getTableResponse(), originPaperTablePath, sourcePdfName + "_" + truthPaperList1.getPaperNo() + "_table"); + + moveFileIntoOrigin(truthPaperList1.getFilePath(), originPaperTablePath); + String processedJsonNodePath = truthPaperList1.getProcessedFilePath(); + String cropppedImagePath = truthPaperList1.getCroppedimage(); + //move table csv file into the output zip folder + moveFileIntoOrigin(processedJsonNodePath, originPaperTablePath); + moveFileIntoOrigin(cropppedImagePath, originPaperTablePath); + + + }); + try { + String outboundZipFilePath = createZipFile(originFolderPath, originZipPath, sourcePdfName); + + OutboundOutputTableEntity outboundOutputTableEntity = OutboundOutputTableEntity.builder() + .originId(outboundInputTableEntity.getOriginId()) + .groupId(outboundInputTableEntity.getGroupId()) + .rootPipelineId(outboundInputTableEntity.getRootPipelineId()) + .processId(outboundInputTableEntity.getProcessId()) + .cleanedPdfPath(outboundInputTableEntity.getCleanedPdfPath()) + .originPdfPath(outboundInputTableEntity.getOriginPdfPath()) + .productJson(outboundInputTableEntity.getProductJson()) + .kvpResponse(outboundInputTableEntity.getKvpResponse()) + .tableResponse(outboundInputTableEntity.getTableResponse()) + .tenantId(outboundInputTableEntity.getTenantId()) + .zipFilePath(outboundZipFilePath) + .alchemyOriginId(outboundInputTableEntity.getAlchemyOriginId()) + .fileName(fileNameStr) + .stage("PRODUCT_OUTBOUND") + .status("COMPLETED") + .message("completed for the outbound zip file creation ") + .build(); + outboundOutputTableEntities.add(outboundOutputTableEntity); + + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + consumerBatch(jdbi, outboundOutputTableEntities); + + }); + + + } + + + @Override + public boolean executeIf() throws Exception { + return zipFileCreationOutbound.getCondition(); + } + + public void consumerBatch(final Jdbi jdbi, List resultQueue) { + try { + resultQueue.forEach(insert -> { + jdbi.useTransaction(handle -> { + try { + handle.createUpdate("INSERT INTO " + zipFileCreationOutbound.getResultTable() + "(origin_id, root_pipeline_id,group_id,process_id,cleaned_pdf_path,origin_pdf_path,product_json,kvp_response,table_response,tenant_id,zip_file_path,status,stage,message,file_name,alchemy_origin_id)" + + "VALUES(:originId,:rootPipelineId,:groupId,:processId,:cleanedPdfPath,:originPdfPath,:productJson,:kvpResponse,:tableResponse,:tenantId,:zipFilePath,:status,:stage,:message,:fileName,:alchemyOriginId);") + .bindBean(insert).execute(); + log.info(aMarker, "inserted {} into outbound zip file details", insert); + } catch (Throwable t) { + log.error(aMarker, "error inserting result into outbound file details {}", resultQueue, t); + } + + }); + } + ); + } catch (Exception e) { + log.error(aMarker, "error inserting result {}", resultQueue, e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("error inserting result" + resultQueue, handymanException, action); + } + } + + + public void moveFileIntoOrigin(String inputFilePath, String outputDirectory) { + Path sourcePath = Path.of(inputFilePath); + + File sourceFile = new File(sourcePath.toString()); + // Specify the target directory path + Path targetDirectory = Path.of(outputDirectory); + + if (!Files.exists(targetDirectory)) { + createFolder(targetDirectory.toString()); + } + + boolean isFileExists = sourceFile.exists(); + if (isFileExists) { + try { + // Use Files.move() to move the file to the target directory + Path targetPath = targetDirectory.resolve(sourcePath.getFileName()); + Files.move(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING); + + log.info("File moved from {} to {}", inputFilePath, outputDirectory); + } catch (IOException e) { + log.error("File moved failed for {} to {}", inputFilePath, outputDirectory); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("failed in moving the file", handymanException, action); + throw new HandymanException("Error in execute method for ner adapter", e, action); + } + } else { + log.info("File not found from {} to {}", inputFilePath, outputDirectory); + } + } + + public void createFolder(String directoryPath) { + + File directoryFile = new File(directoryPath); + + if (!directoryFile.exists()) { + if (directoryFile.mkdirs()) { + log.info("Origin Directory created {}", directoryPath); + + } else { + log.info("Origin Directory creation failed {}", directoryPath); + } + } else { + log.info("Origin Directory already present {}", directoryPath); + } + + } + + public String createZipFile(String inputFolder, String outputZipPath, String fileName) throws FileNotFoundException { + + String zipFileAbsolutePath; + try { + + zipFileAbsolutePath = outputZipPath + File.separator + fileName + ".zip"; + FileOutputStream fos = new FileOutputStream(zipFileAbsolutePath); + ZipOutputStream zipOut = new ZipOutputStream(fos); + File fileToZip = new File(inputFolder); + zipFile(fileToZip, fileToZip.getName(), zipOut); + zipOut.close(); + fos.close(); + } catch (Exception e) { + log.error(aMarker, "Error in execute method in create zip action {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in execute method in create zip action", e, action); + } + File file = new File(zipFileAbsolutePath); + return file.getAbsolutePath(); + } + + public void zipFile(File fileToZip, String fileName, ZipOutputStream zipOut) { + try { + if (fileToZip.isHidden()) { + return; + } + if (fileToZip.isDirectory()) { + if (fileName.endsWith("/")) { + zipOut.putNextEntry(new ZipEntry(fileName)); + zipOut.closeEntry(); + } else { + zipOut.putNextEntry(new ZipEntry(fileName + "/")); + zipOut.closeEntry(); + } + File[] children = fileToZip.listFiles(); + if (children != null && children.length > 0) { + for (File childFile : children) { + zipFile(childFile, fileName + "/" + childFile.getName(), zipOut); + } + return; + } + } + FileInputStream fis = new FileInputStream(fileToZip); + ZipEntry zipEntry = new ZipEntry(fileName); + zipOut.putNextEntry(zipEntry); + byte[] bytes = new byte[1024]; + int length; + while ((length = fis.read(bytes)) >= 0) { + zipOut.write(bytes, 0, length); + } + fis.close(); + log.info(aMarker, "Created zip {} and saved in the {} directory", fileToZip.getName(), fileToZip.getAbsolutePath()); + } catch (Exception e) { + log.error(aMarker, "Error in zip file generation {}", ExceptionUtil.toString(e)); + throw new HandymanException("Error in zip file generation", e, action); + } + + } + + public void createJsonFile(String jsonString, String jsonPath, String jsonName) { + + String filePath = jsonPath + File.separator + jsonName + ".json"; + + Path path = Paths.get(jsonPath); + if (!Files.exists(path)) { + createFolder(path.toString()); + } + + try (FileWriter fileWriter = new FileWriter(filePath)) { + if (jsonString != null) { + ObjectMapper objectMapper = new ObjectMapper(); + ObjectWriter writer = objectMapper.writerWithDefaultPrettyPrinter(); + String formattedJson = writer.writeValueAsString(objectMapper.readTree(jsonString)); + fileWriter.write(formattedJson); + + } else { + log.info("No json content present in the response {}", jsonString); + } + + log.info("json response coverted to json file {}", jsonString); + } catch (IOException e) { + log.info("json file creation failed {}", filePath); + + } + + } + + public List getTruthPaperList(String originId, Jdbi jdbi) { + String querySet = "select a.file_path,sot.origin_id,sot.paper_no,ter.processed_file_path,atr.table_response ,ter.croppedimage " + + "from info.source_of_truth sot" + + " join info.asset a on sot.preprocessed_file_id =a.file_id " + + "join alchemy_response.alchemy_table_response atr on atr.pipeline_origin_id=sot.origin_id and atr.paper_no=sot.paper_no " + + "join table_extraction.table_extraction_result ter on ter.origin_id =sot.origin_id and ter.paper_no =sot.paper_no " + + "where sot.origin_id='" + originId + "';"; + List tableInfos = new ArrayList<>(); + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(querySet); + AtomicInteger i = new AtomicInteger(0); + formattedQuery.forEach(sqlToExecute -> { + log.info(aMarker, "executing query {} from index {}", sqlToExecute, i.getAndIncrement()); + Query query = handle.createQuery(sqlToExecute); + ResultIterable resultIterable = query.mapToBean(TruthPaperList.class); + List detailList = resultIterable.stream().collect(Collectors.toList()); + tableInfos.addAll(detailList); + log.info(aMarker, "executed query from index {}", i.get()); + }); + }); + return tableInfos; + + } + + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class TruthPaperList { + + private String paperNo; + private String filePath; + private String originId; + private String processedFilePath; + private String tableResponse; + private String croppedimage; + } +} diff --git a/src/main/java/in/handyman/raven/lib/adapters/AlphaAdapter.java b/src/main/java/in/handyman/raven/lib/adapters/AlphaAdapter.java new file mode 100644 index 00000000..06c9afd6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/adapters/AlphaAdapter.java @@ -0,0 +1,47 @@ +package in.handyman.raven.lib.adapters; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import org.apache.commons.lang3.StringUtils; + +public class AlphaAdapter implements AdapterInterface { + @Override + public boolean getValidationModel(String input, String allowedCharacters, ActionExecutionAudit audit) throws Exception { + input = validateSpecialCharacters(allowedCharacters, input); + return StringUtils.isAlpha(input); + } + + String validateSpecialCharacters(String specialCharacters, String input) { + return AlphaAdapter.replaceSplChars(specialCharacters, input); + } + + protected static String replaceSplChars(final String specialCharacters, String input) { + /*final char targetChar = Character.MI + final Set inputCharsSet = input.chars().mapToObj(c -> (char) c).collect(Collectors.toSet()); + final Set specialCharactersSet = specialCharacters.chars().mapToObj(c -> (char) c).collect(Collectors.toSet()); + final boolean retainAll = inputCharsSet.retainAll(specialCharactersSet); + if (retainAll) { + for (final Character chars : inputCharsSet) { + input = input.replace(chars, targetChar); + } + }*/ + if (specialCharacters != null) { + for (int i = 0; i < specialCharacters.length(); i++) { + if (input.contains(Character.toString(specialCharacters.charAt(i)))) { + input = input.replace(Character.toString(specialCharacters.charAt(i)), ""); + } + } + } + return input; + } + + @Override + public int getThresholdScore(String sentence) throws Exception { + return 0; + } + + @Override + public boolean getDateValidationModel(String sentence, int comparableYear, String[] dateFormats) throws Exception { + return false; + } +} diff --git a/src/main/java/in/handyman/raven/lib/adapters/AlphaNumericAdapter.java b/src/main/java/in/handyman/raven/lib/adapters/AlphaNumericAdapter.java new file mode 100644 index 00000000..39b82489 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/adapters/AlphaNumericAdapter.java @@ -0,0 +1,27 @@ +package in.handyman.raven.lib.adapters; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import org.apache.commons.lang3.StringUtils; + +public class AlphaNumericAdapter implements AdapterInterface { + @Override + public boolean getValidationModel(String input, String allowedCharacters, ActionExecutionAudit audit) throws Exception { + input = validateSpecialCharacters(allowedCharacters, input); + return StringUtils.isAlphanumeric(input); + } + + String validateSpecialCharacters(String specialCharacters, String input) { + return AlphaAdapter.replaceSplChars(specialCharacters,input); + } + + @Override + public int getThresholdScore(String sentence) throws Exception { + return 0; + } + + @Override + public boolean getDateValidationModel(String sentence, int comparableYear, String[] dateFormats) throws Exception { + return false; + } +} diff --git a/src/main/java/in/handyman/raven/lib/adapters/CharacterCountAdapter.java b/src/main/java/in/handyman/raven/lib/adapters/CharacterCountAdapter.java new file mode 100644 index 00000000..fac761c7 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/adapters/CharacterCountAdapter.java @@ -0,0 +1,24 @@ +package in.handyman.raven.lib.adapters; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.interfaces.AdapterInterface; + +public class CharacterCountAdapter implements AdapterInterface { + @Override + public int getThresholdScore(String sentence) throws Exception { + if (sentence == null || sentence.isEmpty()) { + return 0; + } + return sentence.length(); + } + + @Override + public boolean getValidationModel(String sentence, String requiredFeature, ActionExecutionAudit audit) throws Exception { + return false; + } + + @Override + public boolean getDateValidationModel(String sentence, int comparableYear, String[] dateFormats) throws Exception { + return false; + } +} diff --git a/src/main/java/in/handyman/raven/lib/adapters/DateAdapter.java b/src/main/java/in/handyman/raven/lib/adapters/DateAdapter.java new file mode 100644 index 00000000..eb8f0827 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/adapters/DateAdapter.java @@ -0,0 +1,58 @@ +package in.handyman.raven.lib.adapters; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.interfaces.AdapterInterface; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +public class DateAdapter implements AdapterInterface { + + @Override + public boolean getDateValidationModel(String dateValue, int comparableYear, String[] dateFormats) throws Exception { + + if (dateValue.trim().equals("")) { + return false; + } + + for (String format : dateFormats) { + try { + SimpleDateFormat dateFormat = new SimpleDateFormat(format); + dateFormat.setLenient(false); + Date date = dateFormat.parse(dateValue); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int validateYear = calendar.get(Calendar.YEAR); + int currentYear = Integer.parseInt(new SimpleDateFormat("yy").format(new Date())); + boolean yearValidation; + if (Integer.toString(validateYear).length() >= 4) { + yearValidation = validateYear < comparableYear; + } else if (validateYear >= 00 && validateYear <= currentYear) { + String temp = "20" + validateYear; + yearValidation = Integer.parseInt(temp) < comparableYear; + } else { + String temp = "19" + validateYear; + yearValidation = Integer.parseInt(temp) < comparableYear; + } + return yearValidation; + } catch (ParseException ex) { + //throw new HandymanException("Failed to execute", ex); + } + } + return false; + + } + + @Override + public boolean getValidationModel(String sentence, String requiredFeature, ActionExecutionAudit audit) throws Exception { + return false; + } + + @Override + public int getThresholdScore(String sentence) throws Exception { + return 0; + } + +} diff --git a/src/main/java/in/handyman/raven/lib/adapters/NameAdapter.java b/src/main/java/in/handyman/raven/lib/adapters/NameAdapter.java new file mode 100644 index 00000000..802db93a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/adapters/NameAdapter.java @@ -0,0 +1,144 @@ +package in.handyman.raven.lib.adapters; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import in.handyman.raven.lib.model.neradaptors.NerAdapterDataItem; +import in.handyman.raven.lib.model.neradaptors.NerAdapterPayload; +import in.handyman.raven.lib.model.neradaptors.NerAdapterResponse; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; + +import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +public class NameAdapter implements AdapterInterface { + + + private boolean isPredictedLabel= false; + public static final String TRITON_REQUEST_ACTIVATOR = "triton.request.activator"; + @Override + public boolean getValidationModel(String sentence, String uri, ActionExecutionAudit audit) throws Exception { + + try{ + + + MediaType mediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + String[] patientName = new String[]{sentence}; + final String trinityProcessName="VQA_VALUATION"; + final String tritonRequestActivator=audit.getContext().get(TRITON_REQUEST_ACTIVATOR); + OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES).build(); + + Long rootPipelineId = audit.getRootPipelineId(); + Long actionId = audit.getActionId(); + String process = "NER"; + ObjectMapper objectMapper = new ObjectMapper(); + + //payload + NerAdapterPayload nerAdapterPayload = new NerAdapterPayload(); + nerAdapterPayload.setRootPipelineId(rootPipelineId); + nerAdapterPayload.setProcess(process); + nerAdapterPayload.setActionId(actionId); + nerAdapterPayload.setInputString(List.of(patientName)); + + String jsonInputRequest = objectMapper.writeValueAsString(nerAdapterPayload); + + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("NER START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + TritonInputRequest tritonInputRequest = new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(uri) + .post(RequestBody.create(jsonInputRequest, mediaTypeJSON)).build(); + extractedCoproOutput(httpclient, objectMapper,request); + } else { + Request request = new Request.Builder().url(uri) + .post(RequestBody.create(jsonRequest, mediaTypeJSON)).build(); + extractedTritonOutput(httpclient, objectMapper,request); + } + + + + } catch (Exception ex) { + throw new HandymanException("Failed to execute", ex); + } + return isPredictedLabel; + } + + private void extractedTritonOutput(OkHttpClient httpclient, ObjectMapper objectMapper,Request request) throws IOException { + try (Response response = httpclient.newCall(request).execute()) { + + if(response.isSuccessful()){ + NerAdapterResponse nerAdapterResponse= objectMapper.readValue(response.body().string(), NerAdapterResponse.class); + nerAdapterResponse.getOutputs().forEach(nerAdapterOutput -> { + nerAdapterOutput.getData().forEach(nerAdapterDataItem -> { + try { + NerAdapterDataItem nerAdapterDataItem1= objectMapper.readValue(nerAdapterDataItem, new TypeReference<>() { + }); + nerAdapterDataItem1.getPrediction().forEach(nerAdapterPrediction -> { + isPredictedLabel=nerAdapterPrediction.isPredictedLabel(); + }); + + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + }); + }); + } + } + } + + private void extractedCoproOutput(OkHttpClient httpclient, ObjectMapper objectMapper,Request request) throws IOException { + try (Response response = httpclient.newCall(request).execute()) { + + if(response.isSuccessful()){ + try { + if(response.body() != null){ + NerAdapterDataItem nerAdapterDataItem1= objectMapper.readValue(response.body().string(), new TypeReference<>() { + }); + nerAdapterDataItem1.getPrediction().forEach(nerAdapterPrediction -> { + isPredictedLabel=nerAdapterPrediction.isPredictedLabel(); + }); + } + + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + + } + } + + @Override + public boolean getDateValidationModel(String sentence, int comparableYear, String[] dateFormats) throws Exception { + return false; + } + + @Override + public int getThresholdScore(String sentence) throws Exception { + return 0; + } +} diff --git a/src/main/java/in/handyman/raven/lib/adapters/NumericAdapter.java b/src/main/java/in/handyman/raven/lib/adapters/NumericAdapter.java new file mode 100644 index 00000000..33ffcffe --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/adapters/NumericAdapter.java @@ -0,0 +1,27 @@ +package in.handyman.raven.lib.adapters; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import org.apache.commons.lang3.StringUtils; + +public class NumericAdapter implements AdapterInterface { + @Override + public boolean getValidationModel(String input, String allowedCharacters, ActionExecutionAudit audit) throws Exception { + input = validateSpecialCharacters(allowedCharacters, input); + return StringUtils.isNumeric(input); + } + + String validateSpecialCharacters(String specialCharacters, String input) { + return AlphaAdapter.replaceSplChars(specialCharacters,input); + } + + @Override + public int getThresholdScore(String sentence) throws Exception { + return 0; + } + + @Override + public boolean getDateValidationModel(String sentence, int comparableYear, String[] dateFormats) throws Exception { + return false; + } +} diff --git a/src/main/java/in/handyman/raven/lib/adapters/WordCountAdapter.java b/src/main/java/in/handyman/raven/lib/adapters/WordCountAdapter.java new file mode 100644 index 00000000..bac00a03 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/adapters/WordCountAdapter.java @@ -0,0 +1,27 @@ +package in.handyman.raven.lib.adapters; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.interfaces.AdapterInterface; + +import java.util.StringTokenizer; + +public class WordCountAdapter implements AdapterInterface { + @Override + public int getThresholdScore(String sentence) throws Exception { + if (sentence == null || sentence.isEmpty()) { + return 0; + } + StringTokenizer tokens = new StringTokenizer(sentence); + return tokens.countTokens(); + } + + @Override + public boolean getValidationModel(String sentence, String requiredFeature, ActionExecutionAudit audit) throws Exception { + return false; + } + + @Override + public boolean getDateValidationModel(String sentence, int comparableYear, String[] dateFormats) throws Exception { + return false; + } +} diff --git a/src/main/java/in/handyman/raven/lib/agadia/adapters/DateOfBirthAdapter.java b/src/main/java/in/handyman/raven/lib/agadia/adapters/DateOfBirthAdapter.java new file mode 100644 index 00000000..166f6275 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/agadia/adapters/DateOfBirthAdapter.java @@ -0,0 +1,40 @@ +package in.handyman.raven.lib.agadia.adapters; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.adapters.CharacterCountAdapter; +import in.handyman.raven.lib.adapters.DateAdapter; +import in.handyman.raven.lib.adapters.WordCountAdapter; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import in.handyman.raven.lib.interfaces.ScalarEvaluationInterface; +import in.handyman.raven.lib.model.AgadiaAdapter; + +public class DateOfBirthAdapter implements ScalarEvaluationInterface { + AdapterInterface wordCountAdapter = new WordCountAdapter(); + AdapterInterface charCountAdapter = new CharacterCountAdapter(); + AdapterInterface dobValidatorAdapter = new DateAdapter(); + + @Override + public int getConfidenceScore(String dob, AgadiaAdapter adapter, ActionExecutionAudit action) throws Exception { + int confidenceScore = 0; + //Config parameter + int wcLimit = adapter.getWordCountLimit(); + int wcThresold = adapter.getWordCountThreshold(); + int charLimit = adapter.getCharCountLimit(); + int charThreshold = adapter.getCharCountThreshold(); + int validatorThresold = adapter.getValidatorThreshold(); + int comparableYear = adapter.getComparableYear(); + String[] dateFormats = adapter.getDateFormats(); + + boolean dobValidator = dobValidatorAdapter.getDateValidationModel(dob, comparableYear, dateFormats); + confidenceScore = dobValidator ? confidenceScore + validatorThresold : confidenceScore; + + if (dobValidator) { + int wordCount = wordCountAdapter.getThresholdScore(dob); + confidenceScore = wordCount <= wcLimit ? confidenceScore + wcThresold : confidenceScore; + + int charCount = charCountAdapter.getThresholdScore(dob); + confidenceScore = charCount <= charLimit ? confidenceScore + charThreshold : confidenceScore; + } + return confidenceScore; + } +} diff --git a/src/main/java/in/handyman/raven/lib/agadia/adapters/MemberIdAdapter.java b/src/main/java/in/handyman/raven/lib/agadia/adapters/MemberIdAdapter.java new file mode 100644 index 00000000..2521feef --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/agadia/adapters/MemberIdAdapter.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.agadia.adapters; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.adapters.AlphaAdapter; +import in.handyman.raven.lib.adapters.CharacterCountAdapter; +import in.handyman.raven.lib.adapters.WordCountAdapter; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import in.handyman.raven.lib.interfaces.ScalarEvaluationInterface; +import in.handyman.raven.lib.model.AgadiaAdapter; + +public class MemberIdAdapter implements ScalarEvaluationInterface { + AdapterInterface wordCountAdapter = new WordCountAdapter(); + AdapterInterface charCountAdapter = new CharacterCountAdapter(); + AdapterInterface idValidatorAdapter = new AlphaAdapter(); + + @Override + public int getConfidenceScore(String memberId, AgadiaAdapter adapter, ActionExecutionAudit audit) throws Exception { + int confidenceScore = 0; + //Config parameter + int wcLimit = adapter.getWordCountLimit(); + int wcThresold = adapter.getWordCountThreshold(); + int charLimit = adapter.getCharCountLimit(); + int charThreshold = adapter.getCharCountThreshold(); + int validatorThresold = adapter.getValidatorThreshold(); + String validatorFeature = adapter.getValidatorDetail(); + + int wordCount = wordCountAdapter.getThresholdScore(memberId); + confidenceScore = wordCount <= wcLimit ? confidenceScore + wcThresold : confidenceScore; + + int charCount = charCountAdapter.getThresholdScore(memberId); + confidenceScore = charCount <= charLimit ? confidenceScore + charThreshold : confidenceScore; + + boolean idValidator = idValidatorAdapter.getValidationModel(memberId, validatorFeature, audit); + confidenceScore = idValidator ? confidenceScore + validatorThresold : confidenceScore; + + return confidenceScore; + } +} diff --git a/src/main/java/in/handyman/raven/lib/agadia/adapters/PatientNameAdapter.java b/src/main/java/in/handyman/raven/lib/agadia/adapters/PatientNameAdapter.java new file mode 100644 index 00000000..ddf059fc --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/agadia/adapters/PatientNameAdapter.java @@ -0,0 +1,43 @@ +package in.handyman.raven.lib.agadia.adapters; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.adapters.CharacterCountAdapter; +import in.handyman.raven.lib.adapters.NameAdapter; +import in.handyman.raven.lib.adapters.WordCountAdapter; +import in.handyman.raven.lib.interfaces.AdapterInterface; +import in.handyman.raven.lib.interfaces.ScalarEvaluationInterface; +import in.handyman.raven.lib.model.AgadiaAdapter; + +public class PatientNameAdapter implements ScalarEvaluationInterface { + AdapterInterface wordCountAdapter = new WordCountAdapter(); + AdapterInterface charCountAdapter = new CharacterCountAdapter(); + AdapterInterface nameValidatorAdapter = new NameAdapter(); + + @Override + public int getConfidenceScore(String patientName, AgadiaAdapter adapter, ActionExecutionAudit action) throws Exception { + int confidenceScore = 0; + int wcLimit = adapter.getWordCountLimit(); + int wcThresold = adapter.getWordCountThreshold(); + int charLimit = adapter.getCharCountLimit(); + int charThreshold = adapter.getCharCountThreshold(); + int validatorThresold = adapter.getValidatorThreshold(); + String validatorFeature = adapter.getValidatorDetail(); + + boolean nameValidator = nameValidatorAdapter.getValidationModel(patientName, validatorFeature, action); + confidenceScore = nameValidator ? confidenceScore + validatorThresold : confidenceScore; + + int formatScore = 0; + if (nameValidator) { + String[] splitInput = patientName.split(" "); + for (String name : splitInput) { + int wordCount = wordCountAdapter.getThresholdScore(name); + formatScore = wordCount <= wcLimit ? formatScore + wcThresold : formatScore; + int charCount = charCountAdapter.getThresholdScore(name); + formatScore = charCount <= charLimit ? formatScore + charThreshold : formatScore; + } + formatScore = formatScore / splitInput.length; + } + confidenceScore = confidenceScore + formatScore; + return confidenceScore; + } +} diff --git a/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/EocIdCoverage.java b/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/EocIdCoverage.java new file mode 100644 index 00000000..e50ccedf --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/EocIdCoverage.java @@ -0,0 +1,96 @@ +package in.handyman.raven.lib.agadia.eocsplitting; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.EpisodeOfCoverage; +import in.handyman.raven.util.CommonQueryUtil; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.util.*; +import java.util.stream.Collectors; + +public class EocIdCoverage { + private final Logger log; + + private final EpisodeOfCoverage episodeOfCoverage; + + private final Marker aMarker; + private final ActionExecutionAudit action; + public EocIdCoverage(Logger log, EpisodeOfCoverage episodeOfCoverage, Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.episodeOfCoverage = episodeOfCoverage; + this.aMarker = aMarker; + this.action=action; + } + + public Map> SplitByEocId(Jdbi jdbi, String sorItem) { + Map> eocObjectMap=new HashMap<>(); + Integer eocIdCount = Integer.parseInt(episodeOfCoverage.getEocIdCount()); + if(eocIdCount >0){ + + + if(Objects.equals(sorItem,"patient_eoc")){ + String inputQuery=episodeOfCoverage.getValue().replace(";"," ").concat("AND sor_item_name IN ('patient_eoc' ) group by predicted_value"); + List> eocIdRequestInfo=queryExecutor(jdbi,sorItem,inputQuery); + if (!eocIdRequestInfo.isEmpty()) { + + List breakPointsList = new ArrayList<>(); + eocIdRequestInfo.forEach(eocGroupingEocIdRequestInfo -> { + final Integer startNoString = (Integer) Optional.ofNullable(eocGroupingEocIdRequestInfo.get("start_no")).orElse(0); + breakPointsList.add(startNoString); + }); + Collections.sort(breakPointsList); + + + for (var eocGroupingEocIdRequestInfo : eocIdRequestInfo) { + String answerString = Optional.ofNullable(eocGroupingEocIdRequestInfo.get("answer")).map(String::valueOf).orElse(""); + if(!answerString.isEmpty() && !answerString.isBlank()){ + List paperList = new ArrayList<>(); + + Integer startNoInt = (Integer) Optional.ofNullable(eocGroupingEocIdRequestInfo.get("start_no")).orElse(0); + + int totalPageInt = Integer.parseInt(episodeOfCoverage.getTotalPages()); + int endPoint = 0; + + try { + endPoint = breakPointsList.get(breakPointsList.indexOf(startNoInt) + 1); + } catch (Exception e) { + endPoint = totalPageInt + 1; + } + if (breakPointsList.indexOf(startNoInt) == 0 ) { + startNoInt = 1; + } + + for (int i = startNoInt; i < endPoint; i++) { + paperList.add(i); + } + //thic code will save the result as a map with string as key and list as value + answerString =answerString.replaceAll("[-/#%;?\\\\]","_"); + eocObjectMap.put(answerString, paperList); + } + + } + } + } + return eocObjectMap; + } + return eocObjectMap; + } + + public List> queryExecutor(Jdbi jdbi,String sorItem,String unFormattedQueryString){ + final List> requestInfos = new ArrayList<>(); + try{ + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(unFormattedQueryString); + formattedQuery.forEach(sqlToExecute -> { + requestInfos.addAll(handle.createQuery(sqlToExecute).mapToMap().stream().collect(Collectors.toList())); + }); + }); + + }catch(Exception e){ + log.info(aMarker, "Failed in executed formated query {} for this sor item {}", e,sorItem); + } + return requestInfos; + } +} diff --git a/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/OriginCoverage.java b/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/OriginCoverage.java new file mode 100644 index 00000000..fc7fbfa1 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/OriginCoverage.java @@ -0,0 +1,62 @@ +package in.handyman.raven.lib.agadia.eocsplitting; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.EpisodeOfCoverage; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.util.*; + +public class OriginCoverage { + + private final Logger log; + + private final EpisodeOfCoverage episodeOfCoverage; + + private final Marker aMarker; + + + private final ActionExecutionAudit action; + + public OriginCoverage(Logger log, EpisodeOfCoverage episodeOfCoverage, Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.episodeOfCoverage = episodeOfCoverage; + this.aMarker = aMarker; + this.action = action; + } + + + public Map> aggregateByOrigin(Jdbi jdbi, String originId) { + Map> stringObjectMap = new HashMap<>(); + String inputQuery = "SELECT max(paper_no) from info.source_of_truth where origin_id = '" + originId + "'"; + final Integer maxPaperNo = jdbi.withHandle(handle -> handle.createQuery(inputQuery).mapTo(Integer.class).one()); + List paperNos = getPaperNos(maxPaperNo); + final String fileName = getFileName(jdbi, originId); + final String fileNameIdentifier = fileName.concat("_NID"); + stringObjectMap.put(fileNameIdentifier, paperNos); + return stringObjectMap; + } + + private List getPaperNos(Integer maxPaperNo) { + List paperNoList = new ArrayList<>(); + final int startPage = 1; + for (int index = startPage; index <= maxPaperNo; index++) { + paperNoList.add(index); + } + return paperNoList; + } + + private String getFileName(Jdbi jdbi, String originId) { + try { + String fileIdQuery = "SELECT file_id from info.source_of_origin where origin_id = '" + originId + "'"; + final String fileId = jdbi.withHandle(handle -> handle.createQuery(fileIdQuery).mapTo(String.class).one()); + String fileNameQuery = "SELECT file_name from info.asset where file_id = '" + fileId + "'"; + return jdbi.withHandle(handle -> handle.createQuery(fileNameQuery).mapTo(String.class).one()); + } catch (Exception e) { + throw new HandymanException(String.valueOf(e)); + } + } + +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/QrCodeCoverage.java b/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/QrCodeCoverage.java new file mode 100644 index 00000000..bc024d2c --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/QrCodeCoverage.java @@ -0,0 +1,96 @@ +package in.handyman.raven.lib.agadia.eocsplitting; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.EpisodeOfCoverage; +import in.handyman.raven.util.CommonQueryUtil; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.util.*; +import java.util.stream.Collectors; + +public class QrCodeCoverage { + + private final Logger log; + + private final EpisodeOfCoverage episodeOfCoverage; + + private final Marker aMarker; + + + + private final ActionExecutionAudit action; + + public QrCodeCoverage(Logger log, EpisodeOfCoverage episodeOfCoverage, Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.episodeOfCoverage = episodeOfCoverage; + this.aMarker = aMarker; + this.action = action; + } + + public Map> splitByQrcode(Jdbi jdbi,String sorItem) throws InterruptedException { + + Map> eocObjectMap=new HashMap<>(); + + if(Objects.equals(sorItem,"qr_code")){ + + List> eocIdRequestInfo=queryExecutor(jdbi,sorItem,episodeOfCoverage.getQrInput()); + if (!eocIdRequestInfo.isEmpty()) { + + List breakPointsList = new ArrayList<>(); + eocIdRequestInfo.forEach(eocGroupingEocIdRequestInfo -> { + final Integer startNoString = (Integer) Optional.ofNullable(eocGroupingEocIdRequestInfo.get("start_no")).orElse(0); + breakPointsList.add(startNoString); + }); + Collections.sort(breakPointsList); + + + for (var eocGroupingEocIdRequestInfo : eocIdRequestInfo) { + List paperList = new ArrayList<>(); + Integer startNoInt = (Integer) Optional.ofNullable(eocGroupingEocIdRequestInfo.get("start_no")).orElse(0); + String answerString = Optional.ofNullable(eocGroupingEocIdRequestInfo.get("answer")).map(String::valueOf).orElse(""); + int totalPageInt = Integer.parseInt(episodeOfCoverage.getTotalPages()); + int endPoint = 0; + + try { + endPoint = breakPointsList.get(breakPointsList.indexOf(startNoInt) + 1); + } catch (Exception e) { + endPoint = totalPageInt + 1; + } + if (breakPointsList.indexOf(startNoInt) == 0 ) { + startNoInt = 1; + } + + for (int i = startNoInt; i < endPoint; i++) { + paperList.add(i); + } + //thic code will save the result as a map with string as key and list as value + answerString =answerString.replaceAll("[-/#%;?\\\\]","_"); + eocObjectMap.put(answerString, paperList); + } + } + } + return eocObjectMap; + } + + + public List> queryExecutor(Jdbi jdbi, String sorItem, String unFormattedQueryString){ + final List> requestInfos = new ArrayList<>(); + try{ + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(unFormattedQueryString); + formattedQuery.forEach(sqlToExecute -> { + requestInfos.addAll(handle.createQuery(sqlToExecute).mapToMap().stream().collect(Collectors.toList())); + }); + }); + log.info(aMarker, "complete executed formated query {} for this sor item {}",unFormattedQueryString, sorItem); + + }catch(Exception e){ + log.info(aMarker, "Failed in executed formated query {} for this sor item {}", e,sorItem); + } + return requestInfos; + } + + +} diff --git a/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/SorItemCoverage.java b/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/SorItemCoverage.java new file mode 100644 index 00000000..c204dd8d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/agadia/eocsplitting/SorItemCoverage.java @@ -0,0 +1,97 @@ +package in.handyman.raven.lib.agadia.eocsplitting; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.EpisodeOfCoverage; +import in.handyman.raven.util.CommonQueryUtil; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.util.*; +import java.util.stream.Collectors; + +public class SorItemCoverage { + + private final Logger log; + + private final EpisodeOfCoverage episodeOfCoverage; + private final Marker aMarker; + + private final ActionExecutionAudit action; + + + public SorItemCoverage(Logger log, EpisodeOfCoverage episodeOfCoverage, Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.episodeOfCoverage = episodeOfCoverage; + this.aMarker = aMarker; + this.action = action; + } + + public Map> splitBySorItem(Jdbi jdbi, String sorItem) { + Map> stringObjectMap = new HashMap<>(); + + try { + String inputSorItem = "AND sor_item_name IN ('patient_member_id') group by predicted_value,paper_no ;"; + if (Objects.equals("patient_name", sorItem)) { + inputSorItem = " AND sor_item_name IN ('patient_name' , 'patient_dob') group by paper_no having count(predicted_value)=2;"; + } + String inputQuery = episodeOfCoverage.getPndValue().replace(";", " ").concat(inputSorItem); + List> eocGroupingMemberItemRequestInfos = queryExecutor(jdbi, sorItem, inputQuery); + + List breakPointsList = new ArrayList<>(); + eocGroupingMemberItemRequestInfos.forEach(stringObjectMapInfo -> { + final Integer startNoString = (Integer) Optional.ofNullable(stringObjectMapInfo.get("start_no")).orElse(0); + breakPointsList.add(startNoString); + }); + Collections.sort(breakPointsList); + + //this logic needs start_page_no and total page numbers list + for (var eocGroupingMemberItemRequestInfo : eocGroupingMemberItemRequestInfos) { + List paperList = new ArrayList<>(); + Integer startNoInt = (Integer) Optional.ofNullable(eocGroupingMemberItemRequestInfo.get("start_no")).orElse(0); + String answerString = Optional.ofNullable(eocGroupingMemberItemRequestInfo.get("answer")).map(String::valueOf).orElse(""); + int totalPageInt = Integer.parseInt(episodeOfCoverage.getTotalPages()); + int endPoint = 0; + + if (!answerString.isBlank() && !answerString.isBlank()) { + try { + endPoint = breakPointsList.get(breakPointsList.indexOf(startNoInt) + 1); + } catch (Exception e) { + endPoint = totalPageInt + 1; + } + if (breakPointsList.indexOf(startNoInt) == 0) { + startNoInt = 1; + } + + for (int i = startNoInt; i < endPoint; i++) { + paperList.add(i); + } + //thic code will save the result as a map with string as key and list as value + answerString = answerString.replaceAll("[-/#%;?\\\\]", "_"); + stringObjectMap.put(answerString, paperList); + } + } + + } catch (Exception e) { + log.info(aMarker, "Episode of coverage Action for member id filter {} has failed", episodeOfCoverage.getName()); + + } + return stringObjectMap; + } + + public List> queryExecutor(Jdbi jdbi, String sorItem, String unFormattedQueryString) { + final List> requestInfos = new ArrayList<>(); + try { + jdbi.useTransaction(handle -> { + final List formattedQuery = CommonQueryUtil.getFormattedQuery(unFormattedQueryString); + formattedQuery.forEach(sqlToExecute -> { + requestInfos.addAll(handle.createQuery(sqlToExecute).mapToMap().stream().collect(Collectors.toList())); + }); + }); + + } catch (Exception e) { + log.info(aMarker, "Failed in executed formated query {} for this sor item {}", e, sorItem); + } + return requestInfos; + } +} diff --git a/src/main/java/in/handyman/raven/lib/agadia/xenon/model/TemplateDetectionConsumerProcess.java b/src/main/java/in/handyman/raven/lib/agadia/xenon/model/TemplateDetectionConsumerProcess.java new file mode 100644 index 00000000..e69de29b diff --git a/src/main/java/in/handyman/raven/lib/agadia/xenon/model/TemplateDetectionRequest.java b/src/main/java/in/handyman/raven/lib/agadia/xenon/model/TemplateDetectionRequest.java new file mode 100644 index 00000000..55c7b65b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/agadia/xenon/model/TemplateDetectionRequest.java @@ -0,0 +1,55 @@ +package in.handyman.raven.lib.agadia.xenon.model; + +import okhttp3.RequestBody; + +import java.util.List; + +public class TemplateDetectionRequest { + + private String inputFilePath; + private Long rootPipelineId; + private Long actionId; + private String process; + private List attributes; + + + public Long getActionId() { + return actionId; + } + + public Long getRootPipelineId() { + return rootPipelineId; + } + + public void setRootPipelineId(Long rootPipelineId) { + this.rootPipelineId = rootPipelineId; + } + + public String getProcess() { + return process; + } + + public void setProcess(String process) { + this.process = process; + } + + public void setActionId(Long actionId) { + this.actionId = actionId; + } + + public String getInputFilePath() { + return inputFilePath; + } + + public void setInputFilePath(String inputFilePath) { + this.inputFilePath = inputFilePath; + } + + public List getAttributes() { + return attributes; + } + + public void setAttributes(List attributes) { + this.attributes = attributes; + } +} diff --git a/src/main/java/in/handyman/raven/lib/agadia/xenon/model/TemplateDetectionResponse.java b/src/main/java/in/handyman/raven/lib/agadia/xenon/model/TemplateDetectionResponse.java new file mode 100644 index 00000000..7f069cd0 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/agadia/xenon/model/TemplateDetectionResponse.java @@ -0,0 +1,55 @@ +package in.handyman.raven.lib.agadia.xenon.model; + +import java.util.List; + +public class TemplateDetectionResponse { + + private List attributes; + private Integer imageWidth; + private Integer imageHeight; + private Integer imageDPI; + private String extractedImageUnit; + + public List getAttributes() { + return attributes; + } + + public void setAttributes(List attributes) { + this.attributes = attributes; + } + + public Integer getImageWidth() { + return imageWidth; + } + + public void setImageWidth(Integer imageWidth) { + this.imageWidth = imageWidth; + } + + public Integer getImageHeight() { + return imageHeight; + } + + public void setImageHeight(Integer imageHeight) { + this.imageHeight = imageHeight; + } + + public Integer getImageDPI() { + return imageDPI; + } + + public void setImageDPI(Integer imageDPI) { + this.imageDPI = imageDPI; + } + + public String getExtractedImageUnit() { + return extractedImageUnit; + } + + public void setExtractedImageUnit(String extractedImageUnit) { + this.extractedImageUnit = extractedImageUnit; + } + +} + + diff --git a/src/main/java/in/handyman/raven/lib/agadia/xenon/model/XenonResult.java b/src/main/java/in/handyman/raven/lib/agadia/xenon/model/XenonResult.java new file mode 100644 index 00000000..dddbb2f2 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/agadia/xenon/model/XenonResult.java @@ -0,0 +1,43 @@ +package in.handyman.raven.lib.agadia.xenon.model; + +import com.fasterxml.jackson.databind.JsonNode; + +public class XenonResult { + + private String question; + private String predictedAttributionValue; + private Float scores; + private JsonNode bboxes; + + public String getQuestion() { + return question; + } + + public void setQuestion(String question) { + this.question = question; + } + + public String getPredictedAttributionValue() { + return predictedAttributionValue; + } + + public void setPredictedAttributionValue(String predictedAttributionValue) { + this.predictedAttributionValue = predictedAttributionValue; + } + + public Float getScores() { + return scores; + } + + public void setScore(Float scores) { + this.scores = scores; + } + + public JsonNode getBboxes() { + return bboxes; + } + + public void setBboxes(JsonNode bboxes) { + this.bboxes = bboxes; + } +} diff --git a/src/main/java/in/handyman/raven/lib/alchemy/common/AlchemyApiPayload.java b/src/main/java/in/handyman/raven/lib/alchemy/common/AlchemyApiPayload.java new file mode 100644 index 00000000..849a7d14 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/alchemy/common/AlchemyApiPayload.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.alchemy.common; + + +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class AlchemyApiPayload { + private JsonNode payload; + private boolean success; + private String responseTimeStamp; +} diff --git a/src/main/java/in/handyman/raven/lib/alchemy/response/AlchemyKvpConsumerProcess.java b/src/main/java/in/handyman/raven/lib/alchemy/response/AlchemyKvpConsumerProcess.java new file mode 100644 index 00000000..c7f57bfa --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/alchemy/response/AlchemyKvpConsumerProcess.java @@ -0,0 +1,126 @@ +package in.handyman.raven.lib.alchemy.response; + +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.AlchemyKvpResponseAction; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.alchemy.common.AlchemyApiPayload; +import in.handyman.raven.lib.model.outbound.AlchemyKvpInputEntity; +import in.handyman.raven.lib.model.outbound.AlchemyKvpOutputEntity; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.*; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class AlchemyKvpConsumerProcess implements CoproProcessor.ConsumerProcess { + + + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + + public final ActionExecutionAudit action; + private final OkHttpClient httpclient; + private final AlchemyKvpResponseAction aAction; + private final String STAGE_NAME = "PRODUCT_OUTBOUND"; + + private final int timeOut; + private final String authToken; + + public AlchemyKvpConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action, AlchemyKvpResponseAction aAction) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.aAction = aAction; + this.timeOut = aAction.getTimeOut(); + this.authToken = action.getContext().get("alchemyAuth.token"); + this.httpclient = new OkHttpClient.Builder() + .connectTimeout(this.timeOut, TimeUnit.MINUTES) + + .writeTimeout(this.timeOut, TimeUnit.MINUTES) + .readTimeout(this.timeOut, TimeUnit.MINUTES) + .build(); + } + + + @Override + public List process(URL endpoint, AlchemyKvpInputEntity entity) throws Exception { + + + log.info(aMarker, " Alchemy cosumer process Started for origin id {}", entity.getAlchemyOriginId()); + + List parentObj = new ArrayList<>(); + String originId = entity.getAlchemyOriginId(); + Long rootPipelineId=entity.getRootPipelineId(); + + + log.info(aMarker, "Request object endpoint {} ", endpoint); + + Long tenantId = entity.getTenant_id(); + String endPointFinalUrl = endpoint + "/" + originId + "/?tenantId=" + tenantId; + + Request request = new Request.Builder() + .url(endPointFinalUrl) + .addHeader("accept", "*/*") + .addHeader("Authorization", "Bearer " + authToken) + .build(); + + try (Response response = httpclient.newCall(request).execute()) { + + Timestamp createdOn = Timestamp.valueOf(LocalDateTime.now()); + if (response.isSuccessful()) { + AlchemyApiPayload alchemyApiPayload = mapper.readValue(response.body().string(), AlchemyApiPayload.class); + + + if (!alchemyApiPayload.getPayload().isEmpty() && !alchemyApiPayload.getPayload().isNull() && alchemyApiPayload.isSuccess()) { + + parentObj.add(AlchemyKvpOutputEntity + .builder() + .processId(entity.getProcessId()) + .tenantId(tenantId) + .groupId(entity.getGroupId()) + .kvpResponse(String.valueOf(alchemyApiPayload.getPayload())) + .alchemyOriginId(entity.getAlchemyOriginId()) + .pipelineOriginId(entity.getPipelineOriginId()) + .rootPipelineId(rootPipelineId) + .fileName(entity.getFileName()) + .stage("PRODUCT_OUBOUND").status("COMPLETED").message("alchemy kvp response completed for origin_id - "+entity.getAlchemyOriginId()) + .build()); + } + } else { + parentObj.add(AlchemyKvpOutputEntity + .builder() + .processId(entity.getProcessId()) + .tenantId(tenantId) + .groupId(entity.getGroupId()) + .alchemyOriginId(entity.getAlchemyOriginId()) + .pipelineOriginId(entity.getPipelineOriginId()) + .rootPipelineId(rootPipelineId) + .stage("PRODUCT_OUBOUND").status("FAILED").message("alchemy kvp response failed for origin_id - "+entity.getAlchemyOriginId()) + .build()); + } + + + } catch (Exception e) { + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Alchemy kvp api consumer failed for origin_id - " + originId, + handymanException, + this.action); + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + } + + + return parentObj; + } +} diff --git a/src/main/java/in/handyman/raven/lib/interfaces/AdapterInterface.java b/src/main/java/in/handyman/raven/lib/interfaces/AdapterInterface.java new file mode 100644 index 00000000..d970e1db --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/interfaces/AdapterInterface.java @@ -0,0 +1,12 @@ +package in.handyman.raven.lib.interfaces; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; + +public interface AdapterInterface { + int getThresholdScore(String sentence) throws Exception; + + boolean getValidationModel(String sentence, String requiredFeature,ActionExecutionAudit audit) throws Exception; + + boolean getDateValidationModel(String sentence, int comparableYear, String[] dateFormats) throws Exception; + +} diff --git a/src/main/java/in/handyman/raven/lib/interfaces/ScalarEvaluationInterface.java b/src/main/java/in/handyman/raven/lib/interfaces/ScalarEvaluationInterface.java new file mode 100644 index 00000000..7a49465d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/interfaces/ScalarEvaluationInterface.java @@ -0,0 +1,12 @@ +package in.handyman.raven.lib.interfaces; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AgadiaAdapter; + +public interface ScalarEvaluationInterface { + + + int getConfidenceScore(String sentence, AgadiaAdapter adapter, ActionExecutionAudit action) throws Exception; + + +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/Abort.java b/src/main/java/in/handyman/raven/lib/model/Abort.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/Abort.java rename to src/main/java/in/handyman/raven/lib/model/Abort.java diff --git a/src/main/java/in/handyman/raven/lib/model/AbsentKeyFilter.java b/src/main/java/in/handyman/raven/lib/model/AbsentKeyFilter.java new file mode 100644 index 00000000..3a97baa4 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/AbsentKeyFilter.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "AbsentKeyFilter" +) +public class AbsentKeyFilter implements IActionContext { + private String name; + + private String filePath; + + private String paperNo; + + private String inticsReferenceId; + + private String batchId; + + private String sorList; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/AgadiaAdapter.java b/src/main/java/in/handyman/raven/lib/model/AgadiaAdapter.java new file mode 100644 index 00000000..fa6a60c4 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/AgadiaAdapter.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder + +public class AgadiaAdapter { + + private int wordCountLimit; + + private int charCountLimit; + + private String validatorDetail; + + private int wordCountThreshold; + + private int charCountThreshold; + + private int validatorThreshold; + private int comparableYear; + private String[] dateFormats; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/AlchemyAuthToken.java b/src/main/java/in/handyman/raven/lib/model/AlchemyAuthToken.java new file mode 100644 index 00000000..3599d84d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/AlchemyAuthToken.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "AlchemyAuthToken" +) +public class AlchemyAuthToken implements IActionContext { + private String name; + + private String resourceConn; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/AlchemyInfo.java b/src/main/java/in/handyman/raven/lib/model/AlchemyInfo.java new file mode 100644 index 00000000..437cb2fb --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/AlchemyInfo.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "AlchemyInfo" +) +public class AlchemyInfo implements IActionContext { + private String name; + + private Long tenantId; + + private String token; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/AlchemyKvpResponse.java b/src/main/java/in/handyman/raven/lib/model/AlchemyKvpResponse.java new file mode 100644 index 00000000..fd7098f9 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/AlchemyKvpResponse.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "AlchemyKvpResponse" +) +public class AlchemyKvpResponse implements IActionContext { + private String name; + + private String resultTable; + + private String processId; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/AlchemyResponse.java b/src/main/java/in/handyman/raven/lib/model/AlchemyResponse.java new file mode 100644 index 00000000..28a2adbb --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/AlchemyResponse.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "AlchemyResponse" +) +public class AlchemyResponse implements IActionContext { + private String name; + + private Long tenantId; + + private String token; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/AlchemyTableResponse.java b/src/main/java/in/handyman/raven/lib/model/AlchemyTableResponse.java new file mode 100644 index 00000000..7e5180c1 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/AlchemyTableResponse.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "AlchemyTableResponse" +) +public class AlchemyTableResponse implements IActionContext { + private String name; + + private String resultTable; + + private String processId; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/Alphanumericvalidator.java b/src/main/java/in/handyman/raven/lib/model/Alphanumericvalidator.java new file mode 100644 index 00000000..5b174dcf --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/Alphanumericvalidator.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "Alphanumericvalidator" +) +public class Alphanumericvalidator implements IActionContext { + private String name; + + private String thresholdValue; + + private String inputValue; + + private String allowedSpecialCharacters; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/Alphavalidator.java b/src/main/java/in/handyman/raven/lib/model/Alphavalidator.java new file mode 100644 index 00000000..ce42d7f0 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/Alphavalidator.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "Alphavalidator" +) +public class Alphavalidator implements IActionContext { + private String name; + + private String thresholdValue; + + private String inputValue; + + private String allowedSpecialCharacters; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/AssetInfo.java b/src/main/java/in/handyman/raven/lib/model/AssetInfo.java new file mode 100644 index 00000000..a2271825 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/AssetInfo.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "AssetInfo" +) +public class AssetInfo implements IActionContext { + private String name; + + private String resourceConn; + + private String auditTable; + + private String assetTable; + + private String values; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/Assign.java b/src/main/java/in/handyman/raven/lib/model/Assign.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/Assign.java rename to src/main/java/in/handyman/raven/lib/model/Assign.java diff --git a/src/main/java/in/handyman/raven/lib/model/AuthToken.java b/src/main/java/in/handyman/raven/lib/model/AuthToken.java new file mode 100644 index 00000000..c918d71c --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/AuthToken.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "AuthToken" +) +public class AuthToken implements IActionContext { + private String name; + + private String resourceConn; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/AutoRotation.java b/src/main/java/in/handyman/raven/lib/model/AutoRotation.java new file mode 100644 index 00000000..fb98bf2d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/AutoRotation.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "AutoRotation" +) +public class AutoRotation implements IActionContext { + private String name; + + private String outputDir; + + private String processId; + + private String endPoint; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/BlankPageRemover.java b/src/main/java/in/handyman/raven/lib/model/BlankPageRemover.java new file mode 100644 index 00000000..7b92edc2 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/BlankPageRemover.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "BlankPageRemover" +) +public class BlankPageRemover implements IActionContext { + private String name; + + private String outputDir; + + private String processId; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; + + private String forkBatchSize; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/CallProcess.java b/src/main/java/in/handyman/raven/lib/model/CallProcess.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/CallProcess.java rename to src/main/java/in/handyman/raven/lib/model/CallProcess.java diff --git a/src/main/java/in/handyman/raven/lib/model/Charactercount.java b/src/main/java/in/handyman/raven/lib/model/Charactercount.java new file mode 100644 index 00000000..e1b203b8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/Charactercount.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "Charactercount" +) +public class Charactercount implements IActionContext { + private String name; + + private String thresholdValue; + + private String inputValue; + + private String countLimit; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/CheckboxClassification.java b/src/main/java/in/handyman/raven/lib/model/CheckboxClassification.java new file mode 100644 index 00000000..6307d175 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/CheckboxClassification.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "CheckboxClassification" +) +public class CheckboxClassification implements IActionContext { + private String name; + + private String filePath; + + private String modelFilePath; + + private String outputDir; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/CheckboxVqa.java b/src/main/java/in/handyman/raven/lib/model/CheckboxVqa.java new file mode 100644 index 00000000..a8c2f176 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/CheckboxVqa.java @@ -0,0 +1,48 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "CheckboxVqa" +) +public class CheckboxVqa implements IActionContext { + private String name; + + private String resourceConn; + + private String processID; + + private String cadModelPath; + + private String cdModelPath; + + private String crModelPath; + + private String textModel; + + private String crWidth; + + private String crHeight; + + private String outputDir; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/Checksum.java b/src/main/java/in/handyman/raven/lib/model/Checksum.java new file mode 100644 index 00000000..9c87aa19 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/Checksum.java @@ -0,0 +1,28 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "Checksum" +) +public class Checksum implements IActionContext { + private String name; + + private String filePath; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/ClassificationType.java b/src/main/java/in/handyman/raven/lib/model/ClassificationType.java new file mode 100644 index 00000000..c1c221c7 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ClassificationType.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ClassificationType" +) +public class ClassificationType implements IActionContext { + private String name; + + private String labels; + + private String outputDir; + + private String modelFilePath; + + private String inputFilePath; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/Consumer.java b/src/main/java/in/handyman/raven/lib/model/Consumer.java similarity index 93% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/Consumer.java rename to src/main/java/in/handyman/raven/lib/model/Consumer.java index a4b82459..864fdc51 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/model/Consumer.java +++ b/src/main/java/in/handyman/raven/lib/model/Consumer.java @@ -36,11 +36,15 @@ public class Consumer implements IActionContext { private String limit; private String pop; + @Builder.Default private Boolean completed = false; + @Builder.Default private Boolean standalone = false; + @Builder.Default @JsonIgnore private List actions = new ArrayList<>(); + @Builder.Default private Boolean condition = true; private String threadCount; diff --git a/src/main/java/in/handyman/raven/lib/model/CoproStart.java b/src/main/java/in/handyman/raven/lib/model/CoproStart.java new file mode 100644 index 00000000..020d7dd4 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/CoproStart.java @@ -0,0 +1,40 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "CoproStart" +) +public class CoproStart implements IActionContext { + private String name; + + private String moduleName; + + private String coproServerUrl; + + private String exportCommand; + + private String processID; + + private String resourceConn; + + private String command; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/CoproStop.java b/src/main/java/in/handyman/raven/lib/model/CoproStop.java new file mode 100644 index 00000000..b792a47d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/CoproStop.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "CoproStop" +) +public class CoproStop implements IActionContext { + private String name; + + private String moduleName; + + private String coproServerUrl; + + private String processID; + + private String resourceConn; + + private String command; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/CopyData.java b/src/main/java/in/handyman/raven/lib/model/CopyData.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/CopyData.java rename to src/main/java/in/handyman/raven/lib/model/CopyData.java diff --git a/src/main/java/in/handyman/raven/lib/model/CopyFile.java b/src/main/java/in/handyman/raven/lib/model/CopyFile.java new file mode 100644 index 00000000..86162932 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/CopyFile.java @@ -0,0 +1,37 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "CopyFile" +) +public class CopyFile implements IActionContext { + private String name; + + private String srcLocation; + + private String destLocation; + + private String fileName; + + private String extension; + + private String value; + + @Builder.Default + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/CreateDirectory.java b/src/main/java/in/handyman/raven/lib/model/CreateDirectory.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/CreateDirectory.java rename to src/main/java/in/handyman/raven/lib/model/CreateDirectory.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/CreateFile.java b/src/main/java/in/handyman/raven/lib/model/CreateFile.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/CreateFile.java rename to src/main/java/in/handyman/raven/lib/model/CreateFile.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/CreateTAR.java b/src/main/java/in/handyman/raven/lib/model/CreateTAR.java similarity index 96% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/CreateTAR.java rename to src/main/java/in/handyman/raven/lib/model/CreateTAR.java index dde92166..784dc1e8 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/model/CreateTAR.java +++ b/src/main/java/in/handyman/raven/lib/model/CreateTAR.java @@ -28,5 +28,6 @@ public class CreateTAR implements IActionContext { private String extension; + @Builder.Default private Boolean condition = true; } diff --git a/src/main/java/in/handyman/raven/lib/model/CreateZip.java b/src/main/java/in/handyman/raven/lib/model/CreateZip.java new file mode 100644 index 00000000..45043663 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/CreateZip.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "CreateZip" +) +public class CreateZip implements IActionContext { + private String name; + + private String fileName; + + private String source; + + private String destination; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/DataExtraction.java b/src/main/java/in/handyman/raven/lib/model/DataExtraction.java new file mode 100644 index 00000000..f5401216 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/DataExtraction.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "DataExtraction" +) +public class DataExtraction implements IActionContext { + private String name; + + private String resourceConn; + + private String resultTable; + + private String endPoint; + + private String processId; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/Datevalidator.java b/src/main/java/in/handyman/raven/lib/model/Datevalidator.java new file mode 100644 index 00000000..700bc9f5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/Datevalidator.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "Datevalidator" +) +public class Datevalidator implements IActionContext { + private String name; + + private String thresholdValue; + + private String inputValue; + + private String allowedDateFormats; + + private String comparableDate; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/DeleteFileDirectory.java b/src/main/java/in/handyman/raven/lib/model/DeleteFileDirectory.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/DeleteFileDirectory.java rename to src/main/java/in/handyman/raven/lib/model/DeleteFileDirectory.java diff --git a/src/main/java/in/handyman/raven/lib/model/DirPath.java b/src/main/java/in/handyman/raven/lib/model/DirPath.java new file mode 100644 index 00000000..d6929dd8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/DirPath.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "DirPath" +) +public class DirPath implements IActionContext { + private String name; + + private String resourceConn; + + private String filePath; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/DocClassifier.java b/src/main/java/in/handyman/raven/lib/model/DocClassifier.java new file mode 100644 index 00000000..5c98dff9 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/DocClassifier.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "DocClassifier" +) +public class DocClassifier implements IActionContext { + private String name; + + private String inputFilePath; + + private String labelModelFilePath; + + private String handwrittenModelFilePath; + + private String checkboxModelFilePath; + + private String labels; + + private String synonyms; + + private String viltConfigLabel; + + private String outputDir; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/DocnetAttribution.java b/src/main/java/in/handyman/raven/lib/model/DocnetAttribution.java new file mode 100644 index 00000000..b79b28bd --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/DocnetAttribution.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "DocnetAttribution" +) +public class DocnetAttribution implements IActionContext { + + private String name; + + private String inputFilePath; + + private String attributeQuestionSql; + + private String outputDir; + + private String resourceConn; + + private String docnetAttributionAsResponse; + + private Boolean condition = true; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/DocnetResult.java b/src/main/java/in/handyman/raven/lib/model/DocnetResult.java new file mode 100644 index 00000000..109ff8ae --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/DocnetResult.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "DocnetResult" +) +public class DocnetResult implements IActionContext { + private String name; + + private String resourceConn; + + private String coproResultSqlQuery; + + private String weightageSqlQuery; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/DocumentClassification.java b/src/main/java/in/handyman/raven/lib/model/DocumentClassification.java new file mode 100644 index 00000000..eb8de875 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/DocumentClassification.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "DocumentClassification" +) +public class DocumentClassification implements IActionContext { + private String name; + + private String filePath; + + private String modelFilePath; + + private String labels; + + private String outputDir; + + private Boolean condition = true; +} + + diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/DogLeg.java b/src/main/java/in/handyman/raven/lib/model/DogLeg.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/DogLeg.java rename to src/main/java/in/handyman/raven/lib/model/DogLeg.java diff --git a/src/main/java/in/handyman/raven/lib/model/DonutDocQa.java b/src/main/java/in/handyman/raven/lib/model/DonutDocQa.java new file mode 100644 index 00000000..30e2eb42 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/DonutDocQa.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "DonutDocQa" +) +public class DonutDocQa implements IActionContext { + private String name; + + private String resourceConn; + + private String questionSql; + + private Boolean condition = true; + + private String forkBatchSize; + + private String outputDir; + + private String responseAs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/DonutImpiraQa.java b/src/main/java/in/handyman/raven/lib/model/DonutImpiraQa.java new file mode 100644 index 00000000..b2ff36fb --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/DonutImpiraQa.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "DonutImpiraQa" +) +public class DonutImpiraQa implements IActionContext { + private String name; + + private String outputDir; + + private String resourceConn; + + private String responseAs; + + private String questionSql; + + private Boolean condition = true; + + private String forkBatchSize; +} diff --git a/src/main/java/in/handyman/raven/lib/model/DownloadAsset.java b/src/main/java/in/handyman/raven/lib/model/DownloadAsset.java new file mode 100644 index 00000000..63e6b65f --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/DownloadAsset.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "DownloadAsset" +) +public class DownloadAsset implements IActionContext { + private String name; + + private String url; + + private String location; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/DropFile.java b/src/main/java/in/handyman/raven/lib/model/DropFile.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/DropFile.java rename to src/main/java/in/handyman/raven/lib/model/DropFile.java diff --git a/src/main/java/in/handyman/raven/lib/model/DrugMatch.java b/src/main/java/in/handyman/raven/lib/model/DrugMatch.java new file mode 100644 index 00000000..f179dd79 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/DrugMatch.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "DrugMatch" +) +public class DrugMatch implements IActionContext { + private String name; + + private String resourceConn; + + private String drugCompare; + + private String inputSet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/EntityFilter.java b/src/main/java/in/handyman/raven/lib/model/EntityFilter.java new file mode 100644 index 00000000..a7c22668 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/EntityFilter.java @@ -0,0 +1,41 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "EntityFilter" +) +public class EntityFilter implements IActionContext { + private String name; + + private String entityKeysToFilter; + + private String mandatoryKeysToFilter; + + private String inputFilePath; + + private String docId; + + private String paperNo; + + private String groupId; + + private Boolean condition = true; + + private String resourceConn; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/EocJsonGenerator.java b/src/main/java/in/handyman/raven/lib/model/EocJsonGenerator.java new file mode 100644 index 00000000..d0629204 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/EocJsonGenerator.java @@ -0,0 +1,40 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "EocJsonGenerator" +) +public class EocJsonGenerator implements IActionContext { + private String name; + + private String resourceConn; + + private String documentId; + + private String eocId; + + private String originId; + + private String groupId; + + private String authtoken; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/EpisodeOfCoverage.java b/src/main/java/in/handyman/raven/lib/model/EpisodeOfCoverage.java new file mode 100644 index 00000000..f8449fb0 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/EpisodeOfCoverage.java @@ -0,0 +1,50 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "EpisodeOfCoverage" +) +public class EpisodeOfCoverage implements IActionContext { + private String name; + + private String resourceConn; + + private String originId; + + private String groupId; + + private String totalPages; + + private String outputTable; + + private String eocGroupingItem; + + private String eocIdCount; + + private String filepath; + + private String qrInput; + + private String value; + + private String pndValue; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/EvalDateOfBirth.java b/src/main/java/in/handyman/raven/lib/model/EvalDateOfBirth.java new file mode 100644 index 00000000..d01a2e9a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/EvalDateOfBirth.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "EvalDateOfBirth" +) +public class EvalDateOfBirth implements IActionContext { + private String name; + + private String dob; + + private int wordCountLimit; + + private int charCountLimit; + + private int wordCountThreshold; + + private int charCountThreshold; + + private int comparableYear; + + private String dateFormats; + + private int validatorThreshold; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/EvalMemberId.java b/src/main/java/in/handyman/raven/lib/model/EvalMemberId.java new file mode 100644 index 00000000..7fffba76 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/EvalMemberId.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "EvalMemberId" +) +public class EvalMemberId implements IActionContext { + private String name; + + private String memberID; + + private int wordCountLimit; + + private int charCountLimit; + + private String specialCharacter; + + private int wordCountThreshold; + + private int charCountThreshold; + + private int validatorThreshold; + + private String coproQuery; + + private Boolean condition = true; +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/model/EvalPatientName.java b/src/main/java/in/handyman/raven/lib/model/EvalPatientName.java new file mode 100644 index 00000000..5ce0a1d7 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/EvalPatientName.java @@ -0,0 +1,40 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "EvalPatientName" +) +public class EvalPatientName implements IActionContext { + private String name; + + private String patientName; + + private int wordCountLimit; + + private int charCountLimit; + + private String nerCoproApi; + + private int wordCountThreshold; + + private int charCountThreshold; + + private int nerApiThreshold; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/ExportCsv.java b/src/main/java/in/handyman/raven/lib/model/ExportCsv.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/ExportCsv.java rename to src/main/java/in/handyman/raven/lib/model/ExportCsv.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/ExtractTAR.java b/src/main/java/in/handyman/raven/lib/model/ExtractTAR.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/ExtractTAR.java rename to src/main/java/in/handyman/raven/lib/model/ExtractTAR.java diff --git a/src/main/java/in/handyman/raven/lib/model/ExtractZip.java b/src/main/java/in/handyman/raven/lib/model/ExtractZip.java new file mode 100644 index 00000000..6b4e29da --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ExtractZip.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ExtractZip" +) +public class ExtractZip implements IActionContext { + private String name; + + private String source; + + private String destination; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/FileBucketing.java b/src/main/java/in/handyman/raven/lib/model/FileBucketing.java new file mode 100644 index 00000000..cf12de59 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/FileBucketing.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "FileBucketing" +) +public class FileBucketing implements IActionContext { + private String name; + + private String outputDir; + + private String inputDirectory; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/FileDetails.java b/src/main/java/in/handyman/raven/lib/model/FileDetails.java new file mode 100644 index 00000000..60808dc6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/FileDetails.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "FileDetails" +) +public class FileDetails implements IActionContext { + private String name; + + private String dirpath; + + private String group_id; + + private String inbound_id; + + private String resourceConn; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/FileMerger.java b/src/main/java/in/handyman/raven/lib/model/FileMerger.java new file mode 100644 index 00000000..a023462e --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/FileMerger.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "FileMerger" +) +public class FileMerger implements IActionContext { + private String name; + + private String requestBody; + + private String outputDir; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/FileMergerPdf.java b/src/main/java/in/handyman/raven/lib/model/FileMergerPdf.java new file mode 100644 index 00000000..351a60c0 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/FileMergerPdf.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "FileMergerPdf" +) +public class FileMergerPdf implements IActionContext { + private String name; + + private String outputTable; + + private String endPoint; + + private String resourceConn; + + private String outputDir; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/FileSize.java b/src/main/java/in/handyman/raven/lib/model/FileSize.java new file mode 100644 index 00000000..5f9977de --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/FileSize.java @@ -0,0 +1,28 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "FileSize" +) +public class FileSize implements IActionContext { + private String name; + + private String filePath; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/ForkProcess.java b/src/main/java/in/handyman/raven/lib/model/ForkProcess.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/ForkProcess.java rename to src/main/java/in/handyman/raven/lib/model/ForkProcess.java diff --git a/src/main/java/in/handyman/raven/lib/model/FtpsDownload.java b/src/main/java/in/handyman/raven/lib/model/FtpsDownload.java new file mode 100644 index 00000000..d884669e --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/FtpsDownload.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "FtpsDownload" +) +public class FtpsDownload implements IActionContext { + private String name; + + private String host; + + private String port; + + private String userName; + + private String password; + + private String sessionTimeOut; + + private String sourceFile; + + private String destDir; + + private String uploadCheck; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/FtpsUpload.java b/src/main/java/in/handyman/raven/lib/model/FtpsUpload.java new file mode 100644 index 00000000..324927ba --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/FtpsUpload.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "FtpsUpload" +) +public class FtpsUpload implements IActionContext { + private String name; + + private String host; + + private String port; + + private String userName; + + private String password; + + private String sessionTimeOut; + + private String sourceFile; + + private String destDir; + + private String uploadCheck; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/HwDetection.java b/src/main/java/in/handyman/raven/lib/model/HwDetection.java new file mode 100644 index 00000000..e8de6a5d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/HwDetection.java @@ -0,0 +1,40 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "HwDetection" +) +public class HwDetection implements IActionContext { + private String name; + + private String resourceConn; + + private String directoryPath; + + private String endPoint; + + private String outputTable; + + private String modelPath; + + private String querySet; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/ImportCsvToDB.java b/src/main/java/in/handyman/raven/lib/model/ImportCsvToDB.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/ImportCsvToDB.java rename to src/main/java/in/handyman/raven/lib/model/ImportCsvToDB.java diff --git a/src/main/java/in/handyman/raven/lib/model/IncidentManagement.java b/src/main/java/in/handyman/raven/lib/model/IncidentManagement.java new file mode 100644 index 00000000..e3fc3e19 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/IncidentManagement.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "IncidentManagement" +) +public class IncidentManagement implements IActionContext { + private String name; + + private String templateId; + + private String assetId; + + private String payload; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/IntegratedNoiseModelApi.java b/src/main/java/in/handyman/raven/lib/model/IntegratedNoiseModelApi.java new file mode 100644 index 00000000..2476d43e --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/IntegratedNoiseModelApi.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "IntegratedNoiseModelApi" +) +public class IntegratedNoiseModelApi implements IActionContext { + private String name; + + private String resourceConn; + + private String endPoint; + + private String processId; + + private String outputTable; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/Intellimatch.java b/src/main/java/in/handyman/raven/lib/model/Intellimatch.java new file mode 100644 index 00000000..d2265a64 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/Intellimatch.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "Intellimatch" +) +public class Intellimatch implements IActionContext { + private String name; + + private String resourceConn; + + private String matchResult; + + private String inputSet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/IntellimatchAction.java b/src/main/java/in/handyman/raven/lib/model/IntellimatchAction.java new file mode 100644 index 00000000..9356091a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/IntellimatchAction.java @@ -0,0 +1,366 @@ +package in.handyman.raven.lib.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.action.IActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.Intellimatch; +import in.handyman.raven.lib.model.common.ComparisonPayload; +import in.handyman.raven.lib.model.common.ComparisonResponse; +import in.handyman.raven.lib.model.common.ComparisonResquest; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import in.handyman.raven.util.ExceptionUtil; +import in.handyman.raven.util.InstanceUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.argument.Arguments; +import org.jdbi.v3.core.argument.NullArgument; +import org.slf4j.Logger; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.Timestamp; +import java.sql.Types; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; +import java.util.stream.Stream; + + +/** + * Auto Generated By Raven + */ +@ActionExecution( + actionName = "Intellimatch" +) +public class IntellimatchAction implements IActionExecution { + private final ActionExecutionAudit action; + + private final Logger log; + + private final Intellimatch intellimatch; + + private final Marker aMarker; + final String URI; + final OkHttpClient httpclient; + private static String httpClientTimeout = new String(); + private static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + + + public IntellimatchAction(final ActionExecutionAudit action, final Logger log, + final Object intellimatch) { + this.intellimatch = (Intellimatch) intellimatch; + this.URI = action.getContext().get("copro.intelli-match.url"); + this.action = action; + this.httpclient = InstanceUtil.createOkHttpClient(); + this.log = log; + this.aMarker = MarkerFactory.getMarker(" Intellimatch:"+this.intellimatch.getName()); + this.httpClientTimeout = action.getContext().get("okhttp.client.timeout"); + + } + + @Override + public void execute() throws Exception { + log.info(aMarker, "master data comparison process for {} has been started" + intellimatch.getName()); + try { + + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(intellimatch.getResourceConn()); + jdbi.getConfig(Arguments.class).setUntypedNullArgument(new NullArgument(Types.NULL)); + // build insert prepare statement with output table columns + final String insertQuery = "INSERT INTO " + intellimatch.getMatchResult() + + " ( file_name,origin_id,group_id,created_on,root_pipeline_id,actual_value, extracted_value,similarity,confidence_score,intelli_match,status,stage,message)" + + " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?);"; + log.info(aMarker, "intelli match Insert query {}", insertQuery); + + //3. initiate copro processor and copro urls + final List urls = Optional.ofNullable(action.getContext().get("copro.intelli-match.url")).map(s -> Arrays.stream(s.split(",")).map(s1 -> { + try { + return new URL(s1); + } catch (MalformedURLException e) { + log.error("Error in processing the URL ", e); + throw new HandymanException("Error in processing the URL", e, action); + } + }).collect(Collectors.toList())).orElse(Collections.emptyList()); + log.info(aMarker, "intelli match copro urls {}", urls); + + final CoproProcessor coproProcessor = + new CoproProcessor<>(new LinkedBlockingQueue<>(), + IntellimatchOutputTable.class, + IntellimatchInputTable.class, + jdbi, log, + new IntellimatchInputTable(), urls, action); + log.info(aMarker, "intelli match copro Processor initialization {}", coproProcessor); + + //4. call the method start producer from coproprocessor + coproProcessor.startProducer(intellimatch.getInputSet(), Integer.valueOf(action.getContext().get("read.batch.size"))); + log.info(aMarker, "intelli match startProducer called read batch size {}", action.getContext().get("read.batch.size")); + Thread.sleep(1000); + coproProcessor.startConsumer(insertQuery, Integer.valueOf(action.getContext().get("consumer.intellimatch.API.count")), Integer.valueOf(action.getContext().get("write.batch.size")), + new IntellimatchProcess(log, aMarker, action)); + log.info(aMarker, "intelli match coproProcessor startConsumer called consumer count {} write batch count {} ", Integer.valueOf(action.getContext().get("intelli.match.consumer.API.count")), Integer.valueOf(action.getContext().get("write.batch.size"))); + + } catch (Exception ex) { + log.error(aMarker, "Error in execute method for Drug Match {} ", ExceptionUtil.toString(ex)); + throw new HandymanException("Error in execute method for Drug Match", ex, action); + } + log.info(aMarker, "Intellimatch process for {} has been completed" , intellimatch.getName()); + } + + + + public static class IntellimatchProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + public final ActionExecutionAudit action; + final ObjectMapper mapper; + private final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .writeTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .readTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .build(); + + + public IntellimatchProcess(Logger log, Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.mapper = new ObjectMapper(); + this.action = action; + + + } + @Override + public List process(URL endpoint, IntellimatchInputTable result) throws Exception { + log.info(aMarker, "coproProcessor consumer process started with endpoint {} and entity {}", endpoint, result); + List parentObj = new ArrayList<>(); + AtomicInteger atomicInteger = new AtomicInteger(); + + if (result.getActualValue() != null) { + List sentence = Arrays.asList(result.getExtractedValue()); + final String process="CONTROL_DATA"; + Long actionId= action.getActionId(); + Long rootpipelineId=result.rootPipelineId; + String inputSentence = result.extractedValue; + + + ComparisonPayload Comparisonpayload = new ComparisonPayload(); + Comparisonpayload.setRootPipelineId(rootpipelineId); + Comparisonpayload.setActionId(actionId); + Comparisonpayload.setProcess(process); + Comparisonpayload.setInputSentence(inputSentence); + Comparisonpayload.setSentence(sentence); + + + ComparisonResquest requests = new ComparisonResquest(); + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("NER START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(Comparisonpayload)); + + TritonInputRequest tritonInputRequest=new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(tritonInputRequest)); + + ObjectMapper objectMapper = new ObjectMapper(); + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + + final Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(Comparisonpayload.toString(), MediaTypeJSON)).build(); + log.info("intellimatch reqest body {}", request); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + + if (response.isSuccessful()) { + List output = mapper.readValue(responseBody, new TypeReference<>() { + }); + + double matchPercent = output.get(0) != null ? Math.round(output.get(0).getSimilarityPercent() * 100.0) / 100.0 : 0.0; + ObjectMapper objectMappers = new ObjectMapper(); + ComparisonResponse Response = objectMappers.readValue(responseBody, ComparisonResponse.class); + if (Response.getOutputs() != null && !Response.getOutputs().isEmpty()) { + Response.getOutputs().forEach(o -> { + o.getData().forEach(ComparisonDataItem -> { + log.info("copro response body {} ", output); + double similarityPercent = output.get(0) != null ? Math.round(output.get(0).getSimilarityPercent() * 100.0) / 100.0 : 0.0; + parentObj.add(IntellimatchOutputTable.builder(). + fileName(result.fileName). + originId(result.originId). + groupId(result.groupId). + createdOn(Timestamp.valueOf(LocalDateTime.now())). + rootPipelineId(result.rootPipelineId). + actualValue(result.actualValue). + extractedValue(result.extractedValue). + similarity(result.similarity). + confidenceScore(result.confidenceScore). + intelliMatch(ComparisonDataItem.getSimilarityPercent()). + status("completed"). + stage("control data"). + message("data insertion is completed"). + build() + ); + }); + }); + } + + + } else { + parentObj.add(IntellimatchOutputTable.builder(). + fileName(result.fileName). + originId(result.originId). + groupId(result.groupId). + createdOn(Timestamp.valueOf(LocalDateTime.now())). + rootPipelineId(result.rootPipelineId). + actualValue(result.actualValue). + extractedValue(result.extractedValue). + similarity(result.similarity). + intelliMatch(0.00). + status("failed"). + stage("control data"). + message("data insertion is failed"). + build() + ); + log.error(aMarker, "The Exception occurred in control data comparison by {} ", response); + throw new HandymanException(responseBody); + + } + } catch (Exception exception) { + parentObj.add(IntellimatchOutputTable.builder(). + fileName(result.fileName). + originId(result.originId). + groupId(result.groupId). + createdOn(Timestamp.valueOf(LocalDateTime.now())). + rootPipelineId(result.rootPipelineId). + actualValue(result.actualValue). + extractedValue(result.extractedValue). + similarity(result.similarity). + intelliMatch(0.00). + status("failed"). + stage("control data"). + message("data insertion is failed"). + build() + ); + log.error(aMarker, "Exception occurred in copro api for intelli match - {} ", ExceptionUtil.toString(exception)); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("control data comparison consumer failed for originId " + result.originId, handymanException, this.action); + + + } + } else { + parentObj.add(IntellimatchOutputTable.builder(). + fileName(result.fileName). + originId(result.originId). + groupId(result.groupId). + createdOn(Timestamp.valueOf(LocalDateTime.now())). + rootPipelineId(result.rootPipelineId). + actualValue(result.actualValue). + extractedValue(result.extractedValue). + similarity(result.similarity). + intelliMatch(0.0000). + status("completed"). + stage("control data"). + message("data insertion is completed"). + build() + ); + log.info(aMarker, " control data coproProcessor consumer process with empty actual value entity {}", result); + + } + atomicInteger.set(0); + log.info(aMarker, "coproProcessor consumer process with output entity {}", parentObj); + return parentObj; + + } + } + + + @Override + public boolean executeIf() throws Exception { + return intellimatch.getCondition(); + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ControlDataCopro { + String sentence; + Double similarityPercent; + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class IntellimatchInputTable implements CoproProcessor.Entity { + private String fileName; + private String originId; + private Integer groupId; + private Long rootPipelineId; + private String actualValue; + private String extractedValue; + private Double similarity; + private Integer confidenceScore; + @Override + public List getRowData() { + return null; + } + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public static class IntellimatchOutputTable implements CoproProcessor.Entity { + private String fileName; + private String originId; + private Integer groupId; + private Timestamp createdOn; + private Long rootPipelineId; + private String actualValue; + private String extractedValue; + private Double similarity; + private Integer confidenceScore; + private Double intelliMatch; + private String status; + private String stage; + private String message; + + @Override + public List getRowData() { + return Stream.of( + this.fileName, + this.originId, + this.groupId, + this.createdOn, + this.rootPipelineId, + this.actualValue, + this.extractedValue, + this.similarity, + this.confidenceScore, + this.intelliMatch, + this.status, + this.stage, + this.message + + ).collect(Collectors.toList()); + } + } +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/model/JsonToFile.java b/src/main/java/in/handyman/raven/lib/model/JsonToFile.java new file mode 100644 index 00000000..5146452c --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/JsonToFile.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "JsonToFile" +) +public class JsonToFile implements IActionContext { + private String name; + + private String filePath; + + private String jsonSql; + + private String resourceConn; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/LoadCsv.java b/src/main/java/in/handyman/raven/lib/model/LoadCsv.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/LoadCsv.java rename to src/main/java/in/handyman/raven/lib/model/LoadCsv.java diff --git a/src/main/java/in/handyman/raven/lib/model/LoadExtractedData.java b/src/main/java/in/handyman/raven/lib/model/LoadExtractedData.java new file mode 100644 index 00000000..fb2474e5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/LoadExtractedData.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "LoadExtractedData" +) +public class LoadExtractedData implements IActionContext { + private String name; + + private String filePath; + + private String paperNo; + + private String inticsReferenceId; + + private String batchId; + + private String targetDir; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/MailServer.java b/src/main/java/in/handyman/raven/lib/model/MailServer.java new file mode 100644 index 00000000..89d3f69a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/MailServer.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "MailServer" +) +public class MailServer implements IActionContext { + private String name; + + private String resultTable; + + private String processId; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/MapJson.java b/src/main/java/in/handyman/raven/lib/model/MapJson.java similarity index 96% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/MapJson.java rename to src/main/java/in/handyman/raven/lib/model/MapJson.java index e6426c1f..be292bf1 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/model/MapJson.java +++ b/src/main/java/in/handyman/raven/lib/model/MapJson.java @@ -24,5 +24,6 @@ public class MapJson implements IActionContext { private String value; + @Builder.Default private Boolean condition = true; } diff --git a/src/main/java/in/handyman/raven/lib/model/MasterdataComparison.java b/src/main/java/in/handyman/raven/lib/model/MasterdataComparison.java new file mode 100644 index 00000000..60b9b8f2 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/MasterdataComparison.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "MasterdataComparison" +) +public class MasterdataComparison implements IActionContext { + private String name; + + private String resourceConn; + + private String matchResult; + + private String inputSet; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/Multitude.java b/src/main/java/in/handyman/raven/lib/model/Multitude.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/Multitude.java rename to src/main/java/in/handyman/raven/lib/model/Multitude.java diff --git a/src/main/java/in/handyman/raven/lib/model/NerAdapter.java b/src/main/java/in/handyman/raven/lib/model/NerAdapter.java new file mode 100644 index 00000000..8d25a613 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/NerAdapter.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "NerAdapter" +) +public class NerAdapter implements IActionContext { + private String name; + + private String resourceConn; + + private String resultTable; + + private String resultSet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/Nervalidator.java b/src/main/java/in/handyman/raven/lib/model/Nervalidator.java new file mode 100644 index 00000000..ce4315e5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/Nervalidator.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "Nervalidator" +) +public class Nervalidator implements IActionContext { + private String name; + + private String nerThreshold; + + private String inputValue; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelConsumerProcess.java new file mode 100644 index 00000000..b9a12381 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelConsumerProcess.java @@ -0,0 +1,211 @@ +package in.handyman.raven.lib.model.NoiseModel; + + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; + +import okhttp3.*; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + + +public class NoiseModelConsumerProcess implements CoproProcessor.ConsumerProcess{ + public static final String TRITON_REQUEST_ACTIVATOR = "triton.request.activator"; + + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + + public final ActionExecutionAudit action; + public static String httpClientTimeout = new String(); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public NoiseModelConsumerProcess(Logger log, Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.httpClientTimeout = action.getContext().get("okhttp.client.timeout"); + } + + + + + + @Override + public List process(URL endpoint, NoiseModelInputEntity entity) throws Exception { + log.info("copro consumer process started"); + List noiseOutputEntities = new ArrayList<>(); + final String filePath = entity.getInputFilePath(); + final String noiseDetectionModel = "NOISE_DETECTION_MODEL"; + final Long rootPipelineId = entity.getRootPipelineId(); + final Long actionId = action.getActionId(); + final ObjectMapper objectMapper = new ObjectMapper(); + //payload + final NoiseModelData NoiseModelData = new NoiseModelData(); + NoiseModelData.setRootPipelineId(rootPipelineId); + NoiseModelData.setProcess(noiseDetectionModel); + NoiseModelData.setInputFilePath(filePath); + NoiseModelData.setActionId(actionId); + NoiseModelData.setProcessId(action.getProcessId()); + NoiseModelData.setOriginId(entity.getOriginId()); + NoiseModelData.setPaperNo(entity.getPaperNo()); + NoiseModelData.setGroupId(entity.getGroupId()); + NoiseModelData.setOutputDir(entity.getOutputDir()); + NoiseModelData.setTenantId(entity.getTenantId()); + final String jsonInputRequest = objectMapper.writeValueAsString(NoiseModelData); + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("NOISE-DETECTION"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + TritonInputRequest tritonInputRequest = new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + final String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + if (log.isInfoEnabled()) { + log.info("input object node in the consumer process inputFilePath {}", filePath); + } + String tritonRequestActivator = action.getContext().get(TRITON_REQUEST_ACTIVATOR); + + final Request Requests = new Request.Builder().url(endpoint).post(RequestBody.create(jsonRequest, MediaTypeJSON)).build(); + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonInputRequest, MediaTypeJSON)).build(); + coproRequestBuilder(entity, request, objectMapper, rootPipelineId,noiseOutputEntities); + } + + if (log.isInfoEnabled()) { + log.info("input object node in the consumer process coproURL {}, inputFilePath {}", endpoint, filePath); + } + return noiseOutputEntities; + } + private void coproRequestBuilder (NoiseModelInputEntity entity, Request request, ObjectMapper objectMapper, Long rootPipelineId ,List noiseOutputEntities) { + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + Integer groupId = entity.getGroupId(); + String fileId = entity.getFileId(); + String filePath=entity.getInputFilePath(); + + // exectution is after getting resopnse + + try (Response response = httpclient.newCall(request).execute()) { + if (response.isSuccessful()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + // Parse the JSON string + JsonNode rootNode = objectMapper.readTree(responseBody); + + + if (rootNode != null && !rootNode.isEmpty()) { + Integer processId = rootNode.path("processId").asInt(); + Integer tenantId = rootNode.path("tenantId").asInt(); + String inputFilePath = rootNode.path("inputFilePath").asText(); + String consolidatedClass = rootNode.path("consolidatedClass").asText(); + Double consolidatedConfidenceScore = rootNode.path("consolidatedConfidenceScore").asDouble(); + String extractedValue = rootNode.path("noiseModelsResult").toString(); + + String hwClass = rootNode + .path("noiseModelsResult") + .path("hwNoiseDetectionOutput").toString(); + + + String checkBoxClass = rootNode + .path("noiseModelsResult") + .path("checkNoiseDetectionOutput").toString(); + String tickNoiseClass = rootNode + .path("noiseModelsResult") + .path("tickNoiseDetectionOutput").toString(); + String speckleClass = rootNode + .path("noiseModelsResult") + .path("speckleNoiseDetection").toString(); + + noiseOutputEntities.add(NoiseModelOutputEnitity.builder() + .originId(originId) + .paperNo(paperNo) + .groupId(groupId) + .processId(processId) + .tenantId(tenantId) + .inputFilePath(inputFilePath) + .consolidatedConfidenceScore(consolidatedConfidenceScore) + .consolidatedClass(consolidatedClass) + .noiseModelsResult(extractedValue) + .hwNoiseDetectionOutput(hwClass) + .checkNoiseDetectionOutput(checkBoxClass) + .checkboxMarkDetectionOutput(tickNoiseClass) + .speckleNoiseDetectionOutput(speckleClass) + .createdOn(LocalDateTime.now()) + .rootPipelineId(rootPipelineId) + .status("COMPLETED") + .stage("NOISE_DETECTION_MODEL") + .message("noise detection completed") + .build()); + + + } else { + noiseOutputEntities.add(NoiseModelOutputEnitity.builder() + .originId(originId) + .paperNo(paperNo) + .groupId(groupId) + .createdOn(LocalDateTime.now()) + .rootPipelineId(rootPipelineId) + .status("ABSENT") + .stage("NOISE_DETECTION") + .message("noise detection code absent in the given file") + .build()); + } + + } else { + noiseOutputEntities.add(NoiseModelOutputEnitity.builder() + .originId(originId) + .paperNo(paperNo) + .groupId(groupId) + .createdOn(LocalDateTime.now()) + .rootPipelineId(rootPipelineId) + .status("FAILED") + .stage("NOISE_DETECTION") + .message(response.message()) + .build()); + log.error(aMarker, "The Exception occurred in episode of coverage in response {}", response); + } + + } catch (Exception e) { + noiseOutputEntities.add(NoiseModelOutputEnitity.builder() + .originId(originId) + .paperNo(paperNo) + .groupId(groupId) + .createdOn(LocalDateTime.now()) + .status("FAILED") + .rootPipelineId(rootPipelineId) + .stage("NOISE_DETECTION") + .message(e.getMessage()) + .build()); + log.error("Error in the copro process api hit {}", request); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Error in noise detection action for group id - " + groupId, handymanException, this.action); + } + + + } + } diff --git a/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelData.java b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelData.java new file mode 100644 index 00000000..69520d9a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelData.java @@ -0,0 +1,25 @@ +package in.handyman.raven.lib.model.NoiseModel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class NoiseModelData { + + private Long rootPipelineId; + private Long actionId; + private String process; + private String inputFilePath; + private String outputDir; + private String originId; + private Integer paperNo; + private Long processId; + private Integer groupId; + private Long tenantId; +} diff --git a/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelInputEntity.java b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelInputEntity.java new file mode 100644 index 00000000..9b4c7f10 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelInputEntity.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model.NoiseModel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +import in.handyman.raven.lib.CoproProcessor; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder + +public class NoiseModelInputEntity implements CoproProcessor.Entity { + private Long rootPipelineId; + private Long actionId; + private String inputFilePath; + private Integer groupId; + private String originId; + private Integer paperNo; + private String fileId; + private Long tenantId; + private String outputDir; + @Override + public List getRowData() { + return null; + } + + +} diff --git a/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelOutputEnitity.java b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelOutputEnitity.java new file mode 100644 index 00000000..1b6826e9 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelOutputEnitity.java @@ -0,0 +1,47 @@ +package in.handyman.raven.lib.model.NoiseModel; +import in.handyman.raven.lib.CoproProcessor; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder + +public class NoiseModelOutputEnitity implements CoproProcessor.Entity { + private String originId; + private Integer paperNo; + private Integer processId; + private Integer groupId; + private Integer tenantId; + private String inputFilePath; + private Double consolidatedConfidenceScore; + private String consolidatedClass; + private String noiseModelsResult; + private String hwNoiseDetectionOutput; + private String checkNoiseDetectionOutput; + private String checkboxMarkDetectionOutput; + private String speckleNoiseDetectionOutput; + private LocalDateTime createdOn; + private Long rootPipelineId; + private String status; + private String stage; + private String message; + @Override + public List getRowData() { + return Stream.of( this.originId, this.paperNo, + this.processId, this.groupId, this.tenantId,this.inputFilePath, this.consolidatedConfidenceScore, + this.consolidatedClass,this.noiseModelsResult, this.hwNoiseDetectionOutput, + this.checkNoiseDetectionOutput, this.checkboxMarkDetectionOutput, + this.speckleNoiseDetectionOutput, this.createdOn,this.rootPipelineId, + this.status,this.stage,this.message).collect(Collectors.toList()); + } +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelRequest.java b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelRequest.java new file mode 100644 index 00000000..2b3be09f --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelRequest.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.NoiseModel; + + +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data + +public class NoiseModelRequest { + + private List inputs; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelResponse.java b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelResponse.java new file mode 100644 index 00000000..f42c9831 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/NoiseModel/NoiseModelResponse.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib.model.NoiseModel; + +import com.fasterxml.jackson.annotation.JsonProperty; +//import in.handyman.raven.lib.model.qrExtraction.QrExtractionOutput; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class NoiseModelResponse { + + + @JsonProperty("origin_id") + private String originId; + @JsonProperty("paper_no") + private Integer paperNo; + @JsonProperty("process_id") + private Integer processId; + @JsonProperty("group_id") + private Integer groupId; + @JsonProperty("tenant_id") + private Integer tenantId; + @JsonProperty("input_file_path") + private String inputFilePath; + @JsonProperty("consolidated_class") + private String consolidatedClass; + @JsonProperty("consolidated_confidence_score") + private String consolidatedConfidenceScore; + @JsonProperty("noise_models_result") + private String noiseModelsResult; + + + + + + + +} diff --git a/src/main/java/in/handyman/raven/lib/model/Numericvalidator.java b/src/main/java/in/handyman/raven/lib/model/Numericvalidator.java new file mode 100644 index 00000000..3c654fa4 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/Numericvalidator.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "Numericvalidator" +) +public class Numericvalidator implements IActionContext { + private String name; + + private String thresholdValue; + + private String inputValue; + + private String allowedSpecialCharacters; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/OutboundDeliveryNotify.java b/src/main/java/in/handyman/raven/lib/model/OutboundDeliveryNotify.java new file mode 100644 index 00000000..ea6cdc5e --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/OutboundDeliveryNotify.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "OutboundDeliveryNotify" +) +public class OutboundDeliveryNotify implements IActionContext { + private String name; + + private String documentId; + + private String inticsZipUri; + + private String zipChecksum; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/OutboundKvpResponse.java b/src/main/java/in/handyman/raven/lib/model/OutboundKvpResponse.java new file mode 100644 index 00000000..122456cb --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/OutboundKvpResponse.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "OutboundKvpResponse" +) +public class OutboundKvpResponse implements IActionContext { + private String name; + + private String resultTable; + + private String processId; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/OutboundTableResponse.java b/src/main/java/in/handyman/raven/lib/model/OutboundTableResponse.java new file mode 100644 index 00000000..5f5b6de8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/OutboundTableResponse.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "OutboundTableResponse" +) +public class OutboundTableResponse implements IActionContext { + private String name; + + private String resultTable; + + private String processId; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/PaperItemization.java b/src/main/java/in/handyman/raven/lib/model/PaperItemization.java new file mode 100644 index 00000000..9bdb4a1b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/PaperItemization.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "PaperItemization" +) +public class PaperItemization implements IActionContext { + private String name; + + private String filePath; + + private String outputDir; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/PaperItemizer.java b/src/main/java/in/handyman/raven/lib/model/PaperItemizer.java new file mode 100644 index 00000000..3bace3c4 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/PaperItemizer.java @@ -0,0 +1,40 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "PaperItemizer" +) +public class PaperItemizer implements IActionContext { + private String name; + + private String outputDir; + + private String endpoint; + + private String resultTable; + + private String processId; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/PhraseMatchPaperFilter.java b/src/main/java/in/handyman/raven/lib/model/PhraseMatchPaperFilter.java new file mode 100644 index 00000000..62dc5035 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/PhraseMatchPaperFilter.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "PhraseMatchPaperFilter" +) +public class PhraseMatchPaperFilter implements IActionContext { + private String name; + + private String resourceConn; + + private String processID; + + private String endPoint; + + private String threadCount; + + private String readBatchSize; + + private String writeBatchSize; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/PixelClassifier.java b/src/main/java/in/handyman/raven/lib/model/PixelClassifier.java new file mode 100644 index 00000000..78032f63 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/PixelClassifier.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "PixelClassifier" +) +public class PixelClassifier implements IActionContext { + private String name; + + private String labels; + + private String outputDir; + + private String modelFilePath; + + private String inputFilePath; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/PixelClassifierUrgencyTriage.java b/src/main/java/in/handyman/raven/lib/model/PixelClassifierUrgencyTriage.java new file mode 100644 index 00000000..6dfecb18 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/PixelClassifierUrgencyTriage.java @@ -0,0 +1,62 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "PixelClassifierUrgencyTriage" +) +public class PixelClassifierUrgencyTriage implements IActionContext { + private String name; + + private String resourceConn; + + private String processID; + + private String binaryClassifierModelFilePath; + + private String multiClassifierModelFilePath; + + private String checkboxClassifierModelFilePath; + + private String synonyms; + + private String binaryClassifierLabels; + + private String multiClassifierLabels; + + private String checkboxClassifierLabels; + + private String outputDir; + + private String binaryImageWidth; + + private String binaryImageHeight; + + private String multiImageWidth; + + private String multiImageHeight; + + private String checkboxImageWidth; + + private String checkboxImageHeight; + + private String querySet; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/Producer.java b/src/main/java/in/handyman/raven/lib/model/Producer.java similarity index 96% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/Producer.java rename to src/main/java/in/handyman/raven/lib/model/Producer.java index 5e623c70..cdafba3e 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/model/Producer.java +++ b/src/main/java/in/handyman/raven/lib/model/Producer.java @@ -36,7 +36,9 @@ public class Producer implements IActionContext { private String push; @JsonIgnore + @Builder.Default private List actions = new ArrayList<>(); + @Builder.Default private Boolean condition = true; private String threadCount; diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/ProducerConsumerModel.java b/src/main/java/in/handyman/raven/lib/model/ProducerConsumerModel.java similarity index 94% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/ProducerConsumerModel.java rename to src/main/java/in/handyman/raven/lib/model/ProducerConsumerModel.java index d95603ab..55bfd2f8 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/model/ProducerConsumerModel.java +++ b/src/main/java/in/handyman/raven/lib/model/ProducerConsumerModel.java @@ -34,9 +34,12 @@ public class ProducerConsumerModel implements IActionContext { private String consumeThreadCount; @JsonIgnore + @Builder.Default private List produce = new ArrayList<>(); @JsonIgnore + @Builder.Default private List consume = new ArrayList<>(); + @Builder.Default private Boolean condition = true; } diff --git a/src/main/java/in/handyman/raven/lib/model/ProductOutboundZipFile.java b/src/main/java/in/handyman/raven/lib/model/ProductOutboundZipFile.java new file mode 100644 index 00000000..d95da504 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ProductOutboundZipFile.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.*; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ProductOutboundZipfile" +) +public class ProductOutboundZipFile implements IActionContext { + private String name; + + private String resultTable; + + private String outputDir; + + private String processId; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/ProductOutboundZipfile.java b/src/main/java/in/handyman/raven/lib/model/ProductOutboundZipfile.java new file mode 100644 index 00000000..48fdb1f5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ProductOutboundZipfile.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ProductOutboundZipfile" +) +public class ProductOutboundZipfile implements IActionContext { + private String name; + + private String resultTable; + + private String outputDir; + + private String processId; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/ProductResponse.java b/src/main/java/in/handyman/raven/lib/model/ProductResponse.java new file mode 100644 index 00000000..8316fded --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ProductResponse.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ProductResponse" +) +public class ProductResponse implements IActionContext { + private String name; + + private Long tenantId; + + private String token; + + private String resourceConn; + + private String resultTable; + + private String querySet; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/PushJson.java b/src/main/java/in/handyman/raven/lib/model/PushJson.java similarity index 96% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/PushJson.java rename to src/main/java/in/handyman/raven/lib/model/PushJson.java index cabf7c45..75893f73 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/model/PushJson.java +++ b/src/main/java/in/handyman/raven/lib/model/PushJson.java @@ -26,5 +26,6 @@ public class PushJson implements IActionContext { private String key; private JsonNode value; + @Builder.Default private Boolean condition = true; } diff --git a/src/main/java/in/handyman/raven/lib/model/QrAttribution.java b/src/main/java/in/handyman/raven/lib/model/QrAttribution.java new file mode 100644 index 00000000..5b435a0d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/QrAttribution.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "QrAttribution" +) +public class QrAttribution implements IActionContext { + private String name; + + private String filePath; + + private String url; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/QrExtraction.java b/src/main/java/in/handyman/raven/lib/model/QrExtraction.java new file mode 100644 index 00000000..46c93368 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/QrExtraction.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "QrExtraction" +) +public class QrExtraction implements IActionContext { + private String name; + + private String resourceConn; + + private String endPoint; + + private String processId; + + private String outputTable; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/RavenVmException.java b/src/main/java/in/handyman/raven/lib/model/RavenVmException.java new file mode 100644 index 00000000..825b2f36 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/RavenVmException.java @@ -0,0 +1,28 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "RavenVmException" +) +public class RavenVmException implements IActionContext { + private String name; + + private String message; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/RestApi.java b/src/main/java/in/handyman/raven/lib/model/RestApi.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/RestApi.java rename to src/main/java/in/handyman/raven/lib/model/RestApi.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/RestPart.java b/src/main/java/in/handyman/raven/lib/model/RestPart.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/RestPart.java rename to src/main/java/in/handyman/raven/lib/model/RestPart.java diff --git a/src/main/java/in/handyman/raven/lib/model/ScalarAdapter.java b/src/main/java/in/handyman/raven/lib/model/ScalarAdapter.java new file mode 100644 index 00000000..85d13b41 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ScalarAdapter.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ScalarAdapter" +) +public class ScalarAdapter implements IActionContext { + private String name; + + private String resourceConn; + + private String processID; + + private String resultSet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/SetValue.java b/src/main/java/in/handyman/raven/lib/model/SetValue.java new file mode 100644 index 00000000..e20b001d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/SetValue.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "SetValue" +) +public class SetValue implements IActionContext { + private String name; + + private String contextKey; + + private String contextValue; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/SftpConnector.java b/src/main/java/in/handyman/raven/lib/model/SftpConnector.java new file mode 100644 index 00000000..59d11ee8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/SftpConnector.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "SftpConnector" +) +public class SftpConnector implements IActionContext { + private String name; + + private String host; + + private String port; + + private String userName; + + private String password; + + private String sessionTimeOut; + + private String channelTimeOut; + + private String sourceFile; + + private String destDir; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/SharePoint.java b/src/main/java/in/handyman/raven/lib/model/SharePoint.java new file mode 100644 index 00000000..cc32cd55 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/SharePoint.java @@ -0,0 +1,47 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "SharePoint" +) +public class SharePoint implements IActionContext { + private String name; + + private String shpClientId; + + private String shpTenantId; + + private String shpClientSecret; + + private String orgName; + + private String actionType; + + private String siteUrl; + + private String sourceRelativePath; + + private String fileName; + + private String targetRelativePath; + + private String value; + + @Builder.Default + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/SorFilter.java b/src/main/java/in/handyman/raven/lib/model/SorFilter.java new file mode 100644 index 00000000..a807b1dc --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/SorFilter.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "SorFilter" +) +public class SorFilter implements IActionContext { + private String name; + + private String filePath; + + private String inticsReferenceId; + + private String searchValue; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/SorGroupDetails.java b/src/main/java/in/handyman/raven/lib/model/SorGroupDetails.java new file mode 100644 index 00000000..7169aece --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/SorGroupDetails.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "SorGroupDetails" +) +public class SorGroupDetails implements IActionContext { + private String name; + + private String on; + + private String searchfields; + + private String keyfields; + + private String groupbyfields; + + private String targettable; + + private String value; + + private Boolean condition = true; +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/SpawnProcess.java b/src/main/java/in/handyman/raven/lib/model/SpawnProcess.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/SpawnProcess.java rename to src/main/java/in/handyman/raven/lib/model/SpawnProcess.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/StartProcess.java b/src/main/java/in/handyman/raven/lib/model/StartProcess.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/StartProcess.java rename to src/main/java/in/handyman/raven/lib/model/StartProcess.java diff --git a/src/main/java/in/handyman/raven/lib/model/TableExtraction.java b/src/main/java/in/handyman/raven/lib/model/TableExtraction.java new file mode 100644 index 00000000..fad7823d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/TableExtraction.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "TableExtraction" +) +public class TableExtraction implements IActionContext { + private String name; + + private String outputDir; + + private String resultTable; + + private String processId; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/TemplateDetection.java b/src/main/java/in/handyman/raven/lib/model/TemplateDetection.java new file mode 100644 index 00000000..ed997006 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/TemplateDetection.java @@ -0,0 +1,41 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "TemplateDetection" +) +public class TemplateDetection implements IActionContext { + private String name; + + private String coproUrl; + + private String resourceConn; + + private String inputTable; + + private String processId; + + private String ouputTable; + + private String querySet; + + private Boolean condition = true; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/TextFilter.java b/src/main/java/in/handyman/raven/lib/model/TextFilter.java new file mode 100644 index 00000000..036b4707 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/TextFilter.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "TextFilter" +) +public class TextFilter implements IActionContext { + private String name; + + private String filteringKeys; + + private String inputFilePath; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/ThresholdCheck.java b/src/main/java/in/handyman/raven/lib/model/ThresholdCheck.java new file mode 100644 index 00000000..abebd670 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ThresholdCheck.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ThresholdCheck" +) +public class ThresholdCheck implements IActionContext { + private String name; + + private String threshold; + + private String input; + + private Boolean condition = true; + + private String resourceConn; + + private String paperNo; + + private String docId; + + +} diff --git a/src/main/java/in/handyman/raven/lib/model/TqaFilter.java b/src/main/java/in/handyman/raven/lib/model/TqaFilter.java new file mode 100644 index 00000000..82670fd6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/TqaFilter.java @@ -0,0 +1,51 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "TqaFilter" +) +public class TqaFilter implements IActionContext { + + private String name; + + private String outputDir; + + private String truthExtractorUrl; + + private String maxDoctrDiff; + + private String maxQuestionDiff; + + private String tqaFilterResponseAs; + + private String synonymSqlQuery; + + private String inputFilePathSqlQuery; + + private Boolean condition = true; + + private String threadCount; + + private String fetchBatchSize; + + private String resourceConn; + + private String writeBatchSize; + + +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/TransferFileDirectory.java b/src/main/java/in/handyman/raven/lib/model/TransferFileDirectory.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/TransferFileDirectory.java rename to src/main/java/in/handyman/raven/lib/model/TransferFileDirectory.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/lib/model/Transform.java b/src/main/java/in/handyman/raven/lib/model/Transform.java similarity index 96% rename from handyman.raven/src/main/java/in/handyman/raven/lib/model/Transform.java rename to src/main/java/in/handyman/raven/lib/model/Transform.java index 20f2ad8a..3cf975b8 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/lib/model/Transform.java +++ b/src/main/java/in/handyman/raven/lib/model/Transform.java @@ -2,6 +2,7 @@ import in.handyman.raven.lambda.action.ActionContext; import in.handyman.raven.lambda.action.IActionContext; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; diff --git a/src/main/java/in/handyman/raven/lib/model/TriageAttribution.java b/src/main/java/in/handyman/raven/lib/model/TriageAttribution.java new file mode 100644 index 00000000..8090ab69 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/TriageAttribution.java @@ -0,0 +1,55 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "TriageAttribution" +) +public class TriageAttribution implements IActionContext { + + private String name; + + private String outputDir; + + private String labelledClassifierModelFilePath; + + private String handwrittenClassifierModelFilePath; + + private String checkboxClassifierModelFilePath; + + private String synonyms; + + private String labelledClassifierLabels; + + private String viltCocoLabels; + + private String viltConfigLabel; + + private String isViltCocoOverride; + + private String viltCocoThreshold; + + private String inputFilePath; + + private String vggImageWidth; + private String vggImageHeight; + + private Boolean condition = true; + + private String triageAttributionResponseName; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/TrinityModel.java b/src/main/java/in/handyman/raven/lib/model/TrinityModel.java new file mode 100644 index 00000000..70ef7e16 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/TrinityModel.java @@ -0,0 +1,40 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "TrinityModel" +) +public class TrinityModel implements IActionContext { + private String name; + + private String outputDir; + + private String resourceConn; + + private String responseAs; + + private String requestUrl; + + private String questionSql; + + private Boolean condition = true; + + private String forkBatchSize; +} diff --git a/src/main/java/in/handyman/raven/lib/model/UploadAsset.java b/src/main/java/in/handyman/raven/lib/model/UploadAsset.java new file mode 100644 index 00000000..92734b03 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/UploadAsset.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "UploadAsset" +) +public class UploadAsset implements IActionContext { + private String name; + + private String filePath; + + private String templateId; + + private String token; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/UrgencyTriage.java b/src/main/java/in/handyman/raven/lib/model/UrgencyTriage.java new file mode 100644 index 00000000..9408599a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/UrgencyTriage.java @@ -0,0 +1,56 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "UrgencyTriage" +) +public class UrgencyTriage implements IActionContext { + private String name; + + private String inputFilePath; + + private String binaryClassifierModelFilePath; + + private String multiClassifierModelFilePath; + + private String checkboxClassifierModelFilePath; + + private String synonyms; + + private String binaryClassifierLabels; + + private String multiClassifierLabels; + + private String checkboxClassifierLabels; + + private String outputDir; + + private String binaryImageWidth; + + private String binaryImageHeight; + + private String multiImageWidth; + + private String multiImageHeight; + + private String checkboxImageWidth; + + private String checkboxImageHeight; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/UrgencyTriageModel.java b/src/main/java/in/handyman/raven/lib/model/UrgencyTriageModel.java new file mode 100644 index 00000000..f2192e81 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/UrgencyTriageModel.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "UrgencyTriageModel" +) +public class UrgencyTriageModel implements IActionContext { + private String name; + + private String outputDir; + + private String endPoint; + + private String outputTable; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/UserRegistration.java b/src/main/java/in/handyman/raven/lib/model/UserRegistration.java new file mode 100644 index 00000000..7b00465f --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/UserRegistration.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "UserRegistration" +) +public class UserRegistration implements IActionContext { + private String name; + + private String resourceConn; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/Validator.java b/src/main/java/in/handyman/raven/lib/model/Validator.java new file mode 100644 index 00000000..26238b25 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/Validator.java @@ -0,0 +1,15 @@ +package in.handyman.raven.lib.model; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class Validator { + + private String inputValue; + private String adapter; + private int threshold; + private String allowedSpecialChar; + private String comparableChar; +} diff --git a/src/main/java/in/handyman/raven/lib/model/Wordcount.java b/src/main/java/in/handyman/raven/lib/model/Wordcount.java new file mode 100644 index 00000000..0f8891cc --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/Wordcount.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "Wordcount" +) +public class Wordcount implements IActionContext { + private String name; + + private String thresholdValue; + + private String inputValue; + + private String countLimit; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/ZeroShotClassifier.java b/src/main/java/in/handyman/raven/lib/model/ZeroShotClassifier.java new file mode 100644 index 00000000..5edf8936 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ZeroShotClassifier.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ZeroShotClassifier" +) +public class ZeroShotClassifier implements IActionContext { + private String name; + + private String candidateLabels; + + private String content; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/ZeroShotClassifierPaperFilter.java b/src/main/java/in/handyman/raven/lib/model/ZeroShotClassifierPaperFilter.java new file mode 100644 index 00000000..1048e797 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ZeroShotClassifierPaperFilter.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ZeroShotClassifierPaperFilter" +) +public class ZeroShotClassifierPaperFilter implements IActionContext { + private String name; + + private String resourceConn; + + private String processID; + + private String threadCount; + + private String endPoint; + + private String readBatchSize; + + private String writeBatchSize; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/ZipBatch.java b/src/main/java/in/handyman/raven/lib/model/ZipBatch.java new file mode 100644 index 00000000..325659a1 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ZipBatch.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ZipBatch" +) +public class ZipBatch implements IActionContext { + private String name; + + private String groupId; + + private String outputDir; + + private String resourceConn; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/ZipContentList.java b/src/main/java/in/handyman/raven/lib/model/ZipContentList.java new file mode 100644 index 00000000..59b8edc6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ZipContentList.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ZipContentList" +) +public class ZipContentList implements IActionContext { + private String name; + + private String resourceConn; + + private String documentId; + + private String originId; + + private String zipFilePath; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/ZipFileCreationOutbound.java b/src/main/java/in/handyman/raven/lib/model/ZipFileCreationOutbound.java new file mode 100644 index 00000000..eff739f1 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/ZipFileCreationOutbound.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model; + +import in.handyman.raven.lambda.action.ActionContext; +import in.handyman.raven.lambda.action.IActionContext; +import java.lang.Boolean; +import java.lang.String; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * Auto Generated By Raven + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ActionContext( + actionName = "ZipFileCreationOutbound" +) +public class ZipFileCreationOutbound implements IActionContext { + private String name; + + private String resultTable; + + private String outputDir; + + private String processId; + + private String resourceConn; + + private String querySet; + + private Boolean condition = true; +} diff --git a/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationConsumerProcess.java new file mode 100644 index 00000000..3732ebab --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationConsumerProcess.java @@ -0,0 +1,289 @@ +package in.handyman.raven.lib.model.autorotation; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.AutoRotationAction; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.triton.ConsumerProcessApiStatus; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.*; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.io.IOException; +import java.net.URL; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.TimeUnit; + +public class AutoRotationConsumerProcess implements CoproProcessor.ConsumerProcess { + public static final String TRITON_REQUEST_ACTIVATOR = "triton.request.activator"; + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MEDIA_TYPE_JSON = MediaType + .parse("application/json; charset=utf-8"); + private final String outputDir; + + public final ActionExecutionAudit action; + private final OkHttpClient httpclient; + private final AutoRotationAction aAction; + private final String AUTO_ROTATION = "AUTO_ROTATION"; + + private final int timeOut; + + + public AutoRotationConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action, String outputDir, AutoRotationAction aAction) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.outputDir = outputDir; + this.aAction = aAction; + this.timeOut = aAction.getTimeOut(); + this.httpclient = new OkHttpClient.Builder() + .connectTimeout(this.timeOut, TimeUnit.MINUTES) + .writeTimeout(this.timeOut, TimeUnit.MINUTES) + .readTimeout(this.timeOut, TimeUnit.MINUTES) + .build(); + } + + + @Override + public List process(URL endpoint, AutoRotationInputTable entity) throws IOException { + + List parentObj = new ArrayList<>(); + String entityFilePath = entity.getFilePath(); + + + String rootpipelineId = String.valueOf(entity.getRootPipelineId()); + String process = "auto rotation"; + String filePath = String.valueOf(entity.getFilePath()); + Long actionId = action.getActionId(); + + + //payload + AutoRotationData autoRotationRequest = new AutoRotationData(); + autoRotationRequest.setRootPipelineId(Long.valueOf(rootpipelineId)); + autoRotationRequest.setActionId(actionId); + autoRotationRequest.setProcess(process); + autoRotationRequest.setInputFilePath(filePath); + autoRotationRequest.setOutputDir(outputDir); + String jsonInputRequest = mapper.writeValueAsString(autoRotationRequest); + + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("AUTO ROTATOR START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + + TritonInputRequest tritonInputRequest = new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + String jsonRequest = mapper.writeValueAsString(tritonInputRequest); + + + log.info(aMarker, " Input variables id : {}", action.getActionId()); + + + if (log.isInfoEnabled()) { + log.info(aMarker, "Request has been build with the parameters \n URI : {}, with inputFilePath {} and outputDir {}", endpoint, entityFilePath, outputDir); + } + String tritonRequestActivator = action.getContext().get(TRITON_REQUEST_ACTIVATOR); + + + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonInputRequest, MEDIA_TYPE_JSON)).build(); + coproRequestBuider(entity, request, parentObj); + } else { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonRequest, MEDIA_TYPE_JSON)).build(); + tritonRequestBuilder(entity, request, parentObj); + } + + + return parentObj; + } + + private void coproRequestBuider(AutoRotationInputTable entity, Request request, List parentObj) { + Integer groupId = entity.getGroupId(); + Long processId = entity.getProcessId(); + String templateId = entity.getTemplateId(); + Long tenantId = entity.getTenantId(); + Integer paperNo = entity.getPaperNo(); + Long rootPipelineId = entity.getRootPipelineId(); + try (Response response = httpclient.newCall(request).execute()) { + + if (response.isSuccessful()) { + String responseBody = response.body().string(); + extractOuputDataRequest(entity, responseBody, parentObj, "", ""); + + } else { + parentObj.add( + AutoRotationOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .paperNo(paperNo) + .status(ConsumerProcessApiStatus.FAILED.getStatusDescription()) + .stage(AUTO_ROTATION) + .message(response.message()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(Long.valueOf(rootPipelineId)) + .build()); + log.info(aMarker, "Error in getting response {}", response.message()); + } + } catch (Exception e) { + parentObj.add( + AutoRotationOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .paperNo(paperNo) + .status(ConsumerProcessApiStatus.FAILED.getStatusDescription()) + .stage(AUTO_ROTATION) + .message(ExceptionUtil.toString(e)) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(Long.valueOf(rootPipelineId)) + .build()); + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("AutoRotation consumer failed for batch/group " + groupId, + handymanException, + this.action); + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + } + } + + private void tritonRequestBuilder(AutoRotationInputTable entity, Request request, List parentObj) { + Integer groupId = entity.getGroupId(); + Long processId = entity.getProcessId(); + String templateId = entity.getTemplateId(); + Long tenantId = entity.getTenantId(); + Integer paperNo = entity.getPaperNo(); + Long rootPipelineId = entity.getRootPipelineId(); + try (Response response = httpclient.newCall(request).execute()) { + if (response.isSuccessful()) { + String responseBody = response.body().string(); + AutoRotationModelResponse modelResponse = mapper.readValue(responseBody, AutoRotationModelResponse.class); + + if (modelResponse.getOutputs() != null && !modelResponse.getOutputs().isEmpty()) { + modelResponse.getOutputs().forEach(o -> o.getData().forEach(autoRotationDataItem -> { + extractOuputDataRequest(entity, autoRotationDataItem, parentObj, modelResponse.getModelName(), modelResponse.getModelVersion()); + })); + + } + + } else { + parentObj.add( + AutoRotationOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .paperNo(paperNo) + .status(ConsumerProcessApiStatus.FAILED.getStatusDescription()) + .stage(AUTO_ROTATION) + .message(response.message()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(Long.valueOf(rootPipelineId)) + .build()); + log.info(aMarker, "Error in getting response {}", response.message()); + } + } catch (Exception e) { + parentObj.add( + AutoRotationOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .paperNo(paperNo) + .status(ConsumerProcessApiStatus.FAILED.getStatusDescription()) + .stage(AUTO_ROTATION) + .message(ExceptionUtil.toString(e)) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(Long.valueOf(rootPipelineId)) + .build()); + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("AutoRotation consumer failed for batch/group " + groupId, + handymanException, + this.action); + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + } + } + + private void extractOuputDataRequest(AutoRotationInputTable entity, String autoRotationDataItem, List parentObj, String modelName, String modelVersion) { + Integer groupId = entity.getGroupId(); + Long processId = entity.getProcessId(); + String templateId = entity.getTemplateId(); + Long tenantId = entity.getTenantId(); + Integer paperNo = entity.getPaperNo(); + Long rootPipelineId = entity.getRootPipelineId(); + try { + AutoRotationDataItem autoRotationFilePath = mapper.readValue(autoRotationDataItem, AutoRotationDataItem.class); + + + parentObj.add(AutoRotationOutputTable + .builder() + .processedFilePath(autoRotationFilePath.getProcessedFilePaths()) + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .paperNo(paperNo) + .status(ConsumerProcessApiStatus.COMPLETED.getStatusDescription()) + .stage(AUTO_ROTATION) + .message("Auto rotation macro completed") + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .modelName(modelName) + .modelVersion(modelVersion) + .build() + ); + } catch (JsonProcessingException e) { + + parentObj.add( + AutoRotationOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .paperNo(paperNo) + .status(ConsumerProcessApiStatus.FAILED.getStatusDescription()) + .stage(AUTO_ROTATION) + .message(ExceptionUtil.toString(e)) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(Long.valueOf(rootPipelineId)) + .build()); + log.error(aMarker, "The Exception occurred in processing response {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("AutoRotation consumer failed for batch/group " + groupId, + handymanException, + this.action); + } + } + +} + + diff --git a/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationData.java b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationData.java new file mode 100644 index 00000000..0ab37acf --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationData.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.autorotation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class AutoRotationData { + private Long rootPipelineId; + private Long actionId; + private String process; + private String inputFilePath; + private String outputDir; + } + + diff --git a/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationDataItem.java b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationDataItem.java new file mode 100644 index 00000000..ce48a64e --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationDataItem.java @@ -0,0 +1,16 @@ +package in.handyman.raven.lib.model.autorotation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class AutoRotationDataItem { + private String processedFilePaths; + +} + diff --git a/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationInputTable.java b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationInputTable.java new file mode 100644 index 00000000..9ff67a32 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationInputTable.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model.autorotation; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class AutoRotationInputTable implements CoproProcessor.Entity { + private String originId; + private Integer paperNo; + private Integer groupId; + private String filePath; + private Long tenantId; + private String templateId; + private Long processId; + private String outputDir; + private Long rootPipelineId; + public String process; + + @Override + public List getRowData() { + return null; + } + + + +} diff --git a/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationModelResponse.java b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationModelResponse.java new file mode 100644 index 00000000..c7beb49f --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationModelResponse.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.autorotation; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class AutoRotationModelResponse { + @JsonProperty("model_name") + private String modelName; + @JsonProperty("model_version") + private String modelVersion; + private List outputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationOutput.java b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationOutput.java new file mode 100644 index 00000000..7ee7fcd0 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationOutput.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib.model.autorotation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class AutoRotationOutput { + private String name; + private String datatype; + private List shape; + private List data; +} + diff --git a/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationOutputTable.java b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationOutputTable.java new file mode 100644 index 00000000..e981df28 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/autorotation/AutoRotationOutputTable.java @@ -0,0 +1,41 @@ +package in.handyman.raven.lib.model.autorotation; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class AutoRotationOutputTable implements CoproProcessor.Entity { + + private String originId; + private Integer groupId; + private Long tenantId; + private String templateId; + private Long processId; + private String processedFilePath; + private Integer paperNo; + private String status; + private String stage; + private String message; + private Timestamp createdOn; + private Long rootPipelineId; + private String modelName; + private String modelVersion; + + + @Override + public List getRowData() { + return Stream.of(this.originId, this.groupId, this.tenantId, this.templateId, this.processId, this.processedFilePath + , this.paperNo, this.status, this.stage, this.message, this.createdOn, this.rootPipelineId, this.modelName, this.modelVersion).collect(Collectors.toList()); + } +} diff --git a/src/main/java/in/handyman/raven/lib/model/common/ComparisonDataItem.java b/src/main/java/in/handyman/raven/lib/model/common/ComparisonDataItem.java new file mode 100644 index 00000000..7ce7e1d5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/common/ComparisonDataItem.java @@ -0,0 +1,15 @@ +package in.handyman.raven.lib.model.common; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class ComparisonDataItem { + private String sentence; + private Double similarityPercent; +} diff --git a/src/main/java/in/handyman/raven/lib/model/common/ComparisonOutput.java b/src/main/java/in/handyman/raven/lib/model/common/ComparisonOutput.java new file mode 100644 index 00000000..ba981ca5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/common/ComparisonOutput.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.common; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ComparisonOutput { + private String name; + private String datatype; + private List shape; + private List data; + } + + diff --git a/src/main/java/in/handyman/raven/lib/model/common/ComparisonPayload.java b/src/main/java/in/handyman/raven/lib/model/common/ComparisonPayload.java new file mode 100644 index 00000000..d9918a71 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/common/ComparisonPayload.java @@ -0,0 +1,21 @@ +package in.handyman.raven.lib.model.common; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class ComparisonPayload { + + private String inputSentence; + private List sentence; + private Long rootPipelineId; + private Long actionId; + private String process; + +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/model/common/ComparisonResponse.java b/src/main/java/in/handyman/raven/lib/model/common/ComparisonResponse.java new file mode 100644 index 00000000..7fbcc430 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/common/ComparisonResponse.java @@ -0,0 +1,22 @@ +package in.handyman.raven.lib.model.common; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ComparisonResponse { + @JsonProperty("model_name") + private String modelName; + @JsonProperty("model_version") + private String modelVersion; + private List outputs; + } + + diff --git a/src/main/java/in/handyman/raven/lib/model/common/ComparisonResquest.java b/src/main/java/in/handyman/raven/lib/model/common/ComparisonResquest.java new file mode 100644 index 00000000..94604b4a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/common/ComparisonResquest.java @@ -0,0 +1,16 @@ +package in.handyman.raven.lib.model.common; + +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class ComparisonResquest { + private List inputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/common/IntelliMatchCopro.java b/src/main/java/in/handyman/raven/lib/model/common/IntelliMatchCopro.java new file mode 100644 index 00000000..59d71dc4 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/common/IntelliMatchCopro.java @@ -0,0 +1,17 @@ +package in.handyman.raven.lib.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +@JsonIgnoreProperties(ignoreUnknown = true) +public class IntelliMatchCopro { + String sentence; + double similarityPercent; +} diff --git a/src/main/java/in/handyman/raven/lib/model/common/IntellimatchInputTable.java b/src/main/java/in/handyman/raven/lib/model/common/IntellimatchInputTable.java new file mode 100644 index 00000000..e4c4927b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/common/IntellimatchInputTable.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public class IntellimatchInputTable implements CoproProcessor.Entity { + private String fileName; + private String originId; + private Integer groupId; + private Long rootPipelineId; + private String actualValue; + private String extractedValue; + private Double similarity; + private Integer confidenceScore; + @Override + public List getRowData() { + return null; + } + } + diff --git a/src/main/java/in/handyman/raven/lib/model/common/IntellimatchOutputTable.java b/src/main/java/in/handyman/raven/lib/model/common/IntellimatchOutputTable.java new file mode 100644 index 00000000..b1ca1aee --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/common/IntellimatchOutputTable.java @@ -0,0 +1,63 @@ +package in.handyman.raven.lib.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public class IntellimatchOutputTable implements CoproProcessor.Entity { + private String fileName; + private String originId; + private Integer groupId; + private Timestamp createdOn; + private Long rootPipelineId; + private String actualValue; + private String extractedValue; + private Double similarity; + private Integer confidenceScore; + private Double intelliMatch; + private String status; + private String stage; + private String message; + private String modelName; + private String modelVersion; + + + @Override + public List getRowData() { + return Stream.of( + this.fileName, + this.originId, + this.groupId, + this.createdOn, + this.rootPipelineId, + this.actualValue, + this.extractedValue, + this.similarity, + this.confidenceScore, + this.intelliMatch, + this.status, + this.stage, + this.message, + this.modelName, + this.modelVersion + + ).collect(Collectors.toList()); + } + } + + + diff --git a/src/main/java/in/handyman/raven/lib/model/common/MasterDataInputTable.java b/src/main/java/in/handyman/raven/lib/model/common/MasterDataInputTable.java new file mode 100644 index 00000000..19140479 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/common/MasterDataInputTable.java @@ -0,0 +1,31 @@ +package in.handyman.raven.lib.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public class MasterDataInputTable implements CoproProcessor.Entity { + String originId; + Integer paperNo; + String eocIdentifier; + String extractedValue; + String actualValue; + private Long rootPipelineId; + + @Override + public List getRowData() { + return null; + } + } + + diff --git a/src/main/java/in/handyman/raven/lib/model/common/MasterDataOutputTable.java b/src/main/java/in/handyman/raven/lib/model/common/MasterDataOutputTable.java new file mode 100644 index 00000000..d990bbf6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/common/MasterDataOutputTable.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +@AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + @JsonIgnoreProperties(ignoreUnknown = true) + public class MasterDataOutputTable implements CoproProcessor.Entity { + String originId; + Integer paperNo; + String eocIdentifier; + private Timestamp createdOn; + String extractedValue; + String actualValue; + double intelliMatch; + String status; + String stage; + String message; + private Long rootPipelineId; + private String modelName; + private String modelVersion; + + + @Override + public List getRowData() { + return Stream.of(this.originId, this.paperNo, this.eocIdentifier, this.createdOn, this.actualValue, this.extractedValue, + this.intelliMatch, this.status, this.stage, this.message, this.rootPipelineId, this.modelName, this.modelVersion + ).collect(Collectors.toList()); + } + } + diff --git a/src/main/java/in/handyman/raven/lib/model/common/MasterdataComparisonProcess.java b/src/main/java/in/handyman/raven/lib/model/common/MasterdataComparisonProcess.java new file mode 100644 index 00000000..fd9955d7 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/common/MasterdataComparisonProcess.java @@ -0,0 +1,198 @@ +package in.handyman.raven.lib.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import in.handyman.raven.util.ExceptionUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +import static in.handyman.raven.lib.MasterdataComparisonAction.MediaTypeJSON; + +public class MasterdataComparisonProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + public final ActionExecutionAudit action; + final ObjectMapper mapper; + private final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(100, TimeUnit.MINUTES) + .writeTimeout(100, TimeUnit.MINUTES) + .readTimeout(100, TimeUnit.MINUTES) + .build(); + String URI; + + public MasterdataComparisonProcess(Logger log, Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.mapper = new ObjectMapper(); + this.action = action; + + } + + @Override + public List process(URL endpoint, MasterDataInputTable result) throws Exception { + log.info(aMarker, "coproProcessor consumer process started with endpoint {} and entity {}", endpoint, result); + List parentObj = new ArrayList<>(); + AtomicInteger atomicInteger = new AtomicInteger(); + + + String eocIdentifier = result.getEocIdentifier(); + String extractedValue = result.getExtractedValue(); + String actualValue = result.getActualValue(); + Integer paperNo = result.getPaperNo(); + String originId = result.getOriginId(); + String process="MASTER_DATA"; + Long actionId= action.getActionId(); + Long rootpipelineId= result.getRootPipelineId(); + String inputSentence = result.getActualValue(); + List sentence = Collections.singletonList(result.getExtractedValue()); + ObjectMapper objectMapper = new ObjectMapper(); + +//payload + ComparisonPayload Comparisonpayload = new ComparisonPayload(); + Comparisonpayload.setRootPipelineId(rootpipelineId); + Comparisonpayload.setActionId(actionId); + Comparisonpayload.setProcess(process); + Comparisonpayload.setInputSentence(inputSentence); + Comparisonpayload.setSentence(sentence); + String jsonInputRequest = objectMapper.writeValueAsString(Comparisonpayload); + + ComparisonResquest requests = new ComparisonResquest(); + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("COS START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + // requestBody.setData(Collections.singletonList(jsonNodeRequest)); + + + // requestBody.setData(Collections.singletonList(Comparisonpayload)); + + TritonInputRequest tritonInputRequest=new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + if (result.getActualValue() != null) { + final Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonInputRequest.toString(), MediaTypeJSON)).build(); + log.info("master data comparison reqest body {}",request); + try (Response response = httpclient.newCall(request).execute()) { + log.info("master data comparison response body {}",response.body()); + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + + List output = mapper.readValue(responseBody, new TypeReference<>() { + }); + double matchPercent = output.get(0) != null ? Math.round(output.get(0).getSimilarityPercent() * 100.0) / 100.0 : 0.0; + ObjectMapper objectMappers = new ObjectMapper(); + ComparisonResponse Response = objectMappers.readValue(responseBody, ComparisonResponse.class); + if (Response.getOutputs() != null && !Response.getOutputs().isEmpty()) { + Response.getOutputs().forEach(o -> { + o.getData().forEach(ComparisonDataItem -> { + parentObj.add( + MasterDataOutputTable + .builder() + .originId(originId) + .eocIdentifier(eocIdentifier) + .paperNo(paperNo) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .extractedValue(extractedValue) + .actualValue(actualValue) + .intelliMatch(ComparisonDataItem.getSimilarityPercent()) + .status("COMPLETED") + .stage("MASTER-DATA-COMPARISON") + .message("Master data comparison macro completed") + .rootPipelineId(result.getRootPipelineId()) + .modelName(Response.getModelName()) + .modelVersion(Response.getModelVersion()) + .build()); + + }); + }); + } + } else { + parentObj.add( + MasterDataOutputTable.builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .eocIdentifier(eocIdentifier) + .paperNo(paperNo) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .extractedValue(extractedValue) + .actualValue(actualValue) + .intelliMatch(0) + .status("FAILED") + .stage("MASTER-DATA-COMPARISON") + .message("Master data comparison macro failed") + .rootPipelineId(result.getRootPipelineId()) + .build() + ); + log.error(aMarker, "The Exception occurred in master data comparison by {} ", response); + throw new HandymanException(responseBody); + } + } catch (Exception exception) { + parentObj.add( + MasterDataOutputTable.builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .eocIdentifier(eocIdentifier) + .paperNo(paperNo) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .extractedValue(extractedValue) + .actualValue(actualValue) + .intelliMatch(0) + .status("FAILED") + .stage("MASTER-DATA-COMPARISON") + .message("Master data comparison macro failed") + .rootPipelineId(result.getRootPipelineId()) + .build() + ); + + log.error(aMarker, "Exception occurred in copro api for master data comparison - {} ", ExceptionUtil.toString(exception)); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("Paper classification (hw-detection) consumer failed for originId "+ originId, handymanException, this.action); + } + } else { + parentObj.add( + MasterDataOutputTable.builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .eocIdentifier(eocIdentifier) + .paperNo(paperNo) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .extractedValue(extractedValue) + .actualValue(actualValue) + .intelliMatch(0) + .status("COMPLETED") + .stage("MASTER-DATA-COMPARISON") + .message("Master data comparison macro completed") + .build() + ); + log.info(aMarker, "coproProcessor consumer process with empty actual value entity {}", result); + } + atomicInteger.set(0); + log.info(aMarker, "coproProcessor consumer process with output entity {}", parentObj); + return parentObj; + } +} + + diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/ConsumerProcessApiStatus.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/ConsumerProcessApiStatus.java new file mode 100644 index 00000000..0cf9537b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/ConsumerProcessApiStatus.java @@ -0,0 +1,17 @@ +package in.handyman.raven.lib.model.filemergerpdf; + +import lombok.AllArgsConstructor; +import lombok.Getter; + + + @Getter + @AllArgsConstructor + + + public enum ConsumerProcessApiStatus { + + COMPLETED("COMPLETED"),FAILED("FAILED"); + private final String statusDescription; + + } + diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerDataItem.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerDataItem.java new file mode 100644 index 00000000..84214c35 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerDataItem.java @@ -0,0 +1,14 @@ +package in.handyman.raven.lib.model.filemergerpdf; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class FileMergerDataItem { + private String processedFilePath; +} diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerFileInfo.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerFileInfo.java new file mode 100644 index 00000000..aba400c5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerFileInfo.java @@ -0,0 +1,24 @@ +package in.handyman.raven.lib.model.filemergerpdf; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder + public class FileMergerFileInfo { + + + private String file_id; + private Long process_id; + private Long root_pipeline_id; + private String file_checksum; + private String file_extension; + private String file_name; + private String file_path; + private String file_size; + } + diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerOutput.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerOutput.java new file mode 100644 index 00000000..9f954022 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerOutput.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.filemergerpdf; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class FileMergerOutput { + private String name; + private String datatype; + private List shape; + private List data; +} + diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerPayload.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerPayload.java new file mode 100644 index 00000000..1e2a8453 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerPayload.java @@ -0,0 +1,22 @@ +package in.handyman.raven.lib.model.filemergerpdf; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class FileMergerPayload { + + private Long rootPipelineId; + private Long actionId; + private String process; + private List inputFilePaths; + private String outputDir; + private String outputFileName; +} diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerPdfConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerPdfConsumerProcess.java new file mode 100644 index 00000000..bc2fd3dd --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerPdfConsumerProcess.java @@ -0,0 +1,253 @@ +package in.handyman.raven.lib.model.filemergerpdf; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.access.ResourceAccess; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.FileMergerPdf; +import okhttp3.*; +import org.jdbi.v3.core.Jdbi; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +public class FileMergerPdfConsumerProcess implements CoproProcessor.ConsumerProcess { + private static final MediaType mediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + private final ActionExecutionAudit action; + + private final Logger log; + + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + + + private final FileMergerPdf fileMergerPdf; + + + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public FileMergerPdfConsumerProcess(final Logger log, final Marker aMarker, final ActionExecutionAudit action, final Object fileMergerPdf) { + this.fileMergerPdf = (FileMergerPdf) fileMergerPdf; + + this.action = action; + this.log = log; + this.aMarker = aMarker; + + } + + @Override + public List process(URL endpoint, FileMergerpdfInputEntity entity) throws JsonProcessingException { + List parentObj = new ArrayList<>(); + + try { + log.info(aMarker, "File merger Action for {} has been started", fileMergerPdf.getName()); + final Jdbi jdbi = ResourceAccess.rdbmsJDBIConn(fileMergerPdf.getResourceConn()); + + + try { + final List filePathString = entity.getFilePaths(); + final String outputDir = fileMergerPdf.getOutputDir(); + final Long rootPipelineId =entity.getRootPipelineId(); + final Long tenantId=entity.getTenantId(); + final Long group_id= entity.getGroupId(); + final String fileId=entity.getFileId(); + final Long actionId =action.getActionId(); + String fileMerger = "FILE_MERGER"; + final String outputFileName = entity.getOutputFileName(); + log.info(aMarker, "file path string {}", filePathString); + File file = new File(String.valueOf(filePathString)); + log.info(aMarker, "created file {}", file); + log.info("check file is directory {}", file.isDirectory()); + log.info("check file is a file path {}", file.isFile()); + + + FileMergerPayload fileMergerPayload = new FileMergerPayload(); + fileMergerPayload.setRootPipelineId(rootPipelineId); + fileMergerPayload.setProcess(fileMerger); + fileMergerPayload.setInputFilePaths(filePathString); + fileMergerPayload.setActionId(actionId); + fileMergerPayload.setOutputDir(outputDir); + fileMergerPayload.setOutputFileName(outputFileName); + + + ObjectMapper objectMapper = new ObjectMapper(); + String jsonInputRequest = objectMapper.writeValueAsString(fileMergerPayload); + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("MERGER START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + TritonInputRequest tritonInputRequest = new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + + String tritonRequestActivator = action.getContext().get("triton.request.activator"); + + if (Objects.equals("false" , tritonRequestActivator)) { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonInputRequest, mediaTypeJSON)).build(); + coproRequestBuilder(entity, request, parentObj); + } else { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonRequest, mediaTypeJSON)).build(); + tritonRequestBuilder(entity, request, parentObj); + } + + + if (log.isInfoEnabled()) { + log.info("input object node in the consumer fileMerger inputFilePath {}", filePathString); + } + + + if (log.isInfoEnabled()) { + log.info("input object node in the consumer fileMerger coproURL {}, inputFilePath {}", endpoint, filePathString); + } + + + + } catch (IOException ex) { + throw new RuntimeException(ex); + } + + + + log.info(aMarker, "file merger Info Action for {} has been completed", fileMergerPdf.getName()); + +} catch (Exception e) { + log.error(aMarker, "Error in file merger execute", e); + throw new HandymanException("Exception occurred in file merger execute", e, action); + } + + return parentObj; + } + + private void coproRequestBuilder(FileMergerpdfInputEntity entity, Request request, List parentObj) { + try (Response response = new OkHttpClient().newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + + extractedOutputDataRequest(entity, responseBody, parentObj, "", ""); + } + else { + // Handle non-successful response here + log.error(aMarker, "Unsuccessful response received in copro: {}", response.code()); + } + + } catch (IOException e) { + throw new RuntimeException(e); + } + + } + + private void tritonRequestBuilder(FileMergerpdfInputEntity entity, Request request, List parentObj) throws IOException { + try (Response response = new OkHttpClient().newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + FileMergerResponse modelResponse = mapper.readValue(responseBody, FileMergerResponse.class); + + if (modelResponse.getOutputs() != null && !modelResponse.getOutputs().isEmpty()) { + modelResponse.getOutputs().forEach(o -> o.getData().forEach(fileMergerDataItem -> { + extractedOutputDataRequest(entity, fileMergerDataItem, parentObj, modelResponse.getModelName(), modelResponse.getModelVersion()); + })); + } + } else { + // Handle non-successful response here + log.error(aMarker, "Unsuccessful response received in triton: {}", response.code()); + } + } + catch(Exception e){ + log.error(aMarker, "Unsuccessful response received in triton: {}", e); + } + } + + private void extractedOutputDataRequest(FileMergerpdfInputEntity entity, String fileMergerDataItem, List parentObj, String modelName, String modelVersion) { + Long rootPipelineId =entity.getRootPipelineId(); + Long tenantId=entity.getTenantId(); + Long group_id= entity.getGroupId(); + String outputFileName = entity.getOutputFileName(); + try { + FileMergerDataItem fileMergerDataItem1 = mapper.readValue(fileMergerDataItem, new TypeReference<>() { + }); + parentObj.add(FileMergerpdfOutputEntity + .builder() + .processedFilePath(fileMergerDataItem1.getProcessedFilePath()) + .status(ConsumerProcessApiStatus.COMPLETED.getStatusDescription()) + .stage("fileMerger") + .processId(entity.getProcessId()) + .message("file merger macro completed") + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .lastUpdatedOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .modelName(modelName) + .tenantId(tenantId) + .originId(entity.getOriginId()) + .groupId(group_id) + .modelName(modelName) + .fileName(outputFileName) + .processedFilePath(fileMergerDataItem1.getProcessedFilePath()) + .modelVersion(modelVersion) + .build()); + } catch (JsonMappingException e) { + + parentObj.add(FileMergerpdfOutputEntity + .builder() + .status(ConsumerProcessApiStatus.FAILED.getStatusDescription()) + .stage("fileMerger") + .originId(entity.getOriginId()) + .groupId(entity.getGroupId()) + .message("file merger macro failed") + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .lastUpdatedOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .tenantId(tenantId) + .modelName(modelName) + .modelVersion(modelVersion) + .build()); + throw new HandymanException("exception in processing triton output response node",e,action); + } catch (JsonProcessingException e) { + parentObj.add(FileMergerpdfOutputEntity + .builder() + .status(ConsumerProcessApiStatus.FAILED.getStatusDescription()) + .stage("fileMerger") + .originId(entity.getOriginId()) + .groupId(entity.getGroupId()) + .message("file merger macro failed") + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .lastUpdatedOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .tenantId(tenantId) + .modelName(modelName) + .modelVersion(modelVersion) + .build()); + throw new HandymanException("exception in processing triton input node",e,action); + } + } + +} + + + + + diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerRequest.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerRequest.java new file mode 100644 index 00000000..74aa070d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerRequest.java @@ -0,0 +1,7 @@ +package in.handyman.raven.lib.model.filemergerpdf; + +import java.util.List; + +public class FileMergerRequest { + private List inputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerResponse.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerResponse.java new file mode 100644 index 00000000..b354d30b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerResponse.java @@ -0,0 +1,21 @@ +package in.handyman.raven.lib.model.filemergerpdf; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class FileMergerResponse { + @JsonProperty("model_name") + private String modelName; + + @JsonProperty("model_version") + private String modelVersion; + private List outputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerpdfInputEntity.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerpdfInputEntity.java new file mode 100644 index 00000000..b602e0b5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerpdfInputEntity.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model.filemergerpdf; + + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class FileMergerpdfInputEntity implements CoproProcessor.Entity { + + private String originId; + private List filePaths; + private Long rootPipelineId; + private Long tenantId; + private Long processId; + private Long groupId; + private String fileId; + private String outputFileName; + + + @Override + public List getRowData() { + return null; + } +} diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerpdfOutputEntity.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerpdfOutputEntity.java new file mode 100644 index 00000000..49fa16e9 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/FileMergerpdfOutputEntity.java @@ -0,0 +1,45 @@ +package in.handyman.raven.lib.model.filemergerpdf; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class FileMergerpdfOutputEntity implements CoproProcessor.Entity { + private String originId; + private Long tenantId; + private Long processId; + private Long groupId; + private String status; + private String stage; + private String message; + private String processedFilePath; + private String fileName; + private Timestamp createdOn; + private Timestamp lastUpdatedOn; + private Long rootPipelineId; + private String modelName; + private String modelVersion; + + + @Override + public List getRowData() { + return Stream.of(this.originId, this.tenantId,this.groupId,this.processedFilePath,this.createdOn,this.lastUpdatedOn,this.rootPipelineId,this.status, this.stage, this.message,this.modelName,this.modelVersion,this.fileName,this.processId).collect(Collectors.toList()); + } + +} + + + + + diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/TritonInputRequest.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/TritonInputRequest.java new file mode 100644 index 00000000..26e1f617 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/TritonInputRequest.java @@ -0,0 +1,16 @@ +package in.handyman.raven.lib.model.filemergerpdf; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TritonInputRequest { + + private List inputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/filemergerpdf/TritonRequest.java b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/TritonRequest.java new file mode 100644 index 00000000..4cccaa2b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/filemergerpdf/TritonRequest.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib.model.filemergerpdf; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TritonRequest { + + private String name; + private List shape; + private String datatype; + private List data; +} diff --git a/src/main/java/in/handyman/raven/lib/model/hwdectection/HwClassificationConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwClassificationConsumerProcess.java new file mode 100644 index 00000000..4cdc35f2 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwClassificationConsumerProcess.java @@ -0,0 +1,268 @@ +package in.handyman.raven.lib.model.hwdectection; + + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.*; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.util.*; +import java.util.concurrent.TimeUnit; + +import static in.handyman.raven.lib.HwDetectionAction.httpClientTimeout; + +public class HwClassificationConsumerProcess implements CoproProcessor.ConsumerProcess { + public static final String TRITON_REQUEST_ACTIVATOR = "triton.request.activator"; + private final Logger log; + private final Marker aMarker; + private final String STAGE="PAPER_CLASSIFICATION"; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType mediaTypeJson = MediaType + .parse("application/json; charset=utf-8"); + public final ActionExecutionAudit action; + + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .writeTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .readTimeout(Long.parseLong(httpClientTimeout), TimeUnit.MINUTES) + .build(); + + public HwClassificationConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + } + + @Override + public List process(URL endpoint, HwClassificationInputTable entity) throws Exception { + + List parentObj = new ArrayList<>(); + String entityFilePath = entity.getFilePath(); + Long rootpipelineId = action.getRootPipelineId(); + Long actionId = action.getActionId(); ; + String modelPath = action.getModelPath(); + String filePath = String.valueOf(entity.getFilePath()); + String outputDir = String.valueOf(entity.getOutputDir()); + ObjectMapper objectMapper = new ObjectMapper(); + + //payload + HwDetectionPayload hwDetectionPayload = new HwDetectionPayload(); + hwDetectionPayload.setRootPipelineId(rootpipelineId); + hwDetectionPayload.setActionId(actionId); + hwDetectionPayload.setProcess(STAGE); + hwDetectionPayload.setInputFilePath(filePath); + hwDetectionPayload.setOutputDir(outputDir); + hwDetectionPayload.setModelPath(modelPath); + + String jsonInputRequest = objectMapper.writeValueAsString(hwDetectionPayload); + + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("PAPER CLASSIFIER START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + TritonInputRequest tritonInputRequest=new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + + String tritonRequestActivator = action.getContext().get(TRITON_REQUEST_ACTIVATOR); + + + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonInputRequest, mediaTypeJson)).build(); + coproRequestBuilder(entity, request, parentObj); + } else { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonRequest, mediaTypeJson)).build(); + tritonRequestBuilder(entity, request, parentObj); + } + + + if(log.isInfoEnabled()) { + log.info(aMarker, "Request has been build with the parameters \n coproUrl {} ,inputFilePath : {} modelPath {} outputDir {} ", endpoint,entityFilePath,modelPath,outputDir); + } + + return parentObj; + } + + private void coproRequestBuilder(HwClassificationInputTable entity, Request request, List parentObj) { + String createdUserId = entity.getCreatedUserId(); + String lastUpdatedUserId = entity.getLastUpdatedUserId(); + Long tenantId = entity.getTenantId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + String templateId = entity.getTemplateId(); + Long modelId = entity.getModelId(); + Integer groupId = entity.getGroupId(); + try (Response response = httpclient.newCall(request).execute()) { + if (response.isSuccessful()) { + + String responseBody = Objects.requireNonNull(response.body()).string(); + + extractOutputDataRequest(entity, responseBody, parentObj, "", ""); + } else { + + parentObj.add(HwClassificationOutputTable.builder() + .createdUserId(Optional.ofNullable(createdUserId).map(String::valueOf).orElse(null)) + .lastUpdatedUserId(Optional.ofNullable(lastUpdatedUserId).map(String::valueOf).orElse(null)) + .tenantId(Optional.ofNullable(tenantId).map(String::valueOf).map(Long::valueOf).orElse(null)) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(Optional.ofNullable(paperNo).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .templateId(Optional.ofNullable(templateId).map(String::valueOf).orElse(null)) + .modelId(Optional.ofNullable(modelId).map(String::valueOf).map(Long::parseLong).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .status("FAILED") + .stage(STAGE) + .message(response.message()) + .groupId(entity.getGroupId()) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + log.info(aMarker, "The Exception occurred in paper classification response"); + } + + + } catch (Exception e) { + parentObj.add(HwClassificationOutputTable.builder() + .createdUserId(Optional.ofNullable(createdUserId).map(String::valueOf).orElse(null)) + .lastUpdatedUserId(Optional.ofNullable(lastUpdatedUserId).map(String::valueOf).orElse(null)) + .tenantId(Optional.ofNullable(tenantId).map(String::valueOf).map(Long::valueOf).orElse(null)) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(Optional.ofNullable(paperNo).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .templateId(Optional.ofNullable(templateId).map(String::valueOf).orElse(null)) + .modelId(Optional.ofNullable(modelId).map(String::valueOf).map(Long::parseLong).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .status("FAILED") + .stage(STAGE) + .message(ExceptionUtil.toString(e)) + .groupId(entity.getGroupId()) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + log.error(aMarker, "The Exception occurred in paper classification request", e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Paper classification (hw-detection) consumer failed for batch/group "+ groupId, handymanException, this.action); + + } + } + + + private void tritonRequestBuilder(HwClassificationInputTable entity, Request request, List parentObj) { + String createdUserId = entity.getCreatedUserId(); + String lastUpdatedUserId = entity.getLastUpdatedUserId(); + Long tenantId = entity.getTenantId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + String templateId = entity.getTemplateId(); + Long modelId = entity.getModelId(); + Integer groupId = entity.getGroupId(); + try (Response response = httpclient.newCall(request).execute()){ + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + ObjectMapper objectMappers = new ObjectMapper(); + HwDetectionResponse hwDetectionResponse = objectMappers.readValue(responseBody, HwDetectionResponse.class); + if (hwDetectionResponse.getOutputs() != null && !hwDetectionResponse.getOutputs().isEmpty()) { + hwDetectionResponse.getOutputs().forEach(o -> { + o.getData().forEach(hwDetectionDataItem -> { + try { + extractOutputDataRequest(entity, hwDetectionDataItem, parentObj, hwDetectionResponse.getModelName(), hwDetectionResponse.getModelVersion()); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + + }); + }); + } + } + else { + parentObj.add(HwClassificationOutputTable.builder() + .createdUserId(Optional.ofNullable(createdUserId).map(String::valueOf).orElse(null)) + .lastUpdatedUserId(Optional.ofNullable(lastUpdatedUserId).map(String::valueOf).orElse(null)) + .tenantId(Optional.ofNullable(tenantId).map(String::valueOf).map(Long::valueOf).orElse(null)) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(Optional.ofNullable(paperNo).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .templateId(Optional.ofNullable(templateId).map(String::valueOf).orElse(null)) + .modelId(Optional.ofNullable(modelId).map(String::valueOf).map(Long::parseLong).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .status("FAILED") + .stage(STAGE) + .message(response.message()) + .groupId(entity.getGroupId()) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + log.info(aMarker, "The Exception occurred in paper classification response"); + } + } catch (Exception e) { + parentObj.add(HwClassificationOutputTable.builder() + .createdUserId(Optional.ofNullable(createdUserId).map(String::valueOf).orElse(null)) + .lastUpdatedUserId(Optional.ofNullable(lastUpdatedUserId).map(String::valueOf).orElse(null)) + .tenantId(Optional.ofNullable(tenantId).map(String::valueOf).map(Long::valueOf).orElse(null)) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(Optional.ofNullable(paperNo).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .templateId(Optional.ofNullable(templateId).map(String::valueOf).orElse(null)) + .modelId(Optional.ofNullable(modelId).map(String::valueOf).map(Long::parseLong).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .status("FAILED") + .stage(STAGE) + .message(ExceptionUtil.toString(e)) + .groupId(entity.getGroupId()) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + log.error(aMarker, "The Exception occurred in paper classification request", e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Paper classification (hw-detection) consumer failed for batch/group "+ groupId, handymanException, this.action); + + } + } + + private void extractOutputDataRequest(HwClassificationInputTable entity, String responseBody, List parentObj, String modelName, String modelVersion) throws JsonProcessingException { + String createdUserId = entity.getCreatedUserId(); + String lastUpdatedUserId = entity.getLastUpdatedUserId(); + Long tenantId = entity.getTenantId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + String templateId = entity.getTemplateId(); + Long modelId = entity.getModelId(); + Integer groupId = entity.getGroupId(); + log.info("copro api response body {}", responseBody); + + HwDetectionDataItem hwDetectionDataItem=mapper.readValue(responseBody, new TypeReference<>() {}); + + parentObj.add(HwClassificationOutputTable.builder().createdUserId(Optional.ofNullable(createdUserId).map(String::valueOf).orElse(null)) + .lastUpdatedUserId(Optional.ofNullable(lastUpdatedUserId).map(String::valueOf).orElse(null)) + .tenantId(Optional.ofNullable(tenantId).map(String::valueOf).map(Long::valueOf).orElse(null)) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(Optional.ofNullable(paperNo).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .templateId(Optional.ofNullable(templateId).map(String::valueOf).orElse(null)) + .modelId(Optional.ofNullable(modelId).map(String::valueOf).map(Long::parseLong).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).map(Integer::parseInt).orElse(null)) + .documentType(hwDetectionDataItem.getDocumentStatus()) + .confidenceScore(hwDetectionDataItem.getConfidenceScore()) + .status("COMPLETED") + .stage(STAGE) + .message("Paper Classification Finished") + .groupId(entity.getGroupId()) + .rootPipelineId(entity.getRootPipelineId()) + .modelName(modelName) + .modelVersion(modelVersion) + .build()); + } +} + + + + + diff --git a/src/main/java/in/handyman/raven/lib/model/hwdectection/HwClassificationInputTable.java b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwClassificationInputTable.java new file mode 100644 index 00000000..0cea0b30 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwClassificationInputTable.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model.hwdectection; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + @AllArgsConstructor + @NoArgsConstructor + @Data + @Builder + public class HwClassificationInputTable implements CoproProcessor.Entity{ + private String createdUserId; + private String lastUpdatedUserId; + private Long tenantId; + private Double modelScore; + private String originId; + private Integer paperNo; + private Integer groupId; + private String templateId; + private Long modelId; + private String filePath; + private Long rootPipelineId; + private String outputDir; + + + + @Override + public List getRowData() { + return null; + } + } + diff --git a/src/main/java/in/handyman/raven/lib/model/hwdectection/HwClassificationOutputTable.java b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwClassificationOutputTable.java new file mode 100644 index 00000000..6f51755a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwClassificationOutputTable.java @@ -0,0 +1,47 @@ +package in.handyman.raven.lib.model.hwdectection; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class HwClassificationOutputTable implements CoproProcessor.Entity{ + + private String createdUserId; + private String lastUpdatedUserId; + private Long tenantId; + private String originId; + private Integer groupId; + private Integer paperNo; + private String templateId; + private Long modelId; + private String documentType; + private Float confidenceScore; + private String status; + private String stage; + private String message; + private Long rootPipelineId; + private String modelName; + private String modelVersion; + + + + @Override + public List getRowData() { + return Stream.of(this.createdUserId,this.lastUpdatedUserId, this.tenantId, + this.originId, this.paperNo, this.templateId, this.modelId, + this.documentType, this.status, this.stage, this.message, this.groupId,this.rootPipelineId, this.confidenceScore, this.modelName, + this.modelVersion).collect(Collectors.toList()); + + } +} + diff --git a/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionDataItem.java b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionDataItem.java new file mode 100644 index 00000000..d21ea88c --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionDataItem.java @@ -0,0 +1,22 @@ +package in.handyman.raven.lib.model.hwdectection; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class HwDetectionDataItem { + + @JsonProperty("document_status") + private String documentStatus; + + @JsonProperty("confidence_score") + + private Float confidenceScore; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionOutput.java b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionOutput.java new file mode 100644 index 00000000..9c845306 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionOutput.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib.model.hwdectection; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class HwDetectionOutput { + + private String name; + private String datatype; + private List shape; + private List data; +} diff --git a/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionPayload.java b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionPayload.java new file mode 100644 index 00000000..2d9816d9 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionPayload.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib.model.hwdectection; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class HwDetectionPayload { + private Long rootPipelineId; + private Long actionId; + private String process; + private String inputFilePath; + private String outputDir; + private String modelPath; +} diff --git a/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionRequest.java b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionRequest.java new file mode 100644 index 00000000..5e2025ac --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionRequest.java @@ -0,0 +1,17 @@ +package in.handyman.raven.lib.model.hwdectection; + +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class HwDetectionRequest { + private List inputs; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionResponse.java b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionResponse.java new file mode 100644 index 00000000..33c73971 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/hwdectection/HwDetectionResponse.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.hwdectection; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class HwDetectionResponse { + @JsonProperty("model_name") + private String modelName; + @JsonProperty("model_version") + private String modelVersion; + private List outputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterConsumerProcess.java new file mode 100644 index 00000000..2a735430 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterConsumerProcess.java @@ -0,0 +1,269 @@ +package in.handyman.raven.lib.model.neradaptors; + +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.*; +import in.handyman.raven.lib.model.*; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class NerAdapterConsumerProcess implements CoproProcessor.ConsumerProcess { + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + public final ActionExecutionAudit action; + private static final String HTTP_CLIENT_TIMEOUT = "100"; + + private final Logger log; + private final Marker aMarker; + private final NervalidatorAction nerAction; + private final WordcountAction wordcountAction; + private final CharactercountAction charactercountAction; + private final AlphavalidatorAction alphaAction; + private final NumericvalidatorAction numericAction; + private final AlphanumericvalidatorAction alphaNumericAction; + private final DatevalidatorAction dateAction; + private final String PHONE_NUMBER_REGEX = "^\\(?(\\d{3})\\)?[-]?(\\d{3})[-]?(\\d{4})$"; + private final String NUMBER_REGEX = "^[+-]?(\\d+\\.?\\d*|\\.\\d+)$"; + private final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(Long.parseLong(HTTP_CLIENT_TIMEOUT), TimeUnit.MINUTES) + .writeTimeout(Long.parseLong(HTTP_CLIENT_TIMEOUT), TimeUnit.MINUTES) + .readTimeout(Long.parseLong(HTTP_CLIENT_TIMEOUT), TimeUnit.MINUTES) + .build(); + boolean multiverseValidator; + String[] restrictedAnswers; + String URI; + + public NerAdapterConsumerProcess(Logger log, Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.nerAction = new NervalidatorAction(action, log, Nervalidator.builder().build()); + this.wordcountAction = new WordcountAction(action, log, Wordcount.builder().build()); + this.charactercountAction = new CharactercountAction(action, log, Charactercount.builder().build()); + this.alphaAction = new AlphavalidatorAction(action, log, Alphavalidator.builder().build()); + this.numericAction = new NumericvalidatorAction(action, log, Numericvalidator.builder().build()); + this.alphaNumericAction = new AlphanumericvalidatorAction(action, log, Alphanumericvalidator.builder().build()); + this.dateAction = new DatevalidatorAction(action, log, Datevalidator.builder().build()); + } + + private static void updateEmptyValueAndCf(NerInputTable result) { + result.setInputValue(""); + result.setVqaScore(0); + } + + @Override + public List process(URL endpoint, NerInputTable result) throws Exception { + URI = String.valueOf(endpoint); + multiverseValidator = Boolean.parseBoolean(action.getContext().get("validation.multiverse-mode")); + restrictedAnswers = action.getContext().get("validation.restricted-answers").split(","); + log.info(aMarker, "Build 19-coproProcessor consumer process started with endpoint {} and entity {}", endpoint, result); + List parentObj = new ArrayList<>(); + String inputValue = result.getInputValue(); + int wordScore = wordcountAction.getWordCount(inputValue, + result.getWordLimit(), result.getWordThreshold()); + int charScore = CharactercountAction.getCharCount(inputValue, + result.getCharLimit(), result.getCharThreshold()); + Validator configurationDetails = Validator.builder() + .inputValue(inputValue) + .adapter(result.getAllowedAdapter()) + .allowedSpecialChar(result.getAllowedCharacters()) + .comparableChar(result.getComparableCharacters()) + .threshold(result.getValidatorThreshold()) + .build(); + + int validatorScore = computeAdapterScore(configurationDetails); + int validatorNegativeScore; + if (result.getRestrictedAdapterFlag() == 1 && validatorScore != 0) { + configurationDetails.setAdapter(result.getRestrictedAdapter()); + validatorNegativeScore = computeAdapterScore(configurationDetails); + } else { + validatorNegativeScore = 0; + } + double valConfidenceScore = wordScore + charScore + validatorScore - validatorNegativeScore; + log.info(aMarker, "Build 19-validator confidence score {}", valConfidenceScore); + + updateEmptyValueIfLowCf(result, valConfidenceScore); + updateEmptyValueForRestrictedAns(result, inputValue); + + + AtomicInteger atomicInteger = new AtomicInteger(); + log.info(aMarker, "coproProcessor consumer confidence score {}", valConfidenceScore); + String originId = result.getOriginId(); + Integer groupId = result.getGroupId(); + int sorId = result.getSorId(); + Long tenantId = result.getTenantId(); + String processId = result.getProcessId(); + int paperNo = result.getPaperNo(); + int sorItemId = result.getSorItemId(); + String sorKey = result.getSorKey(); + String question = result.getQuestion(); + int weight = result.getWeight(); + float vqaScore = result.getVqaScore(); + String createdUserId = result.getCreatedUserId(); + log.info(aMarker, "Build 19-validator vqa score {}", vqaScore); + + + if (valConfidenceScore >= 0) { + parentObj.add( + NerOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .sorId(sorId) + .tenantId(tenantId) + .processId(processId) + .paperNo(paperNo) + .sorItemId(sorItemId) + .sorItemName(sorKey) + .question(question) + .answer(inputValue) + .vqaScore(vqaScore) + .weight(weight) + .createdUserId(createdUserId) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .wordScore(wordScore) + .charScore(charScore) + .validatorScoreAllowed(validatorScore) + .validatorScoreNegative(validatorNegativeScore) + .confidenceScore(valConfidenceScore) + .validationName(result.getAllowedAdapter()) + .bBox(result.getBbox()) + .questionId(result.getQuestionId()) + .synonymId(result.getSynonymId()) + .status("COMPLETED") + .stage("SCALAR_VALIDATION") + .message("Ner validation macro completed") + .build()); + + + } else { + parentObj.add( + NerOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .sorId(sorId) + .tenantId(tenantId) + .processId(processId) + .paperNo(paperNo) + .sorItemId(sorItemId) + .sorItemName(sorKey) + .question(question) + .answer(inputValue) + .vqaScore(vqaScore) + .weight(weight) + .createdUserId(createdUserId) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .wordScore(wordScore) + .charScore(charScore) + .validatorScoreAllowed(validatorScore) + .validatorScoreNegative(validatorNegativeScore) + .confidenceScore(valConfidenceScore) + .validationName(result.getAllowedAdapter()) + .bBox(result.getBbox()) + .questionId(result.getQuestionId()) + .synonymId(result.getSynonymId()) + .status("FAILED") + .stage("SCALAR_VALIDATION") + .message("Confidence Score is less than 0") + .build()); + log.error(aMarker, "The Exception occurred in confidence score validation by {} ", valConfidenceScore); + } + + + atomicInteger.set(0); + log.info(aMarker, "coproProcessor consumer process with output entity {}", parentObj); + return parentObj; + } + + int computeAdapterScore(Validator inputDetail) { + int confidenceScore = 0; + try { + + switch (inputDetail.getAdapter()) { + case "ner": + confidenceScore = this.nerAction.getNerScore(inputDetail, URI); + break; + case "alpha": + confidenceScore = this.alphaAction.getAlphaScore(inputDetail); + break; + case "alphanumeric": + confidenceScore = this.alphaNumericAction.getAlphaNumericScore(inputDetail); + break; + case "numeric": + confidenceScore = this.numericAction.getNumericScore(inputDetail); + break; + case "date": + confidenceScore = this.dateAction.getDateScore(inputDetail); + break; + case "phone_reg": + confidenceScore = regValidator(inputDetail, PHONE_NUMBER_REGEX); + break; + case "numeric_reg": + confidenceScore = regValidator(inputDetail, NUMBER_REGEX); + break; + } + + } catch (Throwable t) { + log.error(aMarker, "error adapter validation{}", inputDetail, t); + action.getContext().put(this.action.getActionName().concat(".error"), "true"); + log.error(aMarker, "Exception occurred in Scalar Computation {}", ExceptionUtil.toString(t)); + HandymanException handymanException = new HandymanException("Error in execute method for ner adapter", t, action); + HandymanException.insertException("Exception occurred in NER Computation", handymanException, action); + throw new HandymanException("Error in execute method for ner adapter", t, action); + } + return confidenceScore; + } + + private void updateEmptyValueForRestrictedAns(NerInputTable result, String inputValue) { + if (multiverseValidator) { + log.info(aMarker, "Build 19-validator updatating for Restricted answer {}"); + for (String format : restrictedAnswers) { + if (inputValue.equalsIgnoreCase(format)) { + updateEmptyValueAndCf(result); + } + } + } + } + + private void updateEmptyValueIfLowCf(NerInputTable result, double valConfidenceScore) { + if (valConfidenceScore < 100 && multiverseValidator) { + log.info(aMarker, "Build 19-validator updateEmptyValueIfLowCf {}", valConfidenceScore); + updateEmptyValueAndCf(result); + } + } + + private int regValidator(Validator validator, String regForm) { + String inputValue = validator.getInputValue(); + inputValue = replaceSplChars(validator.getAllowedSpecialChar(), inputValue); + Pattern pattern = Pattern.compile(regForm); + Matcher matcher = pattern.matcher(inputValue); + return matcher.matches() ? validator.getThreshold() : 0; + } + + private String replaceSplChars(final String specialCharacters, String input) { + if (specialCharacters != null) { + for (int i = 0; i < specialCharacters.length(); i++) { + if (input.contains(Character.toString(specialCharacters.charAt(i)))) { + input = input.replace(Character.toString(specialCharacters.charAt(i)), ""); + } + } + } + return input; + } + +} diff --git a/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterDataItem.java b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterDataItem.java new file mode 100644 index 00000000..9e8e334f --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterDataItem.java @@ -0,0 +1,17 @@ +package in.handyman.raven.lib.model.neradaptors; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class NerAdapterDataItem { + private List prediction; + +} + diff --git a/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterOutput.java b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterOutput.java new file mode 100644 index 00000000..6dc4389d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterOutput.java @@ -0,0 +1,21 @@ +package in.handyman.raven.lib.model.neradaptors; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class NerAdapterOutput { + + private String name; + private String datatype; + private List shape; + private List data; + } + + diff --git a/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterPayload.java b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterPayload.java new file mode 100644 index 00000000..d73f47ec --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterPayload.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.neradaptors; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class NerAdapterPayload { + + private List inputString; + private Long rootPipelineId; + private Long actionId; + private String process; +} diff --git a/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterPrediction.java b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterPrediction.java new file mode 100644 index 00000000..1538ae62 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterPrediction.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib.model.neradaptors; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class NerAdapterPrediction { + + private String inputName; + private Long predictionScore; + private String predictionTag; + private boolean predictedLabel; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterRequest.java b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterRequest.java new file mode 100644 index 00000000..aeed15ac --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterRequest.java @@ -0,0 +1,16 @@ +package in.handyman.raven.lib.model.neradaptors; + +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class NerAdapterRequest { + private List inputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterResponse.java b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterResponse.java new file mode 100644 index 00000000..602f0818 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerAdapterResponse.java @@ -0,0 +1,22 @@ +package in.handyman.raven.lib.model.neradaptors; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class NerAdapterResponse { + @JsonProperty("model_name") + private String modelName; + @JsonProperty("model_version") + private String modelVersion; + private List outputs; + } + + diff --git a/src/main/java/in/handyman/raven/lib/model/neradaptors/NerInputTable.java b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerInputTable.java new file mode 100644 index 00000000..649cdc1a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerInputTable.java @@ -0,0 +1,55 @@ +package in.handyman.raven.lib.model.neradaptors; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +@JsonIgnoreProperties(ignoreUnknown = true) +public class NerInputTable implements CoproProcessor.Entity { + private int sorId; + private String originId; + private String processId; + private String sorKey; + private String question; + private String inputValue; + private float vqaScore; + private String allowedAdapter; + private String restrictedAdapter; + private int wordLimit; + private int wordThreshold; + private int charLimit; + private int charThreshold; + private int validatorThreshold; + private String allowedCharacters; + private String comparableCharacters; + private int restrictedAdapterFlag; + private int paperNo; + private Integer groupId; + private String bbox; + private int sorItemId; + private String createdUserId; + private Long tenantId; + private double wordScore; + private double charScore; + private double validatorScore; + private double validatorNegativeScore; + private double confidenceScore; + private String sorItemName; + private int weight; + private Integer synonymId; + private Integer questionId; + + @Override + public List getRowData() { + return null; + } +} diff --git a/src/main/java/in/handyman/raven/lib/model/neradaptors/NerOutputTable.java b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerOutputTable.java new file mode 100644 index 00000000..b28c6cc3 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/neradaptors/NerOutputTable.java @@ -0,0 +1,60 @@ +package in.handyman.raven.lib.model.neradaptors; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +@JsonIgnoreProperties(ignoreUnknown = true) +public class NerOutputTable implements CoproProcessor.Entity { + private String originId; + private int paperNo; + private int groupId; + private String processId; + private int sorId; + private int sorItemId; + private String sorItemName; + private int weight; + private String question; + private String answer; + private String createdUserId; + private Long tenantId; + private Timestamp createdOn; + private float vqaScore; + private double wordScore; + private double charScore; + private double validatorScoreAllowed; + private double validatorScoreNegative; + private double confidenceScore; + private String validationName; + private String bBox; + private String status; + private String stage; + private String message; + private Integer synonymId; + private Integer questionId; + private String modelName; + private String modelVersion; + + @Override + public List getRowData() { + return Stream.of(this.originId, this.paperNo, this.groupId, this.processId, this.sorId, this.sorItemId, this.sorItemName, + this.question, this.answer, this.weight, this.createdUserId, this.tenantId, this.createdOn, this.wordScore, this.charScore, + this.validatorScoreAllowed, this.validatorScoreNegative, this.confidenceScore, this.validationName, this.bBox, + this.status, this.stage, this.message, this.vqaScore,this.questionId,this.synonymId, this.modelName, this.modelVersion + ).collect(Collectors.toList()); + } + +} + diff --git a/src/main/java/in/handyman/raven/lib/model/outbound/AlchemyKvpInputEntity.java b/src/main/java/in/handyman/raven/lib/model/outbound/AlchemyKvpInputEntity.java new file mode 100644 index 00000000..140573e0 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/outbound/AlchemyKvpInputEntity.java @@ -0,0 +1,29 @@ +package in.handyman.raven.lib.model.outbound; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder + +public class AlchemyKvpInputEntity implements CoproProcessor.Entity { + private Integer processId; + private Long groupId; + private Long tenant_id; + private Long rootPipelineId; + private String alchemyOriginId; + private String pipelineOriginId; + private String fileName; + + @Override + public List getRowData() { + return null; + } +} diff --git a/src/main/java/in/handyman/raven/lib/model/outbound/AlchemyKvpOutputEntity.java b/src/main/java/in/handyman/raven/lib/model/outbound/AlchemyKvpOutputEntity.java new file mode 100644 index 00000000..3e433159 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/outbound/AlchemyKvpOutputEntity.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib.model.outbound; + +import com.fasterxml.jackson.databind.JsonNode; +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class AlchemyKvpOutputEntity implements CoproProcessor.Entity{ + private Integer processId; + private Long groupId; + private String alchemyOriginId; + private String pipelineOriginId; + private String kvpResponse; + private Long tenantId; + private String fileName; + private Long rootPipelineId; + private String status; + private String stage; + private String message; + + + @Override + public List getRowData() { + return Stream.of(this.processId, this.groupId, this.alchemyOriginId, this.pipelineOriginId,this.kvpResponse, this.tenantId, this.fileName, this.rootPipelineId,this.stage,this.stage,this.message).collect(Collectors.toList()); + + } +} diff --git a/src/main/java/in/handyman/raven/lib/model/outbound/OutboundInputTableEntity.java b/src/main/java/in/handyman/raven/lib/model/outbound/OutboundInputTableEntity.java new file mode 100644 index 00000000..b0dec804 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/outbound/OutboundInputTableEntity.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model.outbound; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder + +public class OutboundInputTableEntity { + + private String originId; + private Long rootPipelineId; + private Long groupId; + private Long processId; + private String cleanedPdfPath; + private String originPdfPath; + private String productJson; + private String kvpResponse; + private String tableResponse; + private Long tenantId; + private String fileName; + private String alchemyOriginId; + + + +} diff --git a/src/main/java/in/handyman/raven/lib/model/outbound/OutboundKvpConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/outbound/OutboundKvpConsumerProcess.java new file mode 100644 index 00000000..18829bf3 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/outbound/OutboundKvpConsumerProcess.java @@ -0,0 +1,122 @@ +package in.handyman.raven.lib.model.outbound; + +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.OutboundKvpResponseAction; +import in.handyman.raven.lib.alchemy.common.AlchemyApiPayload; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class OutboundKvpConsumerProcess implements CoproProcessor.ConsumerProcess { + + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + + public final ActionExecutionAudit action; + private final OutboundKvpResponseAction aaction; + private final OkHttpClient httpclient; + private final String authToken; + private final String STAGE_NAME = "PRODUCT_OUTBOUND"; + + public OutboundKvpConsumerProcess(Logger log, Marker aMarker, ActionExecutionAudit action, OutboundKvpResponseAction aaction) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.aaction = aaction; + this.authToken = action.getContext().get("alchemyAuth.token"); + this.httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + } + + @Override + public List process(URL endpoint, AlchemyKvpInputEntity entity) throws Exception { + + log.info(aMarker, " Alchemy cosumer process Started for origin id {}", entity.getAlchemyOriginId()); + + List parentObj = new ArrayList<>(); + String originId = entity.getAlchemyOriginId(); + Long rootPipelineId = entity.getRootPipelineId(); + + + log.info(aMarker, "Request object endpoint {} ", endpoint); + + Long tenantId = entity.getTenant_id(); + String endPointFinalUrl = endpoint + "/" + originId + "/?tenantId=" + tenantId; + + Request request = new Request.Builder() + .url(endPointFinalUrl) + .addHeader("accept", "*/*") + .addHeader("Authorization", "Bearer " + authToken) + .build(); + + try (Response response = httpclient.newCall(request).execute()) { + + Timestamp createdOn = Timestamp.valueOf(LocalDateTime.now()); + if (response.isSuccessful()) { + AlchemyApiPayload alchemyApiPayload = mapper.readValue(response.body().string(), AlchemyApiPayload.class); + + + if (!alchemyApiPayload.getPayload().isEmpty() && !alchemyApiPayload.getPayload().isNull() && alchemyApiPayload.isSuccess()) { + + parentObj.add(AlchemyKvpOutputEntity + .builder() + .processId(entity.getProcessId()) + .tenantId(tenantId) + .groupId(entity.getGroupId()) + .kvpResponse(String.valueOf(alchemyApiPayload.getPayload())) + .alchemyOriginId(entity.getAlchemyOriginId()) + .pipelineOriginId(entity.getPipelineOriginId()) + .rootPipelineId(rootPipelineId) + .fileName(entity.getFileName()) + .stage("PRODUCT_OUBOUND").status("COMPLETED").message("alchemy kvp response completed for origin_id - " + entity.getAlchemyOriginId()) + .build()); + } + } else { + parentObj.add(AlchemyKvpOutputEntity + .builder() + .processId(entity.getProcessId()) + .tenantId(tenantId) + .groupId(entity.getGroupId()) + .alchemyOriginId(entity.getAlchemyOriginId()) + .pipelineOriginId(entity.getPipelineOriginId()) + .rootPipelineId(rootPipelineId) + .stage("PRODUCT_OUBOUND").status("FAILED").message("alchemy kvp response failed for origin_id - " + entity.getAlchemyOriginId()) + .build()); + } + + + } catch (Exception e) { + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Alchemy kvp api consumer failed for origin_id - " + originId, + handymanException, + this.action); + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + } + + + return parentObj; + } +} + + diff --git a/src/main/java/in/handyman/raven/lib/model/outbound/OutboundOutputTableEntity.java b/src/main/java/in/handyman/raven/lib/model/outbound/OutboundOutputTableEntity.java new file mode 100644 index 00000000..7b967f8b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/outbound/OutboundOutputTableEntity.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model.outbound; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class OutboundOutputTableEntity { + + private String originId; + private Long rootPipelineId; + private Long groupId; + private Long processId; + private String cleanedPdfPath; + private String originPdfPath; + private String productJson; + private String kvpResponse; + private String tableResponse; + private Long tenantId; + private String zipFilePath; + private String status; + private String stage; + private String message; + private String fileName; + private String alchemyOriginId; + + +} diff --git a/src/main/java/in/handyman/raven/lib/model/outbound/table/AlchemyTableInputEntity.java b/src/main/java/in/handyman/raven/lib/model/outbound/table/AlchemyTableInputEntity.java new file mode 100644 index 00000000..acfe14dc --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/outbound/table/AlchemyTableInputEntity.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model.outbound.table; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder + +public class AlchemyTableInputEntity implements CoproProcessor.Entity { + private Integer processId; + private Long groupId; + private Long tenantId; + private Long rootPipelineId; + private String alchemyOriginId; + private String pipelineOriginId; + private String fileName; + private Long paperNo; + + @Override + public List getRowData() { + return null; + } +} diff --git a/src/main/java/in/handyman/raven/lib/model/outbound/table/AlchemyTableOutputEntity.java b/src/main/java/in/handyman/raven/lib/model/outbound/table/AlchemyTableOutputEntity.java new file mode 100644 index 00000000..83deac82 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/outbound/table/AlchemyTableOutputEntity.java @@ -0,0 +1,36 @@ +package in.handyman.raven.lib.model.outbound.table; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class AlchemyTableOutputEntity implements CoproProcessor.Entity{ + private Integer processId; + private Long groupId; + private String alchemyOriginId; + private String pipelineOriginId; + private String tableResponse; + private Long tenantId; + private Long rootPipelineId; + private Long paperNo; + private String status; + private String stage; + private String message; + + + @Override + public List getRowData() { + return Stream.of(this.processId, this.groupId, this.alchemyOriginId, this.pipelineOriginId,this.tableResponse, this.tenantId, this.rootPipelineId,this.stage,this.stage,this.message,this.paperNo).collect(Collectors.toList()); + + } +} diff --git a/src/main/java/in/handyman/raven/lib/model/outbound/table/OutboundTableConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/outbound/table/OutboundTableConsumerProcess.java new file mode 100644 index 00000000..32afa206 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/outbound/table/OutboundTableConsumerProcess.java @@ -0,0 +1,124 @@ +package in.handyman.raven.lib.model.outbound.table; + +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.OutboundTableResponseAction; +import in.handyman.raven.lib.alchemy.common.AlchemyApiPayload; +import in.handyman.raven.lib.model.outbound.AlchemyKvpInputEntity; +import in.handyman.raven.lib.model.outbound.AlchemyKvpOutputEntity; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class OutboundTableConsumerProcess implements CoproProcessor.ConsumerProcess { + + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + + public final ActionExecutionAudit action; + private final OutboundTableResponseAction aaction; + private final OkHttpClient httpclient; + private final String authToken; + private final String STAGE_NAME = "PRODUCT_OUTBOUND"; + + public OutboundTableConsumerProcess(Logger log, Marker aMarker, ActionExecutionAudit action, OutboundTableResponseAction aaction) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.aaction = aaction; + this.authToken = action.getContext().get("alchemyAuth.token"); + this.httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + } + + @Override + public List process(URL endpoint, AlchemyTableInputEntity entity) throws Exception { + + log.info(aMarker, "Alchemy cosumer process Started for origin id {}", entity.getAlchemyOriginId()); + + List parentObj = new ArrayList<>(); + String originId = entity.getAlchemyOriginId(); + Long rootPipelineId = entity.getRootPipelineId(); + Long pageNo = entity.getPaperNo(); + + + log.info(aMarker, "Request object endpoint {} ", endpoint); + + Long tenantId = entity.getTenantId(); + String endPointFinalUrl = endpoint + "/" + originId + "/" + pageNo + "?tenantId=" + tenantId; + + Request request = new Request.Builder() + .url(endPointFinalUrl) + .addHeader("accept", "*/*") + .addHeader("Authorization", "Bearer " + authToken) + .build(); + + try (Response response = httpclient.newCall(request).execute()) { + + Timestamp createdOn = Timestamp.valueOf(LocalDateTime.now()); + if (response.isSuccessful()) { + AlchemyApiPayload alchemyApiPayload = mapper.readValue(response.body().string(), AlchemyApiPayload.class); + + if (!alchemyApiPayload.getPayload().isEmpty() && !alchemyApiPayload.getPayload().isNull() && alchemyApiPayload.isSuccess()) { + + parentObj.add(AlchemyTableOutputEntity + .builder() + .processId(entity.getProcessId()) + .tenantId(tenantId) + .groupId(entity.getGroupId()) + .paperNo(entity.getPaperNo()) + .tableResponse(String.valueOf(alchemyApiPayload.getPayload())) + .alchemyOriginId(entity.getAlchemyOriginId()) + .pipelineOriginId(entity.getPipelineOriginId()) + .rootPipelineId(rootPipelineId) + .stage("PRODUCT_OUBOUND").status("COMPLETED").message("alchemy kvp response completed for origin_id - " + entity.getAlchemyOriginId()) + .build()); + } + } else { + parentObj.add(AlchemyTableOutputEntity + .builder() + .processId(entity.getProcessId()) + .tenantId(tenantId) + .groupId(entity.getGroupId()) + .alchemyOriginId(entity.getAlchemyOriginId()) + .pipelineOriginId(entity.getPipelineOriginId()) + .rootPipelineId(rootPipelineId) + .stage("PRODUCT_OUBOUND").status("FAILED").message("alchemy kvp response failed for origin_id - " + entity.getAlchemyOriginId()) + .build()); + } + + + } catch (Exception e) { + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Alchemy kvp api consumer failed for origin_id - " + originId, + handymanException, + this.action); + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + } + + + return parentObj; + } +} + + diff --git a/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerConsumerProcess.java new file mode 100644 index 00000000..1b0969f6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerConsumerProcess.java @@ -0,0 +1,294 @@ +package in.handyman.raven.lib.model.paperitemizer; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import okhttp3.*; +import org.apache.commons.io.FilenameUtils; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.io.File; +import java.net.URL; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.TimeUnit; + +public class PaperItemizerConsumerProcess implements CoproProcessor.ConsumerProcess { + + public static final String TRITON_REQUEST_ACTIVATOR = "triton.request.activator"; + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType mediaTypeJson = MediaType + .parse("application/json; charset=utf-8"); + private final String outputDir; + + public final ActionExecutionAudit action; + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public PaperItemizerConsumerProcess(Logger log, Marker aMarker, String outputDir, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.outputDir = outputDir; + this.action = action; + } + + @Override + public List process(URL endpoint, PaperItemizerInputTable entity) throws Exception { + log.info(aMarker, "coproProcessor consumer process started with endpoint {} and entity {}", endpoint, entity); + List parentObj = new ArrayList<>(); + String inputFilePath = entity.getFilePath(); + Long rootPipelineId = entity.getRootPipelineId(); + final String paperItemizerProcessName = "PAPER_ITEMIZER"; + Long actionId = action.getActionId(); + ObjectMapper objectMapper = new ObjectMapper(); +//payload + PaperItemizerData paperitemizerData = new PaperItemizerData(); + paperitemizerData.setRootPipelineId(rootPipelineId); + paperitemizerData.setProcess(paperItemizerProcessName); + paperitemizerData.setInputFilePath(inputFilePath); + paperitemizerData.setOutputDir(outputDir); + paperitemizerData.setActionId(actionId); + String jsonInputRequest = objectMapper.writeValueAsString(paperitemizerData); + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("PAPER ITERATOR START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + TritonInputRequest tritonInputRequest = new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + String tritonRequestActivator = action.getContext().get(TRITON_REQUEST_ACTIVATOR); + + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonInputRequest, mediaTypeJson)).build(); + coproRequestBuider(entity, request, objectMapper, parentObj); + } else { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonRequest, mediaTypeJson)).build(); + tritonRequestBuilder(entity, request, objectMapper, parentObj); + } + + + if (log.isInfoEnabled()) { + log.info(aMarker, "Request has been build with the parameters \n URI : {}, with inputFilePath {} and outputDir {}", endpoint, inputFilePath, outputDir); + } + + + log.info(aMarker, "coproProcessor consumer process with output entity {}", parentObj); + return parentObj; + } + + private void coproRequestBuider(PaperItemizerInputTable entity, Request request, ObjectMapper objectMapper, List parentObj) { + String originId = entity.getOriginId(); + Integer groupId = entity.getGroupId(); + String templateId = entity.getTemplateId(); + Long tenantId = entity.getTenantId(); + Long processId = entity.getProcessId(); + try (Response response = httpclient.newCall(request).execute()) { + + if (log.isInfoEnabled()) { + log.info(aMarker, "coproProcessor consumer process response with status{}, and message as {}, ", response.isSuccessful(), response.message()); + } + if (response.isSuccessful()) { + String responseBody = response.body().string(); + extractedOutputRequest(entity, objectMapper, parentObj, "", "", responseBody); + + } else { + parentObj.add( + PaperItemizerOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .templateId(templateId) + .tenantId(tenantId) + .status("FAILED") + .stage("paperItemizer") + .message(response.message()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + log.error(aMarker, "Error in response {}", response.message()); + } + + } catch (Exception exception) { + parentObj.add( + PaperItemizerOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .templateId(templateId) + .tenantId(tenantId) + .status("FAILED") + .stage("paperItemizer") + .message(exception.getMessage()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("Paper Itemizer consumer failed for originId " + originId, handymanException, this.action); + log.error(aMarker, "The Exception occurred in request {}", request, exception); + } + } + + + private void tritonRequestBuilder(PaperItemizerInputTable entity, Request request, ObjectMapper objectMapper, List parentObj) { + String originId = entity.getOriginId(); + Integer groupId = entity.getGroupId(); + String templateId = entity.getTemplateId(); + Long tenantId = entity.getTenantId(); + Long processId = entity.getProcessId(); + + + try (Response response = httpclient.newCall(request).execute()) { + + + if (log.isInfoEnabled()) { + log.info(aMarker, "coproProcessor consumer process response with status{}, and message as {}, ", response.isSuccessful(), response.message()); + } + if (response.isSuccessful()) { + String responseBody = response.body().string(); + PaperItemizerResponse paperItemizerResponse = objectMapper.readValue(responseBody, PaperItemizerResponse.class); + if (paperItemizerResponse.getOutputs() != null && !paperItemizerResponse.getOutputs().isEmpty()) { + paperItemizerResponse.getOutputs().forEach(o -> o.getData().forEach(paperItemizerDataItem -> + { + extractedOutputRequest(entity, objectMapper, parentObj, paperItemizerResponse.getModelName(), paperItemizerResponse.getModelVersion(), paperItemizerDataItem); + + } + )); + } + + } else { + parentObj.add( + PaperItemizerOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .templateId(templateId) + .tenantId(tenantId) + .status("FAILED") + .stage("paperItemizer") + .message(response.message()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + log.error(aMarker, "Error in response {}", response.message()); + } + + } catch (Exception exception) { + parentObj.add( + PaperItemizerOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .templateId(templateId) + .tenantId(tenantId) + .status("FAILED") + .stage("paperItemizer") + .message(exception.getMessage()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("Paper Itemizer consumer failed for originId " + originId, handymanException, this.action); + log.error(aMarker, "The Exception occurred in request {}", request, exception); + } + } + + private void extractedOutputRequest(PaperItemizerInputTable entity, ObjectMapper objectMapper, List parentObj, String modelName, String modelVersion, String paperItemizerDataItem) { + String originId = entity.getOriginId(); + Integer groupId = entity.getGroupId(); + String templateId = entity.getTemplateId(); + Long tenantId = entity.getTenantId(); + Long processId = entity.getProcessId(); + try { + + PaperItemizerDataItem paperItemizeOutputData = objectMapper.readValue(paperItemizerDataItem, PaperItemizerDataItem.class); + paperItemizeOutputData.getItemizedPapers().forEach(itemizerPapers -> { + Long paperNo = getPaperNobyFileName(itemizerPapers); + parentObj.add( + PaperItemizerOutputTable + .builder() + .processedFilePath(itemizerPapers) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .templateId(templateId) + .tenantId(tenantId) + .processId(processId) + .paperNo(paperNo) + .status("COMPLETED") + .stage("paperItemizer") + .message("Paper Itemizer macro completed") + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(entity.getRootPipelineId()) + .modelName(modelName) + .modelVersion(modelVersion) + .build()); + }); + + } catch (JsonProcessingException e) { + parentObj.add( + PaperItemizerOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .processId(processId) + .templateId(templateId) + .tenantId(tenantId) + .status("FAILED") + .stage("paperItemizer") + .message(e.getMessage()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Paper Itemizer consumer failed for originId " + originId, handymanException, this.action); + log.error(aMarker, "The Exception occurred in request {}", e.toString()); + } + } + + + public static Long getPaperNobyFileName(String filePath) { + Long extractedNumber = null; + File file = new File(filePath); + + String fileNameStr = FilenameUtils.removeExtension(file.getName()); + + String[] parts = fileNameStr.split("_"); + + // Check if there are at least two parts (0 and 1 after the first underscore) + if (parts.length >= 1) { + // Extract the second part (index 1 in the array after splitting) + String number = parts[parts.length - 1]; + + // Convert the extracted string to an integer if needed + extractedNumber = Long.parseLong(number); + + // Print the extracted number + return extractedNumber + 1; + } + + return extractedNumber; + } + +} diff --git a/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerData.java b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerData.java new file mode 100644 index 00000000..069835c3 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerData.java @@ -0,0 +1,18 @@ +package in.handyman.raven.lib.model.paperitemizer; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class PaperItemizerData { + private Long rootPipelineId; + private String process; + private String inputFilePath; + private String outputDir; + private Long actionId; +} diff --git a/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerDataItem.java b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerDataItem.java new file mode 100644 index 00000000..c29cb5c9 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerDataItem.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib.model.paperitemizer; + +import lombok.*; + +import java.util.List; + +@Getter +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PaperItemizerDataItem { + private List itemizedPapers; + + + } + + + diff --git a/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerInputTable.java b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerInputTable.java new file mode 100644 index 00000000..c393b91c --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerInputTable.java @@ -0,0 +1,30 @@ +package in.handyman.raven.lib.model.paperitemizer; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PaperItemizerInputTable implements CoproProcessor.Entity { + private String originId; + private Long processId; + private Integer groupId; + private Long tenantId; + private String templateId; + private String filePath; + private String outputDir; + private Long rootPipelineId; + + @Override + public List getRowData() { + return null; + } +} + diff --git a/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerOutput.java b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerOutput.java new file mode 100644 index 00000000..51ab6b11 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerOutput.java @@ -0,0 +1,18 @@ +package in.handyman.raven.lib.model.paperitemizer; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PaperItemizerOutput { + private String name; + private String datatype; + private List shape; + private List data; +} diff --git a/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerOutputTable.java b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerOutputTable.java new file mode 100644 index 00000000..757252a2 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerOutputTable.java @@ -0,0 +1,42 @@ +package in.handyman.raven.lib.model.paperitemizer; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PaperItemizerOutputTable implements CoproProcessor.Entity { + + private String originId; + private Integer groupId; + private Long tenantId; + private Long processId; + private String templateId; + private String processedFilePath; + private Long paperNo; + private String status; + private String stage; + private String message; + private Timestamp createdOn; + private Long rootPipelineId; + private String modelName; + private String modelVersion; + + + @Override + public List getRowData() { + return Stream.of(this.originId, this.groupId, this.tenantId, this.templateId, this.processedFilePath, + this.paperNo, this.status, this.stage, this.message, this.createdOn, this.processId, this.rootPipelineId, + this.modelName, this.modelVersion).collect(Collectors.toList()); + } +} diff --git a/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerRequest.java b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerRequest.java new file mode 100644 index 00000000..3eb5a3ad --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerRequest.java @@ -0,0 +1,24 @@ +package in.handyman.raven.lib.model.paperitemizer; + +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class PaperItemizerRequest{ + + + private List inputs; + +} + + + + diff --git a/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerResponse.java b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerResponse.java new file mode 100644 index 00000000..9c4b4382 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/paperitemizer/PaperItemizerResponse.java @@ -0,0 +1,24 @@ +package in.handyman.raven.lib.model.paperitemizer; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PaperItemizerResponse { + + @JsonProperty("model_name") + private String modelName; + + @JsonProperty("model_version") + private String modelVersion; + + private List outputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchData.java b/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchData.java new file mode 100644 index 00000000..21d9d97d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchData.java @@ -0,0 +1,28 @@ +package in.handyman.raven.lib.model.pharsematch; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.Map; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PharseMatchData { + + + private Integer rootPipelineId; + private Integer actionId; + private String process; + private String originId; + private Long paperNo; + private String groupId; + private Map> keysToFilter; + private String pageContent; + + } + diff --git a/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchDataItem.java b/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchDataItem.java new file mode 100644 index 00000000..17cfc62e --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchDataItem.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib.model.pharsematch; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PharseMatchDataItem { + private String originId; + private String groupId; + private String isKeyPresent; + private Integer paperNo; + private String truthEntity; + private String entity; +} diff --git a/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchOutput.java b/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchOutput.java new file mode 100644 index 00000000..fac79cb2 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchOutput.java @@ -0,0 +1,18 @@ +package in.handyman.raven.lib.model.pharsematch; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PharseMatchOutput { + private String name; + private String datatype; + private List shape; + private List data; +} diff --git a/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchRequest.java b/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchRequest.java new file mode 100644 index 00000000..e85f4fe5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchRequest.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.pharsematch; + +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PharseMatchRequest { + + private List inputs; +} + diff --git a/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchResponse.java b/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchResponse.java new file mode 100644 index 00000000..a79c30d2 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/pharsematch/PharseMatchResponse.java @@ -0,0 +1,21 @@ +package in.handyman.raven.lib.model.pharsematch; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PharseMatchResponse { + @JsonProperty("model_name") + private String modelName; + @JsonProperty("model_version") + private String modelVersion; + private List outputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchConsumerProcess.java new file mode 100644 index 00000000..060b5dc6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchConsumerProcess.java @@ -0,0 +1,241 @@ +package in.handyman.raven.lib.model.pharsematch; + + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.*; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.util.*; +import java.util.concurrent.TimeUnit; + +public class PhraseMatchConsumerProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + public final ActionExecutionAudit action; + private static final String actionName = "PHRASE_MATCH"; + + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public PhraseMatchConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + } + + @Override + public List process(URL endpoint, PhraseMatchInputTable entity) throws JsonProcessingException { + List parentObj = new ArrayList<>(); + String originId = entity.getOriginId(); + String groupId = entity.getGroupId(); + Long pipelineId = action.getRootPipelineId(); + String processId = String.valueOf(entity.getProcessId()); + String paperNo = String.valueOf(entity.getPaperNo()); + Long tenantId=entity.getTenantId(); + Long actionId = action.getActionId();; + String pageContent = String.valueOf(entity.getPageContent()); + + ObjectMapper objectMapper = new ObjectMapper(); + Map> keysToFilterObject = objectMapper.readValue(entity.getTruthPlaceholder(), new TypeReference>>() { + }); + + + + //payload + PharseMatchData data = new PharseMatchData(); + data.setRootPipelineId(Math.toIntExact(action.getRootPipelineId())); + data.setActionId(Math.toIntExact(actionId)); + data.setProcess(entity.getProcessId()); + data.setOriginId(originId); + data.setPaperNo(Long.valueOf(paperNo)); + data.setGroupId(groupId); + data.setPageContent(pageContent); + data.setKeysToFilter(keysToFilterObject); + + + String jsonInputRequest = objectMapper.writeValueAsString(data); + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("PM START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + + TritonInputRequest tritonInputRequest=new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + String tritonRequestActivator = action.getContext().get("triton.request.activator"); + + + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonInputRequest, MediaTypeJSON)).build(); + coproRequestBuilder(entity,parentObj, request,objectMapper); + } else { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonRequest, MediaTypeJSON)).build(); + tritonRequestBuilder(entity,parentObj,request); + } + + return parentObj; + } + + private void coproRequestBuilder(PhraseMatchInputTable entity, List parentObj, Request request, ObjectMapper objectMapper) { + final Integer paperNo = Optional.ofNullable(entity.getPaperNo()).map(String::valueOf).map(Integer::parseInt).orElse(null); + Long tenantId=entity.getTenantId(); + Long rootPipelineId = entity.getRootPipelineId(); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + extractedOutputDataRequest(entity, parentObj, responseBody, objectMapper, "", ""); + + } else { + parentObj.add( + PhraseMatchOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(Optional.ofNullable(entity.getGroupId()).map(String::valueOf).orElse(null)) + .status("FAILED") + .tenantId(tenantId) + .paperNo(paperNo) + .stage(actionName) + .message(Optional.of(responseBody).map(String::valueOf).orElse(null)) + .rootPipelineId(rootPipelineId) + .build()); + log.info(aMarker, "The Exception occurred in Phrase match API call"); + } + + } catch (Exception exception) { + parentObj.add( + PhraseMatchOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(Optional.ofNullable(entity.getGroupId()).map(String::valueOf).orElse(null)) + .status("FAILED") + .paperNo(paperNo) + .tenantId(tenantId) + .stage(actionName) + .message(exception.getMessage()) + .rootPipelineId(rootPipelineId) + .build()); + log.error(aMarker, "Exception occurred in the phrase match paper filter action {}", ExceptionUtil.toString(exception)); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("Error in inserting Intellimatch result table", handymanException, this.action); + + } + } + + + + + private void tritonRequestBuilder( PhraseMatchInputTable entity, List parentObj, Request request) { + Long tenantId=entity.getTenantId(); + final Integer paperNo = Optional.ofNullable(entity.getPaperNo()).map(String::valueOf).map(Integer::parseInt).orElse(null); + Long rootPipelineId = entity.getRootPipelineId(); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + + if (response.isSuccessful()) { + ObjectMapper objectMapper = new ObjectMapper(); + PharseMatchResponse modelResponse = objectMapper.readValue(responseBody, PharseMatchResponse.class); + if (modelResponse.getOutputs() != null && !modelResponse.getOutputs().isEmpty()) { + modelResponse.getOutputs().forEach(o -> { + o.getData().forEach(pharseMatchDataItem -> { + extractedOutputDataRequest(entity, parentObj, pharseMatchDataItem, objectMapper, "", ""); + }); + }); + } else { + parentObj.add( + PhraseMatchOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(Optional.ofNullable(entity.getGroupId()).map(String::valueOf).orElse(null)) + .status("FAILED") + .tenantId(tenantId) + .paperNo(paperNo) + .stage(actionName) + .message(Optional.of(responseBody).map(String::valueOf).orElse(null)) + .rootPipelineId(rootPipelineId) + .build()); + log.info(aMarker, "The Exception occurred in Phrase match API call"); + } + } + } catch (Exception exception) { + parentObj.add( + PhraseMatchOutputTable + .builder() + .originId(Optional.ofNullable(entity.getOriginId()).map(String::valueOf).orElse(null)) + .groupId(Optional.ofNullable(entity.getGroupId()).map(String::valueOf).orElse(null)) + .status("FAILED") + .tenantId(tenantId) + .paperNo(paperNo) + .stage(actionName) + .message(exception.getMessage()) + .rootPipelineId(rootPipelineId) + .build()); + log.error(aMarker, "Exception occurred in the phrase match paper filter action {}", ExceptionUtil.toString(exception)); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("Error in inserting Intellimatch result table", handymanException, this.action); + + } + } + + private static void extractedOutputDataRequest(PhraseMatchInputTable entity, List parentObj, String pharseMatchDataItem, ObjectMapper objectMapper, String modelName, String modelVersion) { + String originId = entity.getOriginId(); + String groupId = entity.getGroupId(); + Long tenantId=entity.getTenantId(); + + final Integer paperNo = Optional.ofNullable(entity.getPaperNo()).map(String::valueOf).map(Integer::parseInt).orElse(null); + Long rootPipelineId = entity.getRootPipelineId(); + try { + // PharseMatchDataItem pharseMatchOutputData = objectMapper.readValue(pharseMatchDataItem, PharseMatchDataItem.class); + List pharseMatchOutputData = objectMapper.readValue(pharseMatchDataItem, new TypeReference>() { + + }); + + for (PharseMatchDataItem item : pharseMatchOutputData) { + + parentObj.add( + PhraseMatchOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).orElse(null)) + .paperNo(paperNo) + .status("COMPLETED") + .tenantId(tenantId) + .stage(actionName) + .message("Completed API call zero shot classifier") + .rootPipelineId(rootPipelineId) + .modelName(modelName) + .truthEntity(item.getTruthEntity()) + .isKeyPresent(String.valueOf(item.getIsKeyPresent())) + .entity(item.getEntity()) + .modelVersion(modelVersion) + .build()); + } + + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + } + diff --git a/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchInputTable.java b/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchInputTable.java new file mode 100644 index 00000000..47924492 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchInputTable.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model.pharsematch; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public class PhraseMatchInputTable implements CoproProcessor.Entity { + + private String originId; + private Integer paperNo; + private String groupId; + private String pageContent; + private String truthPlaceholder; + private String processId; + private Long rootPipelineId; + private Long tenantId; + + @Override + public List getRowData() { + return null; + } + } + + diff --git a/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchKeyFilter.java b/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchKeyFilter.java new file mode 100644 index 00000000..f48c2b7d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchKeyFilter.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.pharsematch; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.Map; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder + +public class PhraseMatchKeyFilter { + + + private Map> keysToFilter; +} diff --git a/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchOutputTable.java b/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchOutputTable.java new file mode 100644 index 00000000..12507b4f --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/pharsematch/PhraseMatchOutputTable.java @@ -0,0 +1,44 @@ +package in.handyman.raven.lib.model.pharsematch; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PhraseMatchOutputTable implements CoproProcessor.Entity { + private String originId; + private Integer paperNo; + private String groupId; + private String isKeyPresent; + private String entity; + private String truthEntity; + + private String status; + + private String stage; + + private String message; + private Long rootPipelineId; + private String modelName; + private String modelVersion; + private Long tenantId; + + + + @Override + public List getRowData() { + return Stream.of(this.originId, this.groupId, this.paperNo, this.truthEntity, this.entity, + this.isKeyPresent, this.status, this.stage, this.message,this.rootPipelineId,this.modelName, this.modelVersion,this.tenantId).collect(Collectors.toList()); + } +} + + diff --git a/src/main/java/in/handyman/raven/lib/model/qrextraction/QrConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrConsumerProcess.java new file mode 100644 index 00000000..e45350f8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrConsumerProcess.java @@ -0,0 +1,279 @@ +package in.handyman.raven.lib.model.qrextraction; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import okhttp3.*; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + + +public class QrConsumerProcess implements CoproProcessor.ConsumerProcess { + public static final String TRITON_REQUEST_ACTIVATOR = "triton.request.activator"; + public static final String QR_EXTRACTION_PROCESS = "QR_EXTRACTION"; + public static final String OKHTTP_CLIENT_TIMEOUT = "okhttp.client.timeout"; + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + + public final ActionExecutionAudit action; + public static String httpClientTimeout = new String(); + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + + public QrConsumerProcess(Logger log, Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.httpClientTimeout = action.getContext().get(OKHTTP_CLIENT_TIMEOUT); + } + + //7. overwrite the method process in coproprocessor, write copro api logic inside this method + @Override + public List process(URL endpoint, QrInputEntity entity) throws Exception { + log.info("copro consumer process started"); + List qrOutputEntities = new ArrayList<>(); + + String filePath = entity.getFilePath(); + Long rootPipelineId = entity.getRootPipelineId(); + Long actionId = action.getActionId(); + + + ObjectMapper objectMapper = new ObjectMapper(); + + //payload + QrExtractionData qrExtractionData = new QrExtractionData(); + qrExtractionData.setRootPipelineId(rootPipelineId); + qrExtractionData.setProcess(QR_EXTRACTION_PROCESS); + qrExtractionData.setInputFilePath(filePath); + qrExtractionData.setActionId(actionId); + String jsonInputRequest = objectMapper.writeValueAsString(qrExtractionData); + + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("QR START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + + TritonInputRequest tritonInputRequest = new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + String tritonRequestActivator = action.getContext().get(TRITON_REQUEST_ACTIVATOR); + if (log.isInfoEnabled()) { + log.info("input object node in the consumer process inputFilePath {}", filePath); + } + + if (log.isInfoEnabled()) { + log.info("input object node in the consumer process coproURL {}, inputFilePath {}", endpoint, filePath); + } + + + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonInputRequest, MediaTypeJSON)).build(); + coproRequestBuilder(entity, request, objectMapper, qrOutputEntities, rootPipelineId); + } else { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonRequest, MediaTypeJSON)).build(); + tritonRequestBuilder(entity, request, objectMapper, qrOutputEntities, rootPipelineId); + } + + + return qrOutputEntities; + } + + private void tritonRequestBuilder(QrInputEntity entity, Request request, ObjectMapper objectMapper, List qrOutputEntities, Long rootPipelineId) { + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + Integer groupId = entity.getGroupId(); + String fileId = entity.getFileId(); + Long tenantId = entity.getTenantId(); + + try (Response response = httpclient.newCall(request).execute()) { + if (response.isSuccessful()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + QrExtractionResponse modelResponse = objectMapper.readValue(responseBody, QrExtractionResponse.class); + if (modelResponse.getOutputs() != null && !modelResponse.getOutputs().isEmpty()) { + modelResponse.getOutputs().forEach(o -> { + o.getData().forEach(qrDataItem -> { + extractedOutputRequest(qrOutputEntities, rootPipelineId, qrDataItem, originId, paperNo, groupId, fileId, tenantId, modelResponse.getModelName(),modelResponse.getModelVersion()); + }); + }); + } else { + qrOutputEntities.add(QrOutputEntity.builder() + .originId(originId) + .paperNo(paperNo) + .groupId(groupId) + .fileId(fileId) + .tenantId(tenantId) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .status("ABSENT") + .stage("QR_EXTRACTION") + .message("qr code absent in the given file") + .build()); + } + + } else { + qrOutputEntities.add(QrOutputEntity.builder() + .originId(originId) + .paperNo(paperNo) + .groupId(groupId) + .tenantId(tenantId) + .fileId(fileId) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .status("FAILED") + .stage("QR_EXTRACTION") + .message(response.message()) + .build()); + + log.error(aMarker, "The Exception occurred in episode of coverage in response {}", response); + } + + } catch (Exception e) { + qrOutputEntities.add(QrOutputEntity.builder() + .originId(originId) + .paperNo(paperNo) + .groupId(groupId) + .fileId(fileId) + .tenantId(tenantId) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .status("FAILED") + .rootPipelineId(rootPipelineId) + .stage("QR_EXTRACTION") + .message(e.getMessage()) + .build()); + log.error("Error in the copro process api hit {}", request); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Error in qr extraction action for group id - " + groupId, handymanException, this.action); + } + } + + private void coproRequestBuilder(QrInputEntity entity, Request request, ObjectMapper objectMapper, List qrOutputEntities, Long rootPipelineId) { + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + Integer groupId = entity.getGroupId(); + String fileId = entity.getFileId(); + Long tenantId = entity.getTenantId(); + + try (Response response = httpclient.newCall(request).execute()) { + if (response.isSuccessful()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + extractedOutputRequest(qrOutputEntities, rootPipelineId, responseBody, originId, paperNo, groupId, fileId, tenantId, "",""); + + } else { + qrOutputEntities.add(QrOutputEntity.builder() + .originId(originId) + .paperNo(paperNo) + .groupId(groupId) + .fileId(fileId) + .tenantId(tenantId) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .status("FAILED") + .stage("QR_EXTRACTION") + .message(response.message()) + .build()); + + log.error(aMarker, "The Exception occurred in episode of coverage in response {}", response); + } + + } catch (Exception e) { + qrOutputEntities.add(QrOutputEntity.builder() + .originId(originId) + .paperNo(paperNo) + .groupId(groupId) + .fileId(fileId) + .tenantId(tenantId) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .status("FAILED") + .rootPipelineId(rootPipelineId) + .stage("QR_EXTRACTION") + .message(e.getMessage()) + .build()); + log.error("Error in the copro process api hit {}", request); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Error in the copro process api hit for group id - " + groupId, handymanException, this.action); + } + } + + private void extractedOutputRequest(List qrOutputEntities, Long rootPipelineId, String qrDataItem, String originId, Integer paperNo, Integer groupId, String fileId, Long tenantId, String modelName,String modelVersion) { + + List qrLineItems = null; + try { + qrLineItems = mapper.readValue(qrDataItem, new TypeReference<>() { + }); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + AtomicInteger atomicInteger = new AtomicInteger(); + if (!qrLineItems.isEmpty()) { + qrLineItems.forEach(qrReader -> { + JsonNode qrBoundingBox=mapper.valueToTree(qrReader.getBoundingBox()); + qrOutputEntities.add(QrOutputEntity.builder() + .angle(qrReader.getAngle()) + .originId(originId) + .paperNo(paperNo) + .groupId(groupId) + .fileId(fileId) + .decodeType(qrReader.getDecodeType()) + .qrFormat(qrReader.getType()) + .rootPipelineId(rootPipelineId) + .qrFormatId(atomicInteger.incrementAndGet()) + .extractedValue(qrReader.getValue()) + .confidenceScore(qrReader.getConfidenceScore()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .b_box(qrBoundingBox.toString()) + .status("COMPLETED") + .stage("QR_EXTRACTION") + .message("qr extraction completed") + .tenantId(tenantId) + .modelName(modelName) + .modelVersion(modelVersion) + .build()); + }); + }else{ + qrOutputEntities.add(QrOutputEntity.builder() + .originId(originId) + .paperNo(paperNo) + .groupId(groupId) + .tenantId(tenantId) + .fileId(fileId) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .status("ABSENT") + .stage("QR_EXTRACTION") + .message("qr code absent in the given file") + .build()); + } + } +} + + + diff --git a/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionBoundingBox.java b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionBoundingBox.java new file mode 100644 index 00000000..86da91e7 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionBoundingBox.java @@ -0,0 +1,17 @@ +package in.handyman.raven.lib.model.qrextraction; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class QrExtractionBoundingBox { + private Integer topLeftX; + private Integer topLeftY; + private Integer bottomRightX; + private Integer bottomRightY; +} diff --git a/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionData.java b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionData.java new file mode 100644 index 00000000..8d274822 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionData.java @@ -0,0 +1,18 @@ +package in.handyman.raven.lib.model.qrextraction; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class QrExtractionData { + private Long rootPipelineId; + private Long actionId; + private String process; + private String inputFilePath; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionDataItem.java b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionDataItem.java new file mode 100644 index 00000000..fbf88a6c --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionDataItem.java @@ -0,0 +1,24 @@ +package in.handyman.raven.lib.model.qrextraction; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class QrExtractionDataItem { + + private String value; + private String type; + private Double confidenceScore; + private QrExtractionBoundingBox boundingBox; + private Integer angle; + @JsonProperty("decode_type") + private String decodeType; + +} + diff --git a/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionOutput.java b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionOutput.java new file mode 100644 index 00000000..78d804ad --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionOutput.java @@ -0,0 +1,18 @@ +package in.handyman.raven.lib.model.qrextraction; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class QrExtractionOutput { + private String name; + private String datatype; + private List shape; + private List data; +} diff --git a/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionRequest.java b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionRequest.java new file mode 100644 index 00000000..58e34385 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionRequest.java @@ -0,0 +1,22 @@ +package in.handyman.raven.lib.model.qrextraction; + +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class QrExtractionRequest { + + + private List inputs; + } + + + + diff --git a/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionResponse.java b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionResponse.java new file mode 100644 index 00000000..986aab62 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrExtractionResponse.java @@ -0,0 +1,21 @@ +package in.handyman.raven.lib.model.qrextraction; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class QrExtractionResponse { + @JsonProperty("model_name") + private String modelName; + + @JsonProperty("model_version") + private String modelVersion; + private List outputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/qrextraction/QrInputEntity.java b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrInputEntity.java new file mode 100644 index 00000000..f5b4236c --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrInputEntity.java @@ -0,0 +1,33 @@ +package in.handyman.raven.lib.model.qrextraction; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class QrInputEntity implements CoproProcessor.Entity { + + private String filePath; + private Integer groupId; + private String originId; + private Integer paperNo; + private String fileId; + private Long rootPipelineId; + private Long tenantId; + + @Override + public List getRowData() { + return null; + } + + +} + + diff --git a/src/main/java/in/handyman/raven/lib/model/qrextraction/QrOutputEntity.java b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrOutputEntity.java new file mode 100644 index 00000000..4e6b9ca5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrOutputEntity.java @@ -0,0 +1,48 @@ +package in.handyman.raven.lib.model.qrextraction; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class QrOutputEntity implements CoproProcessor.Entity { + private String originId; + private Integer groupId; + private Integer paperNo; + private String fileId; + private String qrFormat; + private Integer qrFormatId; + private String extractedValue; + private Timestamp createdOn; + private Integer confidenceScore; + private Integer angle; + private String b_box; + private Long rootPipelineId; + private String status; + private String stage; + private String message; + private String decodeType; + private String modelName; + private String modelVersion; + private Long tenantId; + + + @Override + public List getRowData() { + return Stream.of(this.originId, this.groupId, this.paperNo, this.createdOn, this.qrFormat, this.qrFormatId, this.extractedValue, + this.fileId, this.b_box, this.angle, this.confidenceScore, this.status, this.stage, this.message,this.decodeType, this.modelName, + this.modelVersion,this.rootPipelineId,this.tenantId).collect(Collectors.toList()); + } + +} + diff --git a/src/main/java/in/handyman/raven/lib/model/qrextraction/QrReader.java b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrReader.java new file mode 100644 index 00000000..29640cd8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/qrextraction/QrReader.java @@ -0,0 +1,21 @@ +package in.handyman.raven.lib.model.qrextraction; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QrReader { + private String value; + private String type; + @JsonProperty("decode_type") + private String decodeType; + private Integer confidenceScore; + private QrExtractionBoundingBox boundingBox; + private Integer angle; +} diff --git a/src/main/java/in/handyman/raven/lib/model/tableextraction/TableOutputResponse.java b/src/main/java/in/handyman/raven/lib/model/tableextraction/TableOutputResponse.java new file mode 100644 index 00000000..bff317fe --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/tableextraction/TableOutputResponse.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.tableextraction; + + +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@AllArgsConstructor +@NoArgsConstructor +public class TableOutputResponse { + private String csvTablesPath; + private String croppedImage; + private JsonNode bboxes; + private JsonNode tableResponse; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionAttributes.java b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionAttributes.java new file mode 100644 index 00000000..80fea999 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionAttributes.java @@ -0,0 +1,18 @@ +package in.handyman.raven.lib.model.templatedetection; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TemplateDetectionAttributes { + private String question; + private String predictedAttributionValue; + private float scores; + private String bboxes; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionConsumerProcess.java new file mode 100644 index 00000000..c047d550 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionConsumerProcess.java @@ -0,0 +1,316 @@ +package in.handyman.raven.lib.model.templatedetection; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lambda.doa.audit.ExecutionStatus; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.TemplateDetectionAction; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.*; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.io.IOException; +import java.net.URL; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.TimeUnit; + +public class TemplateDetectionConsumerProcess implements CoproProcessor.ConsumerProcess { + + public static final String TRITON_REQUEST_ACTIVATOR = "triton.request.activator"; + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType mediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + + public final ActionExecutionAudit action; + private final OkHttpClient httpclient; + private final TemplateDetectionAction aAction; + private final String TEMPLATE_DETECTION = "TEMPLATE_DETECTION"; + private final int timeOut; + + public TemplateDetectionConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action, TemplateDetectionAction aAction) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + this.aAction = aAction; + this.timeOut = aAction.getTimeOut(); + this.httpclient = new OkHttpClient.Builder() + .connectTimeout(this.timeOut, TimeUnit.MINUTES) + + .writeTimeout(this.timeOut, TimeUnit.MINUTES) + .readTimeout(this.timeOut, TimeUnit.MINUTES) + .build(); + } + + + @Override + public List process(URL endpoint, TemplateDetectionInputTable entity) throws Exception { + + List outputObjectList = new ArrayList<>(); + List attributes = entity.getQuestions(); + String inputFilePath = entity.getFilePath(); + Long rootPipelineId = entity.getRootPipelineId(); + Long actionId = action.getActionId();; + + ObjectMapper objectMapper = new ObjectMapper(); + + + //payload + TemplateDetectionData templateDetectionDataInput = new TemplateDetectionData(); + templateDetectionDataInput.setAttributes(attributes); + templateDetectionDataInput.setPaperType("Printed"); + templateDetectionDataInput.setInputFilePath(inputFilePath); + templateDetectionDataInput.setRootPipelineId(rootPipelineId); + templateDetectionDataInput.setActionId(actionId); + templateDetectionDataInput.setProcess(TEMPLATE_DETECTION); + String jsonInputRequest = objectMapper.writeValueAsString(templateDetectionDataInput); + + + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("ERNIE START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + TritonInputRequest tritonInputRequest = new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + String tritonRequestActivator = action.getContext().get(TRITON_REQUEST_ACTIVATOR); + + + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonInputRequest, mediaTypeJSON)).build(); + coproRequestBuider(entity, request, objectMapper ,outputObjectList); + } else { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonRequest, mediaTypeJSON)).build(); + tritonRequestBuilder(entity, request, objectMapper, outputObjectList); + } + + + log.info(aMarker, "Input request object for template detection filePath is {} and questions size {}", inputFilePath, attributes.size()); + return outputObjectList; + } + + private void coproRequestBuider(TemplateDetectionInputTable entity, Request request, ObjectMapper objectMapper, List outputObjectList) throws IOException { + Long processId = entity.getProcessId(); + String templateId = entity.getTemplateId(); + Long tenantId = entity.getTenantId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + Integer groupId = entity.getGroupId(); + try (Response response = httpclient.newCall(request).execute()) { + Timestamp createdOn = Timestamp.valueOf(LocalDateTime.now()); + if (response.isSuccessful()) { + String responseBody = response.body().string(); + + extractOutputDataRequest(entity, responseBody, outputObjectList, "", ",", objectMapper); + + } else { + outputObjectList.add( + TemplateDetectionOutputTable.builder() + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .rootPipelineId(entity.getRootPipelineId()) + .groupId(groupId) + .originId(originId) + .paperNo(paperNo) + .createdOn(createdOn) + .status(ExecutionStatus.COMPLETED.toString()) + .stage(TEMPLATE_DETECTION) + .message("Template detection completed and response is empty for group_id " + groupId + " and origin_id " + originId) + .processedFilePath(entity.getFilePath()) + .build() + ); + } + } catch (Exception e) { + outputObjectList.add( + TemplateDetectionOutputTable.builder() + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .rootPipelineId(entity.getRootPipelineId()) + .groupId(groupId) + .originId(originId) + .paperNo(paperNo) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .status(ExecutionStatus.FAILED.toString()) + .stage(TEMPLATE_DETECTION) + .message("Template detection failed for group_id " + groupId + " and origin_id " + originId + " and Exception ") + .processedFilePath(entity.getFilePath()) + .build() + ); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Template detection consumer failed for batch/group " + groupId, + handymanException, + this.action); + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + + } + + } + private void tritonRequestBuilder(TemplateDetectionInputTable entity, Request request, ObjectMapper objectMapper, List outputObjectList) { + Long processId = entity.getProcessId(); + String templateId = entity.getTemplateId(); + Long tenantId = entity.getTenantId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + Integer groupId = entity.getGroupId(); + try (Response response = httpclient.newCall(request).execute()) { + Timestamp createdOn = Timestamp.valueOf(LocalDateTime.now()); + if (response.isSuccessful()) { + String responseBody = response.body().string(); + TemplateDetectionResponse templateDetectionResponse = objectMapper.readValue(responseBody, TemplateDetectionResponse.class); + + if (templateDetectionResponse.getOutputs() != null && !templateDetectionResponse.getOutputs().isEmpty()) { + templateDetectionResponse.getOutputs().forEach(output -> { + output.getData().forEach(templateDetectionData -> { + extractOutputDataRequest(entity, templateDetectionData, outputObjectList, templateDetectionResponse.getModelName(), templateDetectionResponse.getModelVersion(), objectMapper); + + }); + }); + } else { + outputObjectList.add( + TemplateDetectionOutputTable.builder() + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .rootPipelineId(entity.getRootPipelineId()) + .groupId(groupId) + .originId(originId) + .paperNo(paperNo) + .createdOn(createdOn) + .status(ExecutionStatus.COMPLETED.toString()) + .stage(TEMPLATE_DETECTION) + .message("Template detection completed and response is empty for group_id " + groupId + " and origin_id " + originId) + .processedFilePath(entity.getFilePath()) + .build() + ); + } + } else { + outputObjectList.add( + TemplateDetectionOutputTable.builder() + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .rootPipelineId(entity.getRootPipelineId()) + .groupId(groupId) + .originId(originId) + .paperNo(paperNo) + .createdOn(createdOn) + .status(ExecutionStatus.FAILED.toString()) + .stage(TEMPLATE_DETECTION) + .message("Template detection failed for group_id " + groupId + " and origin_id " + originId + " and Exception") + .processedFilePath(entity.getFilePath()) + .build() + ); + } + } catch (Exception e) { + outputObjectList.add( + TemplateDetectionOutputTable.builder() + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .rootPipelineId(entity.getRootPipelineId()) + .groupId(groupId) + .originId(originId) + .paperNo(paperNo) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .status(ExecutionStatus.FAILED.toString()) + .stage(TEMPLATE_DETECTION) + .message("Template detection failed for group_id " + groupId + " and origin_id " + originId + " and Exception ") + .processedFilePath(entity.getFilePath()) + .build() + ); + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Template detection consumer failed for batch/group " + groupId, + handymanException, + this.action); + log.error(aMarker, "The Exception occurred in getting response {}", ExceptionUtil.toString(e)); + } + } + + private void extractOutputDataRequest(TemplateDetectionInputTable entity, String templateDetectionData, List outputObjectList, String modelName, String modelVersion, ObjectMapper objectMapper) { + Long processId = entity.getProcessId(); + String templateId = entity.getTemplateId(); + Long tenantId = entity.getTenantId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + Integer groupId = entity.getGroupId(); + try { + TemplateDetectionDataItem templateDetectionDataItem= objectMapper.readValue(templateDetectionData,TemplateDetectionDataItem.class); + templateDetectionDataItem.getAttributes().forEach(attribute -> { + String bboxStr = String.valueOf(attribute.getBboxes()); + String question = attribute.getQuestion(); + Float scores = attribute.getScores(); + String predictedAttributionValue = attribute.getPredictedAttributionValue(); + + outputObjectList.add( + TemplateDetectionOutputTable.builder() + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .predictedAttributionValue(predictedAttributionValue) + .question(question) + .scores(scores) + .bboxes(bboxStr) + .imageWidth(templateDetectionDataItem.getImageWidth()) + .imageDPI(templateDetectionDataItem.getImageDPI()) + .extractedImageUnit(templateDetectionDataItem.getExtractedImageUnit()) + .rootPipelineId(entity.getRootPipelineId()) + .groupId(groupId) + .originId(originId) + .paperNo(paperNo) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .status(ExecutionStatus.COMPLETED.toString()) + .stage(TEMPLATE_DETECTION) + .modelName(modelName) + .modelVersion(modelVersion) + .message("Template detection completed for group_id " + groupId + " and origin_id " + originId) + .processedFilePath(entity.getFilePath()) + .build() + ); + }); + } catch (JsonProcessingException e) { + outputObjectList.add( + TemplateDetectionOutputTable.builder() + .processId(processId) + .tenantId(tenantId) + .templateId(templateId) + .rootPipelineId(entity.getRootPipelineId()) + .groupId(groupId) + .originId(originId) + .paperNo(paperNo) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .status(ExecutionStatus.FAILED.toString()) + .stage(TEMPLATE_DETECTION) + .message("Template detection response processing failed for group_id " + groupId + " and origin_id " + originId + " and Exception ") + .processedFilePath(entity.getFilePath()) + .build() + ); + log.error(aMarker, "The Exception occurred in processing response {}", ExceptionUtil.toString(e)); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Template detection consumer failed for batch/group " + groupId, + handymanException, + this.action); + log.error(aMarker, "The Exception occurred in processing response {}", ExceptionUtil.toString(e)); + + + } + + } + +} diff --git a/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionData.java b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionData.java new file mode 100644 index 00000000..61c6e416 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionData.java @@ -0,0 +1,22 @@ +package in.handyman.raven.lib.model.templatedetection; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TemplateDetectionData { + private Long rootPipelineId; + private Long actionId; + private String process; + private String inputFilePath; + private List attributes; + private String paperType; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionDataItem.java b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionDataItem.java new file mode 100644 index 00000000..0b51852f --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionDataItem.java @@ -0,0 +1,23 @@ +package in.handyman.raven.lib.model.templatedetection; + +import in.handyman.raven.lib.agadia.xenon.model.XenonResult; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TemplateDetectionDataItem { + private List attributes; + private Integer imageDPI; + private Integer imageWidth; + private Integer imageHeight; + private String extractedImageUnit; + private List attribute; + + +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionInputTable.java b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionInputTable.java new file mode 100644 index 00000000..e48e0044 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionInputTable.java @@ -0,0 +1,101 @@ +package in.handyman.raven.lib.model.templatedetection; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TemplateDetectionInputTable implements CoproProcessor.Entity { + + private String originId; + private Integer paperNo; + private Integer groupId; + private String filePath; + private Long tenantId; + private String templateId; + private Long processId; + private Long rootPipelineId; + private List questions; + + public List getQuestions() { + return questions; + } + + public void setQuestions(List questions) { + this.questions = questions; + } + + public String getOriginId() { + return originId; + } + + public void setOriginId(String originId) { + this.originId = originId; + } + + public Integer getPaperNo() { + return paperNo; + } + + public void setPaperNo(Integer paperNo) { + this.paperNo = paperNo; + } + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + + public String getFilePath() { + return filePath; + } + + public void setFilePath(String filePath) { + this.filePath = filePath; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getTemplateId() { + return templateId; + } + + public void setTemplateId(String templateId) { + this.templateId = templateId; + } + + public Long getProcessId() { + return processId; + } + + public void setProcessId(Long processId) { + this.processId = processId; + } + + public Long getRootPipelineId() { + return rootPipelineId; + } + + public void setRootPipelineId(Long rootPipelineId) { + this.rootPipelineId = rootPipelineId; + } + + @Override + public List getRowData() { + return null; + } +} diff --git a/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionOutput.java b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionOutput.java new file mode 100644 index 00000000..088fefeb --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionOutput.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.templatedetection; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TemplateDetectionOutput { + + private String name; + private String datatype; + private List shape; + private List data; + } + diff --git a/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionOutputTable.java b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionOutputTable.java new file mode 100644 index 00000000..04e71048 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionOutputTable.java @@ -0,0 +1,162 @@ +package in.handyman.raven.lib.model.templatedetection; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TemplateDetectionOutputTable implements CoproProcessor.Entity { + private String originId; + private Integer groupId; + private Long tenantId; + private String templateId; + private Long processId; + + private String processedFilePath; + private String question; + private String predictedAttributionValue; + private Float scores; + private String bboxes; + private Integer imageWidth; + private Integer imageHeight; + private Integer imageDPI; + private String extractedImageUnit; + + private Integer paperNo; + private String status; + private String stage; + private String message; + private Timestamp createdOn; + private Long rootPipelineId; + private String modelName; + private String modelVersion; + + + public TemplateDetectionOutputTable(String originId, Integer groupId, Long tenantId, String templateId, Long processId, String processedFilePath, Integer paperNo, String status, String stage, String message, Timestamp createdOn, Long rootPipelineId) { + this.originId = originId; + this.groupId = groupId; + this.tenantId = tenantId; + this.templateId = templateId; + this.processId = processId; + this.processedFilePath = processedFilePath; + this.paperNo = paperNo; + this.status = status; + this.stage = stage; + this.message = message; + this.createdOn = createdOn; + this.rootPipelineId = rootPipelineId; + this.modelName = modelName; + this.modelVersion = modelVersion; + } + + public String getOriginId() { + return originId; + } + + public void setOriginId(String originId) { + this.originId = originId; + } + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getTemplateId() { + return templateId; + } + + public void setTemplateId(String templateId) { + this.templateId = templateId; + } + + public Long getProcessId() { + return processId; + } + + public void setProcessId(Long processId) { + this.processId = processId; + } + + public String getProcessedFilePath() { + return processedFilePath; + } + + public void setProcessedFilePath(String processedFilePath) { + this.processedFilePath = processedFilePath; + } + + public Integer getPaperNo() { + return paperNo; + } + + public void setPaperNo(Integer paperNo) { + this.paperNo = paperNo; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getStage() { + return stage; + } + + public void setStage(String stage) { + this.stage = stage; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Timestamp getCreatedOn() { + return createdOn; + } + + public void setCreatedOn(Timestamp createdOn) { + this.createdOn = createdOn; + } + + public Long getRootPipelineId() { + return rootPipelineId; + } + + public void setRootPipelineId(Long rootPipelineId) { + this.rootPipelineId = rootPipelineId; + } + + @Override + public List getRowData() { + return Stream.of(this.processId, this.originId, this.paperNo,this.groupId + ,this.processedFilePath,this.question, this.predictedAttributionValue,this.scores,this.bboxes + ,this.imageWidth,this.imageHeight,this.imageDPI,this.extractedImageUnit,this.tenantId,this.templateId,this.status,this.stage,this.message,this.createdOn,this.rootPipelineId,this.modelName, this.modelVersion).collect(Collectors.toList()); + } +} diff --git a/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionRequest.java b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionRequest.java new file mode 100644 index 00000000..37355bdf --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionRequest.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib.model.templatedetection; + +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TemplateDetectionRequest { + + private List inputs; + +} + diff --git a/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionResponse.java b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionResponse.java new file mode 100644 index 00000000..f04c956a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/templatedetection/TemplateDetectionResponse.java @@ -0,0 +1,25 @@ +package in.handyman.raven.lib.model.templatedetection; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class TemplateDetectionResponse { + + @JsonProperty("model_name") + private String modelName; + + @JsonProperty("model_version") + private String modelVersion; + + private List outputs; + } + + diff --git a/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionConsumerProcess.java new file mode 100644 index 00000000..fe66c07e --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionConsumerProcess.java @@ -0,0 +1,275 @@ +package in.handyman.raven.lib.model.textextraction; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.*; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.io.File; +import java.net.URL; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.TimeUnit; + +public class DataExtractionConsumerProcess implements CoproProcessor.ConsumerProcess { + private final Logger log; + private final Marker aMarker; + private static final MediaType mediaType = MediaType.parse("application/json; charset=utf-8"); + + public final ActionExecutionAudit action; + private static final String PROCESS_NAME = "DATA_EXTRACTION"; + private static final String FAILED_STR = "FAILED"; + + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + private static final ObjectMapper mapper = new ObjectMapper(); + + public DataExtractionConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + } + + + @Override + public List process(URL endpoint, DataExtractionInputTable entity) throws JsonProcessingException { + List parentObj = new ArrayList<>(); + + String inputFilePath = entity.getFilePath(); + Long rootpipelineId = entity.getRootPipelineId(); + Long actionId = action.getActionId(); + String process = "TEXT_EXTRACTOR"; + String filePath = String.valueOf(entity.getFilePath()); + ObjectMapper objectMapper = new ObjectMapper(); + + + //payload + DataExtractionData dataExtractionData = new DataExtractionData(); + dataExtractionData.setRootPipelineId(rootpipelineId); + dataExtractionData.setActionId(actionId); + dataExtractionData.setProcess(process); + dataExtractionData.setInputFilePath(filePath); + String jsonInputRequest = objectMapper.writeValueAsString(dataExtractionData); + + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("TEXT EXTRACTOR START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + + TritonInputRequest tritonInputRequest = new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + if (log.isInfoEnabled()) { + log.info(aMarker, "Request has been build with the parameters \n URI : {}, with inputFilePath {} ", endpoint, inputFilePath); + } + + String originId = entity.getOriginId(); + Integer groupId = entity.getGroupId(); + + String tritonRequestActivator = action.getContext().get("triton.request.activator"); + + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonInputRequest, mediaType)).build(); + coproRequestBuilder(entity, request, parentObj, originId, groupId); + } else { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonRequest, mediaType)).build(); + tritonRequestBuilder(entity, request, parentObj, originId, groupId); + } + + + return parentObj; + } + + private void coproRequestBuilder(DataExtractionInputTable entity, Request request, List parentObj, String originId, Integer groupId) { + Long tenantId = entity.getTenantId(); + String templateId = entity.getTemplateId(); + Long processId = entity.getProcessId(); + Long rootPipelineId = entity.getRootPipelineId(); + String templateName = entity.getTemplateName(); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + + if (response.isSuccessful()) { + extractedOutputDataRequest(entity, responseBody, parentObj, originId, groupId, "", ""); + + } else { + parentObj.add(DataExtractionOutputTable.builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .paperNo(entity.getPaperNo()) + .status(FAILED_STR) + .stage(PROCESS_NAME) + .tenantId(tenantId) + .templateId(templateId) + .processId(processId) + .message(response.message()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .templateName(templateName) + .build()); + log.error(aMarker, "The Exception occurred in response {}", response.message()); + } + } catch (Exception e) { + parentObj.add(DataExtractionOutputTable.builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .paperNo(entity.getPaperNo()) + .status(FAILED_STR) + .stage(PROCESS_NAME) + .tenantId(tenantId) + .templateId(templateId) + .processId(processId) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .message(ExceptionUtil.toString(e)) + .rootPipelineId(rootPipelineId) + .templateName(templateName) + .build()); + + log.error(aMarker, "The Exception occurred {} ", e.toString()); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("test extraction consumer failed for batch/group " + groupId, handymanException, this.action); + + } + } + + private void tritonRequestBuilder(DataExtractionInputTable entity, Request request, List parentObj, String originId, Integer groupId) { + Long tenantId = entity.getTenantId(); + String templateId = entity.getTemplateId(); + Long processId = entity.getProcessId(); + Long rootPipelineId = entity.getRootPipelineId(); + String templateName = entity.getTemplateName(); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + + if (response.isSuccessful()) { + ObjectMapper objectMappers = new ObjectMapper(); + DataExtractionResponse modelResponse = objectMappers.readValue(responseBody, DataExtractionResponse.class); + if (modelResponse.getOutputs() != null && !modelResponse.getOutputs().isEmpty()) { + modelResponse.getOutputs().forEach(o -> { + o.getData().forEach(s -> { + try { + extractedOutputDataRequest(entity, s, parentObj, originId, groupId, modelResponse.getModelName(), modelResponse.getModelVersion()); + } catch (JsonProcessingException e) { + throw new HandymanException("Exception in extracted output Data request {}", e); + } + }); + + }); + } + } else { + parentObj.add(DataExtractionOutputTable.builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .paperNo(entity.getPaperNo()) + .status(FAILED_STR) + .stage(PROCESS_NAME) + .tenantId(tenantId) + .templateId(templateId) + .processId(processId) + .message(response.message()) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .rootPipelineId(rootPipelineId) + .templateName(templateName) + .build()); + log.error(aMarker, "The Exception occurred "); + } + } catch (Exception e) { + parentObj.add(DataExtractionOutputTable.builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .paperNo(entity.getPaperNo()) + .status(FAILED_STR) + .stage(PROCESS_NAME) + .tenantId(tenantId) + .templateId(templateId) + .processId(processId) + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .message(ExceptionUtil.toString(e)) + .rootPipelineId(rootPipelineId) + .templateName(templateName) + .build()); + + log.error(aMarker, "The Exception occurred ", e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("test extraction consumer failed for batch/group " + groupId, handymanException, this.action); + + } + } + + private static void extractedOutputDataRequest(DataExtractionInputTable entity, String stringDataItem, List parentObj, String originId, Integer groupId, String modelName, String modelVersion) throws JsonProcessingException { + + + String parentResponseObject=extractPageContent(stringDataItem); + final String contentString = Optional.of(parentResponseObject).map(String::valueOf).orElse(null); + final String flag = (!Objects.isNull(contentString) && contentString.length() > 5) ? "no" : "yes"; + + Integer paperNo = entity.getPaperNo(); + String filePath = entity.getFilePath(); + Long tenantId = entity.getTenantId(); + String templateId = entity.getTemplateId(); + Long processId = entity.getProcessId(); + String templateName = entity.getTemplateName(); + Long rootPipelineId = entity.getRootPipelineId(); + parentObj.add(DataExtractionOutputTable.builder() + .filePath(new File(filePath).getAbsolutePath()) + .extractedText(contentString) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(groupId) + .paperNo(paperNo) + .status("COMPLETED") + .stage(PROCESS_NAME) + .message("Data extraction macro completed") + .createdOn(Timestamp.valueOf(LocalDateTime.now())) + .isBlankPage(flag) + .tenantId(tenantId) + .templateId(templateId) + .processId(processId) + .templateName(templateName) + .rootPipelineId(rootPipelineId) + .modelName(modelName) + .modelVersion(modelVersion) + .build()); + + + } + + private static String extractPageContent(String jsonString) { + int startIndex = jsonString.indexOf("\"pageContent\":") + "\"pageContent\":".length(); + int endIndex = jsonString.lastIndexOf("}"); + + if (startIndex != -1 && endIndex != -1) { + String pageContent = jsonString.substring(startIndex, endIndex).trim(); + if (pageContent.startsWith("\"")) { + pageContent = pageContent.substring(1); + } + if (pageContent.endsWith("\"")) { + pageContent = pageContent.substring(0, pageContent.length() - 1); + } + return pageContent; + } else { + return ""; + } + } + +} + diff --git a/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionData.java b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionData.java new file mode 100644 index 00000000..0f0429c2 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionData.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib.model.textextraction; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class DataExtractionData { + + private Long rootPipelineId; + private Long actionId; + private String process; + private String inputFilePath; + + } + diff --git a/handyman.raven/src/test/java/in/handyman/raven/kafka/FileContext.java b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionDataItem.java similarity index 55% rename from handyman.raven/src/test/java/in/handyman/raven/kafka/FileContext.java rename to src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionDataItem.java index 815a4701..8bd624cc 100644 --- a/handyman.raven/src/test/java/in/handyman/raven/kafka/FileContext.java +++ b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionDataItem.java @@ -1,18 +1,21 @@ -package in.handyman.raven.kafka; +package in.handyman.raven.lib.model.textextraction; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.io.Serializable; - @Data -@NoArgsConstructor @AllArgsConstructor +@NoArgsConstructor @Builder -public class FileContext implements Serializable { +public class DataExtractionDataItem { + + private String pageContent; private String filePath; + private String fileName; + + } + -} diff --git a/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionInputTable.java b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionInputTable.java new file mode 100644 index 00000000..c79740cb --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionInputTable.java @@ -0,0 +1,32 @@ +package in.handyman.raven.lib.model.textextraction; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class DataExtractionInputTable implements CoproProcessor.Entity { + public String process; + private String originId; + private Integer groupId; + private String filePath; + private Integer paperNo; + private Long tenantId; + private String templateId; + private Long processId; + private Long rootPipelineId; + private String templateName; + + @Override + public List getRowData() { + return null; + } + +} diff --git a/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionOutput.java b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionOutput.java new file mode 100644 index 00000000..42b9edbd --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionOutput.java @@ -0,0 +1,18 @@ +package in.handyman.raven.lib.model.textextraction; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class DataExtractionOutput { + private String name; + private String datatype; + private List shape; + private List data; +} diff --git a/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionOutputTable.java b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionOutputTable.java new file mode 100644 index 00000000..be67ce5c --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionOutputTable.java @@ -0,0 +1,46 @@ +package in.handyman.raven.lib.model.textextraction; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class DataExtractionOutputTable implements CoproProcessor.Entity { + + private String originId; + private Integer groupId; + private Long tenantId; + private String templateId; + private Long processId; + private String filePath; + private String extractedText; + private String fileName; + private Integer paperNo; + private String status; + private String stage; + private String message; + private String isBlankPage; + private Timestamp createdOn; + private Long rootPipelineId; + private String templateName; + private String modelName; + private String modelVersion; + + + @Override + public List getRowData() { + return Stream.of(this.originId, this.groupId, this.tenantId,this.templateId + ,this.processId,this.filePath, this.extractedText,this.paperNo,this.fileName + ,this.status,this.stage,this.message,this.isBlankPage,this.createdOn,this.rootPipelineId,this.templateName, this.modelName, this.modelVersion).collect(Collectors.toList()); + } +} diff --git a/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionRequest.java b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionRequest.java new file mode 100644 index 00000000..aa4e3715 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionRequest.java @@ -0,0 +1,18 @@ +package in.handyman.raven.lib.model.textextraction; + +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class DataExtractionRequest { + + + private List inputs; +} \ No newline at end of file diff --git a/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionResponse.java b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionResponse.java new file mode 100644 index 00000000..10c5340a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/textextraction/DataExtractionResponse.java @@ -0,0 +1,21 @@ +package in.handyman.raven.lib.model.textextraction; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class DataExtractionResponse { + @JsonProperty("model_name") + private String modelName; + @JsonProperty("model_version") + private String modelVersion; + private List outputs; + } + diff --git a/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelApiCaller.java b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelApiCaller.java new file mode 100644 index 00000000..9d8d2dca --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelApiCaller.java @@ -0,0 +1,143 @@ +package in.handyman.raven.lib.model.trinitymodel; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.TrinityModelAction; +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.extern.slf4j.Slf4j; +import okhttp3.*; +import org.jetbrains.annotations.NotNull; + +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +@Slf4j +public class TrinityModelApiCaller { + + private static final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + private static final ObjectMapper MAPPER = new ObjectMapper(); + private final TrinityModelAction aAction; + private final OkHttpClient httpclient; + + + private final String node; + + public TrinityModelApiCaller(TrinityModelAction aAction, final String node) { + this.aAction = aAction; + this.node = node; + this.httpclient = new OkHttpClient.Builder() + .connectTimeout(Long.parseLong(aAction.getHttpClientTimeout()), TimeUnit.MINUTES) + .writeTimeout(Long.parseLong(aAction.getHttpClientTimeout()), TimeUnit.MINUTES) + .readTimeout(Long.parseLong(aAction.getHttpClientTimeout()), TimeUnit.MINUTES) + .build(); + } + + public String computeTriton(final String inputPath, final String paperType, final List questions, ActionExecutionAudit action) throws JsonProcessingException { + + Long actionId = action.getActionId(); + Long rootpipelineId = action.getRootPipelineId(); + final String trinityProcessName = "VQA_VALUATION"; + ObjectMapper objectMapper = new ObjectMapper(); + + + TrinityModelPayload trinityModelPayload = new TrinityModelPayload(); + trinityModelPayload.setActionId(actionId); + trinityModelPayload.setProcess(trinityProcessName); + trinityModelPayload.setRootPipelineId(rootpipelineId); + trinityModelPayload.setPaperType(paperType); + trinityModelPayload.setAttributes(questions); + trinityModelPayload.setInputFilePath(inputPath); + + + String jsonInputRequest = objectMapper.writeValueAsString(trinityModelPayload); + + TritonRequest tritonRequest = getTritonRequestPaperType(paperType, jsonInputRequest); + + + TrinityModelRequest trinityModelRequest = new TrinityModelRequest(); + trinityModelRequest.setInputs(Collections.singletonList(tritonRequest)); + + String jsonRequest = objectMapper.writeValueAsString(trinityModelRequest); + + final Request request = new Request.Builder().url(node) + .post(RequestBody.create(jsonRequest, MediaTypeJSON)).build(); + log.info("Request URL : {} Question List size {}", node, questions.size()); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + + + return responseBody; + } else { + log.error("Error in the trinity model response {}", responseBody); + throw new HandymanException(responseBody); + } + } catch (Exception e) { + log.error("Failed to execute the rest api call"); + throw new HandymanException("Failed to execute the rest api call " + node, e); + } + } + + @NotNull + private static TritonRequest getTritonRequestPaperType(String paperType, String jsonInputRequest) { + TritonRequest tritonRequest = new TritonRequest(); + + if(Objects.equals(paperType,"Printed")){ + tritonRequest.setShape(List.of(1, 1)); + tritonRequest.setName("ERNIE START"); + tritonRequest.setDatatype("BYTES"); + tritonRequest.setData(Collections.singletonList(jsonInputRequest)); + } else if (Objects.equals(paperType,"Handwritten")) { + tritonRequest.setShape(List.of(1, 1)); + tritonRequest.setName("DONUT START"); + tritonRequest.setDatatype("BYTES"); + tritonRequest.setData(Collections.singletonList(jsonInputRequest)); + + } + return tritonRequest; + } + + public String computeCopro(final String inputPath, final String paperType, final List questions, ActionExecutionAudit action) throws JsonProcessingException { + + Long actionId = action.getActionId(); + Long rootpipelineId = action.getRootPipelineId(); + final String trinityProcessName = "VQA_VALUATION"; + ObjectMapper objectMapper = new ObjectMapper(); + + + TrinityModelPayload trinityModelPayload = new TrinityModelPayload(); + trinityModelPayload.setActionId(actionId); + trinityModelPayload.setProcess(trinityProcessName); + trinityModelPayload.setRootPipelineId(rootpipelineId); + trinityModelPayload.setPaperType(paperType); + trinityModelPayload.setAttributes(questions); + trinityModelPayload.setInputFilePath(inputPath); + + + String jsonInputRequest = objectMapper.writeValueAsString(trinityModelPayload); + + final Request request = new Request.Builder().url(node) + .post(RequestBody.create(jsonInputRequest, MediaTypeJSON)).build(); + log.info("Request URL : {} Question List size {}", node, questions.size()); + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + + + return responseBody; + } else { + log.error("Error in the trinity model response {}", responseBody); + throw new HandymanException(responseBody); + } + } catch (Exception e) { + log.error("Failed to execute the rest api call"); + throw new HandymanException("Failed to execute the rest api call " + node, e); + } + } + + +} diff --git a/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelDataItem.java b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelDataItem.java new file mode 100644 index 00000000..4ccc9f42 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelDataItem.java @@ -0,0 +1,22 @@ +package in.handyman.raven.lib.model.trinitymodel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TrinityModelDataItem { + private List attributes; + private Integer imageDPI; + private Integer imageWidth; + private Integer imageHeight; + private String extractedImageUnit; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelDataLineItem.java b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelDataLineItem.java new file mode 100644 index 00000000..7c3aa748 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelDataLineItem.java @@ -0,0 +1,21 @@ +package in.handyman.raven.lib.model.trinitymodel; + +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder + +public class TrinityModelDataLineItem { + + private String question; + private String predictedAttributionValue; + private Float scores; + private JsonNode bboxes; +} diff --git a/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelLineItem.java b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelLineItem.java new file mode 100644 index 00000000..e9c1c4fe --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelLineItem.java @@ -0,0 +1,23 @@ +package in.handyman.raven.lib.model.trinitymodel; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +@JsonIgnoreProperties(ignoreUnknown = true) +public class TrinityModelLineItem { + + private String filePath; + private List questions; + private String paperType; + + +} diff --git a/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelOutput.java b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelOutput.java new file mode 100644 index 00000000..2418b852 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelOutput.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.trinitymodel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TrinityModelOutput { + + private String name; + private String datatype; + private List shape; + private List data; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelPayload.java b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelPayload.java new file mode 100644 index 00000000..dd4b96cb --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelPayload.java @@ -0,0 +1,21 @@ +package in.handyman.raven.lib.model.trinitymodel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class TrinityModelPayload { + private Long rootPipelineId; + private Long actionId; + private String process; + private String inputFilePath; + private String paperType; + private List attributes; +} diff --git a/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelQueryResult.java b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelQueryResult.java new file mode 100644 index 00000000..14d6e996 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelQueryResult.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.trinitymodel; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +@JsonIgnoreProperties(ignoreUnknown = true) +public class TrinityModelQueryResult { + + private String filePath; + private String question; + private String paperType; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelRequest.java b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelRequest.java new file mode 100644 index 00000000..bd1bb938 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelRequest.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib.model.trinitymodel; + +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class TrinityModelRequest { + + + private List inputs; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelResponse.java b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelResponse.java new file mode 100644 index 00000000..2d713283 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelResponse.java @@ -0,0 +1,24 @@ +package in.handyman.raven.lib.model.trinitymodel; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TrinityModelResponse { + + @JsonProperty("model_name") + private String modelName; + + @JsonProperty("model_version") + private String modelVersion; + private List outputs; + + +} diff --git a/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelResult.java b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelResult.java new file mode 100644 index 00000000..6edc61ee --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelResult.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.trinitymodel; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +@JsonIgnoreProperties(ignoreUnknown = true) +public class TrinityModelResult { + private String question; + private String predictedAttributionValue; + private JsonNode bboxes; + private float scores; +} diff --git a/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelResultLineItem.java b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelResultLineItem.java new file mode 100644 index 00000000..a83458d3 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/trinitymodel/TrinityModelResultLineItem.java @@ -0,0 +1,24 @@ +package in.handyman.raven.lib.model.trinitymodel; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +@JsonIgnoreProperties(ignoreUnknown = true) +public class TrinityModelResultLineItem { + + private List attributes; + private double imageDPI; + private double imageWidth; + private double imageHeight; + private String extractedImageUnit; + } + + diff --git a/src/main/java/in/handyman/raven/lib/model/triton/ConsumerProcessApiStatus.java b/src/main/java/in/handyman/raven/lib/model/triton/ConsumerProcessApiStatus.java new file mode 100644 index 00000000..11a4153b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/triton/ConsumerProcessApiStatus.java @@ -0,0 +1,15 @@ +package in.handyman.raven.lib.model.triton; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@AllArgsConstructor +public enum ConsumerProcessApiStatus { + + COMPLETED("COMPLETED"),FAILED("FAILED"); + private final String statusDescription; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/triton/TritonInputRequest.java b/src/main/java/in/handyman/raven/lib/model/triton/TritonInputRequest.java new file mode 100644 index 00000000..42451b74 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/triton/TritonInputRequest.java @@ -0,0 +1,17 @@ +package in.handyman.raven.lib.model.triton; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class TritonInputRequest { + private List inputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/triton/TritonRequest.java b/src/main/java/in/handyman/raven/lib/model/triton/TritonRequest.java new file mode 100644 index 00000000..c0af7f12 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/triton/TritonRequest.java @@ -0,0 +1,22 @@ +package in.handyman.raven.lib.model.triton; + +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class TritonRequest { + + private String name; + private List shape; + private String datatype; + private List data; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageConsumerProcess.java new file mode 100644 index 00000000..f388f426 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageConsumerProcess.java @@ -0,0 +1,271 @@ +package in.handyman.raven.lib.model.utmodel; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.*; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.util.*; +import java.util.concurrent.TimeUnit; + +import static in.handyman.raven.lib.UrgencyTriageModelAction.urgencyTriageModel; + +public class UrgencyTriageConsumerProcess implements CoproProcessor.ConsumerProcess { + public static final String TRITON_REQUEST_ACTIVATOR = "triton.request.activator"; + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private final MediaType mediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + public final ActionExecutionAudit action; + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + + + public UrgencyTriageConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action) { + this.log = log; + this.aMarker = aMarker; + this.action = action; + } + + @Override + public List process(URL endpoint, UrgencyTriageInputTable entity) throws Exception { + List parentObj = new ArrayList<>(); + + String inputFilePath = entity.getInputFilePath(); + String outputDir = urgencyTriageModel.getOutputDir(); + + ObjectMapper objectMapper = new ObjectMapper(); + +//payload + UrgencyTriageModelPayload urgencyTriageModelPayload = new UrgencyTriageModelPayload(); + urgencyTriageModelPayload.setRootPipelineId(entity.getRootPipelineId()); + urgencyTriageModelPayload.setProcess("UT"); + urgencyTriageModelPayload.setInputFilePath(entity.getInputFilePath()); + urgencyTriageModelPayload.setActionId(action.getActionId()); + urgencyTriageModelPayload.setOutputDir(outputDir); + String jsonInputRequest = objectMapper.writeValueAsString(urgencyTriageModelPayload); + + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("UT START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + + TritonInputRequest tritonInputRequest = new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + + String tritonRequestActivator = action.getContext().get(TRITON_REQUEST_ACTIVATOR); + + + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(urgencyTriageModelPayload.toString(), mediaTypeJSON)).build(); + coproRequestBuider(entity, request, objectMapper, parentObj); + } else { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonRequest, mediaTypeJSON)).build(); + tritonRequestBuilder(entity, request, objectMapper, parentObj); + } + + if (log.isInfoEnabled()) { + log.info(aMarker, "Request has been build with the parameters \n coproUrl {} ,inputFilePath : {} ,outputDir {} ", endpoint, inputFilePath, outputDir); + } + + return parentObj; + } + + private void tritonRequestBuilder(UrgencyTriageInputTable entity, Request request, ObjectMapper objectMapper, List parentObj) { + String createdUserId = entity.getCreatedUserId(); + Long tenantId = entity.getTenantId(); + Long processId = entity.getProcessId(); + Integer groupId = entity.getGroupId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + String templateId = entity.getTemplateId(); + Long modelId = entity.getModelId(); + try (Response response = httpclient.newCall(request).execute()) { + final String responseBody = response.body().string(); + if (response.isSuccessful()) { + log.info("Response Details: {}", response); + + UrgencyTriageModelResponse modelResponse = objectMapper.readValue(responseBody, UrgencyTriageModelResponse.class); + + if (modelResponse.getOutputs() != null && !modelResponse.getOutputs().isEmpty()) { + modelResponse.getOutputs().forEach(o -> { + o.getData().forEach(urgencyTriageModelDataItem -> { + + extractedOutputRequest(entity, urgencyTriageModelDataItem, objectMapper, parentObj, originId, templateId); + + log.info(aMarker, "Execute for urgency triage {}", response); + }); + }); + } + } else { + parentObj.add(UrgencyTriageOutputTable.builder() + .createdUserId(createdUserId) + .lastUpdatedUserId(createdUserId) + .tenantId(tenantId) + .processId(processId) + .groupId(groupId) + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .paperNo(paperNo) + .templateId(templateId) + .modelId(modelId) + .status("FAILED") + .stage("URGENCY_TRIAGE_MODEL") + .message(response.message()) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + log.error(aMarker, "The Exception occurred in urgency triage {}", response); + } + } catch (Exception e) { + parentObj.add(UrgencyTriageOutputTable.builder() + .createdUserId(createdUserId) + .lastUpdatedUserId(createdUserId) + .tenantId(tenantId) + .groupId(groupId) + .processId(processId) + .originId(originId) + .paperNo(paperNo) + .templateId(templateId) + .modelId(modelId) + .status("FAILED") + .stage("URGENCY_TRIAGE_MODEL") + .message(ExceptionUtil.toString(e)) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + log.error(aMarker, "The Exception occurred in urgency triage", e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Exception occurred in urgency triage model action for group id - " + groupId + " and originId - " + originId, handymanException, this.action); + } + } + + private static void extractedOutputRequest(UrgencyTriageInputTable entity, String urgencyTriageModelDataItem, ObjectMapper objectMapper, List parentObj, String modelName, String modelVersion) { + String createdUserId = entity.getCreatedUserId(); + String lastUpdatedUserId = entity.getLastUpdatedUserId(); + Long tenantId = entity.getTenantId(); + Long processId = entity.getProcessId(); + Integer groupId = entity.getGroupId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + String templateId = entity.getTemplateId(); + Long modelId = entity.getModelId(); + try { + UrgencyTriageModelDataItem urgencyTriageModelDataItem1 = objectMapper.readValue(urgencyTriageModelDataItem, UrgencyTriageModelDataItem.class); + JsonNode qrBoundingBox=objectMapper.valueToTree(urgencyTriageModelDataItem1.getBboxes()); + Float confScore = urgencyTriageModelDataItem1.getConfidenceScore(); + String paperType = urgencyTriageModelDataItem1.getPaperType(); + parentObj.add(UrgencyTriageOutputTable.builder() + .createdUserId(createdUserId) + .lastUpdatedUserId(createdUserId) + .tenantId(tenantId) + .processId(processId) + .groupId(groupId) + .originId(originId) + .paperNo(paperNo) + .templateId(templateId) + .modelId(modelId) + .utResult(paperType) + .confScore(confScore) + .bbox(qrBoundingBox.toString()) + .status("COMPLETED") + .stage("URGENCY_TRIAGE_MODEL") + .message("Urgency Triage Finished") + .rootPipelineId(entity.getRootPipelineId()) + .modelName(modelName) + .modelVersion(modelVersion) + .build()); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + + private void coproRequestBuider(UrgencyTriageInputTable entity, Request request, ObjectMapper objectMapper, List parentObj) { + try (Response response = httpclient.newCall(request).execute()) { + final String responseBody = response.body().string(); + String createdUserId = entity.getCreatedUserId(); + Long tenantId = entity.getTenantId(); + Long processId = entity.getProcessId(); + Integer groupId = entity.getGroupId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + String templateId = entity.getTemplateId(); + Long modelId = entity.getModelId(); + if (response.isSuccessful()) { + log.info("Response Details: {}", response); + extractedOutputRequest(entity, responseBody, objectMapper, parentObj, originId, templateId); + + } else { + parentObj.add(UrgencyTriageOutputTable.builder() + .createdUserId(createdUserId) + .lastUpdatedUserId(createdUserId) + .tenantId(tenantId) + .processId(processId) + .groupId(groupId) + .originId(originId) + .paperNo(paperNo) + .templateId(templateId) + .modelId(modelId) + .status("FAILED") + .stage("URGENCY_TRIAGE_MODEL") + .message(response.message()) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + log.error(aMarker, "The Exception occurred in urgency triage {}", response); + } + } catch (Exception e) { + String createdUserId = entity.getCreatedUserId(); + String lastUpdatedUserId = entity.getLastUpdatedUserId(); + Long tenantId = entity.getTenantId(); + Long processId = entity.getProcessId(); + Integer groupId = entity.getGroupId(); + String originId = entity.getOriginId(); + Integer paperNo = entity.getPaperNo(); + String templateId = entity.getTemplateId(); + Long modelId = entity.getModelId(); + + parentObj.add(UrgencyTriageOutputTable.builder() + + .createdUserId(createdUserId) + .lastUpdatedUserId(createdUserId) + .tenantId(tenantId) + .groupId(groupId) + .processId(processId) + .originId(originId) + .paperNo(paperNo) + .templateId(templateId) + .modelId(modelId) + .status("FAILED") + .stage("URGENCY_TRIAGE_MODEL") + .message(ExceptionUtil.toString(e)) + .rootPipelineId(entity.getRootPipelineId()) + .build()); + log.error(aMarker, "The Exception occurred in urgency triage", e); + HandymanException handymanException = new HandymanException(e); + HandymanException.insertException("Exception occurred in urgency triage model action for group id - " + groupId + " and originId - " + originId, handymanException, this.action); + } + } +} + + + diff --git a/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageInputTable.java b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageInputTable.java new file mode 100644 index 00000000..024aefb3 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageInputTable.java @@ -0,0 +1,33 @@ +package in.handyman.raven.lib.model.utmodel; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class UrgencyTriageInputTable implements CoproProcessor.Entity { + private String createdUserId; + private String lastUpdatedUserId; + private Long tenantId; + private Long processId; + private Integer groupId; + private String originId; + private Integer paperNo; + private String templateId; + private Long modelId; + private String inputFilePath; + private Long rootPipelineId; + + @Override + public List getRowData() { + return null; + } +} + diff --git a/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelBoundingBox.java b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelBoundingBox.java new file mode 100644 index 00000000..b5e75375 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelBoundingBox.java @@ -0,0 +1,16 @@ +package in.handyman.raven.lib.model.utmodel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class UrgencyTriageModelBoundingBox { + private int topLeftX; + private int topLeftY; + private int bottomRightX; + private int bottomRightY;} diff --git a/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelDataItem.java b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelDataItem.java new file mode 100644 index 00000000..9bdcb38a --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelDataItem.java @@ -0,0 +1,22 @@ +package in.handyman.raven.lib.model.utmodel; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class UrgencyTriageModelDataItem { + private String model; + @JsonProperty("paper_type") + private String paperType; + @JsonProperty("confidence_score") + private Float confidenceScore; + private UrgencyTriageModelBoundingBox bboxes; + +} + diff --git a/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelOutput.java b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelOutput.java new file mode 100644 index 00000000..090d449d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelOutput.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib.model.utmodel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class UrgencyTriageModelOutput { + private String name; + private String datatype; + private List shape; + private List data; +} diff --git a/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelPayload.java b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelPayload.java new file mode 100644 index 00000000..2d80de6d --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelPayload.java @@ -0,0 +1,18 @@ +package in.handyman.raven.lib.model.utmodel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class UrgencyTriageModelPayload { + private Long rootPipelineId; + private Long actionId; + private String process; + private String inputFilePath; + private String outputDir; +} diff --git a/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelRequest.java b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelRequest.java new file mode 100644 index 00000000..fdc0da7c --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelRequest.java @@ -0,0 +1,11 @@ +package in.handyman.raven.lib.model.utmodel; + +import in.handyman.raven.lib.model.triton.TritonRequest; + +import java.util.List; + +public class UrgencyTriageModelRequest { + + private List inputs; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelResponse.java b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelResponse.java new file mode 100644 index 00000000..c04e9847 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageModelResponse.java @@ -0,0 +1,21 @@ +package in.handyman.raven.lib.model.utmodel; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class UrgencyTriageModelResponse { + @JsonProperty("model_name") + private String modelName; + @JsonProperty("model_version") + private String modelVersion; + private List outputs; +} diff --git a/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageOutputTable.java b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageOutputTable.java new file mode 100644 index 00000000..f7b0d263 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/utmodel/UrgencyTriageOutputTable.java @@ -0,0 +1,43 @@ +package in.handyman.raven.lib.model.utmodel; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class UrgencyTriageOutputTable implements CoproProcessor.Entity { + private String createdUserId; + private String lastUpdatedUserId; + private Long processId; + private Integer groupId; + private Long tenantId; + private Float confScore; + private String originId; + private Integer paperNo; + private String templateId; + private Long modelId; + private String status; + private String stage; + private String message; + private String utResult; + private String bbox; + private Long rootPipelineId; + private String modelName; + private String modelVersion; + + @Override + public List getRowData() { + return Stream.of(this.createdUserId, this.lastUpdatedUserId, this.processId, this.groupId, this.tenantId, this.confScore, + this.originId, this.paperNo, this.templateId, this.modelId, this.status, this.stage, this.message, this.utResult, this.bbox, this.rootPipelineId, this.modelName, this.modelVersion).collect(Collectors.toList()); + } + +} diff --git a/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierData.java b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierData.java new file mode 100644 index 00000000..e34e4f1b --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierData.java @@ -0,0 +1,25 @@ +package in.handyman.raven.lib.model.zeroshotclassifier; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.Map; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ZeroShotClassifierData { + private String rootPipelineId; + private Long actionId; + private String process; + private String originId; + private String paperNo; + private String groupId; + private Map> keysToFilter; + private String pageContent; + } + diff --git a/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierDataEntityConfidenceScore.java b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierDataEntityConfidenceScore.java new file mode 100644 index 00000000..c720b674 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierDataEntityConfidenceScore.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.zeroshotclassifier; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder + + + +public class ZeroShotClassifierDataEntityConfidenceScore { + private String key; + private double score; + private String truthEntity; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierDataItem.java b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierDataItem.java new file mode 100644 index 00000000..20afbffc --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierDataItem.java @@ -0,0 +1,24 @@ +package in.handyman.raven.lib.model.zeroshotclassifier; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ZeroShotClassifierDataItem { + private String originId; + private String groupId; + private Integer paperNo; + @JsonProperty("page_content") + private String pageContent; + @JsonProperty("entity_confidence_score") + private List entityConfidenceScore; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierInputTable.java b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierInputTable.java new file mode 100644 index 00000000..13204271 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierInputTable.java @@ -0,0 +1,34 @@ +package in.handyman.raven.lib.model.zeroshotclassifier; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public class ZeroShotClassifierInputTable implements CoproProcessor.Entity { + + private String originId; + private Integer paperNo; + private String groupId; + private String pageContent; + private String truthPlaceholder; + private String processId; + private Long rootPipelineId; + private String keyToFilter; + private Long tenantId; + + @Override + public List getRowData() { + return null; + } + } + diff --git a/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierKeyfilter.java b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierKeyfilter.java new file mode 100644 index 00000000..50a93cd6 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierKeyfilter.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.zeroshotclassifier; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.Map; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ZeroShotClassifierKeyfilter { + + private Map> keysToFilter; + + +} diff --git a/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierModelResponse.java b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierModelResponse.java new file mode 100644 index 00000000..923a64e8 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierModelResponse.java @@ -0,0 +1,24 @@ +package in.handyman.raven.lib.model.zeroshotclassifier; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ZeroShotClassifierModelResponse { + @JsonProperty("model_name") + private String modelName; + @JsonProperty("model_version") + private String modelVersion; + private List outputs; + + +} + diff --git a/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierOutput.java b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierOutput.java new file mode 100644 index 00000000..d7eb5c59 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierOutput.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.zeroshotclassifier; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ZeroShotClassifierOutput { + private String name; + private String datatype; + private List shape; + private List data; + +} diff --git a/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierOutputTable.java b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierOutputTable.java new file mode 100644 index 00000000..028ca9b5 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierOutputTable.java @@ -0,0 +1,43 @@ +package in.handyman.raven.lib.model.zeroshotclassifier; + +import in.handyman.raven.lib.CoproProcessor; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public class ZeroShotClassifierOutputTable implements CoproProcessor.Entity { + private String originId; + private Integer paperNo; + private String groupId; + private String truthEntity; + + private String confidenceScore; + private String entity; + + private String status; + + private String stage; + + private String message; + private Long rootPipelineId; + private String modelName; + private String modelVersion; + private Long tenantId; + + @Override + public List getRowData() { + return Stream.of(this.originId, this.groupId, this.paperNo, this.entity, this.confidenceScore, + this.truthEntity, this.status, this.stage, this.message, this.rootPipelineId,this.modelName, this.modelVersion,this.tenantId).collect(Collectors.toList()); + } + } + diff --git a/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierRequest.java b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierRequest.java new file mode 100644 index 00000000..ef15abce --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierRequest.java @@ -0,0 +1,17 @@ +package in.handyman.raven.lib.model.zeroshotclassifier; + +import in.handyman.raven.lib.model.triton.TritonRequest; +import lombok.*; + +import java.util.List; + + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class ZeroShotClassifierRequest { + + private List inputs; +} + diff --git a/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierRequestBody.java b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierRequestBody.java new file mode 100644 index 00000000..d3926567 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotClassifierRequestBody.java @@ -0,0 +1,20 @@ +package in.handyman.raven.lib.model.zeroshotclassifier; + +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ZeroShotClassifierRequestBody { + private String content; + private JsonNode labels; + +} + + diff --git a/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotConsumerProcess.java b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotConsumerProcess.java new file mode 100644 index 00000000..71bf4de1 --- /dev/null +++ b/src/main/java/in/handyman/raven/lib/model/zeroshotclassifier/ZeroShotConsumerProcess.java @@ -0,0 +1,248 @@ +package in.handyman.raven.lib.model.zeroshotclassifier; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.CoproProcessor; +import in.handyman.raven.lib.model.triton.TritonInputRequest; +import in.handyman.raven.lib.model.triton.TritonRequest; +import in.handyman.raven.util.ExceptionUtil; +import okhttp3.*; +import org.slf4j.Logger; +import org.slf4j.Marker; + +import java.net.URL; +import java.util.*; +import java.util.concurrent.TimeUnit; + + + + + public class ZeroShotConsumerProcess implements CoproProcessor.ConsumerProcess { + public static final String TRITON_REQUEST_ACTIVATOR = "triton.request.activator"; + private final Logger log; + private final Marker aMarker; + private final ObjectMapper mapper = new ObjectMapper(); + private static final MediaType MediaTypeJSON = MediaType + .parse("application/json; charset=utf-8"); + + private static final String actionName = "ZERO_SHOT_CLASSIFIER"; + + public final ActionExecutionAudit action; + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + public ZeroShotConsumerProcess(final Logger log, final Marker aMarker, ActionExecutionAudit action) throws JsonMappingException, JsonProcessingException { + this.log = log; + this.aMarker = aMarker; + this.action = action; + } + + @Override + public List process(URL endpoint, ZeroShotClassifierInputTable entity) throws JsonProcessingException { + List parentObj = new ArrayList<>(); + + String originId = entity.getOriginId(); + String groupId = entity.getGroupId(); + Long rootPipelineId = action.getRootPipelineId(); + String processId = String.valueOf(entity.getProcessId()); + String paperNo = String.valueOf(entity.getPaperNo()); + Long actionId = action.getActionId(); + String pageContent = String.valueOf(entity.getPageContent()); + + + ObjectMapper objectMapper = new ObjectMapper(); + Map> keysToFilterObject = objectMapper.readValue(entity.getTruthPlaceholder(), new TypeReference>>() { + }); + + + //payload + + ZeroShotClassifierData data = new ZeroShotClassifierData(); + data.setRootPipelineId(String.valueOf(rootPipelineId)); + data.setActionId(actionId); + data.setProcess(entity.getProcessId()); + data.setOriginId(originId); + data.setPaperNo(paperNo); + data.setGroupId(groupId); + data.setPageContent(pageContent); + data.setKeysToFilter(keysToFilterObject); + String jsonInputRequest = objectMapper.writeValueAsString(data); + + + TritonRequest requestBody = new TritonRequest(); + requestBody.setName("ZSC START"); + requestBody.setShape(List.of(1, 1)); + requestBody.setDatatype("BYTES"); + requestBody.setData(Collections.singletonList(jsonInputRequest)); + + + TritonInputRequest tritonInputRequest=new TritonInputRequest(); + tritonInputRequest.setInputs(Collections.singletonList(requestBody)); + + + String jsonRequest = objectMapper.writeValueAsString(tritonInputRequest); + + String tritonRequestActivator = action.getContext().get(TRITON_REQUEST_ACTIVATOR); + + + if (Objects.equals("false", tritonRequestActivator)) { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonInputRequest, MediaTypeJSON)).build(); + coproRequestBuilder(entity,parentObj, request,objectMapper); + } else { + Request request = new Request.Builder().url(endpoint) + .post(RequestBody.create(jsonRequest, MediaTypeJSON)).build(); + tritonRequestBuilder(entity,parentObj,request); + } + + return parentObj; + } + + private void tritonRequestBuilder(ZeroShotClassifierInputTable entity, List parentObj, Request request) { + String originId = entity.getOriginId(); + String groupId = entity.getGroupId(); + + final Integer paperNo = Optional.ofNullable(entity.getPaperNo()).map(String::valueOf).map(Integer::parseInt).orElse(null); + Long rootPipelineId = entity.getRootPipelineId(); + + + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + ObjectMapper objectMapper = new ObjectMapper(); + ZeroShotClassifierModelResponse modelResponse = objectMapper.readValue(responseBody, ZeroShotClassifierModelResponse.class); + if (modelResponse.getOutputs() != null && !modelResponse.getOutputs().isEmpty()) { + modelResponse.getOutputs().forEach(o -> { + o.getData().forEach(zeroShotClassifierDataItem -> { + + extractedOutputDataRequest(entity,parentObj, zeroShotClassifierDataItem, objectMapper, modelResponse.getModelName(), modelResponse.getModelVersion()); + }); + }); + } + } else { + parentObj.add( + ZeroShotClassifierOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).orElse(null)) + .status("FAILED") + .paperNo(paperNo) + .stage(actionName) + .message(Optional.of(responseBody).map(String::valueOf).orElse(null)) + .rootPipelineId(rootPipelineId) + .build()); + log.error(aMarker, "Exception occurred in zero shot classifier API call"); + } + } catch (Exception exception) { + parentObj.add( + ZeroShotClassifierOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).orElse(null)) + .status("FAILED") + .paperNo(paperNo) + .stage(actionName) + .message(exception.getMessage()) + .rootPipelineId(rootPipelineId) + .build()); + log.error(aMarker, "Exception occurred in the zero shot classifier paper filter action {}", ExceptionUtil.toString(exception)); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("Zero shot classifier paper filter action failed for groupId - " + groupId + "and originId - " + originId + "and paperNo -" + paperNo, handymanException, action); + } + } + + private void coproRequestBuilder(ZeroShotClassifierInputTable entity, List parentObj, Request request, ObjectMapper objectMapper) { + + String originId = entity.getOriginId(); + String groupId = entity.getGroupId(); + + final Integer paperNo = Optional.ofNullable(entity.getPaperNo()).map(String::valueOf).map(Integer::parseInt).orElse(null); + Long rootPipelineId = entity.getRootPipelineId(); + + + + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + extractedOutputDataRequest(entity,parentObj, responseBody, objectMapper,"",""); + + } else { + parentObj.add( + ZeroShotClassifierOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).orElse(null)) + .status("FAILED") + .paperNo(paperNo) + .stage(actionName) + .message(Optional.of(responseBody).map(String::valueOf).orElse(null)) + .rootPipelineId(rootPipelineId) + .build()); + log.error(aMarker, "Exception occurred in zero shot classifier API call"); + } + } catch (Exception exception) { + parentObj.add( + ZeroShotClassifierOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).orElse(null)) + .status("FAILED") + .paperNo(paperNo) + .stage(actionName) + .message(exception.getMessage()) + .rootPipelineId(rootPipelineId) + .build()); + log.error(aMarker, "Exception occurred in the zero shot classifier paper filter action {}", ExceptionUtil.toString(exception)); + HandymanException handymanException = new HandymanException(exception); + HandymanException.insertException("Zero shot classifier paper filter action failed for groupId - " + groupId + "and originId - " + originId + "and paperNo -" + paperNo, handymanException, action); + } + } + + private static void extractedOutputDataRequest(ZeroShotClassifierInputTable entity, List parentObj, String zeroShotClassifierDataItem, ObjectMapper objectMapper, String modelName, String modelVersion) { + String originId = entity.getOriginId(); + String groupId = entity.getGroupId(); + + final Integer paperNo = Optional.ofNullable(entity.getPaperNo()).map(String::valueOf).map(Integer::parseInt).orElse(null); + Long rootPipelineId = entity.getRootPipelineId(); + + + + + try { + ZeroShotClassifierDataItem zeroshotclassifierOutputData = objectMapper.readValue(zeroShotClassifierDataItem, ZeroShotClassifierDataItem.class); + zeroshotclassifierOutputData. getEntityConfidenceScore().forEach(score -> { + String truthEntity = score.getTruthEntity(); + String key = score.getKey(); + double scoreValue = score.getScore(); + + parentObj.add(ZeroShotClassifierOutputTable + .builder() + .originId(Optional.ofNullable(originId).map(String::valueOf).orElse(null)) + .groupId(Optional.ofNullable(groupId).map(String::valueOf).orElse(null)) + .truthEntity(Optional.ofNullable(truthEntity).map(String::valueOf).orElse(null)) + .entity(Optional.ofNullable(key).map(String::valueOf).orElse(null)) + .confidenceScore(Optional.of(scoreValue).map(String::valueOf).orElse(null)) + .paperNo(paperNo) + .status("COMPLETED") + .stage(actionName) + .message("Completed API call zero shot classifier") + .rootPipelineId(rootPipelineId) + .modelName(modelName) + .modelVersion(modelVersion) + .build()); + }); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + } + + + diff --git a/handyman.raven/src/main/java/in/handyman/raven/util/CommonQueryUtil.java b/src/main/java/in/handyman/raven/util/CommonQueryUtil.java similarity index 87% rename from handyman.raven/src/main/java/in/handyman/raven/util/CommonQueryUtil.java rename to src/main/java/in/handyman/raven/util/CommonQueryUtil.java index 8e7295e6..28a055a7 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/util/CommonQueryUtil.java +++ b/src/main/java/in/handyman/raven/util/CommonQueryUtil.java @@ -3,6 +3,7 @@ import com.zaxxer.hikari.HikariDataSource; import in.handyman.raven.exception.HandymanException; import lombok.extern.slf4j.Slf4j; +import org.jdbi.v3.core.Jdbi; import org.slf4j.Logger; import java.sql.Connection; @@ -33,6 +34,14 @@ public static void addKeyConfig(final Map configContext, final L }); } + + public static String getResult(final Jdbi jdbi, final String value) { + return jdbi.withHandle(handle -> { + final List formattedQuery = getFormattedQuery(value); + return formattedQuery.stream().flatMap(s -> handle.createQuery(s).map((rs, ctx) -> rs.getString(1)).stream()).findFirst().orElse(null); + }); + } + public static String getResult(final HikariDataSource hikariDataSource, final String value, final Logger logger) { try (final Connection connection = hikariDataSource.getConnection()) { final List formattedQuery = getFormattedQuery(value); @@ -69,11 +78,12 @@ public static String getResult(final HikariDataSource hikariDataSource, final St } public static List getFormattedQuery(final String givenQuery) { - var sqlWithoutQuotes = givenQuery.replaceAll("\"", ""); - var strings = List.of(sqlWithoutQuotes.split(";")); + //var sqlWithoutQuotes = givenQuery.replaceAll("\"", ""); + var strings = List.of(givenQuery.split(";")); return strings.stream().map(String::trim) .filter(s -> !s.isEmpty() && !s.isBlank()) .collect(Collectors.toUnmodifiableList()); } + } diff --git a/handyman.raven/src/main/java/in/handyman/raven/util/ExceptionUtil.java b/src/main/java/in/handyman/raven/util/ExceptionUtil.java similarity index 77% rename from handyman.raven/src/main/java/in/handyman/raven/util/ExceptionUtil.java rename to src/main/java/in/handyman/raven/util/ExceptionUtil.java index ad09eeda..c9d550e2 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/util/ExceptionUtil.java +++ b/src/main/java/in/handyman/raven/util/ExceptionUtil.java @@ -12,6 +12,13 @@ public static String toString(final Exception ex) { return sw.toString(); } + public static String toString(final Throwable ex) { + final StringWriter sw = new StringWriter(); + ex.printStackTrace(new PrintWriter(sw)); + return sw.toString(); + } + + public static String completeSQLWarning(final SQLWarning sqlWarnings) { var errors = new StringWriter(); var print = new PrintWriter(errors); diff --git a/handyman.raven/src/main/java/in/handyman/raven/util/HLogger.java b/src/main/java/in/handyman/raven/util/HLogger.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/util/HLogger.java rename to src/main/java/in/handyman/raven/util/HLogger.java diff --git a/src/main/java/in/handyman/raven/util/InstanceUtil.java b/src/main/java/in/handyman/raven/util/InstanceUtil.java new file mode 100644 index 00000000..2ec383be --- /dev/null +++ b/src/main/java/in/handyman/raven/util/InstanceUtil.java @@ -0,0 +1,53 @@ +package in.handyman.raven.util; + +import co.elastic.clients.elasticsearch.ElasticsearchClient; +import co.elastic.clients.json.jackson.JacksonJsonpMapper; +import co.elastic.clients.transport.rest_client.RestClientTransport; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import okhttp3.OkHttpClient; +import org.apache.http.HttpHost; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.impl.nio.reactor.IOReactorConfig; +import org.elasticsearch.client.RestClient; + +import java.util.concurrent.TimeUnit; + +public class InstanceUtil { + + private InstanceUtil() { + + } + + + public static OkHttpClient createOkHttpClient() { + return new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + } + + + public static ElasticsearchClient createElasticsearchClient(String userName, String password, String hostName) { + + final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); + credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password)); + var restClient = RestClient.builder(new HttpHost(hostName, Integer.parseInt("9200"))) + .setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(6000000) + .setSocketTimeout(6000000)).setHttpClientConfigCallback(httpAsyncClientBuilder -> { + httpAsyncClientBuilder.setMaxConnTotal(500); + httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider); + httpAsyncClientBuilder.setDefaultIOReactorConfig(IOReactorConfig.custom().setIoThreadCount(10).build()); + return httpAsyncClientBuilder; + }).build(); + final ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + var transport = new RestClientTransport(restClient, new JacksonJsonpMapper(mapper)); + return new ElasticsearchClient(transport); + } + +} diff --git a/src/main/java/in/handyman/raven/util/PropertyHandler.java b/src/main/java/in/handyman/raven/util/PropertyHandler.java new file mode 100755 index 00000000..8fe8927e --- /dev/null +++ b/src/main/java/in/handyman/raven/util/PropertyHandler.java @@ -0,0 +1,49 @@ +package in.handyman.raven.util; + +import in.handyman.raven.lambda.process.HRequestResolver; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.io.UncheckedIOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; +import java.util.stream.Collectors; + + +public class PropertyHandler { + + private static final Logger LOGGER = LoggerFactory.getLogger(PropertyHandler.class); + + private static final String CONFIG_PROPERTIES = "config.properties"; + private static final Map PROPS; + + static { + + try (var input = HRequestResolver.class.getClassLoader().getResourceAsStream("config.properties")) { + + var prop = new Properties(); + //load a properties file from class path, inside static method + prop.load(input); + var maps = prop.entrySet().stream().collect( + Collectors.toMap( + e -> String.valueOf(e.getKey()), + e -> String.valueOf(e.getValue()), + (prev, next) -> next, HashMap::new + )); + PROPS = Collections.unmodifiableMap(maps); + } catch (IOException e) { + throw new UncheckedIOException("Sorry, unable to load " + CONFIG_PROPERTIES, e); + } + } + + private PropertyHandler() { + } + + public static String get(final String key) { + return PROPS.get(key); + } + +} diff --git a/handyman.raven/src/main/java/in/handyman/raven/util/Table.java b/src/main/java/in/handyman/raven/util/Table.java similarity index 100% rename from handyman.raven/src/main/java/in/handyman/raven/util/Table.java rename to src/main/java/in/handyman/raven/util/Table.java diff --git a/handyman.raven/src/main/java/in/handyman/raven/util/UniqueID.java b/src/main/java/in/handyman/raven/util/UniqueID.java similarity index 84% rename from handyman.raven/src/main/java/in/handyman/raven/util/UniqueID.java rename to src/main/java/in/handyman/raven/util/UniqueID.java index 7e89110c..bfc392ca 100644 --- a/handyman.raven/src/main/java/in/handyman/raven/util/UniqueID.java +++ b/src/main/java/in/handyman/raven/util/UniqueID.java @@ -2,8 +2,9 @@ import com.fasterxml.uuid.Generators; -public class UniqueID { +import java.util.concurrent.atomic.AtomicInteger; +public class UniqueID { private UniqueID() { } @@ -12,6 +13,7 @@ public static Long getId() { return uuid.timestamp(); } + } diff --git a/src/main/resources/config.properties b/src/main/resources/config.properties new file mode 100644 index 00000000..982d273e --- /dev/null +++ b/src/main/resources/config.properties @@ -0,0 +1,4 @@ +raven.db.url=jdbc:postgresql://localhost:5432/zio_pipeline +raven.db.user=postgres +raven.db.password=postgres + diff --git a/src/main/resources/config_audit.sql b/src/main/resources/config_audit.sql new file mode 100644 index 00000000..6e1e841c --- /dev/null +++ b/src/main/resources/config_audit.sql @@ -0,0 +1,321 @@ +-- audit.action_execution_audit definition + +-- Drop table + +-- DROP TABLE audit.action_execution_audit; +create schema if not exists audit; +CREATE TABLE IF NOT EXISTS audit.action_execution_audit ( + action_id bigserial NOT NULL, + created_by int8 NULL, + created_date timestamp NULL, + last_modified_by int8 NULL, + last_modified_date timestamp NULL, + context_node text NULL, + execution_status_id int4 NULL, + lambda_name varchar NULL, + parent_action_id int8 NULL, + parent_action_name varchar NULL, + parent_pipeline_id int8 NULL, + parent_pipeline_name varchar NULL, + pipeline_name varchar NULL, + action_name varchar NULL, + execution_group_id int4 NULL, + input_node text NULL, + log text NULL, + pipeline_id int8 NULL, + thread_name varchar NULL, + root_pipeline_id int8 NULL, + CONSTRAINT action_execution_audit_pkey PRIMARY KEY (action_id) +); + + +-- audit.action_execution_status_audit definition + +-- Drop table + +-- DROP TABLE audit.action_execution_status_audit; + +CREATE TABLE IF NOT EXISTS audit.action_execution_status_audit ( + id bigserial NOT NULL, + created_by int8 NOT NULL, + created_date timestamp NOT NULL, + last_modified_by int8 NOT NULL, + last_modified_date timestamp NOT NULL, + action_id int8 NOT NULL, + execution_status_id int4 NOT NULL, + pipeline_id int8 NOT NULL, + root_pipeline_id int8 NOT NULL, + CONSTRAINT action_execution_status_audit_pkey PRIMARY KEY (id) +); + + +-- audit.copro_audit definition + +-- Drop table + +-- DROP TABLE audit.copro_audit; + +CREATE TABLE IF NOT EXISTS audit.copro_audit ( + id serial4 NOT NULL, + root_pipeline_id int4 NOT NULL, + action_id int4 NOT NULL, + process text NOT NULL, + "level" text NOT NULL, + message text NOT NULL, + created_at timestamp NOT NULL, + CONSTRAINT copro_audit_pkey PRIMARY KEY (id) +); + + +-- audit.execution_group definition + +-- Drop table + +-- DROP TABLE audit.execution_group; + +CREATE TABLE IF NOT EXISTS audit.execution_group ( + id int4 NOT NULL, + value varchar NOT NULL +); + + +-- audit.execution_status definition + +-- Drop table + +-- DROP TABLE audit.execution_status; + +CREATE TABLE IF NOT EXISTS audit.execution_status ( + id int4 NOT NULL, + value varchar NOT NULL, + CONSTRAINT execution_status_pkey PRIMARY KEY (id) +); + + +-- audit.handyman_exception_audit definition + +-- Drop table + +-- DROP TABLE audit.handyman_exception_audit; + +CREATE TABLE IF NOT EXISTS audit.handyman_exception_audit ( + group_id int4 NULL, + root_pipeline_id int8 NULL, + root_pipeline_name varchar NULL, + pipeline_name varchar NULL, + action_id int8 NULL, + action_name varchar NULL, + exception_info varchar NULL, + message text NULL, + process_id int8 NULL, + created_by int8 NULL, + created_date timestamp NULL, + last_modified_by int8 NULL, + last_modified_date timestamp NULL +); + + +-- audit.pipeline_execution_audit definition + +-- Drop table + +-- DROP TABLE audit.pipeline_execution_audit; + +CREATE TABLE IF NOT EXISTS audit.pipeline_execution_audit ( + pipeline_id bigserial NOT NULL, + created_by int8 NULL, + created_date timestamp NULL, + last_modified_by int8 NULL, + last_modified_date timestamp NULL, + context_node text NULL, + execution_status_id int4 NULL, + lambda_name varchar NULL, + parent_action_id int8 NULL, + parent_action_name varchar NULL, + parent_pipeline_id int8 NULL, + parent_pipeline_name varchar NULL, + pipeline_name varchar NULL, + file_content text NULL, + host_name varchar NULL, + mode_of_execution varchar NULL, + pipeline_load_type varchar NULL, + relative_path varchar NULL, + request_body text NULL, + thread_name varchar NULL, + process_name varchar NULL, + root_pipeline_id int8 NULL, + process_id int8 NULL, + CONSTRAINT pipeline_execution_audit_pkey PRIMARY KEY (pipeline_id) +); + + +-- audit.pipeline_execution_status_audit definition + +-- Drop table + +-- DROP TABLE audit.pipeline_execution_status_audit; + +CREATE TABLE IF NOT EXISTS audit.pipeline_execution_status_audit ( + id bigserial NOT NULL, + created_by int8 NULL, + created_date timestamp NULL, + last_modified_by int8 NULL, + last_modified_date timestamp NULL, + execution_status_id int4 NULL, + pipeline_id int8 NULL, + root_pipeline_id int8 NULL, + CONSTRAINT pipeline_execution_status_audit_pkey PRIMARY KEY (id) +); + + +-- audit.pipeline_summary_audit definition + +-- Drop table + +-- DROP TABLE audit.pipeline_summary_audit; + +CREATE TABLE IF NOT EXISTS audit.pipeline_summary_audit ( + summary_id bigserial NOT NULL, + process_id int8 NOT NULL, + created_on timestamp NULL, + module_name varchar NULL, + macro_process varchar NULL, + files_processed_count int8 NULL DEFAULT 0, + papers_processed_count int8 NULL DEFAULT 0, + files_failed_count int8 NULL DEFAULT 0, + papers_failed_count int8 NULL DEFAULT 0, + start_time timestamp NULL, + end_time timestamp NULL, + time_taken int8 NULL, + average_time int8 NULL, + group_id int8 NOT NULL, + root_pipeline_id int8 NOT NULL, + created_user_id varchar NOT NULL, + template_id varchar NULL, + tenant_id varchar NULL, + CONSTRAINT pipeline_summary_audit_pk PRIMARY KEY (summary_id) +); + + +-- audit.statement_execution_audit definition + +-- Drop table + +-- DROP TABLE audit.statement_execution_audit; + +CREATE TABLE IF NOT EXISTS audit.statement_execution_audit ( + statement_id bigserial NOT NULL, + created_by int8 NULL, + created_date timestamp NULL, + last_modified_by int8 NULL, + last_modified_date timestamp NULL, + action_id int8 NULL, + rows_processed int4 NULL, + rows_read int4 NULL, + rows_written int4 NULL, + statement_content text NULL, + time_taken float8 NULL, + root_pipeline_id int8 NULL, + CONSTRAINT statement_execution_audit_pkey PRIMARY KEY (statement_id) +); + + + + + + +create schema if not exists audit; + + +-- config.spw_common_config definition + +-- Drop table + +-- DROP TABLE config.spw_common_config; + +CREATE TABLE IF NOT EXISTS config.spw_common_config ( + id int8 NOT NULL, + variable varchar(150) NOT NULL, + value text NOT NULL, + active bool NOT NULL, + created_by int8 NOT NULL, + created_date timestamp NOT NULL, + last_modified_by int8 NOT NULL, + last_modified_date timestamp NOT NULL, + "version" int4 NOT NULL, + CONSTRAINT spw_common_config_pkey PRIMARY KEY (id) +); + + +-- config.spw_instance_config definition + +-- Drop table + +-- DROP TABLE config.spw_instance_config; + +CREATE TABLE IF NOT EXISTS config.spw_instance_config ( + id int8 NOT NULL DEFAULT nextval('config.instance_id'::regclass), + "instance" varchar(150) NOT NULL, + process varchar(150) NOT NULL, + variable varchar(150) NOT NULL, + value text NOT NULL, + active bool NOT NULL, + created_by int8 NOT NULL, + created_date timestamp NOT NULL, + last_modified_by int8 NOT NULL, + last_modified_date timestamp NOT NULL, + "version" int4 NOT NULL, + CONSTRAINT spw_instance_config_pkey PRIMARY KEY (id) +); + + +-- config.spw_process_config definition + +-- Drop table + +-- DROP TABLE config.spw_process_config; + +CREATE TABLE IF NOT EXISTS config.spw_process_config ( + id int8 NOT NULL, + process varchar(150) NOT NULL, + variable varchar(150) NOT NULL, + value varchar(500) NOT NULL, + active bool NOT NULL, + created_by int8 NOT NULL, + created_date timestamp NOT NULL, + last_modified_by int8 NOT NULL, + last_modified_date timestamp NOT NULL, + "version" int4 NOT NULL, + CONSTRAINT spw_process_config_pkey PRIMARY KEY (id) +); + + +-- config.spw_resource_config definition + +-- Drop table + +-- DROP TABLE config.spw_resource_config; + +CREATE TABLE IF NOT EXISTS config.spw_resource_config ( + id int8 NOT NULL, + config_name varchar NOT NULL, + resource_url text NOT NULL, + active bool NOT NULL, + user_name varchar NOT NULL, + "password" varchar NOT NULL, + driver_class varchar NOT NULL, + host varchar NOT NULL, + port varchar NOT NULL, + database_name varchar NOT NULL, + created_by int8 NOT NULL, + created_date timestamp NOT NULL, + last_modified_by int8 NOT NULL, + last_modified_date timestamp NOT NULL, + "version" int4 NOT NULL, + CONSTRAINT spw_resource_config_pkey PRIMARY KEY (id) +); + + +INSERT INTO config.spw_process_config +(id, process, variable, value, active, created_by, created_date, last_modified_by, last_modified_date, "version") +VALUES(1, 'SYS_PACKAGE', 'raven.java.lib', 'in.handyman.raven.lib', true, 1, now(), 1,now(), 1); diff --git a/handyman.raven/src/test/java/in/handyman/raven/access/ConfigAccessDTest.java b/src/test/java/in/handyman/raven/access/ConfigAccessDTest.java similarity index 52% rename from handyman.raven/src/test/java/in/handyman/raven/access/ConfigAccessDTest.java rename to src/test/java/in/handyman/raven/access/ConfigAccessDTest.java index e38bdb28..764c4ea2 100644 --- a/handyman.raven/src/test/java/in/handyman/raven/access/ConfigAccessDTest.java +++ b/src/test/java/in/handyman/raven/access/ConfigAccessDTest.java @@ -1,18 +1,19 @@ package in.handyman.raven.access; import in.handyman.raven.lambda.access.ConfigAccess; -import in.handyman.raven.lambda.doa.config.SpwResourceConfig; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; +import java.util.Map; + @Slf4j class ConfigAccessDTest { @Test void getResourceConfig() { - final SpwResourceConfig connection = ConfigAccess.getResourceConfig("dsad"); - assert connection != null; - log.info(connection.toString()); + final Map commonConfig = ConfigAccess.getCommonConfig(); + assert commonConfig != null; + log.info(commonConfig.toString()); } diff --git a/handyman.raven/src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2ImplEMTest.java b/src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoImplEMTest.java similarity index 80% rename from handyman.raven/src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2ImplEMTest.java rename to src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoImplEMTest.java index 8af37b7a..f0d3aafc 100644 --- a/handyman.raven/src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2ImplEMTest.java +++ b/src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoImplEMTest.java @@ -4,11 +4,11 @@ import java.util.Map; -class HandymanRepoR2ImplEMTest { +class HandymanRepoImplEMTest { @Test void getAllConfig() { - var info = new HandymanRepoR2Impl(); + var info = new HandymanRepoImpl(); final Map restApiActionTest = info.getAllConfig("RestApiActionTest"); assert restApiActionTest != null && !restApiActionTest.isEmpty(); } diff --git a/handyman.raven/src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2ImplTest.java b/src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoImplTest.java similarity index 89% rename from handyman.raven/src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2ImplTest.java rename to src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoImplTest.java index f1ee615f..bc136484 100644 --- a/handyman.raven/src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoR2ImplTest.java +++ b/src/test/java/in/handyman/raven/lambda/access/repo/HandymanRepoImplTest.java @@ -6,9 +6,9 @@ import org.junit.jupiter.api.Test; @Slf4j -class HandymanRepoR2ImplTest { +class HandymanRepoImplTest { - private final HandymanRepoR2Impl repoR2 = new HandymanRepoR2Impl(); + private final HandymanRepoImpl repoR2 = new HandymanRepoImpl(); @Test void findConfigEntities() { diff --git a/handyman.raven/src/test/java/in/handyman/raven/lambda/action/ActionGenerationTest.java b/src/test/java/in/handyman/raven/lambda/action/ActionGenerationTest.java similarity index 100% rename from handyman.raven/src/test/java/in/handyman/raven/lambda/action/ActionGenerationTest.java rename to src/test/java/in/handyman/raven/lambda/action/ActionGenerationTest.java diff --git a/src/test/java/in/handyman/raven/lambda/action/FileBucketingActionTest.java b/src/test/java/in/handyman/raven/lambda/action/FileBucketingActionTest.java new file mode 100644 index 00000000..35d734f5 --- /dev/null +++ b/src/test/java/in/handyman/raven/lambda/action/FileBucketingActionTest.java @@ -0,0 +1,29 @@ +package in.handyman.raven.lambda.action; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.FileBucketingAction; +import in.handyman.raven.lib.model.FileBucketing; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + + +@Slf4j +public class FileBucketingActionTest { + @Test + void execute() throws Exception { + final FileBucketing fileBucketing = FileBucketing.builder() + .condition(true) + .name("FileBucketingTest") + .inputDirectory("/home/sanjeeya.v@zucisystems.com/Documents/agadia_synthetic_samples/16_templates_only/16_template/") + .outputDir("/home/sanjeeya.v@zucisystems.com/Documents/agadia_synthetic_samples/output_dir/") + .build(); + final ActionExecutionAudit action = ActionExecutionAudit.builder() + .build(); + action.getContext().put("min-efficient-threshold", "1"); + action.getContext().put("max-efficient-threshold", "4"); + action.getContext().put("min-intensive-threshold", "5"); + action.getContext().put("max-intensive-threshold", "10"); + final FileBucketingAction scalarAdapterAction = new FileBucketingAction(action, log, fileBucketing); + scalarAdapterAction.execute(); + } +} diff --git a/src/test/java/in/handyman/raven/lib/AlchemyAuthTokenActionTest.java b/src/test/java/in/handyman/raven/lib/AlchemyAuthTokenActionTest.java new file mode 100644 index 00000000..dfb4c938 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/AlchemyAuthTokenActionTest.java @@ -0,0 +1,24 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AlchemyAuthToken; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +@Slf4j +class AlchemyAuthTokenActionTest { + + @Test + void execute() throws Exception { + + AlchemyAuthToken alchemyAuthToken = AlchemyAuthToken.builder().build(); + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("alchemy.login.url","http://localhost:8189/alchemy/api/v1/auth/login"); + actionExecutionAudit.getContext().put("alchemy.user","demo@intics.com"); + actionExecutionAudit.getContext().put("alchemy.password","Marvel@2026"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","1"); + + AlchemyAuthTokenAction alchemyAuthTokenAction = new AlchemyAuthTokenAction(actionExecutionAudit, log, alchemyAuthToken); + alchemyAuthTokenAction.execute(); + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/AlchemyInfoActionTest.java b/src/test/java/in/handyman/raven/lib/AlchemyInfoActionTest.java new file mode 100644 index 00000000..1ab0e49f --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/AlchemyInfoActionTest.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AlchemyInfo; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + + +@Slf4j +class AlchemyInfoActionTest { + + @Test + void execute() throws Exception { + + + AlchemyInfo alchemyInfo = AlchemyInfo.builder() + .tenantId(1L) + .condition(true) + .name("alchemy info action") + .querySet("SELECT so.tenant_id::bigint, so.origin_id, ampq.root_pipeline_id, so.group_id, at.file_path from info.source_of_origin so join info.asset at on so.file_id = at.file_id\n" + + " join alchemy_migration.alchemy_migration_payload_queue ampq on ampq.origin_id = so.origin_id;") + .resourceConn("intics_zio_db_conn") + .token("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJVc2VyIERldGFpbHMiLCJpc3MiOiJJbnRpY3NBSSBBbGNoZW15IiwiZXhwIjoxNjk0ODA4MDEzLCJpYXQiOjE2OTQ3NjQ4MTMsImVtYWlsIjoiYWdhZGlhQGludGljcy5haSJ9.2IQEewH-cQ5TK3L8wKpk_UAXrojAnWqSTi9ORwQJyOU") + .build(); + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + + actionExecutionAudit.getContext().put("alchemy.origin.upload.url","http://localhost:8189/alchemy/api/v1/info/origin/upload"); + actionExecutionAudit.getContext().put("alchemyAuth.token","eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJVc2VyIERldGFpbHMiLCJpc3MiOiJJbnRpY3NBSSBBbGNoZW15IiwiZXhwIjoxNjk0ODA4MDEzLCJpYXQiOjE2OTQ3NjQ4MTMsImVtYWlsIjoiYWdhZGlhQGludGljcy5haSJ9.2IQEewH-cQ5TK3L8wKpk_UAXrojAnWqSTi9ORwQJyOU"); + actionExecutionAudit.getContext().put("alchemyAuth.tenantId","1"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","1"); + actionExecutionAudit.getContext().put("read.batch.size","1"); + actionExecutionAudit.getContext().put("write.batch.size","1"); + + + AlchemyInfoAction alchemyInfoAction = new AlchemyInfoAction(actionExecutionAudit, log, alchemyInfo); + alchemyInfoAction.execute(); + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/AlchemyKvpResponseActionTest.java b/src/test/java/in/handyman/raven/lib/AlchemyKvpResponseActionTest.java new file mode 100644 index 00000000..fc717a0c --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/AlchemyKvpResponseActionTest.java @@ -0,0 +1,45 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.action.ActionExecution; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AlchemyKvpResponse; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + + +@Slf4j +class AlchemyKvpResponseActionTest { + + @Test + public void AlchemyKvpTest() throws Exception { + + AlchemyKvpResponse alchemyKvpResponse= AlchemyKvpResponse.builder() + .name("alchemy kvp response") + .processId("12345") + .querySet(" SELECT 12345 as process_id, ap.group_id, ap.tenant_id, ap.root_pipeline_id,ap.alchemy_origin_id, ap.pipeline_origin_id,'/input/path' as file_name\n" + + " FROM product_outbound.product_outbound_payload_queue ampq join alchemy_migration.alchemy_papers ap on ampq.origin_id = ap.pipeline_origin_id\n" + + " where status = 'IN_PROGRESS' and ampq.group_id = 1 group by ap.alchemy_origin_id,ap.group_id, ap.tenant_id,ap.root_pipeline_id,ap.pipeline_origin_id;") + .resourceConn("intics_zio_db_conn") + .resultTable("alchemy_response.alchemy_kvp_response") + .condition(true) + .build(); + + final ActionExecutionAudit actionExecutionAudit = ActionExecutionAudit.builder().build(); + actionExecutionAudit.setRootPipelineId(11011L); + actionExecutionAudit.getContext().put("alchemy.kvp.consumer.API.count", "1"); + actionExecutionAudit.getContext().put("copro.product.outbound.url", "http://192.168.15.34:8189/alchemy/api/v1/transaction/response"); + actionExecutionAudit.getContext().put("", "http://192.168.15.34:8189/alchemy/api/v1/transaction/response"); + actionExecutionAudit.getContext().put("read.batch.size","1"); + actionExecutionAudit.getContext().put("write.batch.size","1"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","1"); + actionExecutionAudit.getContext().put("alchemyAuth.token","eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJVc2VyIERldGFpbHMiLCJpc3MiOiJJbnRpY3NBSSBBbGNoZW15IiwiZXhwIjoxNjk1NTgxNjA4LCJpYXQiOjE2OTU1Mzg0MDgsImVtYWlsIjoiYWdhZGlhQGludGljcy5haSJ9.rNzD31_3AxBBx966Tb5IhIVp14f-3TKPB8NGT0usD4o"); + actionExecutionAudit.getContext().put("group_id","1"); + AlchemyKvpResponseAction alchemyKvpResponseAction= new AlchemyKvpResponseAction(actionExecutionAudit,log,alchemyKvpResponse,100); + + alchemyKvpResponseAction.execute(); + + } + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/AlchemyResponseActionTest.java b/src/test/java/in/handyman/raven/lib/AlchemyResponseActionTest.java new file mode 100644 index 00000000..26e1f402 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/AlchemyResponseActionTest.java @@ -0,0 +1,33 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AlchemyResponse; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +@Slf4j +class AlchemyResponseActionTest { + + @Test + void execute() throws Exception { + + AlchemyResponse alchemyResponse = AlchemyResponse.builder() + .name("alchemy response action") + .token("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJVc2VyIERldGFpbHMiLCJpc3MiOiJJbnRpY3NBSSBBbGNoZW15IiwiZXhwIjoxNjg5MzU1MjA2LCJpYXQiOjE2ODkzMTIwMDYsImVtYWlsIjoiZGVtb0BpbnRpY3MuY29tIn0.0AUSfuHkA1iEGHr0qQ0EYl2zdJci0ZhOFWylE1wdHxM") + .tenantId(1L) + .querySet("SELECT ar.bbox, ar.alchemy_origin_id as origin_id, ar.paper_no, ar.tenant_id, ampq.root_pipeline_id, ar.confidence_score, ar.extracted_value, ar.sor_item_name, ar.synonym_id\n" + + " FROM alchemy_migration.alchemy_response ar join alchemy_migration.alchemy_migration_payload_queue ampq on ampq.origin_id = ar.pipeline_origin_id;") + .resourceConn("intics_agadia_db_conn") + .condition(true).build(); + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("alchemy.origin.valuation.url","http://localhost:8189/alchemy/api/v1/valuation/origin"); + actionExecutionAudit.getContext().put("alchemyAuth.token","eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJVc2VyIERldGFpbHMiLCJpc3MiOiJJbnRpY3NBSSBBbGNoZW15IiwiZXhwIjoxNjg5MzU1MjA2LCJpYXQiOjE2ODkzMTIwMDYsImVtYWlsIjoiZGVtb0BpbnRpY3MuY29tIn0.0AUSfuHkA1iEGHr0qQ0EYl2zdJci0ZhOFWylE1wdHxM"); + actionExecutionAudit.getContext().put("alchemyAuth.tenantId","1"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","1"); + actionExecutionAudit.getContext().put("read.batch.size","1"); + + AlchemyResponseAction alchemyResponseAction = new AlchemyResponseAction(actionExecutionAudit, log, alchemyResponse); + alchemyResponseAction.execute(); + + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/AssetInfoActionTest.java b/src/test/java/in/handyman/raven/lib/AssetInfoActionTest.java new file mode 100644 index 00000000..33a9c551 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/AssetInfoActionTest.java @@ -0,0 +1,29 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AssetInfo; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; +@Slf4j +class AssetInfoActionTest { + + @Test + void testingAssetInfo() throws Exception { + AssetInfo assetInfo= AssetInfo.builder() + .name("info") + .resourceConn("intics_agadia_db_conn") + .assetTable("macro.file_details_truth_138978990615970048") + .auditTable("info.sanitizer_summary_audit_138978990615970048") + .values("select '/home/anandh.andrews@zucisystems.com/W-space/pr1-lambdas/agadia-gatekeeper/test.jpg' as file_path;") + .build(); + + final ActionExecutionAudit action = ActionExecutionAudit.builder().build(); + action.setRootPipelineId(11011L); + action.getContext().put("process-id","1234567"); + AssetInfoAction assetInfoAction=new AssetInfoAction(action ,log,assetInfo); + assetInfoAction.execute(); + } + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/AuthTokenActionTest.java b/src/test/java/in/handyman/raven/lib/AuthTokenActionTest.java new file mode 100644 index 00000000..99f6e5c2 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/AuthTokenActionTest.java @@ -0,0 +1,40 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.AuthToken; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.*; + +@Slf4j +class AuthTokenActionTest { + + @Test + public void testAuthToken() throws Exception { + + AuthToken authToken= AuthToken.builder() + .name("auth_token") + .condition(true) + .resourceConn("intics_zio_db_conn") + .build(); + + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.autorotation.url", "http://localhost:10181/copro/preprocess/autorotation"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size", "5"), + Map.entry("consumer.API.count", "1"), + Map.entry("gatekeeper.url", "http://192.168.10.248:40002/"), + Map.entry("gatekeeper.appid", "dj@intics.ai"), + Map.entry("tenant_id", "8"), + Map.entry("write.batch.size", "5"))); + + + AuthTokenAction authTokenAction=new AuthTokenAction(actionExecutionAudit,log,authToken); + authTokenAction.execute(); + + } + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/BlankPageRemoverActionTest.java b/src/test/java/in/handyman/raven/lib/BlankPageRemoverActionTest.java new file mode 100644 index 00000000..12fcff30 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/BlankPageRemoverActionTest.java @@ -0,0 +1,39 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.BlankPageRemover; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +@Slf4j +class BlankPageRemoverActionTest { + + + @Test + public void setBlankPageRemover() throws Exception { + BlankPageRemover blankPageRemover= BlankPageRemover.builder() + .processId(String.valueOf(1234567890)) + .condition(true) + .name("blank page remover") + .outputDir("/home/anandh.andrews@zucisystems.com/W-space/pr1-lambdas/agadia/OCR Sample Forms/") + .querySet("\n" + + "SELECT a.origin_id, a.group_id ,c.file_path\n" + + " from info.preprocess_payload_queue a\n" + + " join info.source_of_origin b on a.origin_id=b.origin_id\n" + + " join info.asset c on b.file_id=c.file_id\n" + + " where a.status='IN_PROGRESS';") + .resourceConn("intics_agadia_db_conn") + .build(); + + final ActionExecutionAudit action = ActionExecutionAudit.builder().build(); + action.setRootPipelineId(11011L); + action.getContext().put("copro.blank-page-remover.url", "http://localhost:10189/copro/denoise/blank-page-remover"); + action.getContext().put("read.batch.size","1"); + action.getContext().put("write.batch.size","1"); + action.getContext().put("consumer.API.count","1"); + final BlankPageRemoverAction BlankPageRemoverAction = new BlankPageRemoverAction(action, log, blankPageRemover); + BlankPageRemoverAction.execute(); + } + + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/CoproProcessorTest.java b/src/test/java/in/handyman/raven/lib/CoproProcessorTest.java new file mode 100644 index 00000000..cc169863 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/CoproProcessorTest.java @@ -0,0 +1,16 @@ +package in.handyman.raven.lib; + +import org.junit.jupiter.api.Test; + +import java.util.concurrent.LinkedBlockingQueue; + +class CoproProcessorTest { + + + @Test + void testProcess(){ + + + } + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/CoproStartActionTest.java b/src/test/java/in/handyman/raven/lib/CoproStartActionTest.java new file mode 100644 index 00000000..0b9b12d3 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/CoproStartActionTest.java @@ -0,0 +1,29 @@ +//package in.handyman.raven.lib; +// +//import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +//import lombok.extern.slf4j.Slf4j; +//import org.junit.jupiter.api.Test; +// +//@Slf4j +//class CoproStartActionTest { +// +// @Test +// void execute() throws Exception { +// +// final CoproStart build = CoproStart.builder() +// .condition(true) +// .name("Test Copro start action") +// .processID("1234") +// .moduleName("ZERO_SHOT_CLASSIFIER") +// .command("gunicorn zscApi:app --workers 2 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:10183 --timeout 6000 --thread 2") +// .resourceConn("intics_agadia_db_conn") +// .build(); +// +// final ActionExecutionAudit action = ActionExecutionAudit.builder() +// .build(); +// action.setRootPipelineId(11011L); +// action.getContext().put("copro.admin.start.server.url", "http://localhost:8999/copro/admin/process-start"); +// final CoproStartAction coproStartAction = new CoproStartAction(action, log, build); +// coproStartAction.execute(); +// } +//} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/CoproStopActionTest.java b/src/test/java/in/handyman/raven/lib/CoproStopActionTest.java new file mode 100644 index 00000000..4db5c5c2 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/CoproStopActionTest.java @@ -0,0 +1,26 @@ +//package in.handyman.raven.lib; +// +//import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +//import lombok.extern.slf4j.Slf4j; +//import org.junit.jupiter.api.Test; +// +//@Slf4j +//class CoproStopActionTest { +// @Test +// void execute() throws Exception { +// final CoproStop build = CoproStop.builder() +// .condition(true) +// .name("Test Copro start action") +// .processID("1234") +// .moduleName("ZERO_SHOT_CLASSIFIER") +// .command("gunicorn zscApi:app --workers 2 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:10183 --timeout 6000 --thread 2") +// .resourceConn("intics_agadia_db_conn") +// .build(); +// final ActionExecutionAudit action = ActionExecutionAudit.builder() +// .build(); +// action.setRootPipelineId(11011L); +// action.getContext().put("copro.admin.stop.server.url", "http://localhost:8999/copro/admin/process-stop"); +// final CoproStopAction coproStopAction = new CoproStopAction(action, log, build); +// coproStopAction.execute(); +// } +//} \ No newline at end of file diff --git a/handyman.raven/src/test/java/in/handyman/raven/lib/CreateTARActionTestExecutionAudit.java b/src/test/java/in/handyman/raven/lib/CreateTARActionTestExecutionAudit.java similarity index 100% rename from handyman.raven/src/test/java/in/handyman/raven/lib/CreateTARActionTestExecutionAudit.java rename to src/test/java/in/handyman/raven/lib/CreateTARActionTestExecutionAudit.java diff --git a/src/test/java/in/handyman/raven/lib/DonutDocQaActionTest.java b/src/test/java/in/handyman/raven/lib/DonutDocQaActionTest.java new file mode 100644 index 00000000..dfbdbcbd --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/DonutDocQaActionTest.java @@ -0,0 +1,19 @@ +package in.handyman.raven.lib; + +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import org.slf4j.LoggerFactory; + +import java.util.logging.Logger; + +@Slf4j +public class DonutDocQaActionTest { + + static final Logger logger = (Logger) LoggerFactory.getLogger(DonutDocQaActionTest.class); + + @Test + public void loggerTest() { + + logger.info("This is info logger "); + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/EpisodeOfCoverageActionTest.java b/src/test/java/in/handyman/raven/lib/EpisodeOfCoverageActionTest.java new file mode 100644 index 00000000..58dac31a --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/EpisodeOfCoverageActionTest.java @@ -0,0 +1,152 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.EpisodeOfCoverage; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +@Slf4j +class EpisodeOfCoverageActionTest { + + //This test case checked for the splitting is done by splitting , now change the + @Test + public void episodeOfCoverageTestEID() throws Exception { + + EpisodeOfCoverage episodeOfCoverage = EpisodeOfCoverage.builder() + .name("Episode of coverage") + .resourceConn("intics_agadia_db_conn") + .originId("INT-1") + .totalPages("6") + .outputTable("sor_grouping.eoc_result_138971395735140128") + .eocIdCount("1") + .eocGroupingItem("EOC_ID") + .groupId("1") + .filepath(" SELECT asset.file_path,sot.origin_id,asset.file_id,sot.paper_no\n" + + " FROM info.source_of_truth sot\n" + + " JOIN info.asset asset\n" + + " ON asset.file_id=sot.preprocessed_file_id\n" + + " WHERE sot.origin_id='INT-1' ;") + .value(" SELECT '${group_id}' AS group_id,predicted_value as answer,min(paper_no) AS start_no,max(paper_no) AS end_no ,'6' AS total_pages\n" + + " FROM score.aggregation_evaluator\n" + + " WHERE origin_id='INT-1' and predicted_value !='' and predicted_value is not null ;") + .qrInput(" SELECT '1' AS group_id,extracted_value AS answer, min(paper_no) AS start_no, max(paper_no) AS end_no,'${file_count.total_page}' AS total_pages\n" + + " FROM qr_extraction.qr_extraction_details\n" + + " WHERE origin_id='INT-1' AND qr_format='DATAMATRIX' AND is_candidate_qr='YES' and extracted_value is not null and extracted_value!='' group by extracted_value ;") + .pndValue("SELECT '1' AS group_id,string_agg(predicted_value,'-') AS answer,min(paper_no) AS start_no,max(paper_no) AS end_no ,'6' AS total_pages\n" + + " FROM score.aggregation_evaluator\n" + + " WHERE origin_id='INT-1' and predicted_value !='' and predicted_value is not null;") + .build(); + + final ActionExecutionAudit action = ActionExecutionAudit.builder() + .build(); + action.setRootPipelineId(11011L); + action.getContext().put("copro.qr-attribution.url", "http://localhost:10189/copro/qr-reader"); + action.getContext().put("read.batch.size", "1"); + action.getContext().put("write.batch.size", "1"); + action.getContext().put("consumer.API.count", "1"); + action.getContext().put("sor.grouping.priority.selector", "true"); + action.getContext().put("gen_group_id.group_id", "1"); + action.getContext().put("sor.grouping.eid.validator", "true"); + action.getContext().put("sor.grouping.qid.validator", "true"); + action.getContext().put("sor.grouping.pid.validator", "true"); + action.getContext().put("sor.grouping.pnd.validator", "true"); + + + EpisodeOfCoverageAction episodeOfCoverageAction = new EpisodeOfCoverageAction(action, log, episodeOfCoverage); + episodeOfCoverageAction.execute(); + + } + //non eoc id priority test + @Test + public void episodeOfCoverageTestQid() throws Exception { + + EpisodeOfCoverage episodeOfCoverage = EpisodeOfCoverage.builder() + .name("Episode of coverage") + .resourceConn("intics_agadia_db_conn") + .originId("INT-2") + .totalPages("6") + .outputTable("sor_grouping.eoc_result_138971395735140128") + .eocIdCount("1") + .eocGroupingItem("EOC_ID") + .groupId("1") + .filepath(" SELECT asset.file_path,sot.origin_id,asset.file_id,sot.paper_no\n" + + " FROM info.source_of_truth sot\n" + + " JOIN info.asset asset\n" + + " ON asset.file_id=sot.preprocessed_file_id\n" + + " WHERE sot.origin_id='INT-2' ;") + .value(" SELECT '${group_id}' AS group_id,predicted_value as answer,min(paper_no) AS start_no,max(paper_no) AS end_no ,'6' AS total_pages\n" + + " FROM score.aggregation_evaluator\n" + + " WHERE origin_id='INT-2' and predicted_value !='' and predicted_value is not null ;") + .qrInput(" SELECT '1' AS group_id,extracted_value AS answer, min(paper_no) AS start_no, max(paper_no) AS end_no,'${file_count.total_page}' AS total_pages\n" + + " FROM qr_extraction.qr_extraction_details\n" + + " WHERE origin_id='INT-2' AND qr_format='DATAMATRIX' AND is_candidate_qr='YES' and extracted_value is not null and extracted_value!='' group by extracted_value ;") + .pndValue("SELECT '1' AS group_id,string_agg(predicted_value,'-') AS answer,min(paper_no) AS start_no,max(paper_no) AS end_no ,'6' AS total_pages\n" + + " FROM score.aggregation_evaluator\n" + + " WHERE origin_id='INT-2' and predicted_value !='' and predicted_value is not null;") + .build(); + + final ActionExecutionAudit action = ActionExecutionAudit.builder() + .build(); + action.setRootPipelineId(11011L); + action.getContext().put("copro.qr-attribution.url", "http://localhost:10189/copro/qr-reader"); + action.getContext().put("read.batch.size", "1"); + action.getContext().put("write.batch.size", "1"); + action.getContext().put("consumer.API.count", "1"); + action.getContext().put("sor.grouping.priority.selector", "false"); + action.getContext().put("gen_group_id.group_id", "1"); + EpisodeOfCoverageAction episodeOfCoverageAction = new EpisodeOfCoverageAction(action, log, episodeOfCoverage); + episodeOfCoverageAction.execute(); + + } + + + //this test case + @Test + public void eocActivatorIdTest() throws Exception { + + EpisodeOfCoverage episodeOfCoverage = EpisodeOfCoverage.builder() + .name("Episode of coverage") + .resourceConn("intics_agadia_db_conn") + .originId("INT-10") + .totalPages("6") + .outputTable("sor_grouping.eoc_result_138971395735140128") + .eocIdCount("1") + .eocGroupingItem("EOC_ID") + .groupId("1") + .filepath(" SELECT asset.file_path,sot.origin_id,asset.file_id,sot.paper_no\n" + + " FROM info.source_of_truth sot\n" + + " JOIN info.asset asset\n" + + " ON asset.file_id=sot.preprocessed_file_id\n" + + " WHERE sot.origin_id='INT-10' ;") + .value(" SELECT '${group_id}' AS group_id,predicted_value as answer,min(paper_no) AS start_no,max(paper_no) AS end_no ,'6' AS total_pages\n" + + " FROM score.aggregation_evaluator\n" + + " WHERE origin_id='INT-10' and predicted_value !='' and predicted_value is not null ;") + .qrInput(" SELECT '1' AS group_id,extracted_value AS answer, min(paper_no) AS start_no, max(paper_no) AS end_no,'${file_count.total_page}' AS total_pages\n" + + " FROM qr_extraction.qr_extraction_details\n" + + " WHERE origin_id='INT-10' AND qr_format='DATAMATRIX' AND is_candidate_qr='YES' and extracted_value is not null and extracted_value!='' group by extracted_value ;") + .pndValue("SELECT '1' AS group_id,string_agg(predicted_value,'-') AS answer,min(paper_no) AS start_no,max(paper_no) AS end_no ,'1' AS total_pages\n" + + " FROM score.aggregation_evaluator\n" + + " WHERE origin_id='INT-10' and predicted_value !='' and predicted_value is not null;") + .build(); + + final ActionExecutionAudit action = ActionExecutionAudit.builder() + .build(); + action.setRootPipelineId(11011L); + action.getContext().put("copro.qr-attribution.url", "http://localhost:10189/copro/qr-reader"); + action.getContext().put("read.batch.size", "1"); + action.getContext().put("write.batch.size", "1"); + action.getContext().put("consumer.API.count", "1"); + action.getContext().put("sor.grouping.priority.selector", "true"); + action.getContext().put("gen_group_id.group_id", "1"); + action.getContext().put("sor.grouping.eid.validator", "false"); + action.getContext().put("sor.grouping.qid.validator", "false"); + action.getContext().put("sor.grouping.pid.validator", "false"); + action.getContext().put("sor.grouping.pnd.validator", "false"); + + + EpisodeOfCoverageAction episodeOfCoverageAction = new EpisodeOfCoverageAction(action, log, episodeOfCoverage); + episodeOfCoverageAction.execute(); + + } + +} \ No newline at end of file diff --git a/handyman.raven/src/test/java/in/handyman/raven/lib/ExportCsvActionTestExecutionAudit.java b/src/test/java/in/handyman/raven/lib/ExportCsvActionTestExecutionAudit.java similarity index 100% rename from handyman.raven/src/test/java/in/handyman/raven/lib/ExportCsvActionTestExecutionAudit.java rename to src/test/java/in/handyman/raven/lib/ExportCsvActionTestExecutionAudit.java diff --git a/src/test/java/in/handyman/raven/lib/FileMergerActionTest.java b/src/test/java/in/handyman/raven/lib/FileMergerActionTest.java new file mode 100644 index 00000000..61e555b8 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/FileMergerActionTest.java @@ -0,0 +1,41 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.FileMerger; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.*; + + +@Slf4j +class FileMergerActionTest { + + @Test + public void mergerTest() throws Exception { + + FileMerger fileMerger= FileMerger.builder() + .name("file merger ") + .condition(true) + .outputDir("/data/output/") + .requestBody("{\"outputDir\": \"/data/output/\", \"inputFilePaths\": [\"/data/output/auto_rotation/1220147418_0.jpg\"], \"outputFileName\": \"test_1.pdf\"}") + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + + actionExecutionAudit.getContext().putAll(Map.ofEntries( + Map.entry("read.batch.size","1"), + Map.entry("copro.file-merger.url","http://192.168.10.245:9300/v2/models/merger-service/versions/1/infer"), + Map.entry("gen_group_id.group_id","1"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","1"))); + + FileMergerAction fileMergerAction=new FileMergerAction(actionExecutionAudit,log,fileMerger); + fileMergerAction.execute(); + + + } + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/FtpsDownloadActionTest.java b/src/test/java/in/handyman/raven/lib/FtpsDownloadActionTest.java new file mode 100644 index 00000000..f5caae22 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/FtpsDownloadActionTest.java @@ -0,0 +1,41 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lambda.process.LambdaEngine; +import in.handyman.raven.lib.model.FtpsDownload; +import org.junit.jupiter.api.Test; + +class FtpsDownloadActionTest { + + private final FtpsDownloadAction ftpsDownloadAction; + + { + var actionExecutionAudit = ActionExecutionAudit.builder().actionName("FTP UPLOAD").build(); + ftpsDownloadAction = new FtpsDownloadAction(actionExecutionAudit, + LambdaEngine.getLogger(actionExecutionAudit), + FtpsDownload.builder() + .host("") + .userName("") + .password("") + .port("21") + .sessionTimeOut("1200") + .sourceFile("/home/ubuntu/zftp1/ftp_test/abcd") + .destDir("/home/manikandan.tm@zucisystems.com/Workspace/ftp_check/download/dest") + .name("FTP file Download") + .condition(true) + .build()); + } + + @Test + void execute() throws Exception { + ftpsDownloadAction.execute(); + } + + @Test + void ftpDownloadDirectory() { + } + + @Test + void downloadSingleFile() { + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/FtpsUploadActionTest.java b/src/test/java/in/handyman/raven/lib/FtpsUploadActionTest.java new file mode 100644 index 00000000..ca3d4b86 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/FtpsUploadActionTest.java @@ -0,0 +1,41 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lambda.process.LambdaEngine; +import in.handyman.raven.lib.model.FtpsUpload; +import org.junit.jupiter.api.Test; + +class FtpsUploadActionTest { + + private final FtpsUploadAction ftpsUploadAction; + + { + var actionExecutionAudit = ActionExecutionAudit.builder().actionName("FTP UPLOAD").build(); + ftpsUploadAction = new FtpsUploadAction(actionExecutionAudit, + LambdaEngine.getLogger(actionExecutionAudit), + FtpsUpload.builder() + .host("") + .userName("") + .password("") + .port("21") + .sessionTimeOut("1200") + .sourceFile("/home/manikandan.tm@zucisystems.com/Workspace/ftp_check/upload/source") + .destDir("/home/ubuntu/zftp1/ftp_test/abcd") + .name("FTP file upload") + .condition(true) + .build()); + } + + @Test + void execute() throws Exception { + ftpsUploadAction.execute(); + } + + @Test + void uploadDirectory() { + } + + @Test + void uploadSingleFile() { + } +} \ No newline at end of file diff --git a/handyman.raven/src/test/java/in/handyman/raven/lib/ImportCsvToDBActionTestExecutionAudit.java b/src/test/java/in/handyman/raven/lib/ImportCsvToDBActionTestExecutionAudit.java similarity index 100% rename from handyman.raven/src/test/java/in/handyman/raven/lib/ImportCsvToDBActionTestExecutionAudit.java rename to src/test/java/in/handyman/raven/lib/ImportCsvToDBActionTestExecutionAudit.java diff --git a/src/test/java/in/handyman/raven/lib/JsonToFileActionTest.java b/src/test/java/in/handyman/raven/lib/JsonToFileActionTest.java new file mode 100644 index 00000000..de483117 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/JsonToFileActionTest.java @@ -0,0 +1,29 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.JsonToFile; +import org.junit.jupiter.api.Test; + +import static org.reflections.Reflections.log; + +class JsonToFileActionTest { + + @Test + void execute() throws Exception { + + JsonToFile jsonToFile = JsonToFile.builder() + .filePath("/home/manikandan.tm@zucisystems.com/data/file.json") + .resourceConn("intics_agadia_db_conn") + .condition(true) + .jsonSql("") + .name("jsonToFile") + .build(); + + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.setProcessId(138980079308730208L); + + JsonToFileAction jsonToFileAction = new JsonToFileAction(actionExecutionAudit, log, jsonToFile); + + jsonToFileAction.execute(); + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/MailServerActionTest.java b/src/test/java/in/handyman/raven/lib/MailServerActionTest.java new file mode 100644 index 00000000..937bd529 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/MailServerActionTest.java @@ -0,0 +1,43 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.MailServer; +import in.handyman.raven.lib.model.NerAdapter; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.*; +@Slf4j +class MailServerActionTest { + + + +@Test + void testCase() throws Exception { + + + + + MailServer mailServer= MailServer.builder() + .name("mailserver") + .condition(true) + .querySet("select file_name, invoice_rejection from ref_data.validation_results;") + .resourceConn("intics_agadia_db_conn") + .resultTable("sor_transaction.adapter_result_123456") + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.text-validation.url","http://localhost:10190/copro/text-validation/patient"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("gen_group_id.group_id","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + + MailServerAction mailServerAction=new MailServerAction(actionExecutionAudit,log,mailServer); + mailServerAction.execute(); +} +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/OutboundDeliveryNotifyActionTest.java b/src/test/java/in/handyman/raven/lib/OutboundDeliveryNotifyActionTest.java new file mode 100644 index 00000000..46e08ed7 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/OutboundDeliveryNotifyActionTest.java @@ -0,0 +1,38 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.OutboundDeliveryNotify; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +class OutboundDeliveryNotifyActionTest { + + @Test + void execute() throws Exception { + + OutboundDeliveryNotify fileMerger= OutboundDeliveryNotify.builder() + .name("file merger ") + .condition(true) + .documentId("166730399_C1") + .inticsZipUri("https://agadia.intics.ai/api/v1/downloadOutboundZip/166730399") + .resourceConn("intics_agadia_db_conn") + .zipChecksum("3t4ergfe32q345r6ty") + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + + actionExecutionAudit.getContext().putAll(Map.ofEntries( + Map.entry("read.batch.size","1"), + Map.entry("doc.delivery.notify.url","https://devlang.pahub.com/fax/api/Inbounddocument_in/docextractdeliverynotify"), + Map.entry("gen_group_id.group_id","1"), + Map.entry("agadia.secretKey",""), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","1"))); + + OutboundDeliveryNotifyAction deliveryNotifyAction = new OutboundDeliveryNotifyAction(actionExecutionAudit,log,fileMerger); + deliveryNotifyAction.execute(); + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/OutboundTableResponseActionTest.java b/src/test/java/in/handyman/raven/lib/OutboundTableResponseActionTest.java new file mode 100644 index 00000000..82b98709 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/OutboundTableResponseActionTest.java @@ -0,0 +1,51 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.OutboundKvpResponse; +import in.handyman.raven.lib.model.OutboundTableResponse; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +@Slf4j +class OutboundTableResponseActionTest { + + + @Test + void tableResponseFromAlchemy() throws Exception { + + OutboundTableResponse outboundTableResponse= OutboundTableResponse.builder() + .name("alchemy table response ") + .resourceConn("intics_zio_db_conn") + .resultTable("alchemy_response.alchemy_table_response") + .condition(true) + .processId("12345") + .querySet("SELECT ampq.producer_process_id as process_id, ap.group_id, ap.tenant_id, ap.root_pipeline_id, " + + "ap.alchemy_origin_id, ap.pipeline_origin_id ,ap.paper_no " + + "FROM product_outbound.product_outbound_payload_queue ampq " + + "join alchemy_migration.alchemy_papers ap on ampq.origin_id = ap.pipeline_origin_id " + + "where status = 'IN_PROGRESS' and ampq.group_id = 1;") + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + + actionExecutionAudit.getContext().put("alchemy.outbound.table.url","http://192.168.15.34:8189/alchemy/api/v1/response/table"); + actionExecutionAudit.getContext().put("alchemyAuth.token","eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJVc2VyIERldGFpbHMiLCJpc3MiOiJJbnRpY3NBSSBBbGNoZW15IiwiZXhwIjoxNjk1OTM2MjQzLCJpYXQiOjE2OTU4OTMwNDMsImVtYWlsIjoiYWdhZGlhQGludGljcy5haSJ9.Ltwlm5CVDbR9EmHyLzjczRYC_Tn_etlWKBxISP6tbsE"); + actionExecutionAudit.getContext().put("alchemyAuth.tenantId","1"); + actionExecutionAudit.getContext().put("alchemy.table.consumer.API.count","1"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","1"); + actionExecutionAudit.getContext().put("read.batch.size","1"); + actionExecutionAudit.getContext().put("write.batch.size","1"); + + + OutboundTableResponseAction outboundTableResponseAction=new OutboundTableResponseAction(actionExecutionAudit,log,outboundTableResponse); + try { + outboundTableResponseAction.execute(); + } catch (Exception e) { + throw new RuntimeException(e); + } + + + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/ProductOutboundZipfileActionTest.java b/src/test/java/in/handyman/raven/lib/ProductOutboundZipfileActionTest.java new file mode 100644 index 00000000..a71a052b --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/ProductOutboundZipfileActionTest.java @@ -0,0 +1,65 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ProductOutboundZipFile; +import in.handyman.raven.lib.model.ZipFileCreationOutbound; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +class ProductOutboundZipfileActionTest { + + @Test + public void unitTestCase() throws Exception { + ProductOutboundZipFile productOutboundZipfile = ProductOutboundZipFile.builder() + .name("product outbound zip file details") + .outputDir("/home/anandh.andrews@zucisystems.com/intics-workspace/testing/output") + .resultTable("product_outbound.product_outbound_zip_file_details") + .processId("1234567") + .resourceConn("intics_zio_db_conn") + .querySet("SELECT origin_id, root_pipeline_id, group_id, process_id, cleaned_pdf_path, origin_pdf_path, product_json, kvp_response, table_response, tenant_id,file_name\n" + + "FROM product_outbound.product_outbound_zip_file_input;") + .condition(true) + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + + actionExecutionAudit.getContext().putAll(Map.ofEntries( + Map.entry("read.batch.size","5"), + Map.entry("gen_group_id.group_id","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + ProductOutboundZipfileAction productOutboundZipfileAction=new ProductOutboundZipfileAction(actionExecutionAudit,log,productOutboundZipfile); + productOutboundZipfileAction.execute(); + } + + @Test + public void unitTestForZip() throws Exception { + + ZipFileCreationOutbound zipFileCreationOutbound= ZipFileCreationOutbound.builder() + .name("outbound zip ") + .condition(true) + .resourceConn("intics_zio_db_conn") + .outputDir("/home/anandh.andrews@zucisystems.com/intics-workspace/testing/output/") + .processId("1246535") + .querySet(" SELECT 'INT-1' as origin_id, 1 as root_pipeline_id,1 as group_id,1324354 process_id,'/home/anandh.andrews@zucisystems.com/intics-workspace/testing/input/1/transaction/TRZ-1/CM1882524/1/CM1882524.pdf' as cleaned_pdf_path," + + "'/home/anandh.andrews@zucisystems.com/intics-workspace/testing/input/1/transaction/TRZ-1/CM1882524/1/CM1882524.pdf' as origin_pdf_path, " + + "'{\"a\":\"b\"}' as product_json,'{\"a\":\"b\"}' as kvp_response,1 as tenant_id,'output.pdf' as file_name, 'ORIGIN-20' as alchemy_origin_id") + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + + actionExecutionAudit.getContext().putAll(Map.ofEntries( + Map.entry("read.batch.size","5"), + Map.entry("gen_group_id.group_id","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + ZipFileCreationOutboundAction productOutboundZipfileAction=new ZipFileCreationOutboundAction(actionExecutionAudit,log,zipFileCreationOutbound); + productOutboundZipfileAction.execute(); + } + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/ProductResponseActionTest.java b/src/test/java/in/handyman/raven/lib/ProductResponseActionTest.java new file mode 100644 index 00000000..ab86d217 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/ProductResponseActionTest.java @@ -0,0 +1,94 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ProductResponse; +import lombok.extern.slf4j.Slf4j; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import org.json.JSONArray; +import org.json.JSONObject; +import org.junit.jupiter.api.Test; + +import java.net.URL; +import java.util.concurrent.TimeUnit; + +@Slf4j +class ProductResponseActionTest { + + final OkHttpClient httpclient = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.MINUTES) + .writeTimeout(10, TimeUnit.MINUTES) + .readTimeout(10, TimeUnit.MINUTES) + .build(); + + @Test + void execute() throws Exception { + + URL url = new URL("http://localhost:8189/alchemy/api/v1/response/TRZ-26/INT-36?tenantId=1"); + RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), ""); + + Request request = new Request.Builder().url(url) + .addHeader("accept", "*/*") + .addHeader("Authorization", "Bearer " + "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJVc2VyIERldGFpbHMiLCJpc3MiOiJJbnRpY3NBSSBBbGNoZW15IiwiZXhwIjoxNjk3ODM3MTk0LCJpYXQiOjE2OTc3NTA3OTQsImVtYWlsIjoiZGpAaW50aWNzLmFpIn0.OxBLAc4BQHeyQBoDjuAzaqea5ShEKrckgrjKhQ9iWAs") + .addHeader("Content-Type", "application/json") + .post(requestBody) + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + + actionExecutionAudit.getContext().put("alchemy.product.response.url","http://localhost:8189/alchemy/api/v1/response"); + actionExecutionAudit.getContext().put("alchemyAuth.token","eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJVc2VyIERldGFpbHMiLCJpc3MiOiJJbnRpY3NBSSBBbGNoZW15IiwiZXhwIjoxNjk3ODM3MTk0LCJpYXQiOjE2OTc3NTA3OTQsImVtYWlsIjoiZGpAaW50aWNzLmFpIn0.OxBLAc4BQHeyQBoDjuAzaqea5ShEKrckgrjKhQ9iWAs"); + actionExecutionAudit.getContext().put("alchemyAuth.tenantId","8"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","33"); + actionExecutionAudit.getContext().put("read.batch.size","1"); + actionExecutionAudit.getContext().put("write.batch.size","1"); + + ProductResponse productResponse = ProductResponse.builder() + .tenantId(1L) + .condition(true) + .name("alchemy info action") + .querySet("SELECT ampq.origin_id, 'TRZ-26' as transaction_id, ampq.producer_process_id as process_id, '33' as group_id,\n" + + " ampq.tenant_id, ampq.root_pipeline_id\n" + + " FROM alchemy_migration.alchemy_migration_payload_queue ampq\n" + + " where status = 'IN_PROGRESS' and ampq.group_id = '33' and ampq.tenant_id = 8") + .resourceConn("intics_zio_db_conn") + .token("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJVc2VyIERldGFpbHMiLCJpc3MiOiJJbnRpY3NBSSBBbGNoZW15IiwiZXhwIjoxNjk3ODM3MTk0LCJpYXQiOjE2OTc3NTA3OTQsImVtYWlsIjoiZGpAaW50aWNzLmFpIn0.OxBLAc4BQHeyQBoDjuAzaqea5ShEKrckgrjKhQ9iWAs") + .build(); + +// try (Response response = httpclient.newCall(request).execute()) { +// if (response.isSuccessful()) { +// log.info("Response Details: {}", response); +// } +// } catch (Exception e) { +// throw new IllegalStateException(); + + ProductResponseAction productResponseAction = new ProductResponseAction(actionExecutionAudit, log, productResponse); + productResponseAction.execute(); +// } + + } + + @Test + void jsonNodeTest() throws JsonProcessingException { + final ObjectMapper mapper = new ObjectMapper(); + JSONObject parentResponse = new JSONObject("{\"csvTablesPath\": [{\"rcnn_padd.cm1882524_0_0\": \"/home/logesh.b@zucisystems.com/workspace/dev/intics-agadia/pipeline/data/output/2/table_extraction/1392/INT-3/139147003665780118/tabel-extraction/CM1882524/rcnn_padd/CM1882524_0_0.csv\"}], \"tableResponse\": {\"payload\": [{\"encode\": \"\", \"tableData\": {\"columns\": [0, 1, 2, 3, 4, 5], \"data\": [[\"ITEMNUMBER\", \"DESCRIPTION\", \"QTY\", \"U/M\", \"UNITPRICE\", \"EXTPRICE\"], [\"SAN1735790\", \"MARKER,SHARPIE,UF,RT,BK refused. no paperwork.\", \"-1\", \"DZ\", \"8.65\", \"-8.65\"]]}}]}}"); + JSONArray filePathArray = new JSONArray(parentResponse.get("csvTablesPath").toString()); + JsonNode jsonNode = mapper.readTree(parentResponse.toString()); + JsonNode tableResponse = jsonNode.get("tableResponse").get("payload").get(0); + System.out.println(filePathArray); + System.out.println(tableResponse); + + } + + @Test + void tableData() throws JsonProcessingException { + final ObjectMapper mapper = new ObjectMapper(); + JsonNode jsonNode = mapper.readTree("{\"payload\":[{\"encode\":\"\",\"tableData\":{\"data\":[[\"ITEMNUMBER\",\"DESCRIPTION\",\"QTY\",\"U/M\",\"UNITPRICE\",\"EXTPRICE\"],[\"SAN1735790\",\"MARKER,SHARPIE,UF,RT,BK refused. no paperwork.\",\"-1\",\"DZ\",\"8.65\",\"-8.65\"]],\"columns\":[0,1,2,3,4,5]}}]}"); + System.out.println(mapper.writeValueAsString(jsonNode.get("payload").get(0).get("tableData"))); + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/RestApiActionTestExecutionAudit.java b/src/test/java/in/handyman/raven/lib/RestApiActionTestExecutionAudit.java new file mode 100644 index 00000000..84acbc02 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/RestApiActionTestExecutionAudit.java @@ -0,0 +1,183 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.lambda.process.HRequestResolver; +import in.handyman.raven.lambda.process.LContext; +import in.handyman.raven.lambda.process.LambdaEngine; +import lombok.extern.slf4j.Slf4j; + +import org.junit.jupiter.api.Test; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.List; +import java.util.Map; + +@Slf4j +class RestApiActionTestExecutionAudit { + + private final ObjectMapper objectMapper = new ObjectMapper(); + + @Test + void execute() { + ObjectNode objectNode = objectMapper.createObjectNode(); + + ObjectNode node = objectMapper.createObjectNode(); + ObjectNode node2 = objectMapper.createObjectNode(); + + node.put("faxReferenceId", "AGA-REF-ID-001"); + node.put("callBackUrl", "AGA-REF-ID-001"); + node.put("faxChecksum", "bccf7e4800b32ed0e272acd436bfa32c3f3ec393"); + node.put("faxFileUri", "https://www.tutorialspoint.com/java/pdf/java_interfaces.pdf"); + + node2.put("faxReferenceId", "AGA-REF-ID-002"); + node2.put("callBackUrl", "AGA-REF-ID-001"); + node2.put("faxChecksum", "72acd436bfa32c3f3ec393"); + node2.put("faxFileUri", "https://www.tutorialspoint.com/java/pdf/java_interfaces.pdf"); + + objectNode.putPOJO("faxDocument", List.of(node, node2)); + + LContext request = LContext.builder() + .pipelineName("fax.processing.producer") + .processLoadType(HRequestResolver.LoadType.FILE.name()) + .inheritedContext(Map.of("request", objectNode.toString())) + .build(); + + log.info(request.toString()); + LambdaEngine.start(request); + } + + + @Test + public void testTruthAttributionDDL() { + LContext request = LContext.builder() + .pipelineName("db.test") + .processLoadType(HRequestResolver.LoadType.FILE.name()) + .build(); + log.info(request.toString()); + LambdaEngine.start(request); + } + + + @Test + public void denoiseMainCaller() { + LContext request = LContext.builder() + .pipelineName("master.data.caller") + .processLoadType(HRequestResolver.LoadType.FILE.name()) + .build(); + log.info(request.toString()); + LambdaEngine.start(request); + } + + @Test + public void + performanceOpt() + { + LContext request = LContext.builder() + .pipelineName("root.processor#1") + .processLoadType(HRequestResolver.LoadType.FILE.name()) + .inheritedContext(Map.ofEntries(Map.entry("created_user_id", "-1"), + Map.entry("batch_id","TMP-AGD-001"), + Map.entry("tenant_id","TND-001"), + Map.entry("document_id","TMP-AGD-001"), + Map.entry("last_updated_user_id","-1"), + Map.entry("dir_path","/home/balasoundarya.thanga@zucisystems.com/workspace/gitdev/input/1.pdf/"), + Map.entry("target_directory_path","/home/balasoundarya.thanga@zucisystems.com/workspace/gitdev/output"))) + .build(); + log.info(request.toString()); + LambdaEngine.start(request); + } + + @Test + public void + performanceOptUi() + { + LContext request = LContext.builder() + .pipelineName("root.processor#10") + .processLoadType(HRequestResolver.LoadType.FILE.name()) + .inheritedContext(Map.ofEntries(Map.entry("created_user_id", "-1"), + Map.entry("batch_id","TMP-AGD-001"), + Map.entry("tenant_id","1"), + Map.entry("origin_type","TRANSACTION"), + Map.entry("workspace_id","-1"), + Map.entry("transaction_id","TND-001"), + Map.entry("document_type","INSURANCE"), + Map.entry("document_id","TMP-AGD-001"), + Map.entry("last_updated_user_id","-1"), + Map.entry("dir_path","/home/anandh.andrews@zucisystems.com/intics-workspace/pipeline-ui/testing/input/SYNT_166838894.pdf"), + Map.entry("target_directory_path","/home/anandh.andrews@zucisystems.com/intics-workspace/pipeline-ui/testing/output"))) + .build(); + log.info(request.toString()); + LambdaEngine.start(request); + } + + @Test + public void qrcode() + { + LContext request = LContext.builder() + .pipelineName("qr.extraction.processor") + .processLoadType(HRequestResolver.LoadType.FILE.name()) + .inheritedContext(Map.ofEntries(Map.entry("created_user_id", "-1"), + Map.entry("batch_id","TMP-AGD-001"), + Map.entry("tenant_id","TND-001"), + Map.entry("document_id","TMP-AGD-001"), + Map.entry("last_updated_user_id","-1"), + Map.entry("dir_path","/home/anandh.andrews@zucisystems.com/W-space/pr1-lambdas/agadia/input/"), + Map.entry("target_directory_path","/home/anandh.andrews@zucisystems.com/W-space/pr1-lambdas/agadia/agadia_output") )) + .build(); + log.info(request.toString()); + LambdaEngine.start(request); + } + @Test + public void testTruthAttributionSummoning() { + LContext request = LContext.builder() + .pipelineName("truth.attribution.summoning") + .processLoadType(HRequestResolver.LoadType.FILE.name()) + .build(); + log.info(request.toString()); + LambdaEngine.start(request); + } + + + @Test + void executeQR() { + LambdaEngine.start(LContext.builder() + .pipelineName("root.processor") + .processLoadType(HRequestResolver.LoadType.FILE.name()) + .inheritedContext(Map.of("group_id", "32")) + .build()); + } + + + @Test + public void shellScript() throws IOException, InterruptedException { + + String homeDir=System.getProperty("user.home"); + System.out.println("home Directory " +homeDir); + boolean IS_WINDOWS=System.getProperty("os.name") + .toLowerCase().startsWith("windows"); + System.out.println("Is windows " +IS_WINDOWS); + Process process; + if (IS_WINDOWS){ + process=Runtime.getRuntime().exec(String.format("cmd.exe /c dir %s", homeDir)); + System.out.println("Executed for windows " +process); + }else { + process=Runtime.getRuntime().exec(String.format("/bin/sh -c ls %s", homeDir)); + System.out.println("Executed for linux " +process); + } + BufferedReader reader = new BufferedReader( + new InputStreamReader(process.getInputStream())); + StringBuilder stringBuilder=new StringBuilder(); + String line; + while ((line = reader.readLine()) != null){ + stringBuilder.append(line).append("\n"); + System.out.println(stringBuilder); + } + + int exitCode = process.waitFor(); + assert exitCode == 0; + + } +} diff --git a/handyman.raven/src/test/java/in/handyman/raven/lib/RestApiActionTestExecutionAudit.java b/src/test/java/in/handyman/raven/lib/SORGroupDetailsTest.java similarity index 82% rename from handyman.raven/src/test/java/in/handyman/raven/lib/RestApiActionTestExecutionAudit.java rename to src/test/java/in/handyman/raven/lib/SORGroupDetailsTest.java index 5db47778..3ccb7c86 100644 --- a/handyman.raven/src/test/java/in/handyman/raven/lib/RestApiActionTestExecutionAudit.java +++ b/src/test/java/in/handyman/raven/lib/SORGroupDetailsTest.java @@ -5,12 +5,12 @@ import in.handyman.raven.lambda.process.LambdaEngine; import org.junit.jupiter.api.Test; -class RestApiActionTestExecutionAudit { +class SORGroupDetailsTest { @Test void execute() { LambdaEngine.start(LContext.builder() - .pipelineName("cub.test.loadcsv") + .pipelineName("test.sorgroupdetails") .processLoadType(HRequestResolver.LoadType.FILE.name()) .build()); } diff --git a/src/test/java/in/handyman/raven/lib/ScalarAdapterActionTest.java b/src/test/java/in/handyman/raven/lib/ScalarAdapterActionTest.java new file mode 100644 index 00000000..fb041f74 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/ScalarAdapterActionTest.java @@ -0,0 +1,47 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.ScalarAdapter; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +@Slf4j +class ScalarAdapterActionTest { + + @Test + void execute() throws Exception { + + final ScalarAdapter build = ScalarAdapter.builder() + .condition(true) + .name("Test ScalarAdapter") + .processID("138968829607360172") + .resultSet(" SELECT dp.sor_item_name as sor_key, dp.sor_question as question, dp.answer as input_value, dp.weight,dp.vqa_score,\n" + + " si.allowed_adapter , si.restricted_adapter ,'${init_process_id.process_id}' as process_id,\n" + + " si.word_limit , si.word_threshold ,\n" + + " si.char_limit , si.char_threshold ,\n" + + " si.validator_threshold , si.allowed_characters ,\n" + + " si.comparable_characters, si.restricted_adapter_flag,\n" + + " dp.origin_id ,dp.paper_no ,dp.group_id,\n" + + " dp.created_user_id, dp.tenant_id,dp.b_box\n" + + " FROM sor_transaction.vqa_transaction dp\n" + + " JOIN sor_meta.sor_item si ON si.sor_item_name = dp.sor_item_name\n" + + " WHERE dp.group_id = '1' AND si.allowed_adapter ='ner' AND dp.answer is not null" + + " AND dp.sor_item_name ='patient_name';\n" + + " ") + + .resourceConn("intics_agadia_db_conn") + + .build(); + + + final ActionExecutionAudit action = ActionExecutionAudit.builder() + .build(); + action.setRootPipelineId(11011L); + action.getContext().put("validation.multiverse-mode","true"); + action.getContext().put("validation.restricted-answers","No,None of the above"); + //action.getContext().put("copro.text-validation.url", "http://localhost:10189/copro/text-validation/patient"); + final ScalarAdapterAction scalarAdapterAction = new ScalarAdapterAction(action, log, build); + scalarAdapterAction.execute(); + + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/SharePointTest.java b/src/test/java/in/handyman/raven/lib/SharePointTest.java new file mode 100644 index 00000000..186d6485 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/SharePointTest.java @@ -0,0 +1,181 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import in.handyman.raven.exception.HandymanException; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lambda.doa.audit.StatementExecutionAudit; +import in.handyman.raven.lambda.process.HRequestResolver; +import in.handyman.raven.lambda.process.LContext; +import in.handyman.raven.lambda.process.LambdaEngine; +import in.handyman.raven.lib.model.Validator; +import in.handyman.raven.util.InstanceUtil; +import in.handyman.raven.util.UniqueID; +import lombok.AllArgsConstructor; +import lombok.Data; +import okhttp3.*; +import org.jetbrains.annotations.TestOnly; +import org.json.JSONArray; +import org.json.JSONObject; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URL; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +class SharePointTest { + // urgency trige + @Test + void execute() { + LambdaEngine.start(LContext.builder() + .pipelineName("smoke.test") + .processLoadType(HRequestResolver.LoadType.FILE.name()) + .build()); + } + + @Test + void testRegWithHyphen() { + final String PHONE_NUMBER_REGEX = "^\\(?(\\d{3})\\)?[-]?(\\d{3})[-]?(\\d{4})$"; + final String NUMBER_REGEX = "^[+-]?(\\d+\\.?\\d*|\\.\\d+)$"; + Pattern pattern = Pattern.compile(PHONE_NUMBER_REGEX); + Matcher matcher = pattern.matcher("098-289-0948"); + boolean matchScore = matcher.matches(); + int result = matchScore ? 70 : 0; + + } + + @Test + void testRegWithBracket() { + final String PHONE_NUMBER_REGEX = "^\\(?(\\d{3})\\)?[-]?(\\d{3})[-]?(\\d{4})$"; + final String NUMBER_REGEX = "^[+-]?(\\d+\\.?\\d*|\\.\\d+)$"; + Pattern pattern = Pattern.compile(PHONE_NUMBER_REGEX); + Matcher matcher = pattern.matcher("(098)289-0948"); + boolean matchScore = matcher.matches(); + int result = matchScore ? 70 : 0; + + } + + @Test + void testRegWithNumeric() { + final String NUMBER_REGEX = "^[+-]?(\\d+\\.?\\d*|\\.\\d+)$"; + Pattern pattern = Pattern.compile(NUMBER_REGEX); + Matcher matcher = pattern.matcher("JODISANDERS"); + boolean matchScore = matcher.matches(); + int result = matchScore ? 70 : 0; + + } + + @Test + void testRegWithwStringAndNumber() { + final String NAME_NUMBER_REGEX = "^(.+?)\\s*(\\d+)$"; + Pattern pattern = Pattern.compile(NAME_NUMBER_REGEX); + Matcher matcher = pattern.matcher("Rebbecca JohnH123847494"); + if (matcher.matches()) { + String name = matcher.group(1); + String number = matcher.group(2); + System.out.println("Name: " + name); + System.out.println("Number: " + number); + } else { + System.out.println("No match found."); + } + } + + @Test + void testStringArrayConfig(){ + String []restrictedAnswers = new String[]{"reg,efmj,cin"}; + System.out.println(restrictedAnswers); + } + + @Test + void executeTest() { + String test = "15/09-2023"; + test = test.replaceAll("[-/]", "_"); + System.out.println(test); + } + + @Test + void exceptionOccur() { + /* ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + try { + ActionExecutionErrorAudit audit = ActionExecutionErrorAudit.builder() + .rootPipelineId(actionExecutionAudit.getRootPipelineId()) + .actionId(actionExecutionAudit.getActionId()) + .build(); + } catch (Exception ex) { + + throw new HandymanException(ex.toString()); + }*/ + } + + + @Test + void docnetResult() throws JsonProcessingException { + + String jsonString = "[{\"sorKey\":\"date_of_birth\",\"sorId\":\"12\",\"attributionResult\":[{\"question\":\"Date of Birth\",\"predictedAttributionValue\":\"12/16/1963\",\"confidence_score\":\"\"}]},{\"sorKey\":\"date_of_birth\",\"sorId\":\"12\",\"attributionResult\":[{\"question\":\"Date of Birth\",\"predictedAttributionValue\":\"12/16/1963\",\"confidence_score\":\"\"}]},{\"sorKey\":\"date_of_birth\",\"sorId\":\"12\",\"attributionResult\":[{\"question\":\"Date of Birth\",\"predictedAttributionValue\":\"12/16/1963\",\"confidence_score\":\"\"}]},{\"sorKey\":\"date_of_birth\",\"sorId\":\"12\",\"attributionResult\":[{\"question\":\"Date of Birth\",\"predictedAttributionValue\":\"12/16/1963\",\"confidence_score\":\"\"}]}]"; + + JSONArray jObj = new JSONArray(jsonString); + + jObj.forEach(resultObject -> { + JSONObject obj = (JSONObject) resultObject; + obj.getString("sorKey"); + obj.getString("sorId"); + JSONArray result = obj.getJSONArray("attributionResult"); + for (int i = 0; i < result.length(); i++) { + JSONObject object = (JSONObject) result.get(i); + object.getString("question"); + object.getString("predictedAttributionValue"); + System.out.println(object.getString("question")); + System.out.println(object.getString("predictedAttributionValue")); + + } + }); + + + } + + @Data + @AllArgsConstructor + class DocnetQuestions { + private JsonNode question; + } + + @Test + void TestDocExtractDelivery() throws MalformedURLException { + + final ObjectMapper MAPPER = new ObjectMapper(); + final MediaType MediaTypeJSON = MediaType.parse("application/json; charset=utf-8"); + final OkHttpClient httpclient = InstanceUtil.createOkHttpClient(); + + final ObjectNode objectNode = MAPPER.createObjectNode(); + objectNode.put("documentId", "449e941a-4e22-46fe-b1a0-6cb9ef339d36"); + objectNode.put("inticsZipUri", "https://agadia.intics.ai/downloadOutboundZip/449e941a-4e22-46fe-b1a0-6cb9ef339d36"); + objectNode.put("checksum", "90456185F32217DA8055E40716E590BB"); + Request request = new Request.Builder().url("https://fbmltprd.rxcontinuum.com/docextraction/api/Inbounddocument_in/docextractdeliverynotify") + .header("appId", "285089d1-7bb5-4db2-a971-b888403939b7") + .header("appKeyId", "Y9p4SZmV5XhkBeOqFeuBgVwU1Np2jGZP2SpQpamKGru66GsD0hSovWBemKsrORoz") + .post(RequestBody.create(objectNode.toString(), MediaTypeJSON)) + .build(); + + try (Response response = httpclient.newCall(request).execute()) { + String responseBody = Objects.requireNonNull(response.body()).string(); + if (response.isSuccessful()) { + //log.info(aMarker, "Sent response for the document {}", documentId); + } else { + throw new HandymanException(responseBody); + } + } catch (Throwable t) { + //log.error(aMarker, "error inserting row {}", result, t); + } + + } + +} diff --git a/src/test/java/in/handyman/raven/lib/TableExtractionActionTest.java b/src/test/java/in/handyman/raven/lib/TableExtractionActionTest.java new file mode 100644 index 00000000..8211f764 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/TableExtractionActionTest.java @@ -0,0 +1,78 @@ +package in.handyman.raven.lib; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.TableExtraction; +import in.handyman.raven.lib.model.tableextraction.TableOutputResponse; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.List; +import java.util.Map; + +@Slf4j +class TableExtractionActionTest { + + @Test + void tableExtractionTest() throws Exception { + TableExtraction tableExtraction = TableExtraction.builder() + .name("Text extraction macro test after copro optimization") + .resourceConn("intics_zio_db_conn") + .condition(true) + .processId("999") + .resultTable("table_extraction.table_extraction_result") + .outputDir("/data/output/") + .querySet("SELECT 'ORIGIN-ss' as origin_id, 1 as group_id ,'/data/output/186/preprocess/autorotation/auto_rotation/(Galvanized___Heavy_Duty)_Racks_Quotation_0.jpg' as file_path," + + "1 as tenant_id,1 as template_id,1 as process_id,1 as root_pipeline_id") + .build(); + + + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("copro.table-extraction.url", "http://192.168.10.248:18888/copro/table-attribution"), + Map.entry("read.batch.size", "1"), + Map.entry("table.extraction.consumer.API.count", "1"), + Map.entry("triton.request.activator", "false"), + Map.entry("consumer.API.count", "1"), + Map.entry("write.batch.size", "1"))); + + TableExtractionAction tableExtractionAction = new TableExtractionAction(actionExecutionAudit, log, tableExtraction); + tableExtractionAction.execute(); + } + + @Test + public void fileNameTest() { + String input = "filename_2_2__121212_0_1.jpg"; + + // Split the string by underscore + String[] parts = input.split("_"); + + // Check if there are at least two parts (0 and 1 after the first underscore) + if (parts.length >= 3) { + // Extract the second part (index 1 in the array after splitting) + String number = parts[parts.length - 2]; + + // Convert the extracted string to an integer if needed + int extractedNumber = Integer.parseInt(number); + + // Print the extracted number + System.out.println("Extracted number: " + extractedNumber); + } else { + System.out.println("Invalid input format"); + } + } + + @Test + void tableCsvTest() throws JsonProcessingException { + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + TableExtraction tableExtraction = new TableExtraction(); + + TableExtractionAction tableExtractionAction = new TableExtractionAction(actionExecutionAudit, log, tableExtraction); + + String tableExtractionAction2 = tableExtractionAction.tableDataJson("", actionExecutionAudit); + System.out.println(tableExtractionAction2); + } + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/TransformActionTest.java b/src/test/java/in/handyman/raven/lib/TransformActionTest.java new file mode 100644 index 00000000..4d924a67 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/TransformActionTest.java @@ -0,0 +1,105 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.Transform; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Collections; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.*; + + +@Slf4j +class TransformActionTest { +// +// +// @Test +// void testSelect(){ +// Transform transform=Transform.builder() +// .name("transform") +// .on("intics_agadia_db_conn") +// .format(false) +// .value(Collections.singletonList("INSERT INTO ref_data.validation_results (\n" + +// " root_pipeline_id,\n" + +// " po_number,\n" + +// " tax_amount,\n" + +// " tax_amount_status,\n" + +// " invoice_amount,\n" + +// " description,\n" + +// " file_name\n" + +// " )\n" + +// " SELECT\n" + +// " ${gen_id.root_pipeline_id} AS root_pipeline_id,\n" + +// " (\n" + +// " SELECT dara.predicted_attribution_value\n" + +// " FROM macro.docnet_attribution_response_audit dara\n" + +// " INNER JOIN sor_meta.sor_question sq ON dara.question = sq.question\n" + +// " INNER JOIN sor_meta.sor_tsynonym st ON st.synonym_id = sq.synonym_id\n" + +// " WHERE st.sor_item_id = 1\n" + +// " AND dara.root_pipeline_id = '${gen_id.root_pipeline_id}'\n" + +// " LIMIT 1\n" + +// " ) as po_number,\n" + +// " (\n" + +// " SELECT COALESCE(CAST(dara.predicted_attribution_value AS NUMERIC), 0.0)\n" + +// " FROM macro.docnet_attribution_response_audit dara\n" + +// " INNER JOIN sor_meta.sor_question sq ON dara.question = sq.question\n" + +// " INNER JOIN sor_meta.sor_tsynonym st ON st.synonym_id = sq.synonym_id\n" + +// " WHERE st.sor_item_id = 5\n" + +// " AND dara.root_pipeline_id = '${gen_id.root_pipeline_id}'\n" + +// " LIMIT 1\n" + +// " ) as tax_amount,\n" + +// " (\n" + +// " SELECT\n" + +// " CASE\n" + +// " WHEN COALESCE(CAST(dara.predicted_attribution_value AS NUMERIC), 0.0) > 0 THEN 'yes'\n" + +// " ELSE 'no'\n" + +// " END\n" + +// " FROM macro.docnet_attribution_response_audit dara\n" + +// " INNER JOIN sor_meta.sor_question sq ON dara.question = sq.question\n" + +// " INNER JOIN sor_meta.sor_tsynonym st ON st.synonym_id = sq.synonym_id\n" + +// " WHERE st.sor_item_id = 5\n" + +// " AND dara.root_pipeline_id = '${gen_id.root_pipeline_id}'\n" + +// " LIMIT 1\n" + +// " ) as tax_amount_status,\n" + +// " (\n" + +// " SELECT COALESCE(CAST(NULLIF(dara.predicted_attribution_value, '') AS NUMERIC), 0.0)\n" + +// " FROM macro.docnet_attribution_response_audit dara\n" + +// " INNER JOIN sor_meta.sor_question sq ON dara.question = sq.question\n" + +// " INNER JOIN sor_meta.sor_tsynonym st ON st.synonym_id = sq.synonym_id\n" + +// " WHERE st.sor_item_id = 2\n" + +// " AND dara.root_pipeline_id = '${gen_id.root_pipeline_id}'\n" + +// " LIMIT 1\n" + +// " ) as invoice_amount,\n" + +// " (\n" + +// " SELECT c.description\n" + +// " FROM rcnn_padd.cm1882524_0_0 c\n" + +// " LIMIT 1\n" + +// " ) as description,\n" + +// " (\n" + +// " SELECT a.file_path\n" + +// " FROM info.asset a\n" + +// " WHERE file_extension = 'pdf' and root_pipeline_id='${gen_id.root_pipeline_id}'\n" + +// " LIMIT 1\n" + +// " ) as file_name;")) +// .condition(true) +// .build(); +// +// +// ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); +// actionExecutionAudit.getContext().put("copro.text-validation.url","http://localhost:10190/copro/text-validation/patient"); +// actionExecutionAudit.setProcessId(138980079308730208L); +// actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), +// Map.entry("gen_group_id.group_id","5"), +// Map.entry("consumer.API.count","1"), +// Map.entry("write.batch.size","5"), +// Map.entry("gen_id.root_pipeline_id","2533"))); +// +// TransformAction transformAction=new TransformAction(actionExecutionAudit,log,transform); +// transformAction.execute(); +// } +// + + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/TrinityModelActionTest.java b/src/test/java/in/handyman/raven/lib/TrinityModelActionTest.java new file mode 100644 index 00000000..402e6e08 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/TrinityModelActionTest.java @@ -0,0 +1,72 @@ +package in.handyman.raven.lib; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.TrinityModel; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +class TrinityModelActionTest { + + @Test + void executeHandwritten() throws Exception { + + TrinityModel trinityModel=TrinityModel.builder() + .name("DIE model testing") + .condition(true) + .outputDir("dir") + .requestUrl("http://192.168.10.239:10189/copro/attribution/kvp-docnet") + .resourceConn("intics_agadia_db_conn") + .forkBatchSize("1") + .questionSql(" SELECT a.question, a.file_path, a.document_type as paperType FROM\n" + + "\t macro.sor_transaction_tqa_49254 a\n" + + "\t join sor_transaction.sor_transaction_payload_queue st on st.origin_id=a.origin_id\n" + + "\t where a.document_type='Handwritten'; ") + .responseAs("sor_transaction_tqa_49254") + .build(); + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.trinity-attribution.handwritten.url","http://copro.valuation:10189/copro/attribution/kvp-docnet"); + actionExecutionAudit.getContext().put("okhttp.client.timeout","20"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","1"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + TrinityModelAction trinityModelAction=new TrinityModelAction(actionExecutionAudit,log,trinityModel); + trinityModelAction.execute(); + } + + + + @Test + void executePrinted() throws Exception { + + TrinityModel trinityModel=TrinityModel.builder() + .name("DIE model testing") + .condition(true) + .outputDir("dir") + .requestUrl("http://copro.impira:10193/copro/attribution/kvp-attribution-dqa-new") + .resourceConn("intics_agadia_db_conn") + .forkBatchSize("1") + .questionSql(" SELECT a.question, a.file_path, a.document_type as paperType FROM\n" + + "\t macro.sor_transaction_tqa_${init_process_id.process_id} a\n" + + "\t join sor_transaction.sor_transaction_payload_queue st on st.origin_id=a.origin_id\n" + + "\t where a.document_type='Printed'; ") + .responseAs("macro.sor_transaction_tqa_49254") + .build(); + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.trinity-attribution.printed.url","http://copro.impira:10193/copro/attribution/kvp-attribution-dqa-new"); + actionExecutionAudit.getContext().put("okhttp.client.timeout","20"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","1"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + TrinityModelAction trinityModelAction=new TrinityModelAction(actionExecutionAudit,log,trinityModel); + trinityModelAction.execute(); + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/AutoRotationActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/AutoRotationActionTest.java new file mode 100644 index 00000000..d533b450 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/AutoRotationActionTest.java @@ -0,0 +1,70 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.AutoRotationAction; +import in.handyman.raven.lib.model.AutoRotation; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +class AutoRotationActionTest { + + @Test + void autoRotationTest() throws Exception { + + AutoRotation action = AutoRotation.builder() + .name("auto rotation testing after copro optimization") + .processId("138980") + .resourceConn("intics_zio_db_conn") + .outputDir("/home/christopher.paulraj@zucisystems.com/Pictures/output") + .condition(true) + .querySet("select 'INT-1' as origin_id,1 as group_id,'/home/christopher.paulraj@zucisystems.com/Pictures/output.png' as file_path,1 as paper_no,1 as tenant_id,'TMP-1' as template_id,'138980744174170252' as process_id\n") + .build(); + + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.autorotation.url", "http://localhost:10181/copro/preprocess/autorotation"); + actionExecutionAudit.setProcessId(13898007L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size", "5"), + Map.entry("consumer.API.count", "1"), + Map.entry("root_pipeline_id","1"), + Map.entry("action_id","100"), + Map.entry("triton.request.activator", "false"), + Map.entry("write.batch.size", "5")) + ); + + AutoRotationAction action1 = new AutoRotationAction(actionExecutionAudit, log, action); + action1.execute(); + + + } + + @Test + void tritonServer() throws Exception { + AutoRotation action = AutoRotation.builder() + .name("auto rotation testing after copro optimization") + .processId("1389807441") + .resourceConn("intics_zio_db_conn") + .outputDir("/home/christopher.paulraj@zucisystems.com/Pictures/output") + .condition(true) + .querySet(" SELECT a.origin_id,a.group_id,a.processed_file_path as file_path,a.paper_no,a.tenant_id,a.template_id,a.process_id, 1234 as root_pipeline_id\n" + + "\t\t FROM info.paper_itemizer a\n" + + "\t\t where origin_id ='INT-146'") + .build(); + + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.autorotation.url", "http://192.168.10.245:8200/v2/models/auto-rotator-service/versions/1/infer"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size", "1"), + Map.entry("gen_group_id.group_id", "1"), + Map.entry("auto.rotation.consumer.API.count", "1"), + Map.entry("write.batch.size", "1"))); + + AutoRotationAction action1 = new AutoRotationAction(actionExecutionAudit, log, action); + action1.execute(); + + + } + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/DataExtractionActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/DataExtractionActionTest.java new file mode 100644 index 00000000..aac3f97e --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/DataExtractionActionTest.java @@ -0,0 +1,61 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.DataExtractionAction; +import in.handyman.raven.lib.model.DataExtraction; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +class DataExtractionActionTest { + @Test + void dataExtraction() throws Exception { + DataExtraction dataExtraction = DataExtraction.builder() + .name("data extraction after copro optimization") + .resourceConn("intics_agadia_db_conn") + .endPoint("${copro.data-extraction.url}") + .condition(true) + .processId("138980184199100180") + .resultTable("info.data_extraction") + .querySet("select 'INT-1' as origin_id, 1 as group_id,'/data/output/auto_rotation/test.jpeg' as file_path, 1 as paper_no, 1 as tenant_id, 1 as template_id, 1 as root_pipeline_id, '138980184199100180' as process_id from info.paper_itemizer where status='COMPLETED' and origin_id='INT-1';;") + .build(); + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.data-extraction.url", "http://192.168.10.245:8300/v2/models/text-extractor-service/versions/1/infer"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size", "5"), + Map.entry("okhttp.client.timeout", "20"), + Map.entry("text.extraction.consumer.API.count", "1"), + Map.entry("write.batch.size", "5"))); + DataExtractionAction dataExtractionAction = new DataExtractionAction(actionExecutionAudit, log, dataExtraction); + dataExtractionAction.execute(); + + } + + + @Test + void tritonServer() throws Exception { + DataExtraction dataExtraction = DataExtraction.builder() + .name("data extraction after copro optimization") + .resourceConn("intics_zio_db_conn") + .condition(true) + .endPoint("http://triton.copro.data.extraction:8300/v2/models/text-extractor-service/versions/1/infer") + .processId("138980184199100180") + .resultTable("info.data_extraction") + .querySet("SELECT 1 as process_id, 1 as tenant_id, 1 as template_id, 1 as group_id, 'INT-1' as origin_id, 1 as paper_no, '/data/output/21/preprocess/autorotation/auto_rotation/Humana_Form_1_0.jpg' as file_path, 1 as root_pipeline_id, 'model' as template_name") + .build(); + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.data-extraction.url", "http://triton.copro.data.extraction:8300/v2/models/text-extractor-service/versions/1/infer"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size", "5"), + Map.entry("okhttp.client.timeout", "20"), + Map.entry("text.extraction.consumer.API.count", "1"), + Map.entry("write.batch.size", "5"))); + DataExtractionAction dataExtractionAction = new DataExtractionAction(actionExecutionAudit, log, dataExtraction); + dataExtractionAction.execute(); + + } + + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/FileMergerPdfActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/FileMergerPdfActionTest.java new file mode 100644 index 00000000..8ef1a7fb --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/FileMergerPdfActionTest.java @@ -0,0 +1,66 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; + +import in.handyman.raven.lib.FileMergerPdfAction; +import in.handyman.raven.lib.model.FileMergerPdf; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +public class FileMergerPdfActionTest { + + @Test + void tritonServer() throws Exception { + FileMergerPdf filemergerPdf = FileMergerPdf.builder() + .condition(true) + .name("FileMergerPdf") + .outputDir("/data/output") + .outputTable("alchemy_response.cleaned_pdf_info") + .querySet("SELECT 'oxy_org1' as origin_id ,replace(concat('cleaned_pdf_','INT-1','.pdf'),'-','_') as output_file_name, 1 as group_id, ARRAY['/data/output/pdf_to_image/test/test_0.jpg','/data/output/pdf_to_image/test/test_1.jpg'] as filePaths, 1 as tenant_id, 1 as root_pipeline_id, 138980184199100180 as process_id;") + .resourceConn("intics_zio_db_conn") + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.file-merger.url","http://192.168.10.245:9300/v2/models/merger-service/versions/1/infer"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","1"), + Map.entry("file.merger.consumer.API.count","1"), + Map.entry("gen_group_id.group_id","1"), + Map.entry("write.batch.size","1"))); + + + + FileMergerPdfAction fileMergerPdfAction=new FileMergerPdfAction(actionExecutionAudit,log,filemergerPdf); + fileMergerPdfAction.execute(); + } + + @Test + void tritonServer1() throws Exception { + FileMergerPdf filemergerPdf = FileMergerPdf.builder() + .condition(true) + .name("FileMergerPdf") + .outputDir("/data/output") + .outputTable("alchemy_response.cleaned_pdf_info") + .querySet("SELECT origin_id, output_file_name, group_id, filepaths, tenant_id, root_pipeline_id, process_id\n" + + "FROM macro.cleaned_pdf_input;") + .resourceConn("intics_zio_db_conn") + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.file-merger.url","http://192.168.10.245:9300/v2/models/merger-service/versions/1/infer"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","1"), + Map.entry("file.merger.consumer.API.count","1"), + Map.entry("gen_group_id.group_id","1"), + Map.entry("write.batch.size","1"))); + + + + FileMergerPdfAction fileMergerPdfAction=new FileMergerPdfAction(actionExecutionAudit,log,filemergerPdf); + fileMergerPdfAction.execute(); + } + +} diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/HwDetectionActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/HwDetectionActionTest.java new file mode 100644 index 00000000..311589da --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/HwDetectionActionTest.java @@ -0,0 +1,55 @@ +package in.handyman.raven.lib.tritonservertest; +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.HwDetectionAction; +import in.handyman.raven.lib.model.HwDetection; +import org.junit.jupiter.api.Test; + +import static org.reflections.Reflections.log; +class HwDetectionActionTest { + @Test + void execute() throws Exception { + HwDetection hwDetection=HwDetection.builder() + .name("paper classification macro") + .condition(true) + .resourceConn("intics_agadia_db_conn") + .directoryPath("/home/sanjeeya.v@zucisystems.com/workspace/updated_jupyter/output") + .modelPath("/home/sanjeeya.v@zucisystems.com/Documents/agadia/pr2/v1/hw_detection_v2.0.pth") + .querySet("SELECT 'INT-1' as originId, '1234567' as preprocessedFileId, 1 as paperNo,'/home/sanjeeya.v@zucisystems.com/workspace/updated_jupyter/Humana_Form_1_1.jpg' as filePath, '123456' as createdUserId, '123456y' as lastUpdatedUserId, '12345643' as tenantId,-1 as templateId, 90.00 as modelScore, 123 as modelId;") + .build(); + final ActionExecutionAudit action = ActionExecutionAudit.builder() + .build(); + action.setRootPipelineId(11011L); + action.getContext().put("copro.hw-detection.url", "http://localhost:10189/copro/paper-classification/hw-detection"); + action.getContext().put("read.batch.size", "1"); + action.getContext().put("consumer.API.count", "1"); + action.getContext().put("write.batch.size", "1"); + + HwDetectionAction hwDetectionAction=new HwDetectionAction(action,log,hwDetection); + hwDetectionAction.execute(); + } + + + @Test + void tritonServer() throws Exception { + HwDetection hwDetection=HwDetection.builder() + .name("paper classification macro") + .condition(true) + .resourceConn("intics_agadia_db_conn") + .directoryPath("/data/output") + .modelPath("") + .querySet("SELECT 'INT-1' as originId, '1234567' as preprocessedFileId, 1 as paperNo,'/data/input/elixir-2page/SYNT_166838894_c1.pdf' as filePath, '123456' as createdUserId, '123456y' as lastUpdatedUserId, '12345643' as tenantId,-1 as templateId, 90.00 as modelScore, 123 as modelRegistryId;") + .build(); + final ActionExecutionAudit action = ActionExecutionAudit.builder() + .build(); + action.setRootPipelineId(11011L); + action.getContext().put("copro.hw-detection.url", "http://localhost:8600/v2/models/paper-classifier-service/versions/1/infer"); + action.getContext().put("read.batch.size", "1"); + action.getContext().put("paper.classification.consumer.API.count", "1"); + action.getContext().put("write.batch.size", "1"); + action.getContext().put("okhttp.client.timeout", "10"); + + HwDetectionAction hwDetectionAction=new HwDetectionAction(action,log,hwDetection); + hwDetectionAction.execute(); + } + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/IntelliMatchActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/IntelliMatchActionTest.java new file mode 100644 index 00000000..e83e18f0 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/IntelliMatchActionTest.java @@ -0,0 +1,33 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.Intellimatch; +import in.handyman.raven.lib.IntellimatchAction; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +public class IntelliMatchActionTest { + + @Test + void tritonServer() throws Exception { + + final Intellimatch action = Intellimatch.builder() + .condition(true) + .name("intellimatch") + .resourceConn("intics_agadia_db_conn") + .matchResult("") + .build(); + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.intelli-match.url", "http://localhost:9200/v2/models/cos-service/versions/1/infer"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size", "5"), + Map.entry("consumer.intellimatch.API.count", "1"), + Map.entry("write.batch.size", "5"))); + + IntellimatchAction action1 = new IntellimatchAction(actionExecutionAudit, log, action); + action1.execute(); + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/MasterDataComparisonActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/MasterDataComparisonActionTest.java new file mode 100644 index 00000000..7fd420f2 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/MasterDataComparisonActionTest.java @@ -0,0 +1,35 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.IntellimatchAction; +import in.handyman.raven.lib.model.MasterdataComparison; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; +@Slf4j +public class MasterDataComparisonActionTest { + + @Test + void tritonServer() throws Exception { + + final MasterdataComparison build = MasterdataComparison.builder() + .condition(true) + .name("MasterDataComparison") + .resourceConn("intics_agadia_db_conn") + .matchResult("") + .build(); + + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.masterdata-comparison.url", "http://localhost:9200/v2/models/cos-service/versions/1/infer"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size", "5"), + Map.entry("consumer.masterdata.API.count", "1"), + Map.entry("write.batch.size", "5"))); + + IntellimatchAction action1 = new IntellimatchAction(actionExecutionAudit, log, build); + action1.execute(); + } +} + + diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/NerAdapterActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/NerAdapterActionTest.java new file mode 100644 index 00000000..9ef9c639 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/NerAdapterActionTest.java @@ -0,0 +1,79 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.NerAdapter; +import in.handyman.raven.lib.NerAdapterAction; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +class NerAdapterActionTest { + + @Test + void testCase() throws Exception { + NerAdapter nerAdapter= NerAdapter.builder() + .name("ner") + .condition(true) + .resourceConn("intics_agadia_db_conn") + .resultSet("\n" + + " SELECT dp.sor_item_name as sor_key, dp.sor_question as question, dp.answer as input_value, '12' as weight,\n" + + " si.allowed_adapter , si.restricted_adapter ,'124567' as process_id,\n" + + " si.word_limit , si.word_threshold ,\n" + + " si.char_limit , si.char_threshold ,\n" + + " si.validator_threshold , si.allowed_characters ,\n" + + " si.comparable_characters, si.restricted_adapter_flag,\n" + + " dp.origin_id ,dp.paper_no ,dp.group_id,\n" + + " dp.created_user_id, dp.tenant_id,dp.b_box\n" + + " FROM sor_transaction.vqa_transaction dp\n" + + " JOIN sor_meta.sor_item si ON si.sor_item_name = dp.sor_item_name\n" + + " WHERE dp.origin_id IN ('INT-1') AND si.allowed_adapter ='ner'\n") + .resultTable("sor_transaction.adapter_result_123456") + + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.text-validation.url","http://localhost:10190/copro/text-validation/patient"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.setRootPipelineId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + NerAdapterAction action=new NerAdapterAction(actionExecutionAudit,log,nerAdapter); + action.execute(); + } + + + + @Test + void tritonServer() throws Exception { + NerAdapter nerAdapter= NerAdapter.builder() + .name("ner") + .condition(true) + .resourceConn("intics_agadia_db_conn") + .resultSet("SELECT 'patient_name' as sor_key, 'what is provider name' as question, 'Christopher' as input_value, 150 as weight, allowed_adapter,restricted_adapter, '12345' as process_id" + + " ,word_limit, word_threshold, char_limit, char_threshold ,validator_threshold, allowed_characters, comparable_characters, restricted_adapter_flag,'INT-1' as origin_id ,1 as paper_no ,1 as group_id" + + " ,1 as created_user_id, 1 as tenant_id,'{\"left\":\"1234\"}' as b_box from sor_meta.sor_item where sor_item_name='patient_name'") + .resultTable("sor_transaction.adapter_result_12345") + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.text-validation.url","http://192.168.10.245:9100/v2/models/ner-service/versions/1/infer"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("validaiton.char-limit-count","1"), + Map.entry("validation.multiverse-mode","true"), + Map.entry("validation.restricted-answers","-"), + Map.entry("ner.consumer.API.count","1"), + Map.entry("write.batch.size","5"), + Map.entry("gen_group_id.group_id","1"), + Map.entry("paper.itemizer.consumer.API.count", "1") + )); + + NerAdapterAction action=new NerAdapterAction(actionExecutionAudit,log,nerAdapter); + action.execute(); + } + +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/NoiseModelsActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/NoiseModelsActionTest.java new file mode 100644 index 00000000..a2261f43 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/NoiseModelsActionTest.java @@ -0,0 +1,49 @@ +package in.handyman.raven.lib.tritonservertest; + + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.IntegratedNoiseModelApiAction; +import in.handyman.raven.lib.model.IntegratedNoiseModelApi; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +public class NoiseModelsActionTest { + @Test + void tritonServer() throws Exception { + + final IntegratedNoiseModelApi build = IntegratedNoiseModelApi.builder() + .condition(true) + .processId("123") + .name("noise-detection-model") + .endPoint("http://0.0.0.0:10199/copro/Noise-Detection") + .resourceConn("intics_zio_db_conn") + .outputTable("integrated_noise_model.noise_model_output_table") + .querySet("SELECT " + + "'/home/christopher.paulraj@zucisystems.com/Downloads/blank_page.png' as input_file_path, " + + "'INT-1' as origin_id, " + + "'/home/christopher.paulraj@zucisystems.com/Pictures/output' as output_dir ,"+ + "1 as file_id, " + + "1 as group_id, " + + "1 as paper_no, " + + "1 as process_id, " + + "1 as tenant_id") + .build(); + + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.noise-detection.url", "http://0.0.0.0:10199/copro/Noise-Detection"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size", "1"), + Map.entry("noise.consumer.API.count", "1"), + Map.entry("write.batch.size", "1"), + Map.entry("actionId","1"), + Map.entry("triton.request.activator","false"), + Map.entry("okhttp.client.timeout", "10"))); + + IntegratedNoiseModelApiAction action1 = new IntegratedNoiseModelApiAction(actionExecutionAudit,log,build); + action1.execute(); + + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/PaperItemizerActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/PaperItemizerActionTest.java new file mode 100644 index 00000000..30ab116a --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/PaperItemizerActionTest.java @@ -0,0 +1,67 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.PaperItemizerAction; +import in.handyman.raven.lib.model.PaperItemizer; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +class PaperItemizerActionTest { + + @Test + void paperItemizerTest() throws Exception { + PaperItemizer paperItemizer = PaperItemizer.builder() + .name("Data extraction macro test after copro optimization") + .resourceConn("intics_agadia_db_conn") + .condition(true) + .processId("138980184199100180") + .resultTable("info.") + .endpoint("${copro.paper-itemizer.url}") + .outputDir("/home/anandh.andrews@zucisystems.com/W-space/pr1-lambdas/agadia/output/") + .querySet(" SELECT a.origin_id, a.group_id ,c.file_path,b.tenant_id,b.document_id as template_id,a.producer_process_id as process_id \n" + + " from info.preprocess_payload_queue a \n" + + " join info.source_of_origin b on a.origin_id=b.origin_id \n" + + " join info.asset c on b.file_id=c.file_id \n" + + " where a.status='IN_PROGRESS'\n") + .build(); + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("copro.paper-itemizer.url", "http://localhost:10181/copro/denoise/paperiterator"), + Map.entry("read.batch.size", "5"), + Map.entry("consumer.API.count", "1"), + Map.entry("write.batch.size", "5"))); + + PaperItemizerAction paperItemizerAction = new PaperItemizerAction(actionExecutionAudit, log, paperItemizer); + paperItemizerAction.execute(); + } + + + @Test + void tritonServer() throws Exception { + PaperItemizer paperItemizer = PaperItemizer.builder() + .name("paper itemizer macro test after copro optimization") + .resourceConn("intics_zio_db_conn") + .condition(true) + .processId("138980184199100180") + .endpoint("${copro.paper-itemizer.url}") + .resultTable("info.paper_itemizer") + .outputDir("/data/output") + .querySet("SELECT 'INT-1' AS origin_id, 1 AS group_id, '/data/multipart-files/139164742559210010/144313556-7-Bill-of-Landing.pdf' AS file_path, 1 AS tenant_id, 'TMP-1' AS template_id, '138980184199100180' AS process_id \n") + .build(); + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("copro.paper-itemizer.url", "http://192.168.10.245:8100/v2/models/paper-iterator-service/versions/1/infer"), + Map.entry("gen_group_id.group_id", "1"), + Map.entry("triton.request.activator", "false"), + Map.entry("paper.itemizer.consumer.API.count", "1"), + Map.entry("read.batch.size", "5"), + Map.entry("write.batch.size", "5"))); + + PaperItemizerAction paperItemizerAction = new PaperItemizerAction(actionExecutionAudit, log, paperItemizer); + paperItemizerAction.execute(); + } +} + diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/PharseMatchActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/PharseMatchActionTest.java new file mode 100644 index 00000000..30667657 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/PharseMatchActionTest.java @@ -0,0 +1,49 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.PhraseMatchPaperFilterAction; +import in.handyman.raven.lib.model.PhraseMatchPaperFilter; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + + +@Slf4j +public class PharseMatchActionTest { + @Test + void tritonServer() throws Exception { + + final PhraseMatchPaperFilter build = PhraseMatchPaperFilter.builder() + .condition(true) + .name("Test PhraseMatch") + .processID("12345") + .endPoint("${copro.paper-filtering-phrase-match.url}") + .readBatchSize("1") + .threadCount("1") + .writeBatchSize("1") + .querySet("select 1 as paper_no, 'drug name, patient name,prescriber name' as page_content, 1 as group_id, 'INT-1' as origin_id, \n" + + "'1234' as process_id,1 as sor_container_id, 'Patient' as truth_entity, \n" + +"jsonb_object_agg(t.truth_entity,t.keys_to_filter) as truth_placeholder\n" + + " from (select te.sor_container_id as sor_container_id,\n" + + " te.truth_entity as truth_entity,te.sor_truth_entity_id,\n" + + " jsonb_agg(st.truth_entity) as keys_to_filter\n" + + " from sor_meta.truth_entity_placeholder st\n" + + " join sor_meta.truth_entity te on te.truth_entity= st.truth_entity\n" + + " group by te.sor_container_id,te.sor_truth_entity_id,te.truth_entity )t") + .resourceConn("intics_zio_db_conn") + .build(); + + + final ActionExecutionAudit action = ActionExecutionAudit.builder() + .build(); + action.setRootPipelineId(11011L); + action.getContext().put("copro.paper-filtering-phrase-match.url", "http://192.168.10.245:8500/v2/models/pm-service/versions/1/infer"); + action.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("okhttp.client.timeout","20"), + Map.entry("write.batch.size","5"))); + + final PhraseMatchPaperFilterAction zeroShotClassifierPaperFilterAction = new PhraseMatchPaperFilterAction(action, log, build); + zeroShotClassifierPaperFilterAction.execute(); + } +} diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/QrExtractionActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/QrExtractionActionTest.java new file mode 100644 index 00000000..095f6fe1 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/QrExtractionActionTest.java @@ -0,0 +1,43 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.QrExtractionAction; +import in.handyman.raven.lib.model.QrExtraction; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +public class QrExtractionActionTest { + + @Test + void tritonServer() throws Exception { + + final QrExtraction build = QrExtraction.builder() + + .condition(true) + .name("qr-extraction") + .resourceConn("intics_zio_db_conn") + .processId("1234") + .endPoint("http://192.168.10.248:8700/v2/models/qr-service/versions/1/infer") + .outputTable("qr_extraction.qr_extraction_result_1234") + .querySet("SELECT '/data/output/34/preprocess/autorotation/auto_rotation/Humana_Form_1_1.jpg' as file_path, 'ORIGIN-1' as origin_id, 1 as file_id, 1 as paper_no, 1 as group_id, 1 as root_pipeline_id") + .build(); + + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.qr-attribution.url", "http://192.168.10.245:8700/v2/models/qr-service/versions/1/infer"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size", "5"), + Map.entry("qr.consumer.API.count", "1"), + Map.entry("write.batch.size", "5"), + Map.entry("okhttp.client.timeout", "10"))); + + + QrExtractionAction action1 = new QrExtractionAction(actionExecutionAudit, log, build); + action1.execute(); + + } +} + + diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/TemplateDetectionActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/TemplateDetectionActionTest.java new file mode 100644 index 00000000..808a0c89 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/TemplateDetectionActionTest.java @@ -0,0 +1,66 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.model.TemplateDetection; +import in.handyman.raven.lib.TemplateDetectionAction; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +class TemplateDetectionActionTest { + + @Test + public void detectionAction() throws Exception { + + TemplateDetection templateDetection=TemplateDetection.builder() + .condition(true) + .name("template detection") + .coproUrl("http://localhost:10193/copro/attribution/kvp-printed-old") + .inputTable("info.auto_rotation") + .ouputTable("macro.template_detection_response_12345") + .resourceConn("intics_agadia_db_conn") + .processId("12345") + .querySet("select 'INT-1' as origin_id , 1 as paper_no ,1 as group_id , '/data/output/pdf_to_image/SYNT_166838894_c1/SYNT_166838894_c1_0.jpg' as file_path,'TNT-1' as tenant_id\n" + + ",'TMP-1' as template_id ,134 as process_id ,12435 as root_pipeline_id , '{\"what is patient name\"}' as questions\n" + ) + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.template.detection.url","http://localhost:10182/copro/preprocess/text_extraction"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + TemplateDetectionAction templateDetectionAction=new TemplateDetectionAction(actionExecutionAudit, log,templateDetection); + templateDetectionAction.execute(); + } + + + @Test + void tritonServer() throws Exception { + TemplateDetection templateDetection=TemplateDetection.builder() + .condition(true) + .name("template detection") + .coproUrl("http://192.168.10.245:8900/v2/models/ernie-service/versions/1/infer") + .inputTable("info.auto_rotation") + .ouputTable("macro.template_detection_response_12345") + .resourceConn("intics_agadia_db_conn") + .processId("12345") + .querySet("select 'INT-1' as origin_id , 1 as paper_no ,1 as group_id , '/data/output/pdf_to_image/SYNT_166838894_c1/SYNT_166838894_c1_0.jpg' as file_path,1 as tenant_id\n" + + ",'TMP-1' as template_id ,134 as process_id ,12435 as root_pipeline_id , ARRAY['what is logo'] as questions" ) + .build(); + + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.template.detection.url","http://192.168.10.245:8900/v2/models/ernie-service/versions/1/infer"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + TemplateDetectionAction templateDetectionAction=new TemplateDetectionAction(actionExecutionAudit, log,templateDetection); + templateDetectionAction.execute(); + } + } \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/TrinityModelActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/TrinityModelActionTest.java new file mode 100644 index 00000000..4cf5d187 --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/TrinityModelActionTest.java @@ -0,0 +1,133 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.TrinityModelAction; +import in.handyman.raven.lib.model.TrinityModel; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +class TrinityModelActionTest { + + @Test + void executeHandwritten() throws Exception { + + TrinityModel trinityModel=TrinityModel.builder() + .name("DIE model testing") + .condition(true) + .outputDir("dir") + .requestUrl("http://192.168.10.239:10189/copro/attribution/kvp-docnet") + .resourceConn("intics_agadia_db_conn") + .forkBatchSize("1") + .questionSql(" SELECT a.question, a.file_path, '' as paperType FROM\n" + + "\t macro.sor_transaction_tqa_49254 a\n" + + "\t join sor_transaction.sor_transaction_payload_queue st on st.origin_id=a.origin_id\n" + + "\t where a.document_type='Handwritten'; ") + .responseAs("sor_transaction_tqa_49254") + .build(); + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.trinity-attribution.handwritten.url","http://copro.valuation:10189/copro/attribution/kvp-docnet"); + actionExecutionAudit.getContext().put("okhttp.client.timeout","20"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","1"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + TrinityModelAction trinityModelAction=new TrinityModelAction(actionExecutionAudit,log,trinityModel); + trinityModelAction.execute(); + } + + + + @Test + void executePrinted() throws Exception { + + TrinityModel trinityModel=TrinityModel.builder() + .name("DIE model testing") + .condition(true) + .outputDir("dir") + .requestUrl("http://copro.impira:10193/copro/attribution/kvp-attribution-dqa-new") + .resourceConn("intics_zio_db_conn") + .forkBatchSize("1") + .questionSql(" SELECT 'what is patient name ' as question, '/data/output/22/preprocess/autorotation/auto_rotation/Humana_Form_1_0.jpg' as file_path, 'Printed' as paperType;\n") + .responseAs("sor_transaction_tqa_49254") + .build(); + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.trinity-attribution.printed.url","http://copro.impira:10193/copro/attribution/kvp-attribution-dqa-new"); + actionExecutionAudit.getContext().put("okhttp.client.timeout","20"); + actionExecutionAudit.getContext().put("triton.request.activator","true"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","1"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.setRootPipelineId(56L); + actionExecutionAudit.setActionId(12L); + + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + TrinityModelAction trinityModelAction=new TrinityModelAction(actionExecutionAudit,log,trinityModel); + trinityModelAction.execute(); + } + + + + @Test + void executeTritonServerHandwritten() throws Exception { + + + TrinityModel trinityModel=TrinityModel.builder() + .name("DIE model testing") + .condition(true) + .outputDir("dir") + .requestUrl("http://192.168.10.245:8900/v2/models/ernie-service/versions/1/infer") + .resourceConn("intics_agadia_db_conn") + .forkBatchSize("1") + .questionSql(" SELECT question,'/data/output/pdf_to_image/SYNT_166838894_c1/SYNT_166838894_c1_1.jpg' as file_path, 'Handwritten' paperType FROM\n" + + "\t sor_meta.sor_question where document_id='TMP-AGD-001'; ") + .responseAs("sor_transaction_tqa_12345") + .build(); + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.trinity-attribution.printed.url","http://192.168.10.245:8900/v2/models/ernie-service/versions/1/infer"); + actionExecutionAudit.getContext().put("okhttp.client.timeout","20"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","1"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + TrinityModelAction trinityModelAction=new TrinityModelAction(actionExecutionAudit,log,trinityModel); + trinityModelAction.execute(); + } + + + + @Test + void executeTritonServerPrinted() throws Exception { + + TrinityModel trinityModel=TrinityModel.builder() + .name("DIE model testing") + .condition(true) + .outputDir("dir") + .requestUrl("http://192.168.10.245:8900/v2/models/ernie-service/versions/1/infer") + .resourceConn("intics_agadia_db_conn") + .forkBatchSize("1") + .questionSql(" SELECT question,'/data/output/pdf_to_image/SYNT_166838894_c1/SYNT_166838894_c1_1.jpg' as file_path, 'Printed' paperType FROM\n" + + "\t sor_meta.sor_question where a.document_id='TMP-AGD-001'; ") + .responseAs("sor_transaction_tqa_12345") + .build(); + ActionExecutionAudit actionExecutionAudit=new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.trinity-attribution.printed.url","http://192.168.10.245:8900/v2/models/ernie-service/versions/1/infer"); + actionExecutionAudit.getContext().put("okhttp.client.timeout","20"); + actionExecutionAudit.getContext().put("gen_group_id.group_id","1"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size","5"), + Map.entry("consumer.API.count","1"), + Map.entry("write.batch.size","5"))); + + TrinityModelAction trinityModelAction=new TrinityModelAction(actionExecutionAudit,log,trinityModel); + trinityModelAction.execute(); + } +} \ No newline at end of file diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/UrgencyTriageModelActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/UrgencyTriageModelActionTest.java new file mode 100644 index 00000000..6a3bc2be --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/UrgencyTriageModelActionTest.java @@ -0,0 +1,41 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.UrgencyTriageModelAction; +import in.handyman.raven.lib.model.UrgencyTriageModel; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +public class UrgencyTriageModelActionTest { + + @Test + void tritonServer() throws Exception { + + final UrgencyTriageModel urgencyTriageModel = UrgencyTriageModel.builder() + .condition(true) + .name("urgency triage") + .outputDir("/data/output/") + .querySet("SELECT 'Int-1' as originId, '1234567' as preprocessedFileId,1 as paperNo, '/data/input/test_qr.jpg' as inputFilePath,\n" + + " 1 as createdUserId, 1 as lastUpdatedUserId,\n" + + " 1 as tenantId,'TMP-1' as templateId, 12345 as processId,123 as modelId, 1 as groupId,\n" + + " 12345 as root_pipeline_id") + .resourceConn("intics_agadia_db_conn") + .build(); + + + ActionExecutionAudit actionExecutionAudit = new ActionExecutionAudit(); + actionExecutionAudit.getContext().put("copro.urgency-triage-model.url", "http://192.168.10.245:8800/v2/models/ut-service/versions/1/infer"); + actionExecutionAudit.setProcessId(138980079308730208L); + actionExecutionAudit.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size", "5"), + Map.entry("ut.consumer.API.count", "1"), + Map.entry("write.batch.size", "5"))); + + UrgencyTriageModelAction action1 = new UrgencyTriageModelAction(actionExecutionAudit, log, urgencyTriageModel); + action1.execute(); + + + } +} diff --git a/src/test/java/in/handyman/raven/lib/tritonservertest/ZeroShotClassifierActionTest.java b/src/test/java/in/handyman/raven/lib/tritonservertest/ZeroShotClassifierActionTest.java new file mode 100644 index 00000000..236be35d --- /dev/null +++ b/src/test/java/in/handyman/raven/lib/tritonservertest/ZeroShotClassifierActionTest.java @@ -0,0 +1,117 @@ +package in.handyman.raven.lib.tritonservertest; + +import in.handyman.raven.lambda.doa.audit.ActionExecutionAudit; +import in.handyman.raven.lib.PhraseMatchPaperFilterAction; +import in.handyman.raven.lib.ZeroShotClassifierPaperFilterAction; +import in.handyman.raven.lib.model.PhraseMatchPaperFilter; +import in.handyman.raven.lib.model.ZeroShotClassifierPaperFilter; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +@Slf4j +class ZeroShotClassifierActionTest { + + @Test + void execute() throws Exception { + + final ZeroShotClassifierPaperFilter build = ZeroShotClassifierPaperFilter.builder() + .condition(true) + .name("Test ZeroShotClassifier") + .processID("1234") + .querySet("select 1 as paper_no, 'drug name, patient name,prescriber name' as page_content, 1 as group_id, 'INT-1' as origin_id, \n" + + "'1234' as process_id,1 as sor_container_id, 'Patient' as truth_entity, \n" + + "jsonb_object_agg(t.truth_entity,t.keys_to_filter) as truth_placeholder\n" + + " from (select te.sor_container_id as sor_container_id,\n" + + " te.truth_entity as truth_entity,te.sor_truth_entity_id,\n" + + " jsonb_agg(st.truth_entity) as keys_to_filter\n" + + " from sor_meta.sor_truth_entity_placeholder st\n" + + " join sor_meta.sor_truth_entity te on te.truth_entity= st.truth_entity\n" + + " group by te.sor_container_id,te.sor_truth_entity_id,te.truth_entity )t") + .resourceConn("intics_agadia_db_conn") + .build(); + + + final ActionExecutionAudit action = ActionExecutionAudit.builder() + .build(); + action.setRootPipelineId(11011L); + action.getContext().put("copro.paper-filtering-zero-shot-classifier.url", "http://localhost:10189/copro/filtering/zero_shot_classifier"); + + final ZeroShotClassifierPaperFilterAction zeroShotClassifierPaperFilterAction = new ZeroShotClassifierPaperFilterAction(action, log, build); + zeroShotClassifierPaperFilterAction.execute(); + } + + + @Test + void executePhraseMatch() throws Exception { + + final PhraseMatchPaperFilter build = PhraseMatchPaperFilter.builder() + .condition(true) + .name("Test PhraseMatch") + .processID("1234") + .querySet("select sot.paper_no, sot.content as page_content, sot.group_id, sot.origin_id, \n" + + "'1234' as process_id,t.sor_container_id,t.truth_entity, \n" + + "t.keys_to_filter from (select ste.sor_container_id as sor_container_id, \n" + + "ste.truth_entity as truth_entity, \n" + + "jsonb_agg(st.synonym) as keys_to_filter\n" + + "from sor_meta.sor_tsynonym st \n" + + "inner join sor_meta.sor_item_truth_entity_mapping sitem \n" + + "on sitem.sor_item_name = st.sor_item_name \n" + + "and sitem.sor_truth_mapping_id = st.sor_truth_mapping_id \n" + + "inner join sor_meta.sor_truth_entity ste \n" + + "on ste.truth_entity = sitem.truth_entity \n" + + "where st.is_paper_filter_candidate ='True'\n" + + "group by ste.sor_container_id,ste.truth_entity )t\n" + + "cross join info.source_of_truth sot\n" + + "where sot.origin_id ='INT-1' limit 2;") + .resourceConn("intics_agadia_db_conn") + .build(); + + + final ActionExecutionAudit action = ActionExecutionAudit.builder() + .build(); + action.setRootPipelineId(11011L); + action.getContext().put("copro.paper-filtering-phrase-match.url", "http://localhost:10189/copro/filtering/phrase_match"); + + final PhraseMatchPaperFilterAction zeroShotClassifierPaperFilterAction = new PhraseMatchPaperFilterAction(action, log, build); + zeroShotClassifierPaperFilterAction.execute(); + } + + @Test + void tritonServer() throws Exception { + final ZeroShotClassifierPaperFilter build = ZeroShotClassifierPaperFilter.builder() + .condition(true) + .name("Test ZSC") + .processID("12345") + .readBatchSize("1") + .threadCount("1") + .writeBatchSize("1") + .querySet("select 1 as paper_no, 'drug name, patient name,prescriber name' as page_content, 1 as group_id, 'INT-1' as origin_id, \n" + + "'1234' as process_id,1 as sor_container_id, 'Patient' as truth_entity, \n" + + "jsonb_object_agg(t.truth_entity,t.keys_to_filter) as truth_placeholder\n" + + " from (select te.sor_container_id as sor_container_id,\n" + + " te.truth_entity as truth_entity,te.sor_truth_entity_id,\n" + + " jsonb_agg(st.truth_entity) as keys_to_filter\n" + + " from sor_meta.sor_truth_entity_placeholder st\n" + + " join sor_meta.sor_truth_entity te on te.truth_entity= st.truth_entity\n" + + " group by te.sor_container_id,te.sor_truth_entity_id,te.truth_entity )t") + .resourceConn("intics_agadia_db_conn") + .build(); + + + final ActionExecutionAudit action = ActionExecutionAudit.builder() + .build(); + action.setRootPipelineId(11011L); + action.getContext().put("copro.paper-filtering-zero-shot-classifier.url", "http://192.168.10.245:8400/v2/models/zsc-service/versions/1/infer"); + action.getContext().putAll(Map.ofEntries(Map.entry("read.batch.size", "5"), + Map.entry("okhttp.client.timeout", "20"), + Map.entry("write.batch.size", "5"))); + + + final ZeroShotClassifierPaperFilterAction zeroShotClassifierPaperFilterAction = new ZeroShotClassifierPaperFilterAction(action, log, build); + zeroShotClassifierPaperFilterAction.execute(); + } + +} + diff --git a/handyman.raven/src/test/java/in/handyman/raven/util/UniqueIDTest.java b/src/test/java/in/handyman/raven/util/UniqueIDTest.java similarity index 100% rename from handyman.raven/src/test/java/in/handyman/raven/util/UniqueIDTest.java rename to src/test/java/in/handyman/raven/util/UniqueIDTest.java diff --git a/handyman.raven/src/test/resources/test-file/Example.lmd b/src/test/resources/test-file/Example.lmd similarity index 100% rename from handyman.raven/src/test/resources/test-file/Example.lmd rename to src/test/resources/test-file/Example.lmd diff --git a/src/test/resources/test-file/com.test.sharepoint.process.lmd b/src/test/resources/test-file/com.test.sharepoint.process.lmd new file mode 100644 index 00000000..25463f34 --- /dev/null +++ b/src/test/resources/test-file/com.test.sharepoint.process.lmd @@ -0,0 +1,24 @@ +process "com.test.sharepoint.process" +{ + try + { + sharepoint as "test download sharepoint" client-id "${client-id}" + tenant-id "${tenant-id}" client-secret "${client-secret}" org-name "${org-name}" + action-type "download" site-url "${site-url}" source-relative-path "Shared%20Documents/test" file-name "local_info.txt" + target-relative-path "/home/thamaraiselvi.p@zucisystems.com/Downloads/" using + { + } + sharepoint as "test upload sharepoint" client-id "${client-id}" + tenant-id "${tenant-id}" client-secret "${client-secret}" org-name "${org-name}" + action-type "upload" site-url "${site-url}" source-relative-path "/home/thamaraiselvi.p@zucisystems.com/Documents/" + file-name "local_info_upload.txt" target-relative-path "Shared%20Documents/test" using + { + } + } + catch + { + } + finally + { + } +} \ No newline at end of file diff --git a/handyman.raven/src/test/resources/test-file/cub.test.loadcsv.lmd b/src/test/resources/test-file/cub.test.loadcsv.lmd similarity index 100% rename from handyman.raven/src/test/resources/test-file/cub.test.loadcsv.lmd rename to src/test/resources/test-file/cub.test.loadcsv.lmd diff --git a/src/test/resources/test-file/init.sql b/src/test/resources/test-file/init.sql new file mode 100644 index 00000000..e69de29b diff --git a/src/test/resources/test-file/restapi.test.lmd b/src/test/resources/test-file/restapi.test.lmd new file mode 100644 index 00000000..b8127482 --- /dev/null +++ b/src/test/resources/test-file/restapi.test.lmd @@ -0,0 +1,58 @@ +process "test.restapi" +{ + + try { + + assign as "root" source "${intics_agadia}" using { + + "SELECT process_id as process_id, + batch_id as batch_id, + intics_reference_id as intics_reference_id, + fax_reference_id as fax_reference_id + FROM intics_agadia.add_fax_pipeline_audit;" + + } + + assign as "root2" source "${intics_agadia}" using { + + "SELECT concat_ws ('/','${parent_dir}','${root.process_id}','${root.batch_id}','${root.intics_reference_id}','${root.fax_reference_id}') as target_directory_path;" + + } + + + createDirectory as "creating directory" using { + + "${root2.target_directory_path}" + + } + + + checksum + as "generating checksum for sample" + file-path "/home/bharath.k@zucisystems.com/Documents/cub-lambdas-Icarus/1/12/123/1234" + file-name "a.zip" using { + + "SELECT 1" + + } + + fileSize + as "generating filesize for sample" + file-path "/home/bharath.k@zucisystems.com/Documents/cub-lambdas-Icarus/1/12/123/1234" + file-name "a.zip" using { + + "SELECT 1" + + } + + + } + + catch { + + } + + finally { + + } +} diff --git a/src/test/resources/test-file/sor.groupdetails.test.lmd b/src/test/resources/test-file/sor.groupdetails.test.lmd new file mode 100644 index 00000000..8760d99d --- /dev/null +++ b/src/test/resources/test-file/sor.groupdetails.test.lmd @@ -0,0 +1,61 @@ +process "test.sorgroupdetails" +{ + + try { + + sorGroupDetails as "sorgrp" on "intics_agadia_db_conn" keyfields "batch_id,intics_reference_id" + searchfields "Name,Member Namber,Patient Name" + groupbyfields "paper_no" targettable "response.patient_attribution_result_123" using {" + with temp as(select par.batch_id, par.intics_reference_id, par.paper_no, + attribution_response->>'keyName' as key_name, + json_array_elements_text(attribution_response->'attributionResult') as value + from response.patient_attribution_result par where + batch_id= 'INTICS-BATCH-143174' order by par.batch_id, par.intics_reference_id, par.paper_no) + select response.jsonb_combine( json_build_object(key_name, value )::jsonb ) op, paper_no, + batch_id,intics_reference_id + from temp group by batch_id, intics_reference_id,paper_no + order by batch_id, intics_reference_id,paper_no ; + "} + + /* assign as "root" source "${intics_agadia}" using { + "SELECT process_id as process_id, + batch_id as batch_id, + intics_reference_id as intics_reference_id, + fax_reference_id as fax_reference_id + FROM intics_agadia.add_fax_pipeline_audit;" + } + assign as "root2" source "${intics_agadia}" using { + "SELECT concat_ws ('/','${parent_dir}','${root.process_id}','${root.batch_id}', + '${root.intics_reference_id}','${root.fax_reference_id}') as target_directory_path;" + } + + createDirectory as "creating directory" using { + "${root2.target_directory_path}" + } + + checksum + as "generating checksum for sample" + file-path "/home/bharath.k@zucisystems.com/Documents/cub-lambdas-Icarus/1/12/123/1234" + file-name "a.zip" using { + "SELECT 1" + } + + fileSize + as "generating filesize for sample" + file-path "/home/bharath.k@zucisystems.com/Documents/cub-lambdas-Icarus/1/12/123/1234" + file-name "a.zip" using { + "SELECT 1" + } + */ + + + } + + catch { + + } + + finally { + + } +}