package eu.dnetlib.data.dedup.rmi;

import java.util.Arrays;
import java.util.List;
import java.util.Set;

import com.google.common.base.Function;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;

/**
 * Enum of the available HadoopBlackboardActions.
 */
public enum DedupBlackboardActions {

	/** The duplicate scan Job. */
	DUPLICATE_SCAN,
	/** The close similarity mesh job. */
	CLOSE_MESH;

	public static Set<String> asStringSet() {
		return Sets.newHashSet(asStringList());
	}

	public static List<String> asStringList() {
		return Lists.newArrayList(Iterables.transform(asList(), new Function<DedupBlackboardActions, String>() {

			@Override
			public String apply(final DedupBlackboardActions type) {
				return type.toString();
			}
		}));
	}

	public static List<DedupBlackboardActions> asList() {
		return Arrays.asList(DedupBlackboardActions.values());
	}
}
