} catch (BadPropertyValueException e) {
logger.log(TreeLogger.ERROR, "Unable to find value for '"
+ DocumentModeAsserter.PROPERTY_DOCUMENT_COMPATMODE_SEVERITY + "'", e);
throw new UnableToCompleteException();
}
Severity severity;
try {
severity = Severity.valueOf(severityText);
} catch (IllegalArgumentException e) {
logger.log(TreeLogger.ERROR, "Value '" + severityText + "' for '"
+ DocumentModeAsserter.PROPERTY_DOCUMENT_COMPATMODE_SEVERITY + "' is not one of: "
+ Arrays.toString(Severity.values()), e);
throw new UnableToCompleteException();
}
List<String> documentModes;
try {
ConfigurationProperty property = propertyOracle.getConfigurationProperty(DocumentModeAsserter.PROPERTY_DOCUMENT_COMPATMODE);
documentModes = property.getValues();
} catch (BadPropertyValueException e) {
logger.log(TreeLogger.ERROR, "Unable to find value for '"
+ DocumentModeAsserter.PROPERTY_DOCUMENT_COMPATMODE + "'", e);
throw new UnableToCompleteException();
}
ClassSourceFileComposerFactory composerFactory = new ClassSourceFileComposerFactory(
packageName, className);
composerFactory.addImplementedInterface(userType.getQualifiedSourceName());
composerFactory.addImport(DocumentModeAsserter.Severity.class.getCanonicalName());
PrintWriter pw = context.tryCreate(logger, packageName, className);
if (pw != null) {
SourceWriter sw = composerFactory.createSourceWriter(context, pw);
sw.println();
sw.println("public String[] getAllowedDocumentModes() {");
sw.indent();
sw.println("return new String[] {");
sw.indent();
for (String mode : documentModes) {
sw.println("\"" + mode + "\", ");
}
sw.outdent();
sw.println("};");
sw.outdent();
sw.println("}");
sw.println();
sw.println("public Severity getDocumentModeSeverity() {");
sw.indent();
sw.println("return Severity." + severity.toString() + ";");
sw.outdent();
sw.println("}");
sw.println();
sw.commit(logger);