001/* 002 * (C) Copyright 2006-2011 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the GNU Lesser General Public License 006 * (LGPL) version 2.1 which accompanies this distribution, and is available at 007 * http://www.gnu.org/licenses/lgpl-2.1.html 008 * 009 * This library is distributed in the hope that it will be useful, 010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 012 * Lesser General Public License for more details. 013 * 014 * Contributors: 015 * Thomas Roger <troger@nuxeo.com> 016 */ 017 018package org.nuxeo.ecm.activity; 019 020import java.util.Date; 021 022/** 023 * @author <a href="mailto:troger@nuxeo.com">Thomas Roger</a> 024 * @since 5.5 025 */ 026public final class ActivityBuilder { 027 028 private String actor; 029 030 private String displayActor; 031 032 private String verb; 033 034 private String object; 035 036 private String displayObject; 037 038 private String target; 039 040 private String displayTarget; 041 042 private String context; 043 044 private Date publishedDate; 045 046 public ActivityBuilder() { 047 // Empty constructor 048 } 049 050 public ActivityBuilder(Activity fromActivity) { 051 actor(fromActivity.getActor()); 052 context(fromActivity.getContext()); 053 displayActor(fromActivity.getDisplayActor()); 054 displayTarget(fromActivity.getDisplayTarget()); 055 displayObject(fromActivity.getDisplayObject()); 056 target(fromActivity.getTarget()); 057 verb(fromActivity.getVerb()); 058 object(fromActivity.getObject()); 059 } 060 061 public ActivityBuilder actor(String actor) { 062 this.actor = actor; 063 return this; 064 } 065 066 public ActivityBuilder displayActor(String displayActor) { 067 this.displayActor = displayActor; 068 return this; 069 } 070 071 public ActivityBuilder verb(String verb) { 072 this.verb = verb; 073 return this; 074 } 075 076 public ActivityBuilder object(String object) { 077 this.object = object; 078 return this; 079 } 080 081 public ActivityBuilder displayObject(String displayObject) { 082 this.displayObject = displayObject; 083 return this; 084 } 085 086 public ActivityBuilder target(String target) { 087 this.target = target; 088 return this; 089 } 090 091 public ActivityBuilder displayTarget(String displayTarget) { 092 this.displayTarget = displayTarget; 093 return this; 094 } 095 096 public ActivityBuilder context(String context) { 097 this.context = context; 098 return this; 099 } 100 101 public ActivityBuilder publishedDate(Date publishedDate) { 102 this.publishedDate = publishedDate; 103 return this; 104 } 105 106 public Activity build() { 107 Activity activity = new ActivityImpl(); 108 activity.setActor(actor); 109 activity.setDisplayActor(displayActor); 110 activity.setObject(object); 111 activity.setDisplayObject(displayObject); 112 activity.setTarget(target); 113 activity.setDisplayTarget(displayTarget); 114 activity.setContext(context); 115 activity.setVerb(verb); 116 Date date = publishedDate != null ? publishedDate : new Date(); 117 activity.setPublishedDate(date); 118 activity.setLastUpdatedDate(date); 119 return activity; 120 } 121 122}