All Downloads are FREE. Search and download functionalities are using the official Maven repository.

se.l4.vibe.internal.DefaultVibeBuilder Maven / Gradle / Ivy

There is a newer version: 0.4.0
Show newest version
package se.l4.vibe.internal;

import java.util.concurrent.TimeUnit;

import se.l4.vibe.Vibe;
import se.l4.vibe.VibeBuilder;
import se.l4.vibe.backend.MergedBackend;
import se.l4.vibe.backend.VibeBackend;

/**
 * Builder for {@link Vibe} instances.
 * 
 * @author Andreas Holstenson
 *
 */
public class DefaultVibeBuilder
	implements VibeBuilder
{
	private VibeBackend backend;
	private long sampleInterval;

	public DefaultVibeBuilder()
	{
		sampleInterval = TimeUnit.MINUTES.toMillis(1);
	}
	
	@Override
	public VibeBuilder setBackend(VibeBackend backend)
	{
		this.backend = backend;
		return this;
	}
	
	@Override
	public VibeBuilder setBackends(VibeBackend... backends)
	{
		return setBackend(new MergedBackend(backends));
	}
	
	@Override
	public VibeBuilder setSampleInterval(long time, TimeUnit unit)
	{
		this.sampleInterval = unit.toMillis(time);
		
		return this;
	}
	
	@Override
	public Vibe build()
	{
		return new VibeImpl(backend, sampleInterval);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy