private final BigInteger lastNumer;
private final BigInterger[] lastFactors;
public OneValueCahche(BigInterger i, BigInteger[] factors){
lastNumber = i;
lastFactors = factors;
}
public BigInteger[] getFactors(BigInteger i){
if(lastNumber == null || !lastNumber.equals(i)){
return null;
}else{
return Arrays.copyOf(lastFactors,lastFactors.length);
}
}
}
public class VolatileCachedFactorizer implements Servlet {
private volatile OneValueCache cache = new OneValueCache(null,null);
public void service(ServletRequest req, ServletResponse resp){
BigInteger i = extractFromRequest(req);
BigInteger [] factors = cache.getFactors(i);
if(factors == null){
factors = factor(i);
cache = new OneValueCache(i,factors);
}
}
encodeIntoResponse(resp,factors);
}
private final BigInteger lastNumber;
private final BigInterger[] lastFactors;
public OneValueCahche(BigInterger i, BigInteger[] factors){
lastNumber = i;
lastFactors = factors;
}
public BigInteger[] getFactors(){
//if(lastNumber == null || !lastNumber.equals(i)){
return null;
}else{
return Arrays.copyOf(lastFactors,lastFactors.length);
}
}
}
public class VolatileCachedFactorizer implements Servlet {
private volatile OneValueCache cache = new OneValueCache(null,null);
public void service(ServletRequest req, ServletResponse resp){
BigInteger i = extractFromRequest(req);
//BigInteger [] factors = cache.getFactors(i);
if(factors == null){
factors = factor(i);
cache = new OneValueCache(i,factors);
}
encodeIntoResponse(resp,factors);
}