/* * Geotoolkit - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2011, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotoolkit.ignrm; import java.io.IOException; import java.io.InputStream; import java.net.URL; import javax.xml.stream.XMLStreamException; import org.geotoolkit.client.AbstractClient; import org.geotoolkit.client.ClientFactory; import org.geotoolkit.ignrm.parser.TokenParser; import org.geotoolkit.ignrm.parser.TokenInformationParser; import org.geotoolkit.security.ClientSecurity; import org.geotoolkit.storage.DataStores; import org.opengis.parameter.ParameterValueGroup; /** * IGN right management server * * @author Johann Sorel (Geomatys) * @module */ public class IGNRMClient extends AbstractClient { public IGNRMClient(final URL serverURL){ this(serverURL,null); } public IGNRMClient(final URL serverURL, final ClientSecurity security){ super(create(IGNRMClientFactory.PARAMETERS, serverURL, security)); } public IGNRMClient(final ParameterValueGroup params){ super(params); } @Override public ClientFactory getFactory() { return (ClientFactory) DataStores.getFactoryById(IGNRMClientFactory.NAME); } public GetTokenRequest createGetToken(){ return new GetTokenRequest(this); } public GetConfigRequest createGetConfig(){ return new GetConfigRequest(this); } public ReleaseTokenRequest createReleaseToken(){ return new ReleaseTokenRequest(this); } public Token getToken(final String key) throws IOException, XMLStreamException{ final GetTokenRequest request = createGetToken(); request.setKey(key); final InputStream stream = request.getResponseStream(); final TokenParser parser = new TokenParser(this, key); try{ parser.setInput(stream); return parser.read(); }finally{ parser.dispose(); stream.close(); } } public TokenInformation getConfig(final Token token) throws IOException, XMLStreamException { final GetConfigRequest request = createGetConfig(); request.setKey(token.getKey()); final InputStream stream = request.getResponseStream(); final TokenInformationParser parser = new TokenInformationParser(); try{ parser.setInput(stream); return parser.read(); }finally{ parser.dispose(); stream.close(); } } public void releaseToken(final Token token) throws IOException{ final ReleaseTokenRequest request = createReleaseToken(); request.setToken(token); final InputStream stream = request.getResponseStream(); try{ }finally{ stream.close(); } } }