net.ajaest.jdk.data.dict.query
Class QueryAdaptor

java.lang.Object
  extended by net.ajaest.jdk.data.dict.query.QueryAdaptor

public class QueryAdaptor
extends java.lang.Object

This single-instance class provide methods to adapt a kanji expression in order to expand or limit the range of defined kanji of the expression. Example usage could be:
 KanjiExpression ke = QueryAdaptor.limitToJôyô().meaningsInLanguaje(ISO639ー1.EN).adapt(kanjiExpression);

Author:
Luis Alfonso Arce González

Field Summary
private  boolean demux
           
private static boolean DEMUX
           
private static boolean DEMUX_READINGS
           
private  java.lang.Integer demuxes
           
private static java.lang.Integer DEMUXES
           
private  boolean demuxReadings
           
private  SimilarKanjiStrokeDemuxer graphDemuxer
           
private static SimilarKanjiStrokeDemuxer GRAPHDEMUXER
           
private static boolean GROUP_PAIRS
           
private  boolean groupPairs
           
private static boolean LIMIT_TO_JÔYÔ_KANJI
           
private  boolean limitToJöyöKanji
           
private  SystemEnums.ISO639ー1 meaningLang
           
private static SystemEnums.ISO639ー1 MEANINGLANG
           
private static boolean SELECT_MEANING_LANGUAJE
           
private  boolean selectMeaningLanguaje
           
 
Constructor Summary
private QueryAdaptor(SimilarKanjiStrokeDemuxer graphDemuxer, boolean demux, java.lang.Integer demuxes, boolean selectMeaningLanguaje, SystemEnums.ISO639ー1 meaningLang, boolean limitToJöyöKanji, boolean demuxReadings, boolean demuxDicRefs)
           
 
Method Summary
 KanjiExpression adapt(KanjiExpression ke)
           
private  KanjiExpression addDomain(KanjiQuery kq, QAbout domain)
           
private  KanjiExpression demuxGraph(KanjiGraphQAbout kgqa)
           
static QueryAdaptor demuxGraphs(SimilarKanjiStrokeDemuxer sksd, java.lang.Integer demuxes)
          Sets that in the query to be adapted all occurrences of graphs will be demuxed the in the specified number of new graphs using the specified stroke demuxer
private
<VQ extends ValueQAbout<Pair<E1,E2>>,E1,E2>
void
demuxPairs(java.util.Set<VQ> vqps, java.util.Set<ValueQAbout<E1>> vq1s, java.util.Set<ValueQAbout<E2>> vq2s, java.util.List<ConnectorEnum> booleanConnector, java.util.List<QAbout> domains, KanjiEnums.KanjiFieldEnum c)
           
static QueryAdaptor demuxReadings()
          Sets that in the query to be adapted all reading consults will be demuxed in order to being able to find readings with kanji markers.
private  KanjiExpression demuxReadings(ReadingQAbout domain)
           
protected  void finalize()
           
static QueryAdaptor groupPairs()
          Group pairs criteria into a unique criteria.
private  KanjiExpression groupPairs(KanjiExpression adaptedKe)
           
static QueryAdaptor limitToJôyô()
          Sets that the query to be adapted will only refer to kanjis which grade is lower than 10
static QueryAdaptor meaningsInLanguaje(SystemEnums.ISO639ー1 lang)
          Sets that in the query to be adapted all occurrences of meaning consult will be limited to an specified language
private
<E> KanjiExpression
selectCase(ValueQAbout<E> vqa, QueryCaseEnum caze, E value)
           
private  KanjiQuery selectConnector(KanjiExpression ke, ConnectorEnum connector)
           
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEMUX

private static boolean DEMUX

SELECT_MEANING_LANGUAJE

private static boolean SELECT_MEANING_LANGUAJE

LIMIT_TO_JÔYÔ_KANJI

private static boolean LIMIT_TO_JÔYÔ_KANJI

DEMUX_READINGS

private static boolean DEMUX_READINGS

GROUP_PAIRS

private static boolean GROUP_PAIRS

DEMUXES

private static java.lang.Integer DEMUXES

GRAPHDEMUXER

private static SimilarKanjiStrokeDemuxer GRAPHDEMUXER

MEANINGLANG

private static SystemEnums.ISO639ー1 MEANINGLANG

limitToJöyöKanji

private boolean limitToJöyöKanji

demux

private boolean demux

selectMeaningLanguaje

private boolean selectMeaningLanguaje

demuxReadings

private boolean demuxReadings

groupPairs

private boolean groupPairs

demuxes

private java.lang.Integer demuxes

graphDemuxer

private SimilarKanjiStrokeDemuxer graphDemuxer

meaningLang

private SystemEnums.ISO639ー1 meaningLang
Constructor Detail

QueryAdaptor

private QueryAdaptor(SimilarKanjiStrokeDemuxer graphDemuxer,
                     boolean demux,
                     java.lang.Integer demuxes,
                     boolean selectMeaningLanguaje,
                     SystemEnums.ISO639ー1 meaningLang,
                     boolean limitToJöyöKanji,
                     boolean demuxReadings,
                     boolean demuxDicRefs)
Method Detail

demuxGraphs

public static QueryAdaptor demuxGraphs(SimilarKanjiStrokeDemuxer sksd,
                                       java.lang.Integer demuxes)
Sets that in the query to be adapted all occurrences of graphs will be demuxed the in the specified number of new graphs using the specified stroke demuxer

Parameters:
sksd - the stroke demuxer to be used to demux all graph occurrences in the expression
demuxes - count of desired graph demuxes per graph instance in query
Returns:
a query adaptor with option "demuxGraph" set on

meaningsInLanguaje

public static QueryAdaptor meaningsInLanguaje(SystemEnums.ISO639ー1 lang)
Sets that in the query to be adapted all occurrences of meaning consult will be limited to an specified language

Parameters:
lang - the ISO-639-1 language in which all meaning consults will be limited
Returns:
a query adaptor with option "meaningsInLanguaje" set on

limitToJôyô

public static QueryAdaptor limitToJôyô()
Sets that the query to be adapted will only refer to kanjis which grade is lower than 10

Returns:
a query adaptor with option "limitToJôyô" set on

demuxReadings

public static QueryAdaptor demuxReadings()
Sets that in the query to be adapted all reading consults will be demuxed in order to being able to find readings with kanji markers. For example, the reading 「たべる」 will be demuxed as follows:
     「たべる」
     「た.べる」
     「たべ.る」
     「-たべる」
     「たべる-」

Returns:
a query adaptor with option "demuxReadings" set on

groupPairs

public static QueryAdaptor groupPairs()
Group pairs criteria into a unique criteria. This means, for example, that the expression:

[[Dictionary name EQUALS nelson_c] AND [Dictionary reference EQUALS 22]]

will be translated into:

[[Dictionary pair EQUALS [Pair =[first = nelson_c, second = 22]]

Affected pairs are:

     DicNameQAbout
     DicReferenceQAbout

     JISCharsetQAbout
     JISCodeQAbout

     MeaningLanguageQAbout
     MeaningQAbout

     ReadingTypeQAbout
     ReadingQAbout

     VariantTypeQAbout
     VariantReferenceQAbout

Returns:
a query adaptor with option "groupPairs" set on

adapt

public KanjiExpression adapt(KanjiExpression ke)

groupPairs

private KanjiExpression groupPairs(KanjiExpression adaptedKe)

demuxPairs

private <VQ extends ValueQAbout<Pair<E1,E2>>,E1,E2> void demuxPairs(java.util.Set<VQ> vqps,
                                                                    java.util.Set<ValueQAbout<E1>> vq1s,
                                                                    java.util.Set<ValueQAbout<E2>> vq2s,
                                                                    java.util.List<ConnectorEnum> booleanConnector,
                                                                    java.util.List<QAbout> domains,
                                                                    KanjiEnums.KanjiFieldEnum c)

demuxReadings

private KanjiExpression demuxReadings(ReadingQAbout domain)

demuxGraph

private KanjiExpression demuxGraph(KanjiGraphQAbout kgqa)

selectConnector

private KanjiQuery selectConnector(KanjiExpression ke,
                                   ConnectorEnum connector)

addDomain

private KanjiExpression addDomain(KanjiQuery kq,
                                  QAbout domain)

selectCase

private <E> KanjiExpression selectCase(ValueQAbout<E> vqa,
                                       QueryCaseEnum caze,
                                       E value)

finalize

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