package fr.openwide.maven.artifact.notifier.web.application.artifact.model; import java.util.Date; import org.apache.wicket.injection.Injector; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.Artifact; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactStatus; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactVersion; public class ArtifactLastVersionModel extends LoadableDetachableModel<ArtifactVersion> { private static final long serialVersionUID = 4766320771806264081L; private IModel<Artifact> artifactModel; public ArtifactLastVersionModel(IModel<Artifact> artifactModel) { super(); this.artifactModel = artifactModel; Injector.get().inject(this); } @Override protected ArtifactVersion load() { if (isLastVersionAvailable()) { return artifactModel.getObject().getLatestVersion(); } return null; } public boolean isLastVersionAvailable() { return artifactModel.getObject() != null && artifactModel.getObject().getStatus() != ArtifactStatus.NOT_INITIALIZED; } public String getLastVersion() { if (getObject() != null) { return getObject().getVersion(); } return null; } public Date getLastVersionUpdateDate() { if (getObject() != null) { return getObject().getLastUpdateDate(); } return null; } @Override protected void onDetach() { super.onDetach(); if (artifactModel != null) { artifactModel.detach(); } } }