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

jooqpreprocessor.parsers.CreateTable Maven / Gradle / Ivy

package jooqpreprocessor.parsers;

import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public final class CreateTable implements StatementParser {

    @Override
    public boolean matches(final String statement) {
        return statement.startsWith("CREATE TABLE ");
    }

    @Override
    public String convert(final String statement) {
        final int startIndex = statement.indexOf('(');
        final int endIndex = statement.lastIndexOf(')');

        final List middle = new LinkedList<>();
        final Iterator middlePart = Arrays
            .stream(statement.substring(startIndex+1, endIndex).split(","))
            .iterator();
        while (middlePart.hasNext()) {
            String part = middlePart.next().trim();
            if (part.startsWith("KEY ") || part.startsWith("CONSTRAINT ") || part.startsWith("UNIQUE KEY ")) continue;
            if (part.endsWith(" DEFAULT b'0'")) {
                part = part.replaceAll("DEFAULT b'0'", "DEFAULT 0");
            }
            if (part.endsWith(" DEFAULT b'1'")) {
                part = part.replaceAll("DEFAULT b'1'", "DEFAULT 1");
            }
            middle.add(part);
        }

        return statement.substring(0, startIndex)
            + "("
            + String.join(",", middle)
            + ");\n";
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy