Mercurial > dive4elements > http-client
diff src/main/java/de/intevation/artifacts/httpclient/http/HttpClientImpl.java @ 2:2fdfa20cfa63
Added an interface that is used to create instances of artifacts depending on the framework that includes this lib. The create() method of the HttpClient makes use of this interface.
http-client/trunk@1325 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 17 Feb 2011 11:19:02 +0000 |
parents | c9ac6642973c |
children | 19a617578b88 |
line wrap: on
line diff
--- a/src/main/java/de/intevation/artifacts/httpclient/http/HttpClientImpl.java Thu Feb 17 10:51:37 2011 +0000 +++ b/src/main/java/de/intevation/artifacts/httpclient/http/HttpClientImpl.java Thu Feb 17 11:19:02 2011 +0000 @@ -32,7 +32,8 @@ import de.intevation.artifacts.httpclient.objects.Artifact; import de.intevation.artifacts.httpclient.objects.ArtifactFactory; import de.intevation.artifacts.httpclient.utils.ArtifactProtocolUtils; -import de.intevation.artifacts.httpclient.utils.XMLUtils; +import de.intevation.artifacts.httpclient.utils.ArtifactCreator; + /** * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> @@ -68,15 +69,30 @@ } + /** + * This method creates a new artifact in the artifact server and returns + * this artifact. The new artifact is created using <i>creator</i>. If no + * {@link ArtifactCreator} is given (null), an {@link Artifact} is returned. + * + * @param doc The CREATE document. + * @param creator The {@link ArtifactCreator} that is used to extract the + * new artifact from response document of the server. + * + * @return the new artifact. + */ @Override - public Artifact create(Document doc) throws ConnectionException { + public Object create(Document doc, ArtifactCreator creator) + throws ConnectionException + { ResponseHandler handler = new DocumentResponseHandler(); try { String url = serverUrl + "/create"; Document result = (Document) handler.handle(doPost(url, doc)); - return ArtifactProtocolUtils.extractArtifact(result); + return creator == null + ? ArtifactProtocolUtils.extractArtifact(result) + : creator.create(result); } catch (IOException ioe) { throw new ConnectionException(