MtasCQLParserSentencePartCondition.java.html 9.89 KB
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MtasCQLParserSentencePartCondition.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">MTAS</a> &gt; <a href="index.source.html" class="el_package">mtas.parser.cql.util</a> &gt; <span class="el_source">MtasCQLParserSentencePartCondition.java</span></div><h1>MtasCQLParserSentencePartCondition.java</h1><pre class="source lang-java linenums">package mtas.parser.cql.util;

import mtas.parser.cql.ParseException;
import mtas.search.spans.util.MtasSpanQuery;

/**
 * The Class MtasCQLParserSentencePartCondition.
 */
public class MtasCQLParserSentencePartCondition {

  /** The first sentence. */
<span class="fc" id="L12">  private MtasCQLParserSentenceCondition firstSentence = null;</span>

  /** The first basic sentence. */
<span class="fc" id="L15">  private MtasCQLParserBasicSentenceCondition firstBasicSentence = null;</span>

  /** The first minimum occurence. */
  private int firstMinimumOccurence;
  
  /** The first maximum occurence. */
  private int firstMaximumOccurence;

  /** The first optional. */
  private boolean firstOptional;

  /** The second sentence part. */
<span class="fc" id="L27">  MtasCQLParserSentencePartCondition secondSentencePart = null;</span>

  /** The or operator. */
<span class="fc" id="L30">  private boolean orOperator = false;</span>

  /** The full condition. */
<span class="fc" id="L33">  private MtasCQLParserSentenceCondition fullCondition = null;</span>

  /** The ignore clause. */
  private MtasSpanQuery ignoreClause;
  
  /** The maximum ignore length. */
  private Integer maximumIgnoreLength;
  
  /**
   * Instantiates a new mtas CQL parser sentence part condition.
   *
   * @param bs the bs
   * @param ignore the ignore
   * @param maximumIgnoreLength the maximum ignore length
   */
  public MtasCQLParserSentencePartCondition(
<span class="fc" id="L49">      MtasCQLParserBasicSentenceCondition bs, MtasSpanQuery ignore, Integer maximumIgnoreLength) {</span>
<span class="fc" id="L50">    firstMinimumOccurence = 1;</span>
<span class="fc" id="L51">    firstMaximumOccurence = 1;</span>
<span class="fc" id="L52">    firstOptional = false;</span>
<span class="fc" id="L53">    firstBasicSentence = bs;</span>
<span class="fc" id="L54">    this.ignoreClause = ignore;</span>
<span class="fc" id="L55">    this.maximumIgnoreLength = maximumIgnoreLength;</span>
<span class="fc" id="L56">  }</span>

  /**
   * Instantiates a new mtas CQL parser sentence part condition.
   *
   * @param s the s
   * @param ignore the ignore
   * @param maximumIgnoreLength the maximum ignore length
   */
<span class="fc" id="L65">  public MtasCQLParserSentencePartCondition(MtasCQLParserSentenceCondition s, MtasSpanQuery ignore, Integer maximumIgnoreLength) {</span>
<span class="fc" id="L66">    firstMinimumOccurence = 1;</span>
<span class="fc" id="L67">    firstMaximumOccurence = 1;</span>
<span class="fc" id="L68">    firstOptional = false;</span>
<span class="fc" id="L69">    firstSentence = s;</span>
<span class="fc" id="L70">    this.ignoreClause = ignore;</span>
<span class="fc" id="L71">    this.maximumIgnoreLength = maximumIgnoreLength;</span>
<span class="fc" id="L72">  }</span>

  

  /**
   * Sets the first occurence.
   *
   * @param min the min
   * @param max the max
   * @throws ParseException the parse exception
   */
  public void setFirstOccurence(int min, int max) throws ParseException {
<span class="pc bpc" id="L84" title="1 of 2 branches missed.">    if (fullCondition == null) {</span>
<span class="pc bpc" id="L85" title="3 of 6 branches missed.">      if ((min &lt; 0) || (min &gt; max) || (max &lt; 1)) {</span>
<span class="nc" id="L86">        throw new ParseException(&quot;Illegal number {&quot; + min + &quot;,&quot; + max + &quot;}&quot;);</span>
      }
<span class="fc bfc" id="L88" title="All 2 branches covered.">      if (min == 0) {</span>
<span class="fc" id="L89">        firstOptional = true;</span>
      }
<span class="fc" id="L91">      firstMinimumOccurence = Math.max(1, min);</span>
<span class="fc" id="L92">      firstMaximumOccurence = max;</span>
    } else {
<span class="nc" id="L94">      throw new ParseException(&quot;fullCondition already generated&quot;);</span>
    }
<span class="fc" id="L96">  }</span>

  /**
   * Sets the first optional.
   *
   * @param status the new first optional
   * @throws ParseException the parse exception
   */
  public void setFirstOptional(boolean status) throws ParseException {
<span class="nc bnc" id="L105" title="All 2 branches missed.">    if (fullCondition == null) {</span>
<span class="nc" id="L106">      firstOptional = status;      </span>
    } else {
<span class="nc" id="L108">      throw new ParseException(&quot;fullCondition already generated&quot;);</span>
    }
<span class="nc" id="L110">  }</span>

  /**
   * Sets the or.
   *
   * @param status the new or
   * @throws ParseException the parse exception
   */
  public void setOr(boolean status) throws ParseException {
<span class="pc bpc" id="L119" title="1 of 2 branches missed.">    if (fullCondition == null) {</span>
<span class="fc" id="L120">      orOperator = status;</span>
    } else {
<span class="nc" id="L122">      throw new ParseException(&quot;fullCondition already generated&quot;);</span>
    }
<span class="fc" id="L124">  }</span>

  /**
   * Sets the second part.
   *
   * @param sp the new second part
   * @throws ParseException the parse exception
   */
  public void setSecondPart(MtasCQLParserSentencePartCondition sp)
      throws ParseException {
<span class="pc bpc" id="L134" title="1 of 2 branches missed.">    if (fullCondition == null) {</span>
<span class="fc" id="L135">      secondSentencePart = sp;</span>
    } else {
<span class="nc" id="L137">      throw new ParseException(&quot;fullCondition already generated&quot;);</span>
    }
<span class="fc" id="L139">  }</span>

  /**
   * Creates the full sentence.
   *
   * @return the mtas CQL parser sentence condition
   * @throws ParseException the parse exception
   */
  public MtasCQLParserSentenceCondition createFullSentence()
      throws ParseException {
<span class="pc bpc" id="L149" title="1 of 2 branches missed.">    if (fullCondition == null) {</span>
<span class="fc bfc" id="L150" title="All 2 branches covered.">      if (secondSentencePart == null) {</span>
<span class="fc bfc" id="L151" title="All 2 branches covered.">        if (firstBasicSentence != null) {</span>
<span class="fc" id="L152">          fullCondition = new MtasCQLParserSentenceCondition(</span>
              firstBasicSentence, ignoreClause, maximumIgnoreLength);
          
        } else {
<span class="fc" id="L156">          fullCondition = firstSentence;          </span>
        }
<span class="fc" id="L158">        fullCondition.setOccurence(firstMinimumOccurence,</span>
            firstMaximumOccurence);
<span class="fc bfc" id="L160" title="All 2 branches covered.">        if(firstOptional) {</span>
<span class="fc" id="L161">          fullCondition.setOptional(firstOptional);</span>
        }
<span class="fc" id="L163">        return fullCondition;</span>
      } else {
<span class="fc bfc" id="L165" title="All 2 branches covered.">        if (!orOperator) {</span>
<span class="fc bfc" id="L166" title="All 2 branches covered.">          if (firstBasicSentence != null) {</span>
<span class="fc" id="L167">            firstBasicSentence.setOccurence(firstMinimumOccurence,</span>
                firstMaximumOccurence);
<span class="fc" id="L169">            firstBasicSentence.setOptional(firstOptional);</span>
<span class="fc" id="L170">            fullCondition = new MtasCQLParserSentenceCondition(</span>
                firstBasicSentence, ignoreClause, maximumIgnoreLength);
          } else {
<span class="fc" id="L173">            firstSentence.setOccurence(firstMinimumOccurence,</span>
                firstMaximumOccurence);
<span class="fc" id="L175">            firstSentence.setOptional(firstOptional);</span>
<span class="fc" id="L176">            fullCondition = new MtasCQLParserSentenceCondition(firstSentence, ignoreClause, maximumIgnoreLength);</span>
          }
<span class="fc" id="L178">          fullCondition.addSentenceToEndLatestSequence(</span>
<span class="fc" id="L179">              secondSentencePart.createFullSentence());          </span>
        } else {
<span class="fc" id="L181">          MtasCQLParserSentenceCondition sentence = secondSentencePart</span>
<span class="fc" id="L182">              .createFullSentence();</span>
<span class="fc bfc" id="L183" title="All 2 branches covered.">          if (firstBasicSentence != null) {</span>
<span class="fc" id="L184">            sentence.addSentenceAsFirstOption(</span>
                new MtasCQLParserSentenceCondition(firstBasicSentence, ignoreClause, maximumIgnoreLength));
          } else {
<span class="fc" id="L187">            sentence.addSentenceAsFirstOption(firstSentence);</span>
          }
<span class="fc" id="L189">          fullCondition = sentence;</span>
        }        
<span class="fc" id="L191">        return fullCondition;</span>
      }
    } else {
<span class="nc" id="L194">      return fullCondition;</span>
    }
  }

}
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.7.9.201702052155</span></div></body></html>