package gr.upatras.ece.nam.fstoolkit.localprovisioningengine; import java.lang.reflect.InvocationTargetException; import java.util.List; import java.util.Vector; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.TreeIterator; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EOperation; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.resource.Resource; import brokermodel.extensionInterfaces.IProvisioningJobEvent; import brokermodel.extensionInterfaces.IProvisioningJobListener; import brokermodel.federationscenarios.RequestedFederationScenario; import brokermodel.federationscenarios.ResourceRequest; public class ProvisioningJobBroadcaster implements IProvisioningJobListener { private static ProvisioningJobBroadcaster instance; private List<IProvisioningJobListener> listeners = null; public static ProvisioningJobBroadcaster getInstance() { if (instance == null) instance = new ProvisioningJobBroadcaster(); return instance; } public ProvisioningJobBroadcaster() { listeners = new Vector<IProvisioningJobListener>(); } @Override public void initialize(EObject source) { ProvisioningJobBroadcaster obj = ProvisioningJobBroadcaster.getInstance(); if ( source instanceof IProvisioningJobListener){ obj.listeners.add( (IProvisioningJobListener)source); } } @Override public void eventOccured(IProvisioningJobEvent event) { for (IProvisioningJobListener iterable_element : listeners) { iterable_element.eventOccured(event); } } @Override public void terminate() { // TODO Auto-generated method stub } public void eventOccuredOnScenario( final RequestedFederationScenario schedScenario) { ProvisioningJobBroadcaster.getInstance().eventOccured( new ProvisioningJobEvent(schedScenario, null)); } public void eventOccuredOnResource(final ResourceRequest resourceReq) { RequestedFederationScenario schedScenario = null; if (resourceReq.eContainer()!=null ) if (resourceReq.eContainer().eContainer()!=null ) if (resourceReq.eContainer().eContainer() instanceof RequestedFederationScenario ) schedScenario = (RequestedFederationScenario)resourceReq.eContainer().eContainer(); ProvisioningJobBroadcaster.getInstance().eventOccured( new ProvisioningJobEvent(schedScenario, resourceReq) ); } @Override public EClass eClass() { // TODO Auto-generated method stub return null; } @Override public Resource eResource() { // TODO Auto-generated method stub return null; } @Override public EObject eContainer() { // TODO Auto-generated method stub return null; } @Override public EStructuralFeature eContainingFeature() { // TODO Auto-generated method stub return null; } @Override public EReference eContainmentFeature() { // TODO Auto-generated method stub return null; } @Override public EList<EObject> eContents() { // TODO Auto-generated method stub return null; } @Override public TreeIterator<EObject> eAllContents() { // TODO Auto-generated method stub return null; } @Override public boolean eIsProxy() { // TODO Auto-generated method stub return false; } @Override public EList<EObject> eCrossReferences() { // TODO Auto-generated method stub return null; } @Override public Object eGet(EStructuralFeature feature) { // TODO Auto-generated method stub return null; } @Override public Object eGet(EStructuralFeature feature, boolean resolve) { // TODO Auto-generated method stub return null; } @Override public void eSet(EStructuralFeature feature, Object newValue) { // TODO Auto-generated method stub } @Override public boolean eIsSet(EStructuralFeature feature) { // TODO Auto-generated method stub return false; } @Override public void eUnset(EStructuralFeature feature) { // TODO Auto-generated method stub } @Override public Object eInvoke(EOperation operation, EList<?> arguments) throws InvocationTargetException { // TODO Auto-generated method stub return null; } @Override public EList<Adapter> eAdapters() { // TODO Auto-generated method stub return null; } @Override public boolean eDeliver() { // TODO Auto-generated method stub return false; } @Override public void eSetDeliver(boolean deliver) { // TODO Auto-generated method stub } @Override public void eNotify(Notification notification) { // TODO Auto-generated method stub } }