in src/main/java/org/apache/maven/plugins/help/EvaluateMojo.java [240:331]
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();
}
}
}
}