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.yangtools.sal.binding.model.api.type.builder;
10 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;
11 import org.opendaylight.yangtools.sal.binding.model.api.Restrictions;
14 * Generated Transfer Object Builder is interface that contains methods to build
15 * and instantiate Generated Transfer Object definition.
17 * @see GeneratedTransferObject
19 public interface GeneratedTOBuilder extends GeneratedTypeBuilderBase<GeneratedTOBuilder> {
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}
31 * Generated Transfer Object
32 * @return This instance of builder
34 GeneratedTOBuilder setExtendsType(final GeneratedTransferObject genTransObj);
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}
42 * Generated Property Builder
43 * @return This instance of builder
45 GeneratedTOBuilder addEqualsIdentity(final GeneratedPropertyBuilder property);
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}
53 * Generated Property Builder
54 * @return This instance of builder
56 GeneratedTOBuilder addHashIdentity(final GeneratedPropertyBuilder property);
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}
64 * Generated Property Builder
65 * @return This instance of builder
67 GeneratedTOBuilder addToStringProperty(final GeneratedPropertyBuilder property);
69 void setRestrictions(Restrictions restrictions);
72 * Returns instance of <code>GeneratedTransferObject</code> which data are
73 * build from the data of this builder
75 * @return generated transfer object instance
77 GeneratedTransferObject toInstance();
83 void setIsUnion(boolean isUnion);
85 void setSUID(GeneratedPropertyBuilder suid);