/*
* Licensed under the Apache License, Version 2.0 (the "License");
*
* You may not use this file except in compliance with the License.
*
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Contributions from 2013-2017 where performed either by US government
* employees, or under US Veterans Health Administration contracts.
*
* US Veterans Health Administration contributions by government employees
* are work of the U.S. Government and are not subject to copyright
* protection in the United States. Portions contributed by government
* employees are USGovWork (17USC ยง105). Not subject to copyright.
*
* Contribution by contractors to the US Veterans Health Administration
* during this period are contractually contributed under the
* Apache License, Version 2.0.
*
* See: https://www.usa.gov/government-works
*
* Contributions prior to 2013:
*
* Copyright (C) International Health Terminology Standards Development Organisation.
* Licensed under the Apache License, Version 2.0.
*
*/
package sh.isaac.provider.query;
/**
* Enumeration for semantics of query clauses.
*
* @author kec
*/
public enum ClauseSemantic {
/**
* Logical And connective clause.
*/
AND,
/** The and not. */
AND_NOT,
/**
* Logical OR connective clause.
*/
OR,
/**
* Logical NOT unary operator.
*/
NOT,
/**
* Logical XOR, used to determine what changed in membership between two
* versions.
*/
XOR,
/**
* Test to see if component has changed from the previous version.
*/
CHANGED_FROM_PREVIOUS_VERSION,
/**
* Substitute the concept for any components matching criterion.
*/
CONCEPT_FOR_COMPONENT,
/**
* Test to see if the concept is a logical child of another.
*/
CONCEPT_IS_CHILD_OF,
/**
* Test to see if there is a concept matching the input concept spec.
*/
CONCEPT_IS,
/**
* Test to see if the concept is a logical descendent of another.
*/
CONCEPT_IS_DESCENDENT_OF,
/**
* Test to see if the concept is a logical kind of another.
*/
CONCEPT_IS_KIND_OF,
/**
* Test to see if a component is a member of a refset.
*/
COMPONENT_IS_MEMBER_OF_REFSET,
/**
* Test to see if an active description on a concept matches a Lucene query
* criterion.
*/
DESCRIPTION_ACTIVE_LUCENE_MATCH,
/**
* Test to see if an active description on a concept matches matches a regex
* expression.
*/
DESCRIPTION_ACTIVE_REGEX_MATCH,
/**
* Test to see if any description (active or inactive) on a concept matches
* a Lucene query criterion.
*/
DESCRIPTION_LUCENE_MATCH,
/**
* Test to see if any description (active or inactive) on a concept matches
* matches a regex expression.
*/
DESCRIPTION_REGEX_MATCH,
/**
* Substitute the fully specified description for a concept.
*/
FULLY_SPECIFIED_NAME_FOR_CONCEPT,
/**
* Substitute the preferred name for a concept.
*/
PREFERRED_NAME_FOR_CONCEPT,
/**
* Test to see if a refset string member matches a Lucene query criterion.
*/
REFSET_LUCENE_MATCH,
/**
* Test to see if a relationship has a restriction that is a kind of the concept from which
* the relationship originates. A circular or tautological relationship.
*/
RELATIONSHIP_IS_CIRCULAR,
/**
* Test to see if a relationship matches a specified relationship type.
*/
REL_TYPE,
/**
* Test to see if a relationship matches a specified relationship type and
* relationship destination restriction.
*/
REL_RESTRICTION,
/**
* Test to see if a refset contains a specified concept.
*/
REFSET_CONTAINS_CONCEPT,
/**
* Test to see if a refset contains a kind of specified concept.
*/
REFSET_CONTAINS_KIND_OF_CONCEPT,
/**
* Test to see if a refset contains a member that matches the specified
* string.
*/
REFSET_CONTAINS_STRING,
}