1 /*******************************************************************************
2 * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
3 *******************************************************************************/
4 package com.att.authz.actions;
6 import java.io.IOException;
7 import java.security.SecureRandom;
9 import java.util.GregorianCalendar;
11 import com.att.authz.env.AuthzTrans;
12 import com.att.inno.env.APIException;
13 import com.datastax.driver.core.Cluster;
15 public abstract class ActionPuntDAO<T, RV> extends ActionDAO<T, RV> {
16 private static final SecureRandom random = new SecureRandom();
17 private int months, range;
18 protected static final Date now = new Date();
20 public ActionPuntDAO(AuthzTrans trans, Cluster cluster, int months, int range) throws APIException, IOException {
21 super(trans, cluster);
26 public ActionPuntDAO(AuthzTrans trans, ActionDAO<?, ?> predecessor, int months, int range) {
27 super(trans, predecessor);
33 protected Date puntDate() {
34 GregorianCalendar temp = new GregorianCalendar();
37 int forward = months+Math.abs(random.nextInt()%range);
38 temp.add(GregorianCalendar.MONTH, forward);
39 temp.add(GregorianCalendar.DAY_OF_MONTH, (random.nextInt()%30)-15);
41 return temp.getTime();