// Path: src/org/dmfs/dav/FilterBase.java
// public abstract class FilterBase
// {
// 	/**
// 	 * Returns the {@link ElementDescriptor} of this filter. Filters can use this to serialize child elements (which are also filters) in a generic manner.
// 	 * 
// 	 * @return An {@link ElementDescriptor}.
// 	 */
// 	public abstract ElementDescriptor<? extends FilterBase> getElementDescriptor();
// }


import java.io.IOException;
import org.dmfs.dav.FilterBase;
import org.dmfs.xmlobjects.ElementDescriptor;
import org.dmfs.xmlobjects.QualifiedName;
import org.dmfs.xmlobjects.builder.AbstractObjectBuilder;
import org.dmfs.xmlobjects.serializer.SerializerContext;
import org.dmfs.xmlobjects.serializer.SerializerException;
import org.dmfs.xmlobjects.serializer.XmlObjectSerializer.IXmlAttributeWriter;
import org.dmfs.xmlobjects.serializer.XmlObjectSerializer.IXmlChildWriter;
	{
		this.name = name;
		this.isNotDefined = false;
		this.timeRange = timeRange;
		this.textMatch = null;
		this.filters = filters;
	}


	/**
	 * Creates a filter that matches a property by a specific text value and optionally a list of {@link ParamFilter}s.
	 * 
	 * @param name
	 *            The name of the property to match.
	 * @param textMatch
	 *            The text filter.
	 * @param filters
	 *            Optional list of {@link ParamFilter}s.
	 */
	public PropFilter(String name, TextMatch textMatch, ParamFilter... filters)
	{
		this.name = name;
		this.isNotDefined = false;
		this.timeRange = null;
		this.textMatch = textMatch;
		this.filters = filters;
	}


	@Override
// Path: src/org/dmfs/dav/FilterBase.java
// public abstract class FilterBase
// {
// 	/**
// 	 * Returns the {@link ElementDescriptor} of this filter. Filters can use this to serialize child elements (which are also filters) in a generic manner.
// 	 * 
// 	 * @return An {@link ElementDescriptor}.
// 	 */
// 	public abstract ElementDescriptor<? extends FilterBase> getElementDescriptor();
// }


// Path: src/org/dmfs/dav/rfc4791/filter/PropFilter.java
import java.io.IOException;
import org.dmfs.dav.FilterBase;
import org.dmfs.xmlobjects.ElementDescriptor;
import org.dmfs.xmlobjects.QualifiedName;
import org.dmfs.xmlobjects.builder.AbstractObjectBuilder;
import org.dmfs.xmlobjects.serializer.SerializerContext;
import org.dmfs.xmlobjects.serializer.SerializerException;
import org.dmfs.xmlobjects.serializer.XmlObjectSerializer.IXmlAttributeWriter;
import org.dmfs.xmlobjects.serializer.XmlObjectSerializer.IXmlChildWriter;

	{
		this.name = name;
		this.isNotDefined = false;
		this.timeRange = timeRange;
		this.textMatch = null;
		this.filters = filters;
	}


	/**
	 * Creates a filter that matches a property by a specific text value and optionally a list of {@link ParamFilter}s.
	 * 
	 * @param name
	 *            The name of the property to match.
	 * @param textMatch
	 *            The text filter.
	 * @param filters
	 *            Optional list of {@link ParamFilter}s.
	 */
	public PropFilter(String name, TextMatch textMatch, ParamFilter... filters)
	{
		this.name = name;
		this.isNotDefined = false;
		this.timeRange = null;
		this.textMatch = textMatch;
		this.filters = filters;
	}


	@Override
	public ElementDescriptor<? extends FilterBase> getElementDescriptor()