/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.component.execution.api; import de.rcenvironment.core.component.execution.impl.ConsoleRowImpl; /** * Builds {@link ConsoleRow} objects. * * @author Doreen Seider */ public class ConsoleRowBuilder { private final int timestampOffset; private final ConsoleRowImpl consoleRow; public ConsoleRowBuilder() { this(0); } public ConsoleRowBuilder(int timestampOffset) { this.timestampOffset = timestampOffset; consoleRow = new ConsoleRowImpl(); } /** * @param workflowExecutionIdentifier execution identifier of the associated workflow * @param componentExecutionIdentifier execution identifier of the associated component * @return {@link ConsoleRowBuilder} instance for method chaining */ public ConsoleRowBuilder setExecutionIdentifiers(String workflowExecutionIdentifier, String componentExecutionIdentifier) { consoleRow.setWorkflowIdentifier(workflowExecutionIdentifier); consoleRow.setComponentIdentifier(componentExecutionIdentifier); return this; } /** * @param workflowInstanceName instance name of the associated workflow * @param componentInstanceName instance name of the associated component * @return {@link ConsoleRowBuilder} instance for method chaining */ public ConsoleRowBuilder setInstanceNames(String workflowInstanceName, String componentInstanceName) { consoleRow.setWorkflowName(workflowInstanceName); consoleRow.setComponentName(componentInstanceName); return this; } /** * @param type ConsoleRow.Type of the {@link ConsoleRow} * @return {@link ConsoleRowBuilder} instance for method chaining */ public ConsoleRowBuilder setType(ConsoleRow.Type type) { consoleRow.setType(type); return this; } /** * @param payload payload of the {@link ConsoleRow} * @return {@link ConsoleRowBuilder} instance for method chaining */ public ConsoleRowBuilder setPayload(String payload) { consoleRow.setPayload(payload); return this; } /** * @param sequenceNumber sequence number of the {@link ConsoleRow} * @return {@link ConsoleRowBuilder} instance for method chaining */ public ConsoleRowBuilder setSequenceNumber(long sequenceNumber) { consoleRow.setSequenceNumber(sequenceNumber); return this; } /** * @param compRun component run the the {@link ConsoleRow} was generated * @return {@link ConsoleRowBuilder} instance for method chaining */ public ConsoleRowBuilder setComponentRun(int compRun) { consoleRow.setComponentRun(compRun); return this; } /** * @return {@link ConsoleRow} instance */ public ConsoleRow build() { consoleRow.setTimestamp(System.currentTimeMillis() + timestampOffset); return consoleRow; } }