/**
*
* Copyright (c) 2010-2015, Andras Szabolcs Nagy, Abel Hegedus, Akos Horvath, Zoltan Ujhelyi and Daniel Varro
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
* Contributors:
* Andras Szabolcs Nagy - initial API and implementation
*
*/
package org.eclipse.viatra.dse.examples.bpmn.patterns;
import org.eclipse.viatra.dse.examples.bpmn.patterns.AbsenceOfResourceInstancesMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.AllocateTaskToVariantMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.CreateResourceMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.EnoughResourceInstancesMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.EveryTaskHasVariantMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.InstanceOfVariantMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeParallelMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeSequentialMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.TaskOrderMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.UnassignedTaskMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.UnrequiredResourceInstanceMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.VariantAllocatedToTaskMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.AbsenceOfResourceInstancesQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.AllocateTaskToVariantQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.CreateResourceQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.EnoughResourceInstancesQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.EveryTaskHasVariantQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.InstanceOfVariantQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.MakeParallelQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.MakeSequentialQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.TaskOrderQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.UnassignedTaskQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.UnrequiredResourceInstanceQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.VariantAllocatedToTaskQuerySpecification;
import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
import org.eclipse.viatra.query.runtime.exception.ViatraQueryException;
/**
* A pattern group formed of all patterns defined in patterns.vql.
*
* <p>Use the static instance as any {@link org.eclipse.viatra.query.runtime.api.IPatternGroup}, to conveniently prepare
* a VIATRA Query engine for matching all patterns originally defined in file patterns.vql,
* in order to achieve better performance than one-by-one on-demand matcher initialization.
*
* <p> From package org.eclipse.viatra.dse.examples.bpmn.patterns, the group contains the definition of the following patterns: <ul>
* <li>createResource</li>
* <li>variantAllocatedToTask</li>
* <li>allocateTaskToVariant</li>
* <li>inFlow</li>
* <li>outFlow</li>
* <li>makeParallel</li>
* <li>parallelGatewayOutFlow</li>
* <li>makeSequential</li>
* <li>unassignedTask</li>
* <li>instanceOfVariant</li>
* <li>absenceOfResourceInstances</li>
* <li>unrequiredResourceInstance</li>
* <li>taskNeedsVariant</li>
* <li>enoughResourceInstances</li>
* <li>everyTaskHasVariant</li>
* <li>taskOrder</li>
* </ul>
*
* @see IPatternGroup
*
*/
@SuppressWarnings("all")
public final class Patterns extends BaseGeneratedPatternGroup {
/**
* Access the pattern group.
*
* @return the singleton instance of the group
* @throws ViatraQueryException if there was an error loading the generated code of pattern specifications
*
*/
public static Patterns instance() throws ViatraQueryException {
if (INSTANCE == null) {
INSTANCE = new Patterns();
}
return INSTANCE;
}
private static Patterns INSTANCE;
private Patterns() throws ViatraQueryException {
querySpecifications.add(CreateResourceQuerySpecification.instance());
querySpecifications.add(VariantAllocatedToTaskQuerySpecification.instance());
querySpecifications.add(AllocateTaskToVariantQuerySpecification.instance());
querySpecifications.add(MakeParallelQuerySpecification.instance());
querySpecifications.add(MakeSequentialQuerySpecification.instance());
querySpecifications.add(UnassignedTaskQuerySpecification.instance());
querySpecifications.add(InstanceOfVariantQuerySpecification.instance());
querySpecifications.add(AbsenceOfResourceInstancesQuerySpecification.instance());
querySpecifications.add(UnrequiredResourceInstanceQuerySpecification.instance());
querySpecifications.add(EnoughResourceInstancesQuerySpecification.instance());
querySpecifications.add(EveryTaskHasVariantQuerySpecification.instance());
querySpecifications.add(TaskOrderQuerySpecification.instance());
}
public CreateResourceQuerySpecification getCreateResource() throws ViatraQueryException {
return CreateResourceQuerySpecification.instance();
}
public CreateResourceMatcher getCreateResource(final ViatraQueryEngine engine) throws ViatraQueryException {
return CreateResourceMatcher.on(engine);
}
public VariantAllocatedToTaskQuerySpecification getVariantAllocatedToTask() throws ViatraQueryException {
return VariantAllocatedToTaskQuerySpecification.instance();
}
public VariantAllocatedToTaskMatcher getVariantAllocatedToTask(final ViatraQueryEngine engine) throws ViatraQueryException {
return VariantAllocatedToTaskMatcher.on(engine);
}
public AllocateTaskToVariantQuerySpecification getAllocateTaskToVariant() throws ViatraQueryException {
return AllocateTaskToVariantQuerySpecification.instance();
}
public AllocateTaskToVariantMatcher getAllocateTaskToVariant(final ViatraQueryEngine engine) throws ViatraQueryException {
return AllocateTaskToVariantMatcher.on(engine);
}
public MakeParallelQuerySpecification getMakeParallel() throws ViatraQueryException {
return MakeParallelQuerySpecification.instance();
}
public MakeParallelMatcher getMakeParallel(final ViatraQueryEngine engine) throws ViatraQueryException {
return MakeParallelMatcher.on(engine);
}
public MakeSequentialQuerySpecification getMakeSequential() throws ViatraQueryException {
return MakeSequentialQuerySpecification.instance();
}
public MakeSequentialMatcher getMakeSequential(final ViatraQueryEngine engine) throws ViatraQueryException {
return MakeSequentialMatcher.on(engine);
}
public UnassignedTaskQuerySpecification getUnassignedTask() throws ViatraQueryException {
return UnassignedTaskQuerySpecification.instance();
}
public UnassignedTaskMatcher getUnassignedTask(final ViatraQueryEngine engine) throws ViatraQueryException {
return UnassignedTaskMatcher.on(engine);
}
public InstanceOfVariantQuerySpecification getInstanceOfVariant() throws ViatraQueryException {
return InstanceOfVariantQuerySpecification.instance();
}
public InstanceOfVariantMatcher getInstanceOfVariant(final ViatraQueryEngine engine) throws ViatraQueryException {
return InstanceOfVariantMatcher.on(engine);
}
public AbsenceOfResourceInstancesQuerySpecification getAbsenceOfResourceInstances() throws ViatraQueryException {
return AbsenceOfResourceInstancesQuerySpecification.instance();
}
public AbsenceOfResourceInstancesMatcher getAbsenceOfResourceInstances(final ViatraQueryEngine engine) throws ViatraQueryException {
return AbsenceOfResourceInstancesMatcher.on(engine);
}
public UnrequiredResourceInstanceQuerySpecification getUnrequiredResourceInstance() throws ViatraQueryException {
return UnrequiredResourceInstanceQuerySpecification.instance();
}
public UnrequiredResourceInstanceMatcher getUnrequiredResourceInstance(final ViatraQueryEngine engine) throws ViatraQueryException {
return UnrequiredResourceInstanceMatcher.on(engine);
}
public EnoughResourceInstancesQuerySpecification getEnoughResourceInstances() throws ViatraQueryException {
return EnoughResourceInstancesQuerySpecification.instance();
}
public EnoughResourceInstancesMatcher getEnoughResourceInstances(final ViatraQueryEngine engine) throws ViatraQueryException {
return EnoughResourceInstancesMatcher.on(engine);
}
public EveryTaskHasVariantQuerySpecification getEveryTaskHasVariant() throws ViatraQueryException {
return EveryTaskHasVariantQuerySpecification.instance();
}
public EveryTaskHasVariantMatcher getEveryTaskHasVariant(final ViatraQueryEngine engine) throws ViatraQueryException {
return EveryTaskHasVariantMatcher.on(engine);
}
public TaskOrderQuerySpecification getTaskOrder() throws ViatraQueryException {
return TaskOrderQuerySpecification.instance();
}
public TaskOrderMatcher getTaskOrder(final ViatraQueryEngine engine) throws ViatraQueryException {
return TaskOrderMatcher.on(engine);
}
}