001    package com.nimbusds.oauth2.sdk.client;
002    
003    
004    import com.nimbusds.oauth2.sdk.ParseException;
005    import com.nimbusds.oauth2.sdk.Response;
006    import com.nimbusds.oauth2.sdk.http.HTTPResponse;
007    
008    
009    /**
010     * The base abstract for client registration responses.
011     *
012     * <p>Related specifications:
013     *
014     * <ul>
015     *     <li>OAuth 2.0 Dynamic Client Registration Protocol 
016     *         (draft-ietf-oauth-dyn-reg-12), section 5.
017     * </ul>
018     *
019     * @author Vladimir Dzhuvinov
020     */
021    public abstract class ClientRegistrationResponse implements Response {
022    
023    
024            /**
025             * Parses a client registration response from the specified HTTP 
026             * response.
027             *
028             * @param httpResponse The HTTP response. Must not be {@code null}.
029             *
030             * @return The client registration response.
031             *
032             * @throws ParseException If the HTTP response couldn't be parsed to a
033             *                        client registration response.
034             */
035            public static ClientRegistrationResponse parse(final HTTPResponse httpResponse)
036                    throws ParseException {
037                    
038                    if (httpResponse.getStatusCode() == HTTPResponse.SC_OK)
039                            return ClientInformationResponse.parse(httpResponse);
040                    else
041                            return ClientRegistrationErrorResponse.parse(httpResponse);
042            }
043    }