All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ansj.app.extracting.domain.ExtractingResult Maven / Gradle / Ivy

The newest version!
package org.ansj.app.extracting.domain;

import org.ansj.app.extracting.ExtractingTask;
import org.ansj.domain.Term;

import java.util.*;

/**
 * Created by Ansj on 21/09/2017.
 */
public class ExtractingResult {

	private List taskResults;


	public synchronized void add(ExtractingTask task) {
		if (taskResults == null) {
			taskResults = new ArrayList<>();
		}
		taskResults.add(task);
	}

	public List> findAll(){
		if (taskResults == null) {
			return Collections.emptyList();
		}

		List> result = new ArrayList<>(taskResults.size());
		RESULT:
		for (ExtractingTask task : taskResults) {
			List tempList = new ArrayList<>();
			for (List list : task.getList()) {
				if (list == null) {
					continue RESULT;
				}
				for (Term term : list) {
					tempList.add(term);
				}
			}
			result.add(tempList);

		}
		return result ;
	}

	public List> getAllResult() {
		if (taskResults == null) {
			return Collections.emptyList();
		}

		List> list = new ArrayList<>(taskResults.size());

		for (ExtractingTask task : taskResults) {
			list.add(getResult(task));
		}

		return list;

	}

	private Map getResult(ExtractingTask task) {

		Rule rule = task.getRule();

		Map result = new HashMap<>(rule.getAttr());
		if(rule.getAttr()!=null && rule.getAttr().size()>0) {
			result.putAll(rule.getAttr());
		}

		List[] list = task.getList();

		Map groups = rule.getGroups();

		for (Map.Entry entry : groups.entrySet()) {
			StringBuilder sb = new StringBuilder();

			for (int i : entry.getValue()) {
				if (list[i] == null) {
					continue;
				}
				for (Object o : list[i]) {
					sb.append(((Term) o).getName());
				}
			}

			result.put(entry.getKey(), sb.toString());
		}


		return result;

	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy