Eclipse OCL (Object Constraint Language)

Eclipse OCL is an implementation of the Object Constraint Language (OCL) OMG standard for EMF-based models.

Classic OCL Ecore/UML

The Classic core OCL component provides the following capabilities to support OCL integration:

  • Defines APIs for parsing and evaluating OCL constraints and queries on Ecore or UML models.
  • Defines Ecore and UML implementations of the OCL abstract syntax model, including support for serialization of parsed OCL expressions.
  • Provides a Visitor API for analyzing/transforming the AST model of OCL expressions.
  • Provides an extensibility API for clients to customize the parsing and evaluation environments used by the parser.

The accompanying examples provide:

  • A Console for interactive evaluation of OCL expression on models.
  • (Indigo) An Impact Analyzer to support analysis and optimised re-evaluation.

The core OCL parser is generated by the LALR Parser Generator, a SourceForge project, licensed under the EPL v1.0. Download it from the LPG home page. This site includes the generator executable required to regenerate the parser code.

Unified Pivot OCL

The Pivot OCL prototypes resolution of many oroblems in the OMG 2.4 specification.

  • An Xtext editor for OCL expressions (used by Papyrus and the Console).
  • An Xtext editor for OCL documents complemementing meta-models (Complete OCL).
  • An Xtext editor for OCLinEcore - OCL embedded in Ecore.
  • An Xtext editor for the OCL 'Standard' Library model.
  • A UML-aligned Unified or Pivot OCL meta-model supporting templates and reflection.
  • An OCL evaluator exploiting the extensible OCL library model.

The accompanying examples provide:

  • An Xtext Console for interactive evaluation of OCL expression on models.
  • Extensible direct OCL to Java code generation
  • A Validity View for detailed Constraint/ModelElement validity visualization
  • Extensible OCL debugger
State
Mature
Industry Collaborations
Latest Releases

From 2024-09-11 to 2008-06-27

Name Date Review
2024-09 (6.22.0) 2024-09-11
2024-06 (6.21.0) 2024-06-12
2024-03 (6.20.0) 2024-03-13
2023-12 (6.19.0) 2023-12-06
2022-12 (6.18.0) 2022-12-11
2022-03 (6.17.1) 2022-03-16
2021-12 (6.17.0) 2021-12-08
2021-09 (6.16.0) 2021-09-15
2021-06 (6.15.0) 2021-06-16
2021-03 (6.14.0) 2021-03-13
2020-12 (6.13.0) 2020-12-16
2020-06 (6.12.0) 2020-06-18
2020-03 (6.11.0) 2020-03-18
2019-12a (6.10.1) 2020-02-19
2019-12 (6.10.0) 2019-12-18
2019-09 (6.9.0) 2019-09-18
2019-06 (6.8.0) 2019-06-19
2019-03 (6.7.0) 2019-03-20
2018-12 (6.6.0) 2018-12-19
2018-09 (6.5.0) 2018-09-19
6.4.0 Photon 2018-06-27
6.3.0 Oxygen 2017-06-28
6.2.0 Neon++ 2016-07-24
6.1.0 Neon 2016-06-22
6.0.0 Mars 2015-06-24
5.0.0 2014-06-25
4.1.0 2013-06-26
4.0.0 2012-06-27
3.1.0 2011-06-22
3.0.0 2010-06-23
1.3.0 2009-06-23
1.2.0 2008-06-27
Licenses
Eclipse Public License 2.0

The content of this open source project is received and distributed under the license(s) listed above. Some source code and binaries may be distributed under different terms. Specific license information is provided in file headers and in NOTICE files distributed with the project's binaries.

Active Member Companies

Member companies supporting this project over the last three months.

    Contribution Activity
    Commits on this project (last 12 months)