package org.archstudio.myx.fw;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
class MyxBasicProvidedServiceProvider implements IMyxProvidedServiceProvider {
protected Map<IMyxName, Object> serviceMap = Collections.synchronizedMap(new HashMap<IMyxName, Object>());
public MyxBasicProvidedServiceProvider() {
}
public MyxBasicProvidedServiceProvider(IMyxName[] interfaceNames, Object[] serviceObjects) {
if (interfaceNames.length != serviceObjects.length) {
throw new IllegalArgumentException("Length mismatch.");
}
for (int i = 0; i < interfaceNames.length; i++) {
putService(interfaceNames[i], serviceObjects[i]);
}
}
public void putService(IMyxName interfaceName, Object serviceObject) {
serviceMap.put(interfaceName, serviceObject);
}
public void removeService(IMyxName interfaceName) {
serviceMap.remove(interfaceName);
}
public IMyxName[] getAllInterfaceNames() {
return serviceMap.keySet().toArray(new IMyxName[serviceMap.keySet().size()]);
}
@Override
public Object getServiceObject(IMyxName interfaceName) {
return serviceMap.get(interfaceName);
}
}