public Invoker createInvoker(Operation operation) {
String operationName = operation.getName();
String uri = endpointReference.getDeployedURI();
if (operationName.equals("get")) {
itemXMLType = new DataTypeImpl<Class<?>>(String.class.getName(), String.class, String.class);
DataType<XMLType> outputType = operation.getOutputType().getLogical().get(0);
itemClassType = outputType;
if (itemClassType.getPhysical() == org.apache.abdera.model.Entry.class) {
supportsFeedEntries = true;
}
return new AtomBindingInvoker.GetInvoker(operation, uri, httpClient, authorizationHeader, this);
} else if (operationName.equals("post")) {
return new AtomBindingInvoker.PostInvoker(operation, uri, httpClient, authorizationHeader, this);
} else if (operationName.equals("put")) {
return new AtomBindingInvoker.PutInvoker(operation, uri, httpClient, authorizationHeader, this);
} else if (operationName.equals("delete")) {
return new AtomBindingInvoker.DeleteInvoker(operation, uri, httpClient, authorizationHeader, this);
} else if (operationName.equals("getFeed") || operationName.equals("getAll")) {
return new AtomBindingInvoker.GetAllInvoker(operation, uri, httpClient, authorizationHeader, this);
} else if (operationName.equals("postMedia")) {
return new AtomBindingInvoker.PostMediaInvoker(operation, uri, httpClient, authorizationHeader, this);
} else if (operationName.equals("putMedia")) {
return new AtomBindingInvoker.PutMediaInvoker(operation, uri, httpClient, authorizationHeader, this);
} else if (operationName.equals("query")) {
return new AtomBindingInvoker.QueryInvoker(operation, uri, httpClient, authorizationHeader, this);
}
return new AtomBindingInvoker(operation, uri, httpClient, authorizationHeader, this);
}