Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
66 changes: 33 additions & 33 deletions fluent/src/main/java/io/kubernetes/client/fluent/BaseFluent.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,36 @@
package io.kubernetes.client.fluent;

import java.util.LinkedHashSet;
import java.util.stream.Collectors;
import java.util.Set;
import java.util.Optional;
import java.util.ArrayList;
import java.util.Objects;
import java.lang.Object;
import java.util.List;
import java.lang.String;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
public class BaseFluent<F>{

public static final String VISIT = "visit";
public final VisitableMap _visitables = new VisitableMap();


public static <T>List<T> aggregate(List<? extends T>... lists) {
return new ArrayList(Arrays.stream(lists).filter(Objects::nonNull).collect(Collectors.toList()));
}

public static <T>Set<T> aggregate(Set<? extends T>... sets) {
return new LinkedHashSet(Arrays.stream(sets).filter(Objects::nonNull).collect(Collectors.toSet()));
}

public static <T>List<T> build(List<? extends io.kubernetes.client.fluent.Builder<? extends T>> list) {
return list == null ? null : list.stream().map(Builder::build).collect(Collectors.toList());
}

public static <T>Set<T> build(Set<? extends io.kubernetes.client.fluent.Builder<? extends T>> set) {
return set == null ? null : new LinkedHashSet<T>(set.stream().map(Builder::build).collect(Collectors.toSet()));
}

public static <T>VisitableBuilder<T,?> builderOf(T item) {
if (item instanceof Editable) {
Expand All @@ -38,20 +55,14 @@ public static <T>VisitableBuilder<T,?> builderOf(T item) {
}
}

public static <T>List<T> build(List<? extends io.kubernetes.client.fluent.Builder<? extends T>> list) {
return list == null ? null : list.stream().map(Builder::build).collect(Collectors.toList());
}

public static <T>Set<T> build(Set<? extends io.kubernetes.client.fluent.Builder<? extends T>> set) {
return set == null ? null : new LinkedHashSet<T>(set.stream().map(Builder::build).collect(Collectors.toSet()));
}

public static <T>List<T> aggregate(List<? extends T>... lists) {
return new ArrayList(Arrays.stream(lists).filter(Objects::nonNull).collect(Collectors.toList()));
}

public static <T>Set<T> aggregate(Set<? extends T>... sets) {
return new LinkedHashSet(Arrays.stream(sets).filter(Objects::nonNull).collect(Collectors.toSet()));
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
return true;
}

public Optional<VisitableMap> getVisitableMap() {
Expand All @@ -65,15 +76,4 @@ public int hashCode() {
return result;
}

public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
return true;
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@
import java.lang.FunctionalInterface;
@FunctionalInterface
public interface Builder<T>{


T build();


}
Original file line number Diff line number Diff line change
@@ -1,38 +1,39 @@
package io.kubernetes.client.fluent;

import java.util.Map.Entry;
import java.lang.Class;
import java.lang.Object;
import java.util.List;
import java.lang.String;
import java.util.List;
import java.util.Map.Entry;
import java.util.function.Predicate;
public class DelegatingVisitor<T> implements Visitor<T>{

private final Visitor<T> delegate;
private final Class<T> type;

DelegatingVisitor(Class<T> type,Visitor<T> delegate) {
this.type = type;
this.delegate = delegate;
}
private final Class<T> type;
private final Visitor<T> delegate;

public <F>Predicate<List<Entry<String,Object>>> getRequirement() {
return delegate.getRequirement();
}

public Class<T> getType() {
return type;
}

public void visit(T target) {
delegate.visit(target);
}

public int order() {
return delegate.order();
}

public void visit(List<Entry<String,Object>> path,T target) {
delegate.visit(path, target);
public void visit(T target) {
delegate.visit(target);
}

public <F>Predicate<List<Entry<String,Object>>> getRequirement() {
return delegate.getRequirement();
public void visit(List<Entry<String,Object>> path,T target) {
delegate.visit(path, target);
}


}
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package io.kubernetes.client.fluent;

public interface Editable<T>{


T edit();


}
3 changes: 1 addition & 2 deletions fluent/src/main/java/io/kubernetes/client/fluent/Nested.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package io.kubernetes.client.fluent;

public interface Nested<F>{


F and();


}
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
package io.kubernetes.client.fluent;

import java.util.Map.Entry;
import java.lang.Class;
import java.lang.Object;
import java.util.List;
import java.lang.String;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Map.Entry;
public class PathAwareTypedVisitor<V,P> extends TypedVisitor<V>{

private final Class<P> parentType;
private final Class<V> type;

PathAwareTypedVisitor() {
List<Class> args = Visitors.getTypeArguments(PathAwareTypedVisitor.class, getClass());
if (args == null || args.isEmpty()) {
Expand All @@ -15,8 +19,14 @@ public class PathAwareTypedVisitor<V,P> extends TypedVisitor<V>{
this.type = (Class<V>) args.get(0);
this.parentType = (Class<P>) args.get(1);
}
private final Class<V> type;
private final Class<P> parentType;

public P getParent(List<Entry<String,Object>> path) {
return path.size() - 1 >= 0 ? (P) path.get(path.size() - 1) : null;
}

public Class<P> getParentType() {
return parentType;
}

public void visit(V element) {

Expand All @@ -26,13 +36,4 @@ public void visit(List<Entry<String,Object>> path,V element) {
visit(element);
}

public P getParent(List<Entry<String,Object>> path) {
return path.size() - 1 >= 0 ? (P) path.get(path.size() - 1) : null;
}

public Class<P> getParentType() {
return parentType;
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@

import java.lang.Class;
public abstract class TypedVisitor<V> implements Visitor<V>{



public Class<V> getType() {
return (Class<V>) Visitors.getTypeArguments(TypedVisitor.class, getClass()).get(0);
}


}
27 changes: 13 additions & 14 deletions fluent/src/main/java/io/kubernetes/client/fluent/Visitable.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
package io.kubernetes.client.fluent;

import java.util.AbstractMap;
import java.util.Map.Entry;
import java.util.Optional;
import java.util.ArrayList;
import java.lang.Class;
import java.lang.Object;
import java.util.List;
import java.lang.String;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map.Entry;
import java.util.Optional;
public interface Visitable<T>{


default T accept(Visitor... visitors) {
return accept(Collections.emptyList(), visitors);
}

default T accept(List<Entry<String,Object>> path,Visitor... visitors) {
return accept(path, "", visitors);
}

default <V>T accept(Class<V> type,Visitor<V> visitor) {
return accept(Collections.emptyList(), new Visitor<V>() {
Expand All @@ -31,14 +39,6 @@ public void visit(V element) {
});
}

default T accept(Visitor... visitors) {
return accept(Collections.emptyList(), visitors);
}

default T accept(List<Entry<String,Object>> path,Visitor... visitors) {
return accept(path, "", visitors);
}

default T accept(List<Entry<String,Object>> path,String currentKey,Visitor... visitors) {
List<Visitor> sortedVisitor = new ArrayList<>();
for (Visitor visitor : visitors) {
Expand Down Expand Up @@ -88,5 +88,4 @@ default Optional<VisitableMap> getVisitableMap() {
return Optional.empty();
}


}
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package io.kubernetes.client.fluent;

public interface VisitableBuilder<T,V extends VisitableBuilder<T,V>> extends Builder<T>,Visitable<V>{





}
27 changes: 13 additions & 14 deletions fluent/src/main/java/io/kubernetes/client/fluent/VisitableMap.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
package io.kubernetes.client.fluent;

import java.util.stream.Collectors;
import java.lang.Iterable;
import java.util.function.Consumer;
import java.util.HashMap;
import java.lang.Object;
import java.lang.String;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.lang.Object;
import java.util.List;
import java.lang.String;
import java.util.Spliterator;
import java.util.function.Consumer;
import java.util.stream.Collectors;
public class VisitableMap extends HashMap<String,List<Visitable<?>>> implements Iterable<Visitable<?>>{



public List<Visitable<?>> aggregate() {
return values().stream().flatMap(l -> l.stream()).collect(Collectors.toList());
}

public void forEach(Consumer<? super Visitable<?>> action) {
aggregate().forEach(action);
}

public List<Visitable<?>> get(Object key) {
if (!containsKey(key)) {
Expand All @@ -21,21 +29,12 @@ public List<Visitable<?>> get(Object key) {
return super.get(key);
}

public List<Visitable<?>> aggregate() {
return values().stream().flatMap(l -> l.stream()).collect(Collectors.toList());
}

public Iterator<Visitable<?>> iterator() {
return aggregate().iterator();
}

public void forEach(Consumer<? super Visitable<?>> action) {
aggregate().forEach(action);
}

public Spliterator spliterator() {
return aggregate().spliterator();
}


}
Loading
Loading