io.dekorate.halkyon.model.CapabilitiesFluentImpl Maven / Gradle / Ivy
package io.dekorate.halkyon.model;
import io.dekorate.deps.kubernetes.api.builder.VisitableBuilder;
import io.dekorate.deps.kubernetes.api.builder.Nested;
import java.util.ArrayList;
import io.dekorate.deps.kubernetes.api.builder.Predicate;
import java.lang.Deprecated;
import io.dekorate.deps.kubernetes.api.builder.BaseFluent;
import java.util.Iterator;
import java.util.Collection;
import java.lang.Object;
import java.util.List;
import java.lang.Boolean;
public class CapabilitiesFluentImpl> extends BaseFluent implements CapabilitiesFluent {
private List requires;
private List provides;
public CapabilitiesFluentImpl() {
}
public CapabilitiesFluentImpl(Capabilities instance) {
this.withRequires(instance.getRequires());
this.withProvides(instance.getProvides());
}
public A withRequires(RequiredComponentCapability... requires) {
if (this.requires != null) {this.requires.clear();}
if (requires != null) {for (RequiredComponentCapability item :requires){ this.addToRequires(item);}} return (A) this;
}
/**
* This method has been deprecated, please use method buildRequires instead.
*/
@Deprecated public RequiredComponentCapability[] getRequires() {
int size = requires != null ? requires.size() : 0;
RequiredComponentCapability[] result = new RequiredComponentCapability[size];
if (size == 0) {
return result;
}
int index = 0;
for (VisitableBuilder extends RequiredComponentCapability,?> builder : requires) {
result[index++]=builder.build();
}
return result;
}
public RequiredComponentCapability[] buildRequires() {
int size = requires != null ? requires.size() : 0;
RequiredComponentCapability[] result = new RequiredComponentCapability[size];
if (size == 0) {
return result;
}
int index = 0;
for (VisitableBuilder extends RequiredComponentCapability,?> builder : requires) {
result[index++]=builder.build();
}
return result;
}
public RequiredComponentCapability buildRequire(int index) {
return this.requires.get(index).build();
}
public RequiredComponentCapability buildFirstRequire() {
return this.requires.get(0).build();
}
public RequiredComponentCapability buildLastRequire() {
return this.requires.get(requires.size() - 1).build();
}
public RequiredComponentCapability buildMatchingRequire(io.dekorate.deps.kubernetes.api.builder.Predicate predicate) {
for (RequiredComponentCapabilityBuilder item: requires) { if(predicate.apply(item)){ return item.build();} } return null;
}
public Boolean hasMatchingRequire(io.dekorate.deps.kubernetes.api.builder.Predicate predicate) {
for (RequiredComponentCapabilityBuilder item: requires) { if(predicate.apply(item)){ return true;} } return false;
}
public A addToRequires(int index,RequiredComponentCapability item) {
if (this.requires == null) {this.requires = new ArrayList();}
RequiredComponentCapabilityBuilder builder = new RequiredComponentCapabilityBuilder(item);_visitables.get("requires").add(index >= 0 ? index : _visitables.get("requires").size(), builder);this.requires.add(index >= 0 ? index : requires.size(), builder); return (A)this;
}
public A setToRequires(int index,RequiredComponentCapability item) {
if (this.requires == null) {this.requires = new ArrayList();}
RequiredComponentCapabilityBuilder builder = new RequiredComponentCapabilityBuilder(item);
if (index < 0 || index >= _visitables.get("requires").size()) { _visitables.get("requires").add(builder); } else { _visitables.get("requires").set(index, builder);}
if (index < 0 || index >= requires.size()) { requires.add(builder); } else { requires.set(index, builder);}
return (A)this;
}
public A addToRequires(RequiredComponentCapability... items) {
if (this.requires == null) {this.requires = new ArrayList();}
for (RequiredComponentCapability item : items) {RequiredComponentCapabilityBuilder builder = new RequiredComponentCapabilityBuilder(item);_visitables.get("requires").add(builder);this.requires.add(builder);} return (A)this;
}
public A addAllToRequires(Collection items) {
if (this.requires == null) {this.requires = new ArrayList();}
for (RequiredComponentCapability item : items) {RequiredComponentCapabilityBuilder builder = new RequiredComponentCapabilityBuilder(item);_visitables.get("requires").add(builder);this.requires.add(builder);} return (A)this;
}
public A removeFromRequires(RequiredComponentCapability... items) {
for (RequiredComponentCapability item : items) {RequiredComponentCapabilityBuilder builder = new RequiredComponentCapabilityBuilder(item);_visitables.get("requires").remove(builder);if (this.requires != null) {this.requires.remove(builder);}} return (A)this;
}
public A removeAllFromRequires(Collection items) {
for (RequiredComponentCapability item : items) {RequiredComponentCapabilityBuilder builder = new RequiredComponentCapabilityBuilder(item);_visitables.get("requires").remove(builder);if (this.requires != null) {this.requires.remove(builder);}} return (A)this;
}
public A removeMatchingFromRequires(io.dekorate.deps.kubernetes.api.builder.Predicate predicate) {
if (requires == null) return (A) this;
final Iterator each = requires.iterator();
final List visitables = _visitables.get("requires");
while (each.hasNext()) {
RequiredComponentCapabilityBuilder builder = each.next();
if (predicate.apply(builder)) {
visitables.remove(builder);
each.remove();
}
}
return (A)this;
}
public Boolean hasRequires() {
return requires != null && !requires.isEmpty();
}
public CapabilitiesFluent.RequiresNested addNewRequire() {
return new RequiresNestedImpl();
}
public CapabilitiesFluent.RequiresNested addNewRequireLike(RequiredComponentCapability item) {
return new RequiresNestedImpl(-1, item);
}
public CapabilitiesFluent.RequiresNested setNewRequireLike(int index,RequiredComponentCapability item) {
return new RequiresNestedImpl(index, item);
}
public CapabilitiesFluent.RequiresNested editRequire(int index) {
if (requires.size() <= index) throw new RuntimeException("Can't edit requires. Index exceeds size.");
return setNewRequireLike(index, buildRequire(index));
}
public CapabilitiesFluent.RequiresNested editFirstRequire() {
if (requires.size() == 0) throw new RuntimeException("Can't edit first requires. The list is empty.");
return setNewRequireLike(0, buildRequire(0));
}
public CapabilitiesFluent.RequiresNested editLastRequire() {
int index = requires.size() - 1;
if (index < 0) throw new RuntimeException("Can't edit last requires. The list is empty.");
return setNewRequireLike(index, buildRequire(index));
}
public CapabilitiesFluent.RequiresNested editMatchingRequire(io.dekorate.deps.kubernetes.api.builder.Predicate predicate) {
int index = -1;
for (int i=0;i builder : provides) {
result[index++]=builder.build();
}
return result;
}
public ComponentCapability[] buildProvides() {
int size = provides != null ? provides.size() : 0;
ComponentCapability[] result = new ComponentCapability[size];
if (size == 0) {
return result;
}
int index = 0;
for (VisitableBuilder extends ComponentCapability,?> builder : provides) {
result[index++]=builder.build();
}
return result;
}
public ComponentCapability buildProvide(int index) {
return this.provides.get(index).build();
}
public ComponentCapability buildFirstProvide() {
return this.provides.get(0).build();
}
public ComponentCapability buildLastProvide() {
return this.provides.get(provides.size() - 1).build();
}
public ComponentCapability buildMatchingProvide(io.dekorate.deps.kubernetes.api.builder.Predicate predicate) {
for (ComponentCapabilityBuilder item: provides) { if(predicate.apply(item)){ return item.build();} } return null;
}
public Boolean hasMatchingProvide(io.dekorate.deps.kubernetes.api.builder.Predicate predicate) {
for (ComponentCapabilityBuilder item: provides) { if(predicate.apply(item)){ return true;} } return false;
}
public A addToProvides(int index,ComponentCapability item) {
if (this.provides == null) {this.provides = new ArrayList();}
ComponentCapabilityBuilder builder = new ComponentCapabilityBuilder(item);_visitables.get("provides").add(index >= 0 ? index : _visitables.get("provides").size(), builder);this.provides.add(index >= 0 ? index : provides.size(), builder); return (A)this;
}
public A setToProvides(int index,ComponentCapability item) {
if (this.provides == null) {this.provides = new ArrayList();}
ComponentCapabilityBuilder builder = new ComponentCapabilityBuilder(item);
if (index < 0 || index >= _visitables.get("provides").size()) { _visitables.get("provides").add(builder); } else { _visitables.get("provides").set(index, builder);}
if (index < 0 || index >= provides.size()) { provides.add(builder); } else { provides.set(index, builder);}
return (A)this;
}
public A addToProvides(ComponentCapability... items) {
if (this.provides == null) {this.provides = new ArrayList();}
for (ComponentCapability item : items) {ComponentCapabilityBuilder builder = new ComponentCapabilityBuilder(item);_visitables.get("provides").add(builder);this.provides.add(builder);} return (A)this;
}
public A addAllToProvides(Collection items) {
if (this.provides == null) {this.provides = new ArrayList();}
for (ComponentCapability item : items) {ComponentCapabilityBuilder builder = new ComponentCapabilityBuilder(item);_visitables.get("provides").add(builder);this.provides.add(builder);} return (A)this;
}
public A removeFromProvides(ComponentCapability... items) {
for (ComponentCapability item : items) {ComponentCapabilityBuilder builder = new ComponentCapabilityBuilder(item);_visitables.get("provides").remove(builder);if (this.provides != null) {this.provides.remove(builder);}} return (A)this;
}
public A removeAllFromProvides(Collection items) {
for (ComponentCapability item : items) {ComponentCapabilityBuilder builder = new ComponentCapabilityBuilder(item);_visitables.get("provides").remove(builder);if (this.provides != null) {this.provides.remove(builder);}} return (A)this;
}
public A removeMatchingFromProvides(io.dekorate.deps.kubernetes.api.builder.Predicate predicate) {
if (provides == null) return (A) this;
final Iterator each = provides.iterator();
final List visitables = _visitables.get("provides");
while (each.hasNext()) {
ComponentCapabilityBuilder builder = each.next();
if (predicate.apply(builder)) {
visitables.remove(builder);
each.remove();
}
}
return (A)this;
}
public Boolean hasProvides() {
return provides != null && !provides.isEmpty();
}
public CapabilitiesFluent.ProvidesNested addNewProvide() {
return new ProvidesNestedImpl();
}
public CapabilitiesFluent.ProvidesNested addNewProvideLike(ComponentCapability item) {
return new ProvidesNestedImpl(-1, item);
}
public CapabilitiesFluent.ProvidesNested setNewProvideLike(int index,ComponentCapability item) {
return new ProvidesNestedImpl(index, item);
}
public CapabilitiesFluent.ProvidesNested editProvide(int index) {
if (provides.size() <= index) throw new RuntimeException("Can't edit provides. Index exceeds size.");
return setNewProvideLike(index, buildProvide(index));
}
public CapabilitiesFluent.ProvidesNested editFirstProvide() {
if (provides.size() == 0) throw new RuntimeException("Can't edit first provides. The list is empty.");
return setNewProvideLike(0, buildProvide(0));
}
public CapabilitiesFluent.ProvidesNested editLastProvide() {
int index = provides.size() - 1;
if (index < 0) throw new RuntimeException("Can't edit last provides. The list is empty.");
return setNewProvideLike(index, buildProvide(index));
}
public CapabilitiesFluent.ProvidesNested editMatchingProvide(io.dekorate.deps.kubernetes.api.builder.Predicate predicate) {
int index = -1;
for (int i=0;i extends RequiredComponentCapabilityFluentImpl> implements CapabilitiesFluent.RequiresNested,io.dekorate.deps.kubernetes.api.builder.Nested {
private final RequiredComponentCapabilityBuilder builder;
private final int index;
RequiresNestedImpl(int index,RequiredComponentCapability item) {
this.index = index;
this.builder = new RequiredComponentCapabilityBuilder(this, item);
}
RequiresNestedImpl() {
this.index = -1;
this.builder = new RequiredComponentCapabilityBuilder(this);
}
public N and() {
return (N) CapabilitiesFluentImpl.this.setToRequires(index,builder.build());
}
public N endRequire() {
return and();
}
}
public class ProvidesNestedImpl extends ComponentCapabilityFluentImpl> implements CapabilitiesFluent.ProvidesNested,io.dekorate.deps.kubernetes.api.builder.Nested {
private final ComponentCapabilityBuilder builder;
private final int index;
ProvidesNestedImpl(int index,ComponentCapability item) {
this.index = index;
this.builder = new ComponentCapabilityBuilder(this, item);
}
ProvidesNestedImpl() {
this.index = -1;
this.builder = new ComponentCapabilityBuilder(this);
}
public N and() {
return (N) CapabilitiesFluentImpl.this.setToProvides(index,builder.build());
}
public N endProvide() {
return and();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy