Package framework.beans.directory.writer

Source Code of framework.beans.directory.writer.DirectoryIntelWriterBean

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package framework.beans.directory.writer;

import framework.beans.FindEntity.Field;
import framework.beans.directory.DirectoryBean;
import framework.generic.ClipsServerException;
import framework.security.UserRight;
import framework.security.UserRightsSetAbstract;
import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicInteger;
import javax.ejb.Stateless;

/**
*
* @author petr
*/
@Stateless(mappedName="clips-beans/DirectoryIntelWriterBean")
public class DirectoryIntelWriterBean extends DirectoryBean<IntelWriter, IntelWriterDetails> implements DirectoryIntelWriterBeanRemote {
  private static final int              PURGE_COUNT_PERIOD = 4;
  private static final int              LEARN_TIME = 1;//days
  private static final int              LEARN_COUNT = 4;

  private static final AtomicInteger          purgeCounter = new AtomicInteger(0);

    public DirectoryIntelWriterBean() {
        super(IntelWriter.class, "IntelWriter");
    }

    @Override
    protected UserRight getRightForCreateDirectoryItem() {
        return UserRightsSetAbstract.CREATE_DIRECTORY_INTEL_WRITER;
    }

    @Override
    protected UserRight getRightForWriteToDirectory() {
        return UserRightsSetAbstract.CREATE_DIRECTORY_INTEL_WRITER;
    }

    @Override
    protected void set(IntelWriter entity, IntelWriterDetails details) throws ClipsServerException {
        IntelWriter writer = entity;
        IntelWriterDetails d = details;
        writer.setTitle(d.title);
        //writer.setDirty(details.dirty);
        writer.setType(d.type);
        writer.setUsed(d.used);
    }
   
    /**
     * Функция выделяет из текста отдельные предложения и отправляет
     * в sentenceReceiver
     * Пердложением считается непустой набор символов который начинается с
     * русской или латинской заглавной буквы и заканчивается точкой.
     * Знаки по какой либо причине оказавшиеся между концом одного
     * предложения иначалом другого отбрасываются
     * @param type тип
     * @param text расбираемый текст
     */
    void addNewText(int type, String text) {
        String sentence = ""; //тут собираем предложение
        boolean isSentence = false; //указывает, что каретка внутри предложения
        char[] t = text.toCharArray();//загоним текст в чаровский массив, чтоб удобнее было
        for (int i = 0; i < t.length; i++) {//шуршим по всем элементам массива
            if ('A' <= t[i] && t[i] <= 'Z' || 'А' <= t[i] && t[i] <= 'Я') {//Начинается с заглавной
                isSentence = true;
            }
            if (t[i] == '.' && !sentence.isEmpty()){//предложение кончилось
                sentence += t[i];//последний символ
                isSentence = false;//каретка не на предложении
                sentenceReceiver(type, sentence);//отправим копию предложение приёмнику
                sentence = "";//само предложение сбросим
            }
            if (isSentence){//если каретка в предложении
                sentence += t[i];//добавим символ
            }
        }
    }
  
   
    void sentenceReceiver(int type, String sentence){
    }
   
    @Override
  @SuppressWarnings("deprecation")
    public void clearDirectory() throws ClipsServerException{
        Field[] f = {
            new Field("title", "", Field.OPERATOR_NOT_NULL)
        };
        deleteEntityList(IntelWriter.class, f);
    }

  @Override
  public void learnTextEvent(int type, ArrayList<String> tokens) {
    //fin
    for (String curToken : tokens) {
      // TODO
    }
    int counter = purgeCounter.getAndIncrement();
    if ((counter % PURGE_COUNT_PERIOD) == 0){
      purgeCounter.addAndGet(-PURGE_COUNT_PERIOD);
      purge();
    }
  }

  public void learnLine(){

  }

  private void purge(){
  }
}
TOP

Related Classes of framework.beans.directory.writer.DirectoryIntelWriterBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.