Package org.davinci.server.review

Source Code of org.davinci.server.review.Comment

package org.davinci.server.review;

import java.io.Serializable;

import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.SimpleTimeZone;

import maqetta.core.server.user.ReviewManager;

import org.davinci.server.review.user.Reviewer;
import org.davinci.server.user.IDavinciProject;

import org.davinci.server.util.JSONWriter;

/**
* This class represents a comment from reviewer.
*
*/
public class Comment implements Serializable {
  /**
   *
   */
  private static final long serialVersionUID = 1L;

  /*
   * This section contains the parameter names in HTTP request, which will be used when parsing a
   * comment from a request.
   */
  public static final String ID = "id";

  public static final String PAGE_STATE = "pageState";

  public static final String PAGE_STATE_LIST = "pageStateList";

  public static final String VIEW_SCENE = "viewScene";

  public static final String VIEW_SCENE_LIST = "viewSceneList";

  public static final String OWNER_ID = "ownerId";
 
  public static final String DESIGNER_ID = "designerId";

  public static final String SUBJECT = "subject";

  public static final String CONTENT = "content";

//  public static final String ORDER = "order";

//  public static final String DEPTH = "depth";

  public static final String DRAWING_JSON = "drawingJson";

  public static final String FLAG = "flag";

  public static final String CREATED = "created";

//  public static final String PREVIOUS_ORDER = "previous";

//  public static final String NEXT_ORDER = "next";

  public static final String REPLY_TO = "replyTo";

  public static final String EMAIL = "email";

  public static final String PAGE_NAME = "pageName";

  public static final String REOPEN_VERSION = "reopenVersion";

  // Indicates which fields should be included when transforming object to
  // Json format.
  private static Map<String, Boolean> fieldInclusionMap = new HashMap<String, Boolean>();

  /*
   * Non-static members
   */
  private String id;

  private String pageState;

  private String pageStateList;

  private String viewScene;

  private String viewSceneList;

  private String drawingJson;

  private String ownerId;
 
  private String designerId;

  private String subject;

  private String content;

  private Date created;
 
  private Date updateTime;

//  private float order;

//  private short depth;

  private String replyTo;

  private String email;

  // Which project the comment belongs to
  private IDavinciProject project;

  private String pageName;
 
  private String pageVersion;

  private String reopenVersion;

  static {
    fieldInclusionMap.put(Comment.ID, Boolean.TRUE);
    fieldInclusionMap.put(Comment.PAGE_STATE, Boolean.TRUE);
    fieldInclusionMap.put(Comment.PAGE_STATE_LIST, Boolean.TRUE);
    fieldInclusionMap.put(Comment.VIEW_SCENE, Boolean.TRUE);
    fieldInclusionMap.put(Comment.VIEW_SCENE_LIST, Boolean.TRUE);
    fieldInclusionMap.put(Comment.DESIGNER_ID, Boolean.TRUE);
    fieldInclusionMap.put(Comment.PAGE_NAME, Boolean.TRUE);
    fieldInclusionMap.put(Comment.OWNER_ID, Boolean.TRUE);
    fieldInclusionMap.put(Comment.REPLY_TO, Boolean.TRUE);
    fieldInclusionMap.put(Comment.EMAIL, Boolean.TRUE);
    fieldInclusionMap.put(Comment.SUBJECT, Boolean.TRUE);
    fieldInclusionMap.put(Comment.CONTENT, Boolean.TRUE);
    fieldInclusionMap.put(Comment.CREATED, Boolean.TRUE);
//    fieldInclusionMap.put(Comment.ORDER, Boolean.TRUE);
//    fieldInclusionMap.put(Comment.DEPTH, Boolean.TRUE);
    fieldInclusionMap.put(Comment.DRAWING_JSON, Boolean.TRUE);

  }

  public Comment() {
    id = "";
  }

  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }

  public String getDrawingJson() {
    return drawingJson;
  }

  public void setDrawingJson(String drawingJson) {
    this.drawingJson = drawingJson;
  }

  public String getOwnerId() {
    return ownerId;
  }

  public void setOwnerId(String ownerId) {
    this.ownerId = ownerId;
  }
 
  public String getDesignerId() {
    return designerId;
  }

  public void setDesignerId(String designerId) {
    this.designerId = designerId;
  }

  public String getSubject() {
    return subject;
  }

  public void setSubject(String subject) {
    this.subject = subject;
  }

  public String getContent() {
    return content;
  }

  public void setContent(String content) {
    this.content = content;
  }

  public Date getCreated() {
    return created;
  }

  public void setCreated(Date created) {
    this.created = created;
  }

//  public float getOrder() {
//    return order;
//  }
//
//  public void setOrder(float order) {
//    this.order = order;
//  }

//  public short getDepth() {
//    return depth;
//  }
//
//  public void setDepth(short depth) {
//    this.depth = depth;
//  }

  public String getPageState() {
    return pageState;
  }

  public void setPageState(String pageState) {
    this.pageState = pageState;
  }

  public String getPageStateList() {
    return pageStateList;
  }

  public void setPageStateList(String pageStateList) {
    this.pageStateList = pageStateList;
  }

  public String getViewScene() {
    return viewScene;
  }

  public void setViewScene(String viewScene) {
    this.viewScene = viewScene;
  }

  public String getViewSceneList() {
    return viewSceneList;
  }

  public void setViewSceneList(String viewSceneList) {
    this.viewSceneList = viewSceneList;
  }

  public IDavinciProject getProject() {
    return project;
  }

  public void setProject(IDavinciProject project) {
    this.project = project;
  }

  public void setReplyTo(String replyTo) {
    this.replyTo = replyTo;
  }

  public String getReplyTo() {
    return replyTo;
  }

  public void setEmail(String email) {
    this.email = email;
  }

  public String getEmail() {
    return email;
  }

  public void setPageName(String pageName) {
    this.pageName = pageName;
    this.pageVersion = pageName.split("/")[2];
  }

  public String getPageName() {
    return this.pageName;
  }
 
  public String getPageVersion(){
    return this.pageVersion;
  }

  public String getReopenVersion() {
    return reopenVersion;
  }

  public void setReopenVersion(String reopenVersion) {
    this.reopenVersion = reopenVersion;
  }

  /**
   * Transform the object into a Json format.
   *
   * @return
   */
  @Override
  public String toString() {
    JSONWriter writer = new JSONWriter(false);
   
    //StringBuffer jsonFormat = new StringBuffer("{");

    Field[] fields = this.getClass().getDeclaredFields();
    Boolean inclusive;
    String fieldName;
    Object returnValue;
    for (int i = 0; i < fields.length; i++) {
      fieldName = fields[i].getName();
      inclusive = Comment.fieldInclusionMap.get(fieldName);
      if (Boolean.TRUE.equals(inclusive)) {
        try {
          returnValue = fields[i].get(this);
          if ("created".equals(fieldName)) {
            SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATE_PATTERN);
            sdf.setCalendar(Calendar.getInstance(new SimpleTimeZone(0, "GMT")));
            returnValue = sdf.format((Date) returnValue);
          }
          if ("email".equals(fieldName)) {
            ReviewManager commentingManager = ReviewManager.getReviewManager();
            Reviewer reviewerUser = commentingManager.getReviewer(returnValue.toString());
            String displayName = reviewerUser.getDisplayName();
            writer.addField("displayName", null != displayName ? displayName: returnValue.toString());
          }
        } catch (Exception e) {
          returnValue = new Object();
          e.printStackTrace();
        }
       
        writer.addField(fieldName, null == returnValue ? "" : returnValue.toString());
      }
    }
    return writer.getJSON();
  }
 
  public Date getUpdateTime() {
    return updateTime;
  }

  public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
  }

  /**
   * Unit Test Driver
   *
   * @param args
   */
  public static void main(String[] args) {
  }
}
TOP

Related Classes of org.davinci.server.review.Comment

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.