import com.google.common.annotations.Beta;
import java.util.List;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.binding.javav2.generator.context.ModuleContext;
import org.opendaylight.mdsal.binding.javav2.model.api.Constant;
import org.opendaylight.mdsal.binding.javav2.model.api.Type;
+import org.opendaylight.mdsal.binding.javav2.model.api.TypeComment;
+import org.opendaylight.mdsal.binding.javav2.model.api.YangSourceDefinition;
+import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingNamespaceType;
import org.opendaylight.yangtools.yang.common.QName;
@Beta
* @param comment
* Comment String.
*/
- T addComment(String comment);
+ T addComment(TypeComment comment);
/**
* The method creates new AnnotationTypeBuilder containing specified package
EnumBuilder addEnumeration(String name, ModuleContext context);
/**
- * Sets parent type for data schema node node builder
+ * Gets parent type for data schema node builder, the parent
+ * MUST be a data tree node.
*
- * @param type generated parent type
- * @return generated type
+ * @return parent generated type of tree node
+ */
+ Type getParentTypeForBuilder();
+
+ /**
+ * Sets parent type for data schema node builder, the parent
+ * MUST be a data tree node.
+ *
+ * @param type parent generated type of tree node
+ * @return parent generated type
*/
Type setParentTypeForBuilder(Type type);
+ /**
+ * Get the BindingNamespaceType.
+ *
+ * @return BindingNamespaceType which type belongs to.
+ */
+ BindingNamespaceType getBindingNamespaceType();
+
List<MethodSignatureBuilder> getMethodDefinitions();
/**
List<GeneratedPropertyBuilder> getProperties();
+ /**
+ * Returns the YANG definition of this type, if available.
+ *
+ * @return YANG source definition, or empty when unavailable.
+ */
+ Optional<YangSourceDefinition> getYangSourceDefinition();
+
/**
* Add new Generated Property definition for Generated Transfer Object
* Builder and returns Generated Property Builder for specifying Property. <br>
*/
void setReference(String reference);
+ /**
+ * Set the YANG source definition.
+ *
+ * @param definition YANG source definition, must not be null
+ */
+ void setYangSourceDefinition(@NonNull YangSourceDefinition definition);
+
+ /**
+ * Set the BindingNamespaceType.
+ *
+ * @param namespaceType BindingNamespaceType which type belongs to, must not be null
+ */
+ void setBindingNamespaceType(@NonNull BindingNamespaceType namespaceType);
}