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

com.memority.citadel.shared.api.services.FieldBuilder Maven / Gradle / Ivy

Go to download

This artifact provides the API classes that are necessary to implement general configuration Rules on the Memority IM platform.

There is a newer version: 3.43.1
Show newest version
/*
 * Copyright (c) 2016-2023 Memority. All Rights Reserved.
 *
 * This file is part of Memority Citadel API , a Memority project.
 *
 * This file is released under the Memority Public Artifacts End-User License Agreement,
 * see 
 * Unauthorized copying of this file, via any medium is strictly prohibited.
 */
package com.memority.citadel.shared.api.services;

import java.time.Instant;
import java.time.LocalDate;
import java.util.List;

/**
 * Field builder
 * @param  the parent builder class
 */
public interface FieldBuilder {
    /**
     * Configures a String field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeString();

    /**
     * Configures an Integer field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeInteger();

    /**
     * Configures a Float field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeFloat();

    /**
     * Configures a DateTime field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeDatetime();

    /**
     * Configures a Date field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeDate();

    /**
     * Configures a Boolean field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeBoolean();

    /**
     * Configures a Binary field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeBinary();

    /**
     * Configures an Identity Ref field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeIdentityRef();

    /**
     * Configures an Organization Ref field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeOrganizationRef();

    /**
     * Configures a Resource Ref field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeResourceRef();

    /**
     * Configures a Role Ref field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeRoleRef();

    /**
     * Configures a Role Publication Ref field value
     * @return a {@link FieldValueBuilder}
     */
    FieldValueBuilder ofTypeRolePublicationRef();

    /**
     * Field value builder
     * @param  the parent builder class
     * @param  the Field value type
     */
    interface FieldValueBuilder {
        /**
         * Specifies the field value
         * @param value the value
         * @return the parent builder
         */
        B value(T value);

        /**
         * Specifies the field values
         * @param values the values
         * @return the parent builder
         */
        @SuppressWarnings("unchecked")
        B values(T... values);

        /**
         * Specifies the field values
         * @param values the values
         * @return the parent builder
         */
        B values(List values);
    }
}