package com.iambookmaster.server.logic; import com.iambookmaster.client.beans.ObjectBean; import com.iambookmaster.client.beans.Paragraph; import com.iambookmaster.client.beans.ParagraphConnection; import com.iambookmaster.client.locale.AppConstants; import com.iambookmaster.client.locale.AppMessages; import com.iambookmaster.client.model.Model; public abstract class AbstractModelProcessor { private StringBuffer errors=new StringBuffer(); private Model model; protected final AppConstants appConstants; protected final AppMessages appMessages; protected Model getModel() { return model; } public AbstractModelProcessor(Model model, AppConstants appConstants,AppMessages appMessages) { super(); this.model = model; this.appConstants = appConstants; this.appMessages = appMessages; } protected void appendObject(ObjectBean object) { errors.append(appMessages.serverErrorItem(object.getName())); } protected void appendParagraph(Paragraph paragraph) { errors.append(getParagraphDescription(paragraph)); } private String getParagraphDescription(Paragraph paragraph) { if (model.getSettings().isShowParagraphNumbers()) { return appMessages.serverErrorParagraphWithNumber( paragraph.isFail() ? appConstants.serverParagraphFail(): paragraph.isSuccess() ? appConstants.serverParagraphSuccess(): appConstants.serverParagraphNormal(), paragraph.getNumber(), paragraph.getName()); } else { return appMessages.serverErrorParagraphNoNumber( paragraph.isFail() ? appConstants.serverParagraphFail(): paragraph.isSuccess() ? appConstants.serverParagraphSuccess(): appConstants.serverParagraphNormal(), paragraph.getName()); } } protected void appendParagraphConnection(ParagraphConnection connection) { errors.append(appMessages.serverErrorParagraphConnection( connection.isBothDirections() ? appConstants.serverErrorConnectionTwoWay() : appConstants.serverErrorConnectionOneWay(), getParagraphDescription(connection.getFrom()), getParagraphDescription(connection.getTo()))); } protected void clearErrors() { errors.setLength(0); } protected void appendErrorText(String text) { errors.append(text); } protected void appendErrorText(int code) { errors.append(code); } protected void appendErrorEndLine() { errors.append('\n'); } public String getErrors() { if (errors.length()==0) { return null; } else { return errors.toString(); } } }