Edde
12-01-2007, 12:46
La situazione è questa:
Ho un ciclo, all'interno del quale genero di volta in volta degli oggetti che devo poi manovrare. Il problema è che alla seconda iterazione, il sistema si trova un nome già utilizzato, e quindi genera un'eccezione. Come posso fare ad evitare questo problema? Non c'è un modo per generare in automatico (magari in maniera più o meno casuale) i nomi delle variabili?
Questo è il codice(le righe evidenziate sono quelle che danno il problema):
while(table.next())
{
//Nome della tabella locale
tableName = table.getString(3);
//Errore
OWLNamedClass nc = owlModel.createOWLNamedClass(tableName); ******
//Colonne della tabella
column = dmd.getColumns(null,schema,table.getString(3),"%");
while(column.next())
{
columnName = column.getString(4); //Nome colonna
columnType = column.getString(6); //Tipo colonna
//Creo la proprietà dato associata alla colonna corrente
//Altro errore
OWLDatatypeProperty dProp = owlModel.createOWLDatatypeProperty(columnName); ****
dProp.setDomain(nc); //Dominio: la classe corrente
//Range: il tipo di dato associato
if(columnName.equals("VARCHAR2"))
dProp.setRange(owlModel.getXSDstring());
if(columnName.equals("NUMBER"))
dProp.setRange(owlModel.getXSDinteger());
}//Ho creato tutte le datatypeProperty della classe
}//Ho creato tutte le classi
Ho un ciclo, all'interno del quale genero di volta in volta degli oggetti che devo poi manovrare. Il problema è che alla seconda iterazione, il sistema si trova un nome già utilizzato, e quindi genera un'eccezione. Come posso fare ad evitare questo problema? Non c'è un modo per generare in automatico (magari in maniera più o meno casuale) i nomi delle variabili?
Questo è il codice(le righe evidenziate sono quelle che danno il problema):
while(table.next())
{
//Nome della tabella locale
tableName = table.getString(3);
//Errore
OWLNamedClass nc = owlModel.createOWLNamedClass(tableName); ******
//Colonne della tabella
column = dmd.getColumns(null,schema,table.getString(3),"%");
while(column.next())
{
columnName = column.getString(4); //Nome colonna
columnType = column.getString(6); //Tipo colonna
//Creo la proprietà dato associata alla colonna corrente
//Altro errore
OWLDatatypeProperty dProp = owlModel.createOWLDatatypeProperty(columnName); ****
dProp.setDomain(nc); //Dominio: la classe corrente
//Range: il tipo di dato associato
if(columnName.equals("VARCHAR2"))
dProp.setRange(owlModel.getXSDstring());
if(columnName.equals("NUMBER"))
dProp.setRange(owlModel.getXSDinteger());
}//Ho creato tutte le datatypeProperty della classe
}//Ho creato tutte le classi