/*******************************************************************************
* Copyright (c) 2010, 2015 Willink Transformations and others.
* 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:
* E.D.Willink - initial API and implementation
* E.D.Willink (Obeo) - Bug 416287 - tuple-valued constraints
*******************************************************************************/
package org.eclipse.ocl.pivot.internal.utilities;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.ocl.pivot.util.PivotPlugin;
import org.eclipse.ocl.pivot.utilities.ValueUtil;
import org.eclipse.ocl.pivot.values.IntegerValue;
import org.eclipse.ocl.pivot.values.UnlimitedNaturalValue;
public interface PivotConstantsInternal
{
static final @NonNull String PLUGIN_ID = PivotPlugin.PLUGIN_ID;
static final @NonNull String PIVOT_ECORE = PLUGIN_ID + "/model/Pivot.ecore";
static final @NonNull URI GEN_MODEL_URI = URI.createPlatformPluginURI("/" + PLUGIN_ID + "/model/Pivot.genmodel", true); //$NON-NLS-1$
static final @SuppressWarnings("null")@NonNull String DOCUMENTATION_ANNOTATION_SOURCE = GenModelPackage.eNS_URI;
static final @NonNull String DOCUMENTATION_ANNOTATION_KEY = "documentation";
/**
* Ecore encoding of a UML redefines
*/
static final @NonNull String DUPLICATES_ANNOTATION_SOURCE = "duplicates"; // UMLUtil.ANNOTATION__DUPLICATES
static final @NonNull String REDEFINES_ANNOTATION_SOURCE = "redefines"; // UMLUtil.ANNOTATION__REDEFINES
// static final @NonNull String SUBSETS_ANNOTATION_SOURCE = "subsets"; // UMLUtil.ANNOTATION__SUBSETS
// static final @NonNull String UNION_ANNOTATION_SOURCE = "union"; // UMLUtil.ANNOTATION__UNION
/**
* The default values for a totally blind implicit opposite are determined by what it is safe to use for a fully deduced opposite.
* <br>
* [0..*] since we have no idea how many objects may be pointing at an object.
* <br>
* !ordered since we cannot hope to reconstruct order
* <br>
* !unique since we cannot know how many times an object can reference another once by a given relationship.
*/
static final @NonNull IntegerValue DEFAULT_IMPLICIT_OPPOSITE_LOWER_VALUE = ValueUtil.ZERO_VALUE;
static final boolean DEFAULT_IMPLICIT_OPPOSITE_ORDERED = false;
static final boolean DEFAULT_IMPLICIT_OPPOSITE_UNIQUE = false;
static final @NonNull UnlimitedNaturalValue DEFAULT_IMPLICIT_OPPOSITE_UPPER_VALUE = ValueUtil.UNLIMITED_VALUE;
/**
* The default values for annotated implicit opposites are determined by what is pragmatic.
* <br>
* [0..1] which is usually correct for non-collections and half correct for collections.
* <br>
* !ordered is common
* <br>
* unique is common
*/
static final @NonNull IntegerValue ANNOTATED_IMPLICIT_OPPOSITE_LOWER_VALUE = ValueUtil.ZERO_VALUE;
static final boolean ANNOTATED_IMPLICIT_OPPOSITE_ORDERED = false;
static final boolean ANNOTATED_IMPLICIT_OPPOSITE_UNIQUE = true;
static final @NonNull UnlimitedNaturalValue ANNOTATED_IMPLICIT_OPPOSITE_UPPER_VALUE = ValueUtil.UNLIMITED_ONE_VALUE;
@Deprecated // Tuples are now used for rich invariants
static final @NonNull String MESSAGE_ANNOTATION_DETAIL_SUFFIX = "$message";
static final int MONIKER_OVERFLOW_LIMIT = 1024;
static final @NonNull String ANNOTATION_QUOTE = "'"; //$NON-NLS-1$
static final @NonNull String BINDINGS_PREFIX = "/"; //$NON-NLS-1$ // FIXME Rename
static final @NonNull String ITERATOR_SEPARATOR = ";"; //$NON-NLS-1$
static final @NonNull String ACCUMULATOR_SEPARATOR = "|"; //$NON-NLS-1$
static final @NonNull String NULL_MARKER = "<<null-element>>"; //$NON-NLS-1$
static final @NonNull String NULL_ROOT = "$null$"; //$NON-NLS-1$
static final @NonNull String OVERFLOW_MARKER = "##"; //$NON-NLS-1$
static final @NonNull String MONIKER_PART_SEPARATOR = "@"; //$NON-NLS-1$
static final @NonNull String MONIKER_SCOPE_SEPARATOR = "!"; //"::"; //$NON-NLS-1$
static final @NonNull String MONIKER_OPERATOR_SEPARATOR = "~"; //$NON-NLS-1$
static final @NonNull String PARAMETER_PREFIX = "("; //$NON-NLS-1$
static final @NonNull String PARAMETER_SEPARATOR = ","; //$NON-NLS-1$
static final @NonNull String PARAMETER_SUFFIX = ")"; //$NON-NLS-1$
static final @NonNull String PRECEDENCE_PREFIX = "~"; //$NON-NLS-1$
static final @NonNull String TEMPLATE_BINDING_PREFIX = "["; //$NON-NLS-1$
static final @NonNull String TEMPLATE_BINDING_SEPARATOR = ","; //$NON-NLS-1$
static final @NonNull String TEMPLATE_BINDING_SUFFIX = "]"; //$NON-NLS-1$
static final @NonNull String TEMPLATE_PARAMETER_PREFIX = "?"; //$NON-NLS-1$
static final @NonNull String TEMPLATE_SIGNATURE_PREFIX = "{"; //$NON-NLS-1$
static final @NonNull String TEMPLATE_SIGNATURE_SEPARATOR = ","; //$NON-NLS-1$
static final @NonNull String TEMPLATE_SIGNATURE_SUFFIX = "}"; //$NON-NLS-1$
static final @NonNull String TUPLE_SIGNATURE_PREFIX = "{"; //$NON-NLS-1$
static final @NonNull String TUPLE_SIGNATURE_PART_SEPARATOR = ","; //$NON-NLS-1$
static final @NonNull String TUPLE_SIGNATURE_TYPE_SEPARATOR = ":"; //$NON-NLS-1$
static final @NonNull String TUPLE_SIGNATURE_SUFFIX = "}"; //$NON-NLS-1$
static final @NonNull String UNRESOLVED_PROXY_MARKER = "<<unresolved-proxy>>"; //$NON-NLS-1$
static final @NonNull String WILDCARD_INDICATOR = "?"; //$NON-NLS-1$
static final @NonNull String MONIKER_IF_EXP = "if";
static final @NonNull String MONIKER_INVALID_LITERAL_EXP = "invalid";
static final @NonNull String MONIKER_LET_EXP = "let";
static final @NonNull String MONIKER_NULL_LITERAL_EXP = "null";
static final @NonNull String MONIKER_ROOT = "ROOT";
static final @NonNull String MONIKER_ROOT_EXP = "root";
static final @NonNull String MONIKER_STRING_LITERAL_EXP = "string";
static final @NonNull String MONIKER_TUPLE_LITERAL_EXP = "tuple";
static final @NonNull String MONIKER_UNLIMITED_NATURAL_LITERAL_EXP = "*";
static final @NonNull String MONIKER_EXP_CHILD_PREFIX = "x";
static final @NonNull String LIBRARY_MONIKER_PREFIX = "$";
static final @NonNull String OLD_ORPHANAGE_URI = "http://www.eclipse.org/ocl/3.1.0/orphanage";
static final @NonNull String UNKNOWN_TYPE_TEXT = "unknown-type";
static final @NonNull String WILDCARD_NAME = "wildcard";
static final @NonNull String BODY_EXPRESSION_ROLE = "body";
static final @NonNull String DEFAULT_EXPRESSION_ROLE = "initializer";
static final @NonNull String OWNED_CONSTRAINT_ROLE = "constraint";
static final @NonNull String POSTCONDITION_ROLE = "postcondition";
static final @NonNull String PRECONDITION_ROLE = "precondition";
static final @NonNull String UNKNOWN_ROLE = "<<unknown>>";
public static @NonNull Map<EStructuralFeature,String> roleNames = new HashMap<EStructuralFeature,String>();
}