Class RefreshAndDoubleCheckOnFailUnlessStatusInvalid<S extends Enum<S>,C extends ComputeMetadataIncludingStatus<S>>

java.lang.Object
org.jclouds.compute.predicates.internal.RefreshAndDoubleCheckOnFailUnlessStatusInvalid<S,C>
All Implemented Interfaces:
com.google.common.base.Predicate<AtomicReference<C>>, Predicate<AtomicReference<C>>
Direct Known Subclasses:
RefreshImageAndDoubleCheckOnFailUnlessStatusInvalid, RefreshNodeAndDoubleCheckOnFailUnlessStatusInvalid

public abstract class RefreshAndDoubleCheckOnFailUnlessStatusInvalid<S extends Enum<S>,C extends ComputeMetadataIncludingStatus<S>> extends Object implements com.google.common.base.Predicate<AtomicReference<C>>
Keep an atomic reference to a resource, so as to eliminate a redundant
invalid reference
ComputeService#getNodeMetadata
call after the predicate passes.
  • Field Details

    • logger

      protected Logger logger
  • Constructor Details

    • RefreshAndDoubleCheckOnFailUnlessStatusInvalid

      public RefreshAndDoubleCheckOnFailUnlessStatusInvalid(S intended, Set<S> invalids)
  • Method Details

    • apply

      public boolean apply(AtomicReference<C> atomicResource)
      Specified by:
      apply in interface com.google.common.base.Predicate<S extends Enum<S>>
    • checkStatus

      public boolean checkStatus(C resource)
    • refreshOrNull

      protected abstract C refreshOrNull(C resource)