1 /*
2 * The contents of this file are subject to the terms of the Common Development and
3 * Distribution License (the License). You may not use this file except in compliance with the
4 * License.
5 *
6 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
7 * specific language governing permission and limitations under the License.
8 *
9 * When distributing Covered Software, include this CDDL Header Notice in each file and include
10 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
11 * Header, with the fields enclosed by brackets [] replaced by your own identifying
12 * information: "Portions copyright [year] [name of copyright owner]".
13 *
14 * Copyright 2016 ForgeRock AS.
15 */
16
17 package org.forgerock.api.jackson;
18
19 import java.io.IOException;
20
21 /**
22 * Extension for CREST and OpenAPI schemas to express an example value.
23 *
24 * @param <T> The type of the example.
25 */
26 public interface WithExampleSchema<T> {
27
28 /**
29 * Gets {@code example} JSON Schema field.
30 *
31 * @return The example value, or null if not defined.
32 */
33 T getExample();
34
35 /**
36 * Sets {@code example} JSON Schema field.
37 *
38 * @param example The example value.
39 * @throws IOException When the type of schema cannot be parsed from the String value.
40 */
41 void setExample(String example) throws IOException;
42 }