2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.mdsal.binding2.model.api;
11 import com.google.common.annotations.Beta;
12 import java.util.List;
13 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
16 * Generated Transfer Object extends {@link GeneratedType} and is designed to
17 * represent Java Class. The Generated Transfer Object contains declarations of
18 * member fields stored in List of Properties. The Generated Transfer Object can
19 * be extended by exactly ONE Generated Transfer Object as Java don't allow
20 * multiple inheritance. For retrieval of implementing Generated Types use
21 * {@link #getImplements()} method. <br>
22 * Every transfer object SHOULD contain equals, hashCode and toString
23 * definitions. For this purpose retrieve definitions through
24 * {@link #getEqualsIdentifiers ()}, {@link #getHashCodeIdentifiers()} and
25 * {@link #getToStringIdentifiers ()}.
29 public interface GeneratedTransferObject extends GeneratedType {
31 GeneratedProperty getSUID();
34 * Returns the Generated Transfer Object from which this GTO is derived, or
35 * null if this GTO is not derived from a GTO -- e.g. it is either an union
36 * or it is derived from a concrete type.
38 * @return Generated Transfer Object or <code>null</code> if this GTO is
39 * not derived from another GTO.
41 GeneratedTransferObject getSuperType();
44 * Returns List of Properties that are designated to define equality for
45 * Generated Transfer Object.
47 * @return List of Properties that are designated to define equality for
48 * Generated Transfer Object.
50 List<GeneratedProperty> getEqualsIdentifiers();
53 * Returns List of Properties that are designated to define identity for
54 * Generated Transfer Object.
56 * @return List of Properties that are designated to define identity for
57 * Generated Transfer Object.
59 List<GeneratedProperty> getHashCodeIdentifiers();
62 * Returns List of Properties that will be members of toString definition
63 * for Generated Transfer Object.
65 * @return List of Properties that will be members of toString definition
66 * for Generated Transfer Object.
68 List<GeneratedProperty> getToStringIdentifiers();
73 * Returns Base type of Java representation of YANG typedef if set, otherwise it returns null
75 * @return Base type of Java representation of YANG typedef if set, otherwise it returns null
77 TypeDefinition<?> getBaseType();
80 * Return boolean value which describe whether Generated Transfer Object
81 * was/wasn't created from union YANG type.
83 * @return true value if Generated Transfer Object was created from union
86 boolean isUnionType();
88 boolean isUnionTypeBuilder();
90 Restrictions getRestrictions();