Added serialVersionUID field to classes generated from list key.
[yangtools.git] / code-generator / binding-model-api / src / main / java / org / opendaylight / yangtools / sal / binding / model / api / type / builder / GeneratedTOBuilder.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.sal.binding.model.api.type.builder;
9
10 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;
11 import org.opendaylight.yangtools.sal.binding.model.api.Restrictions;
12
13 /**
14  * Generated Transfer Object Builder is interface that contains methods to build
15  * and instantiate Generated Transfer Object definition.
16  *
17  * @see GeneratedTransferObject
18  */
19 public interface GeneratedTOBuilder extends GeneratedTypeBuilderBase<GeneratedTOBuilder> {
20
21     /**
22      * Add Generated Transfer Object from which will be extended current
23      * Generated Transfer Object. <br>
24      * By definition Java does not allow multiple inheritance, hence if there is
25      * already definition of Generated Transfer Object the extending object will
26      * be overwritten by lastly added Generated Transfer Object. <br>
27      * If Generated Transfer Object is <code>null</code> the method SHOULD throw
28      * {@link IllegalArgumentException}
29      *
30      * @param genTransObj
31      *            Generated Transfer Object
32      * @return This instance of builder
33      */
34     GeneratedTOBuilder setExtendsType(final GeneratedTransferObject genTransObj);
35
36     /**
37      * Add Property that will be part of <code>equals</code> definition. <br>
38      * If Generated Property Builder is <code>null</code> the method SHOULD
39      * throw {@link IllegalArgumentException}
40      *
41      * @param property
42      *            Generated Property Builder
43      * @return This instance of builder
44      */
45     GeneratedTOBuilder addEqualsIdentity(final GeneratedPropertyBuilder property);
46
47     /**
48      * Add Property that will be part of <code>hashCode</code> definition. <br>
49      * If Generated Property Builder is <code>null</code> the method SHOULD
50      * throw {@link IllegalArgumentException}
51      *
52      * @param property
53      *            Generated Property Builder
54      * @return This instance of builder
55      */
56     GeneratedTOBuilder addHashIdentity(final GeneratedPropertyBuilder property);
57
58     /**
59      * Add Property that will be part of <code>toString</code> definition. <br>
60      * If Generated Property Builder is <code>null</code> the method SHOULD
61      * throw {@link IllegalArgumentException}
62      *
63      * @param property
64      *            Generated Property Builder
65      * @return This instance of builder
66      */
67     GeneratedTOBuilder addToStringProperty(final GeneratedPropertyBuilder property);
68
69     void setRestrictions(Restrictions restrictions);
70
71     /**
72      * Returns instance of <code>GeneratedTransferObject</code> which data are
73      * build from the data of this builder
74      *
75      * @return generated transfer object instance
76      */
77     GeneratedTransferObject toInstance();
78
79     /**
80      *
81      * @param isUnion
82      */
83     void setIsUnion(boolean isUnion);
84
85     void setSUID(GeneratedPropertyBuilder suid);
86 }