/*
 * Java
 *
 * Copyright 2020-2023 MicroEJ Corp. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be found with this software.
 */
package ej.bluetooth;

/**
 * The <code>BluetoothServiceDefinition</code> class represents the structure of a GATT service.
 * <p>
 * Service definitions may be created by using the {@link #BluetoothServiceDefinition(BluetoothUuid) class constructor}.
 * <p>
 * This class provides methods to add characteristics and descriptors to the service definition.
 */
public class BluetoothServiceDefinition {

    /**
     * Creates a service definition.
     *
     * @param serviceUuid
     *            the UUID of the service.
     */
    public BluetoothServiceDefinition(BluetoothUuid serviceUuid) {
        throw new RuntimeException();
    }

    /**
     * Adds a characteristic to this service definition.
     *
     * @param uuid
     *            the UUID of the characteristic.
     * @param properties
     *            the properties of the characteristic (see {@link BluetoothProperties}.
     * @param permissions
     *            the permissions of the characteristic (see {@link BluetoothPermissions}.
     */
    public void addCharacteristic(BluetoothUuid uuid, int properties, int permissions) {
        throw new RuntimeException();
    }

    /**
     * Adds a descriptor to this service definition. The descriptor is attached to the last
     * {@link #addCharacteristic(BluetoothUuid, int, int) characteristic added}.
     *
     * @param uuid
     *            the UUID of the descriptor.
     * @param permissions
     *            the permissions of the descriptor (see {@link BluetoothPermissions}.
     * @throws IllegalStateException
     *             if no characteristic has been added before calling this method.
     */
    public void addDescriptor(BluetoothUuid uuid, int permissions) {
        throw new RuntimeException();
    }
}
