Fixing sonar issues
[mdsal.git] / code-generator / binding-model-api / src / main / java / org / opendaylight / yangtools / sal / binding / model / api / type / builder / GeneratedTypeBuilder.java
index acf8043a350b9b4a09d4a1f4ffadf71ed38c9a9e..8be437c833f428ecb732987dc41ff55b96032662 100644 (file)
@@ -7,9 +7,7 @@
  */
 package org.opendaylight.yangtools.sal.binding.model.api.type.builder;
 
-import org.opendaylight.yangtools.sal.binding.model.api.Constant;
 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;
-import org.opendaylight.yangtools.sal.binding.model.api.Type;
 
 /**
  * Generated Type Builder interface is helper interface for building and
@@ -17,159 +15,7 @@ import org.opendaylight.yangtools.sal.binding.model.api.Type;
  * 
  * @see GeneratedType
  */
-public interface GeneratedTypeBuilder extends Type {
-
-    /**
-     * Adds new Enclosing Type into definition of Generated Type and returns
-     * <code>new</code> Instance of Generated Type Builder. <br>
-     * There is no need of specifying of Package Name because enclosing Type is
-     * already defined inside Generated Type with specific package name. <br>
-     * The name of enclosing Type cannot be same as Name of parent type and if
-     * there is already defined enclosing type with the same name, the new
-     * enclosing type will simply overwrite the older definition. <br>
-     * If the name of enclosing type is <code>null</code> the method SHOULD
-     * throw {@link IllegalArgumentException}
-     * 
-     * @param name
-     *            Name of Enclosing Type
-     * @return <code>new</code> Instance of Generated Type Builder.
-     */
-    public GeneratedTypeBuilder addEnclosingType(final String name);
-
-    /**
-     * Adds new Enclosing Transfer Object into definition of Generated Type and
-     * returns <code>new</code> Instance of Generated TO Builder. <br>
-     * There is no need of specifying of Package Name because enclosing Type is
-     * already defined inside Generated Type with specific package name. <br>
-     * The name of enclosing Type cannot be same as Name of parent type and if
-     * there is already defined enclosing type with the same name, the new
-     * enclosing type will simply overwrite the older definition. <br>
-     * If the name of enclosing type is <code>null</code> the method SHOULD
-     * throw {@link IllegalArgumentException}
-     * 
-     * @param name
-     *            Name of Enclosing Type
-     * @return <code>new</code> Instance of Generated Type Builder.
-     */
-    public GeneratedTOBuilder addEnclosingTransferObject(final String name);
-
-    /**
-     * Adds new Enclosing Transfer Object <code>genTOBuilder</code> into
-     * definition of Generated Type
-     * 
-     * <br>
-     * There is no need of specifying of Package Name because enclosing Type is
-     * already defined inside Generated Type with specific package name. <br>
-     * The name of enclosing Type cannot be same as Name of parent type and if
-     * there is already defined enclosing type with the same name, the new
-     * enclosing type will simply overwrite the older definition. <br>
-     * If the parameter <code>genTOBuilder</code> of enclosing type is
-     * <code>null</code> the method SHOULD throw
-     * {@link IllegalArgumentException}
-     * 
-     * @param <code>genTOBuilder</code> Name of Enclosing Type
-     */
-    public void addEnclosingTransferObject(final GeneratedTOBuilder genTOBuilder);
-
-    /**
-     * Adds String definition of comment into Method Signature definition. <br>
-     * The comment String MUST NOT contain anny comment specific chars (i.e.
-     * "/**" or "//") just plain String text description.
-     * 
-     * @param comment
-     *            Comment String.
-     */
-    public void addComment(final String comment);
-
-    /**
-     * The method creates new AnnotationTypeBuilder containing specified package
-     * name an annotation name. <br>
-     * Neither the package name or annotation name can contain <code>null</code>
-     * references. In case that any of parameters contains <code>null</code> the
-     * method SHOULD thrown {@link IllegalArgumentException}
-     * 
-     * @param packageName
-     *            Package Name of Annotation Type
-     * @param name
-     *            Name of Annotation Type
-     * @return <code>new</code> instance of Annotation Type Builder.
-     */
-    public AnnotationTypeBuilder addAnnotation(final String packageName, final String name);
-
-    /**
-     * Sets the <code>abstract</code> flag to define Generated Type as
-     * <i>abstract</i> type.
-     * 
-     * @param isAbstract
-     *            abstract flag
-     */
-    public void setAbstract(boolean isAbstract);
-
-    /**
-     * Add Type to implements.
-     * 
-     * @param genType
-     *            Type to implement
-     * @return <code>true</code> if the addition of type is successful.
-     */
-    public boolean addImplementsType(final Type genType);
-
-    /**
-     * Adds Constant definition and returns <code>new</code> Constant instance. <br>
-     * By definition Constant MUST be defined by return Type, Name and assigned
-     * value. The name SHOULD be defined with cpaital letters. Neither of method
-     * parameters can be <code>null</code> and the method SHOULD throw
-     * {@link IllegalArgumentException} if the contract is broken.
-     * 
-     * @param type
-     *            Constant Type
-     * @param name
-     *            Name of Constant
-     * @param value
-     *            Assigned Value
-     * @return <code>new</code> Constant instance.
-     */
-    public Constant addConstant(final Type type, final String name, final Object value);
-
-    /**
-     * Adds new Enumeration definition for Generated Type Builder and returns
-     * Enum Builder for specifying all Enum parameters. <br>
-     * If there is already Enumeration stored with the same name, the old enum
-     * will be simply overwritten byt new enum definition. <br>
-     * Name of Enumeration cannot be <code>null</code>, if it is
-     * <code>null</code> the method SHOULD throw
-     * {@link IllegalArgumentException}
-     * 
-     * @param name
-     *            Enumeration Name
-     * @return <code>new</code> instance of Enumeration Builder.
-     */
-    public EnumBuilder addEnumeration(final String name);
-
-    /**
-     * Add new Method Signature definition for Generated Type Builder and
-     * returns Method Signature Builder for specifying all Method parameters. <br>
-     * Name of Method cannot be <code>null</code>, if it is <code>null</code>
-     * the method SHOULD throw {@link IllegalArgumentException} <br>
-     * By <i>Default</i> the MethodSignatureBuilder SHOULD be pre-set as
-     * {@link MethodSignatureBuilder#setAbstract(true)},
-     * {@link MethodSignatureBuilder#setFinal(false)} and
-     * {@link MethodSignatureBuilder#setAccessModifier(PUBLIC)}
-     * 
-     * @param name
-     *            Name of Method
-     * @return <code>new</code> instance of Method Signature Builder.
-     */
-    public MethodSignatureBuilder addMethod(final String name);
-
-    /**
-     * Checks if GeneratedTypeBuilder contains method with name
-     * <code>methodName</code>
-     * 
-     * @param methodName
-     *            is method name
-     */
-    public boolean containsMethod(final String methodName);
+public interface GeneratedTypeBuilder extends GeneratedTypeBuilderBase<GeneratedTypeBuilder> {
 
     /**
      * Returns the <code>new</code> <i>immutable</i> instance of Generated Type.
@@ -177,4 +23,5 @@ public interface GeneratedTypeBuilder extends Type {
      * @return the <code>new</code> <i>immutable</i> instance of Generated Type.
      */
     public GeneratedType toInstance();
+
 }