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

org.grails.plugins.databasemigration.liquibase.GroovyChangeLogSerializer.groovy Maven / Gradle / Ivy

/*
 * Copyright 2015 original authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.grails.plugins.databasemigration.liquibase

import groovy.transform.CompileStatic
import liquibase.changelog.ChangeLogChild
import liquibase.changelog.ChangeSet
import liquibase.serializer.ChangeLogSerializer
import liquibase.serializer.LiquibaseSerializable
import liquibase.serializer.core.xml.XMLChangeLogSerializer

@CompileStatic
class GroovyChangeLogSerializer implements ChangeLogSerializer {

    private XMLChangeLogSerializer xmlChangeLogSerializer = new XMLChangeLogSerializer()

    @Override
    def  void write(List changesets, OutputStream out) throws IOException {
        def xmlOutputStrem = new ByteArrayOutputStream()
        xmlChangeLogSerializer.write(changesets, xmlOutputStrem)
        out << ChangelogXml2Groovy.convert(xmlOutputStrem.toString())
    }

    @Override
    void append(ChangeSet changeSet, File changeLogFile) throws IOException {
        throw new UnsupportedOperationException()
    }

    @Override
    String[] getValidFileExtensions() {
        ['groovy'] as String[]
    }

    @Override
    String serialize(LiquibaseSerializable object, boolean pretty) {
        throw new UnsupportedOperationException()
    }

    @Override
    int getPriority() {
        return 0
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy