2 * Copyright (c) 2014 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.AccessModifier;
11 import org.opendaylight.yangtools.sal.binding.model.api.Type;
14 * @deprecated Use {@link org.opendaylight.mdsal.binding.model.api.type.builder.TypeMemberBuilder} instead.
17 public interface TypeMemberBuilder<T extends TypeMemberBuilder<T>> {
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}
27 * Package Name of Annotation Type
29 * Name of Annotation Type
30 * @return <code>new</code> instance of Annotation Type Builder.
32 AnnotationTypeBuilder addAnnotation(final String packageName, final String name);
35 * Returns the name of property.
37 * @return the name of property.
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}
47 * Return Type of property.
49 T setReturnType(final Type returnType);
51 AccessModifier getAccessModifier();
54 * Sets the access modifier of property.
57 * Access Modifier value.
59 T setAccessModifier(final AccessModifier modifier);
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.
69 T setComment(final String comment);
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.
80 T setFinal(final boolean isFinal);
82 T setStatic(final boolean isStatic);