/* * Copyright 2012 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.screens.dtablexls.backend.server.conversion.builders; import java.util.ArrayList; import java.util.List; import org.drools.decisiontable.parser.ActionType; import org.drools.decisiontable.parser.ActionType.Code; import org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52; import org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52; /** * Default description builder for when an explicit column has not been defined * in the XLS file. Descriptions are empty Strings. */ public class DefaultDescriptionBuilder implements GuidedDecisionTableSourceBuilderDirect { private List<DTCellValue52> values = new ArrayList<DTCellValue52>(); @Override public Code getActionTypeCode() { return ActionType.Code.DESCRIPTION; } @Override public void populateDecisionTable( final GuidedDecisionTable52 dtable, final int maxRowCount ) { if ( this.values.size() < maxRowCount ) { for ( int iRow = this.values.size(); iRow < maxRowCount; iRow++ ) { this.values.add( new DTCellValue52( "" ) ); } } for ( int iRow = 0; iRow < this.values.size(); iRow++ ) { dtable.getData().get( iRow ).add( 1, this.values.get( iRow ) ); } } @Override public void addCellValue( final int row, final int column, final String value ) { String description = (value != null && !value.isEmpty()) ? value : "Created from row " + ( row + 1 ) ; this.values.add( new DTCellValue52( description ) ); } @Override public void clearValues() { this.values.clear(); } @Override public boolean hasValues() { return this.values.size() > 0; } @Override public String getResult() { throw new UnsupportedOperationException( "DefaultDescriptionBuilder does not return DRL." ); } @Override public void addTemplate( final int row, final int col, final String content ) { throw new UnsupportedOperationException( "DefaultDescriptionBuilder does implement code snippets." ); } @Override public int getRowCount() { return values.size(); } }