Package com.agiletec.plugins.jpwebdynamicform.apsadmin.message.common

Source Code of com.agiletec.plugins.jpwebdynamicform.apsadmin.message.common.AbstractMessageAction

/*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
* This file is part of Entando Enterprise Edition software.
* You can redistribute it and/or modify it
* under the terms of the Entando's EULA
*
* See the file License for the specific language governing permissions  
* and limitations under the License
*
*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
*/
package com.agiletec.plugins.jpwebdynamicform.apsadmin.message.common;

import java.util.List;

import com.agiletec.aps.system.ApsSystemUtils;
import com.agiletec.aps.system.services.lang.Lang;
import com.agiletec.apsadmin.system.BaseAction;
import com.agiletec.plugins.jpwebdynamicform.aps.system.services.message.IMessageManager;
import com.agiletec.plugins.jpwebdynamicform.aps.system.services.message.model.Answer;
import com.agiletec.plugins.jpwebdynamicform.aps.system.services.message.model.Message;

/**
* Abstract class for access to a Message.
* @author E.Mezzano
*/
public abstract class AbstractMessageAction extends BaseAction {
 
  /**
   * Verify if the user is allowed to access to the given message.
   * @param message The message for whom check the access.
   * @return true if the access is allowed, false otherwise.
   */
  protected abstract boolean isUserAllowed(Message message);
 
  /**
   * Executes the operation of visualization of a message.
   * @return The action result code.
   */
  public String view() {
    try {
      Message message = this.getMessage();
      if (message == null || !this.isUserAllowed(message)) {
        this.addActionError(this.getText("Message.message.notFound"));
        return "messageNotFound";
      }
    } catch(Throwable t) {
      ApsSystemUtils.logThrowable(t, this, "view");
      return FAILURE;
    }
    return SUCCESS;
  }
 
  /**
   * Returns the desired message.
   * @return The desired message.
   */
  public Message getMessage() {
    if (this._message == null) {
      try {
        this._message = this.getMessageManager().getMessage(this.getId());
      } catch(Throwable t) {
        ApsSystemUtils.logThrowable(t, this, "getMessage");
        throw new RuntimeException("Error finding message", t);
      }
    }
    return _message;
  }
 
  /**
   * Returns the answers to the current message.
   * @return The answers to the current message.
   */
  public List<Answer> getAnswers() {
    if (this._answers == null) {
      try {
        this._answers = this.getMessageManager().getAnswers(this.getId());
      } catch(Throwable t) {
        ApsSystemUtils.logThrowable(t, this, "getAnswers");
        throw new RuntimeException("Error finding answers to current message", t);
      }
    }
    return _answers;
  }
 
  /**
   * Return the default system lang.
   * @return The default lang.
   */
  public Lang getDefaultLang() {
    return this.getLangManager().getDefaultLang();
  }
 
  /**
   * Returns the message identifier.
   * @return The message identifier.
   */
  public String getId() {
    return _id;
  }
  /**
   * Sets the message identifier.
   * @param id The message identifier.
   */
  public void setId(String id) {
    this._id = id;
  }
 
  /**
   * Returns the MessageManager.
   * @return The MessageManager.
   */
  protected IMessageManager getMessageManager() {
    return _messageManager;
  }
 
  /**
   * Sets the MessageManager. Must be setted with Spring bean injection.
   * @param messageManager The MessageManager.
   */
  public void setMessageManager(IMessageManager messageManager) {
    this._messageManager = messageManager;
  }
 
  private String _id;
 
  private Message _message;
  private List<Answer> _answers;
 
  private IMessageManager _messageManager;
 
}
TOP

Related Classes of com.agiletec.plugins.jpwebdynamicform.apsadmin.message.common.AbstractMessageAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.