package org.occiware.clouddesigner.occi.cloud.connector;
import java.util.HashMap;
import java.util.Map;
import org.jclouds.compute.domain.NodeMetadata;
import org.jclouds.domain.Location;
import org.jclouds.domain.LoginCredentials;
import org.occiware.clouddesigner.occi.cloud.CloudFactory;
import org.occiware.clouddesigner.occi.cloud.Machine;
import org.occiware.clouddesigner.occi.cloud.Machine_Amazon_EC2;
import org.occiware.clouddesigner.occi.cloud.Machine_CloudSigma;
import org.occiware.clouddesigner.occi.cloud.Machine_GCE;
import org.occiware.clouddesigner.occi.cloud.Machine_Gogrid;
import org.occiware.clouddesigner.occi.cloud.Machine_Hp_Helion;
import org.occiware.clouddesigner.occi.cloud.Machine_OpenStack;
import org.occiware.clouddesigner.occi.cloud.Machine_ProfitBricks;
import org.occiware.clouddesigner.occi.cloud.Machine_RackSpace;
import org.occiware.clouddesigner.occi.cloud.Machine_SoftLayer;
import org.occiware.clouddesigner.occi.cloud.connector.Provider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@SuppressWarnings("all")
public class ModelHandler {
private static Logger LOGGER = LoggerFactory.getLogger(ModelHandler.class);
public Map<String, Machine> getmodelEClass() {
final Map<String, Machine> m = new HashMap<String, Machine>();
String _string = Provider.gogrid.toString();
Machine_Gogrid _createMachine_Gogrid = CloudFactory.eINSTANCE.createMachine_Gogrid();
m.put(_string, _createMachine_Gogrid);
String _string_1 = Provider.amazonec2.toString();
Machine_Amazon_EC2 _createMachine_Amazon_EC2 = CloudFactory.eINSTANCE.createMachine_Amazon_EC2();
m.put(_string_1, _createMachine_Amazon_EC2);
String _string_2 = Provider.hphelion.toString();
Machine_Hp_Helion _createMachine_Hp_Helion = CloudFactory.eINSTANCE.createMachine_Hp_Helion();
m.put(_string_2, _createMachine_Hp_Helion);
String _string_3 = Provider.google.toString();
Machine_GCE _createMachine_GCE = CloudFactory.eINSTANCE.createMachine_GCE();
m.put(_string_3, _createMachine_GCE);
String _string_4 = Provider.profitbricks.toString();
Machine_ProfitBricks _createMachine_ProfitBricks = CloudFactory.eINSTANCE.createMachine_ProfitBricks();
m.put(_string_4, _createMachine_ProfitBricks);
String _string_5 = Provider.softlayer.toString();
Machine_SoftLayer _createMachine_SoftLayer = CloudFactory.eINSTANCE.createMachine_SoftLayer();
m.put(_string_5, _createMachine_SoftLayer);
String _string_6 = Provider.openstack.toString();
Machine_OpenStack _createMachine_OpenStack = CloudFactory.eINSTANCE.createMachine_OpenStack();
m.put(_string_6, _createMachine_OpenStack);
String _string_7 = Provider.rackspace.toString();
Machine_RackSpace _createMachine_RackSpace = CloudFactory.eINSTANCE.createMachine_RackSpace();
m.put(_string_7, _createMachine_RackSpace);
String _string_8 = Provider.cloudsigma.toString();
Machine_CloudSigma _createMachine_CloudSigma = CloudFactory.eINSTANCE.createMachine_CloudSigma();
m.put(_string_8, _createMachine_CloudSigma);
return m;
}
public Machine getModel(final NodeMetadata node, final String provider) {
Map<String, Machine> _modelEClass = this.getmodelEClass();
Machine machineFactory = _modelEClass.get(provider);
if ((machineFactory instanceof Machine_OpenStack)) {
Machine_OpenStack machineOpenStack = ((Machine_OpenStack) machineFactory);
this.machineFactory_OpenStack(machineOpenStack, node);
ModelHandler.LOGGER.info(("Model setting: " + machineOpenStack));
return machineOpenStack;
}
if ((machineFactory instanceof Machine_Amazon_EC2)) {
Machine_Amazon_EC2 machineAmazonEC2 = ((Machine_Amazon_EC2) machineFactory);
this.machineFactory_Amazon_EC2(machineAmazonEC2, node);
ModelHandler.LOGGER.info(("Model setting: " + machineAmazonEC2));
return machineAmazonEC2;
}
if ((machineFactory instanceof Machine_CloudSigma)) {
Machine_CloudSigma machineCloudSigma = ((Machine_CloudSigma) machineFactory);
this.machineFactory_CloudSigma(machineCloudSigma, node);
ModelHandler.LOGGER.info(("Model setting: " + machineCloudSigma));
return machineCloudSigma;
}
if ((machineFactory instanceof Machine_GCE)) {
Machine_GCE machineGCE = ((Machine_GCE) machineFactory);
this.machineFactory_GCE(machineGCE, node);
ModelHandler.LOGGER.info(("Model setting: " + machineGCE));
return machineGCE;
}
if ((machineFactory instanceof Machine_Gogrid)) {
Machine_Gogrid machineGogrid = ((Machine_Gogrid) machineFactory);
this.machineFactory_Gogrid(machineGogrid, node);
ModelHandler.LOGGER.info(("Model setting: " + machineGogrid));
return machineGogrid;
}
if ((machineFactory instanceof Machine_Hp_Helion)) {
Machine_Hp_Helion machineHpHelion = ((Machine_Hp_Helion) machineFactory);
this.machineFactory_Hp_Helion(machineHpHelion, node);
ModelHandler.LOGGER.info(("Model setting: " + machineHpHelion));
return machineHpHelion;
}
if ((machineFactory instanceof Machine_RackSpace)) {
Machine_RackSpace machineRackSpace = ((Machine_RackSpace) machineFactory);
this.machineFactory_RackSpace(machineRackSpace, node);
ModelHandler.LOGGER.info(("Model setting: " + machineRackSpace));
return machineRackSpace;
}
if ((machineFactory instanceof Machine_SoftLayer)) {
Machine_SoftLayer machineSoftLayer = ((Machine_SoftLayer) machineFactory);
this.machineFactory_SoftLayer(machineSoftLayer, node);
ModelHandler.LOGGER.info(("Model setting: " + machineSoftLayer));
return machineSoftLayer;
}
return machineFactory;
}
public void machineFactory_OpenStack(final Machine_OpenStack machine, final NodeMetadata node) {
String _name = node.getName();
machine.setName(_name);
String _id = node.getId();
machine.setId(_id);
Location _location = node.getLocation();
String _id_1 = _location.getId();
machine.setRegion(_id_1);
String _imageId = node.getImageId();
machine.setImage_id(_imageId);
LoginCredentials _credentials = node.getCredentials();
String _user = _credentials.getUser();
machine.setUsername(_user);
LoginCredentials _credentials_1 = node.getCredentials();
String _password = _credentials_1.getPassword();
machine.setPassword(_password);
}
public Object machineFactory_Amazon_EC2(final Machine machine, final NodeMetadata node) {
return null;
}
public Object machineFactory_CloudSigma(final Machine machine, final NodeMetadata node) {
return null;
}
public Object machineFactory_GCE(final Machine machine, final NodeMetadata node) {
return null;
}
public Object machineFactory_Gogrid(final Machine machine, final NodeMetadata node) {
return null;
}
public Object machineFactory_Hp_Helion(final Machine machine, final NodeMetadata node) {
return null;
}
public Object machineFactory_ProfitBricks(final Machine machine, final NodeMetadata node) {
return null;
}
public Object machineFactory_RackSpace(final Machine machine, final NodeMetadata node) {
return null;
}
public Object machineFactory_SoftLayer(final Machine machine, final NodeMetadata node) {
return null;
}
public Object machineFactory(final Machine machine, final NodeMetadata node) {
return null;
}
}