* @param type O tipo da sequencia {@link SequenceType}
* @return Uma instancia de {@link Sequence}
*/
public static final Sequence getInstance(SequenceType type) {
if (type == null) {
throw new ValidationException("O tipo passado e nulo");
}
Class<? extends Sequence> clazz = type.getSequenceClass();
if (clazz == null) {
throw new ValidationException(Convert.toString(
"Tipo de sequencia nao implementado: ", type));
}
Sequence instance = null;
try {
instance = clazz.newInstance();
} catch (InstantiationException e) {
throw new ValidationException("Erro ao instanciar a sequence", e);
} catch (IllegalAccessException e) {
throw new ValidationException("Erro ao acessar a sequence", e);
}
return instance;
}