NewSuffixOptions.java revision 5392a0d77ac41b1c2e450fe59a81a0751accc079
/*
* 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 legal-notices/CDDLv1_0.txt
* or http://forgerock.org/license/CDDLv1.0.html.
* 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 legal-notices/CDDLv1_0.txt.
* 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 2006-2008 Sun Microsystems, Inc.
* Portions Copyright 2013-2015 ForgeRock AS.
*/
package org.opends.quicksetup.installer;
import java.util.LinkedList;
import java.util.List;
/**
* This class is used to provide a data model for the Data Options panel of the
* installer.
*/
public class NewSuffixOptions
{
/**
* This enumeration is used to know what the user wants to do for the data
* (import data or not, what use as source of the data...).
*/
public enum Type
{
/**
* Create base entry.
*/
CREATE_BASE_ENTRY,
/**
* Do not add any entry to the suffix.
*/
LEAVE_DATABASE_EMPTY,
/**
* Import data from an LDIF file.
*/
IMPORT_FROM_LDIF_FILE,
/**
* Generate data and import it to the suffix.
*/
IMPORT_AUTOMATICALLY_GENERATED_DATA
}
private Type type;
private List<String> baseDns = new LinkedList<String>();
private List<String> ldifPaths = new LinkedList<String>();
private String rejectedFile;
private String skippedFile;
private int numberEntries = 2000;
/**
* Private constructor.
* @param baseDns the base DNs of the suffix options.
*/
private NewSuffixOptions(List<String> baseDns)
{
this.baseDns.addAll(baseDns);
}
/**
* Creates a base entry suffix options.
* @param baseDNs the base DNs of the suffix options.
* @return a base entry suffix options.
*/
public static NewSuffixOptions createBaseEntry(List<String> baseDNs)
{
NewSuffixOptions ops = new NewSuffixOptions(baseDNs);
ops.type = Type.CREATE_BASE_ENTRY;
return ops;
}
/**
* Creates an empty suffix options.
* @param baseDNs the base DNs of the suffix options.
* @return an empty suffix options.
*/
public static NewSuffixOptions createEmpty(List<String> baseDNs)
{
NewSuffixOptions ops = new NewSuffixOptions(baseDNs);
ops.type = Type.LEAVE_DATABASE_EMPTY;
return ops;
}
/**
* Creates a base entry suffix options.
* @param baseDNs the base DNs of the suffix options.
* @param ldifPaths the LDIF files to be imported.
* @param rejectedFile the files where the rejected entries are stored.
* @param skippedFile the files where the skipped entries are stored.
* @return a base entry suffix options.
*/
public static NewSuffixOptions createImportFromLDIF(List<String> baseDNs,
List<String> ldifPaths, String rejectedFile, String skippedFile)
{
NewSuffixOptions ops = new NewSuffixOptions(baseDNs);
ops.type = Type.IMPORT_FROM_LDIF_FILE;
ops.ldifPaths.addAll(ldifPaths);
ops.rejectedFile = rejectedFile;
ops.skippedFile = skippedFile;
return ops;
}
/**
* Creates an automatically generated entries suffix options.
* @param baseDNs the base DNs of the suffix options.
* @param numberEntries the number of entries to generate.
* @return a base entry suffix options.
*/
public static NewSuffixOptions createAutomaticallyGenerated(
List<String> baseDNs, int numberEntries)
{
NewSuffixOptions ops = new NewSuffixOptions(baseDNs);
ops.type = Type.IMPORT_AUTOMATICALLY_GENERATED_DATA;
ops.numberEntries = numberEntries;
return ops;
}
/**
* Returns the type of NewSuffixOptions represented by this object (import
* data or not, what use as source of the data...).
*
* @return the type of NewSuffixOptions.
*/
public Type getType()
{
return type;
}
/**
* Returns the path of the LDIF file used to import data.
* @return the path of the LDIF file used to import data.
*/
public LinkedList<String> getLDIFPaths()
{
return new LinkedList<String>(ldifPaths);
}
/**
* Returns the path to store the rejected entries of the import.
* <CODE>null</CODE> if no rejected file is specified.
*
* @return the path to store the rejected entries of the import.
* <CODE>null</CODE> if no rejected file is specified.
*/
public String getRejectedFile()
{
return rejectedFile;
}
/**
* Returns the path to store the skipped entries of the import.
* <CODE>null</CODE> if no skipped file is specified.
*
* @return the path to store the skipped entries of the import.
* <CODE>null</CODE> if no skipped file is specified.
*/
public String getSkippedFile()
{
return skippedFile;
}
/**
* Returns the number of entries that will be automatically generated.
*
* @return the number of entries that will be automatically generated.
*/
public int getNumberEntries()
{
return numberEntries;
}
/**
* Returns the base DN of the suffix that will be created in the server.
*
* @return the base DN of the suffix that will be created in the server.
*/
public LinkedList<String> getBaseDns()
{
return new LinkedList<String>(baseDns);
}
/**
* Returns {@link InstallProgressStep} equivalent to the type of new suffix
* options.
*
* @return Returns {@link InstallProgressStep} equivalent to the type of new
* suffix options.
*/
public InstallProgressStep getInstallProgressStep()
{
switch (type)
{
case CREATE_BASE_ENTRY:
return InstallProgressStep.CREATING_BASE_ENTRY;
case IMPORT_FROM_LDIF_FILE:
return InstallProgressStep.IMPORTING_LDIF;
case IMPORT_AUTOMATICALLY_GENERATED_DATA:
return InstallProgressStep.IMPORTING_AUTOMATICALLY_GENERATED;
default:
return null;
}
}
}