package com.c2kernel.events; import com.c2kernel.common.InvalidDataException; 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) { super(sysKey, ClusterStorage.HISTORY, locker); } public Event addEvent(String agentName, String agentRole, int stepTransitionId, String stepName, String stepPath, String stepType, int stepCurrentState) { return addEvent(agentName, agentRole, stepTransitionId, stepName, stepPath, stepType, null, null, null, stepCurrentState); } public Event addEvent(String agentName, String agentRole, int stepTransitionId, String stepName, String stepPath, String stepType, String schemaName, Integer schemaVersion, String viewName, 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.setSchemaName(schemaName); newEvent.setSchemaVersion(schemaVersion); newEvent.setViewName(viewName); 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 InvalidDataException { return addEvent(agentName, agentRole, stepTransitionId, stepName, stepPath, stepType, null, null, null, stepCurrentState, timeString); } public Event addEvent(String agentName, String agentRole, int stepTransitionId, String stepName, String stepPath, String stepType, String schemaName, Integer schemaVersion, String viewName, int stepCurrentState, String timeString) throws InvalidDataException { 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.setSchemaName(schemaName); newEvent.setSchemaVersion(schemaVersion); newEvent.setViewName(viewName); newEvent.setCurrentState(stepCurrentState); newEvent.setTimeString(timeString); return storeNewEvent(newEvent); } private Event storeNewEvent(Event newEvent) { synchronized (this) { int newEventID = getLastId()+1; newEvent.setID(newEventID); put(newEvent.getName(), newEvent); lastID = newEventID; return newEvent; } } public Event getEvent(int id) { return get(String.valueOf(id)); } @Override public Event remove(Object key) { // forbidden return null; } }