/*
* 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 2006-2009 Sun Microsystems, Inc.
*/
package org.opends.server.admin.client.cli;
import org.opends.messages.Message;
import static org.opends.messages.AdminMessages.*;
import java.util.HashMap;
import org.opends.admin.ads.ADSContextException.ErrorType;
/**
*
* The enumeration which defines the return code.
*
*/
public enum DsFrameworkCliReturnCode
{
/**
* successful.
*/
SUCCESSFUL(0, INFO_ADMIN_SUCCESSFUL.get()),
/**
* successful but no operation was performed.
*/
SUCCESSFUL_NOP(SUCCESSFUL.getReturnCode(), INFO_ADMIN_SUCCESSFUL_NOP.get()),
/**
* Unable to initialize arguments.
*/
CANNOT_INITIALIZE_ARGS(1, ERR_ADMIN_NO_MESSAGE.get()),
/**
* Cannot parse arguments.
*/
ERROR_PARSING_ARGS(2, ERR_ADMIN_NO_MESSAGE.get()),
/**
* Return code: Cannot get the connection to the ADS.
*/
CANNOT_CONNECT_TO_ADS(3, ERR_ADMIN_NO_MESSAGE.get()),
/**
* The host name is missing.
*/
MISSING_HOSTNAME(4, ERR_ADMIN_MISSING_HOSTNAME.get()),
/**
* The host name is not valid.
*/
NOVALID_HOSTNAME(5, ERR_ADMIN_NOVALID_HOSTNAME.get()),
/**
* The installation path is missing.
*/
MISSING_IPATH(6, ERR_ADMIN_MISSING_IPATH.get()),
/**
* The installation path is not valid.
*/
NOVALID_IPATH(7, ERR_ADMIN_NOVALID_IPATH.get()),
/**
* An access permission error.
*/
ACCESS_PERMISSION(8, ERR_ADMIN_ACCESS_PERMISSION.get()),
/**
* The entity is already registered.
*/
ALREADY_REGISTERED(9, ERR_ADMIN_ALREADY_REGISTERED.get()),
/**
* The installation is broken.
*/
BROKEN_INSTALL(10, ERR_ADMIN_BROKEN_INSTALL.get()),
/**
* The entity is not yet registered.
*/
NOT_YET_REGISTERED(11, ERR_ADMIN_NOT_YET_REGISTERED.get()),
/**
* The port is missing.
*/
MISSING_PORT(12, ERR_ADMIN_MISSING_PORT.get()),
/**
* The port is not valid.
*/
NOVALID_PORT(13, ERR_ADMIN_NOVALID_PORT.get()),
/**
* The name is missing.
*/
MISSING_NAME(14, ERR_ADMIN_MISSING_NAME.get()),
/**
* The administration UID is missing.
*/
MISSING_ADMIN_UID(15, ERR_ADMIN_MISSING_ADMIN_UID.get()),
/**
* The administrator password is missing.
*/
MISSING_ADMIN_PASSWORD(16, ERR_ADMIN_MISSING_ADMIN_PASSWORD.get()),
/**
* Unexpected error (potential bug).
*/
ERROR_UNEXPECTED(17, ERR_ADMIN_ERROR_UNEXPECTED.get()),
/**
* Unexpected error (potential bug).
*/
CONFLICTING_ARGS(18, ERR_ADMIN_NO_MESSAGE.get()),
/**
* The server entity is not yet registered.
*/
SERVER_NOT_REGISTERED(19, ERR_ADMIN_SERVER_NOT_REGISTERED.get()),
/**
* The merge of the ADS cannot be performed.
*/
ERROR_MERGING(20, ERR_ADMIN_MERGING.get());
// The retunCodevalue of the value.
private final int returnCode;
// The message id to be used of the value.
private final Message message;
// Private constructor.
private DsFrameworkCliReturnCode(int returnCode, Message message)
{
this.returnCode = returnCode;
this.message = message;
}
/**
* Get the corresponding message.
*
* @return The corresponding message.
*/
public Message getMessage()
{
return message;
}
/**
* Get the corresponding return code value.
*
* @return The corresponding return code value.
*/
public int getReturnCode()
{
return returnCode;
}
/**
* Indicate whenever the association between ADS errors and return
* has been done.
*/
private static boolean initialized = false ;
/**
* The association map between ADS Error and Return code.
*/
private static HashMap<ErrorType, DsFrameworkCliReturnCode>
adsErrorToReturnCode = new HashMap<ErrorType, DsFrameworkCliReturnCode>();
/**
* Associates a set of ADS errors to return code.
*/
private static void registerAdsError()
{
adsErrorToReturnCode.put(ErrorType.MISSING_HOSTNAME,
MISSING_HOSTNAME);
adsErrorToReturnCode.put(ErrorType.NOVALID_HOSTNAME,
NOVALID_HOSTNAME);
adsErrorToReturnCode.put(ErrorType.MISSING_IPATH,
MISSING_IPATH);
adsErrorToReturnCode.put(ErrorType.NOVALID_IPATH,
NOVALID_IPATH);
adsErrorToReturnCode.put(ErrorType.ACCESS_PERMISSION,
ACCESS_PERMISSION);
adsErrorToReturnCode.put(ErrorType.ALREADY_REGISTERED,
ALREADY_REGISTERED);
adsErrorToReturnCode.put(ErrorType.BROKEN_INSTALL,
BROKEN_INSTALL);
adsErrorToReturnCode.put(ErrorType.UNEXPECTED_ADS_BACKEND_TYPE,
BROKEN_INSTALL);
adsErrorToReturnCode.put(ErrorType.NOT_YET_REGISTERED,
NOT_YET_REGISTERED);
adsErrorToReturnCode.put(ErrorType.MISSING_PORT,
MISSING_PORT);
adsErrorToReturnCode.put(ErrorType.NOVALID_PORT,
NOVALID_PORT);
adsErrorToReturnCode.put(ErrorType.MISSING_NAME,
MISSING_NAME);
adsErrorToReturnCode.put(ErrorType.MISSING_ADMIN_UID,
MISSING_ADMIN_UID);
adsErrorToReturnCode.put(ErrorType.MISSING_ADMIN_PASSWORD,
MISSING_ADMIN_PASSWORD);
adsErrorToReturnCode.put(ErrorType.ERROR_UNEXPECTED,
ERROR_UNEXPECTED);
adsErrorToReturnCode.put(ErrorType.ERROR_MERGING,
ERROR_MERGING);
}
/**
* Get ReturnCode from an ADS error.
* @param error The ADS error
* @return the ReturnCode associated to the ADS error.
*/
public static DsFrameworkCliReturnCode
getReturncodeFromAdsError(ErrorType error)
{
if (! initialized)
{
registerAdsError();
initialized = true ;
}
return adsErrorToReturnCode.get(error);
}
}