mirror of
https://github.com/CarmJos/EasyConfiguration.git
synced 2026-06-04 18:48:20 +08:00
feat: Add stream functions
This commit is contained in:
@@ -7,6 +7,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import org.jetbrains.annotations.UnmodifiableView;
|
import org.jetbrains.annotations.UnmodifiableView;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
@@ -17,7 +18,7 @@ import java.util.stream.Stream;
|
|||||||
* @author Carm
|
* @author Carm
|
||||||
* @since 4.0.0
|
* @since 4.0.0
|
||||||
*/
|
*/
|
||||||
public interface ConfigureSection {
|
public interface ConfigureSection extends Cloneable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the parent section of this section.
|
* Gets the parent section of this section.
|
||||||
@@ -47,6 +48,17 @@ public interface ConfigureSection {
|
|||||||
return getValues(deep).keySet();
|
return getValues(deep).keySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a set containing all primary keys in this section.
|
||||||
|
*
|
||||||
|
* @return Set of keys contained within this Section.
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
@UnmodifiableView
|
||||||
|
default Set<String> keys() {
|
||||||
|
return getKeys(false);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a set containing all values in this section.
|
* Gets a set containing all values in this section.
|
||||||
* <p>
|
* <p>
|
||||||
@@ -63,6 +75,36 @@ public interface ConfigureSection {
|
|||||||
@UnmodifiableView
|
@UnmodifiableView
|
||||||
Map<String, Object> getValues(boolean deep);
|
Map<String, Object> getValues(boolean deep);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a set containing all key-values in this section.
|
||||||
|
*
|
||||||
|
* @return Map of data values contained within this Section.
|
||||||
|
* @see #getValues(boolean)
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
@UnmodifiableView
|
||||||
|
default Map<String, Object> values() {
|
||||||
|
return getValues(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a stream of all values in this section.
|
||||||
|
*
|
||||||
|
* @return Stream of all values in this section.
|
||||||
|
*/
|
||||||
|
default Stream<Map.Entry<String, Object>> stream() {
|
||||||
|
return values().entrySet().stream();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iterates over all keys in this section.
|
||||||
|
*
|
||||||
|
* @param action The action to apply to each key.
|
||||||
|
*/
|
||||||
|
default void forEach(@NotNull BiConsumer<String, Object> action) {
|
||||||
|
values().forEach(action);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value at the given path.
|
* Sets the value at the given path.
|
||||||
* <p>
|
* <p>
|
||||||
|
|||||||
Reference in New Issue
Block a user