uk.ac.ic.doc.automed.matching
Class SQLIntegrator

java.lang.Object
  extended by uk.ac.ic.doc.automed.matching.Integrator
      extended by uk.ac.ic.doc.automed.matching.SQLIntegrator

public class SQLIntegrator
extends Integrator

The Integrator of SQL schemas


Field Summary
 
Fields inherited from class uk.ac.ic.doc.automed.matching.Integrator
disjoints, equivalents, overlaps, subsumptions
 
Constructor Summary
SQLIntegrator()
           
 
Method Summary
protected  SchemaObject[] getColumnsOfTable(Schema s, SchemaObject table)
          Returns an array of schema objects of the columns of the specified table in the schema.
protected  SchemaElementPair[] getRelatedTables(java.util.ArrayList rels)
          Returns a SchemaElementPair array of related table pairs in the specified list.
 Schema[] getSchemas()
          Returns an array of the current schemas.
protected  SchemaObject[] getTables(Schema s)
          Returns an array of schema objects of tables in the specified schema.
 void mergeSchemas()
          Merges the schemas after the naming conflicts have been resolved.
protected  SchemaObject[] removeSchemaObject(SchemaObject so, SchemaObject[] objects)
          Return a SchemaObject array by removing the specified object from the input array.
protected  void resolveDisjoints()
          Resolves the structural conflicts of the schemas for disjointness relationships.
 void resolveNamingConflicts()
          Resolves the naming conflicts of the schemas.
protected  void resolveOverlaps()
          Resolves the structural conflicts of the schemas for overlapness relationships.
 void resolveStructuralConflicts()
          Resolves the structural conflicts of the schemas.
protected  void resolveSubsumptions()
          Resolves the structural conflicts of the schemas for subsumption relationships.
 void setSchemas(Schema[] schemas)
          Sets the schemas that are going to be integrated.
 
Methods inherited from class uk.ac.ic.doc.automed.matching.Integrator
areRelated, contains, contains, existsIn, existsIn, extendToMatch, findRelated, getAllCombinations, getCombinations, getCombinationsOverMultipleArrays, getCommonRelationship, getElements, getRelationship, isRelated, removeDuplicates, selectPairs, selectPairs, setRelationships
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SQLIntegrator

public SQLIntegrator()
Method Detail

setSchemas

public void setSchemas(Schema[] schemas)
                throws IntegratorException
Sets the schemas that are going to be integrated. Currently only pairwsie integration is possible, therefore the specified array should have length 2.

Specified by:
setSchemas in class Integrator
Parameters:
schemas - the array of the schemas to be integrated
Throws:
IntegratorException - if length of array different than 2

getSchemas

public Schema[] getSchemas()
Returns an array of the current schemas. The initial schemas may have been transformed

Specified by:
getSchemas in class Integrator
Returns:
an array of the current schemas

mergeSchemas

public void mergeSchemas()
Merges the schemas after the naming conflicts have been resolved.

Specified by:
mergeSchemas in class Integrator

resolveNamingConflicts

public void resolveNamingConflicts()
                            throws IntegratorException,
                                   IntegrityException
Resolves the naming conflicts of the schemas. This operation is based on the equivalence relationships between schema elements

Specified by:
resolveNamingConflicts in class Integrator
Throws:
IntegratorException - if something goes wrong in the conflict resolution
IntegrityException

resolveStructuralConflicts

public void resolveStructuralConflicts()
                                throws IntegratorException,
                                       IntegrityException
Resolves the structural conflicts of the schemas. This operation is based on the subsumption, overlapness and disjointness relationships between schema elements. Before the structural conflicts are resolved the schemas have to be merged

Specified by:
resolveStructuralConflicts in class Integrator
Throws:
IntegratorException - if the schemas aren't merged or something goes wrong in the conflict resolution
IntegrityException

resolveSubsumptions

protected void resolveSubsumptions()
                            throws IntegratorException,
                                   IntegrityException
Resolves the structural conflicts of the schemas for subsumption relationships.

Throws:
IntegratorException - if something goes wrong in the conflict resolution
IntegrityException

resolveOverlaps

protected void resolveOverlaps()
                        throws IntegratorException,
                               IntegrityException
Resolves the structural conflicts of the schemas for overlapness relationships.

Throws:
IntegratorException - if something goes wrong in the conflict resolution
IntegrityException

resolveDisjoints

protected void resolveDisjoints()
                         throws IntegratorException,
                                IntegrityException
Resolves the structural conflicts of the schemas for disjointness relationships.

Throws:
IntegratorException - if something goes wrong in the conflict resolution
IntegrityException

getTables

protected SchemaObject[] getTables(Schema s)
Returns an array of schema objects of tables in the specified schema.

Parameters:
s - the schema
Returns:
an array of schema objects of tables in the specified schema

getColumnsOfTable

protected SchemaObject[] getColumnsOfTable(Schema s,
                                           SchemaObject table)
Returns an array of schema objects of the columns of the specified table in the schema.

Parameters:
s - the schema
table - the table whose columns are returned
Returns:
an array of schema objects of the columns of the specified table in the schema

removeSchemaObject

protected SchemaObject[] removeSchemaObject(SchemaObject so,
                                            SchemaObject[] objects)
Return a SchemaObject array by removing the specified object from the input array.

Parameters:
so - the schema object to be removed
objects - the input array of schema objects
Returns:
a SchemaObject array by removing the specified object from the input array

getRelatedTables

protected SchemaElementPair[] getRelatedTables(java.util.ArrayList rels)
Returns a SchemaElementPair array of related table pairs in the specified list. rels is a list of SchemaElementPairRelationship objects.

Parameters:
rels - the list of related pairs
Returns:
a SchemaElementPair array of related table pairs in the specified list