/*
|
* CDDL HEADER START
|
*
|
* The contents of this file are subject to the terms of the
|
* Common Development and Distribution License, Version 1.0 only
|
* (the "License"). You may not use this file except in compliance
|
* with the License.
|
*
|
* You can obtain a copy of the license at
|
* trunk/opends/resource/legal-notices/OpenDS.LICENSE
|
* or https://OpenDS.dev.java.net/OpenDS.LICENSE.
|
* See the License for the specific language governing permissions
|
* and limitations under the License.
|
*
|
* When distributing Covered Code, include this CDDL HEADER in each
|
* file and include the License file at
|
* trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
|
* add the following below this CDDL HEADER, with the fields enclosed
|
* by brackets "[]" replaced with your own identifying information:
|
* Portions Copyright [yyyy] [name of copyright owner]
|
*
|
* CDDL HEADER END
|
*
|
*
|
* Copyright 2010 Sun Microsystems, Inc.
|
*/
|
package org.opends.server.tools.dsreplication;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import org.opends.server.backends.task.FailedDependencyAction;
|
import org.opends.server.config.ConfigConstants;
|
import org.opends.server.protocols.ldap.LDAPAttribute;
|
import org.opends.server.tools.tasks.TaskScheduleInformation;
|
import org.opends.server.tools.tasks.TaskScheduleUserData;
|
import org.opends.server.types.ByteString;
|
import org.opends.server.types.RawAttribute;
|
|
/**
|
* This is a simple adaptor to create a task schedule information object
|
* using the data provided by the user. It is used to be able to share some
|
* code with the {@link TaskTool} class.
|
*
|
*/
|
public class PurgeHistoricalScheduleInformation
|
implements TaskScheduleInformation
|
{
|
private final PurgeHistoricalUserData uData;
|
private TaskScheduleUserData taskSchedule;
|
|
/**
|
* Default constructor.
|
* @param uData the data provided by the user to do the purge historical.
|
*/
|
public PurgeHistoricalScheduleInformation(
|
PurgeHistoricalUserData uData)
|
{
|
this.uData = uData;
|
this.taskSchedule = uData.getTaskSchedule();
|
if (taskSchedule == null)
|
{
|
taskSchedule = new TaskScheduleUserData();
|
}
|
}
|
|
/**
|
* {@inheritDoc}
|
*/
|
public void addTaskAttributes(List<RawAttribute> attributes)
|
{
|
ArrayList<ByteString> baseDNs = new ArrayList<ByteString>();
|
for (String baseDN : uData.getBaseDNs())
|
{
|
baseDNs.add(ByteString.valueOf(baseDN));
|
}
|
attributes.add(new LDAPAttribute(
|
ConfigConstants.ATTR_TASK_CONFLICTS_HIST_PURGE_DOMAIN_DN, baseDNs));
|
attributes.add(new LDAPAttribute(
|
ConfigConstants.ATTR_TASK_CONFLICTS_HIST_PURGE_MAX_DURATION,
|
Long.toString(uData.getMaximumDuration())));
|
|
}
|
|
/**
|
* {@inheritDoc}
|
*/
|
public List<String> getDependencyIds()
|
{
|
return taskSchedule.getDependencyIds();
|
}
|
|
/**
|
* {@inheritDoc}
|
*/
|
public FailedDependencyAction getFailedDependencyAction()
|
{
|
return taskSchedule.getFailedDependencyAction();
|
}
|
|
/**
|
* {@inheritDoc}
|
*/
|
public List<String> getNotifyUponCompletionEmailAddresses()
|
{
|
return taskSchedule.getNotifyUponCompletionEmailAddresses();
|
}
|
|
/**
|
* {@inheritDoc}
|
*/
|
public List<String> getNotifyUponErrorEmailAddresses()
|
{
|
return taskSchedule.getNotifyUponErrorEmailAddresses();
|
}
|
|
/**
|
* {@inheritDoc}
|
*/
|
public String getRecurringDateTime()
|
{
|
return taskSchedule.getRecurringDateTime();
|
}
|
|
/**
|
* {@inheritDoc}
|
*/
|
public Date getStartDateTime()
|
{
|
return taskSchedule.getStartDate();
|
}
|
|
/**
|
* {@inheritDoc}
|
*/
|
public Class<?> getTaskClass()
|
{
|
return org.opends.server.tasks.PurgeConflictsHistoricalTask.class;
|
}
|
|
/**
|
* {@inheritDoc}
|
*/
|
public String getTaskId()
|
{
|
return null;
|
}
|
|
/**
|
* {@inheritDoc}
|
*/
|
public String getTaskObjectclass()
|
{
|
return "ds-task-purge-conflicts-historical";
|
}
|
}
|