package net.deterlab.abac;
import java.io.*;
import java.util.*;
import java.lang.reflect.*;
/**
* This class parses one or more Credentials. Each class that wants to be
* parsed needs to export a static method that returns one of these. For
* credentials that parse 1 credential to 1 input it will be a wrapper around a
* constructor.
* @author ISI ABAC team
* @version 1.3
*/
public abstract class CredentialParser {
/**
* Parse one or more Credentials from the given input and IDs. The
* sub-type of Credential returned is up to this class.
* @param is an InputStream to be parsed
* @param ids a Collection of Identity s to use in validating credentials.
* @return an array of Credentials
* @throws ABACException on parsing problems
*/
public abstract Credential[] parseCredential(InputStream is,
Collection ids) throws ABACException;
}