b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * The contents of this file are subject to the terms
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * of the Common Development and Distribution License
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * (the License). You may not use this file except in
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * compliance with the License.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * You can obtain a copy of the License at
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * https://opensso.dev.java.net/public/CDDLv1.0.html or
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * opensso/legal/CDDLv1.0.txt
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * See the License for the specific language governing
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * permission and limitations under the License.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * When distributing Covered Code, include this CDDL
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Header Notice in each file and include the License file
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * at opensso/legal/CDDLv1.0.txt.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * If applicable, add the following below the CDDL Header,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * with the fields enclosed by brackets [] replaced by
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * your own identifying information:
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * "Portions Copyrighted [year] [name of copyright owner]"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * $Id: ModifyAttributeSchemaSyntax.java,v 1.3 2008/12/04 06:32:06 veiming Exp $
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncpackage com.sun.identity.cli.schema;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport com.sun.identity.cli.CLIException;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport com.sun.identity.cli.ExitCodes;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport com.sun.identity.cli.IArgument;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport com.sun.identity.cli.IOutput;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport com.sun.identity.cli.LogWriter;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport com.sun.identity.cli.RequestContext;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport com.iplanet.sso.SSOException;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport com.sun.identity.sm.AttributeSchema;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport com.sun.identity.sm.SMSException;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport com.sun.identity.sm.ServiceSchema;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport java.text.MessageFormat;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncimport java.util.logging.Level;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Modifies attribute schema's syntax.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncpublic class ModifyAttributeSchemaSyntax extends SchemaCommand {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync static final String ARGUMENT_SYNTAX = "syntax";
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Services a Commandline Request.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * @param rc Request Context.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * @throws CLIException if the request cannot serviced.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync public void handleRequest(RequestContext rc)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync throws CLIException {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync super.handleRequest(rc);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ldapLogin();
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync String schemaType = getStringOptionValue(IArgument.SCHEMA_TYPE);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync String serviceName = getStringOptionValue(IArgument.SERVICE_NAME);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync String subSchemaName = getStringOptionValue(IArgument.SUBSCHEMA_NAME);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync String attributeSchemaName = getStringOptionValue(
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync IArgument.ATTRIBUTE_SCHEMA);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync String syntax = getStringOptionValue(ARGUMENT_SYNTAX);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ServiceSchema ss = getServiceSchema();
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync IOutput outputWriter = getOutputWriter();
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync try {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync String[] params = {serviceName, schemaType, subSchemaName,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync attributeSchemaName, syntax};
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync writeLog(LogWriter.LOG_ACCESS, Level.INFO,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync "ATTEMPT_MODIFY_ATTRIBUTE_SCHEMA_SYNTAX", params);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync AttributeSchema attrSchema = ss.getAttributeSchema(
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync attributeSchemaName);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync if (attrSchema == null) {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync String[] args = {serviceName, schemaType, subSchemaName,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync attributeSchemaName, syntax,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync "attribute schema does not exist"};
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync attributeSchemaNoExist(attributeSchemaName,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync "FAILED_MODIFY_ATTRIBUTE_SCHEMA_SYNTAX", args);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync }
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync attrSchema.setSyntax(syntax);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync writeLog(LogWriter.LOG_ACCESS, Level.INFO,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync "SUCCEED_MODIFY_ATTRIBUTE_SCHEMA_SYNTAX", params);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync outputWriter.printlnMessage(MessageFormat.format(
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync getResourceString(
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync "attribute-schema-modify-syntax-succeed"),
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync (Object[])params));
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync } catch (SSOException e) {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync String[] args = {serviceName, schemaType, subSchemaName,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync attributeSchemaName, syntax, e.getMessage()};
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync debugError("ModifyAttributeSchemaSyntax.handleRequest",e);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync writeLog(LogWriter.LOG_ERROR, Level.INFO,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync "FAILED_MODIFY_ATTRIBUTE_SCHEMA_SYNTAX", args);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync } catch (SMSException e) {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync String[] args = {serviceName, schemaType, subSchemaName,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync attributeSchemaName, syntax, e.getMessage()};
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync debugError("ModifyAttributeSchemaSyntax.handleRequest",e);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync writeLog(LogWriter.LOG_ERROR, Level.INFO,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync "FAILED_MODIFY_ATTRIBUTE_SCHEMA_SYNTAX", args);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync }
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync }
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync}