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 org.yaml.snakeyaml.events;
17
18/**
19 * The implicit flag of a scalar event is a pair of boolean values that indicate
20 * if the tag may be omitted when the scalar is emitted in a plain and non-plain
21 * style correspondingly.
22 *
23 * @see <a href="http://pyyaml.org/wiki/PyYAMLDocumentation#Events">Events</a>
24 */
25public class ImplicitTuple {
26    private final boolean plain;
27    private final boolean nonPlain;
28
29    public ImplicitTuple(boolean plain, boolean nonplain) {
30        this.plain = plain;
31        this.nonPlain = nonplain;
32    }
33
34    /**
35     * @return true when tag may be omitted when the scalar is emitted in a
36     *         plain style.
37     */
38    public boolean canOmitTagInPlainScalar() {
39        return plain;
40    }
41
42    /**
43     * @return true when tag may be omitted when the scalar is emitted in a
44     *         non-plain style.
45     */
46    public boolean canOmitTagInNonPlainScalar() {
47        return nonPlain;
48    }
49
50    public boolean bothFalse() {
51        return !plain && !nonPlain;
52    }
53
54    @Override
55    public String toString() {
56        return "implicit=[" + plain + ", " + nonPlain + "]";
57    }
58}
59