summaryrefslogtreecommitdiff
path: root/src/main/java
AgeCommit message (Collapse)Author
2020-11-21Change IMap to use Optional, not exceptionsBen Culkin
IMap now returns optionals, instead of throwing an exception
2020-11-21Add some function combinatorsBen Culkin
This adds some interesting function combinators
2020-11-21Add a functional interface for functions that throw an exception.Ben Culkin
This allows you to be able to throw one type of checked exception from a normal function It also has some methods to allow you to attempt to recover from an exception and hide the fact that it was thrown
2020-11-21Add a basic fixpoint functionBen Culkin
This adds a 'fixpoint' function which allows you to create recursive lambda functions more easily
2020-11-21Add iterators which don't throw ConcurrentModificationExceptionBen Culkin
This adds two iterators (one iterator, one ListIterator) which are guaranteed not to throw a ConcurrentModificationException. The intended use case is allowing you to iterate over a list and modify it at the same time. Note that this will still give odd behavior in the presence of actual concurrency, but that is a deliberate tradeoff.
2020-11-21Add static factory method to IHolderBen Culkin
This gives you an easy way to produce an IHolder, without having to explicitly construct an instance of Identity
2020-11-17Reorder the methods in IMap againBen Culkin
2020-11-17Add static function for constructing IMap more easilyBen Culkin
Added a static function 'of' to IMap to allow you to more easily create a map from a list of key-value pairs. However, misuse of this method can result in getting ClassCastExceptions at some later point, because it has to use Object var-args + an unsafe generic cast. So, be careful, I suppose; and please make sure your argument types are correct.
2020-11-17Add ability to set the source for GeneratingIteratorBen Culkin
2020-11-17Remove some unnecessary overridesBen Culkin
IMap has some default methods that its various implementations were overriding when they didn't need to
2020-11-17Implement IFreezable for IMapBen Culkin
2020-11-16Add interface for freezing/thawing objectsBen Culkin
This adds a new interface IFreezable, which denotes that your object supports being 'frozen' (immutable) or 'thawed' (mutable). There is also optional support for 'deep-freezing' objects, which disables the ability to thaw them. It also introduces a new exception called ObjectFrozen, which implementations of IFreezable may or may not throw when you attempt to modify a frozen object
2020-11-15Add new functional interface for choosing from arraysBen Culkin
Adds two additional function types which make picking a single element from an array of elements easier. Currently, a generic one is provided that works for all reference types, and a variant specialized for primitive ints is also provided.
2020-11-15Add MinMaxList data typeBen Culkin
This is a list wrapper that automatically tracks the minimum/maximum element currently in the list
2020-11-11Merge branch 'master' of https://github.com/bculkin2442/esodataBenjamin J. Culkin
2020-11-11Update?Benjamin J. Culkin
2020-11-11Tweak some thingsBen Culkin
2020-11-09Formatting cleanupBen Culkin
2020-11-08Add some additional testsBen Culkin
2020-11-08Do some cleanup of thingsBen Culkin
2020-10-31Do some restructuring of thingsBen Culkin
2020-10-20Add additional testsBen Culkin
Clean up the tests for BooleanToggle, and add a basic test for Either
2020-10-06Add ResettableIteratorBen Culkin
Adds ResettableIterator, an iterator type which caches the elements it iterates over, so as to allow you to re-iterate over them at your leisure. Note that because this works by caching, it can consume large amounts of memory if used on large iterators. In general, I would suggest only using this on medium-sized or smaller iterators you know you want to re-iterate over.
2020-10-06Info cleanupBen Culkin
2020-09-25Warning cleanupBen Culkin
2020-04-14Cleanup some warnings and stuffBen Culkin
2020-04-13Cleanup passBen Culkin
Pass to do some cleanups
2020-04-12Finish up extractionBen Culkin
This applies the changes that were necessary to complete the extraction of these packages from bjc-utils
2020-04-07Cleanup some warningsBen Culkin
Cleanup some warnings
2020-04-06Cleanup some warningsBen Culkin
Cleanup some warnings
2019-07-27Reimplement AbbrevMap, and implement Multimapbculkin2442
This reimplements the old AbbrevMap structure as AbbrevMap2, and created a new Multimap structure as a apart of it. Multimap is exactly what it sounds like; a map that allows multiple values for a given key. The only real thing that is different about it, is that if you add a key-value pair multiple times, you'll have to remove it multiple times.
2019-07-27More stack testsbculkin2442
2019-07-10General improvements to stackbculkin2442
2019-07-02Move tests to new packagebculkin2442
2019-07-02Clean up commentsbculkin2442
2019-07-02Rename package rootbculkin2442
The package root is now bjc, not io.github.bculkin2442.