FileDocCategorySizeDatePackage
DisplayErrorDistributionCommand.javaAPI DocGlassfish v2 API6775Fri May 04 22:25:10 BST 2007com.sun.enterprise.cli.commands

DisplayErrorDistributionCommand

public class DisplayErrorDistributionCommand extends BaseLoggingCommand
This class is the implementation for display-error-distribution command.

Fields Summary
private static final String
TARGET_OPTION
Constructors Summary
Methods Summary
private voiddisplayErrorDistribution(java.util.Map errorsMap)

        if (errorsMap.size() > 0)
        {
            //display header
            String sTitle = String.format("%1$-9s %2$-14s %3$-40s",
                                          getLocalizedString("Severity"),
                                          getLocalizedString("Warning"),
                                          getLocalizedString("ModuleID"));
           
            CLILogger.getInstance().printDetailMessage(sTitle);
           
            CLILogger.getInstance().printDetailMessage("---------------------------------------------------------");
            
        }
        else
        {
            CLILogger.getInstance().printMessage(getLocalizedString("NoElementsToList"));
            return;
        }
        java.util.Set<String> keySet = errorsMap.keySet();
        for (String module : keySet) 
        {
            int[] errorCounts = (int[]) errorsMap.get(module);
            final String sErrorRecord = String.format("    %1$-8s %2$-8s %3$-40s",
                                                  errorCounts[0], errorCounts[1], module);
            CLILogger.getInstance().printMessage(sErrorRecord);
        }
    
private java.util.MaphandleErrorDistribution(java.util.Map errorMap, java.util.Map resultMap, boolean isSevere)

        java.util.Set<String> keySet = errorMap.keySet();
        for (String module : keySet) {
            Integer count = (Integer) errorMap.get(module);
            if (count > 0)
            {
                if (isSevere)
                {
                    int[] errorCounts = new int[]{count,0};
                    resultMap.put(module, errorCounts);
                }
                else
                {
                    if (resultMap.containsKey(module))
                    {
                        int[] errorCounts = (int[])resultMap.get(module);
                        errorCounts[1] = count;
                        resultMap.put(module, errorCounts);
                    }
                    else
                    {
                        int[] errorCounts = new int[]{0, count};
                        resultMap.put(module, errorCounts);
                    }
                }
            }
        }
        return resultMap;
    
public voidrunCommand()
A method that Executes the command

throws
CommandException


                   
         
    
        if (!validateOptions())
            throw new CommandValidationException("Validation is false");
        
        //use http connector
        MBeanServerConnection mbsc = getMBeanServerConnection(getHost(), getPort(), 
                                                              getUser(), getPassword());
        String instanceName = getOption(TARGET_OPTION);
        verifyTargetInstance(mbsc, instanceName);
        final String objectName = getObjectName();
        final String operationName = getOperationName();
        final long timeStamp = Long.valueOf((String) getOperands().get(0)).longValue(); 
        
        try
        {
            // get the modules with SEVERE count
            Object[] params = new Object[]{timeStamp, "SEVERE"};
            String[] types = getTypesInfo();
            Map returnMap = (Map) mbsc.invoke(new ObjectName(objectName), 
                                                operationName, params, types);
            Map errorsMap = handleErrorDistribution(returnMap, 
                                                        new HashMap(), true);
            
            // get the modules with WARNING count
            params = new Object[]{timeStamp, "WARNING"};
            returnMap = (Map) mbsc.invoke(new ObjectName(objectName), 
                                                operationName, params, types);
            errorsMap = handleErrorDistribution(returnMap, errorsMap, false);

            //Display the error distribution
            displayErrorDistribution(errorsMap);
        }
        catch(Exception e)
        {
            displayExceptionMessage(e);
        }

        CLILogger.getInstance().printDetailMessage(getLocalizedString(
                                                   "CommandSuccessful",
                                                   new Object[] {name}));