AbstractContentHandle.java :  » MVC » simpleframework » net » simpleframework » content » component » Java Open Source

Java Open Source » MVC » simpleframework 
simpleframework » net » simpleframework » content » component » AbstractContentHandle.java
package net.simpleframework.content.component;

import java.util.ArrayList;
import java.util.Map;

import net.simpleframework.ado.IDataObjectQuery;
import net.simpleframework.ado.IDataObjectValue;
import net.simpleframework.ado.bean.IDataObjectBean;
import net.simpleframework.ado.bean.IIdBeanAware;
import net.simpleframework.ado.db.IQueryEntitySet;
import net.simpleframework.ado.db.ITableEntityManager;
import net.simpleframework.ado.db.QueryDialect;
import net.simpleframework.ado.db.schema.ExpressionValue;
import net.simpleframework.util.ConvertUtils;
import net.simpleframework.util.StringUtils;
import net.simpleframework.web.page.component.AbstractEntityBeanHandle;
import net.simpleframework.web.page.component.ComponentParameter;

/**
 * LGPLv3
 * 
 * @author (cknet@126.com, 13910090885)
 *         http://code.google.com/p/simpleframework/
 *         http://www.simpleframework.net
 */
public abstract class AbstractContentHandle extends AbstractEntityBeanHandle implements
    IContentHandle {

  @Override
  public Object getDocumentId(final ComponentParameter compParameter) throws Exception {
    try {
      return ConvertUtils.toLong(StringUtils.text(
          compParameter.getRequestParameter(getDocumentIdParameterName(compParameter)),
          (String) compParameter.getBeanProperty("documentId")));
    } catch (final Exception e) {
      return null;
    }
  }

  public String getDocumentIdParameterName(final ComponentParameter compParameter)
      throws Exception {
    return ContentComponentUtils.DOCUMENT_ID;
  }

  protected <T extends IIdBeanAware> IDataObjectQuery<T> beans(
      final ComponentParameter compParameter, final Object parentId, final String orderBySQL)
      throws Exception {
    @SuppressWarnings("unchecked")
    final Class<T> t = (Class<T>) getEntityBeanClass();
    final ExpressionValue ev = getBeansSQL(compParameter, parentId);
    final IQueryEntitySet<T> set;
    if (StringUtils.hasText(orderBySQL)) {
      set = getDataObjectManager(compParameter, t).query(
          new ExpressionValue(ev.getExpression() + " " + orderBySQL, ev.getValues()), t);
    } else {
      set = getDataObjectManager(compParameter, t).query(ev, t);
    }
    set.setQueryDialect(new QueryDialect() {
      @Override
      public IDataObjectValue getCountSQL() {
        return ev;
      }
    });
    return set;
  }

  protected ExpressionValue getBeansSQL(final ComponentParameter compParameter,
      final Object parentId) throws Exception {
    final ArrayList<Object> al = new ArrayList<Object>();
    final StringBuilder sql = new StringBuilder();
    final Object documentId = getDocumentId(compParameter);
    if (documentId == null) {
      sql.append(getSQLNullExpr(compParameter, "documentid"));
    } else {
      sql.append("documentid=?");
      al.add(documentId);
    }
    sql.append(" and ");
    if (parentId == null) {
      sql.append(getSQLNullExpr(compParameter, "parentid"));
    } else {
      sql.append("parentid=?");
      al.add(parentId);
    }
    return new ExpressionValue(sql.toString(), al.toArray());
  }

  @Override
  protected <T extends IDataObjectBean> void doBeforeEdit(final ComponentParameter compParameter,
      final ITableEntityManager temgr, final T t, final Map<String, Object> data,
      final Class<T> beanClazz) throws Exception {
    if (t instanceof AbstractContentBase) {
      ContentComponentUtils.updateLastUpdate(compParameter.request, (AbstractContentBase) t);
    }
  }

  @Override
  public String getIdParameterName(final ComponentParameter compParameter) {
    return null;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.