org.htmlunit.corejs.javascript.commonjs.module.provider.DefaultUrlConnectionExpiryCalculator Maven / Gradle / Ivy
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.htmlunit.corejs.javascript.commonjs.module.provider;
import java.io.Serializable;
import java.net.URLConnection;
/**
* The default heuristic for calculating cache expiry of URL-based resources. It is simply
* configured with a default relative expiry, and each invocation of {@link
* #calculateExpiry(URLConnection)} returns {@link System#currentTimeMillis()} incremented with the
* relative expiry.
*
* @author Attila Szegedi
* @version $Id: DefaultUrlConnectionExpiryCalculator.java,v 1.3 2011/04/07 20:26:12 hannes%helma.at
* Exp $
*/
public class DefaultUrlConnectionExpiryCalculator
implements UrlConnectionExpiryCalculator, Serializable {
private static final long serialVersionUID = 1L;
private final long relativeExpiry;
/** Creates a new default expiry calculator with one minute relative expiry. */
public DefaultUrlConnectionExpiryCalculator() {
this(60000L);
}
/**
* Creates a new default expiry calculator with the specified relative expiry.
*
* @param relativeExpiry the fixed relative expiry, in milliseconds.
*/
public DefaultUrlConnectionExpiryCalculator(long relativeExpiry) {
if (relativeExpiry < 0) {
throw new IllegalArgumentException("relativeExpiry < 0");
}
this.relativeExpiry = relativeExpiry;
}
@Override
public long calculateExpiry(URLConnection urlConnection) {
return System.currentTimeMillis() + relativeExpiry;
}
}