/* * 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 java.util.List; import org.drools.workbench.models.guided.dtable.backend.util.DataUtilities; import org.drools.workbench.models.guided.dtable.shared.model.ActionRetractFactCol52; import org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52; import org.drools.workbench.models.guided.dtable.shared.model.Pattern52; public class AbstractDecisionTableBuilder { protected final GuidedDecisionTable52 table = new GuidedDecisionTable52(); protected final List<Pattern52> patterns = new ArrayList<Pattern52>(); protected void addPattern( Pattern52 pattern ) { if ( !table.getConditions().contains( pattern ) ) { table.getConditions().add( pattern ); } } protected Pattern52 findPattern( String boundName, String factType ) { for ( Pattern52 pattern : patterns ) { if ( pattern.getBoundName().equals( boundName ) && pattern.getFactType().equals( factType ) ) { return pattern; } } Pattern52 pattern = new Pattern52(); pattern.setBoundName( boundName ); pattern.setFactType( factType ); patterns.add( pattern ); return pattern; } public AbstractDecisionTableBuilder withData( Object[][] data ) { table.setData( DataUtilities.makeDataLists( data ) ); return this; } public GuidedDecisionTable52 buildTable() { return table; } public AbstractDecisionTableBuilder withRetract() { final ActionRetractFactCol52 col52 = new ActionRetractFactCol52(); col52.setHeader( "retract header" ); table.getActionCols().add( col52 ); return this; } public Actions actionColumn() { return new Actions(); } public class Actions { public AbstractDecisionTableBuilder retract() { return withRetract(); } } }