1/**
2 * Copyright (c) 2008, http://www.snakeyaml.org
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 */
16package examples.jodatime;
17
18import java.util.Date;
19
20import org.joda.time.DateTime;
21import org.joda.time.DateTimeZone;
22import org.yaml.snakeyaml.constructor.Constructor;
23import org.yaml.snakeyaml.nodes.Node;
24import org.yaml.snakeyaml.nodes.Tag;
25
26/**
27 * It works only when JodaTime is not a JavaBean property
28 */
29public class JodaTimeImplicitContructor extends Constructor {
30    public JodaTimeImplicitContructor() {
31        this.yamlConstructors.put(Tag.TIMESTAMP, new ConstructJodaTimestamp());
32    }
33
34    private class ConstructJodaTimestamp extends ConstructYamlTimestamp {
35        public Object construct(Node node) {
36            Date date = (Date) super.construct(node);
37            return new DateTime(date, DateTimeZone.UTC);
38        }
39    }
40}
41