package com.c2kernel.events; import com.c2kernel.common.ObjectNotFoundException; import com.c2kernel.lookup.InvalidEntityPathException; import com.c2kernel.persistency.ClusterStorage; import com.c2kernel.persistency.RemoteMap; import com.c2kernel.utils.Logger; /** * @author Andrew Branson * * $Revision: 1.20 $ * $Date: 2004/07/21 09:55:11 $ * * Copyright (C) 2003 CERN - European Organization for Nuclear Research * All rights reserved. */ public class History extends RemoteMap { int lastID = -1; public History(int sysKey, Object locker) throws ObjectNotFoundException, InvalidEntityPathException { super(sysKey, ClusterStorage.HISTORY, locker); } public Event addEvent(String agentName, String agentRole, int stepTransitionId, String stepName, String stepPath, String stepType, int stepCurrentState) { Logger.msg(7, "History.addEvent() - creating new event for "+stepTransitionId+" on "+stepName+" in "+mSysKey); Event newEvent = new Event(); newEvent.setEntitySystemKey(mSysKey); newEvent.setAgentName(agentName); newEvent.setAgentRole(agentRole); newEvent.setTransition(stepTransitionId); newEvent.setStepName(stepName); newEvent.setStepPath(stepPath); newEvent.setStepType(stepType); newEvent.setCurrentState(stepCurrentState); newEvent.setTimeStamp(Event.getGMT()); return storeNewEvent(newEvent); } public Event addEvent(String agentName, String agentRole, int stepTransitionId, String stepName, String stepPath, String stepType, int stepCurrentState, String timeString) throws Exception { Logger.msg(7, "History.addEvent() - creating new event for "+stepTransitionId+" on "+stepName+" in "+mSysKey); Event newEvent = new Event(); newEvent.setEntitySystemKey(mSysKey); newEvent.setAgentName(agentName); newEvent.setAgentRole(agentRole); newEvent.setTransition(stepTransitionId); newEvent.setStepName(stepName); newEvent.setStepPath(stepPath); newEvent.setStepType(stepType); newEvent.setCurrentState(stepCurrentState); newEvent.setTimeString(timeString); return storeNewEvent(newEvent); } private Event storeNewEvent(Event newEvent) { synchronized (this) { int newEventID = getLastId()+1; newEvent.setID(newEventID); if (put(newEvent.getName(), newEvent) != null) { lastID = newEventID; return newEvent; } else { Logger.error("History.addEvent() - Event storage failed!"); return null; } } } public Event getEvent(int id) { return (Event)get(String.valueOf(id)); } public Object remove(Object key) { // forbidden return null; } }