@Override
    public boolean equals(Object o) {

        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        Annotation that = (Annotation) o;

        if (name != null ? !name.equals(that.name) : that.name != null) {
            return false;
        }
        if (elements != null ? !elements.equals(that.elements) : that.elements != null) {
            return false;
        }
        return annotations != null ? annotations.equals(that.annotations) : that.annotations == null;

    }
Annotation for siddhi functions and extensions
modules/siddhi-query-api/src/main/java/io/siddhi/query/api/annotation/Annotation.java