Search in sources :

Example 1 with SharedObjectTypeDescription

use of org.eclipse.ecf.core.sharedobject.SharedObjectTypeDescription in project ecf by eclipse.

the class RssClientSOContainer method createChannel.

public IMergeableChannel createChannel(IChannelConfig newChannelConfig) throws ECFException {
    final IChannelListener listener = newChannelConfig.getListener();
    final SharedObjectDescription sodesc = new SharedObjectDescription(FeedSharedObject.class, IDFactory.getDefault().createGUID(), new HashMap());
    final SharedObjectTypeDescription sotypedesc = sodesc.getTypeDescription();
    ISharedObject sharedObject = null;
    if (sotypedesc.getName() != null) {
        sharedObject = SharedObjectFactory.getDefault().createSharedObject(sotypedesc, new Object[] { listener });
    } else {
        sharedObject = createSharedObject(sotypedesc, listener);
    }
    final IMergeableChannel channel = (IMergeableChannel) sharedObject.getAdapter(IMergeableChannel.class);
    if (channel == null) {
        throw new SharedObjectCreateException("Cannot coerce object " + channel + " to be of type IChannel");
    }
    ID newID = sodesc.getID();
    if (newID == null) {
        newID = IDFactory.getDefault().createGUID();
    }
    Map properties = sodesc.getProperties();
    if (properties == null) {
        properties = new HashMap();
    }
    // Now add channel to container...this will block
    getSharedObjectManager().addSharedObject(newID, sharedObject, properties);
    return channel;
}
Also used : SharedObjectDescription(org.eclipse.ecf.core.sharedobject.SharedObjectDescription) IChannelListener(org.eclipse.ecf.datashare.IChannelListener) HashMap(java.util.HashMap) SharedObjectCreateException(org.eclipse.ecf.core.sharedobject.SharedObjectCreateException) SharedObjectTypeDescription(org.eclipse.ecf.core.sharedobject.SharedObjectTypeDescription) ISharedObject(org.eclipse.ecf.core.sharedobject.ISharedObject) ISharedObject(org.eclipse.ecf.core.sharedobject.ISharedObject) IMergeableChannel(org.eclipse.ecf.datashare.mergeable.IMergeableChannel) ID(org.eclipse.ecf.core.identity.ID) StringID(org.eclipse.ecf.core.identity.StringID) Map(java.util.Map) HashMap(java.util.HashMap)

Aggregations

HashMap (java.util.HashMap)1 Map (java.util.Map)1 ID (org.eclipse.ecf.core.identity.ID)1 StringID (org.eclipse.ecf.core.identity.StringID)1 ISharedObject (org.eclipse.ecf.core.sharedobject.ISharedObject)1 SharedObjectCreateException (org.eclipse.ecf.core.sharedobject.SharedObjectCreateException)1 SharedObjectDescription (org.eclipse.ecf.core.sharedobject.SharedObjectDescription)1 SharedObjectTypeDescription (org.eclipse.ecf.core.sharedobject.SharedObjectTypeDescription)1 IChannelListener (org.eclipse.ecf.datashare.IChannelListener)1 IMergeableChannel (org.eclipse.ecf.datashare.mergeable.IMergeableChannel)1