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

io.github.jeddict.jpa.spec.TableGenerator Maven / Gradle / Ivy

Go to download

Jeddict is an open source Jakarta EE application development platform that accelerates developers productivity and simplifies development tasks of creating complex entity relationship models.

There is a newer version: 6.3.1
Show newest version
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.10 in JDK 6
// See http://java.sun.com/xml/jaxb
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2014.01.21 at 01:52:19 PM IST
//
package io.github.jeddict.jpa.spec;

import io.github.jeddict.jpa.spec.validator.TableGeneratorValidator;
import io.github.jeddict.source.AnnotatedMember;
import io.github.jeddict.source.AnnotationExplorer;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import static java.util.stream.Collectors.toCollection;
import static java.util.stream.Collectors.toList;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.eclipse.persistence.internal.jpa.metadata.sequencing.TableGeneratorMetadata;

/**
 *
 *
 * @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) public @interface
 * TableGenerator { String name(); String table() default ""; String catalog()
 * default ""; String schema() default ""; String pkColumnName() default "";
 * String valueColumnName() default ""; String pkColumnValue() default ""; int
 * initialValue() default 0; int allocationSize() default 50; UniqueConstraint[]
 * uniqueConstraints() default {}; Indexes[] indexes() default {}; }
 *
 *
 *
 * 

* Java class for table-generator complex type. * *

* The following schema fragment specifies the expected content contained within * this class. * *

 * <complexType name="table-generator">
 *   <complexContent>
 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       <sequence>
 *         <element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         <element name="unique-constraint" type="{http://xmlns.jcp.org/xml/ns/persistence/orm}unique-constraint" maxOccurs="unbounded" minOccurs="0"/>
 *         <element name="index" type="{http://xmlns.jcp.org/xml/ns/persistence/orm}index" maxOccurs="unbounded" minOccurs="0"/>
 *       </sequence>
 *       <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       <attribute name="table" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       <attribute name="catalog" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       <attribute name="schema" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       <attribute name="pk-column-name" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       <attribute name="value-column-name" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       <attribute name="pk-column-value" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       <attribute name="initial-value" type="{http://www.w3.org/2001/XMLSchema}int" />
 *       <attribute name="allocation-size" type="{http://www.w3.org/2001/XMLSchema}int" />
 *     </restriction>
 *   </complexContent>
 * </complexType>
 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "table-generator", propOrder = { "description", "uniqueConstraint", "index" }) @XmlJavaTypeAdapter(value = TableGeneratorValidator.class) public class TableGenerator { protected String description; @XmlElement(name = "unique-constraint") protected Set uniqueConstraint; protected List index; @XmlAttribute(name = "name", required = true) protected String name; @XmlAttribute(name = "table") protected String table; @XmlAttribute(name = "catalog") protected String catalog; @XmlAttribute(name = "schema") protected String schema; @XmlAttribute(name = "pk-column-name") protected String pkColumnName; @XmlAttribute(name = "value-column-name") protected String valueColumnName; @XmlAttribute(name = "pk-column-value") protected String pkColumnValue; @XmlAttribute(name = "initial-value") protected Integer initialValue; @XmlAttribute(name = "allocation-size") protected Integer allocationSize; public static TableGenerator load(AnnotatedMember member) { TableGenerator tableGenerator = null; Optional tableGeneratorOpt = member.getAnnotation(jakarta.persistence.TableGenerator.class); if (tableGeneratorOpt.isPresent()) { tableGenerator = new TableGenerator(); AnnotationExplorer annotation = tableGeneratorOpt.get(); annotation.getString("name").ifPresent(tableGenerator::setName); annotation.getString("description").ifPresent(tableGenerator::setDescription); annotation.getString("table").ifPresent(tableGenerator::setTable); annotation.getString("catalog").ifPresent(tableGenerator::setCatalog); annotation.getString("schema").ifPresent(tableGenerator::setSchema); annotation.getString("pkColumnName").ifPresent(tableGenerator::setPkColumnName); annotation.getString("valueColumnName").ifPresent(tableGenerator::setValueColumnName); annotation.getString("pkColumnValue").ifPresent(tableGenerator::setPkColumnValue); annotation.getInt("initialValue").ifPresent(tableGenerator::setInitialValue); annotation.getInt("allocationSize").ifPresent(tableGenerator::setAllocationSize); tableGenerator.uniqueConstraint = annotation.getAnnotationList("uniqueConstraints") .map(UniqueConstraint::load) .collect(toCollection(LinkedHashSet::new)); tableGenerator.index = annotation.getAnnotationList("indexes") .map(Index::load) .collect(toList()); } return tableGenerator; } /** * Gets the value of the description property. * * @return possible object is {@link String } * */ public String getDescription() { return description; } /** * Sets the value of the description property. * * @param value allowed object is {@link String } * */ public void setDescription(String value) { this.description = value; } /** * Gets the value of the uniqueConstraint property. * *

* This accessor method returns a reference to the live list, not a * snapshot. Therefore any modification you make to the returned list will * be present inside the JAXB object. This is why there is not a * set method for the uniqueConstraint property. * *

* For example, to add a new item, do as follows: *

     *    getUniqueConstraint().add(newItem);
     * 
* * *

* Objects of the following type(s) are allowed in the list * {@link UniqueConstraint } * * */ public Set getUniqueConstraint() { if (uniqueConstraint == null) { uniqueConstraint = new LinkedHashSet<>(); } return this.uniqueConstraint; } /** * Gets the value of the index property. * *

* This accessor method returns a reference to the live list, not a * snapshot. Therefore any modification you make to the returned list will * be present inside the JAXB object. This is why there is not a * set method for the index property. * *

* For example, to add a new item, do as follows: *

     *    getIndex().add(newItem);
     * 
* * *

* Objects of the following type(s) are allowed in the list {@link Index } * * */ public List getIndex() { if (index == null) { index = new ArrayList<>(); } return this.index; } /** * Gets the value of the name property. * * @return possible object is {@link String } * */ public String getName() { return name; } /** * Sets the value of the name property. * * @param value allowed object is {@link String } * */ public void setName(String value) { this.name = value; } /** * Gets the value of the table property. * * @return possible object is {@link String } * */ public String getTable() { return table; } /** * Sets the value of the table property. * * @param value allowed object is {@link String } * */ public void setTable(String value) { this.table = value; } /** * Gets the value of the catalog property. * * @return possible object is {@link String } * */ public String getCatalog() { return catalog; } /** * Sets the value of the catalog property. * * @param value allowed object is {@link String } * */ public void setCatalog(String value) { this.catalog = value; } /** * Gets the value of the schema property. * * @return possible object is {@link String } * */ public String getSchema() { return schema; } /** * Sets the value of the schema property. * * @param value allowed object is {@link String } * */ public void setSchema(String value) { this.schema = value; } /** * Gets the value of the pkColumnName property. * * @return possible object is {@link String } * */ public String getPkColumnName() { return pkColumnName; } /** * Sets the value of the pkColumnName property. * * @param value allowed object is {@link String } * */ public void setPkColumnName(String value) { this.pkColumnName = value; } /** * Gets the value of the valueColumnName property. * * @return possible object is {@link String } * */ public String getValueColumnName() { return valueColumnName; } /** * Sets the value of the valueColumnName property. * * @param value allowed object is {@link String } * */ public void setValueColumnName(String value) { this.valueColumnName = value; } /** * Gets the value of the pkColumnValue property. * * @return possible object is {@link String } * */ public String getPkColumnValue() { return pkColumnValue; } /** * Sets the value of the pkColumnValue property. * * @param value allowed object is {@link String } * */ public void setPkColumnValue(String value) { this.pkColumnValue = value; } /** * Gets the value of the initialValue property. * * @return possible object is {@link Integer } * */ public Integer getInitialValue() { return initialValue; } /** * Sets the value of the initialValue property. * * @param value allowed object is {@link Integer } * */ public void setInitialValue(Integer value) { this.initialValue = value; } /** * Gets the value of the allocationSize property. * * @return possible object is {@link Integer } * */ public Integer getAllocationSize() { return allocationSize; } /** * Sets the value of the allocationSize property. * * @param value allowed object is {@link Integer } * */ public void setAllocationSize(Integer value) { this.allocationSize = value; } public TableGeneratorMetadata getAccessor() { TableGeneratorMetadata accessor = new TableGeneratorMetadata(); accessor.setName(table); accessor.setAllocationSize(allocationSize); accessor.setCatalog(catalog); accessor.setInitialValue(initialValue); accessor.setSchema(schema); accessor.setPkColumnName(pkColumnName); accessor.setPkColumnValue(pkColumnValue); accessor.setValueColumnName(valueColumnName); // accessr.setDatabaseTable(new DatabaseTable(table, "")); accessor.setGeneratorName(name); accessor.setUniqueConstraints(getUniqueConstraint().stream() .map(UniqueConstraint::getAccessor) .collect(toList())); accessor.setIndexes(getIndex().stream() .map(Index::getAccessor) .collect(toList())); return accessor; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy