package com.example.switchyard.serialization.sca.common; import java.io.Serializable; import java.util.List; public class Container<T, K> implements Serializable { private static final long serialVersionUID = 1L; private String id; private String operation; private K target; private List<T> resources; private Container(ContainerBuilder<T, K> builder) { this.id = builder.id; this.operation = builder.operation; this.target = builder.target; this.resources = builder.resources; } public String getId() { return id; } public String getOperation() { return operation; } public K getTarget() { return target; } public List<T> getResources() { return resources; } public boolean equals(Container<?, ?> item) { return this.id == item.id; } @Override public int hashCode() { return id.hashCode(); } @Override public boolean equals(Object item) { return equals((Container<?, ?>) item); } @Override public String toString() { return "Container{operation=" + operation + ", target=" + target + ", Id=" + id + '}'; } public static class ContainerBuilder<T, K> { private String id; private String operation; private K target; private List<T> resources; public ContainerBuilder(String id) { this.id = id; } public ContainerBuilder<T, K> setOperation(String operation) { this.operation = operation; return this; } public ContainerBuilder<T, K> setTarget(K target) { this.target = target; return this; } public ContainerBuilder<T, K> setResources(List<T> resources) { this.resources = resources; return this; } public Container<T, K> build() { return new Container<T, K>(this); } } }