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: ListProductsHandler.java,v 1.2 2008/06/25 05:51:26 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.Iterator;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.Map;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.admin.IToolsOptionHandler;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.configurator.InstFinderStore;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.configurator.InstallException;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.util.Console;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.util.Debug;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport com.sun.identity.install.tools.util.LocalizedMessage;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorimport java.util.List;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Majorpublic class ListProductsHandler extends ProductInfoHandlerBase implements
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major IToolsOptionHandler {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public boolean checkArguments(List arguments) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // There should be no arguments to this option. If there is any it
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major // would an error.
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major boolean validArgs = true;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major if (arguments != null && arguments.size() > 0) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String specifiedArgs = formatArgs(arguments);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Debug.log("ListProductsHandler: invalid argument(s) specified - "
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major + specifiedArgs);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major printConsoleMessage(LOC_HR_MSG_INVALID_OPTION,
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major new Object[] { specifiedArgs });
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major validArgs = false;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major return validArgs;
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public void displayHelp() {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println(LocalizedMessage
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major .get(LOC_HR_MSG_LISTPRODUCTS_USAGE_DESC));
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public void handleRequest(List arguments) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major try {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major ArrayList summaryKeys = getIFinderSummaryKeys();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major InstFinderStore iFinderStore = InstFinderStore.getInstance();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Map allProductsDetails = iFinderStore
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major .getAllProductDetails(summaryKeys);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major if (allProductsDetails == null || allProductsDetails.isEmpty()) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major printConsoleMessage(LOC_HR_MSG_LISTPRODUCTS_NONE_FOUND);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major } else { // Print out the summary details
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major printAllProductDetails(allProductsDetails);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major } catch (InstallException ie) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Debug.log("ListProductsHandler: Failed to handle request ", ie);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major printConsoleMessage(LOC_HR_ERR_LISTPRODUCTS, new Object[] { ie
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major .getMessage() });
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public void printAllProductDetails(Map allProductsDetails) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Console.println(LocalizedMessage
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major .get(LOC_HR_MSG_LISTPRODUCTS_DISP_HEADER));
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Iterator iter = allProductsDetails.keySet().iterator();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major while (iter.hasNext()) {
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major String instanceName = (String) iter.next();
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major Map productDetails = (Map) allProductsDetails.get(instanceName);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major printProductDetails(productDetails, instanceName);
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major }
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public static final String LOC_HR_MSG_INVALID_OPTION =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "HR_MSG_INVALID_OPTION";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public static final String LOC_HR_MSG_LISTPRODUCTS_USAGE_DESC =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "HR_MSG_LISTPRODUCTS_USAGE_DESC";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public static final String LOC_HR_MSG_LISTPRODUCTS_NONE_FOUND =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "HR_MSG_LISTPRODUCTS_NONE_FOUND";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public static final String LOC_HR_MSG_LISTPRODUCTS_DISP_HEADER =
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major "HR_MSG_LISTPRODUCTS_DISP_HEADER";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major public static final String LOC_HR_ERR_LISTPRODUCTS = "HR_ERR_LISTPRODUCTS";
fb379c70e3fd8a537f311b99be4759ae41e02750Peter Major}