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

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

import java.util.Date;
import java.util.regex.MatchResult;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.http.HttpServletRequest;

import net.simpleframework.ado.db.ITableEntityManager;
import net.simpleframework.organization.account.AccountSession;
import net.simpleframework.organization.account.IAccount;
import net.simpleframework.organization.user.IUser;
import net.simpleframework.util.StringUtils;
import net.simpleframework.web.page.component.ui.htmleditor.HtmlEditorRegistry;

/**
 * LGPLv3
 * 
 * @author (cknet@126.com, 13910090885)
 *         http://code.google.com/p/simpleframework/
 *         http://www.simpleframework.net
 */
public abstract class ContentComponentUtils {
  public static final String DOCUMENT_ID = "__document_Id";

  public static void initContentBean(final HttpServletRequest request,
      final ITableEntityManager manager, final AbstractContentBase bean) {
    bean.setId(manager.nextId("id"));
    bean.setCreateDate(new Date());
    final IAccount account = AccountSession.getLogin(request.getSession());
    if (account != null) {
      final IUser user = account.getUser();
      bean.setUserId(user.getId());
    }
  }

  public static void updateLastUpdate(final HttpServletRequest request,
      final AbstractContentBase bean) {
    bean.setLastUpdate(new Date());
    final IAccount account = AccountSession.getLogin(request.getSession());
    if (account != null) {
      final IUser user = account.getUser();
      bean.setLastUserId(user.getId());
    }
  }

  private static final Pattern EXPR_PATTERN = Pattern
      .compile("<script[^>]*>([\\S\\s]*?)</script>");

  public static String stripScripts(final String content) {
    if (StringUtils.hasText(content)) {
      return EXPR_PATTERN.matcher(content).replaceAll("");
    } else {
      return content;
    }
  }

  private static final Pattern smileyPattern = Pattern
      .compile("[\\s\\S]*\\[:em(\\d+)\\][\\s\\S]*");

  public static String doContent(final String content) {
    final StringBuilder sb = new StringBuilder();
    sb.append(content);
    while (true) {
      final Matcher matcher = smileyPattern.matcher(sb.toString());
      if (matcher.matches()) {
        final MatchResult result = matcher.toMatchResult();
        final String group = result.group(1);
        final String tmp = sb.toString();
        sb.setLength(0);
        sb.append(tmp.substring(0, result.start(1) - 4));
        sb.append("<img src=\"").append(
            HtmlEditorRegistry.getHtmlEditorRegistry().getResourceHomePath());
        sb.append("/smiley/").append(group).append(".gif\">");
        sb.append(tmp.substring(result.end(1) + 1));
      } else {
        break;
      }
    }
    return stripScripts(sb.toString());
  }
}
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.