/*
* Copyright (c) 2011, Municipiality of Vienna, Austria
*
* Licensed under the EUPL, Version 1.1 or � as soon they
* will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the
* Licence.
*
* For convenience a plain text copy of the English version
* of the Licence can be found in the file LICENCE.txt in
* the top-level directory of this software distribution.
*
* You may obtain a copy of the Licence in any of 22 European
* Languages at:
*
* http://www.osor.eu/eupl
*
* Unless required by applicable law or agreed to in
* writing, software distributed under the Licence is
* distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the Licence for the specific language governing
* permissions and limitations under the Licence.
*/
package org.azzyzt.jee.runtime.util;
import org.azzyzt.jee.runtime.dto.query.QuerySpec;
import org.azzyzt.jee.runtime.exception.QuerySyntaxException;
/**
* Interface implemented by parsers for XML representations of query specifications.
* Java is a single inheritance language, and our parsers already inherit from
* <code>org.xml.sax.helpers.DefaultHandler</code>. Thus, to hide the fact that we
* could use different parsers for different XML formats, we let all parsers implement
* this interface.
*
* @see QuerySpec
* @see AttributedTags2QuerySpec
*
*/
public interface Xml2QuerySpec {
/**
* @param xml an XML representation of a <code>QuerySpec</code>
* @return a <code>QuerySpec</code>
* @throws QuerySyntaxException
*/
public abstract QuerySpec fromXML(String xml) throws QuerySyntaxException;
}