/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.api.project.server;
import org.eclipse.che.api.core.util.LineConsumer;
import org.eclipse.che.api.core.util.LineConsumerFactory;
import org.eclipse.che.api.project.server.importer.ProjectImportOutputWSLineConsumer;
/**
* {@link LineConsumerFactory} dedicated to project related operations long output
* extended standard factory with setProjectName method to make it possible
* change it runtime inside ProjectManager
*
* @author gazarenkov
*/
public class ProjectOutputLineConsumerFactory implements LineConsumerFactory {
private String projectName;
private final String workspaceId;
private final int delay;
public ProjectOutputLineConsumerFactory(String projectName, String workspaceId, int delay) {
this.projectName = projectName;
this.workspaceId = workspaceId;
this.delay = delay;
}
public ProjectOutputLineConsumerFactory(String workspaceId, int delay) {
this(null, workspaceId, delay);
}
public ProjectOutputLineConsumerFactory setProjectName(String projectName) {
this.projectName = projectName;
return this;
}
@Override
public LineConsumer newLineConsumer() {
return new ProjectImportOutputWSLineConsumer(projectName, workspaceId, delay);
}
}