/*******************************************************************************
* Copyright (c) 2006-2010 eBay 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
*******************************************************************************/
package org.ebayopensource.turmeric.runtime.common.impl.service;
import org.ebayopensource.turmeric.runtime.common.service.ServiceId;
/**
* @author ichernyshev
*/
public abstract class BaseInitContext {
private final ServiceId m_svcId;
private boolean m_dead;
public BaseInitContext(ServiceId svcId) {
if (svcId == null) {
throw new NullPointerException();
}
m_svcId = svcId;
}
public ServiceId getServiceId() {
checkAlive();
return m_svcId;
}
protected final void checkAlive() {
if (m_dead) {
throw new IllegalStateException(this.getClass().getSimpleName() +
" has been destroyed, make sure not to use InitContext objects " +
"after initialization has completed");
}
}
public void kill() {
m_dead = true;
}
}