All Downloads are FREE. Search and download functionalities are using the official Maven repository.

eu.ginere.base.web.services.Constants Maven / Gradle / Ivy

package eu.ginere.base.web.services;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.Set;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringEscapeUtils;

import eu.ginere.base.util.dao.DaoManagerException;
import eu.ginere.base.util.enumeration.SQLEnum;
import eu.ginere.base.web.connectors.rights.RightInterface;
import eu.ginere.base.web.listener.ContextInitializedException;
import eu.ginere.base.web.servlet.MainServlet;
import eu.ginere.base.web.servlet.info.ServletArgs;

@SuppressWarnings("serial")
public abstract class Constants extends MainServlet{

	public static final String URI = "/servlet/util/Constants";
	public static final String DESCRIPTION = "Returns the constants";

	@Override
	protected ServletArgs[] getArgs() {
		return ServletArgs.NO_ARGS;
	}
	
	protected abstract void load();
	
	public void init(ServletConfig config) throws ServletException {
		super.init(config);

		try {
		load();
		}catch (Exception e) {
			log.error("Whiles loadind constants",e);
		}
	}
//	private static Class classArray[]=new Class[]{
//		UserStatus.class,
//		FriendStatus.class,
//	};
//	
	protected long getLastModifiedException(HttpServletRequest request) {
		long sessionLastModified=getSessionLastModified(request);
		long sqlLastModified=SQLEnum.getLastModified();
		if (sqlLastModified>sessionLastModified){
			return sqlLastModified;
		} else {
			return sessionLastModified;
		}
	}
	
	protected void doService(HttpServletRequest request,
			 HttpServletResponse response) throws ServletException, IOException,DaoManagerException{

		response.setContentType("text/javascript");
		response.setCharacterEncoding("UTF-8");
		
		PrintWriter writer=response.getWriter();
		

//		writer.println("var APP_STORES = {");

//		boolean isFirst=true;
		
		Set>set=SQLEnum.getChildClasses();
		
		for (Class clazz:set){
//			if (isFirst){
//				isFirst=false;
//			} else {
//				writer.println(',');
//			}
			
			printStore(writer,clazz);
		}
		
//		writer.println("}");
		
		writer.close();
	}
	
	
	private void printStore(PrintWriter writer, Class clazz) {
//	    tipoViaStore : new Ext.data.JsonStore({  
//	        fields: ['id', 'name'], 
//	        data: <%= gSonData.toJson(TipoVia.values()) %>
//	    })


	    String name=getName(clazz);
		List list=SQLEnum.values(clazz);
		
		writer.print(StringEscapeUtils.escapeJavaScript(name));
		writer.println(" = new Ext.data.JsonStore({  ");		
		writer.println(" fields: ['id', 'name','description'],"); 
		writer.println(" data: [	");		 
		
		boolean isFirst=true;
		for (SQLEnum value:list){
//			{id:'false',name:'Disponible'},
			if (isFirst){
				isFirst=false;
			} else {
				writer.println(',');
			}

			writer.print("{id:'");
			writer.print(StringEscapeUtils.escapeJavaScript(value.getId()));
			writer.print("',name:'");
			writer.print(StringEscapeUtils.escapeJavaScript(value.getName()));
			writer.print("',description:'");
			writer.print(StringEscapeUtils.escapeJavaScript(value.getDescription()));
			writer.print("'}");
			
		}
		writer.println("]});"); 
	
	}

	private String getName(Class clazz) {
		StringBuilder buffer=new StringBuilder();
		
		buffer.append("app.stores");
		
		String className=clazz.getName();
		int index=className.lastIndexOf('.');
		
		buffer.append(className.substring(index));
		
		
		return buffer.toString();
	}


	@Override
	protected RightInterface[] getRights() throws ContextInitializedException {
		return MainServlet.PUBLIC_ACCESS;
	}

	@Override
	protected String getUri() {
		return URI;
	}

	@Override
	protected String getDescription() {
		return DESCRIPTION;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy