I’m sorry, I don’t really understand your question very clearly, it seems your terminology is mixed up. When you say “module” do you really mean “component”?
To make a new dataset-type property on a component you’re adding via a module, you would simply have a property of type [tt]com.inductiveautomation.ignition.common.Dataset[/tt], just like any other property. It would have a getter method, a setter method, and an entry in the component’s corresponding BeanInfo property. You would then be able to bind this property just like any other dataset property on any other component.
If instead you’re got Java code that creates a dataset and you’re trying to figure out the best way to assign that dataset to an existing component’s dataset property, you should probably add a new type of ExtensibleBinding to the system. These are what power the “Function” binding types that you see when open the binding window for a dataset property. To add a new function binding, you have your module define a new [tt]com.inductiveautomation.vision.api.client.binding.BindingType[/tt] and add it using both the client context and designer context’s [tt]addExtensibleBindingType()[/tt] function.
Hope this helps,