private void handleResponse()

in src/main/java/org/apache/maven/plugins/help/EvaluateMojo.java [253:344]


    private void handleResponse(String expr, File output) throws MojoExecutionException, MojoFailureException {
        StringBuilder response = new StringBuilder();

        Object obj;
        try {
            obj = getEvaluator().evaluate(expr);
        } catch (ExpressionEvaluationException e) {
            throw new MojoExecutionException("Error when evaluating the Maven expression", e);
        }

        if (obj != null && expr.equals(obj.toString())) {
            getLog().warn("The Maven expression was invalid. Please use a valid expression.");
            return;
        }

        // handle null
        if (obj == null) {
            response.append("null object or invalid expression");
        }
        // handle primitives objects
        else if (obj instanceof String) {
            response.append(obj.toString());
        } else if (obj instanceof Boolean) {
            response.append(obj.toString());
        } else if (obj instanceof Byte) {
            response.append(obj.toString());
        } else if (obj instanceof Character) {
            response.append(obj.toString());
        } else if (obj instanceof Double) {
            response.append(obj.toString());
        } else if (obj instanceof Float) {
            response.append(obj.toString());
        } else if (obj instanceof Integer) {
            response.append(obj.toString());
        } else if (obj instanceof Long) {
            response.append(obj.toString());
        } else if (obj instanceof Short) {
            response.append(obj.toString());
        }
        // handle specific objects
        else if (obj instanceof File) {
            File f = (File) obj;
            response.append(f.getAbsolutePath());
        }
        // handle Maven pom object
        else if (obj instanceof MavenProject) {
            MavenProject projectAsked = (MavenProject) obj;
            StringWriter sWriter = new StringWriter();
            MavenXpp3Writer pomWriter = new MavenXpp3Writer();
            try {
                pomWriter.write(sWriter, projectAsked.getModel());
            } catch (IOException e) {
                throw new MojoExecutionException("Error when writing pom", e);
            }

            response.append(sWriter.toString());
        }
        // handle Maven Settings object
        else if (obj instanceof Settings) {
            Settings settingsAsked = (Settings) obj;
            StringWriter sWriter = new StringWriter();
            SettingsXpp3Writer settingsWriter = new SettingsXpp3Writer();
            try {
                settingsWriter.write(sWriter, settingsAsked);
            } catch (IOException e) {
                throw new MojoExecutionException("Error when writing settings", e);
            }

            response.append(sWriter.toString());
        } else {
            // others Maven objects
            response.append(toXML(expr, obj));
        }

        if (output != null) {
            try {
                writeFile(output, response);
            } catch (IOException e) {
                throw new MojoExecutionException("Cannot write evaluation of expression to output: " + output, e);
            }
            getLog().info("Result of evaluation written to: " + output);
        } else {
            if (getLog().isInfoEnabled()) {
                getLog().info(LS + response.toString());
            } else {
                if (forceStdout) {
                    System.out.print(response.toString());
                    System.out.flush();
                }
            }
        }
    }