X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fbinding-model-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fmodel%2Fapi%2Ftype%2Fbuilder%2FAnnotationTypeBuilder.java;h=543c47b55d04a1bd33c0130a4ab6942f91688b1e;hp=6016274260f69aa8932be1ddc0815766bc862ac4;hb=f607c4b0b922281f1ddd5fda2e7b49ca67d26ecd;hpb=5ae5c5b1fbeb7cea9337bbb6f075e6b889e5a75d;ds=sidebyside diff --git a/opendaylight/sal/yang-prototype/code-generator/binding-model-api/src/main/java/org/opendaylight/controller/sal/binding/model/api/type/builder/AnnotationTypeBuilder.java b/opendaylight/sal/yang-prototype/code-generator/binding-model-api/src/main/java/org/opendaylight/controller/sal/binding/model/api/type/builder/AnnotationTypeBuilder.java index 6016274260..543c47b55d 100644 --- a/opendaylight/sal/yang-prototype/code-generator/binding-model-api/src/main/java/org/opendaylight/controller/sal/binding/model/api/type/builder/AnnotationTypeBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/binding-model-api/src/main/java/org/opendaylight/controller/sal/binding/model/api/type/builder/AnnotationTypeBuilder.java @@ -12,13 +12,83 @@ import java.util.List; import org.opendaylight.controller.sal.binding.model.api.AnnotationType; import org.opendaylight.controller.sal.binding.model.api.Type; +/** + * Annotation Type Builder Interface serves for creation and instantiation of + * immutable copy of Annotation Type. The Annotation Type Builder extends + * from {@link Type} interface. The Annotation Type contains set of methods + * which are capable to provide information about other Annotation Types and + * Annotation Parameters. + * + * @see AnnotationType + */ public interface AnnotationTypeBuilder extends Type { - + + /** + * The method creates new AnnotationTypeBuilder containing specified + * package name an annotation name. + *
+ * Neither the package name or annotation name can contain + * null references. In case that + * any of parameters contains null the method SHOULD thrown + * {@link IllegalArgumentException} + * + * @param packageName Package Name of Annotation Type + * @param name Name of Annotation Type + * @return new instance of Annotation Type Builder. + */ public AnnotationTypeBuilder addAnnotation(final String packageName, final String name); - + + /** + * Adds the parameter into List of parameters for Annotation Type. + *
+ * If there is already stored parameter with the same name as the new + * parameter, the value of the old one will be simply overwritten by the + * newer parameter. + *
+ * Neither the param name or value can contain + * null references. In case that + * any of parameters contains null the method SHOULD thrown + * {@link IllegalArgumentException} + * + * @param paramName Parameter Name + * @param value Parameter Value + * @return true if the parameter has been successfully + * assigned for Annotation Type + */ public boolean addParameter(final String paramName, String value); - + + /** + * Adds the parameter with specified List of parameter values into List of + * parameters for Annotation Type. + *
+ * If there is already stored parameter with the same name as the new + * parameter, the value of the old one will be simply overwritten by the + * newer parameter. + *
+ * Neither the param name or value can contain + * null references. In case that + * any of parameters contains null the method SHOULD thrown + * {@link IllegalArgumentException} + * + * @param paramName Parameter Name + * @param values List of Values bounded to Parameter Name + * @return true if the parameter has been successfully + * assigned for Annotation Type + */ public boolean addParameters(final String paramName, List values); - + + /** + * Returns new immutable instance of Annotation Type + * with values assigned in current instance of Annotation Type Builder. + *
+ * The return Annotation Type instance is immutable thus no additional + * modification to Annotation Type Builder will have an impact to + * instantiated Annotation Type. + *
+ * For this purpose call this method after + * all additions are complete. + * + * @return new immutable instance of Annotation Type. + */ public AnnotationType toInstance(); }