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

org.infinispan.client.hotrod.impl.operations.AdvancedHotRodOperation Maven / Gradle / Ivy

There is a newer version: 9.3.1.Final
Show newest version
package org.infinispan.client.hotrod.impl.operations;

import java.time.Duration;

import org.infinispan.api.common.CacheOptions;
import org.infinispan.api.common.Flags;

public class AdvancedHotRodOperation extends DelegatingHotRodOperation {
   private final CacheOptions options;
   private final int privateFlags;

   public AdvancedHotRodOperation(HotRodOperation delegate, CacheOptions options, int privateFlags) {
      super(delegate);
      this.options = options;
      this.privateFlags = privateFlags;
   }

   public AdvancedHotRodOperation(HotRodOperation delegate, CacheOptions options) {
      this(delegate, options, 0);
   }

   @Override
   public int flags() {
      return options.flags()
            .map(Flags::toInt)
            .orElseGet(super::flags) | privateFlags;
   }

   @Override
   public long timeout() {
      return options.timeout()
            .map(Duration::toMillis)
            .orElseGet(super::timeout);
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy