
com.alachisoft.ncache.client.internal.caching.WebCacheHelper Maven / Gradle / Ivy
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.alachisoft.ncache.client.internal.caching;
import Alachisoft.NCache.Caching.AutoExpiration.ExpirationHint;
import Alachisoft.NCache.Caching.AutoExpiration.FixedExpiration;
import Alachisoft.NCache.Caching.AutoExpiration.IdleExpiration;
import Alachisoft.NCache.Caching.ItemRemoveReason;
import com.alachisoft.ncache.runtime.util.TimeSpan;
import java.util.Calendar;
/**
* @author muhammad_sami
*/
public final class WebCacheHelper {
/////
///// Creates and returns an expiration hint used internally. This method is for internal use only, do
///// not use directly.
/////
//public static ExpirationHint CombineExpiryHints(DependencyHint hint1, DependencyHint hint2,
// DependencyHint hint3, CacheDependency dependency)
//{
// int count = 0;
// ExpirationHint[] hints = new ExpirationHint[4];
// if(hint1 != null) hints[count++] = hint1;
// if(hint2 != null) hints[count++] = hint2;
// if(hint3 != null) hints[count++] = hint3;
// if(dependency != null) hints[count++] = dependency.InternalHint;
// ExpirationHint eh = null;
// switch(count)
// {
// case 1: eh = hints[0]; break;
// case 2: eh = new AggregateExpirationHint(hints[0], hints[1]); break;
// case 3: eh = new AggregateExpirationHint(hints[0], hints[1], hints[2]); break;
// case 4: eh = new AggregateExpirationHint(hints); break;
// }
// hints[0] = hints[1] = hints[2] = hints[3] = null;
// return eh;
//}
/**
* combines the absolute and sliding expiry params and returns a single
* expiration hint value.
*
* @param absoluteExpiration the absolute expiration datatime
* @param slidingExpiration the sliding expiration time
* @return expiration hint If you set the parameter to less than TimeSpan.Zero, or the
* equivalent of more than one year, an is thrown. You cannot set both
* sliding and absolute expirations on the same cached item. If you do so,
* an is thrown.
*/
public static ExpirationHint MakeFixedIdleExpirationHint(java.util.Date absoluteExpiration, TimeSpan slidingExpiration) {
if (CacheImpl.NoAbsoluteExpiration.equals(absoluteExpiration) && CacheImpl.NoSlidingExpiration.equals(slidingExpiration)) {
return null;
}
if (CacheImpl.NoAbsoluteExpiration.equals(absoluteExpiration)) {
if (slidingExpiration.compareTo(TimeSpan.Zero) < 0) {
throw new IllegalArgumentException("slidingExpiration");
}
Calendar calendar = Calendar.getInstance();
Calendar currentCalendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, 1);
if (slidingExpiration.getTotalMiliSeconds() - (calendar.getTimeInMillis() - currentCalendar.getTimeInMillis()) >= 0) {
throw new IllegalArgumentException("slidingExpiration");
}
return new IdleExpiration(slidingExpiration);
}
if (CacheImpl.NoSlidingExpiration.equals(slidingExpiration)) {
return new FixedExpiration(absoluteExpiration);
}
throw new IllegalArgumentException("You cannot set both sliding and absolute expirations on the same cache item.");
}
public static void EvaluateTagsParameters(java.util.Hashtable queryInfo, String group) {
if (queryInfo != null) {
if (!tangible.DotNetToJavaStringHelper.isNullOrEmpty(group) && queryInfo.get("tag-info") != null) //#else
{
if (!(group == null || group.length() == 0) && queryInfo.get("tag-info") != null) //#endif
{
throw new IllegalArgumentException("You cannot set both groups and tags on the same cache item.");
}
}
}
}
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: public static byte EvaluateExpirationParameters(DateTime absoluteExpiration, TimeSpan slidingExpiration)
public static byte EvaluateExpirationParameters(java.util.Date absoluteExpiration, TimeSpan slidingExpiration) {
if (CacheImpl.NoAbsoluteExpiration.equals(absoluteExpiration) && CacheImpl.NoSlidingExpiration.equals(slidingExpiration)) {
return 2;
}
if (CacheImpl.NoAbsoluteExpiration.equals(absoluteExpiration)) {
if (slidingExpiration.compareTo(TimeSpan.Zero) < 0) {
throw new IllegalArgumentException("slidingExpiration");
}
Calendar calendar = Calendar.getInstance();
Calendar currentCalendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, 1);
if (slidingExpiration.getTotalMiliSeconds() - (calendar.getTimeInMillis() - currentCalendar.getTimeInMillis()) >= 0) {
throw new IllegalArgumentException("slidingExpiration");
}
return 0;
}
if (CacheImpl.NoSlidingExpiration.equals(slidingExpiration)) {
return 1;
}
throw new IllegalArgumentException("You cannot set both sliding and absolute expirations on the same cache item.");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy