net.ajaest.data.dict
Class KanjiDatabaseManager

java.lang.Object
  extended by net.ajaest.data.dict.KanjiDatabaseManager
All Implemented Interfaces:
DatabaseManager<KanjiTag,KanjiExpression>

public class KanjiDatabaseManager
extends java.lang.Object
implements DatabaseManager<KanjiTag,KanjiExpression>

This class provides methods to manage a kanji database.

Author:
Luis Alfonso Arce González

Field Summary
private static java.util.Map<java.lang.Class<?>,java.lang.String> fieldNamesTranslations
           
private  OrderedSequenceTree<KanjiStroke,KanjiTag> graphTree
           
private  org.neodatis.odb.ODB kanjiDb
           
private  KanjiDatabaseInfo kdbi
           
 
Constructor Summary
KanjiDatabaseManager(java.io.File f)
          Constructs a kanji database manager interface and connects it to the kanji database in path
KanjiDatabaseManager(java.lang.String path)
          Constructs a kanji database manager interface and connects it to the kanji database in path
 
Method Summary
 void close()
          Closes the connection between the database manager interface and the kanji database.
 java.util.Set<KanjiTag> executeQuery(KanjiExpression query)
          Executes a kanji expression representing a kanji query in order to retrieve the kanjis in database that fulfills the specified conditions.
private  java.util.Set<KanjiTag> executeQuery(java.util.List<org.neodatis.odb.core.query.criteria.And> aboutKanji, java.util.List<org.neodatis.odb.core.query.criteria.And> aboutDicReference, java.util.List<org.neodatis.odb.core.query.criteria.And> aboutReadings, java.util.List<org.neodatis.odb.core.query.criteria.And> aboutMeaning, java.util.List<org.neodatis.odb.core.query.criteria.And> aboutVariant, java.util.List<java.util.List<KanjiGraph>> aboutGraph, java.util.List<java.util.List<KanjiExpression>> aboutQueryIntoQuery)
           
protected  void finalize()
           
 KanjiDatabaseInfo getKanjiDatabaseInformation()
          Returns the current kanji database information object.
 OrderedSequenceTree<KanjiStroke,KanjiTag> getStrokeTree()
          Returns the current kanji database stroke order sequence tree.
private  KanjiExpression optimizeQuery(KanjiExpression ke)
           
private  org.neodatis.odb.core.query.criteria.ICriterion translateCaseToNeodatis(IntegerValueQAbout qa)
           
private  org.neodatis.odb.core.query.criteria.ICriterion translateCaseToNeodatis(StringValueQAbout qa)
           
private  void translateCriteria(QAbout qa, java.util.List<org.neodatis.odb.core.query.criteria.And> aboutKanji, java.util.List<org.neodatis.odb.core.query.criteria.And> aboutDicReference, java.util.List<org.neodatis.odb.core.query.criteria.And> aboutReadings, java.util.List<org.neodatis.odb.core.query.criteria.And> aboutMeaning, java.util.List<org.neodatis.odb.core.query.criteria.And> aboutVariant, java.util.List<java.util.List<KanjiGraph>> aboutGraph, java.util.List<java.util.List<KanjiExpression>> aboutQueryIntoQuery)
           
private  java.lang.String translateFieldName(ValueQAbout<?> qa)
           
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

kanjiDb

private org.neodatis.odb.ODB kanjiDb

kdbi

private KanjiDatabaseInfo kdbi

graphTree

private OrderedSequenceTree<KanjiStroke,KanjiTag> graphTree

fieldNamesTranslations

private static final java.util.Map<java.lang.Class<?>,java.lang.String> fieldNamesTranslations
Constructor Detail

KanjiDatabaseManager

public KanjiDatabaseManager(java.io.File f)
Constructs a kanji database manager interface and connects it to the kanji database in path

Parameters:
f - Kanji database path File object.

KanjiDatabaseManager

public KanjiDatabaseManager(java.lang.String path)
Constructs a kanji database manager interface and connects it to the kanji database in path

Parameters:
path - Kanji database path.
Method Detail

close

public void close()
Closes the connection between the database manager interface and the kanji database.

Specified by:
close in interface DatabaseManager<KanjiTag,KanjiExpression>

executeQuery

public java.util.Set<KanjiTag> executeQuery(KanjiExpression query)
Executes a kanji expression representing a kanji query in order to retrieve the kanjis in database that fulfills the specified conditions.

Specified by:
executeQuery in interface DatabaseManager<KanjiTag,KanjiExpression>
Parameters:
query - The KanjiExpression representing a kanji query.
Returns:
A set of kanjis as a result of executing the query.

executeQuery

private java.util.Set<KanjiTag> executeQuery(java.util.List<org.neodatis.odb.core.query.criteria.And> aboutKanji,
                                             java.util.List<org.neodatis.odb.core.query.criteria.And> aboutDicReference,
                                             java.util.List<org.neodatis.odb.core.query.criteria.And> aboutReadings,
                                             java.util.List<org.neodatis.odb.core.query.criteria.And> aboutMeaning,
                                             java.util.List<org.neodatis.odb.core.query.criteria.And> aboutVariant,
                                             java.util.List<java.util.List<KanjiGraph>> aboutGraph,
                                             java.util.List<java.util.List<KanjiExpression>> aboutQueryIntoQuery)

finalize

protected void finalize()
                 throws java.lang.Throwable
Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable

getKanjiDatabaseInformation

public KanjiDatabaseInfo getKanjiDatabaseInformation()
Returns the current kanji database information object.

Returns:
a KanjiDatabaseInformation object.

getStrokeTree

public OrderedSequenceTree<KanjiStroke,KanjiTag> getStrokeTree()
Returns the current kanji database stroke order sequence tree.

Returns:
the kanji stroke order tree

optimizeQuery

private KanjiExpression optimizeQuery(KanjiExpression ke)

translateCaseToNeodatis

private org.neodatis.odb.core.query.criteria.ICriterion translateCaseToNeodatis(IntegerValueQAbout qa)

translateCaseToNeodatis

private org.neodatis.odb.core.query.criteria.ICriterion translateCaseToNeodatis(StringValueQAbout qa)

translateCriteria

private void translateCriteria(QAbout qa,
                               java.util.List<org.neodatis.odb.core.query.criteria.And> aboutKanji,
                               java.util.List<org.neodatis.odb.core.query.criteria.And> aboutDicReference,
                               java.util.List<org.neodatis.odb.core.query.criteria.And> aboutReadings,
                               java.util.List<org.neodatis.odb.core.query.criteria.And> aboutMeaning,
                               java.util.List<org.neodatis.odb.core.query.criteria.And> aboutVariant,
                               java.util.List<java.util.List<KanjiGraph>> aboutGraph,
                               java.util.List<java.util.List<KanjiExpression>> aboutQueryIntoQuery)

translateFieldName

private java.lang.String translateFieldName(ValueQAbout<?> qa)