Package com.adaptrex.core.view.tapestry.components

Source Code of com.adaptrex.core.view.tapestry.components.Store

package com.adaptrex.core.view.tapestry.components;

import javax.servlet.http.HttpServletRequest;

import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.RequestGlobals;

import com.adaptrex.core.view.StoreComponent;

public class Store {

  @Inject  private RequestGlobals requestGlobals;
 
  @Parameter @Property private String ns;
  @Parameter @Property private String namespace;
 
  @Parameter @Property private String factory;
  @Parameter @Property private String table;
  @Parameter @Property private String name;
  @Parameter @Property private Object clearonpageload;
  @Parameter @Property private Object clearremovedonload;
  @Parameter @Property private Object autosync;
  @Parameter @Property private Object autoload;
  @Parameter @Property private Object remotegroup;
  @Parameter @Property private Object remotesort;
  @Parameter @Property private Object remotefilter;
  @Parameter @Property private Object sortonfilter;
  @Parameter @Property private String buffered;
  @Parameter @Property private Object inline;
  @Parameter @Property private String where;
  @Parameter @Property private String param;
  @Parameter @Property private String filter;
  @Parameter @Property private String group;
  @Parameter @Property private String sort;
  @Parameter @Property private Integer start;
  @Parameter @Property private Integer pagesize;
  @Parameter @Property private Object rest;
  @Parameter @Property private String include;
  @Parameter @Property private String exclude;
  @Parameter @Property private String associations;
 
  public String getBody() {
    HttpServletRequest request = requestGlobals.getHTTPServletRequest();
   
    if (ns == null) ns = namespace;
   
    StoreComponent storeComponent = new StoreComponent(request, table, factory);
    if (ns != null)       storeComponent.setNamespace(ns);
   
    if (name != null)      storeComponent.setModelName(name);
    if (include != null)    storeComponent.setInclude(include);
    if (exclude != null)    storeComponent.setExclude(exclude);
    if (associations != null)   storeComponent.setAssociations(associations);
    if (where != null)       storeComponent.setWhere(where);
   
    if (pagesize != null)
      storeComponent.setPageSize(getInteger(pagesize));
    if (start != null)      
      storeComponent.setStart(getInteger(start));
   
   
    if (rest != null)
      storeComponent.setRest(String.valueOf(rest));
     
    if (clearonpageload != null)
      storeComponent.setClearOnPageLoad(getBoolean(clearonpageload));

    if (clearremovedonload != null)
      storeComponent.setClearRemovedOnLoad(getBoolean(clearremovedonload));
     
    if (autosync != null)
      storeComponent.setAutoSync(getBoolean(autosync));
   
    if (autoload != null)
      storeComponent.setAutoLoad(getBoolean(autoload));
   
    if (remotegroup != null)
      storeComponent.setRemoteGroup(getBoolean(remotegroup));
   
    if (remotesort != null)
      storeComponent.setRemoteSort(getBoolean(remotesort));
   
    if (remotefilter != null)
      storeComponent.setRemoteFilter(getBoolean(remotefilter));
   
    if (sortonfilter != null)
      storeComponent.setSortOnFilter(getBoolean(sortonfilter));
   
    if (inline != null)
      storeComponent.setInline(getBoolean(inline));
   
   
    if (buffered != null && !buffered.contains("false")) {
      storeComponent.setBuffered(true);
      if (!buffered.equals("true")) {
        String[] parts = buffered.split(":");
        storeComponent.setTrailingBufferZone(Integer.valueOf(parts[0]));
        if (parts.length > 0) {
          storeComponent.setLeadingBufferZone(Integer.valueOf(parts[1]));
        }
        if (parts.length > 1) {
          storeComponent.setPurgePageCount(Integer.valueOf(parts[2]));
        }
      }
    }
   
    if (param != null) {
      for (String p : param.split(",")) {
        String[] parts = p.split("=");
        storeComponent.addParam(parts[0], parts[1]);
      }
    }
   
    if (filter != null) {
      for (String p : filter.split(",")) {
        String[] parts = p.split("=");
        storeComponent.addFilter(parts[0], parts[1]);
      }
    }
   
    if (group != null) {
      for (String groupItem : group.split(",")) {
        String[] parts = groupItem.split(":");
        String property = parts[0];
        String direction = parts.length > 1 ? parts[1] : null;
        String root = parts.length > 2 ? parts[2] : null;
        storeComponent.addGrouper(property, direction, root);
      }
    }
   
    if (sort != null) {
      for (String sortItem : sort.split(",")) {
        String[] parts = sortItem.split(":");
        String property = parts[0];
        String direction = parts.length > 1 ? parts[1] : "ASC";
        String root = parts.length > 2 ? parts[2] : null;
        storeComponent.addSorter(property, direction, root);
      }
    }
   
    return storeComponent.toString();
  }

  private Boolean getBoolean(Object param) {
    if (param.getClass().equals(String.class)) {
      param = Boolean.valueOf(String.valueOf(param));
    }
    return (Boolean) param;
  }
 
  private Integer getInteger(Object param) {
    if (param.getClass().equals(String.class)) {
      param = Integer.valueOf(String.valueOf(param));
    }
    return (Integer) param;
 
}
TOP

Related Classes of com.adaptrex.core.view.tapestry.components.Store

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.