/* Based on Controller Service 14.12 Interface Definition */ package org.allseen.LSF.ControllerService; import org.alljoyn.bus.BusException; import org.alljoyn.bus.Variant; import org.alljoyn.bus.annotation.BusInterface; import org.alljoyn.bus.annotation.BusMethod; import org.alljoyn.bus.annotation.BusProperty; import org.alljoyn.bus.annotation.BusSignal; import org.alljoyn.bus.annotation.Position; import java.util.Map; /* * The BusInterface annotation is used to tell the code this interface is an AllJoyn * interface. * * The 'name' value is used to specify by which name this interface will be known. If the name is * not given the fully qualified name of the Java interface is be used. In most instances its best * to assign an interface name since it helps promote code reuse. */ @BusInterface(name = "org.allseen.LSF.ControllerService.LampGroup") public interface LampGroup { class BaseReturnValue { @Position(0) public int responseCode = 0; @Position(1) public String lampGroupID; } class GetAllLampGroupIDs_return_value_uas { @Position(0) public int responseCode = 0; @Position(1) public String[] lampGroupIDs; } class GetLampGroupName_return_value_usss extends BaseReturnValue { @Position(2) public String language; @Position(3) public String lampGroupName; } class SetLampGroupName_return_value_uss { @Position(0) public int responseCode = 0; @Position(1) public String lampID; @Position(2) public String language; } class CreateLampGroup_return_value_us extends BaseReturnValue { } class UpdateLampGroup_return_value_us extends BaseReturnValue { } class DeleteLampGroup_return_value_us extends BaseReturnValue { } class GetLampGroup_return_value_usasas extends BaseReturnValue { @Position(2) public String[] lampID; @Position(3) public String[] lampGroupIDs; } class TransitionLampGroupState_return_value_us extends BaseReturnValue { } class PulseLampGroupWithState_return_value_us extends BaseReturnValue { } class PulseLampGroupWithPreset_return_value_us extends BaseReturnValue { } class TransitionLampGroupStateToPreset_return_value_us extends BaseReturnValue { } class TransitionLampGroupStateField_return_value_uss extends BaseReturnValue { @Position(2) public String lampGroupStateFieldName; } class ResetLampGroupState_return_value_us extends BaseReturnValue { } class ResetLampGroupStateField_return_value_uss extends BaseReturnValue { @Position(2) public String lampGroupStateFieldName; } /* * The BusMethod annotation signifies this function should be used as part of the AllJoyn * interface. The runtime is smart enough to figure out what the input and output of the * method is based on the input/output arguments of the method. * * All methods that use the BusMethod annotation can throw a BusException and should indicate * this fact. */ @BusMethod(name = "GetAllLampGroupIDs", replySignature = "uas") GetAllLampGroupIDs_return_value_uas getAllLampGroupIDs() throws BusException; @BusMethod(name = "GetLampGroupName", signature = "ss", replySignature = "usss") GetLampGroupName_return_value_usss getLampGroupName(String lampGroupID, String language) throws BusException; @BusMethod(name = "SetLampGroupName", signature = "sss", replySignature = "uss") SetLampGroupName_return_value_uss setLampGroupName(String lampGroupID, String lampName, String language) throws BusException; @BusMethod(name = "CreateLampGroup", signature = "asasss", replySignature = "us") CreateLampGroup_return_value_us createLampGroup(String[] lampIDs, String[] lampGroupIDs, String lampGroupName, String language) throws BusException; @BusMethod(name = "UpdateLampGroup", signature = "sasas", replySignature = "us") UpdateLampGroup_return_value_us updateLampGroup(String lampGroupID, String[] lampIDs, String[] lampGroupIDs) throws BusException; @BusMethod(name = "DeleteLampGroup", signature = "s", replySignature = "us") DeleteLampGroup_return_value_us deleteLampGroup(String lampGroupID) throws BusException; @BusMethod(name = "GetLampGroup", signature = "s", replySignature = "usasas") GetLampGroup_return_value_usasas getLampGroup(String lampGroupID) throws BusException; @BusMethod(name = "TransitionLampGroupState", signature = "sa{sv}u", replySignature = "us") TransitionLampGroupState_return_value_us transitionLampGroupState(String lampGroupID, Map<String, Variant> lampState, int transitionPeriod) throws BusException; @BusMethod(name = "PulseLampGroupWithState", signature = "sa{sv}a{sv}uuu", replySignature = "us") PulseLampGroupWithState_return_value_us pulseLampGroupWithState(String lampGroupID, Map<String, Variant> fromLampState, Map<String, Variant> toLampState, int period, int duration, int numPulses) throws BusException; @BusMethod(name = "PulseLampGroupWithPreset", signature = "suuuuu", replySignature = "us") PulseLampGroupWithPreset_return_value_us pulseLampGroupWithPreset(String lampGroupID, int fromPresetID, int toPresetID, int period, int duration, int numPulses) throws BusException; @BusMethod(name = "TransitionLampGroupStateToPreset", signature = "suu", replySignature = "us") TransitionLampGroupStateToPreset_return_value_us transitionLampGroupStateToPreset(String lampGroupID, int presetID, int transitionPeriod) throws BusException; @BusMethod(name = "TransitionLampGroupStateField", signature = "sssu", replySignature = "uss") TransitionLampGroupStateField_return_value_uss transitionLampGroupStateField(String lampGroupID, String lampGroupStateFieldName, String lampGroupStateFieldValue, int transitionPeriod) throws BusException; @BusMethod(name = "ResetLampGroupState", signature = "s", replySignature = "us") ResetLampGroupState_return_value_us resetLampGroupState(String lampGroupID) throws BusException; @BusMethod(name = "ResetLampGroupStateField", signature = "ss", replySignature = "uss") ResetLampGroupStateField_return_value_uss resetLampGroupStateField(String lampGroupID, String lampGroupStateFieldName) throws BusException; /* * The BusProperty annotation signifies this property should be used as part of the * AllJoyn interface. The runtime is smart enough to figure out what the input and output of * the property is based on the input/output arguments of the property. * * All properties that use the BusProperty annotation can throw a BusException and should * indicate this fact. */ @BusProperty(name = "Version", signature = "u") int getVersion() throws BusException; /* * The BusSignal annotation signifies this signal should be used as part of the * AllJoyn interface. * * All signals that use the BusSignal annotation can throw a BusException and should * indicate this fact. */ @BusSignal(name = "LampGroupsNameChanged", replySignature = "as", sessionless = true) void lampGroupsNameChanged(String lampGroupsIDs) throws BusException; @BusSignal(name = "LampGroupsCreated", replySignature = "as", sessionless = true) void lampGroupsCreated(String lampGroupsIDs) throws BusException; @BusSignal(name = "LampGroupsUpdated", replySignature = "as", sessionless = true) void lampGroupsUpdated(String lampGroupsIDs) throws BusException; @BusSignal(name = "LampGroupsDeleted", replySignature = "as", sessionless = true) void lampGroupsDeleted(String[] lampGroupsIDs) throws BusException; }