You should create a custom class which has a ctor taking a string parameter
and one instance method called getDate. Jersey will introspect and find the
string ctor.
On 11 Jul 2014 23:38, "phil swenson" <phil.swenson_at_gmail.com> wrote:
>
> 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);
> }
> }