All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.cassite.xboxrelay.base.XBoxEvent Maven / Gradle / Ivy

The newest version!
package net.cassite.xboxrelay.base;

import vjson.JSON;
import vjson.deserializer.rule.ObjectRule;
import vjson.deserializer.rule.Rule;
import vjson.deserializer.rule.StringRule;
import vjson.util.ObjectBuilder;

public class XBoxEvent extends Message {
    public XBoxKey key;
    public TriggerLevel level;

    public static final Rule rule = new ObjectRule<>(XBoxEvent::new)
        .put("key", (o, it) -> o.key = XBoxKey.valueOf(it), StringRule.get())
        .put("level", (o, it) -> o.level = TriggerLevel.valueOf(it), StringRule.get());

    public XBoxEvent() {
    }

    public XBoxEvent(XBoxKey key, TriggerLevel level) {
        this.key = key;
        this.level = level;
    }

    @Override
    public JSON.Object toJson() {
        var ob = new ObjectBuilder();
        ob.type("event");
        ob.put("key", key.name());
        ob.put("level", level.name());
        return ob.build();
    }

    @Override
    public String toString() {
        return "XBoxEvent{" +
               "key=" + key +
               ", level=" + level +
               '}';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy