package org.springframework.roo.process.manager.internal; import java.io.File; import java.util.logging.Logger; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.springframework.roo.file.undo.FilenameResolver; import org.springframework.roo.support.logging.HandlerUtils; public class ManagedMessageRenderer { private static final Logger LOGGER = HandlerUtils.getLogger(ManagedMessageRenderer.class); private final boolean createOperation; private String descriptionOfChange; private final File file; private final FilenameResolver filenameResolver; private String hashCode; private boolean includeHashCode; public ManagedMessageRenderer(final FilenameResolver filenameResolver, final File file, final boolean createOperation) { Validate.notNull(filenameResolver, "Filename resolver required"); Validate.notNull(file, "File to manage required"); this.filenameResolver = filenameResolver; this.file = file; this.createOperation = createOperation; } boolean isIncludeHashCode() { return includeHashCode; } void logManagedMessage() { final StringBuilder message = new StringBuilder(); if (hashCode != null && includeHashCode && hashCode.length() >= 7) { // Display only the first 6 characters, being consistent with Git // hash code display conventions message.append(hashCode.subSequence(0, 7)).append(" "); } if (createOperation) { message.append("Created "); } else { message.append("Updated "); } message.append(filenameResolver.getMeaningfulName(file)); if (StringUtils.isNotBlank(descriptionOfChange)) { message.append(" ["); message.append(descriptionOfChange); message.append("]"); } LOGGER.fine(message.toString()); } public void setDescriptionOfChange(final String message) { descriptionOfChange = message; } void setHashCode(final String hashCode) { this.hashCode = hashCode; } void setIncludeHashCode(final boolean includeHashCode) { this.includeHashCode = includeHashCode; } }