/* * $Revision: 1.13 $ * * $Date: 2004/11/22 09:12:28 $ * * Copyright (C) 2001 CERN - European Organization for Nuclear Research * All rights reserved. */ package com.c2kernel.events; import java.util.Calendar; import com.c2kernel.common.GTimeStamp; import com.c2kernel.entity.C2KLocalObject; import com.c2kernel.persistency.ClusterStorage; /** * The data structure of events, which are passed over the event service. * * Events are incrementaly numbered objects maintained by the History. * * @version $Revision: 1.13 $ $Date: 2004/11/22 09:12:28 $ * @author $Author: abranson $ */ public class Event implements C2KLocalObject { int mID, mEntitySystemKey, mType, mCurrentState, mTransition; String mName, mStepName, mStepPath, mStepType, mAgentName, mAgentCentre, mAgentRole; GTimeStamp mTimeStamp; public void setID( int id ) { mID = id; mName = String.valueOf(id); } /** */ public void setEntitySystemKey( int systemKey ) { mEntitySystemKey = systemKey; } /** * Set the Event Type, in parameter is an integer. */ public void setType(int type) { mType = type; } /** * Set the Event Name, in parameter is a String */ public void setName(String name) { mName = name; try { mID = Integer.parseInt(name); } catch (NumberFormatException ex) { mID = -1; } } /** * Set the StepPath of the Event, in parameter is a String */ public void setStepName(String name) { mStepName = name; } /** * Set the StepPath of the Event, in parameter is a String */ public void setStepPath(String path) { mStepPath = path; } /** * Set the StepType of the Event, in parameter is a String */ public void setStepType(String type) { mStepType = type; } public void setCurrentState(int state) { mCurrentState = state; } /** * Set the AgentInfo in the Event, in parameter is an AgentInfo */ public void setAgentName(String agentName) { mAgentName = agentName; } public void setAgentCentre(String agentCentre) { mAgentCentre = agentCentre; } public void setAgentRole(String agentRole) { mAgentRole = agentRole; } /** * Set the TimeStamp in the Event, in parameter is an GTimeStamp */ public void setTimeStamp(GTimeStamp inTimeStamp) { mTimeStamp = inTimeStamp; } /** * Return the Event's ID */ public int getID() { return mID; } /** */ public int getEntitySystemKey() { return mEntitySystemKey; } /** * Return the Event Type */ public int getType() { return mType; } /** * Return the Event Name */ public String getName() { return mName; } /** * Return the StepPath of the Event. */ public String getStepName() { return mStepName; } /** * Return the StepPath of the Event. */ public String getStepPath() { return mStepPath; } /** * Return the StepPath of the Event. */ public String getStepType() { return mStepType; } public int getCurrentState() { return mCurrentState; } /** * Return the AgentInfo of the Event. */ public String getAgentName() { if (mAgentCentre != null) return mAgentCentre+"/"+mAgentName; return mAgentName; } public String getAgentRole() { return mAgentRole; } /** * Return the Event's TimeStamp. */ public GTimeStamp getTimeStamp() { return mTimeStamp; } /** * Return the TimeStamp in a form that will * convert nicely to a String * YYYY-MM-DD HH:MI:SS */ public String getTimeString() { return Event.timeToString(mTimeStamp); } public static String timeToString(GTimeStamp timeStamp) { StringBuffer time = new StringBuffer().append(timeStamp.mYear).append("-"); if (timeStamp.mMonth<10) time.append("0"); time.append(timeStamp.mMonth).append("-"); if (timeStamp.mDay<10) time.append("0"); time.append(timeStamp.mDay).append(" "); if (timeStamp.mHour<10) time.append("0"); time.append(timeStamp.mHour).append(":"); if (timeStamp.mMinute<10) time.append("0"); time.append(timeStamp.mMinute).append(":"); if (timeStamp.mSecond<10) time.append("0"); time.append(timeStamp.mSecond); return time.toString(); } public void setTimeString(String time) throws Exception { if (time.length() == 19) mTimeStamp = new GTimeStamp( Integer.parseInt(time.substring(0,4)), Integer.parseInt(time.substring(5,7)), Integer.parseInt(time.substring(8,10)), Integer.parseInt(time.substring(11,13)), Integer.parseInt(time.substring(14,16)), Integer.parseInt(time.substring(17,19)), Calendar.getInstance().get(Calendar.ZONE_OFFSET)); else if (time.length() == 14) // support for some sql formats mTimeStamp = new GTimeStamp( Integer.parseInt(time.substring(0,4)), Integer.parseInt(time.substring(4,6)), Integer.parseInt(time.substring(6,8)), Integer.parseInt(time.substring(8,10)), Integer.parseInt(time.substring(10,12)), Integer.parseInt(time.substring(12,14)), Calendar.getInstance().get(Calendar.ZONE_OFFSET)); else throw new Exception("Unknown time format: "+time); } static public GTimeStamp getGMT() { java.util.Calendar now = Calendar.getInstance(); return new GTimeStamp( now.get(Calendar.YEAR), now.get(Calendar.MONTH)+1, now.get(Calendar.DAY_OF_MONTH), now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE), now.get(Calendar.SECOND), now.get(Calendar.ZONE_OFFSET) ); } /** * @see com.c2kernel.entity.C2KLocalObject#getClusterType() */ public String getClusterType() { return ClusterStorage.HISTORY; } /** * @return */ public int getTransition() { return mTransition; } /** * @param i */ public void setTransition(int i) { mTransition = i; } }