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

net.digitalid.utility.property.map.WritableVolatileSimpleMapPropertyBuilder 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.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:49.897+0200")
public class WritableVolatileSimpleMapPropertyBuilder {
    
    public static class InnerWritableVolatileSimpleMapPropertyBuilder {
        
        private InnerWritableVolatileSimpleMapPropertyBuilder() {
        }
        
        /* -------------------------------------------------- Value Validator -------------------------------------------------- */
        
        private Predicate valueValidator = object -> true;
        
        @Chainable
        public @Nonnull InnerWritableVolatileSimpleMapPropertyBuilder withValueValidator(Predicate valueValidator) {
            this.valueValidator = valueValidator;
            return this;
        }
        
        /* -------------------------------------------------- Key Validator -------------------------------------------------- */
        
        private Predicate keyValidator = object -> true;
        
        @Chainable
        public @Nonnull InnerWritableVolatileSimpleMapPropertyBuilder withKeyValidator(Predicate keyValidator) {
            this.keyValidator = keyValidator;
            return this;
        }
        
        /* -------------------------------------------------- Map -------------------------------------------------- */
        
        private FreezableMap map = net.digitalid.utility.collections.map.FreezableLinkedHashMapBuilder.build();
        
        @Chainable
        public @Nonnull InnerWritableVolatileSimpleMapPropertyBuilder withMap(FreezableMap map) {
            this.map = map;
            return this;
        }
        
        /* -------------------------------------------------- Build -------------------------------------------------- */
        
        public WritableVolatileSimpleMapProperty build() throws RuntimeException {
            return new WritableVolatileSimpleMapPropertySubclass(valueValidator, keyValidator, map);
        }
        
    }
    
    public static  InnerWritableVolatileSimpleMapPropertyBuilder withValueValidator(Predicate valueValidator) {
        return new InnerWritableVolatileSimpleMapPropertyBuilder().withValueValidator(valueValidator);
    }
    
    public static  InnerWritableVolatileSimpleMapPropertyBuilder withKeyValidator(Predicate keyValidator) {
        return new InnerWritableVolatileSimpleMapPropertyBuilder().withKeyValidator(keyValidator);
    }
    
    public static  InnerWritableVolatileSimpleMapPropertyBuilder withMap(FreezableMap map) {
        return new InnerWritableVolatileSimpleMapPropertyBuilder().withMap(map);
    }
    
    public static  WritableVolatileSimpleMapProperty build() throws RuntimeException {
        return new InnerWritableVolatileSimpleMapPropertyBuilder().build();
    }
    
    public static  WritableVolatileSimpleMapProperty buildWithValueValidator(Predicate valueValidator) throws RuntimeException {
        return new InnerWritableVolatileSimpleMapPropertyBuilder().withValueValidator(valueValidator).build();
    }
    
    public static  WritableVolatileSimpleMapProperty buildWithKeyValidator(Predicate keyValidator) throws RuntimeException {
        return new InnerWritableVolatileSimpleMapPropertyBuilder().withKeyValidator(keyValidator).build();
    }
    
    public static  WritableVolatileSimpleMapProperty buildWithMap(FreezableMap map) throws RuntimeException {
        return new InnerWritableVolatileSimpleMapPropertyBuilder().withMap(map).build();
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy