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

net.sf.aguacate.model.EntityInfo Maven / Gradle / Ivy

package net.sf.aguacate.model;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;

import net.sf.aguacate.context.ContextProcessor;
import net.sf.aguacate.context.ContextValidator;
import net.sf.aguacate.util.formatter.OutputFormater;
import net.sf.aguacate.validator.ValidatorConverter;
import net.sf.aguacate.validator.impl.InputValidatorImpl;

public class EntityInfo {

	private final Map validatorConverters;

	private final Map> outputFields;

	private final ContextValidator contextValidator;

	private final ContextProcessor contextProcessor;

	private final OutputFormater outputFormater;

	private final String[] methods;

	public EntityInfo(ValidatorConverter validatorConverter, String primary,
			Map> inputFields, Map> outputFields,
			ContextValidator contextValidator, ContextProcessor contextProcessor, OutputFormater outputFormater) {
		Map temp = new HashMap<>();
		for (Map.Entry> entry : inputFields.entrySet()) {
			Map fields = entry.getValue();
			temp.put(entry.getKey(), new InputValidatorImpl(validatorConverter, fields.remove(primary), fields));
		}
		this.validatorConverters = temp;
		this.outputFields = outputFields;
		this.contextValidator = contextValidator;
		this.contextProcessor = contextProcessor;
		this.outputFormater = outputFormater;

		Set methods1 = validatorConverters.keySet();
		Set methods2 = outputFields.keySet();
		if (methods1 == null) {
			if (methods2 == null) {
				methods = new String[0];
			} else {
				methods = methods2.toArray(new String[methods2.size()]);
			}
		} else {
			if (methods2 == null) {
				methods = methods1.toArray(new String[methods1.size()]);
			} else {
				Set set = new TreeSet<>(methods1);
				set.addAll(methods2);
				methods = set.toArray(new String[set.size()]);
			}
		}
		Arrays.sort(methods);
	}

	public InputValidatorImpl getValidatorConverter(String method) {
		return validatorConverters.get(method);
	}

	public boolean accepts(String method) {
		return Arrays.binarySearch(methods, method) >= 0;
	}

	public Map> getOutputFields() {
		return outputFields;
	}

	public ContextValidator getContextValidator() {
		return contextValidator;
	}

	public ContextProcessor getContextProcessor() {
		return contextProcessor;
	}

	public OutputFormater getOutputFormater() {
		return outputFormater;
	}

	public String[] methods() {
		return methods;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy