Fixed a Rule Break with the new ComputeIfAbsent function
This commit is contained in:
		
							parent
							
								
									531443531d
								
							
						
					
					
						commit
						3f872463b6
					
				@ -5,7 +5,7 @@
 | 
				
			|||||||
- Added: addAll with Array-types in collections.
 | 
					- Added: addAll with Array-types in collections.
 | 
				
			||||||
- Added: Java Iterator/Iterable support for Stream replacing methods
 | 
					- Added: Java Iterator/Iterable support for Stream replacing methods
 | 
				
			||||||
- Added: Suppliers.
 | 
					- Added: Suppliers.
 | 
				
			||||||
- Added: ComputeIfAbsent but value generator is a supplier
 | 
					- Added: SupplyIfAbsent but value generator is a supplier
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Version 0.4.0
 | 
					### Version 0.4.0
 | 
				
			||||||
- Changed: Iterable specific helper functions were moved out of Iterators and moved into Iterables
 | 
					- Changed: Iterable specific helper functions were moved out of Iterators and moved into Iterables
 | 
				
			||||||
 | 
				
			|||||||
@ -290,6 +290,7 @@ public class GlobalVariables
 | 
				
			|||||||
		addFunctionValueMappers("REPLACE_VALUES", valueType.isObject() ? "replaceObjects" : "replace%ss");
 | 
							addFunctionValueMappers("REPLACE_VALUES", valueType.isObject() ? "replaceObjects" : "replace%ss");
 | 
				
			||||||
		addFunctionMappers("REPLACE", type.isObject() ? "replaceObjects" : "replace%ss");
 | 
							addFunctionMappers("REPLACE", type.isObject() ? "replaceObjects" : "replace%ss");
 | 
				
			||||||
		addFunctionMappers("SORT", "sort%ss");
 | 
							addFunctionMappers("SORT", "sort%ss");
 | 
				
			||||||
 | 
							addFunctionValueMappers("SUPPLY_IF_ABSENT", "supply%sIfAbsent");
 | 
				
			||||||
		addSimpleMapper("VALUE_TEST_VALUE", valueType.isObject() ? "getBoolean" : "get");
 | 
							addSimpleMapper("VALUE_TEST_VALUE", valueType.isObject() ? "getBoolean" : "get");
 | 
				
			||||||
		addSimpleMapper("TEST_VALUE", type.isObject() ? "getBoolean" : "get");
 | 
							addSimpleMapper("TEST_VALUE", type.isObject() ? "getBoolean" : "get");
 | 
				
			||||||
		addSimpleMapper("NEW_STREAM", type.isPrimitiveBlocking() ? "" : type.getCustomJDKType().getKeyType()+"Stream");
 | 
							addSimpleMapper("NEW_STREAM", type.isPrimitiveBlocking() ? "" : type.getCustomJDKType().getKeyType()+"Stream");
 | 
				
			||||||
 | 
				
			|||||||
@ -191,7 +191,7 @@ public abstract class ABSTRACT_MAP KEY_VALUE_GENERIC_TYPE extends AbstractMap<CL
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public VALUE_TYPE COMPUTE_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
						public VALUE_TYPE SUPPLY_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
				
			||||||
		Objects.requireNonNull(valueProvider);
 | 
							Objects.requireNonNull(valueProvider);
 | 
				
			||||||
		VALUE_TYPE value;
 | 
							VALUE_TYPE value;
 | 
				
			||||||
		if((value = GET_VALUE(key)) == getDefaultReturnValue() || !containsKey(key)) {
 | 
							if((value = GET_VALUE(key)) == getDefaultReturnValue() || !containsKey(key)) {
 | 
				
			||||||
 | 
				
			|||||||
@ -498,7 +498,7 @@ public class CUSTOM_HASH_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VAL
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public VALUE_TYPE COMPUTE_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
						public VALUE_TYPE SUPPLY_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
				
			||||||
		int index = findIndex(key);
 | 
							int index = findIndex(key);
 | 
				
			||||||
		if(index < 0) {
 | 
							if(index < 0) {
 | 
				
			||||||
			VALUE_TYPE newValue = valueProvider.VALUE_GET_KEY();
 | 
								VALUE_TYPE newValue = valueProvider.VALUE_GET_KEY();
 | 
				
			||||||
 | 
				
			|||||||
@ -459,7 +459,7 @@ public class HASH_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VALUE_GENE
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public VALUE_TYPE COMPUTE_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
						public VALUE_TYPE SUPPLY_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
				
			||||||
		int index = findIndex(key);
 | 
							int index = findIndex(key);
 | 
				
			||||||
		if(index < 0) {
 | 
							if(index < 0) {
 | 
				
			||||||
			VALUE_TYPE newValue = valueProvider.VALUE_GET_KEY();
 | 
								VALUE_TYPE newValue = valueProvider.VALUE_GET_KEY();
 | 
				
			||||||
 | 
				
			|||||||
@ -443,7 +443,7 @@ public class IMMUTABLE_HASH_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_
 | 
				
			|||||||
	public VALUE_TYPE COMPUTE_IF_ABSENT(KEY_TYPE key, FUNCTION KEY_VALUE_GENERIC_TYPE mappingFunction) { throw new UnsupportedOperationException(); }
 | 
						public VALUE_TYPE COMPUTE_IF_ABSENT(KEY_TYPE key, FUNCTION KEY_VALUE_GENERIC_TYPE mappingFunction) { throw new UnsupportedOperationException(); }
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public VALUE_TYPE COMPUTE_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) { throw new UnsupportedOperationException(); }
 | 
						public VALUE_TYPE SUPPLY_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) { throw new UnsupportedOperationException(); }
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public VALUE_TYPE COMPUTE_IF_PRESENT(KEY_TYPE key, UNARY_OPERATOR KEY_VALUE_GENERIC_TYPE mappingFunction) { throw new UnsupportedOperationException(); }
 | 
						public VALUE_TYPE COMPUTE_IF_PRESENT(KEY_TYPE key, UNARY_OPERATOR KEY_VALUE_GENERIC_TYPE mappingFunction) { throw new UnsupportedOperationException(); }
 | 
				
			||||||
 | 
				
			|||||||
@ -489,7 +489,7 @@ public class ARRAY_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VALUE_GEN
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public VALUE_TYPE COMPUTE_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
						public VALUE_TYPE SUPPLY_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
				
			||||||
		int index = findIndex(key);
 | 
							int index = findIndex(key);
 | 
				
			||||||
		if(index == -1) {
 | 
							if(index == -1) {
 | 
				
			||||||
			VALUE_TYPE newValue = valueProvider.VALUE_GET_KEY();
 | 
								VALUE_TYPE newValue = valueProvider.VALUE_GET_KEY();
 | 
				
			||||||
 | 
				
			|||||||
@ -531,7 +531,7 @@ public class AVL_TREE_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VALUE_
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public VALUE_TYPE COMPUTE_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
						public VALUE_TYPE SUPPLY_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
				
			||||||
		Entry KEY_VALUE_GENERIC_TYPE entry = findNode(key);
 | 
							Entry KEY_VALUE_GENERIC_TYPE entry = findNode(key);
 | 
				
			||||||
		if(entry == null) {
 | 
							if(entry == null) {
 | 
				
			||||||
			VALUE_TYPE newValue = valueProvider.VALUE_GET_KEY();
 | 
								VALUE_TYPE newValue = valueProvider.VALUE_GET_KEY();
 | 
				
			||||||
 | 
				
			|||||||
@ -530,7 +530,7 @@ public class RB_TREE_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VALUE_G
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public VALUE_TYPE COMPUTE_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
						public VALUE_TYPE SUPPLY_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider) {
 | 
				
			||||||
		Entry KEY_VALUE_GENERIC_TYPE entry = findNode(key);
 | 
							Entry KEY_VALUE_GENERIC_TYPE entry = findNode(key);
 | 
				
			||||||
		if(entry == null) {
 | 
							if(entry == null) {
 | 
				
			||||||
			VALUE_TYPE newValue = valueProvider.VALUE_GET_KEY();
 | 
								VALUE_TYPE newValue = valueProvider.VALUE_GET_KEY();
 | 
				
			||||||
 | 
				
			|||||||
@ -275,7 +275,7 @@ public interface MAP KEY_VALUE_GENERIC_TYPE extends Map<CLASS_TYPE, CLASS_VALUE_
 | 
				
			|||||||
	 * @param valueProvider the value if not present
 | 
						 * @param valueProvider the value if not present
 | 
				
			||||||
	 * @return the result of the computed value or present value
 | 
						 * @return the result of the computed value or present value
 | 
				
			||||||
	 */	
 | 
						 */	
 | 
				
			||||||
	public VALUE_TYPE COMPUTE_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider);
 | 
						public VALUE_TYPE SUPPLY_IF_ABSENT(KEY_TYPE key, VALUE_SUPPLIER VALUE_GENERIC_TYPE valueProvider);
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * A Type Specific compute method to reduce boxing/unboxing
 | 
						 * A Type Specific compute method to reduce boxing/unboxing
 | 
				
			||||||
	 * @param key the key that should be computed
 | 
						 * @param key the key that should be computed
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user