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

net.digitalid.utility.property.value.WritableVolatileValuePropertyBuilder Maven / Gradle / Ivy

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

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

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.079+0200")
public class WritableVolatileValuePropertyBuilder {
    
    public static class InnerWritableVolatileValuePropertyBuilder {
        
        private InnerWritableVolatileValuePropertyBuilder() {
        }
        
        /* -------------------------------------------------- Value -------------------------------------------------- */
        
        private VALUE value = null;
        
        @Chainable
        public @Nonnull InnerWritableVolatileValuePropertyBuilder withValue(VALUE value) {
            this.value = value;
            return this;
        }
        
        /* -------------------------------------------------- Value Validator -------------------------------------------------- */
        
        private Predicate valueValidator = object -> true;
        
        @Chainable
        public @Nonnull InnerWritableVolatileValuePropertyBuilder withValueValidator(Predicate valueValidator) {
            this.valueValidator = valueValidator;
            return this;
        }
        
        /* -------------------------------------------------- Build -------------------------------------------------- */
        
        public WritableVolatileValueProperty build() {
            return new WritableVolatileValuePropertySubclass(value, valueValidator);
        }
        
    }
    
    public static  InnerWritableVolatileValuePropertyBuilder withValue(VALUE value) {
        return new InnerWritableVolatileValuePropertyBuilder().withValue(value);
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy