T-K-O-T
java sozluk kod kernel limitprocess java
001: /**002: * LimitProcess.java
003: */
004: package Kernel;
005: /**
006: * Görsel kısımda bulunan sol menüde, hangi kelimelerin gösterileceği
007: * bu sınıfa ait fonksiyonlar aracılığı ile saptanır.
008: * @author Ömer Faruk Nemutlu - http://www.tkot.tr.gg/
009: */
010: public class LimitProcess implements Constants {
011:
012: private int my_word_id;
013: private byte my_language_id;
014: private int my_lower_limit;
015: private int my_upper_limit;
016:
017: /**
018: * Kelime ID'sine göre, hangi kelimelerin sol menüde gösterileceği
019: * configure fonksiyonuyla belirlenir.
020: */
021: public void configure( int word_id, byte language_id ) {
022: my_word_id = word_id;
023: my_language_id = language_id;
024: my_lower_limit = find_lower_limit( my_word_id, my_language_id );
025: my_upper_limit = find_upper_limit( my_word_id, my_language_id );
026: check_interval( );
027: }
028:
029: /**
030: * Verilen aralıkların doğru olup olmadığını kontrol eder. Şayet
031: * yanlışsa düzeltir.
032: */
033: private void check_interval( )
034: {
035: if( my_upper_limit - my_lower_limit !=
036: LOWER_LIMIT_COUNT + UPPER_LIMIT_COUNT ) {
037: if( my_upper_limit == MAX_WORD_ID_FOR_EN ||
038: my_upper_limit == MAX_WORD_ID_FOR_TR )
039: my_lower_limit -= LOWER_LIMIT_COUNT;
040: else
041: my_upper_limit += UPPER_LIMIT_COUNT;
042: }
043: }
044:
045: /*
046: * Alfabetik olarak gösterilecek en son kelimeyi belirtir.
047: */
048: public int get_lower_limit( )
049: {
050: return my_lower_limit;
051: }
052:
053: /*
054: * Alfabetik olarak gösterilecek ilk kelimeyi belirtir.
055: */
056: public int get_upper_limit( )
057: {
058: return my_upper_limit;
059: }
060:
061: /*
062: * Seçilen kelimenin alt limitini bulmaya yarar.
063: */
064: private int find_lower_limit( int word_id, byte language_id ) {
065: // Eğer kelime Türkçe'yse
066: if( language_id == 1 ) {
067: if( word_id < LOWER_LIMIT_COUNT )
068: return MIN_WORD_ID_FOR_TR;
069: else
070: return word_id - LOWER_LIMIT_COUNT;
071: }
072: // Eğer dil İngilizce'yse
073: else {
074: if( word_id < MIN_WORD_ID_FOR_EN + LOWER_LIMIT_COUNT )
075: return MIN_WORD_ID_FOR_EN;
076: else
077: return word_id - LOWER_LIMIT_COUNT;
078: }
079: }
080:
081: /*
082: * Seçilen kelimeye gmre üst sınır belirlemesi yapar.
083: */
084: private int find_upper_limit( int word_id, byte language_id ) {
085: // Eğer kelime Türkçe'yse
086: if( language_id == 1 ) {
087: if( word_id > MAX_WORD_ID_FOR_TR - UPPER_LIMIT_COUNT )
088: return MAX_WORD_ID_FOR_TR;
089: else
090: return word_id + UPPER_LIMIT_COUNT;
091: }
092: //Eğer dil İngilizce'yse
093: else {
094: if( word_id > MAX_WORD_ID_FOR_EN - UPPER_LIMIT_COUNT )
095: return MAX_WORD_ID_FOR_EN;
096: else
097: return word_id + UPPER_LIMIT_COUNT;
098: }
099: }
100: }