package com.k_int.webapp3;

import com.opensymphony.xwork2.ActionSupport;

import org.apache.struts2.interceptor.ServletRequestAware;

import javax.servlet.http.HttpServletRequest;

import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.w3c.dom.Document;

public abstract class AbstractXmlOrHtmlAction extends ActionSupport implements ServletRequestAware, ApplicationContextAware {
  protected HttpServletRequest request;
  protected ApplicationContext ctx;
  protected Document doc;
  protected String response_type;
      
  public void setServletRequest(HttpServletRequest request) { this.request = request;   }
  public void setApplicationContext(ApplicationContext ctx) { this.ctx = ctx;           }
  public Document getDoc()                                  { return doc;               }
  
  public abstract String responseSpecificExecute() throws Exception;
  
  public String execute() throws Exception {
    response_type  = "html";
    String accept_header = request.getHeader("Accept");

    if (accept_header==null || !accept_header.contains("html")) {
      response_type="xml";
    }
    
    return responseSpecificExecute();
  }
}