Difference between revisions of "Extending the Rodin Database"

From Event-B
Jump to: navigation, search
m (Access (Programmatically) the Newly Created Attribute)
m (Getting the)
Line 34: Line 34:
 
After declaring the attribute with the ID and the kind of the attribute, we need to access the value corresponding to the attribute of any internal element.
 
After declaring the attribute with the ID and the kind of the attribute, we need to access the value corresponding to the attribute of any internal element.
  
==== Getting the ====
+
==== Getting the corresponding type ====
Firstly, we need to get the corresponding Java attribute type, this corresponding to the
+
Firstly, we need to get the corresponding Java attribute kind.
  
 
* '''boolean''': org.rodinp.core.IAttributeTypes.Boolean
 
* '''boolean''': org.rodinp.core.IAttributeTypes.Boolean
Line 47: Line 47:
 
* '''string''': org.rodinp.core.IAttributeTypes.String
 
* '''string''': org.rodinp.core.IAttributeTypes.String
  
 +
The following methods get the corresponding Java attribute kind, given an ID and the kind (as declared via the extension points).
 +
 +
* <code>org.rodinp.core.IAttributeTypes.Boolean RodinCore.getBoolAttrType(ID)</code>
 +
 +
* <code>org.rodinp.core.IAttributeTypes.Handle RodinCore.getHandleAttrType(ID)</code>
 +
 +
* <code>org.rodinp.core.IAttributeTypes.Integer RodinCore.getIntegerAttrType(ID)</code>
 +
 +
* <code>org.rodinp.core.IAttributeTypes.Long RodinCore.getLongAttrType(ID)</code>
 +
 +
* <code>org.rodinp.core.IAttributeTypes.String RodinCore.getStringAttrType(ID)</code>
  
RodinCore.
 
 
Depending on the kind of the attribute, one can use one of the following method to access the value corresponding to the attribute of any
 
Depending on the kind of the attribute, one can use one of the following method to access the value corresponding to the attribute of any

Revision as of 17:54, 24 March 2010

There are different ways to extend the Rodin Database:

  • adding a new element.
  • adding a new attribute.

Adding a New Element

Adding a New Attribute to Existing Elements

Declare a New Attribute

The extension point org.rodinp.core.attributeTypes to declare a new attribute.

In the example below, we assume that the extensions are developed within a plug-in project with name org.eventb.developer.examples

The following extension declares a new string attribute.

<extension
        point="org.rodinp.core.attributeTypes">
     <attributeType
           id="stringAttr"
           kind="string"
           name="%eventBStringAttribute">
     </attributeType>
 </extension>
  • The attribute has an ID (which should be always unique) which also contain the project name, i.e. org.eventb.developer.examples.stringAttr. This unique ID will be used for access the value corresponding to this attribute of an element later.
  • The name of the attribute is a string that could be externalised to be used for displaying to the users in the future.
  • There are five different attribute kinds: boolean, handle, integer, long, string.

Access (Programmatically) the Newly Created Attribute

After declaring the attribute with the ID and the kind of the attribute, we need to access the value corresponding to the attribute of any internal element.

Getting the corresponding type

Firstly, we need to get the corresponding Java attribute kind.

  • boolean: org.rodinp.core.IAttributeTypes.Boolean
  • handle: org.rodinp.core.IAttributeTypes.Handle
  • integer: org.rodinp.core.IAttributeTypes.Integer
  • long: org.rodinp.core.IAttributeTypes.Long
  • string: org.rodinp.core.IAttributeTypes.String

The following methods get the corresponding Java attribute kind, given an ID and the kind (as declared via the extension points).

  • org.rodinp.core.IAttributeTypes.Boolean RodinCore.getBoolAttrType(ID)
  • org.rodinp.core.IAttributeTypes.Handle RodinCore.getHandleAttrType(ID)
  • org.rodinp.core.IAttributeTypes.Integer RodinCore.getIntegerAttrType(ID)
  • org.rodinp.core.IAttributeTypes.Long RodinCore.getLongAttrType(ID)
  • org.rodinp.core.IAttributeTypes.String RodinCore.getStringAttrType(ID)

Depending on the kind of the attribute, one can use one of the following method to access the value corresponding to the attribute of any