/* * SK's Minecraft Launcher * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors * Please see LICENSE.txt for license information. */ package com.skcraft.concurrency; public class ProgressFilter implements ProgressObservable { private final ProgressObservable delegate; private final double offset; private final double portion; public ProgressFilter(ProgressObservable delegate, double offset, double portion) { this.delegate = delegate; this.offset = offset; this.portion = portion; } @Override public double getProgress() { return offset + portion * Math.max(0, delegate.getProgress()); } @Override public String getStatus() { return delegate.getStatus(); } public static ProgressObservable between(ProgressObservable delegate, double from, double to) { return new ProgressFilter(delegate, from, to - from); } }