fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major/**
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * The contents of this file are subject to the terms
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * of the Common Development and Distribution License
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * (the License). You may not use this file except in
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * compliance with the License.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * You can obtain a copy of the License at
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * https://opensso.dev.java.net/public/CDDLv1.0.html or
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * opensso/legal/CDDLv1.0.txt
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * See the License for the specific language governing
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * permission and limitations under the License.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * When distributing Covered Code, include this CDDL
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * Header Notice in each file and include the License file
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * at opensso/legal/CDDLv1.0.txt.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * If applicable, add the following below the CDDL Header,
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * with the fields enclosed by brackets [] replaced by
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * your own identifying information:
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * "Portions Copyrighted [year] [name of copyright owner]"
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * $Id: UserResponseHandler.java,v 1.2 2008/06/25 05:51:25 qcheng Exp $
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major */
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorpackage com.sun.identity.install.tools.configurator;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.ArrayList;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.admin.ToolsConfiguration;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.util.LocalizedMessage;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorclass UserResponseHandler extends OrderedPropertyStore {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major /**
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * Constructs an user response object with user input data form the
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * UserResponse file.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * @param fileName
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major */
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public UserResponseHandler(String fileName) throws InstallException {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major setFile(fileName);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public void storeData(IStateAccess stateAccess, ArrayList allKeys) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major int count = allKeys.size();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major for (int i = 0; i < count; i++) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String key = (String) allKeys.get(i);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String value = (String) stateAccess.get(key);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major if (value == null) { // May be a non peristent key
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major value = "";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major setProperty(key, value);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // ////////////////////////////////////////////////////////////////////////
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // Overridden abstract methods
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // ////////////////////////////////////////////////////////////////////////
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public String getFile() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return fileName;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public LocalizedMessage getLoadErrorMessage() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Object[] args = { getFile() };
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return LocalizedMessage.get(LOC_DR_ERR_LOAD_USER_RESPONSE, args);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public LocalizedMessage getSaveErrorMessage() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Object[] args = { getFile() };
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return LocalizedMessage.get(LOC_DR_ERR_SAVE_USER_RESPONSE, args);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public LocalizedMessage getInvalidLineErrorMessage(int lineNumber) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Object args[] = { getFile(), new Integer(lineNumber),
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major STR_KEY_VALUE_SEP };
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LocalizedMessage message = LocalizedMessage.get(
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LOC_DR_ERR_INVALID_LINE, args);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return message;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public LocalizedMessage getInvalidKeyErrorMessage(int lineNumber) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Object args[] = { getFile(), new Integer(lineNumber),
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major STR_KEY_VALUE_SEP };
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LocalizedMessage message = LocalizedMessage.get(
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LOC_DR_ERR_INVALID_KEY_DEFINED, args);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return message;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public String getFileHeader() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return STR_USER_RESPONSE_FILE_HEADER;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public String toString() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String displayStr = "*** BEGIN UserResponseHandler Data *******"
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major + LINE_SEP + super.toString() + LINE_SEP
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major + "*** END UserResponseHandler Data *********";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return displayStr;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // ////////////////////////////////////////////////////////////////////////
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private void setFile(String fileName) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major this.fileName = fileName;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private String fileName;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // Constants
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final String LOC_DR_ERR_INVALID_KEY_DEFINED =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "DR_ERR_INVALID_KEY_DEFINED";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final String LOC_DR_ERR_INVALID_LINE =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "DR_ERR_INVALID_LINE";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final String LOC_DR_ERR_LOAD_USER_RESPONSE =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "DR_ERR_LOAD_USER_RESPONSE";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final String LOC_DR_ERR_SAVE_USER_RESPONSE =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "DR_ERR_SAVE_USER_RESPONSE";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final String STR_USER_RESPONSE_FILE_HEADER = "# "
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major + ToolsConfiguration.getProductShortName() + " User Response File";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major}