Agree. We could request the parser to the Guice injector by providing the appropriate type token. I think that would be a cleaner approach.

Regarding the specific API call, I think it wouldn't provide benefit: To be able to make that call we would have to parse the URI in the link to extract the different ids to be passed as a parameter to the api call. This adds the complexity, and the chance to introduce a bug, in the parsing logic.

It is also worth taking into account that the Abiquo Api does a strong use of the HATEOAS concept, and if you take a look at the api classes you con't see any endpoint (almost any) declared there. This is because the endpoints are extracted from the objects returned by the Api. This has the advantages that if, for any reason, a URI changed, jclouds would continue working as all endpoints are generated dinamically. If we manually parse the URI in the link, we will lose this.

Apart from that, calling the generic method in the AbiquoApi to get the link, only implies one manual step: parsing the result. But we already know the type of the result and can ask Guice for the appropriate parser, so that shouldn't be a problem.

Personally, I think it is cleaner to use the method to get a generic link and manually call the parser to parse the result, than parsing the URI of the link to call a concrete method of the specific api class. (I'm open to discuss this though :D).