Jdbc2JavaConverter.java
/*
* SPDX-FileCopyrightText: 2025 kaumei.io
* SPDX-License-Identifier: Apache-2.0
*/
package io.kaumei.jdbc.anno.jdbc2java;
import com.palantir.javapoet.CodeBlock;
import io.kaumei.jdbc.anno.gen.TargetMethod;
import io.kaumei.jdbc.anno.model.*;
import io.kaumei.jdbc.anno.store.Converter;
import io.kaumei.jdbc.anno.store.ConverterBasis;
import io.kaumei.jdbc.anno.store.SearchKey;
import io.kaumei.jdbc.anno.store.SourceDV;
import javax.lang.model.type.TypeMirror;
import java.util.Map;
public sealed class Jdbc2JavaConverter
extends ConverterBasis
permits Jdbc2JavaConverter.ColumnConverter, Jdbc2JavaConverter.RowConverter {
interface Placeholder extends Converter.Placeholder {
Jdbc2JavaConverter resolve(Map<SearchKey, Jdbc2JavaConverter> converter);
}
public abstract static sealed class ColumnConverter
extends Jdbc2JavaConverter
permits ConverterColumnNative, ConverterColumnObject, ConverterColumnResultSet {
protected ColumnConverter(TypeMirror type, SourceDV source, Visibility visibility) {
super(type, source, visibility);
}
public abstract boolean hasSqlType();
public abstract SQLTypeDV sqlType();
public abstract CodeBlock columnNullCheck(String varName);
public abstract CodeBlock callNullCheck(String varName);
public abstract void addColumnByIndex(TargetMethod builder, String localVarName, ColumnIndex index, OptionalFlag optional);
public abstract void addColumnByName(TargetMethod builder, String localVarName, SQLNameDV columnName, OptionalFlag optional);
}
public interface Callable {
//boolean hasSqlType();
void addCallToRow(TargetMethod builder, String localVarName, OptionalFlag optional, Map<String, ColumnIndex> map);
}
public abstract static sealed class RowConverter
extends Jdbc2JavaConverter
permits ConverterRowObjects, ConverterRowResultSet {
protected RowConverter(TypeMirror type, SourceDV source, Visibility visibility) {
super(type, source, visibility);
}
public abstract void addResultSetToRow(TargetMethod builder, String localVarName, OptionalFlag optional);
}
// ------------------------------------------------------------------------
protected Jdbc2JavaConverter(TypeMirror type, SourceDV source, Visibility visibility) {
super(type, source, visibility);
}
}