org.rdtdm.mapping.db
Class DBMapper

java.lang.Object
  |
  +--org.rdtdm.mapping.db.DBMapper
All Implemented Interfaces:
Mapper

public class DBMapper
extends java.lang.Object
implements Mapper

DBMapper implementiert einen Mapper f?r die Datenbank.



Copyright (c) 2001 by Dirk Münstermann
All Rights Reserved

Version:
$Revision:$ ($Date:$)
Changelog:
 $Log:$
 


Author:
Dirk Münstermann

Field Summary
private  DBFeeder db
          Eine Referenz auf den Datenbank-Feeder
private  java.util.ArrayList dbmappings
          Beinhaltet alle Abbildungen.
private  java.util.ArrayList dbmultimappings
          Beinhaltet alle Abbildungen.
private  java.util.Hashtable mapsByArity
           
private  java.util.Hashtable mapsizes
           
private  java.util.ArrayList maptypes
          Beinhaltet alle registrierten Abbildungstypen.
private static long multimappingcount
           
 
Constructor Summary
DBMapper()
           
DBMapper(DBFeeder db)
           
DBMapper(DBFeeder db, java.util.Collection maptypes)
           
 
Method Summary
protected  void addMappingToAritySort(Mapping map)
           
 void addMaptypes(MapType maptype)
          F?gt einen Abbildungstypen hinzu.
protected  void calcMappingArity()
          Speichert f?r alle Mappings die auftretenden Arity mit der Anzahl der zugeh?rigen Mappings.
protected  java.util.Collection createMapping(Table tab)
          Erzeugt ein Datenbank-Mapping f?r die ?bergebene Tabelle und liefert dies bzw.
protected  java.util.Collection createMapping(Table tab, DBMapType maptype)
           
 void createMappings()
          Erzeugt ein vollst?ndiges Datenbank-Mapping.
 void createMultiMapping(RuleSchema rs)
           
 Literal createNegTarget(Literal concl, java.util.Collection rms)
           
private  java.lang.String createSQLAttributes(RuleSchema rs)
           
private  java.lang.String createSQLConcl(RuleSchema rs, java.lang.String as, boolean negation)
           
private  java.lang.String createSQLConstWhere(RuleSchema rs, boolean negativ)
           
private  java.lang.String createSQLConstWhere(RuleSchema rs, boolean onlyprems, boolean negativ)
           
private  java.lang.String createSQLConstWhereConcl(RuleSchema rs, boolean negativ)
           
private  java.lang.String createSQLConstWhereConclOLD(RuleSchema rs, boolean negativ)
          Creates the where part of a sql query for constants in conclusion of the rule schema.
private  java.lang.String createSQLConstWhereOLD(RuleSchema rs, boolean negativ)
          Creates the where part of a sql query for constants in the rule schema.
private  java.lang.String createSQLConstWherePrems(RuleSchema rs)
          Creates the where part of a sql query for constants in premisen of the rule schema.
private  java.lang.String createSQLDefaultWhere(RuleSchema rs)
           
private  java.lang.String createSQLDefaultWhereOLD(RuleSchema rs)
          Creates the where part for a sql query for the equality of literal variables in differently literals and for arithmetic literals.
private  java.lang.String createSQLMappingWhere(RuleSchema rs, boolean negation)
           
private  java.lang.String createSQLMappingWhere(RuleSchema rs, boolean onlyprems, boolean negation)
           
private  java.lang.String createSQLMappingWhereConcl(RuleSchema rs, boolean negation)
          Creates the where-part for a sql query for the conclusion-term of the rule schema.
private  java.lang.String createSQLMappingWhereOLD(RuleSchema rs, boolean negation)
          Creates the where-part for a sql query with all mapping term of the rule schema.
private  java.lang.String createSQLMappingWherePrems(RuleSchema rs)
          Creates the where-part for a sql query for the premison-terms of the rule schema.
private  java.lang.String createSQLViewWhere(RuleSchema rs)
           
private  java.lang.String createSQLWhereNeg(RuleSchema rs)
          Liefert den where-Teil der SQL-Anfrage f?r die Anzahl der negativen Beispiele der Regel zur?ck.
private  java.lang.String createSQLWherePos(RuleSchema rs)
          Liefert den where-Teil der SQL-Anfrage f?r die Anzahl der positiven Beispiele der Regel zur?ck.
private  Table createView(RuleSchema rs)
           
 void dropMultiMapping(RuleSchema rs)
           
private  java.lang.String getColumnName(Literal lit, java.lang.String litvar)
           
 DBFeeder getDb()
          Liefert die interne Variable db zurueck.
 Literal getLiteral(DBRule rule)
           
 java.util.Collection getLiterals()
           
 java.util.Collection getLiterals(int arity)
           
 java.util.Collection getLiterals(Literal lit)
           
 java.lang.String getLiteralType(Literal lit, java.lang.String litvar)
          Liefert den Typ einer LiteralVariablen bzgl. des aktuellen Mappings zurueck.
 Mapping getMapping(java.util.Collection lits)
          Returns the mapping for a collection of literals.
 Mapping getMapping(Literal lit)
          Liefert genau das zugeh?rige Mapping zu dem ?bergebenen Literal zur?ck.
private  Mapping getMappingForLit(Literal lit, java.util.Collection maps)
           
 java.util.Collection getMappings()
          Liefert alle Mappings zurueck.
 java.util.Collection getMappings(int arity)
          Liefert alle Mappings mit der ?bergebenen Arity zurueck.
private  java.util.Collection getMappings(RuleSchema rs)
          Returns all mappings needing for the rule schema.
 java.util.Collection getMaptypes()
          Liefert die interne Variable maptypes zurueck.
 int getSize()
          Liefert die Anzahl der Mappings zur?ck.
 int getSize(int arity)
          Liefert die Anzahl der Mappings zur?ck mit Parameteranzahl der gegebenen Paramteranzahl.
private  java.lang.String getSQLFromWherePartStatementNeg(RuleSchema rs)
           
private  java.lang.String getSQLQuery(RuleSchema rs, boolean concltest)
           
private  java.lang.String getSQLStatementConcl(RuleSchema rs)
          Liefert den Anfragestring zur Bestimmung der Anzahl des Vorkommens der Konklusion zur?ck.
private  java.lang.String getSQLStatementNeg(RuleSchema rs)
          Liefert den Anfragestring zur Bestimmung der Anzahl der negativen Beispiele f?r die Regel zur?ck.
private  java.lang.String getSQLStatementNegConcl(RuleSchema rs)
          Liefert den Anfragestring zur Bestimmung der Anzahl des Vorkommens der Negation der Konklusion zur?ck.
private  java.lang.String getSQLStatementPos(RuleSchema rs)
          Liefert den Anfragestring zur Bestimmung der Anzahl der positiven Beispiele f?r die Regel zur?ck.
private  java.lang.String getSQLViewQuery(RuleSchema rs)
           
private  Table getTable(java.util.Collection lits, boolean negation)
           
private  Table getTable(Literal lit, boolean negation)
           
private  java.lang.String getTableName(java.util.Collection lits, boolean negation)
           
private  java.lang.String getTableName(Literal lit, boolean negation)
           
private  java.lang.String getTableRef(java.util.Collection lits, boolean negation)
           
private  java.lang.String getTableRef(Literal lit, boolean negation)
           
private  java.lang.String getTerm(java.util.Collection lits, boolean negation)
           
private  java.lang.String getTerm(Literal lit, boolean negation)
           
protected  void incMapSizes(int arity)
           
 boolean isConsistence(RuleSchema rs)
          Liefert true, wenn das instatiierte Regelschema bzgl. der Literalvariablentypen konsistent ist.
protected  boolean isConsistenceLitConsts(RuleSchema rs)
          Liefert true, wenn der Konstanten-Typ mit den Parametertypen in den Literalen ?bereinstimmt.
protected  boolean isConsistenceLitVars(RuleSchema rs)
          Liefert true, wenn die Variablen-Typen in verschiedenen Literalen ?bereinstimmt.
 boolean isEmpty()
          Liefert true, wenn keine Mappings enthalten sind.
 boolean isEmpty(int arity)
          Liefert true, wenn keine Mappings mit der ?bergebenen Arity enthalten sind.
 void printDBMappings()
           
 void printDBMappings(int arity)
           
 void printDBMappingsByArity()
           
 void printMapTypes()
           
 java.util.Properties queryResults(boolean concltest, RuleSchema rs)
           
 void setDb(DBFeeder db)
          Setzt die interne Variable db.
 void setMaptypes(java.util.Collection maptypes)
          Setzt die interne Variable maptypes.
private  java.lang.String setSQLVarNames(RuleSchema rs, boolean negation)
          Returns a String with all tables for the from part of the sql query with unique names vor all tables.
protected  void sortMappings()
          Sortiert die Mappings intern nach Arity und erzeugt ein direkt zugreifbare Verwaltung auf diese Arity-Mappings.
 java.lang.String toString()
           
private  void unsetSQLVarNames(RuleSchema rs)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

dbmappings

private java.util.ArrayList dbmappings
Beinhaltet alle Abbildungen.


dbmultimappings

private java.util.ArrayList dbmultimappings
Beinhaltet alle Abbildungen.


db

private DBFeeder db
Eine Referenz auf den Datenbank-Feeder


maptypes

private java.util.ArrayList maptypes
Beinhaltet alle registrierten Abbildungstypen.


mapsizes

private java.util.Hashtable mapsizes

mapsByArity

private java.util.Hashtable mapsByArity

multimappingcount

private static long multimappingcount
Constructor Detail

DBMapper

public DBMapper()

DBMapper

public DBMapper(DBFeeder db)

DBMapper

public DBMapper(DBFeeder db,
                java.util.Collection maptypes)
Method Detail

setDb

public void setDb(DBFeeder db)
Setzt die interne Variable db.

Parameters:
db - Der Datenbank Feeder


getDb

public DBFeeder getDb()
Liefert die interne Variable db zurueck.

Returns:
db Der Datenbank Feeder


setMaptypes

public void setMaptypes(java.util.Collection maptypes)
Setzt die interne Variable maptypes.

Parameters:
maptypes - Eine Sammlung von Abbildungstypen.


addMaptypes

public void addMaptypes(MapType maptype)
F?gt einen Abbildungstypen hinzu.

Parameters:
maptype - Ein Abbildungstyp.


getMaptypes

public java.util.Collection getMaptypes()
Liefert die interne Variable maptypes zurueck.

Returns:
Eine Sammlung von Abbildungstypen.


createMappings

public void createMappings()
                    throws java.sql.SQLException
Erzeugt ein vollst?ndiges Datenbank-Mapping. Dabei wird f?r jede Tabelle die Methode @link createMapping(Table tab) aufgeruefen. Alle ?lteren Mappings werden gel?scht.

Throws:
java.sql.SQLException - Fehler beim Zugriff auf die DB


dropMultiMapping

public void dropMultiMapping(RuleSchema rs)
                      throws java.sql.SQLException
java.sql.SQLException

createMultiMapping

public void createMultiMapping(RuleSchema rs)
                        throws java.sql.SQLException
java.sql.SQLException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

printDBMappings

public void printDBMappings()

printDBMappingsByArity

public void printDBMappingsByArity()

printDBMappings

public void printDBMappings(int arity)

printMapTypes

public void printMapTypes()

getLiteral

public Literal getLiteral(DBRule rule)

getLiterals

public java.util.Collection getLiterals()

getLiterals

public java.util.Collection getLiterals(Literal lit)

getLiterals

public java.util.Collection getLiterals(int arity)

createNegTarget

public Literal createNegTarget(Literal concl,
                               java.util.Collection rms)
                        throws java.sql.SQLException
java.sql.SQLException

getMappings

public java.util.Collection getMappings()
Liefert alle Mappings zurueck.

Specified by:
getMappings in interface Mapper
Returns:
Eine Sammlung von Mappings.


getSize

public int getSize()
Liefert die Anzahl der Mappings zur?ck.

Specified by:
getSize in interface Mapper
Returns:
Anzahl der Mappings.


isEmpty

public boolean isEmpty()
Liefert true, wenn keine Mappings enthalten sind.

Specified by:
isEmpty in interface Mapper
Returns:
true, wenn keine Mappings enthalten sind, sonst false.


getMappings

public java.util.Collection getMappings(int arity)
Liefert alle Mappings mit der ?bergebenen Arity zurueck.

Specified by:
getMappings in interface Mapper
Parameters:
arity - Anzahl der Parameter im Mapping.
Returns:
Eine Sammlung von Mappings mit der ?bergebenen Arity.


getSize

public int getSize(int arity)
Liefert die Anzahl der Mappings zur?ck mit Parameteranzahl der gegebenen Paramteranzahl.

Specified by:
getSize in interface Mapper
Parameters:
arity - Anzahl der Parameter im Mapping.
Returns:
Anzahl der Mappings.


isEmpty

public boolean isEmpty(int arity)
Liefert true, wenn keine Mappings mit der ?bergebenen Arity enthalten sind.

Specified by:
isEmpty in interface Mapper
Parameters:
arity - Anzahl der Parameter im Mapping.
Returns:
true, wenn keine Mappings mit der ?bergebenen Arity enthalten sind, sonst false.


getMapping

public Mapping getMapping(Literal lit)
Liefert genau das zugeh?rige Mapping zu dem ?bergebenen Literal zur?ck.

Specified by:
getMapping in interface Mapper
Parameters:
lit - Literal f?r das das Mapping zur?ck geliefter werden soll.
Returns:
Ein Mapping.


getMapping

public Mapping getMapping(java.util.Collection lits)
Returns the mapping for a collection of literals. (multimapping)

Parameters:
lits - A collection of literals
Returns:
the mapping


queryResults

public java.util.Properties queryResults(boolean concltest,
                                         RuleSchema rs)
Specified by:
queryResults in interface Mapper

isConsistence

public boolean isConsistence(RuleSchema rs)
Liefert true, wenn das instatiierte Regelschema bzgl. der Literalvariablentypen konsistent ist.

Specified by:
isConsistence in interface Mapper
Parameters:
rs - Das zu untersuchende Regelschema.
Returns:
true, wenn es konsistent ist, sonst false.


isConsistenceLitConsts

protected boolean isConsistenceLitConsts(RuleSchema rs)
Liefert true, wenn der Konstanten-Typ mit den Parametertypen in den Literalen ?bereinstimmt.

Parameters:
rs - Das zu untersuchende Regelschema.
Returns:
true, wenn die Konstantentypen konsistent sind, sonst false.


isConsistenceLitVars

protected boolean isConsistenceLitVars(RuleSchema rs)
Liefert true, wenn die Variablen-Typen in verschiedenen Literalen ?bereinstimmt.

Parameters:
rs - Das zu untersuchende Regelschema.
Returns:
true, wenn die Variablentypen konsistent sind, sonst false.


getLiteralType

public java.lang.String getLiteralType(Literal lit,
                                       java.lang.String litvar)
Liefert den Typ einer LiteralVariablen bzgl. des aktuellen Mappings zurueck.

Parameters:
lit - Literal
litvar - Name der Literalvariablen
Returns:
Typ der LiteralVariabeln des Literal bzgl. ders Mappings


createMapping

protected java.util.Collection createMapping(Table tab)
                                      throws java.sql.SQLException
Erzeugt ein Datenbank-Mapping f?r die ?bergebene Tabelle und liefert dies bzw. diese zur?ck. Hier wird immer nur eine leere Sammlung zur?ckgeliefert. Eine ?berladung dieser Methode ist notwendig um Mappings zu erzeugen.

Parameters:
tab - Eine Tabelle aus der Datenbank.
Returns:
Eine Sammlung von Mappings f?r die Tabelle (ggf. nur ein Mappings).
Throws:
java.sql.SQLException - Fehler beim Zugriff auf die DB


createMapping

protected java.util.Collection createMapping(Table tab,
                                             DBMapType maptype)
                                      throws java.sql.SQLException
java.sql.SQLException

calcMappingArity

protected void calcMappingArity()
Speichert f?r alle Mappings die auftretenden Arity mit der Anzahl der zugeh?rigen Mappings.


incMapSizes

protected void incMapSizes(int arity)

sortMappings

protected void sortMappings()
Sortiert die Mappings intern nach Arity und erzeugt ein direkt zugreifbare Verwaltung auf diese Arity-Mappings.


addMappingToAritySort

protected void addMappingToAritySort(Mapping map)

getSQLQuery

private java.lang.String getSQLQuery(RuleSchema rs,
                                     boolean concltest)

getSQLViewQuery

private java.lang.String getSQLViewQuery(RuleSchema rs)

createView

private Table createView(RuleSchema rs)
                  throws java.sql.SQLException
java.sql.SQLException

createSQLAttributes

private java.lang.String createSQLAttributes(RuleSchema rs)

getSQLStatementPos

private java.lang.String getSQLStatementPos(RuleSchema rs)
Liefert den Anfragestring zur Bestimmung der Anzahl der positiven Beispiele f?r die Regel zur?ck.

Parameters:
rs - a ruleschema
Returns:
String the sql query


getSQLStatementNeg

private java.lang.String getSQLStatementNeg(RuleSchema rs)
Liefert den Anfragestring zur Bestimmung der Anzahl der negativen Beispiele f?r die Regel zur?ck.

Parameters:
rs - a ruleschema
Returns:
String the sql query


getSQLFromWherePartStatementNeg

private java.lang.String getSQLFromWherePartStatementNeg(RuleSchema rs)

getSQLStatementConcl

private java.lang.String getSQLStatementConcl(RuleSchema rs)
Liefert den Anfragestring zur Bestimmung der Anzahl des Vorkommens der Konklusion zur?ck.

Parameters:
rs - a ruleschema
Returns:
String the sql query


getSQLStatementNegConcl

private java.lang.String getSQLStatementNegConcl(RuleSchema rs)
Liefert den Anfragestring zur Bestimmung der Anzahl des Vorkommens der Negation der Konklusion zur?ck.

Parameters:
rs - a ruleschema
Returns:
String the sql query


createSQLConcl

private java.lang.String createSQLConcl(RuleSchema rs,
                                        java.lang.String as,
                                        boolean negation)

createSQLViewWhere

private java.lang.String createSQLViewWhere(RuleSchema rs)

createSQLWherePos

private java.lang.String createSQLWherePos(RuleSchema rs)
Liefert den where-Teil der SQL-Anfrage f?r die Anzahl der positiven Beispiele der Regel zur?ck.

Parameters:
rs - a ruleschema
Returns:
String the where part of the sql query


createSQLWhereNeg

private java.lang.String createSQLWhereNeg(RuleSchema rs)
Liefert den where-Teil der SQL-Anfrage f?r die Anzahl der negativen Beispiele der Regel zur?ck.

Parameters:
rs - a ruleschema
Returns:
String the where part of the sql query


createSQLDefaultWhere

private java.lang.String createSQLDefaultWhere(RuleSchema rs)

getMappingForLit

private Mapping getMappingForLit(Literal lit,
                                 java.util.Collection maps)

createSQLDefaultWhereOLD

private java.lang.String createSQLDefaultWhereOLD(RuleSchema rs)
Creates the where part for a sql query for the equality of literal variables in differently literals and for arithmetic literals.

Parameters:
rs - the rule schema
Returns:
the where part


createSQLMappingWhere

private java.lang.String createSQLMappingWhere(RuleSchema rs,
                                               boolean onlyprems,
                                               boolean negation)

createSQLMappingWhere

private java.lang.String createSQLMappingWhere(RuleSchema rs,
                                               boolean negation)

createSQLMappingWhereOLD

private java.lang.String createSQLMappingWhereOLD(RuleSchema rs,
                                                  boolean negation)
Creates the where-part for a sql query with all mapping term of the rule schema.

Parameters:
rs - the rule schema
negation - return a negation of the term
Returns:
the where part


createSQLMappingWhereConcl

private java.lang.String createSQLMappingWhereConcl(RuleSchema rs,
                                                    boolean negation)
Creates the where-part for a sql query for the conclusion-term of the rule schema.

Parameters:
rs - the rule schema
negation - return a negation of the term
Returns:
the where part


createSQLMappingWherePrems

private java.lang.String createSQLMappingWherePrems(RuleSchema rs)
Creates the where-part for a sql query for the premison-terms of the rule schema.

Parameters:
rs - the rule schema
Returns:
the where part


createSQLConstWhere

private java.lang.String createSQLConstWhere(RuleSchema rs,
                                             boolean negativ)

createSQLConstWhere

private java.lang.String createSQLConstWhere(RuleSchema rs,
                                             boolean onlyprems,
                                             boolean negativ)

createSQLConstWhereOLD

private java.lang.String createSQLConstWhereOLD(RuleSchema rs,
                                                boolean negativ)
Creates the where part of a sql query for constants in the rule schema.

Parameters:
rs - the rule schema
negativ - ...
Returns:
zus?tzlicher where-Teil


createSQLConstWhereConcl

private java.lang.String createSQLConstWhereConcl(RuleSchema rs,
                                                  boolean negativ)

createSQLConstWhereConclOLD

private java.lang.String createSQLConstWhereConclOLD(RuleSchema rs,
                                                     boolean negativ)
Creates the where part of a sql query for constants in conclusion of the rule schema.

Parameters:
rs - the rule schema
negativ - if true the negation is producted
Returns:
the where part


createSQLConstWherePrems

private java.lang.String createSQLConstWherePrems(RuleSchema rs)
Creates the where part of a sql query for constants in premisen of the rule schema.

Parameters:
rs - the rule schema
Returns:
the where part


getMappings

private java.util.Collection getMappings(RuleSchema rs)
Returns all mappings needing for the rule schema.

Parameters:
rs - the rule schema
Returns:
a collection of mappings of the type DBMapping or DBMultiMapping


setSQLVarNames

private java.lang.String setSQLVarNames(RuleSchema rs,
                                        boolean negation)
Returns a String with all tables for the from part of the sql query with unique names vor all tables.

Parameters:
rs - a ruleschema
negation - ..
Returns:
String the from part of the sql query


unsetSQLVarNames

private void unsetSQLVarNames(RuleSchema rs)

getColumnName

private java.lang.String getColumnName(Literal lit,
                                       java.lang.String litvar)

getTableName

private java.lang.String getTableName(java.util.Collection lits,
                                      boolean negation)

getTableRef

private java.lang.String getTableRef(java.util.Collection lits,
                                     boolean negation)

getTerm

private java.lang.String getTerm(java.util.Collection lits,
                                 boolean negation)

getTable

private Table getTable(java.util.Collection lits,
                       boolean negation)

getTableName

private java.lang.String getTableName(Literal lit,
                                      boolean negation)

getTableRef

private java.lang.String getTableRef(Literal lit,
                                     boolean negation)

getTerm

private java.lang.String getTerm(Literal lit,
                                 boolean negation)

getTable

private Table getTable(Literal lit,
                       boolean negation)