All Downloads are FREE. Search and download functionalities are using the official Maven repository.

open.source.exchange.parser.HttpStatusParser Maven / Gradle / Ivy

package open.source.exchange.parser;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.HttpStatus.Series;
import org.springframework.stereotype.Service;

import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import open.source.exchange.model.ExBase;
import open.source.exchange.model.ExEnum;
import open.source.exchange.model.ExHttpStatus;
import open.source.exchange.model.ExSeries;

@Log4j2
@Service
@RequiredArgsConstructor
public class HttpStatusParser {

	@Autowired
	private EnumParser enumParser;

	@Autowired
	private SeriesParser seriesParser;

	public ExHttpStatus parse(HttpStatus httpStatus) {

		log.trace("parse -> (httpStatus) {}", httpStatus);
		ExHttpStatus exHttpStatus = null;

		if (null != httpStatus) {
			ExEnum exEnum = enumParser.parse(httpStatus);
			exHttpStatus = new ExHttpStatus(exEnum);

			int value = httpStatus.value();
			exHttpStatus.setValue(value);

			String reasonPhrase = httpStatus.getReasonPhrase();
			exHttpStatus.setReasonPhrase(reasonPhrase);

			boolean is1xxInformational = httpStatus.is1xxInformational();
			exHttpStatus.set1xxInformational(is1xxInformational);

			boolean is2xxSuccessful = httpStatus.is2xxSuccessful();
			exHttpStatus.set2xxSuccessful(is2xxSuccessful);

			boolean is3xxRedirection = httpStatus.is3xxRedirection();
			exHttpStatus.set3xxRedirection(is3xxRedirection);

			boolean is4xxClientError = httpStatus.is4xxClientError();
			exHttpStatus.set4xxClientError(is4xxClientError);

			boolean is5xxServerError = httpStatus.is5xxServerError();
			exHttpStatus.set5xxServerError(is5xxServerError);

			boolean isError = httpStatus.isError();
			exHttpStatus.setError(isError);

			Series series = httpStatus.series();
			ExSeries exSeries = seriesParser.parse(series);
			exHttpStatus.setSeries(exSeries);
		}
		return exHttpStatus;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy