/* * 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 ClassRefFluent<A extends ClassRefFluent<A>> extends TypeRefFluent<A>{ /** * This method has been deprecated, please use method buildDefinition instead. */ @Deprecated public TypeDef getDefinition(); public A withDefinition(TypeDef definition); public Boolean hasDefinition(); public DefinitionNested<A> withNewDefinition(); public DefinitionNested<A> withNewDefinitionLike(TypeDef item); public String getFullyQualifiedName(); public A withFullyQualifiedName(String fullyQualifiedName); public Boolean hasFullyQualifiedName(); public int getDimensions(); public A withDimensions(int dimensions); public Boolean hasDimensions(); public A addToArguments(int index, TypeRef item); public A setToArguments(int index, TypeRef item); public A addToArguments(TypeRef... items); public A addAllToArguments(Collection<TypeRef> items); public A removeFromArguments(TypeRef... items); public A removeAllFromArguments(Collection<TypeRef> items); /** * This method has been deprecated, please use method buildArguments instead. */ @Deprecated public List<TypeRef> getArguments(); public List<TypeRef> buildArguments(); public TypeRef buildArgument(int index); public TypeRef buildFirstArgument(); public TypeRef buildLastArgument(); public TypeRef buildMatchingArgument(Predicate<Builder<? extends TypeRef>> predicate); public A withArguments(List<TypeRef> arguments); public A withArguments(TypeRef... arguments); public Boolean hasArguments(); public A addToVoidRefArguments(int index, VoidRef item); public A setToVoidRefArguments(int index, VoidRef item); public A addToVoidRefArguments(VoidRef... items); public A addAllToVoidRefArguments(Collection<VoidRef> items); public A removeFromVoidRefArguments(VoidRef... items); public A removeAllFromVoidRefArguments(Collection<VoidRef> items); public VoidRefArgumentsNested<A> addNewVoidRefArgument(); public VoidRefArgumentsNested<A> addNewVoidRefArgumentLike(VoidRef item); public A addToWildcardRefArguments(int index, WildcardRef item); public A setToWildcardRefArguments(int index, WildcardRef item); public A addToWildcardRefArguments(WildcardRef... items); public A addAllToWildcardRefArguments(Collection<WildcardRef> items); public A removeFromWildcardRefArguments(WildcardRef... items); public A removeAllFromWildcardRefArguments(Collection<WildcardRef> items); public WildcardRefArgumentsNested<A> addNewWildcardRefArgument(); public WildcardRefArgumentsNested<A> addNewWildcardRefArgumentLike(WildcardRef item); public A addToPrimitiveRefArguments(int index, PrimitiveRef item); public A setToPrimitiveRefArguments(int index, PrimitiveRef item); public A addToPrimitiveRefArguments(PrimitiveRef... items); public A addAllToPrimitiveRefArguments(Collection<PrimitiveRef> items); public A removeFromPrimitiveRefArguments(PrimitiveRef... items); public A removeAllFromPrimitiveRefArguments(Collection<PrimitiveRef> items); public PrimitiveRefArgumentsNested<A> addNewPrimitiveRefArgument(); public PrimitiveRefArgumentsNested<A> addNewPrimitiveRefArgumentLike(PrimitiveRef item); public A addToTypeParamRefArguments(int index, TypeParamRef item); public A setToTypeParamRefArguments(int index, TypeParamRef item); public A addToTypeParamRefArguments(TypeParamRef... items); public A addAllToTypeParamRefArguments(Collection<TypeParamRef> items); public A removeFromTypeParamRefArguments(TypeParamRef... items); public A removeAllFromTypeParamRefArguments(Collection<TypeParamRef> items); public TypeParamRefArgumentsNested<A> addNewTypeParamRefArgument(); public TypeParamRefArgumentsNested<A> addNewTypeParamRefArgumentLike(TypeParamRef item); public A addToClassRefArguments(int index, ClassRef item); public A setToClassRefArguments(int index, ClassRef item); public A addToClassRefArguments(ClassRef... items); public A addAllToClassRefArguments(Collection<ClassRef> items); public A removeFromClassRefArguments(ClassRef... items); public A removeAllFromClassRefArguments(Collection<ClassRef> items); public ClassRefArgumentsNested<A> addNewClassRefArgument(); public ClassRefArgumentsNested<A> addNewClassRefArgumentLike(ClassRef item); public interface DefinitionNested<N> extends Nested<N>,TypeDefFluent<DefinitionNested<N>>{ public N and(); public N endDefinition(); } public interface VoidRefArgumentsNested<N> extends Nested<N>,VoidRefFluent<VoidRefArgumentsNested<N>>{ public N and(); public N endVoidRefArgument(); } public interface WildcardRefArgumentsNested<N> extends Nested<N>,WildcardRefFluent<WildcardRefArgumentsNested<N>>{ public N and(); public N endWildcardRefArgument(); } public interface PrimitiveRefArgumentsNested<N> extends Nested<N>,PrimitiveRefFluent<PrimitiveRefArgumentsNested<N>>{ public N and(); public N endPrimitiveRefArgument(); } public interface TypeParamRefArgumentsNested<N> extends Nested<N>,TypeParamRefFluent<TypeParamRefArgumentsNested<N>>{ public N and(); public N endTypeParamRefArgument(); } public interface ClassRefArgumentsNested<N> extends Nested<N>,ClassRefFluent<ClassRefArgumentsNested<N>>{ public N and(); public N endClassRefArgument(); } }