/** * Typesafe Getter for the Long represented by the provided key. If the * key does not exist, the default value will be returned. * * @param key to return the value for * @param defaultValue to return if the value doesn't exist * @return the parameter represented by the provided key, defaultValue * otherwise. * @deprecated Use {@link JobParameters#getLong(java.lang.String, java.lang.Long)} * instead. This method will be removed in a future release. */ @Deprecated public Long getLong(String key, long defaultValue){ if(parameters.containsKey(key)){ return getLong(key); } else{ return defaultValue; } }
/** * Typesafe Getter for the Long represented by the provided key. If the * key does not exist, the default value will be returned. * * @param key to return the value for * @param defaultValue to return if the value doesn't exist * @return the parameter represented by the provided key, defaultValue * otherwise. */ @Nullable public Long getLong(String key, @Nullable Long defaultValue){ if(parameters.containsKey(key)){ return getLong(key); } else{ return defaultValue; } }
/** * Set up a {@link SimpleCompletionPolicy} with a commit interval taken from * the {@link JobParameters}. If there is a Long parameter with the given * key name, the intValue of this parameter is used. If not an exception * will be thrown. * * @see org.springframework.batch.core.listener.StepExecutionListenerSupport#beforeStep(org.springframework.batch.core.StepExecution) */ @Override public void beforeStep(StepExecution stepExecution) { JobParameters jobParameters = stepExecution.getJobParameters(); Assert.state(jobParameters.getParameters().containsKey(keyName), "JobParameters do not contain Long parameter with key=[" + keyName + "]"); delegate = new SimpleCompletionPolicy(jobParameters.getLong(keyName).intValue()); }
/** * Increment the run.id parameter (starting with 1). */ @Override public JobParameters getNext(@Nullable JobParameters parameters) { JobParameters params = (parameters == null) ? new JobParameters() : parameters; long id = params.getLong(key, new Long(0)) + 1; return new JobParametersBuilder(params).addLong(key, id).toJobParameters(); }
@Test public void testGetMissingLong() { assertNull(parameters.getLong("missing.long1")); }
@Test public void testGetNextNamed() { incrementer.setKey("foo"); JobParameters next = incrementer.getNext(null); assertEquals(1, next.getLong("foo").intValue()); }
@Test public void testLongReturnsNullWhenKeyDoesntExit(){ assertNull(new JobParameters().getLong("keythatdoesntexist")); }
@Test public void testPropertiesWithRunId() { Properties properties = new Properties(); properties.put("key", "value"); properties.put(JsrJobParametersConverter.JOB_RUN_ID, "3"); JobParameters parameters = converter.getJobParameters(properties); assertEquals(2, parameters.getParameters().size()); assertEquals("value", parameters.getString("key")); assertEquals(Long.valueOf(3L), parameters.getLong(JsrJobParametersConverter.JOB_RUN_ID)); assertTrue(parameters.getParameters().get(JsrJobParametersConverter.JOB_RUN_ID).isIdentifying()); } }
@Test public void testGetEmptyLong() { parameters = new JobParameters(Collections.singletonMap("long1", new JobParameter((Long)null, true))); assertNull(parameters.getLong("long1")); }
private void baseJobParametersVerify(JobParameters parameters, int paramCount) { assertEquals(date, parameters.getDate("SCHEDULE_DATE")); assertEquals(1L, parameters.getLong("LONG").longValue()); assertEquals("string value", parameters.getString("STRING")); assertEquals(paramCount, parameters.getParameters().size()); }
@Test public void testGetParametersWithNumberFormat() throws Exception { String[] args = new String[] { "value(long)=1,000" }; factory.setNumberFormat(new DecimalFormat("#,###", DecimalFormatSymbols.getInstance(Locale.ENGLISH))); JobParameters props = factory.getJobParameters(StringUtils.splitArrayElementsIntoProperties(args, "=")); assertNotNull(props); assertEquals(1000L, props.getLong("value").longValue()); }
@Test public void testGetParametersWithDoubleAndLongAndNumberFormat() throws Exception { String[] args = new String[] { "value(double)=1,23456", "long(long)=123.456" }; NumberFormat format = NumberFormat.getInstance(Locale.GERMAN); factory.setNumberFormat(format); JobParameters props = factory.getJobParameters(StringUtils.splitArrayElementsIntoProperties(args, "=")); assertNotNull(props); assertEquals(1.23456, props.getDouble("value"), Double.MIN_VALUE); assertEquals(123456, props.getLong("long").longValue()); }
@Test public void testToJobRuntimeParameters(){ this.parametersBuilder.addDate("SCHEDULE_DATE", date); this.parametersBuilder.addLong("LONG", new Long(1)); this.parametersBuilder.addString("STRING", "string value"); this.parametersBuilder.addDouble("DOUBLE", new Double(1)); JobParameters parameters = this.parametersBuilder.toJobParameters(); assertEquals(date, parameters.getDate("SCHEDULE_DATE")); assertEquals(1L, parameters.getLong("LONG").longValue()); assertEquals(1, parameters.getDouble("DOUBLE").doubleValue(), 1e-15); assertEquals("string value", parameters.getString("STRING")); }
@Test public void testGetParameters() throws Exception { String jobKey = "job.key=myKey"; String scheduleDate = "schedule.date(date)=2008/01/23"; String vendorId = "vendor.id(long)=33243243"; String[] args = new String[] { jobKey, scheduleDate, vendorId }; JobParameters props = factory.getJobParameters(StringUtils.splitArrayElementsIntoProperties(args, "=")); assertNotNull(props); assertEquals("myKey", props.getString("job.key")); assertEquals(33243243L, props.getLong("vendor.id").longValue()); Date date = dateFormat.parse("01/23/2008"); assertEquals(date, props.getDate("schedule.date")); }
@Test public void testNullRuntimeParameters(){ this.parametersBuilder.addDate("SCHEDULE_DATE", null); this.parametersBuilder.addLong("LONG", null); this.parametersBuilder.addString("STRING", null); this.parametersBuilder.addDouble("DOUBLE", null); JobParameters parameters = this.parametersBuilder.toJobParameters(); assertNull(parameters.getDate("SCHEDULE_DATE")); assertNull(parameters.getLong("LONG")); assertNull(parameters.getString("STRING")); assertNull(parameters.getLong("DOUBLE")); }
@Test public void testGetNextAppends() { JobParameters next = incrementer.getNext(new JobParametersBuilder().addString("foo", "bar").toJobParameters()); assertEquals(1, next.getLong("run.id").intValue()); assertEquals("bar", next.getString("foo")); }
@Test public void testNonIdentifyingParameters() { this.parametersBuilder.addDate("SCHEDULE_DATE", date, false); this.parametersBuilder.addLong("LONG", new Long(1), false); this.parametersBuilder.addString("STRING", "string value", false); this.parametersBuilder.addDouble("DOUBLE", new Double(1), false); JobParameters parameters = this.parametersBuilder.toJobParameters(); assertEquals(date, parameters.getDate("SCHEDULE_DATE")); assertEquals(1L, parameters.getLong("LONG").longValue()); assertEquals("string value", parameters.getString("STRING")); assertEquals(1, parameters.getDouble("DOUBLE").doubleValue(), 1e-15); assertFalse(parameters.getParameters().get("SCHEDULE_DATE").isIdentifying()); assertFalse(parameters.getParameters().get("LONG").isIdentifying()); assertFalse(parameters.getParameters().get("STRING").isIdentifying()); assertFalse(parameters.getParameters().get("DOUBLE").isIdentifying()); }
/** * Increment the run.id parameter (starting with 1). */ @Override public JobParameters getNext(@Nullable JobParameters parameters) { JobParameters params = (parameters == null) ? new JobParameters() : parameters; long id = params.getLong(key, 0L) + 1; return new JobParametersBuilder(params).addLong(key, id).toJobParameters(); }