code: private static int calculateEtag(final Action action) {
          final int prime = 31;
          int result = action.hashCode();
          int offsetPrime = action.isHitAutoForceTime(System.currentTimeMillis()) ? 1231 : 1237;
          offsetPrime = action.hasMaintenanceSchedule() && action.isMaintenanceWindowAvailable() ? 1249 : offsetPrime;
  
          result = prime * result + offsetPrime;
          return result;
      }
docs: Calculates an etag for the given {@link Action} based on the entities
  hashcode and the {@link Action#isHitAutoForceTime(long)} to reflect a
  force switch.
  
  @param action
  to calculate the etag for
  @return the etag