/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.workbench.services.verifier.webworker.client.testutil; import java.util.ArrayList; import org.drools.workbench.models.datamodel.imports.Import; import org.drools.workbench.models.datamodel.oracle.DataType; import org.drools.workbench.services.verifier.core.main.Analyzer; public class AnalyzerBuilder extends ExtendedGuidedDecisionTableBuilder { private AnalyzerProvider analyzerProvider; public AnalyzerBuilder( final AnalyzerProvider analyzerProvider ) { super( "org.test", new ArrayList<Import>(), "mytable" ); this.analyzerProvider = analyzerProvider; } public Analyzer buildAnalyzer() { return analyzerProvider.getAnalyser( buildTable() ); } @Override public AnalyzerBuilder withConditionBRLColumn() { return (AnalyzerBuilder) super.withConditionBRLColumn(); } @Override public AnalyzerBuilder withActionBRLFragment() { return (AnalyzerBuilder) super.withActionBRLFragment(); } @Override public AnalyzerBuilder withNumericColumn( final String boundName, final String factType, final String field, final String operator ) { return (AnalyzerBuilder) super.withNumericColumn( boundName, factType, field, operator ); } @Override public AnalyzerBuilder withConditionBooleanColumn( final String boundName, final String factType, final String field, final String operator ) { return (AnalyzerBuilder) super.withConditionBooleanColumn( boundName, factType, field, operator ); } @Override public AnalyzerBuilder withConditionDoubleColumn( final String boundName, final String factType, final String field, final String operator ) { return (AnalyzerBuilder) super.withConditionDoubleColumn( boundName, factType, field, operator ); } @Override public AnalyzerBuilder withConditionIntegerColumn( final String boundName, final String factType, final String field, final String operator ) { return (AnalyzerBuilder) super.withConditionIntegerColumn( boundName, factType, field, operator ); } @Override public AnalyzerBuilder withStringColumn( final String boundName, final String factType, final String field, final String operator ) { return (AnalyzerBuilder) super.withStringColumn( boundName, factType, field, operator ); } @Override public AnalyzerBuilder withEnumColumn( final String boundName, final String factType, final String field, final String operator, final String valueList ) { return (AnalyzerBuilder) super.withEnumColumn( boundName, factType, field, operator, valueList ); } @Override public AnalyzerBuilder withActionSetField( final String boundName, final String factField, final String typeNumericInteger ) { return (AnalyzerBuilder) super.withActionSetField( boundName, factField, typeNumericInteger ); } @Override public AnalyzerBuilder withActionInsertFact( final String factType, final String boundName, final String factField, final String typeNumericInteger ) { return (AnalyzerBuilder) super.withActionInsertFact( factType, boundName, factField, typeNumericInteger ); } @Override public AnalyzerBuilder withData( final Object[][] data ) { return (AnalyzerBuilder) super.withData( data ); } public AnalyzerBuilder withApplicationApprovedColumn( final String operator ) { return withConditionBooleanColumn( "a", "Application", "approved", operator ); } public AnalyzerBuilder withApplicationApprovedSetField() { return withActionSetField( "a", "approved", DataType.TYPE_BOOLEAN ); } public AnalyzerBuilder withPersonAgeColumn( final String operator ) { return withConditionIntegerColumn( "a", "Person", "age", operator ); } public AnalyzerBuilder withAccountDepositColumn( final String operator ) { return withConditionDoubleColumn( "d", "Account", "deposit", operator ); } public AnalyzerBuilder withPersonNameColumn( final String operator ) { return withStringColumn( "a", "Person", "name", operator ); } public AnalyzerBuilder withPersonLastNameColumn( final String operator ) { return withConditionIntegerColumn( "a", "Person", "lastName", operator ); } public AnalyzerBuilder withPersonApprovedActionInsertFact() { return withActionInsertFact( "Person", "a", "approved", DataType.TYPE_STRING ); } public AnalyzerBuilder withPersonApprovedActionSetField() { return withActionSetField( "a", "approved", DataType.TYPE_STRING ); } public AnalyzerBuilder withPersonSalarySetFieldAction() { return withActionSetField( "a", "salary", DataType.TYPE_NUMERIC_INTEGER ); } public AnalyzerBuilder withPersonDescriptionSetActionField() { return withActionSetField( "a", "description", DataType.TYPE_STRING ); } public AnalyzerBuilder withPersonApprovedColumn( final String operator ) { return withConditionBooleanColumn( "a", "Person", "approved", operator ); } public Conditions conditionColumn() { return new Conditions(); } public class Conditions { public PersonFactType person( final String variableName ) { return new PersonFactType( variableName ); } } public class PersonFactType { private final String variableName; public PersonFactType( final String variableName ) { this.variableName = variableName; } public AbstractDecisionTableBuilder age( final String operator ) { return withConditionIntegerColumn( variableName, "Person", "age", operator ); } } }