2 * Copyright (c) 2013 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
8 package org.opendaylight.mdsal.binding.model.api.type.builder;
10 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
11 import org.opendaylight.mdsal.binding.model.api.Restrictions;
12 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
15 * Generated Transfer Object Builder is interface that contains methods to build
16 * and instantiate Generated Transfer Object definition.
18 * @see GeneratedTransferObject
20 public interface GeneratedTOBuilder extends GeneratedTypeBuilderBase<GeneratedTOBuilder> {
23 * Add Generated Transfer Object from which will be extended current
24 * Generated Transfer Object. <br>
25 * By definition Java does not allow multiple inheritance, hence if there is
26 * already definition of Generated Transfer Object the extending object will
27 * be overwritten by lastly added Generated Transfer Object. <br>
28 * If Generated Transfer Object is <code>null</code> the method SHOULD throw
29 * {@link IllegalArgumentException}
32 * Generated Transfer Object
33 * @return This instance of builder
35 GeneratedTOBuilder setExtendsType(final GeneratedTransferObject genTransObj);
38 * Add Property that will be part of <code>equals</code> definition. <br>
39 * If Generated Property Builder is <code>null</code> the method SHOULD
40 * throw {@link IllegalArgumentException}
43 * Generated Property Builder
44 * @return This instance of builder
46 GeneratedTOBuilder addEqualsIdentity(final GeneratedPropertyBuilder property);
49 * Add Property that will be part of <code>hashCode</code> definition. <br>
50 * If Generated Property Builder is <code>null</code> the method SHOULD
51 * throw {@link IllegalArgumentException}
54 * Generated Property Builder
55 * @return This instance of builder
57 GeneratedTOBuilder addHashIdentity(final GeneratedPropertyBuilder property);
60 * Add Property that will be part of <code>toString</code> definition. <br>
61 * If Generated Property Builder is <code>null</code> the method SHOULD
62 * throw {@link IllegalArgumentException}
65 * Generated Property Builder
66 * @return This instance of builder
68 GeneratedTOBuilder addToStringProperty(final GeneratedPropertyBuilder property);
70 void setRestrictions(Restrictions restrictions);
73 * Returns instance of <code>GeneratedTransferObject</code> which data are
74 * build from the data of this builder
76 * @return generated transfer object instance
78 GeneratedTransferObject toInstance();
80 void setTypedef(boolean isTypedef);
83 * Sets the base type for Java representation of YANG typedef
88 void setBaseType(TypeDefinition<?> typeDef);
94 void setIsUnion(boolean isUnion);
96 void setIsUnionBuilder(boolean isUnionTypeBuilder);
98 void setSUID(GeneratedPropertyBuilder suid);