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

annotations.io.fabric8.knative.eventing.v1alpha1.ChannelSpecFluentImpl Maven / Gradle / Ivy

package io.fabric8.knative.eventing.v1alpha1;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.fabric8.knative.duck.v1alpha1.Subscribable;
import io.fabric8.kubernetes.api.builder.Nested;
import java.lang.String;
import io.fabric8.knative.duck.v1alpha1.SubscribableBuilder;
import java.util.LinkedHashMap;
import io.fabric8.kubernetes.api.model.ObjectReference;
import java.lang.Deprecated;
import io.fabric8.kubernetes.api.builder.BaseFluent;
import java.lang.Long;
import java.lang.Object;
import java.lang.Boolean;
import java.util.Map;
import io.fabric8.knative.duck.v1alpha1.SubscribableFluentImpl;

public class ChannelSpecFluentImpl> extends io.fabric8.kubernetes.api.builder.BaseFluent implements ChannelSpecFluent{

    private Map arguments;
    private Long generation;
    private ObjectReference provisioner;
    private SubscribableBuilder subscribable;

    public ChannelSpecFluentImpl(){
    }
    public ChannelSpecFluentImpl(ChannelSpec instance){
            this.withArguments(instance.getArguments()); 
            this.withGeneration(instance.getGeneration()); 
            this.withProvisioner(instance.getProvisioner()); 
            this.withSubscribable(instance.getSubscribable()); 
    }

    public A addToArguments(String key,Object value){
            if(this.arguments == null && key != null && value != null) { this.arguments = new LinkedHashMap(); }
            if(key != null && value != null) {this.arguments.put(key, value);} return (A)this;
    }

    public A addToArguments(Map map){
            if(this.arguments == null && map != null) { this.arguments = new LinkedHashMap(); }
            if(map != null) { this.arguments.putAll(map);} return (A)this;
    }

    public A removeFromArguments(String key){
            if(this.arguments == null) { return (A) this; }
            if(key != null && this.arguments != null) {this.arguments.remove(key);} return (A)this;
    }

    public A removeFromArguments(Map map){
            if(this.arguments == null) { return (A) this; }
            if(map != null) { for(Object key : map.keySet()) {if (this.arguments != null){this.arguments.remove(key);}}} return (A)this;
    }

    public Map getArguments(){
            return this.arguments;
    }

    public A withArguments(Map arguments){
            if (arguments == null) { this.arguments =  new LinkedHashMap();} else {this.arguments = new LinkedHashMap(arguments);} return (A) this;
    }

    public Boolean hasArguments(){
            return this.arguments != null;
    }

    public Long getGeneration(){
            return this.generation;
    }

    public A withGeneration(Long generation){
            this.generation=generation; return (A) this;
    }

    public Boolean hasGeneration(){
            return this.generation != null;
    }

    public ObjectReference getProvisioner(){
            return this.provisioner;
    }

    public A withProvisioner(ObjectReference provisioner){
            this.provisioner=provisioner; return (A) this;
    }

    public Boolean hasProvisioner(){
            return this.provisioner != null;
    }

    
/**
 * This method has been deprecated, please use method buildSubscribable instead.
 * @return The buildable object.
 */
@Deprecated public Subscribable getSubscribable(){
            return this.subscribable!=null?this.subscribable.build():null;
    }

    public Subscribable buildSubscribable(){
            return this.subscribable!=null?this.subscribable.build():null;
    }

    public A withSubscribable(Subscribable subscribable){
            _visitables.get("subscribable").remove(this.subscribable);
            if (subscribable!=null){ this.subscribable= new SubscribableBuilder(subscribable); _visitables.get("subscribable").add(this.subscribable);} return (A) this;
    }

    public Boolean hasSubscribable(){
            return this.subscribable != null;
    }

    public ChannelSpecFluent.SubscribableNested withNewSubscribable(){
            return new SubscribableNestedImpl();
    }

    public ChannelSpecFluent.SubscribableNested withNewSubscribableLike(Subscribable item){
            return new SubscribableNestedImpl(item);
    }

    public ChannelSpecFluent.SubscribableNested editSubscribable(){
            return withNewSubscribableLike(getSubscribable());
    }

    public ChannelSpecFluent.SubscribableNested editOrNewSubscribable(){
            return withNewSubscribableLike(getSubscribable() != null ? getSubscribable(): new SubscribableBuilder().build());
    }

    public ChannelSpecFluent.SubscribableNested editOrNewSubscribableLike(Subscribable item){
            return withNewSubscribableLike(getSubscribable() != null ? getSubscribable(): item);
    }

    public boolean equals(Object o){
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            if (!super.equals(o)) return false;
            ChannelSpecFluentImpl that = (ChannelSpecFluentImpl) o;
            if (arguments != null ? !arguments.equals(that.arguments) :that.arguments != null) return false;
            if (generation != null ? !generation.equals(that.generation) :that.generation != null) return false;
            if (provisioner != null ? !provisioner.equals(that.provisioner) :that.provisioner != null) return false;
            if (subscribable != null ? !subscribable.equals(that.subscribable) :that.subscribable != null) return false;
            return true;
    }


    public class SubscribableNestedImpl extends SubscribableFluentImpl> implements ChannelSpecFluent.SubscribableNested,io.fabric8.kubernetes.api.builder.Nested{

            private final SubscribableBuilder builder;
    
            SubscribableNestedImpl(Subscribable item){
                    this.builder = new SubscribableBuilder(this, item);
            }
            SubscribableNestedImpl(){
                    this.builder = new SubscribableBuilder(this);
            }
    
    public N and(){
            return (N) ChannelSpecFluentImpl.this.withSubscribable(builder.build());
    }
    public N endSubscribable(){
            return and();
    }

}


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy