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

io.sphere.sdk.search.model.SearchModelImpl Maven / Gradle / Ivy

The newest version!
package io.sphere.sdk.search.model;

import io.sphere.sdk.models.Base;
import io.sphere.sdk.search.FilterExpression;

import javax.annotation.Nullable;
import java.util.List;

public class SearchModelImpl extends Base implements SearchModel {
    @Nullable
    private final SearchModel parent;
    @Nullable
    private final String pathSegment;

    public SearchModelImpl(@Nullable final SearchModel parent, @Nullable final String pathSegment) {
        this.parent = parent;
        this.pathSegment = pathSegment;
    }

    protected SearchModelImpl(@Nullable final String pathSegment) {
        this(null, pathSegment);
    }

    //for testing
    SearchModelImpl appended(final String pathSegment) {
        return new SearchModelImpl<>(this, pathSegment) ;
    }

    @Nullable
    @Override
    public String getPathSegment() {
        return pathSegment;
    }

    @Nullable
    @Override
    public SearchModel getParent() {
        return parent;
    }

    protected SearchModel searchModel(final String pathSegment) {
        return new SearchModelImpl<>(this, pathSegment);
    }

    protected BooleanSearchModel booleanSearchModel(final String pathSegment) {
        return new BooleanSearchModel<>(this, pathSegment);
    }

    protected StringSearchModel stringSearchModel(final String pathSegment) {
        return new StringSearchModel<>(this, pathSegment);
    }

    protected NumberSearchModel numberSearchModel(final String pathSegment) {
        return new NumberSearchModel<>(this, pathSegment);
    }

    protected DateSearchModel dateSearchModel(final String pathSegment) {
        return new DateSearchModel<>(this, pathSegment);
    }

    protected TimeSearchModel timeSearchModel(final String pathSegment) {
        return new TimeSearchModel<>(this, pathSegment);
    }

    protected DateTimeSearchModel datetimeSearchModel(final String pathSegment) {
        return new DateTimeSearchModel<>(this, pathSegment);
    }

    protected LocalizedStringFilterSearchModel localizedStringFilterSearchModel(final String pathSegment) {
        return new LocalizedStringFilterSearchModel<>(this, pathSegment);
    }

    protected LocalizedStringFacetSearchModel localizedStringFacetSearchModel(final String pathSegment) {
        return new LocalizedStringFacetSearchModel<>(this, pathSegment);
    }

    protected LocalizedStringFacetedSearchSearchModel localizedStringFacetedSearchSearchModel(final String pathSegment) {
        return new LocalizedStringFacetedSearchSearchModel<>(this, pathSegment);
    }

    protected EnumFilterSearchModel enumFilterSearchModel(final String pathSegment) {
        return new EnumFilterSearchModel<>(this, pathSegment);
    }

    protected EnumFacetSearchModel enumFacetSearchModel(final String pathSegment) {
        return new EnumFacetSearchModel<>(this, pathSegment);
    }

    protected EnumFacetedSearchSearchModel enumFacetedSearchSearchModel(final String pathSegment) {
        return new EnumFacetedSearchSearchModel<>(this, pathSegment);
    }

    protected LocalizedEnumFilterSearchModel localizedEnumFilterSearchModel(final String pathSegment) {
        return new LocalizedEnumFilterSearchModel<>(this, pathSegment);
    }

    protected LocalizedEnumFacetSearchModel localizedEnumFacetSearchModel(final String pathSegment) {
        return new LocalizedEnumFacetSearchModel<>(this, pathSegment);
    }

    protected LocalizedEnumFacetedSearchSearchModel localizedEnumFacetedSearchSearchModel(final String pathSegment) {
        return new LocalizedEnumFacetedSearchSearchModel<>(this, pathSegment);
    }

    protected MoneyFilterSearchModel moneyFilterSearchModel(final String pathSegment) {
        return new MoneyFilterSearchModel<>(this, pathSegment);
    }

    protected MoneyFacetSearchModel moneyFacetSearchModel(final String pathSegment) {
        return new MoneyFacetSearchModel<>(this, pathSegment);
    }

    protected MoneyFacetedSearchSearchModel moneyFacetedSearchSearchModel(final String pathSegment) {
        return new MoneyFacetedSearchSearchModel<>(this, pathSegment);
    }

    protected ReferenceFilterSearchModel referenceFilterSearchModel(final String pathSegment) {
        return new ReferenceFilterSearchModelImpl<>(this, pathSegment);
    }

    protected ReferenceFacetSearchModel referenceFacetSearchModel(final String pathSegment) {
        return new ReferenceFacetSearchModelImpl<>(this, pathSegment);
    }

    protected ReferenceFacetedSearchSearchModel referenceFacetedSearchSearchModel(final String pathSegment) {
        return new ReferenceFacetedSearchSearchModel<>(this, pathSegment);
    }

    protected ExistsAndMissingFilterSearchModelSupport existsAndMissingFilterSearchModelSupport(final String fieldName) {
        return new ExistsAndMissingFilterSearchModelSupportImpl(this, fieldName);
    }

    protected List> existsFilters() {
        return ExistsAndMissingFilterSearchModelSupportUtils.exists(this);
    }

    protected List> missingFilters() {
        return ExistsAndMissingFilterSearchModelSupportUtils.missing(this);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy