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

co.streamx.fluent.SQL.TransactSQL.SQL Maven / Gradle / Ivy

package co.streamx.fluent.SQL.TransactSQL;

import java.time.temporal.Temporal;
import java.util.Collection;
import java.util.Date;
import java.util.EnumSet;
import java.util.ServiceLoader;
import java.util.Set;
import java.util.function.Consumer;

import co.streamx.fluent.JPA.spi.SQLConfigurator;
import co.streamx.fluent.SQL.Clause;
import co.streamx.fluent.SQL.ColumnsClause;
import co.streamx.fluent.SQL.MatchThen;
import co.streamx.fluent.SQL.MergeClause;
import co.streamx.fluent.SQL.UpdateSet;
import co.streamx.fluent.SQL.WindowOver;
import co.streamx.fluent.notation.Capability;
import co.streamx.fluent.notation.Function;
import co.streamx.fluent.notation.Literal;
import co.streamx.fluent.notation.Local;
import co.streamx.fluent.notation.ParameterContext;

public interface SQL {

    // Clauses

    @Function(omitParentheses = true)
    static  T CROSS_APPLY(T subQuery) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static  T OUTER_APPLY(T subQuery) {
        throw new UnsupportedOperationException();
    }

    @Function
    static TopClause TOP(long expression) {
        throw new UnsupportedOperationException();
    }

    // String

    @Function
    static String CHAR(int charCode) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String NCHAR(int charCode) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int CHARINDEX(String expressionToFind,
                         String expressionToSearch) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int CHARINDEX(String expressionToFind,
                         String expressionToSearch,
                         int startLocation) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int PATINDEX(String patternToFind,
                        String expressionToSearch) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int DIFFERENCE(String expression1,
                          String expression2) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String FORMAT(String expression,
                         String format) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String FORMAT(String expression,
                         String format,
                         String culture) {
        throw new UnsupportedOperationException();
    }

    @Function
    static long LEN(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String REPLICATE(String expression,
                            int count) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SOUNDEX(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SPACE(int count) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String STR(String numericExpression,
                      int length,
                      int decimals) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String STRING_ESCAPE(String expression,
                                String type) {
        throw new UnsupportedOperationException();
    }

    @Function
    static Collection STRING_SPLIT(String expression,
                                           String separator) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String STUFF(String expression,
                        int start,
                        int length,
                        String replaceWithExpression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SUBSTRING(String expression,
                            int start,
                            int length) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int UNICODE(String ncharacterExpression) {
        throw new UnsupportedOperationException();
    }

    // Date/Time

    @Function(name = "@@DATEFIRST", omitParentheses = true)
    static int DATEFIRST() {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false, omitParentheses = true)
    static String CURRENT_TIMEZONE() {
        throw new UnsupportedOperationException();
    }

    @Function
    static int YEAR(Date date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int YEAR(Temporal date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int YEAR(String date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int MONTH(Date date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int MONTH(Temporal date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int MONTH(String date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int DAY(Date date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int DAY(Temporal date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int DAY(String date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T DATEADD(DatePart datepart,
                                      Number delta,
                                      T date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T DATEADD(DatePart datepart,
                                          Number delta,
                                          T date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T DATEADD(DatePart datepart,
                                      Number delta,
                                      String date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int DATEDIFF(DatePart datepart,
                        Date from,
                        Date to) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int DATEDIFF(DatePart datepart,
                        Temporal from,
                        Temporal to) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int DATEDIFF(DatePart datepart,
                        String from,
                        String to) {
        throw new UnsupportedOperationException();
    }

    @Function
    static long DATEDIFF_BIG(DatePart datepart,
                             Date from,
                             Date to) {
        throw new UnsupportedOperationException();
    }

    @Function
    static long DATEDIFF_BIG(DatePart datepart,
                             Temporal from,
                             Temporal to) {
        throw new UnsupportedOperationException();
    }

    @Function
    static long DATEDIFF_BIG(DatePart datepart,
                             String from,
                             String to) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T DATEFROMPARTS(int year,
                                            int month,
                                            int day) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T DATETIME2FROMPARTS(int year,
                                                 int month,
                                                 int day,
                                                 int hour,
                                                 int minute,
                                                 int seconds,
                                                 int fractions,
                                                 int precision) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T DATETIMEFROMPARTS(int year,
                                                int month,
                                                int day,
                                                int hour,
                                                int minute,
                                                int seconds,
                                                int milliseconds) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T DATETIMEOFFSETFROMPARTS(int year,
                                                      int month,
                                                      int day,
                                                      int hour,
                                                      int minute,
                                                      int seconds,
                                                      int fractions,
                                                      int hour_offset,
                                                      int minute_offset,
                                                      int precision) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T SMALLDATETIMEFROMPARTS(int year,
                                                     int month,
                                                     int day,
                                                     int hour,
                                                     int minute) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T TIMEFROMPARTS(int hour,
                                            int minute,
                                            int seconds,
                                            int fractions,
                                            int precision) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String DATENAME(DatePart datepart,
                           Date date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String DATENAME(DatePart datepart,
                           Temporal date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String DATENAME(DatePart datepart,
                           String date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int DATEPART(DatePart datepart,
                        Date date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int DATEPART(DatePart datepart,
                        Temporal date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int DATEPART(DatePart datepart,
                        String date) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T GETDATE() {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T GETUTCDATE() {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T SYSDATETIME() {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T SYSDATETIMEOFFSET() {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T SYSUTCDATETIME() {
        throw new UnsupportedOperationException();
    }

    @Function
    static boolean ISDATE(Object expression) {
        throw new UnsupportedOperationException();
    }

    // System

    @Function
    static int CHECKSUM(Object... expressions) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static int BINARY_CHECKSUM(Object... expressions) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String HASHBYTES(@Literal HashingAlgorithm hashingAlgorithm,
                            Object expression) {
        throw new UnsupportedOperationException();
    }

    // Logical

    @SafeVarargs
    @Function
    static  T CHOOSE(int index,
                        T... expressions) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T IIF(boolean condition,
                     T ifTrue,
                     T otherwise) {
        throw new UnsupportedOperationException();
    }

    // Aggregate

    @Function(underscoresAsBlanks = false)
    static int GROUPING_ID(Object... expressions) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static int CHECKSUM_AGG(Object expression) {
        throw new UnsupportedOperationException();
    }

    // Math

    @Function
    static  float ATN2(T y,
                                         T x) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T LOG10(T numeric) {
        throw new UnsupportedOperationException();
    }

    @Function
    static float RAND() {
        throw new UnsupportedOperationException();
    }

    @Function
    static float RAND(int seed) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T SQUARE(T numeric) {
        throw new UnsupportedOperationException();
    }

    // General
    // OUTPUT Clause
    @Function(omitParentheses = true)
    static  T INSERTED() {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static  T DELETED() {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static MergeAction $action() {
        throw new UnsupportedOperationException();
    }

    /**
     * OUTPUT ... INTO is not supported
     */
    @Function(omitParentheses = true, parameterContext = ParameterContext.SELECT)
    static void OUTPUT(Object... expressions) {
        throw new UnsupportedOperationException();
    }

    // MERGE declarations (SQL:2003 + extensions)

    @Function(omitParentheses = true)
    static MergeClause MERGE() {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static MatchThen WHEN_MATCHED() {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static MatchThen WHEN_MATCHED_AND(boolean searchCondition) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static MatchThen WHEN_NOT_MATCHED() {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static MatchThen WHEN_NOT_MATCHED_AND(boolean searchCondition) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static MatchThen WHEN_NOT_MATCHED_BY_SOURCE() {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static MatchThen WHEN_NOT_MATCHED_BY_SOURCE_AND(boolean searchCondition) {
        throw new UnsupportedOperationException();
    }

    /**
     * Used in {@link SQL#MERGE()} only
* Name changed to avoid clashing */ @Function(name = "UPDATE", omitParentheses = true) static UpdateSet MERGE_UPDATE() { throw new UnsupportedOperationException(); } /** * Used in {@link SQL#MERGE()} only
* Name changed to avoid clashing with {@link co.streamx.fluent.SQL.SQL#INSERT(co.streamx.fluent.notation.Keyword...) * INSERT} */ @Function(name = "INSERT", omitParentheses = true, omitArgumentsDelimiter = true) static Clause MERGE_INSERT(ColumnsClause columns, T values) { throw new UnsupportedOperationException(); } // Sequence @Local static > Sequence sequence(String name) { return new Sequence() { @Override public String toString() { return name; } }; } @Function(omitParentheses = true) static > WindowOver NEXT_VALUE_FOR(Sequence sequence) { throw new UnsupportedOperationException(); } /** * Usage example:
*
* {@code registerVendorCapabilities(FluentJPA::setCapabilities);} */ @Local static void registerVendorCapabilities(Consumer> registrar) { registrar.accept(EnumSet.of(Capability.TABLE_AS_ALIAS)); ServiceLoader loader = ServiceLoader.load(SQLConfigurator.class); SQLConfigurator SQLConfig = loader.iterator().next(); SQLConfig.registerMethodSubstitution(String::length, SQL::LEN); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy