jfxtras.icalendarfx.VElement Maven / Gradle / Ivy
package jfxtras.icalendarfx;
import java.util.List;
/**
* Interface for all calendar elements.
*
* @author David Bal
*
*/
public interface VElement
{
/**
* Returns the name of the component as it would appear in the iCalendar content line.
* Examples:
*
* - VEVENT
*
- SUMMARY
*
- LANGUAGE
*
*
* @return - the component name
*/
String name();
/** Parse content line into calendar element.
* If element contains children {@link #parseContent(String)} is invoked recursively to parse child elements also
*
* @param content calendar content string to parse
* @return log of information and error messages
* @throws IllegalArgumentException if calendar content is not valid, such as null
*/
// @Deprecated
// List parseContent(String content) throws IllegalArgumentException;
/**
* Checks element to determine if necessary properties are set.
* {@link #isValid()} is invoked recursively to test child elements if element is a parent
*
* @return - true if component is valid, false otherwise
*/
default boolean isValid() { return errors().isEmpty(); }
/**
* Produces a list of error messages indicating problems with calendar element
* {@link #errors()} is invoked recursively to return errors of child elements in addition to errors in parent
*
* @return - list of error messages
*/
List errors();
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy