private void validateTermOf(Proposition proposition) throws RepositoryException {
    if (proposition.getVerb().equals(VerbEnum.ORDER_BY)) {
      throw new RepositoryException(ErrorEnum.ORDER_NOT_ALLOWED);
    }

    this.validate(proposition);
  }
  /**
   * Verifica se uma determinada proposicao obedece suas respectivas regras de construcao.
   *
   * @param proposition
   * @throws RepositoryException
   */
  public void validate(Proposition proposition) throws RepositoryException {
    VerbEnum verbEnum = proposition.getVerb();
    if (verbEnum.requiresSubject() && proposition.getSubject() == null) {
      throw new RepositoryException(ErrorEnum.NULL_SUBJECT);
    }

    if (verbEnum.requiresPredicative() && hasEmptyPredicative(proposition)) {
      throw new RepositoryException(ErrorEnum.EMPTY_PREDICATIVE);
    }

    if (verbEnum.isConnective()) {
      this.validateInternalPropositions(proposition);
    }
  }