Annotation Interface DBusProperty


@Target(TYPE) @Retention(RUNTIME) @Repeatable(DBusProperties.class) public @interface DBusProperty
Appends information about properties in the interface. The annotated properties are added to the introspection data. In case of complex type of the property please use TypeRef.

Usage:

@DBusInterfaceName("com.example.Bar")
@DBusProperty(name = "Name", type = String.class)
@DBusProperty(name = "ListOfVariables", type = List.class, access = Access.READ)
@DBusProperty(name = "MapOfStringList", type = ComplexTypeWithMapAndList.class, access = Access.READ)
public interface Bar extends DBusInterface {

  // TypeRef allows to provide detailed information about type
  interface ComplexTypeWithMapAndList extends TypeRef<Map<String, List<String>>> {
  }
}

As an alternative to this annotation, you might consider using DBusBoundProperty. This allows you to achieve the same results with less code.

.
See Also:
  • Element Details

    • name

      String name
      Property name
      Returns:
      name
    • type

      Class<?> type
      type of the property, in case of complex types please create custom interface that extends TypeRef.
      Returns:
      type
      Default:
      org.freedesktop.dbus.types.Variant.class
    • access

      Specifies the access type of this property.
      Returns:
      access type, never null
      Default:
      READ_WRITE
    • emitChangeSignal

      Property which defines if a signal is emitted when the annotated property was changed.
      Returns:
      emitChangeSignal, never null
      Default:
      TRUE