All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.digitalid.utility.property.map.WritableVolatileMapPropertyBuilder Maven / Gradle / Ivy

The newest version!
package net.digitalid.utility.property.map;

import javax.annotation.Generated;
import javax.annotation.Nonnull;

import net.digitalid.utility.collections.map.FreezableMap;
import net.digitalid.utility.collections.map.ReadOnlyMap;
import net.digitalid.utility.functional.interfaces.Predicate;
import net.digitalid.utility.validation.annotations.method.Chainable;

@SuppressWarnings("null")
@Generated(value = "net.digitalid.utility.processor.generator.JavaFileGenerator", date = "2017-03-26T11:54:50.148+0200")
public class WritableVolatileMapPropertyBuilder, FREEZABLE_MAP extends FreezableMap> {
    
    public static class InnerWritableVolatileMapPropertyBuilder, FREEZABLE_MAP extends FreezableMap> {
        
        private InnerWritableVolatileMapPropertyBuilder() {
        }
        
        /* -------------------------------------------------- Value Validator -------------------------------------------------- */
        
        private Predicate valueValidator = object -> true;
        
        @Chainable
        public @Nonnull InnerWritableVolatileMapPropertyBuilder withValueValidator(Predicate valueValidator) {
            this.valueValidator = valueValidator;
            return this;
        }
        
        /* -------------------------------------------------- Key Validator -------------------------------------------------- */
        
        private Predicate keyValidator = object -> true;
        
        @Chainable
        public @Nonnull InnerWritableVolatileMapPropertyBuilder withKeyValidator(Predicate keyValidator) {
            this.keyValidator = keyValidator;
            return this;
        }
        
        /* -------------------------------------------------- Map -------------------------------------------------- */
        
        private FREEZABLE_MAP map = null;
        
        @Chainable
        public @Nonnull InnerWritableVolatileMapPropertyBuilder withMap(FREEZABLE_MAP map) {
            this.map = map;
            return this;
        }
        
        /* -------------------------------------------------- Build -------------------------------------------------- */
        
        public WritableVolatileMapProperty build() throws RuntimeException {
            return new WritableVolatileMapPropertySubclass(valueValidator, keyValidator, map);
        }
        
    }
    
    public static , FREEZABLE_MAP extends FreezableMap> InnerWritableVolatileMapPropertyBuilder withMap(FREEZABLE_MAP map) {
        return new InnerWritableVolatileMapPropertyBuilder().withMap(map);
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy