/* * Copyright 2016 The original authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package io.sundr.codegen.model; import java.util.Collection; import java.util.List; import io.sundr.builder.Builder; import io.sundr.builder.Nested; import io.sundr.builder.Predicate; public interface WildcardRefFluent<A extends WildcardRefFluent<A>> extends TypeRefFluent<A>{ public A addToBounds(int index, TypeRef item); public A setToBounds(int index, TypeRef item); public A addToBounds(TypeRef... items); public A addAllToBounds(Collection<TypeRef> items); public A removeFromBounds(TypeRef... items); public A removeAllFromBounds(Collection<TypeRef> items); /** * This method has been deprecated, please use method buildBounds instead. */ @Deprecated public List<TypeRef> getBounds(); public List<TypeRef> buildBounds(); public TypeRef buildBound(int index); public TypeRef buildFirstBound(); public TypeRef buildLastBound(); public TypeRef buildMatchingBound(Predicate<Builder<? extends TypeRef>> predicate); public A withBounds(List<TypeRef> bounds); public A withBounds(TypeRef... bounds); public Boolean hasBounds(); public A addToVoidRefBounds(int index, VoidRef item); public A setToVoidRefBounds(int index, VoidRef item); public A addToVoidRefBounds(VoidRef... items); public A addAllToVoidRefBounds(Collection<VoidRef> items); public A removeFromVoidRefBounds(VoidRef... items); public A removeAllFromVoidRefBounds(Collection<VoidRef> items); public VoidRefBoundsNested<A> addNewVoidRefBound(); public VoidRefBoundsNested<A> addNewVoidRefBoundLike(VoidRef item); public A addToWildcardRefBounds(int index, WildcardRef item); public A setToWildcardRefBounds(int index, WildcardRef item); public A addToWildcardRefBounds(WildcardRef... items); public A addAllToWildcardRefBounds(Collection<WildcardRef> items); public A removeFromWildcardRefBounds(WildcardRef... items); public A removeAllFromWildcardRefBounds(Collection<WildcardRef> items); public WildcardRefBoundsNested<A> addNewWildcardRefBound(); public WildcardRefBoundsNested<A> addNewWildcardRefBoundLike(WildcardRef item); public A addToPrimitiveRefBounds(int index, PrimitiveRef item); public A setToPrimitiveRefBounds(int index, PrimitiveRef item); public A addToPrimitiveRefBounds(PrimitiveRef... items); public A addAllToPrimitiveRefBounds(Collection<PrimitiveRef> items); public A removeFromPrimitiveRefBounds(PrimitiveRef... items); public A removeAllFromPrimitiveRefBounds(Collection<PrimitiveRef> items); public PrimitiveRefBoundsNested<A> addNewPrimitiveRefBound(); public PrimitiveRefBoundsNested<A> addNewPrimitiveRefBoundLike(PrimitiveRef item); public A addToTypeParamRefBounds(int index, TypeParamRef item); public A setToTypeParamRefBounds(int index, TypeParamRef item); public A addToTypeParamRefBounds(TypeParamRef... items); public A addAllToTypeParamRefBounds(Collection<TypeParamRef> items); public A removeFromTypeParamRefBounds(TypeParamRef... items); public A removeAllFromTypeParamRefBounds(Collection<TypeParamRef> items); public TypeParamRefBoundsNested<A> addNewTypeParamRefBound(); public TypeParamRefBoundsNested<A> addNewTypeParamRefBoundLike(TypeParamRef item); public A addToClassRefBounds(int index, ClassRef item); public A setToClassRefBounds(int index, ClassRef item); public A addToClassRefBounds(ClassRef... items); public A addAllToClassRefBounds(Collection<ClassRef> items); public A removeFromClassRefBounds(ClassRef... items); public A removeAllFromClassRefBounds(Collection<ClassRef> items); public ClassRefBoundsNested<A> addNewClassRefBound(); public ClassRefBoundsNested<A> addNewClassRefBoundLike(ClassRef item); public interface VoidRefBoundsNested<N> extends Nested<N>,VoidRefFluent<VoidRefBoundsNested<N>>{ public N and(); public N endVoidRefBound(); } public interface WildcardRefBoundsNested<N> extends Nested<N>,WildcardRefFluent<WildcardRefBoundsNested<N>>{ public N and(); public N endWildcardRefBound(); } public interface PrimitiveRefBoundsNested<N> extends Nested<N>,PrimitiveRefFluent<PrimitiveRefBoundsNested<N>>{ public N and(); public N endPrimitiveRefBound(); } public interface TypeParamRefBoundsNested<N> extends Nested<N>,TypeParamRefFluent<TypeParamRefBoundsNested<N>>{ public N and(); public N endTypeParamRefBound(); } public interface ClassRefBoundsNested<N> extends Nested<N>,ClassRefFluent<ClassRefBoundsNested<N>>{ public N and(); public N endClassRefBound(); } }