CSVTable.java

package it.serendigity.maven.plugin.lifecycle.helper.output;

import java.util.Collection;

import it.serendigity.maven.plugin.lifecycle.helper.utils.TextUtils;
import it.serendigity.maven.plugin.lifecycle.helper.vo.MavenExecutionInfo;
import it.serendigity.maven.plugin.lifecycle.helper.vo.MavenExecutionPlanInfo;

public class CSVTable extends TxtOutput {

	private static final String COLUMN_SEPARATOR = ";";

	public CSVTable( MavenExecutionPlanInfo executionPlanInfo ) {
		super( executionPlanInfo );

	}

	@Override
	public String createTable()
	{
		super.createTable();

		StringBuilder builder = new StringBuilder();
		MavenExecutionPlanInfo info = getExecutionPlanInfo();
		if ( info.getMavenExecutionsInfo() != null && !info.getMavenExecutionsInfo().isEmpty() ) {
			builder.append( headerRows() );

			Collection<MavenExecutionInfo> mavenExecutionsInfo = info.getMavenExecutionsInfo();
			for ( MavenExecutionInfo mavenExecutionInfo : mavenExecutionsInfo ) {

				builder.append( newLineSeparator() );
				builder.append( tableRow( mavenExecutionInfo ) );

			}
		}

		return builder.toString();

	}

	protected String headerRows() {
		StringBuilder output = new StringBuilder()
				.append( newLineSeparator() ).append( headerTitle() );

		return output.toString();
	}

	@Override
	protected String createRowFormat() {
		StringBuilder builder = new StringBuilder();
		int size = getColumns().size();

		for ( int i = 0; i < size; i++ ) {

			builder.append( TextUtils.STRING_PLACEHOLDER );
			builder.append( COLUMN_SEPARATOR );
		}

		return builder.toString();
	}

}