package org.ovirt.engine.core.bll.profiles; import org.ovirt.engine.core.bll.CommandBase; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.common.action.ProfileParametersBase; import org.ovirt.engine.core.common.businessentities.profiles.ProfileBase; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.profiles.ProfilesDao; public abstract class ProfileCommandBase<T extends ProfileParametersBase<P>, P extends ProfileBase> extends CommandBase<T> { private P profile; private Guid profileId; public ProfileCommandBase(T parameters, CommandContext cmdContext) { super(parameters, cmdContext); } public P getProfile() { if (profile == null) { if (getParameters().getProfile() != null) { profile = getParameters().getProfile(); } else if (getParameters().getProfileId() != null) { profile = getProfileDao().get(getParameters().getProfileId()); } } return profile; } public Guid getProfileId() { if (profileId == null) { if (getParameters().getProfileId() != null) { profileId = getParameters().getProfileId(); } else if (getParameters().getProfile() != null) { profileId = getParameters().getProfile().getId(); } } return profileId; } protected abstract ProfilesDao<P> getProfileDao(); /** * used for auditLog's ${ProfileName} placeholder */ public String getProfileName() { return getProfile().getName(); } }