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

org.catools.ws.model.CResponseHeader Maven / Gradle / Ivy

package org.catools.ws.model;

import org.apache.http.Header;
import org.apache.http.HeaderElement;
import org.catools.common.collections.CList;
import org.catools.common.extensions.types.CStringExtension;
import org.catools.common.extensions.types.interfaces.CCollectionExtension;

import java.util.Arrays;

public class CResponseHeader {
    private String name;
    private String value;
    private HeaderElement[] headerElements;

    public final CCollectionExtension Elements = new CCollectionExtension<>() {
        @Override
        public Iterable getBaseValue() {
            return headerElements == null ? new CList<>() : new CList<>(headerElements).getAll(e -> e != null).mapToList(e -> new CHeaderElement(e));
        }

        @Override
        public int hashCode() {
            return getBaseValue().hashCode();
        }

        @Override
        public boolean equals(Object obj) {
            return isEqual((Iterable) obj);
        }
    };

    public final CStringExtension Name = new CStringExtension() {
        @Override
        public String getBaseValue() {
            return name;
        }
    };

    public final CStringExtension Value = new CStringExtension() {
        @Override
        public String getBaseValue() {
            return value;
        }
    };

    public CResponseHeader() {
    }

    public CResponseHeader(Header header) {
        this(header == null ? null : header.getName(), header == null ? null : header.getValue(), header == null ? null : header.getElements());
    }

    public CResponseHeader(String name, String value, HeaderElement[] headerElements) {
        this.name = name;
        this.value = value;
        this.headerElements = headerElements;
    }

    @Override
    public String toString() {
        return "Header{" +
                "name='" + name + '\'' +
                ", value='" + value + '\'' +
                ", headerElements=" + Arrays.toString(headerElements) +
                '}';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy