A file descriptor describes a file and optionally, the structure of the file. The file can be located both in the Eclipse workspace or in the system to be attached.
The physical name (attribute Name_Physical) of the file does not have to be given in order to describe a file. This can be set by a tool output parameter at run time. If the physical name of the file already exists, a static value can be entered under this attribute. If only the structure of the file path has been specified, a dynamic path can be entered using dynamic references. See Variable References for more information.
A further feature of a file descriptor is the type. The Workspace_File type, indicates files that should be saved in the workspace or that are to be read from the workspace.
Attribute | Type | Description |
---|---|---|
ID * | ID * | The ID of the file descriptor. |
Name_Physical [O] | String | The physical name of the file under which the target system can find the file (file path + file name).
You can specify dynamic references. |
PropDelimiter | String | The delimiter to be used for the interpretation of structured file content.
The default value is " " (Blank). |
Structure | Selection | Describes the structure of the file.
Permitted values:
|
Type | Selection | The type of the file descriptor. This value specifies how the described file should be interpreted.
Permitted values:
|
Relationship | Cardinality | Description |
---|---|---|
Has_Property | 0..* | Relationship to a Property. Property values can be assigned to a file content, which enables editing of the content.
This relationship can only be used for the description of structured files (table structure). |
Has_Action | 0..* | Relationship to an action descriptor. Used only if the file descriptor is of structure table and the table is part of a modeled dialog. In this case the actions appear in the context menu of the table items. |
A file descriptor can specify the following structures:
A file descriptor modelled in this way:
Could have the following content:
Argentina,Buenos Aires,South America Algeria,Alger,Africa Niger,Niamev,Africa France,Paris,Europe
At every level of the structure you can model a child of type 'Element' or 'Attribute'. An element can be a JSON object, an array or a simple array specified in the element's Type attribute. A JSON attribute can be one of the following types, String, Boolean, and Number. The JSON attribute can be specified as a static value or it can point to a property via the Target ID attribute. If the JSON attribute is pointing to a property via a Target ID the attribute value is taken from the current value of the property at run time and the property value is set by the value returned in the corresponding JSON attribute.
JSON array elements represent object arrays, which contain additional elements or attributes. Simple arrays are non-object arrays which only contain String, Numeric, or Boolean values. Similar to attributes, their values can be mapped to or taken from a modelled property or can be a static value. AWM currently only supports single-value simple attributes. Attempting to parse a JSON document with a multi-value simple array will result in an error message.
A file descriptor structure JSON has the additional action Generate Structure in the context menu of the model editor. This action enables you to generate the file descriptor's structure based on a given JSON payload. Calling this action opens the Generate Structure wizard. The wizard enables you to paste a JSON formatted payload in the editor window. Typically REST based applications offer a feature to capture the payload sent with a request. This payload capture can be cut and pasted into the wizard's editor window.
Clicking Preview displays the elements of the structure which will be added to the file descriptor's structure definition. The generation does not overwrite pre-existing elements of the file descriptor. If the JSON structure cannot be successfully parsed, an error message is displayed in the header of the wizard when clicking Preview or Finish. When you click Finish and no JSON parser errors are encountered, the file descriptor's structure is generated in the model editor. The type of an attribute (String, Number, or Boolean) is generated depending on the value type of the attribute in the given JSON payload.
This function can be used to simplify the task of modeling a complex JSON file descriptor structure. You will need to perform some clean up work after the generation, for example, setting the target id and static value of attributes, removing elements that are not required, and setting the mandatory attribute of elements where required.
The section below gives some guidance on how a JSON structured file descriptor is interpreted during run time.
You can specify a JSON file descriptor structure with objects and attributes that have missing values. If a specified non-mandatory object does not exist, AWM will skip it and continue parsing or generating the rest of the JSON document.If a JSON object or attribute is specified as mandatory, AWM will enforce that it is present in the parsed JSON document or a property value is available when the JSON output is generated. If it is not, an error message is triggered and the parsing/generation process is stopped.
A file descriptor modelled in this way:
Could, for example, produce the following JSON payload at run time:
{ "fields": { "summary": "No REST for the Wicked.", "issuetype": { "id": "Error" }, "project": { "id": "10110" }, "description": "Creation of an issue using IDs for projects and issue type." } }
If a JSON document is returned by a tool descriptor, AWM is able to create an element list from it. If the document describes more than one item, it must contain an array. AWM will attempt to create one element for each array value. If the JSON output contains other attributes outside the array object, the attributes' values will be added to each parsed element, provided they have been specified in the file descriptor and mapped to properties.
The file descriptor SVN_FD_Repository is used to return SVN repository locations:
Attribute | Value | Description |
---|---|---|
Essential: | ||
ID | SVN_FD_Repository | Unique identifier for the file descriptor in this model. |
Prop Delimiter | , | The property values returned in this structured file descriptor are separated with commas. |
Structure | Table | A table structured file descriptor consists of a sequence of properties. Each line specifies the values for each property defined as a file Descriptor_Has_Property relationship. |
Type | InputStream | The file content is provided in the form of an input stream. |
Optional: | ||
Name Physical | --- | A Name Physical is not required for a file descriptor of type InputStream. |
The file descriptor SVN_FD_WORK_LocalContent is used to model a file in the local workspace:
Attribute | Value | Description |
---|---|---|
Essential: | ||
ID | SVN_FD_WORK_LocalContent | Unique identifier for the file descriptor in this model. |
Prop Delimiter | --- | Not applicable as it is an unstructured file descriptor. |
Structure | Unstructured | The file has no internal structure. |
Type | Workspace_File | The file descriptor represents a file within the Eclipse workspace. |
Optional: | ||
Name Physical | --- | The physical name is not required as the file is returned as a file output parameter of a preceding tool. |