Latest Update
- Added: Iterator - Added: Iterable - Fixed: Simple Mapper is always literal. - Fixed: Conusmer bugs. - Changed: Path designer is now a function. - Removed: Cache from the repo. Not needed.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
package speiger.src.collections.PACKAGE.collections;
|
||||
|
||||
#if !TYPE_OBJECT
|
||||
import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import speiger.src.collections.PACKAGE.functions.CONSUMER;
|
||||
#endif
|
||||
|
||||
public interface ITERABLE KEY_GENERIC_TYPE extends Iterable<CLASS_TYPE>
|
||||
{
|
||||
@Override
|
||||
ITERATOR KEY_GENERIC_TYPE iterator();
|
||||
#if !TYPE_OBJECT
|
||||
|
||||
default void forEach(CONSUMER action) {
|
||||
Objects.requireNonNull(action);
|
||||
iterator().forEachRemaining(action);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
default void forEach(Consumer<? super CLASS_TYPE> action) {
|
||||
Objects.requireNonNull(action);
|
||||
iterator().forEachRemaining(action);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package speiger.src.collections.PACKAGE.collections;
|
||||
|
||||
import java.util.Iterator;
|
||||
#if !TYPE_OBJECT
|
||||
import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import speiger.src.collections.PACKAGE.functions.CONSUMER;
|
||||
|
||||
#endif
|
||||
|
||||
public interface ITERATOR KEY_GENERIC_TYPE extends Iterator<CLASS_TYPE>
|
||||
{
|
||||
#if !TYPE_OBJECT
|
||||
public KEY_TYPE NEXT();
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
public default CLASS_TYPE next() { return KEY_TO_OBJ(next()); }
|
||||
|
||||
public default void forEachRemaining(CONSUMER action) {
|
||||
Objects.requireNonNull(action);
|
||||
while(hasNext()) { action.accept(NEXT()); }
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
default void forEachRemaining(Consumer<? super CLASS_TYPE> action) {
|
||||
Objects.requireNonNull(action);
|
||||
forEachRemaining(action::accept);
|
||||
}
|
||||
|
||||
#endif
|
||||
default int skip(int amount) {
|
||||
if(amount < 0) throw new IllegalStateException("Negative Numbers are not allowed");
|
||||
int temp = amount;
|
||||
for(;amount > 0 && hasNext();NEXT(), amount--);
|
||||
return temp - amount;
|
||||
}
|
||||
}
|
||||
+29
-4
@@ -1,20 +1,45 @@
|
||||
package speiger.src.collections.example.functions;
|
||||
package speiger.src.collections.PACKAGE.functions;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
#if !TYPE_BOOLEAN
|
||||
#if !JDK_CONSUMER
|
||||
import speiger.src.collections.utils.SanityChecks;
|
||||
|
||||
#endif
|
||||
|
||||
public interface CONSUMER extends Consumer<CLASS_TYPE>, JAVA_CONSUMER
|
||||
{
|
||||
#else
|
||||
|
||||
public interface CONSUMER extends Consumer<CLASS_TYPE>
|
||||
#endif
|
||||
{
|
||||
void accept(KEY_TYPE t);
|
||||
|
||||
default void accept(CLASS_TYPE t) { accept(OBJ_TO_KEY(t)); }
|
||||
#if !JDK_CONSUMER
|
||||
|
||||
@Override
|
||||
default void accept(JAVA_TYPE t) { accept(SanityChecks.SANITY_CAST(t)); }
|
||||
#endif
|
||||
|
||||
@Override
|
||||
default void accept(CLASS_TYPE t) { accept(OBJ_TO_KEY(t)); }
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
default CONSUMER andThen(Consumer<? super CLASS_TYPE> after) {
|
||||
Objects.requireNonNull(after);
|
||||
return T -> {accept(T); after.accept(KEY_TO_OBJ(T));};
|
||||
}
|
||||
|
||||
#if !TYPE_BOOLEAN
|
||||
@Deprecated
|
||||
@Override
|
||||
default CONSUMER andThen(JAVA_CONSUMER after) {
|
||||
Objects.requireNonNull(after);
|
||||
return T -> {accept(T); after.accept(T);};
|
||||
}
|
||||
|
||||
#endif
|
||||
default CONSUMER andThen(CONSUMER after) {
|
||||
Objects.requireNonNull(after);
|
||||
return T -> {accept(T); after.accept(T);};
|
||||
|
||||
Reference in New Issue
Block a user