1 | /* |
2 | * Copyright 2006-2007 the original author or authors. |
3 | * |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | * you may not use this file except in compliance with the License. |
6 | * You may obtain a copy of the License at |
7 | * |
8 | * http://www.apache.org/licenses/LICENSE-2.0 |
9 | * |
10 | * Unless required by applicable law or agreed to in writing, software |
11 | * distributed under the License is distributed on an "AS IS" BASIS, |
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. |
15 | */ |
16 | package org.springframework.batch.item.file.mapping; |
17 | |
18 | |
19 | /** |
20 | * Pass through {@link FieldSetMapper} useful for passing a {@link FieldSet} |
21 | * back directly rather than a mapped object. |
22 | * |
23 | * @author Lucas Ward |
24 | * |
25 | */ |
26 | public class PassThroughFieldSetMapper implements FieldSetMapper, FieldSetCreator { |
27 | |
28 | /* |
29 | * (non-Javadoc) |
30 | * @see org.springframework.batch.io.file.FieldSetMapper#mapLine(org.springframework.batch.io.file.FieldSet) |
31 | */ |
32 | public Object mapLine(FieldSet fs) { |
33 | return fs; |
34 | } |
35 | |
36 | /** |
37 | * If the input is a {@link FieldSet} pass it to the caller. Otherwise |
38 | * convert to a String with toString() and convert it to a single field |
39 | * {@link FieldSet}. |
40 | * |
41 | * @see org.springframework.batch.item.file.mapping.FieldSetCreator#mapItem(java.lang.Object) |
42 | */ |
43 | public FieldSet mapItem(Object data) { |
44 | if (data instanceof FieldSet) { |
45 | return (FieldSet) data; |
46 | } |
47 | if (!(data instanceof String)) { |
48 | data = "" + data; |
49 | } |
50 | return new DefaultFieldSet(new String[] { (String) data }); |
51 | } |
52 | |
53 | } |