/* * Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * bstefanescu * * $Id$ */ package org.eclipse.ecr.core.api.operation; import java.io.Serializable; import org.eclipse.ecr.core.api.CoreSession; import org.eclipse.ecr.core.api.repository.cache.DirtyUpdateChecker; /** * This class is not thread safe * TODO: should remove this class -> the command itself may be used as the event * * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a> * */ public class DefaultOperationEvent implements OperationEvent { private static final long serialVersionUID = 1L; public String id; // the command ID public String sessionId; // the sessionId that performed the modifs public String repository; // the repository name // create an identity object? (principal, key) public String userName; public ModificationSet modifications; public Object details; // should be serializable public Object dirtyUpdateTag; /** * */ public DefaultOperationEvent() { // TODO Auto-generated constructor stub } public DefaultOperationEvent(CoreSession session, String id, ModificationSet modifs) { this(session, id, modifs, null); } public DefaultOperationEvent(CoreSession session, String id, ModificationSet modifs, Serializable details) { this(session.getSessionId(), session.getRepositoryName(), session.getPrincipal().getName(), id, modifs, details); } public DefaultOperationEvent(String sessionId, String repositoryName, String principal, String id, ModificationSet modifs, Object details) { this.sessionId = sessionId; repository = repositoryName; userName = principal; this.id = id; modifications = modifs; this.details = details; this.dirtyUpdateTag = DirtyUpdateChecker.computeTag(sessionId, modifs); } @Override public Object getDetails() { return details; } @Override public String getId() { return id; } @Override public ModificationSet getModifications() { return modifications; } @Override public String getUserName() { return userName; } @Override public String getRepositoryName() { return repository; } @Override public String getSessionId() { return sessionId; } @Override public Object getDirtyUpdateTag() { return dirtyUpdateTag; } }