
com.github.davidmoten.odata.client.internal.ChangedFields Maven / Gradle / Ivy
package com.github.davidmoten.odata.client.internal;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
/**
* Immutable
*/
public final class ChangedFields implements Iterable {
private final Set set;
private ChangedFields(Set set) {
this.set = set;
}
public ChangedFields() {
this(Collections.emptySet());
}
@Override
public Iterator iterator() {
// return a custom iterator that does not allow removal
return new Iterator() {
Iterator it = set.iterator();
@Override
public boolean hasNext() {
return it.hasNext();
}
@Override
public String next() {
return it.next();
}
};
}
public boolean contains(String name) {
return set.contains(name);
}
public ChangedFields add(String name) {
Set set2 = new HashSet(set);
set2.add(name);
return new ChangedFields(set2);
}
public Set toSet() {
return StreamSupport.stream(this.spliterator(), false).collect(Collectors.toSet());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy