// Path: src/main/java/de/ids_mannheim/korap/query/serialize/MapBuilder.java
// public class MapBuilder {
// 
//     /** Builds a query map containing JSON-LD serialization parts of the given KoralObject.
//      * @param o
//      * @return a map
//      */
//     public static Map<String, Object> buildQueryMap(KoralObject o) {
//         if (o != null) {
//             if (o instanceof KoralToken) {
//                 KoralToken token = (KoralToken) o;
//                 return token.buildMap();
//             }
//             else if (o instanceof KoralGroup) {
//                 KoralGroup group = (KoralGroup) o;
//                 return group.buildMap();
//             }
//             if (o instanceof KoralTerm) {
//                 KoralTerm term = (KoralTerm) o;
//                 return term.buildMap();
//             }
//             else if (o instanceof KoralTermGroup) {
//                 KoralTermGroup termGroup = (KoralTermGroup) o;
//                 return termGroup.buildMap();
//             }
//             else if (o instanceof KoralSpan){
//             	KoralSpan span = (KoralSpan) o;
//             	return span.buildMap();
//             }
//         }
//         return null;
//     }
// }
// 
// Path: src/main/java/de/ids_mannheim/korap/query/serialize/util/KoralException.java
// public class KoralException extends Exception{
// 	
// 	private static final long serialVersionUID = 5463242042200109417L;
// 	private int statusCode;
// 	
// 	public KoralException(int code, String message) {
// 		super(message);
// 		this.statusCode = code;
// 	}
// 	
// 	public KoralException(int code, String message, Throwable cause) {
//         super(message, cause);
//         this.statusCode = code;
//     }
// 
// 	public int getStatusCode() {
// 		return statusCode;
// 	}
// 
// 	public void setStatusCode(int statusCode) {
// 		this.statusCode = statusCode;
// 	}
// 
// 	
// }


import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import de.ids_mannheim.korap.query.serialize.MapBuilder;
import de.ids_mannheim.korap.query.serialize.util.KoralException;
package de.ids_mannheim.korap.query.object;



/** Definition of koral:termGroup in KoralQuery.
 * 
 * @author margaretha
 * 
 */
public class KoralTermGroup implements KoralObject {

    private static final KoralType type = KoralType.TERMGROUP;

    private String relation;
    private List<KoralObject> operands = new ArrayList<KoralObject>();

    public KoralTermGroup (KoralTermGroupRelation relation, List<KoralObject> operands)
// Path: src/main/java/de/ids_mannheim/korap/query/serialize/MapBuilder.java
// public class MapBuilder {
// 
//     /** Builds a query map containing JSON-LD serialization parts of the given KoralObject.
//      * @param o
//      * @return a map
//      */
//     public static Map<String, Object> buildQueryMap(KoralObject o) {
//         if (o != null) {
//             if (o instanceof KoralToken) {
//                 KoralToken token = (KoralToken) o;
//                 return token.buildMap();
//             }
//             else if (o instanceof KoralGroup) {
//                 KoralGroup group = (KoralGroup) o;
//                 return group.buildMap();
//             }
//             if (o instanceof KoralTerm) {
//                 KoralTerm term = (KoralTerm) o;
//                 return term.buildMap();
//             }
//             else if (o instanceof KoralTermGroup) {
//                 KoralTermGroup termGroup = (KoralTermGroup) o;
//                 return termGroup.buildMap();
//             }
//             else if (o instanceof KoralSpan){
//             	KoralSpan span = (KoralSpan) o;
//             	return span.buildMap();
//             }
//         }
//         return null;
//     }
// }
// 
// Path: src/main/java/de/ids_mannheim/korap/query/serialize/util/KoralException.java
// public class KoralException extends Exception{
// 	
// 	private static final long serialVersionUID = 5463242042200109417L;
// 	private int statusCode;
// 	
// 	public KoralException(int code, String message) {
// 		super(message);
// 		this.statusCode = code;
// 	}
// 	
// 	public KoralException(int code, String message, Throwable cause) {
//         super(message, cause);
//         this.statusCode = code;
//     }
// 
// 	public int getStatusCode() {
// 		return statusCode;
// 	}
// 
// 	public void setStatusCode(int statusCode) {
// 		this.statusCode = statusCode;
// 	}
// 
// 	
// }


// Path: src/main/java/de/ids_mannheim/korap/query/object/KoralTermGroup.java
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import de.ids_mannheim.korap.query.serialize.MapBuilder;
import de.ids_mannheim.korap.query.serialize.util.KoralException;

package de.ids_mannheim.korap.query.object;



/** Definition of koral:termGroup in KoralQuery.
 * 
 * @author margaretha
 * 
 */
public class KoralTermGroup implements KoralObject {

    private static final KoralType type = KoralType.TERMGROUP;

    private String relation;
    private List<KoralObject> operands = new ArrayList<KoralObject>();

    public KoralTermGroup (KoralTermGroupRelation relation, List<KoralObject> operands)
            throws KoralException {