throws ExcepcaoPersistencia, FenixServiceException {
throws ExcepcaoPersistencia, FenixServiceException, DomainException {
    public void run(Integer functionID, Integer unitID, String functionName, Date beginDate,            Date endDate, FunctionType type, Integer parentInherentFunctionID)            throws ExcepcaoPersistencia, FenixServiceException {        ISuportePersistente suportePersistente = PersistenceSupportFactory                .getDefaultPersistenceSupport();        IFunction function = null;        if (functionID == null) {            function = DomainFactory.makeFunction();        } else {            function = (IFunction) suportePersistente.getIPersistentObject().readByOID(Function.class,                    functionID);            if (function == null) {                throw new FenixServiceException("error.noFunction");            }        }                IUnit unit = null;        if (unitID != null) {            unit = (IUnit) suportePersistente.getIPersistentObject().readByOID(Unit.class, unitID);                    }        IFunction parentInherentFunction = null;        if (parentInherentFunctionID != null) {            parentInherentFunction = (IFunction) suportePersistente.getIPersistentObject()                    .readByOID(Function.class, parentInherentFunctionID);                    }                function.edit(functionName, beginDate, endDate, type, unit, parentInherentFunction);    }