Package reportgen.utils

Examples of reportgen.utils.ReportException


        } else if(tag.equals(MathExpressionInlineResult.TAG)) {
            express = new MathExpressionInlineResult(element,
                    cf.getChildContext(MathExpressionInlineResult.GROUP));

        } else {
            throw new ReportException("Найден неизвестный элемент '" + tag + "'");
        }

        return express;
    }
View Full Code Here


            QCore core = cores.get(i);
            core.ensureSafeRemove(obj2remove);
        }
       
        if (results.isContain(obj2remove)) {
            throw new ReportException("Нельзя удалить этот элемент, ссылка на него содержится в "
                    + "результатах отчета");
        }
        if (tableFormats.isContain(obj2remove)) {
            throw new ReportException("Нельзя удалить этот элемент, ссылка на нее содержится в "
                    + "форматировании результатов");
        }
    }
View Full Code Here

    public void ensureSafeRemove(Object obj2remove) throws ReportException {
        super.ensureSafeRemove(obj2remove);

        if (obj2remove instanceof QueryResultColumn == false
                && columns.isContain(obj2remove)) {
            throw new ReportException("Нельзя удалить этот элемент, ссылка на него содержится в "
                    + "результатах выборки");
        }

        if (postConditions.isContain(obj2remove)) {
            throw new ReportException("Нельзя удалить этот элемент, ссылка на него содержится в "
                    + "постусловиях выборки");
        }
    }
View Full Code Here

     * @throws reportgen.ren.exception.ReportException
     */
    final protected Stack<MathExpression> buildStack(List<MathExpression> elem, int beg, int end,
            Stack<MathExpression> stack) throws ReportException {
        if(beg > end) {
            throw new ReportException("Пустое выражение");
        }
        //get min priority operand
        int pos = -1;
        int priority = Integer.MAX_VALUE;
        MathExpressionOperatorRef operator = null;
        for(int j=end; j>=beg; j--) {
            MathExpression element = elem.get(j);
            if(element instanceof MathExpressionOperatorRef) {
                MathExpressionOperatorRef iOperator = (MathExpressionOperatorRef) element;
                int prior = iOperator.getRef().getPriority();
                if(prior < priority) {
                    priority = prior;
                    pos = j;
                    operator = iOperator;
                }
            }
        }

        if(pos == -1) {
            if(end == beg) {
                //it allways be operand
                stack.add(elem.get(0));
                return stack;
            }

            throw new ReportException("Выражение составлено неверно, пропущен оператор");
        }

        if(pos == 0) {
            throw new ReportException("Перед оператором '" + operator + "' должен быть операнд");
        } else if(pos+1 == elem.size()) {
            throw new ReportException("После оператора '" + operator + "' должен быть операнд");
        }

        int leftOperandPos = pos-1;
        int rightOperandPos = pos+1;
        MathExpression leftOperand = elem.get(leftOperandPos);
        MathExpression rightOperand = elem.get(rightOperandPos);

        if(!(leftOperand instanceof MathExpressionOperand)) {
            throw new ReportException("Перед оператором '" + operator + "' должен быть операнд");
        } else if (!(rightOperand instanceof MathExpressionOperand)) {
            throw new ReportException("После оператора '" + operator + "' должен быть операнд");
        }

        stack.add(operator);

        //right part
View Full Code Here

     */
    @Override
    public void appendToQuery(SQLStream sql, Map model) throws ReportException {
        LinkedList<MathExpression> list = buildAvailiableChildren();
        if(list.size() == 0) {
            throw new ReportException("Условие свелось к пустому выражению");
        }

        sql.append("(");
        Iterator<MathExpression> listIt = list.iterator();
        while (listIt.hasNext()) {
View Full Code Here

            MathExpressionOperand operand = (MathExpressionOperand) express;
            return operand.getCls();
        } else if(express instanceof Class) {
            return (Class) express;
        }
        throw new ReportException("Ожидается операнд: " + express);
    }
View Full Code Here

                        break;
                    }
                    //проверим и пропустим невалидный оператор условия
                    MathExpression operator = children.get(i+1);
                    if(!(operator instanceof MathExpressionOperatorRef)) {
                        throw new ReportException("В условии пропущен оператор.");
                    }
                    i++;

                //условие невалидное в списке уже есть оператор
                } else if(i+1<children.size()) {
                    //есть 2 опрератора, нужно выбрать один
                    MathExpression operator1 = list.getLast();
                    MathExpression operator2 = children.get(i+1);
                    list.removeLast();
                    //проверим что операторы
                    if(!(operator1 instanceof MathExpressionOperatorRef)
                            || !(operator2 instanceof MathExpressionOperatorRef)) {
                        throw new ReportException("В условии пропущен оператор.");
                    }
                    int priority1 = ((MathExpressionOperatorRef)operator1).getRef().getPriority();
                    int priority2 = ((MathExpressionOperatorRef)operator2).getRef().getPriority();

                    //вернем в список валидный (менее приоритетный)
                    list.add(priority1 >= priority2 ? operator2 : operator1);
                    i++;

                //условие невалидное, а список не пуст, проверим и удалим последний оператор в списке
                } else {
                    MathExpression operator = list.getLast();
                    if(!(operator instanceof MathExpressionOperatorRef)) {
                        throw new ReportException("В условии пропущен оператор.");
                    }
                    list.removeLast();
                }
            }
        }
View Full Code Here

        for(int i=0; i<it.size(); i++) {
            QueryInputValue qiv = it.get(i);
            if(!qiv.isConstant()) {
                UserInput ui = input.getUserInput(QueryInputValue.TAG + "@" + qiv.getSelectTitle());
                if(ui == null) {
                    throw new ReportException("Отсутствует обязательный входной параметр: '"
                            + qiv.getSelectTitle() + "'");
                }
                qiv.setUserInput(ui);
            }
        }

        //проверка подотчетов
        ItemSelectorEditable<QueryExecuterSub> subreports = report.getSubReports();
        for(int i=0; i<subreports.size(); i++) {
            QueryExecuterSub subreport = subreports.get(i);
            UserInputSelect val = subreport.getResultInputValue();
            if(val == null) {
                //не требует результатов (константный отчет)
                continue;
            }

            UserInput ui = input.getUserInput(subreport.getReportId() + "@" + val.getTitle());
            if(ui == null) {
                throw new ReportException("Отсутствует обязательный входной параметр: '" + val.getTitle() + "'");
            } else if(ui instanceof UserInputSelect) {
                subreport.setResultUserInput((UserInputSelect) ui);
            } else {
                throw new ReportException("Некорректная попытка изменения результата подотчета.");
            }
        }
        userInputIsDone = true;
    }
View Full Code Here

                continue;
            }
            operand = (MathExpressionOperand) MathFactory.fromXml(iElement, getLocalContext(), this);
        }
        if(operand == null) {
            throw new ReportException("В унарном выражении отсутствует операнд");
        }
    }
View Full Code Here

     * @throws ReportException
     */
    @Override
    public void validate() throws ReportException {
        if (size() == 0) {
            throw new ReportException("У запроса отсутствуют результаты");
        }
        super.validate();
    }
View Full Code Here

TOP

Related Classes of reportgen.utils.ReportException

Copyright © 2018 www.massapicom. 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.