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: ProductInfoHandlerBase.java,v 1.2 2008/06/25 05:51:27 qcheng Exp $
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major *
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major */
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major/*
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major * Portions Copyrighted [2010] [ForgeRock AS]
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major */
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorpackage com.sun.identity.install.tools.handler;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.ArrayList;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.HashMap;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.Iterator;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.Map;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.configurator.ConfigurationLoader;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.configurator.I18NInfo;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.configurator.InstallException;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.configurator.InstallRunInfo;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.configurator.InteractionConstants;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.configurator.InteractionInfo;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.util.Console;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.util.LocalizedMessage;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.List;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorpublic class ProductInfoHandlerBase {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public ProductInfoHandlerBase() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major setI18NInfoMap(new HashMap());
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public ArrayList getIFinderSummaryKeys() throws InstallException {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major ConfigurationLoader cl = new ConfigurationLoader();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major InstallRunInfo installRunInfo = cl.getInstallRunInfo();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major ArrayList iFInteractionsInfoList = installRunInfo
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major .getInstanceFinderInteractions();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major int count = iFInteractionsInfoList.size();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major ArrayList summaryKeys = new ArrayList(count);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major for (int i = 0; i < count; i++) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major InteractionInfo interactionInfo = (InteractionInfo)
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major iFInteractionsInfoList.get(i);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major I18NInfo i18NInfo = interactionInfo.getI18NInfo();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String summaryKey = i18NInfo.getKey()
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major + InteractionConstants.STR_IN_SUMMARY_DESCRIPTION_SUFFIX;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major summaryKeys.add(summaryKey);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major getI18NInfoMap().put(summaryKey, i18NInfo);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return summaryKeys;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public void printProductDetails(Map productDetails, String instanceName) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println(LocalizedMessage.get(
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LOC_HR_MSG_PRODUCTINFO_DISP_HEADER,
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major new Object[] { instanceName }));
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Iterator iter = productDetails.keySet().iterator();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major while (iter.hasNext()) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String summaryKey = (String) iter.next();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String value = (String) productDetails.get(summaryKey);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major I18NInfo i18NInfo = (I18NInfo) getI18NInfoMap().get(summaryKey);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String i18NGroup = i18NInfo.getGroup();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String displayMessage = LocalizedMessage.get(summaryKey, i18NGroup)
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major .getMessage()
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major + STR_DISPLAY_SEPARATOR + value;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println(displayMessage);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public void printConsoleMessage(String message) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major printConsoleMessage(message, null);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public void printConsoleMessage(String message, Object[] args) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major LocalizedMessage lMessage;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major if (args != null) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major lMessage = LocalizedMessage.get(message, args);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major } else {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major lMessage = LocalizedMessage.get(message);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println(lMessage);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public String formatArgs(List arguments) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major int count = arguments.size();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major StringBuffer sb = new StringBuffer();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major for (int i = 0; i < count; i++) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String arg = (String) arguments.get(i);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major sb.append(arg).append(" ");
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return sb.toString();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public Map getI18NInfoMap() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return i18NInfoMap;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private void setI18NInfoMap(Map map) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major i18NInfoMap = map;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private Map i18NInfoMap;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public static final String LOC_HR_MSG_PRODUCTINFO_DISP_HEADER =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "HR_MSG_PRODUCTINFO_DISP_HEADER";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major private static final String STR_DISPLAY_SEPARATOR = ": ";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major}