001
002package com.commercetools.api.client;
003
004import java.util.List;
005
006import io.vrap.rmf.base.client.utils.Generated;
007
008/**
009 * StoreprojectingTrait
010 * @param <T> type of extending interface
011 */
012@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
013public interface StoreprojectingTrait<T extends StoreprojectingTrait<T>> {
014    List<String> getStoreProjection();
015
016    /**
017     * set storeProjection with the specificied value
018     * @param storeProjection value to be set
019     * @param <TValue> value type
020     * @return StoreprojectingTrait
021     */
022    <TValue> StoreprojectingTrait<T> withStoreProjection(final TValue storeProjection);
023
024    /**
025     * add additional storeProjection query parameter
026     * @param storeProjection value to be added
027     * @param <TValue> value type
028     * @return StoreprojectingTrait
029     */
030    <TValue> StoreprojectingTrait<T> addStoreProjection(final TValue storeProjection);
031
032    default StoreprojectingTrait<T> asStoreprojectingTrait() {
033        return this;
034    }
035
036    @SuppressWarnings("unchecked")
037    default T asStoreprojectingTraitToBaseType() {
038        return (T) this;
039    }
040
041}