package org.panlab.software.fstoolkit.amazon;
import java.lang.reflect.InvocationTargetException;
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 org.panlab.software.fci.core.ResourceContext;
import org.panlab.software.fci.core.ResourceProxy;
import FederationOffice.extensionInterfaces.IProvisionResource;
import FederationOffice.federationscenarios.RequestedFederationScenario;
import FederationOffice.federationscenarios.ResourceRequest;
import FederationOffice.federationscenarios.ResourceSettingInstance;
public class ProvisionResource implements IProvisionResource {
public ProvisionResource() {
// TODO Auto-generated constructor stub
}
@Override
public boolean supportsOffice(String officeName) {
return Activator.getDefault().getOfficeName().equalsIgnoreCase(officeName);
}
@Override
public String getSupportedOfficeName() {
return Activator.getDefault().getOfficeName();
}
@Override
public String provisionResource(String officeName,
RequestedFederationScenario scenario, ResourceRequest resourceReq) {
System.out.println("officeName = "+officeName+", scenario=" +scenario.toString()
+", resource=" +resourceReq.toString());
System.out.println(", getRefOfferedResource=" +resourceReq.getRefOfferedResource().toString() );
System.out.println(", getBelongsToSite=" +resourceReq.getRefOfferedResource().getBelongsToSite().toString() );
System.out.println(", getBelongsToProvider=" +resourceReq.getRefOfferedResource().getBelongsToSite().getBelongsToProvider().toString() );
System.out.println(", getPtm=" +resourceReq.getRefOfferedResource().getBelongsToSite().getPtm().getIP() );
System.out.println(", getImplOfferedService=" +resourceReq.getRefOfferedResource().getImplOfferedService().toString() );
System.out.println(", getImplOfferedService.eContainer=" +resourceReq.getRefOfferedResource().getImplOfferedService().eContainer().toString() );
System.out.println(", OfficeProvider.getInstance()="+ Activator.getDefault().getResourceContext().toString() );
System.out.println(", OfficeProvider.getInstance()="+ Activator.getDefault().getResourceContext().getOfficeModel().toString() );
ResourceContext r = Activator.getDefault().getResourceContext();
ResourceProxy rproxy = r.createResourceProxyByResourceRequest(scenario.getName() , resourceReq);
if (rproxy!=null)
return rproxy.getGUID();
else
return "";
}
@Override
public String deleteResource(String officeName,
RequestedFederationScenario scenario, ResourceRequest resourceReq) {
System.out.println("DELETE RESOURCE: officeName = "+officeName+", scenario=" +scenario.toString()
+", resource=" +resourceReq.toString());
ResourceContext r = Activator.getDefault().getResourceContext();
//ResourceProxy rproxy = r. createResourceProxyByResourceRequest((scenario.getName() , resourceReq);
ResourceProxy rproxy = r.getResourceProxy( resourceReq.getRuntimeInfo().getGUID() );
if (rproxy==null)
rproxy = r.createResourceProxyByResourceRequest(scenario.getName(), resourceReq);
if (rproxy!=null)
return rproxy.DeleteResource() ;
return "failed";
}
@Override
public String updateResource(String officeName,
RequestedFederationScenario scenario, ResourceRequest resourceReq,
ResourceSettingInstance assignedSetting) {
System.out.println("officeName = "+officeName+
", read resource w guid =" + resourceReq.getRuntimeInfo().getGUID() );
ResourceContext r = Activator.getDefault().getResourceContext();
ResourceProxy rproxy = r.getResourceProxy( resourceReq.getRuntimeInfo().getGUID() );
if (rproxy==null)
rproxy = r.createResourceProxyByResourceRequest(scenario.getName(), resourceReq);
if (rproxy!=null)
return rproxy.updateParameterValueOfResource(assignedSetting.getRefResourceSetting().getName(),
assignedSetting.getStaticValue());
return "failed";
}
@Override
public String readResource(String officeName,
RequestedFederationScenario scenario, ResourceRequest resourceReq,
ResourceSettingInstance assignedSetting, boolean forceUpdate) {
System.out.println("officeName = "+officeName+
", read resource w guid =" + resourceReq.getRuntimeInfo().getGUID() );
ResourceContext r = Activator.getDefault().getResourceContext();
ResourceProxy rproxy = r.getResourceProxy( resourceReq.getRuntimeInfo().getGUID() );
if (rproxy==null)
rproxy = r.createResourceProxyByResourceRequest(scenario.getName(), resourceReq);
if (rproxy!=null)
return rproxy.getParameterValueOfResource(assignedSetting.getRefResourceSetting().getName() , forceUpdate);
return "failed";
}
@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
}
}