Newer
Older
/*
* _____________________________________________________________________________
*
* INAF - OATS National Institute for Astrophysics - Astronomical Observatory of
* Trieste INAF - IA2 Italian Center for Astronomical Archives
* _____________________________________________________________________________
*
* Copyright (C) 2017 Istituto Nazionale di Astrofisica
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License Version 3 as published by the
* Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package it.inaf.ia2.tsm.model;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlTransient;
* JAXB representation of a mapping between datatype using different
* syntaxes/languages.
* @see TypesMapping
* @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
*/
Sonia Zorba
committed
private String voTableType;
private String xtype;
private String arraysize;
Sonia Zorba
committed
private DBTypeMapping mysqlMapping;
private DBTypeMapping pgsqlMapping;
@XmlElement(name = "adql")
public String getAdqlType() {
return adqlType;
public void setAdqlType(String adqlType) {
this.adqlType = adqlType;
Sonia Zorba
committed
@XmlElement(name = "votable")
public String getVoTableType() {
return voTableType;
}
/**
* Returns the default xtype for this datatype. This value can be null.
*/
@XmlElement(name = "xtype")
public String getXtype() {
return xtype;
}
public void setXtype(String xtype) {
this.xtype = xtype;
}
/**
* Returns the arraysize defined for this datatype. This is necessary for
* some special datatypes (e.g. {@code POINT}, {@code CIRCLE}) having an
* arraysize defined by their semantic and not by the database metadata.
* This value is null for all the other data types.
*/
@XmlElement(name = "arraysize")
public String getArraysize() {
return arraysize;
}
public void setArraysize(String arraysize) {
this.arraysize = arraysize;
}
Sonia Zorba
committed
public void setVoTableType(String voTableType) {
this.voTableType = voTableType;
}
Sonia Zorba
committed
public DBTypeMapping getMySQLMapping() {
return mysqlMapping;
Sonia Zorba
committed
public void setMySQLMapping(DBTypeMapping mysqlMapping) {
this.mysqlMapping = mysqlMapping;
Sonia Zorba
committed
public DBTypeMapping getPgsqlMapping() {
return pgsqlMapping;
Sonia Zorba
committed
public void setPgsqlMapping(DBTypeMapping pgsqlMapping) {
this.pgsqlMapping = pgsqlMapping;
@XmlElement(name = "java")
public String getJavaTypeString() {
return javaTypeString;
public void setJavaTypeString(String javaTypeString) {
this.javaTypeString = javaTypeString;
}
@XmlTransient
public Class getJavaType() {
try {
return Class.forName(javaTypeString);
} catch (ClassNotFoundException ex) {
throw new RuntimeException(ex);
}