X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-generator-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fsal%2Fbinding%2Fmodel%2Fapi%2Ftype%2Fbuilder%2FGeneratedTOBuilder.java;fp=binding%2Fmdsal-binding-generator-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fsal%2Fbinding%2Fmodel%2Fapi%2Ftype%2Fbuilder%2FGeneratedTOBuilder.java;h=ca25dade4fdd0a2cf65bccb907cd3ace93a212dc;hb=470e20edf85dbf3731d1fea7fde5eab7bd3afe95;hp=0000000000000000000000000000000000000000;hpb=0835b2cf948156252e2363a53f3dd48853bd27ab;p=mdsal.git diff --git a/binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/yangtools/sal/binding/model/api/type/builder/GeneratedTOBuilder.java b/binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/yangtools/sal/binding/model/api/type/builder/GeneratedTOBuilder.java new file mode 100644 index 0000000000..ca25dade4f --- /dev/null +++ b/binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/yangtools/sal/binding/model/api/type/builder/GeneratedTOBuilder.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.yangtools.sal.binding.model.api.type.builder; + +import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject; +import org.opendaylight.yangtools.sal.binding.model.api.Restrictions; +import org.opendaylight.yangtools.yang.model.api.TypeDefinition; + +/** + * Generated Transfer Object Builder is interface that contains methods to build + * and instantiate Generated Transfer Object definition. + * + * @see GeneratedTransferObject + */ +public interface GeneratedTOBuilder extends GeneratedTypeBuilderBase { + + /** + * Add Generated Transfer Object from which will be extended current + * Generated Transfer Object.
+ * By definition Java does not allow multiple inheritance, hence if there is + * already definition of Generated Transfer Object the extending object will + * be overwritten by lastly added Generated Transfer Object.
+ * If Generated Transfer Object is null the method SHOULD throw + * {@link IllegalArgumentException} + * + * @param genTransObj + * Generated Transfer Object + * @return This instance of builder + */ + GeneratedTOBuilder setExtendsType(final GeneratedTransferObject genTransObj); + + /** + * Add Property that will be part of equals definition.
+ * If Generated Property Builder is null the method SHOULD + * throw {@link IllegalArgumentException} + * + * @param property + * Generated Property Builder + * @return This instance of builder + */ + GeneratedTOBuilder addEqualsIdentity(final GeneratedPropertyBuilder property); + + /** + * Add Property that will be part of hashCode definition.
+ * If Generated Property Builder is null the method SHOULD + * throw {@link IllegalArgumentException} + * + * @param property + * Generated Property Builder + * @return This instance of builder + */ + GeneratedTOBuilder addHashIdentity(final GeneratedPropertyBuilder property); + + /** + * Add Property that will be part of toString definition.
+ * If Generated Property Builder is null the method SHOULD + * throw {@link IllegalArgumentException} + * + * @param property + * Generated Property Builder + * @return This instance of builder + */ + GeneratedTOBuilder addToStringProperty(final GeneratedPropertyBuilder property); + + void setRestrictions(Restrictions restrictions); + + /** + * Returns instance of GeneratedTransferObject which data are + * build from the data of this builder + * + * @return generated transfer object instance + */ + GeneratedTransferObject toInstance(); + + void setTypedef(boolean isTypedef); + + /** + * Sets the base type for Java representation of YANG typedef + * + * @param typeDef + * Type Definition + */ + void setBaseType(TypeDefinition typeDef); + + /** + * + * @param isUnion + */ + void setIsUnion(boolean isUnion); + + void setIsUnionBuilder(boolean isUnionTypeBuilder); + + void setSUID(GeneratedPropertyBuilder suid); +}