class ThingTypeBuilder {

    public BridgeType buildBridge() {
        if (bindingId == null || bindingId.isBlank()) {
            throw new IllegalArgumentException("The bindingId must neither be null nor empty.");
        }
        if (thingTypeId == null || thingTypeId.isBlank()) {
            throw new IllegalArgumentException("The thingTypeId must neither be null nor empty.");
        }
        if (label == null || label.isBlank()) {
            throw new IllegalArgumentException("The label must neither be null nor empty.");
        }

        return new BridgeType(new ThingTypeUID(bindingId, thingTypeId), supportedBridgeTypeUIDs, label, description,
                category, listed, representationProperty, channelDefinitions, channelGroupDefinitions, properties,
                configDescriptionURI, extensibleChannelTypeIds);
    }

    private  ThingTypeBuilder(String bindingId, String thingTypeId, String label);
    private  ThingTypeBuilder(ThingType thingType);

}