File | Line |
---|
migratool\datasources\geometric\GeometricOriginDataSource.java | 145 |
migratool\datasources\geometric\textFile\GeomTextFileOriginDataSource.java | 148 |
reg.setObject(field.getName(), createStringGeometry(geom));
break;
case igis.datasources.Types.INTEGER :
reg.setInt(
field.getName(),
rs.getInt(field.getName()));
break;
case igis.datasources.Types.REAL :
double value = rs.getDouble(field.getName());
int valueInt = (int) value;
if (value - valueInt == 0)
reg.setInteger(field.getName(), valueInt);
else
reg.setDouble(field.getName(), value);
break;
case igis.datasources.Types.CHARACTER :
reg.setString(
field.getName(),
rs.getString(field.getName()));
break;
case igis.datasources.Types.DATE :
SimpleDateFormat sdf =
new SimpleDateFormat("dd/MM/yyyy");
reg.setString(
field.getName(),
sdf.format(rs.getDate(field.getName())));
break;
}
}
if (ok)
regs.add(reg);
}
} catch (SQLException e) {
throw new DataSourceException(
"Problemas para preencher os dados da "
+ " consulta: \n"
+ cons,e);
}
return regs;
}
/**
* M�todo que usa um adaptador de geometrias para o Oracle
* @param dataSource A fonte de dados
* @param con A conex�o
* @return O adaptador
*/
public GeometryAdapter getGeometryAdapter() {
return OraSpatialManager.getGeometryAdapter("SDO", "8.1.6", STRUCT.class,
STRUCT.class, null, dbConnection);
}
private Collection createCollection() {
return new Vector();
}
/**
* Retorna o conjunto de fields de um ResultSetMetaData
* @param rsmd Os metadados de uma consulta
* @return Iterador com objetos do tipo field
* @throws SQLException
*/
public Collection loadFields(ResultSetMetaData rsmd) throws SQLException {
Collection fields = new Vector();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
Field field = new Field();
field.setName(rsmd.getColumnName(i));
try {
field.setNumber(i);
} catch (InvalidFieldNumberException e) {
e.printStackTrace();
}
int fieldType = -1;
int colType = rsmd.getColumnType(i);
switch (colType) {
case java.sql.Types.DOUBLE :
case java.sql.Types.FLOAT :
case java.sql.Types.DECIMAL :
case java.sql.Types.NUMERIC :
fieldType = igis.datasources.Types.REAL;
break;
case java.sql.Types.INTEGER :
case java.sql.Types.SMALLINT :
fieldType = igis.datasources.Types.INTEGER;
break;
case java.sql.Types.VARCHAR :
case java.sql.Types.CHAR :
case java.sql.Types.LONGVARCHAR :
fieldType = igis.datasources.Types.CHARACTER;
break;
case java.sql.Types.DATE :
case java.sql.Types.TIME :
case java.sql.Types.TIMESTAMP :
fieldType = igis.datasources.Types.DATE;
break;
case java.sql.Types.BINARY :
case java.sql.Types.BLOB :
case java.sql.Types.LONGVARBINARY :
case java.sql.Types.VARBINARY :
fieldType = igis.datasources.Types.BYTE;
break;
default :
fieldType = igis.datasources.Types.SPATIAL;
break;
}
field.setType(fieldType);
fields.add(field);
}
return fields;
}
public String toString() {
return "GeometricOriginDataSource";
}
public LogicTable getData() {
return null;
} |
File | Line |
---|
migratool\datasources\geometric\GeometricOriginDataSource.java | 58 |
migratool\datasources\geometric\textFile\GeomTextFileOriginDataSource.java | 65 |
public GeomTextFileOriginDataSource(BDdescription fromDescrition) {
super(fromDescrition);
}
public Collection getDataTable() throws DataSourceException, igis.datasources.DataSourceException{
ResultSet rs = null;
String cons = "select * from " + originDescription.getTableName();
try {
rs = dbConnection.createStatement().executeQuery(cons);
} catch (SQLException e) {
throw new DataSourceException("Problemas na consulta: \n" + cons,e);
}
ResultSetMetaData rsmd = null;
try {
rsmd = rs.getMetaData();
} catch (SQLException e) {
throw new DataSourceException(
"Problemas para obter os metadados da "
+ " consulta: \n"
+ cons,e);
}
Iterator fieldsIt = null;
Collection fields = null;
try {
fields = loadFields(rsmd);
fieldsIt = fields.iterator();
} catch (SQLException e) {
throw new DataSourceException(
"Problemas para preencher os campos da "
+ " consulta: \n"
+ cons,
e);
}
Unit result = new Unit();
result.setName(cons);
while (fieldsIt.hasNext()) {
Field field = (Field) fieldsIt.next();
result.defineField(field);
}
Collection regs = createCollection();
try {
while (rs.next()) {
Registry reg = new Registry(result);
fieldsIt = fields.iterator();
boolean ok = true;
while (fieldsIt.hasNext()) {
Field field = (Field) fieldsIt.next();
int type = field.getType();
switch (type) {
case igis.datasources.Types.SPATIAL :
oracle.sdoapi.geom.Geometry geom = null;
Object geomObj = null;
try {
geomObj = rs.getObject(field.getName());
if (geomObj == null)
break;
geom = getGeometryAdapter().importGeometry(geomObj);
} catch (Exception e) { |