Search in sources :

Example 31 with Problem

use of org.talend.core.model.process.Problem in project tdi-studio-se by Talend.

the class ProblemsManager method checkProblemsForTableEntry.

public boolean checkProblemsForTableEntry(ITableEntry tableEntry, boolean forceRefreshData, boolean checkLookupProblem) {
    if (!mapperManager.isCheckSyntaxEnabled()) {
        return false;
    }
    if (forceRefreshData) {
        mapperManager.getAbstractMapComponent().restoreMapperModelFromInternalData();
        checkProblems();
    }
    String expression = tableEntry.getExpression();
    List<Problem> problems = null;
    if (expression == null || EMPTY_STRING.equals(expression.trim())) {
        problems = null;
    } else {
        // System.out.println("check=" + expression);
        if (codeLanguage == ECodeLanguage.PERL) {
            problems = codeChecker.checkProblemsForExpression(expression);
        } else if (codeLanguage == ECodeLanguage.JAVA) {
            PROBLEM_KEY_FIELD problemKeyField = JavaGenerationManager.PROBLEM_KEY_FIELD.METADATA_COLUMN;
            String entryName = tableEntry.getName();
            if (tableEntry instanceof FilterTableEntry || tableEntry instanceof ExpressionFilterEntry) {
                problemKeyField = JavaGenerationManager.PROBLEM_KEY_FIELD.FILTER;
                entryName = null;
            }
            problems = checkJavaProblemsForEntry(problemKeyField, tableEntry.getParent().getName(), entryName, forceRefreshData);
        }
        if (problems != null) {
            for (Iterator iter = problems.iterator(); iter.hasNext(); ) {
                Problem problem = (Problem) iter.next();
                ProblemStatus status = problem.getStatus();
                if (status != ProblemStatus.ERROR) {
                    iter.remove();
                }
            }
        } else {
            problems = null;
        }
    }
    if (problems != null) {
        if (problems.size() == 0) {
            tableEntry.setProblems(null);
        } else {
            hasProblems = true;
            tableEntry.setProblems(problems);
        }
    } else {
        tableEntry.setProblems(problems);
    }
    // check problem for M/R process , only needed if modify lookup expressions
    if (checkLookupProblem) {
        checkLookupExpressionProblem();
    }
    // no need to update again
    TableViewerCreator tableViewerCreator = mapperManager.retrieveTableViewerCreator(tableEntry);
    DataMapTableView retrieveDataMapTableView = mapperManager.retrieveDataMapTableView(tableEntry);
    mapperManager.getUiManager().applyActivatedCellEditors(tableViewerCreator);
    return problems != null;
}
Also used : ProblemStatus(org.talend.core.model.process.Problem.ProblemStatus) TableViewerCreator(org.talend.commons.ui.swt.tableviewer.TableViewerCreator) FilterTableEntry(org.talend.designer.mapper.model.tableentry.FilterTableEntry) Iterator(java.util.Iterator) Problem(org.talend.core.model.process.Problem) DataMapTableView(org.talend.designer.mapper.ui.visualmap.table.DataMapTableView) ExpressionFilterEntry(org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry) PROBLEM_KEY_FIELD(org.talend.designer.mapper.language.generation.JavaGenerationManager.PROBLEM_KEY_FIELD)

Example 32 with Problem

use of org.talend.core.model.process.Problem in project tdi-studio-se by Talend.

the class ProblemList method getMarkerCounts.

public int[] getMarkerCounts() {
    int errors = 0;
    int warnings = 0;
    int infos = 0;
    for (Problem problem : problemList) {
        if (problem.getStatus().equals(ProblemStatus.ERROR)) {
            errors++;
        } else if (problem.getStatus().equals(ProblemStatus.WARNING)) {
            warnings++;
        } else if (problem.getStatus().equals(ProblemStatus.INFO)) {
            infos++;
        }
    }
    return new int[] { errors, warnings, infos };
}
Also used : Problem(org.talend.core.model.process.Problem) TalendProblem(org.talend.core.model.process.TalendProblem)

Example 33 with Problem

use of org.talend.core.model.process.Problem in project tdi-studio-se by Talend.

the class Problems method removeProblemsByProcess.

/**
     * 
     * DOC hcyi Comment method "removeProblemsByProcess".
     * 
     * @param process
     * @param isDeleted
     */
public static void removeProblemsByProcess(IProcess process, boolean isDeleted) {
    for (Iterator<Problem> iter = problemList.getProblemList().iterator(); iter.hasNext(); ) {
        Problem problem = iter.next();
        if (problem == null) {
            continue;
        }
        if (problem.getJobInfo() != null && (problem.getJobInfo().getJobId().equals(process.getId()) && problem.getJobInfo().getJobVersion().equals(process.getVersion()))) {
            iter.remove();
        }
        // if not open editor then run job , will not fill the JobInfo .
        if (problem.getJobInfo() == null && problem instanceof TalendProblem) {
            TalendProblem talendProblem = (TalendProblem) problem;
            String jobName = talendProblem.getJavaUnitName();
            if (jobName != null && jobName.equals(process.getName()) && talendProblem.getVersion().equals(process.getVersion())) {
                iter.remove();
            }
        }
    }
    refreshProblemTreeView();
}
Also used : TalendProblem(org.talend.core.model.process.TalendProblem) Problem(org.talend.core.model.process.Problem) IProblem(org.eclipse.jdt.core.compiler.IProblem) TalendProblem(org.talend.core.model.process.TalendProblem)

Example 34 with Problem

use of org.talend.core.model.process.Problem in project tdi-studio-se by Talend.

the class ErrorDetailTreeBuilder method createTreeInput.

/**
     * DOC chuang Comment method "createTreeInput".
     * 
     * @param errors
     * @param jobNames
     * @return
     */
public List<JobErrorEntry> createTreeInput(List<Problem> errors, Set<String> jobIds) {
    for (Problem error : errors) {
        if (error instanceof TalendProblem) {
            TalendProblem talendProblem = (TalendProblem) error;
            if (talendProblem != null && talendProblem.getJobInfo() != null) {
                if (talendProblem.getType() == ProblemType.ROUTINE) {
                    JobErrorEntry routineEntry = getJobEntry(ROUTINE_ERROR);
                    routineEntry.addItem(talendProblem.getJavaUnitName(), talendProblem);
                } else {
                    String jobId = talendProblem.getJobInfo().getJobId();
                    if (!jobIds.contains(jobId)) {
                        continue;
                    }
                    String componentName = GENERAL_ERROR;
                    JobErrorEntry jobEntry = getJobEntry(talendProblem.getJavaUnitName());
                    jobEntry.addItem(componentName, talendProblem);
                }
            }
        } else {
            if (error != null && error.getJobInfo() != null) {
                String jobId = error.getJobInfo().getJobId();
                if (!jobIds.contains(jobId)) {
                    continue;
                }
                String componentName = error.getNodeName();
                JobErrorEntry jobEntry = getJobEntry(error.getJobInfo().getJobName());
                jobEntry.addItem(componentName, error);
            }
        }
    }
    return new ArrayList<JobErrorEntry>(jobs.values());
}
Also used : TalendProblem(org.talend.core.model.process.TalendProblem) ArrayList(java.util.ArrayList) TalendProblem(org.talend.core.model.process.TalendProblem) Problem(org.talend.core.model.process.Problem)

Aggregations

Problem (org.talend.core.model.process.Problem)34 TalendProblem (org.talend.core.model.process.TalendProblem)15 ArrayList (java.util.ArrayList)10 IProblem (org.eclipse.jdt.core.compiler.IProblem)9 PersistenceException (org.talend.commons.exception.PersistenceException)4 IProcess (org.talend.core.model.process.IProcess)4 IFile (org.eclipse.core.resources.IFile)3 CoreException (org.eclipse.core.runtime.CoreException)3 SystemException (org.talend.commons.exception.SystemException)3 Item (org.talend.core.model.properties.Item)3 ITalendSynchronizer (org.talend.designer.codegen.ITalendSynchronizer)3 HashSet (java.util.HashSet)2 List (java.util.List)2 IMarker (org.eclipse.core.resources.IMarker)2 ISelectionChangedListener (org.eclipse.jface.viewers.ISelectionChangedListener)2 SelectionChangedEvent (org.eclipse.jface.viewers.SelectionChangedEvent)2 ProblemStatus (org.talend.core.model.process.Problem.ProblemStatus)2 Property (org.talend.core.model.properties.Property)2 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)2 IColumnEntry (org.talend.designer.abstractmap.model.tableentry.IColumnEntry)2