/***************************************************************************
* Copyright (c) 2013 VMware, Inc. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
***************************************************************************/
package com.vmware.vhadoop.vhm.events;
import com.vmware.vhadoop.api.vhm.events.NotificationEvent;
public abstract class AbstractNotificationEvent implements NotificationEvent {
private final boolean _canClearQueue;
private final boolean _canBeClearedFromQueue;
private String _shortName;
private final long _timestampCreated;
public AbstractNotificationEvent(boolean canClearQueue, boolean canBeClearedFromQueue) {
_canClearQueue = canClearQueue;
_canBeClearedFromQueue = canBeClearedFromQueue;
_timestampCreated = System.currentTimeMillis();
}
@Override
public boolean getCanClearQueue() {
return _canClearQueue;
}
@Override
public boolean getCanBeClearedFromQueue() {
return _canBeClearedFromQueue;
}
@Override
public String toString() {
if (_shortName == null) {
String className = getClass().getName();
if (className.indexOf('$') > 0) {
_shortName = className.substring(className.lastIndexOf('$')+1); /* Only works as inner class */
} else {
_shortName = className;
}
}
return _shortName;
}
@Override
public boolean isSameEventTypeAs(com.vmware.vhadoop.api.vhm.events.NotificationEvent next) {
return this.getClass().equals(next.getClass());
}
@Override
public long getTimestamp() {
return _timestampCreated;
}
}