I want to make my date params work with either ISO 8601 or java longs…
Here’s a sample bit of code. I pass in all date params as strings and I
have a method (normalizeRestDateParam) that detects if the param is an ISO
date or a long and processes accordingly…. my question - is there a way to
use an annotation or convention to have that parameter intercepted and
processed so I don’t have to manually execute this code for all date/time
parameters?
Thanks!
@GET
@Path("/ProcessMetrics")
public ProcessMetrics
getProcessMetricData(@QueryParam("processModelId") String modelId,
@QueryParam("startTime")
String startTime, @QueryParam("endTime") String endTime, @NotNull
@QueryParam("statsInterval") long statsInterval) {
try {
//translate old style data class to new
ProcessMetricData processMetricData =
getGlueProcessAnalyticsService().getProcessMetricData(modelId,
normalizeRestDateParam(startTime), normalizeRestDateParam(startTime),
statsInterval);
ProcessMetrics processMetrics = new
ProcessMetrics(processMetricData.getVolumeStarted(),
processMetricData.getVolumeCompleted(),
processMetricData.getVolumeInProgress(),
processMetricData.getCycleTime(),
processMetricData.getCycleTimeMax(), processMetricData.getCycleTimeMax(),
processMetricData.getCycleTimeStandardDeviation(),
processMetricData.getCycleTimeMean(), processMetricData.getRuleViolations(),
processMetricData.getRuleViolationsOpen(),
processMetricData.getStartTime(), processMetricData.getEndTime());
return processMetrics;
} catch (Exception e) {
throw new RuntimeExceptionAdapter(e);
}
}