/***************************************************************************** * * Copyright (C) Zenoss, Inc. 2010, all rights reserved. * * This content is made available according to terms specified in * License.zenoss under the directory where your Zenoss product is installed. * ****************************************************************************/ package org.zenoss.zep.dao.impl; import java.util.concurrent.TimeUnit; public class PartitionTableConfig { private final String tableName; private final int partitionDuration; private final TimeUnit partitionUnit; private final int initialPastPartitions; private final int futurePartitions; public PartitionTableConfig(String tableName, int partitionDuration, TimeUnit partitionUnit, int initialPastPartitions, int futurePartitions) { if (tableName == null || partitionDuration <= 0 || partitionUnit == null || initialPastPartitions < 0 || futurePartitions < 0 || (initialPastPartitions == 0 && futurePartitions == 0)) { throw new IllegalArgumentException(); } this.tableName = tableName; this.partitionDuration = partitionDuration; this.partitionUnit = partitionUnit; this.initialPastPartitions = initialPastPartitions; this.futurePartitions = futurePartitions; } public String getTableName() { return tableName; } public int getPartitionDuration() { return partitionDuration; } public TimeUnit getPartitionUnit() { return partitionUnit; } public int getInitialPastPartitions() { return initialPastPartitions; } public int getFuturePartitions() { return futurePartitions; } @Override public String toString() { return String.format("PartitionTableConfig [tableName=%s, " + "partitionDuration=%s, partitionUnit=%s, " + "initialPastPartitions=%s, futurePartitions=%s]", tableName, partitionDuration, partitionUnit, initialPastPartitions, futurePartitions); } }