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.concepts.Builder;
13 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
16 * Generated Transfer Object Builder is interface that contains methods to build
17 * and instantiate Generated Transfer Object definition.
19 * @see GeneratedTransferObject
21 public interface GeneratedTOBuilder extends GeneratedTypeBuilderBase<GeneratedTOBuilder>,
22 Builder<GeneratedTransferObject> {
25 * Add Generated Transfer Object from which will be extended current
26 * Generated Transfer Object. <br>
27 * By definition Java does not allow multiple inheritance, hence if there is
28 * already definition of Generated Transfer Object the extending object will
29 * be overwritten by lastly added Generated Transfer Object. <br>
30 * If Generated Transfer Object is <code>null</code> the method SHOULD throw
31 * {@link IllegalArgumentException}
34 * Generated Transfer Object
35 * @return This instance of builder
37 GeneratedTOBuilder setExtendsType(final GeneratedTransferObject genTransObj);
40 * Add Property that will be part of <code>equals</code> definition. <br>
41 * If Generated Property Builder is <code>null</code> the method SHOULD
42 * throw {@link IllegalArgumentException}
45 * Generated Property Builder
46 * @return This instance of builder
48 GeneratedTOBuilder addEqualsIdentity(final GeneratedPropertyBuilder property);
51 * Add Property that will be part of <code>hashCode</code> definition. <br>
52 * If Generated Property Builder is <code>null</code> the method SHOULD
53 * throw {@link IllegalArgumentException}
56 * Generated Property Builder
57 * @return This instance of builder
59 GeneratedTOBuilder addHashIdentity(final GeneratedPropertyBuilder property);
62 * Add Property that will be part of <code>toString</code> definition. <br>
63 * If Generated Property Builder is <code>null</code> the method SHOULD
64 * throw {@link IllegalArgumentException}
67 * Generated Property Builder
68 * @return This instance of builder
70 GeneratedTOBuilder addToStringProperty(final GeneratedPropertyBuilder property);
72 void setRestrictions(Restrictions restrictions);
75 * Returns instance of <code>GeneratedTransferObject</code> which data are
76 * build from the data of this builder
78 * @return generated transfer object instance
81 GeneratedTransferObject build();
83 void setTypedef(boolean isTypedef);
86 * Sets the base type for Java representation of YANG typedef
91 void setBaseType(TypeDefinition<?> typeDef);
97 void setIsUnion(boolean isUnion);
99 void setIsUnionBuilder(boolean isUnionTypeBuilder);
101 void setSUID(GeneratedPropertyBuilder suid);