public static Optional<Event> createEvent(String type, Identification source, List<String> descriptors) {
    """
	Creates a new Event Object
	@param type the Type of the Event, try to use the predefined Event types
	@param source the source of the Event, most likely a this reference.
	@param descriptors the descriptors
	@return an Optional, that may be empty if type is null or empty or source is null
    """
        try {
            return Optional.of(new Event(type, source, descriptors));
        } catch (IllegalArgumentException e) {
            return Optional.empty();
        }
    }
public static Optional<Event> createEvent(String type, Identification source, List<String> descriptors) {
        try {
            return Optional.of(new Event(type, source, descriptors));
        } catch (IllegalArgumentException e) {
            return Optional.empty();
        }
    }
public static Optional < Event > createEvent ( String type , Identification source , List < String > descriptors ) { try { return Optional . of ( new Event ( type , source , descriptors ) ) ; } catch ( IllegalArgumentException e ) { return Optional . empty ( ) ; } }
Creates a new Event Object
@param type the Type of the Event, try to use the predefined Event types
@param source the source of the Event, most likely a this reference.
@param descriptors the descriptors
@return an Optional, that may be empty if type is null or empty or source is null
Creates a new Event Object