[jOOQ/jOOQ#11061] [jOOQ/jOOQ#11070] [jOOQ/jOOQ#11091] XMLFOREST
This commit is contained in:
parent
ed0ada98f4
commit
d0ea8f0e82
@ -16972,6 +16972,24 @@ public class DSL {
|
||||
return new Xmlcomment(comment);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>XMLFOREST</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ POSTGRES })
|
||||
public static Field<XML> xmlforest(Field<?>... fields) {
|
||||
return new Xmlforest(Arrays.asList(fields));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>XMLFOREST</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ POSTGRES })
|
||||
public static Field<XML> xmlforest(Collection<? extends Field<?>> fields) {
|
||||
return new Xmlforest(fields);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@ -20925,24 +20943,6 @@ public class DSL {
|
||||
return new XMLPI(target, content);
|
||||
}
|
||||
|
||||
/**
|
||||
* The XML forest constructor.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ POSTGRES })
|
||||
public static Field<XML> xmlforest(Field<?>... fields) {
|
||||
return xmlforest(asList(fields));
|
||||
}
|
||||
|
||||
/**
|
||||
* The XML forest constructor.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ POSTGRES })
|
||||
public static Field<XML> xmlforest(Collection<? extends Field<?>> fields) {
|
||||
return new XMLForest(fields);
|
||||
}
|
||||
|
||||
/**
|
||||
* The XML aggregate function.
|
||||
*/
|
||||
|
||||
@ -37,42 +37,77 @@
|
||||
*/
|
||||
package org.jooq.impl;
|
||||
|
||||
import static org.jooq.impl.Names.N_XMLFOREST;
|
||||
import static org.jooq.impl.Tools.BooleanDataKey.DATA_AS_REQUIRED;
|
||||
import static org.jooq.impl.DSL.*;
|
||||
import static org.jooq.impl.Internal.*;
|
||||
import static org.jooq.impl.Keywords.*;
|
||||
import static org.jooq.impl.Names.*;
|
||||
import static org.jooq.impl.SQLDataType.*;
|
||||
import static org.jooq.impl.Tools.*;
|
||||
import static org.jooq.impl.Tools.BooleanDataKey.*;
|
||||
import static org.jooq.SQLDialect.*;
|
||||
|
||||
import java.util.Collection;
|
||||
import org.jooq.*;
|
||||
import org.jooq.impl.*;
|
||||
import org.jooq.tools.*;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import org.jooq.Context;
|
||||
import org.jooq.Field;
|
||||
import org.jooq.XML;
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
* The <code>XMLFOREST</code> statement.
|
||||
*/
|
||||
final class XMLForest extends AbstractField<XML> {
|
||||
@SuppressWarnings({ "rawtypes", "unused" })
|
||||
final class Xmlforest
|
||||
extends
|
||||
AbstractField<XML>
|
||||
{
|
||||
|
||||
/**
|
||||
* Generated UID
|
||||
*/
|
||||
private static final long serialVersionUID = 4505809303211506197L;
|
||||
private final SelectFieldList<Field<?>> args;
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
XMLForest(Collection<? extends Field<?>> args) {
|
||||
super(N_XMLFOREST, SQLDataType.XML);
|
||||
private final Collection<? extends Field<?>> fields;
|
||||
|
||||
this.args = new SelectFieldList<>(args);
|
||||
Xmlforest(
|
||||
Collection<? extends Field<?>> fields
|
||||
) {
|
||||
super(N_XMLFOREST, allNotNull(XML));
|
||||
|
||||
this.fields = fields;
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
boolean declareFields = ctx.declareFields();
|
||||
|
||||
Object previous = ctx.data(DATA_AS_REQUIRED, true);
|
||||
|
||||
ctx.visit(N_XMLFOREST).sql('(')
|
||||
.declareFields(true)
|
||||
.visit(args)
|
||||
.visit(new SelectFieldList<>(fields))
|
||||
.declareFields(declareFields)
|
||||
.sql(')');
|
||||
|
||||
ctx.data(DATA_AS_REQUIRED, previous);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// The Object API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public boolean equals(Object that) {
|
||||
if (that instanceof Xmlforest) {
|
||||
return
|
||||
StringUtils.equals(fields, ((Xmlforest) that).fields)
|
||||
;
|
||||
}
|
||||
else
|
||||
return super.equals(that);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user