blob: e2d84a7e60b77a34db601c5ffc53b3ca24f9b672 [file] [log] [blame]
/****************************************************************************
* Copyright (c) 2004 Composent, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Composent, Inc. - initial API and implementation
*****************************************************************************/
/*
* Created on Nov 29, 2004
*
*/
package org.eclipse.ecf.provider.generic;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.sharedobject.ISharedObjectConfig;
import org.eclipse.ecf.core.sharedobject.ISharedObjectContext;
import org.eclipse.ecf.core.sharedobject.util.IQueueEnqueue;
public class SOConfig implements ISharedObjectConfig {
protected SOContainer container = null;
protected ID sharedObjectID;
protected ID homeContainerID;
protected boolean isActive;
protected Map properties;
protected SOContext context;
public SOConfig(ID sharedObjectID, ID homeContainerID, SOContainer cont, Map dict) {
super();
this.sharedObjectID = sharedObjectID;
this.homeContainerID = homeContainerID;
isActive = false;
properties = dict;
this.container = cont;
}
protected void makeActive(IQueueEnqueue queue) {
isActive = true;
if (container.getID().equals(homeContainerID)) {
this.context = container.createSharedObjectContext(this, queue);
} else {
this.context = container.createRemoteSharedObjectContext(this, queue);
}
}
protected synchronized void makeInactive() {
if (isActive) {
this.context.makeInactive();
this.context = null;
isActive = false;
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ecf.core.ISharedObjectConfig#getSharedObjectID()
*/
public ID getSharedObjectID() {
return sharedObjectID;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ecf.core.ISharedObjectConfig#getHomeContainerID()
*/
public ID getHomeContainerID() {
return homeContainerID;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ecf.core.ISharedObjectConfig#getContext()
*/
public ISharedObjectContext getContext() {
if (isActive) {
return context;
}
return null;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ecf.core.ISharedObjectConfig#getProperties()
*/
public Map getProperties() {
if (properties == null)
return new HashMap();
return properties;
}
}