Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "ATL Standard Library"
(updated links to new location) |
(updated links to Java classes) |
||
Line 5: | Line 5: | ||
However, some extensions have been made (see [[ATL_FAQ#How_close_is_ATL_navigation_language_from_the_OCL_2.0_standard.3F]]). | However, some extensions have been made (see [[ATL_FAQ#How_close_is_ATL_navigation_language_from_the_OCL_2.0_standard.3F]]). | ||
− | For each type ''T'', a CVS link is given to the Java class implementing ''T'' in the ATL virtual machine. | + | In EMFVM, the ATL standard library is mostly implemented in the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine.emfvm/src/org/eclipse/m2m/atl/engine/emfvm/lib/ExecEnv.java?root=Modeling_Project&view=markup ExecEnv] Java class. |
+ | For each type ''T'', a CVS link is given to the Java class implementing ''T'' in the Regular ATL virtual machine. | ||
In each class, operations available from the ATL language (as opposed to implementation-specific methods) are represented as Java methods located below the following comment: | In each class, operations available from the ATL language (as opposed to implementation-specific methods) are represented as Java methods located below the following comment: | ||
Line 30: | Line 31: | ||
===Boolean=== | ===Boolean=== | ||
− | The ''Boolean'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMBoolean.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup | + | The ''Boolean'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine.vm/src/org/eclipse/m2m/atl/engine/vm/nativelib/ASMBoolean.java?root=Modeling_Project&view=markup ASMBoolean] ([http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMBoolean.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup deprecated version]) Java class. |
The underlying Java type is '''boolean'''. | The underlying Java type is '''boolean'''. | ||
===Integer=== | ===Integer=== | ||
− | The ''Integer'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMInteger.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup | + | The ''Integer'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine.vm/src/org/eclipse/m2m/atl/engine/vm/nativelib/ASMInteger.java?root=Modeling_Project&view=markup ASMInteger] ([http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMInteger.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup deprecated version]) Java class. |
The underlying Java type is '''int'''. | The underlying Java type is '''int'''. | ||
===Real=== | ===Real=== | ||
− | The ''Real'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMReal.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup | + | The ''Real'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine.vm/src/org/eclipse/m2m/atl/engine/vm/nativelib/ASMReal.java?root=Modeling_Project&view=markup ASMReal] ([http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMReal.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup deprecated version]) Java class. |
The underlying Java type is '''double'''. | The underlying Java type is '''double'''. | ||
===String=== | ===String=== | ||
− | The ''String'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMString.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup | + | The ''String'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine.vm/src/org/eclipse/m2m/atl/engine/vm/nativelib/ASMString.java?root=Modeling_Project&view=markup ASMString] ([http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMString.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup deprecated version]) Java class. |
The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html java.lang.String]. | The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html java.lang.String]. | ||
Line 52: | Line 53: | ||
===Collection=== | ===Collection=== | ||
− | The ''Collection'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMCollection.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup | + | The ''Collection'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine.vm/src/org/eclipse/m2m/atl/engine/vm/nativelib/ASMCollection.java?root=Modeling_Project&view=markup ASMCollection] ([http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMCollection.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup deprecated version]) Java class. |
There is no underlying Java type for this abstract type. | There is no underlying Java type for this abstract type. | ||
However, all concrete collection types are implemented by sub-classes of [http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collection.html java.util.Collection]. | However, all concrete collection types are implemented by sub-classes of [http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collection.html java.util.Collection]. | ||
Line 58: | Line 59: | ||
===Bag=== | ===Bag=== | ||
− | The ''Bag'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMBag.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup | + | The ''Bag'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine.vm/src/org/eclipse/m2m/atl/engine/vm/nativelib/ASMBag.java?root=Modeling_Project&view=markup ASMBag] ([http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMBag.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup deprecated version]) Java class. |
The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html java.util.ArrayList]. | The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html java.util.ArrayList]. | ||
===OrderedSet=== | ===OrderedSet=== | ||
− | The ''OrderedSet'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMOrderedSet.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup | + | The ''OrderedSet'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine.vm/src/org/eclipse/m2m/atl/engine/vm/nativelib/ASMOrderedSet.java?root=Modeling_Project&view=markup ASMOrderedSet] ([http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMOrderedSet.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup deprecated version]) Java class. |
The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/util/LinkedHashSet.html java.util.LinkedHashSet]. | The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/util/LinkedHashSet.html java.util.LinkedHashSet]. | ||
===Sequence=== | ===Sequence=== | ||
− | The ''Sequence'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMSequence.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup | + | The ''Sequence'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine.vm/src/org/eclipse/m2m/atl/engine/vm/nativelib/ASMSequence.java?root=Modeling_Project&view=markup ASMSequence] ([http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMSequence.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup deprecated version]) Java class. |
The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html java.util.ArrayList]. | The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html java.util.ArrayList]. | ||
===Set=== | ===Set=== | ||
− | The ''Set'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMSet.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup | + | The ''Set'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine.vm/src/org/eclipse/m2m/atl/engine/vm/nativelib/ASMSet.java?root=Modeling_Project&view=markup ASMSet] ([http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMSet.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup deprecated version]) Java class. |
The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashSet.html java.util.HashSet]. | The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashSet.html java.util.HashSet]. | ||
Line 82: | Line 83: | ||
===Map=== | ===Map=== | ||
− | The ''Map'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMMap.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup | + | The ''Map'' OCL type is implemented by the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/plugins/org.eclipse.m2m.atl.engine.vm/src/org/eclipse/m2m/atl/engine/vm/nativelib/ASMMap.java?root=Modeling_Project&view=markup ASMMap] ([http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.m2m/org.eclipse.m2m.atl/deprecated/org.atl.engine.vm/src/org/atl/engine/vm/nativelib/ASMMap.java?root=Modeling_Project&rev=HEAD&content-type=text/vnd.viewcvs-markup deprecated version]) Java class. |
The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashMap.html java.util.HashMap]. | The underlying Java type is [http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashMap.html java.util.HashMap]. | ||
[[Category:ATL]] | [[Category:ATL]] |
Revision as of 13:10, 9 June 2009
< To: ATL
The ATL standard library consists of the types built into ATL and of their operations. It is based on the OCL 2.0 standard library as described in chapter 11 of the UML 2.0 OCL Final Adopted specification. However, some extensions have been made (see ATL_FAQ#How_close_is_ATL_navigation_language_from_the_OCL_2.0_standard.3F).
In EMFVM, the ATL standard library is mostly implemented in the ExecEnv Java class. For each type T, a CVS link is given to the Java class implementing T in the Regular ATL virtual machine. In each class, operations available from the ATL language (as opposed to implementation-specific methods) are represented as Java methods located below the following comment:
// Native Operations Below
In some of these classes, there are two additional comments delimiting:
- Operations specified by OCL 2.0:
// OCL Operations
- Operations added in ATL:
// Additional Operations
All of these Java classes are located in the org.atl.engine.vm.nativelib package.
When the description given here is not complete enough, it is possible to go and read the Java implementation. This way, it is possible to know, for instance: the list of available operations and their semantics (e.g. operation String.regexReplaceAll(a : String, b : String) is implemented in ASMString using java.lang.String.replaceAll(String a, String b)).
Contents
Primitive Types
Boolean
The Boolean OCL type is implemented by the ASMBoolean (deprecated version) Java class. The underlying Java type is boolean.
Integer
The Integer OCL type is implemented by the ASMInteger (deprecated version) Java class. The underlying Java type is int.
Real
The Real OCL type is implemented by the ASMReal (deprecated version) Java class. The underlying Java type is double.
String
The String OCL type is implemented by the ASMString (deprecated version) Java class. The underlying Java type is java.lang.String.
Collection Types
Collection
The Collection OCL type is implemented by the ASMCollection (deprecated version) Java class. There is no underlying Java type for this abstract type. However, all concrete collection types are implemented by sub-classes of java.util.Collection.
Bag
The Bag OCL type is implemented by the ASMBag (deprecated version) Java class. The underlying Java type is java.util.ArrayList.
OrderedSet
The OrderedSet OCL type is implemented by the ASMOrderedSet (deprecated version) Java class. The underlying Java type is java.util.LinkedHashSet.
Sequence
The Sequence OCL type is implemented by the ASMSequence (deprecated version) Java class. The underlying Java type is java.util.ArrayList.
Set
The Set OCL type is implemented by the ASMSet (deprecated version) Java class. The underlying Java type is java.util.HashSet.
Additional Types
The types described in this section are not part of the OCL 2.0 specification.
Map
The Map OCL type is implemented by the ASMMap (deprecated version) Java class. The underlying Java type is java.util.HashMap.