mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-16 16:15:06 +00:00
HHH-17772 use new record types to impl static metamodel
This commit is contained in:
parent
9014182e3c
commit
1c46c0060f
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
import org.hibernate.jpamodelgen.model.MetaAttribute;
|
import org.hibernate.jpamodelgen.model.MetaAttribute;
|
||||||
import org.hibernate.jpamodelgen.model.Metamodel;
|
import org.hibernate.jpamodelgen.model.Metamodel;
|
||||||
import org.hibernate.jpamodelgen.util.Constants;
|
|
||||||
|
|
||||||
import javax.lang.model.element.Element;
|
import javax.lang.model.element.Element;
|
||||||
|
|
||||||
@ -49,77 +48,29 @@ private boolean isTextual() {
|
|||||||
public String getAttributeDeclarationString() {
|
public String getAttributeDeclarationString() {
|
||||||
final String className = parent.importType( parent.getQualifiedName() );
|
final String className = parent.importType( parent.getQualifiedName() );
|
||||||
final String memberName = element.getSimpleName().toString();
|
final String memberName = element.getSimpleName().toString();
|
||||||
|
final String impl = isTextual()
|
||||||
|
? parent.importType("jakarta.data.metamodel.impl.TextAttributeRecord")
|
||||||
|
: parent.importType("jakarta.data.metamodel.impl.SortableAttributeRecord");
|
||||||
return new StringBuilder()
|
return new StringBuilder()
|
||||||
.append("\n/**\n * @see ")
|
.append("\n/**\n * @see ")
|
||||||
.append(className)
|
.append(className)
|
||||||
.append( "#")
|
.append( "#")
|
||||||
.append(memberName)
|
.append(memberName)
|
||||||
.append( "\n **/\n" )
|
.append( "\n **/\n" )
|
||||||
.append( "public static volatile " )
|
.append( "public static final " )
|
||||||
.append( parent.importType( getMetaType() ) )
|
.append( parent.importType( getMetaType() ) )
|
||||||
.append( "<" )
|
.append( "<" )
|
||||||
.append( className )
|
.append( className )
|
||||||
.append( "> " )
|
.append( "> " )
|
||||||
.append( getPropertyName() )
|
.append( getPropertyName() )
|
||||||
.append(" = ")
|
.append(" = new ")
|
||||||
.append( getMetaImpl(className, memberName) )
|
.append( impl )
|
||||||
.append( ";" )
|
.append( "<>(\"" )
|
||||||
|
.append(memberName)
|
||||||
|
.append( "\");" )
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getMetaImpl(String className, String memberName) {
|
|
||||||
parent.importType(Constants.JD_SORT);
|
|
||||||
return (isTextual() ? TEXT_IMPL : SORTABLE_IMPL)
|
|
||||||
.replace("Entity", className )
|
|
||||||
.replace( "\"name\"", "\"" + memberName + "\"" );
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final String TEXT_IMPL =
|
|
||||||
"new TextAttribute<>() {\n" +
|
|
||||||
"\t\t@Override\n" +
|
|
||||||
"\t\tpublic Sort<Entity> ascIgnoreCase() {\n" +
|
|
||||||
"\t\t\treturn Sort.ascIgnoreCase(name());\n" +
|
|
||||||
"\t\t}\n" +
|
|
||||||
"\n" +
|
|
||||||
"\t\t@Override\n" +
|
|
||||||
"\t\tpublic Sort<Entity> descIgnoreCase() {\n" +
|
|
||||||
"\t\t\treturn Sort.descIgnoreCase(name());\n" +
|
|
||||||
"\t\t}\n" +
|
|
||||||
"\n" +
|
|
||||||
"\t\t@Override\n" +
|
|
||||||
"\t\tpublic Sort<Entity> asc() {\n" +
|
|
||||||
"\t\t\treturn Sort.asc(name());\n" +
|
|
||||||
"\t\t}\n" +
|
|
||||||
"\n" +
|
|
||||||
"\t\t@Override\n" +
|
|
||||||
"\t\tpublic Sort<Entity> desc() {\n" +
|
|
||||||
"\t\t\treturn Sort.desc(name());\n" +
|
|
||||||
"\t\t}\n" +
|
|
||||||
"\n" +
|
|
||||||
"\t\t@Override\n" +
|
|
||||||
"\t\tpublic String name() {\n" +
|
|
||||||
"\t\t\treturn \"name\";\n" +
|
|
||||||
"\t\t}\n" +
|
|
||||||
"\t}";
|
|
||||||
|
|
||||||
private static final String SORTABLE_IMPL =
|
|
||||||
"new SortableAttribute<>() {\n" +
|
|
||||||
"\t\t@Override\n" +
|
|
||||||
"\t\tpublic Sort<Entity> asc() {\n" +
|
|
||||||
"\t\t\treturn Sort.asc(name());\n" +
|
|
||||||
"\t\t}\n" +
|
|
||||||
"\n" +
|
|
||||||
"\t\t@Override\n" +
|
|
||||||
"\t\tpublic Sort<Entity> desc() {\n" +
|
|
||||||
"\t\t\treturn Sort.desc(name());\n" +
|
|
||||||
"\t\t}\n" +
|
|
||||||
"\n" +
|
|
||||||
"\t\t@Override\n" +
|
|
||||||
"\t\tpublic String name() {\n" +
|
|
||||||
"\t\t\treturn \"name\";\n" +
|
|
||||||
"\t\t}\n" +
|
|
||||||
"\t}";
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAttributeNameDeclarationString(){
|
public String getAttributeNameDeclarationString(){
|
||||||
throw new UnsupportedOperationException("operation not supported");
|
throw new UnsupportedOperationException("operation not supported");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user