1b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov/**
211a89b445f3bde56bf07e6a0d04f0b0256dcb215Andrey Somov * Copyright (c) 2008, http://www.snakeyaml.org
3b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov *
4b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * Licensed under the Apache License, Version 2.0 (the "License");
5b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * you may not use this file except in compliance with the License.
6b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * You may obtain a copy of the License at
7b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov *
8b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov *     http://www.apache.org/licenses/LICENSE-2.0
9b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov *
10b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * Unless required by applicable law or agreed to in writing, software
11b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * distributed under the License is distributed on an "AS IS" BASIS,
12b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * See the License for the specific language governing permissions and
14b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * limitations under the License.
15b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov */
16b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somovpackage examples.resolver;
17b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov
18b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somovimport java.util.regex.Pattern;
19b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov
20b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somovimport org.yaml.snakeyaml.nodes.Tag;
21b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somovimport org.yaml.snakeyaml.resolver.Resolver;
22b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov
23b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somovpublic class CustomIntResolver extends Resolver {
24b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov    public static final Pattern PURE_INT = Pattern.compile("^[0-9]+$");
25b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov
26b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov    /*
27b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov     * do not resolve int if it has underscores
28b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov     */
29b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov    protected void addImplicitResolvers() {
30b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov        addImplicitResolver(Tag.BOOL, BOOL, "yYnNtTfFoO");
31b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov        addImplicitResolver(Tag.FLOAT, FLOAT, "-+0123456789.");
32b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov        // define simple int pattern
33b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov        addImplicitResolver(Tag.INT, PURE_INT, "0123456789");
34b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov        addImplicitResolver(Tag.MERGE, MERGE, "<");
35b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov        addImplicitResolver(Tag.NULL, NULL, "~nN\0");
36b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov        addImplicitResolver(Tag.NULL, EMPTY, null);
37b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov        addImplicitResolver(Tag.TIMESTAMP, TIMESTAMP, "0123456789");
38b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov    }
39b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov}
40