Skip to content
Snippets Groups Projects
Commit 0852eeb6 authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

Added fecting of forecastconfiguration ++

parent 8f8552e2
No related branches found
No related tags found
No related merge requests found
......@@ -36,6 +36,7 @@ public class VIPSLogicApplication extends Application
* given list with all resources defined in the project.
*/
private void addRestResourceClasses(Set<Class<?>> resources) {
resources.add(no.bioforsk.vips.core.service.ModelResource.class);
resources.add(no.bioforsk.vips.coremanager.service.ManagerResource.class);
resources.add(no.bioforsk.vips.logic.service.LogicService.class);
......
......@@ -15,13 +15,13 @@ import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OrderBy;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.xml.bind.annotation.XmlRootElement;
import no.bioforsk.vips.entity.Result;
import no.bioforsk.vips.logic.scheduling.model.ForecastConfiguration;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.ObjectMapper;
......@@ -37,6 +37,7 @@ import org.codehaus.jackson.type.TypeReference;
@NamedQueries({
@NamedQuery(name = "ForecastResult.findAll", query = "SELECT f FROM ForecastResult f ORDER BY f.resultValidTime ASC"),
@NamedQuery(name = "ForecastResult.findByForecastResultId", query = "SELECT f FROM ForecastResult f WHERE f.forecastResultId = :forecastResultId ORDER BY f.resultValidTime ASC"),
@NamedQuery(name = "ForecastResult.findByForecastConfigurationId", query = "SELECT f FROM ForecastResult f WHERE f.forecastConfigurationId = :forecastConfigurationId ORDER BY f.resultValidTime ASC"),
@NamedQuery(name = "ForecastResult.findByResultValidTime", query = "SELECT f FROM ForecastResult f WHERE f.resultValidTime = :resultValidTime ORDER BY f.resultValidTime ASC"),
@NamedQuery(name = "ForecastResult.findByWarningStatus", query = "SELECT f FROM ForecastResult f WHERE f.warningStatus = :warningStatus ORDER BY f.resultValidTime ASC")})
public class ForecastResult implements Serializable, Comparable {
......@@ -53,6 +54,8 @@ public class ForecastResult implements Serializable, Comparable {
private Integer warningStatus;
@Column(name = "all_values")
private String allValues;
@Column(name = "forecast_configuration_id")
private ForecastConfiguration forecastConfigurationId;
public ForecastResult() {
}
......@@ -170,4 +173,18 @@ public class ForecastResult implements Serializable, Comparable {
{
return this.getResultValidTime().compareTo(other.getResultValidTime());
}
/**
* @return the forecastConfigurationId
*/
public ForecastConfiguration getForecastConfigurationId() {
return forecastConfigurationId;
}
/**
* @param forecastConfigurationId the forecastConfigurationId to set
*/
public void setForecastConfigurationId(ForecastConfiguration forecastConfigurationId) {
this.forecastConfigurationId = forecastConfigurationId;
}
}
......@@ -46,7 +46,7 @@ public class ForecastConfiguration implements Serializable {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "forecast_configuration_id")
private Integer forecastConfigurationId;
private Long forecastConfigurationId;
@Size(max = 10)
@Column(name = "model_id")
private String modelId;
......@@ -65,15 +65,15 @@ public class ForecastConfiguration implements Serializable {
public ForecastConfiguration() {
}
public ForecastConfiguration(Integer forecastConfigurationId) {
public ForecastConfiguration(Long forecastConfigurationId) {
this.forecastConfigurationId = forecastConfigurationId;
}
public Integer getForecastConfigurationId() {
public Long getForecastConfigurationId() {
return forecastConfigurationId;
}
public void setForecastConfigurationId(Integer forecastConfigurationId) {
public void setForecastConfigurationId(Long forecastConfigurationId) {
this.forecastConfigurationId = forecastConfigurationId;
}
......
......@@ -50,6 +50,25 @@ public class LogicService {
return Response.ok().entity(results).build();
}
/**
* Returns the requested forecast configuration
* @param forecastConfigurationId
* @return
*/
@GET
@Path("forecastconfigurations/{forecastConfigurationId}")
@Produces("application/json;charset=UTF-8")
public Response getForecastConfiguration(@PathParam("forecastConfigurationId") Long forecastConfigurationId)
{
ForecastConfiguration forecastConfiguration = SessionControllerGetter.getForecastBean().getForecastConfiguration(forecastConfigurationId);
return Response.ok().entity(forecastConfiguration).build();
}
/**
* Returns a list of forecasts for given organization
* @param organizationId
* @return
*/
@GET
@Path("organizationforecastconfigurations/{organizationId}")
@Produces("application/json;charset=UTF-8")
......@@ -73,6 +92,16 @@ public class LogicService {
return Response.ok().entity(forecasts).build();
}
@GET
@Path("blah")
@Produces("text/plain;charset=UTF-8")
public Response test()
{
return Response.ok().entity("Blah").build();
}
private ManagerResource getManagerResource()
{
Client client = ClientBuilder.newClient();
......
......@@ -18,22 +18,46 @@ public class ForecastBean {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
/**
* Returns all forecast results. TODO: put out of use!
* @return
*/
public List<ForecastResult> getForecastResults()
{
return em.createNamedQuery("ForecastResult.findAll").getResultList();
}
public List<ForecastResult> getForecastResults(Long forecastResultId)
public List<ForecastResult> getForecastResults(Long forecastConfigurationId)
{
Query q = em.createNamedQuery("ForecastResult.findByForecastResultId", ForecastResult.class);
q.setParameter("forecastResultId", forecastResultId);
ForecastConfiguration config = this.getForecastConfiguration(forecastConfigurationId);
Query q = em.createNamedQuery("ForecastResult.findByForecastConfigurationId");
q.setParameter("forecastConfigurationId", config);
return q.getResultList();
}
/**
* Get all forecast configurations for one user.
* TODO: Should be season based, or possibly based on start/stop date
* @param userId
* @return
*/
public List<ForecastConfiguration> getForecastConfigurationsForUser(Integer userId)
{
Query q = em.createNamedQuery("ForecastConfiguration.findByVipsCoreUserId");
q.setParameter("vipsCoreUserId", userId);
return q.getResultList();
}
/**
* Fetches one specific forecast configuration
* @param forecastConfigurationId
* @return
*/
public ForecastConfiguration getForecastConfiguration(Long forecastConfigurationId)
{
return em.find(ForecastConfiguration.class, forecastConfigurationId);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment