Bug 6859: Cleanup package names for mdsal-binding-generator-api module
[mdsal.git] / binding / mdsal-binding-generator-api / src / main / java / org / opendaylight / yangtools / sal / binding / model / api / type / builder / TypeMemberBuilder.java
1 /*
2  * Copyright (c) 2014 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.AccessModifier;
11 import org.opendaylight.yangtools.sal.binding.model.api.Type;
12
13 /**
14  * @deprecated Use {@link org.opendaylight.mdsal.binding.model.api.type.builder.TypeMemberBuilder} instead.
15  */
16 @Deprecated
17 public interface TypeMemberBuilder<T extends TypeMemberBuilder<T>> {
18
19     /**
20      * The method creates new AnnotationTypeBuilder containing specified package
21      * name an annotation name. <br>
22      * Neither the package name or annotation name can contain <code>null</code>
23      * references. In case that any of parameters contains <code>null</code> the
24      * method SHOULD thrown {@link IllegalArgumentException}
25      *
26      * @param packageName
27      *            Package Name of Annotation Type
28      * @param name
29      *            Name of Annotation Type
30      * @return <code>new</code> instance of Annotation Type Builder.
31      */
32     AnnotationTypeBuilder addAnnotation(final String packageName, final String name);
33
34     /**
35      * Returns the name of property.
36      *
37      * @return the name of property.
38      */
39     String getName();
40
41     /**
42      * Adds return Type into Builder definition for Generated Property. <br>
43      * The return Type MUST NOT be <code>null</code>, otherwise the method
44      * SHOULD throw {@link IllegalArgumentException}
45      *
46      * @param returnType
47      *            Return Type of property.
48      */
49     T setReturnType(final Type returnType);
50
51     AccessModifier getAccessModifier();
52
53     /**
54      * Sets the access modifier of property.
55      *
56      * @param modifier
57      *            Access Modifier value.
58      */
59     T setAccessModifier(final AccessModifier modifier);
60
61     /**
62      * Adds String definition of comment into Method Signature definition. <br>
63      * The comment String MUST NOT contain anny comment specific chars (i.e.
64      * "/**" or "//") just plain String text description.
65      *
66      * @param comment
67      *            Comment String.
68      */
69     T setComment(final String comment);
70
71     /**
72      * Sets the flag final for method signature. If this is set the method will
73      * be prohibited from overriding. <br>
74      * This setting is irrelevant for methods designated to be defined in
75      * interface definitions because interface can't have final method.
76      *
77      * @param isFinal
78      *            Is Final
79      */
80     T setFinal(final boolean isFinal);
81
82     T setStatic(final boolean isStatic);
83 }