Search in sources :

Example 1 with AttributeInformation

use of org.codice.alliance.nsili.common.GIAS.AttributeInformation in project alliance by codice.

the class NsiliAttributesGenerator method getNsilFileAttributes.

public static List<AttributeInformation> getNsilFileAttributes() {
    String prefix = NsiliConstants.NSIL_FILE + ".";
    Domain domain;
    List<AttributeInformation> attributes = new ArrayList<>();
    domain = new Domain();
    domain.bv(false);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.ARCHIVED, AttributeType.BOOLEAN_DATA, domain, "", "", RequirementMode.OPTIONAL, "Indicates whether the file has been archived. Set to \"YES\" if the file has been archived, otherwise set to \"NO\".", true, false));
    domain = new Domain();
    domain.t(200);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.ARCHIVE_INFORMATION, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "Additional archiving information in free text form allowing the archived data (product files) to be found and possibly be restored to the server storage. This information could contain the date when the data was archived and point of contact for retrieving the archived data.", true, true));
    domain = new Domain();
    domain.t(200);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.CREATOR, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "An entity primarily responsible for making the content of the resource. Creator is responsible for the intellectual or creative content of the\n" + "ANNEX G to STANAG 4559 Edition 3\n" + " \n" + "resource. With raw sensor products a creator is the unit that runs the sensor. With exploited products it is the exploitation station, with an Information Request (IR) it is an IR Management system/service.", true, true));
    domain = new Domain();
    domain.d(DATE_RANGE);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.DATE_TIME_DECLARED, AttributeType.UCOS_ABS_TIME, domain, "", "", RequirementMode.OPTIONAL, "Date and time on which the resource was declared, filed or stored (the date the content of the product (dataset) was compiled).", true, true));
    domain = new Domain();
    domain.fr(MAX_STANAG_4559_RANGE);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.EXTENT, AttributeType.FLOATING_POINT, domain, "", "", RequirementMode.OPTIONAL, "(Estimated) size of product in the specified transfer format, expressed in\n" + "Table G- 26 NSIL_FILE.format\n" + "ANNEX G to STANAG 4559 Edition 3\n" + " \n" + "megabytes. The transfer size is > 0.0.", true, false));
    domain = new Domain();
    domain.t(50);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.FORMAT, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "The MIME type for the product object to which this metadata applies with the necessary extension to cater for ISR specific file types not yet MIME registered.", true, false));
    domain = new Domain();
    domain.t(10);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.FORMAT_VERSION, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "Version of product format. E.g. \"1.0\". In case of an XML document this attribute refers to the version of the XML schema that the document refers to (and not to the version of the XML format).", true, false));
    domain = new Domain();
    domain.t(0);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.PRODUCT_URL, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "The address and access protocol in the form of an URL by which a user can directly access a product without the user placing an order for delivery. Note, This attribute is not queryable.", true, false));
    domain = new Domain();
    domain.t(100);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.TITLE, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "Product (dataset) title.", true, true));
    domain = new Domain();
    domain.bv(true);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.IS_PRODUCT_LOCAL, AttributeType.BOOLEAN_DATA, domain, "", "", RequirementMode.OPTIONAL, "Indicates whether the product file is available locally in the library, or resides in a remote library.", true, false));
    domain = new Domain();
    domain.t(256);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.FILENAME, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "A string item providing the original file name of the product.", true, true));
    return attributes;
}
Also used : AttributeInformation(org.codice.alliance.nsili.common.GIAS.AttributeInformation) ArrayList(java.util.ArrayList) Domain(org.codice.alliance.nsili.common.GIAS.Domain)

Example 2 with AttributeInformation

use of org.codice.alliance.nsili.common.GIAS.AttributeInformation in project alliance by codice.

the class NsiliAttributesGenerator method getNsilCommonAttributes.

public static List<AttributeInformation> getNsilCommonAttributes() {
    String prefix = NsiliConstants.NSIL_COMMON + ".";
    Domain domain;
    List<AttributeInformation> attributes = new ArrayList<>();
    domain = new Domain();
    domain.t(800);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.DESCRIPTION_ABSTRACT, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "A summary of the content of the resource (product).", false, true));
    domain = new Domain();
    domain.t(40);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.IDENTIFIER_MISSION, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "An alphanumeric identifier that identifies the mission (e.g. a reconnaissance mission) under which the product was collected/generated. As an example, for products collected by sensors on an aircraft, the mission identifier should be the 'Mission Number' from the Air Tasking Order (ATO).", false, true));
    domain = new Domain();
    domain.t(36);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.IDENTIFIER_UUID, AttributeType.TEXT, domain, "", "", RequirementMode.MANDATORY, "A Universally Unique Identifier (UUID) is an identifier (standardized by the Open Software Foundation (OSF)) that can be generated by systems to uniquely identify information without any central coordination. Thus, anyone can create a UUID and use it to identify something with reasonable confidence that the identifier will never be unintentionally used by anyone for anything else.", false, true));
    domain = new Domain();
    domain.ir(POSITIVE_INT_RANGE);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.IDENTIFIER_JC3IEDM, AttributeType.INTEGER, domain, "", "", RequirementMode.OPTIONAL, "An additional identifier that can be used for cross-referencing into peripherally accessed JC3IEDM databases.", false, true));
    domain = new Domain();
    domain.t(12);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.LANGUAGE, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "A list of 3 character language codes according to ISO 639-2 for the intellectual content of the resource. Multiple languages are separated by BCS Comma (code 0x2C). Note: There are two codes for special situations: * mul (for multiple languages) should be applied when several languages are used and it is not practical to specify all the appropriate language codes. * und (for undetermined) is provided for those situations in which a language or languages must be indicated but the language cannot be identified.", false, true));
    domain = new Domain();
    domain.t(200);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.SOURCE, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "References to assets (e.g. platform IDs) from which the tagged data asset is derived. Sources may be derived partially or wholly, and it is recommended that an identifier (such as a string or number from a formal identification system) be used as a reference. In case of multiple sources these shall be separated by BCS Comma (could happen for container files like AAF, MXF and NSIF). 'Source' is different from 'creator' in that the 'source' entity is the provider of the data content, while the 'creator' is the entity responsible for assembling the data (provided by \"sources\") into a file.", false, true));
    domain = new Domain();
    domain.t(50);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.SUBJECT_CATEGORY_TARGET, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "A target category from STANAG 3596 that should reflect the main subject of the resource. In case of multiple categories these shall be separated by the BCS Comma (code 0x2C) character.", false, true));
    domain = new Domain();
    domain.t(159);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.TARGET_NUMBER, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "This field shall contain the identification of the primary target in the product. In case of multiple target identifiers these shall be separated by the BCS Comma (code 0x2C) character.", false, true));
    domain = new Domain();
    domain.l(getNsilTypeOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.TYPE, AttributeType.TEXT, domain, "", "", RequirementMode.MANDATORY, "The nature or genre of the content of the resource.", false, true));
    domain = new Domain();
    domain.t(200);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.KEYWORDS, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "A comma delimited list of keywords providing additional information to enable an operator to query the STANAG 4559 library by keywords.", false, true));
    return attributes;
}
Also used : AttributeInformation(org.codice.alliance.nsili.common.GIAS.AttributeInformation) ArrayList(java.util.ArrayList) Domain(org.codice.alliance.nsili.common.GIAS.Domain)

Example 3 with AttributeInformation

use of org.codice.alliance.nsili.common.GIAS.AttributeInformation in project alliance by codice.

the class NsiliAttributesGenerator method getNsilCbrnAttributes.

public static List<AttributeInformation> getNsilCbrnAttributes() {
    String prefix = NsiliConstants.NSIL_CBRN + ".";
    Domain domain;
    List<AttributeInformation> attributes = new ArrayList<>();
    domain = new Domain();
    domain.t(56);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.OPERATION_NAME, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "Exercise Identification or Operation Code Word", true, true));
    domain = new Domain();
    domain.t(26);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.INCIDENT_NUM, AttributeType.TEXT, domain, "", "", RequirementMode.MANDATORY, "Incident Number typically based on the concatenation of ALFA1, ALFA2, ALFA3, and ALFA4.", true, true));
    domain = new Domain();
    domain.l(getCbrnEventOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.EVENT_TYPE, AttributeType.TEXT, domain, "", "", RequirementMode.MANDATORY, "Type of event enumeration description", true, true));
    domain = new Domain();
    domain.t(100);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.CBRN_CATEGORY, AttributeType.TEXT, domain, "", "", RequirementMode.MANDATORY, "The CBRN report type or plot type", true, true));
    domain = new Domain();
    domain.t(7);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.SUBSTANCE, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "Description of substance", true, true));
    domain = new Domain();
    domain.l(getCbrnAlarmClassificationOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.ALARM_CLASSIFICATION, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "Classification of CBRN sensor alarm", true, true));
    return attributes;
}
Also used : AttributeInformation(org.codice.alliance.nsili.common.GIAS.AttributeInformation) ArrayList(java.util.ArrayList) Domain(org.codice.alliance.nsili.common.GIAS.Domain)

Example 4 with AttributeInformation

use of org.codice.alliance.nsili.common.GIAS.AttributeInformation in project alliance by codice.

the class NsiliAttributesGenerator method getNsilExploitationInfoAttributes.

public static List<AttributeInformation> getNsilExploitationInfoAttributes() {
    String prefix = NsiliConstants.NSIL_EXPLOITATION_INFO + ".";
    Domain domain;
    List<AttributeInformation> attributes = new ArrayList<>();
    domain = new Domain();
    domain.t(400);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.DESCRIPTION, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "A textual description of the performed exploitation.", false, true));
    domain = new Domain();
    domain.ir(new IntegerRange(0, 9));
    attributes.add(new AttributeInformation(prefix + NsiliConstants.LEVEL, AttributeType.INTEGER, domain, "", "", RequirementMode.OPTIONAL, "The degree of exploitation performed on the original data. A value of '0' means that the product is not exploited. The interpretation of other attribute values is currently undefined.", false, true));
    domain = new Domain();
    domain.bv(false);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.AUTO_GENERATED, AttributeType.BOOLEAN_DATA, domain, "", "", RequirementMode.OPTIONAL, "A flag indicating if the exploitation was automatically generated", false, true));
    domain = new Domain();
    domain.l(getSubjectiveQualityCodeOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.SUBJ_QUALITY_CODE, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "A code that indicates a subjective rating of the quality of the image or video.", false, true));
    return attributes;
}
Also used : AttributeInformation(org.codice.alliance.nsili.common.GIAS.AttributeInformation) IntegerRange(org.codice.alliance.nsili.common.GIAS.IntegerRange) ArrayList(java.util.ArrayList) Domain(org.codice.alliance.nsili.common.GIAS.Domain)

Example 5 with AttributeInformation

use of org.codice.alliance.nsili.common.GIAS.AttributeInformation in project alliance by codice.

the class NsiliAttributesGenerator method getNsilCxpAttributes.

public static List<AttributeInformation> getNsilCxpAttributes() {
    String prefix = NsiliConstants.NSIL_CXP + ".";
    Domain domain;
    List<AttributeInformation> attributes = new ArrayList<>();
    domain = new Domain();
    domain.l(getCxpStatusOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.STATUS, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "A status field describing whether the Collection and Exploitation Plan is active, planned or expired.", false, true));
    return attributes;
}
Also used : AttributeInformation(org.codice.alliance.nsili.common.GIAS.AttributeInformation) ArrayList(java.util.ArrayList) Domain(org.codice.alliance.nsili.common.GIAS.Domain)

Aggregations

AttributeInformation (org.codice.alliance.nsili.common.GIAS.AttributeInformation)40 ArrayList (java.util.ArrayList)36 Domain (org.codice.alliance.nsili.common.GIAS.Domain)29 IntegerRange (org.codice.alliance.nsili.common.GIAS.IntegerRange)7 HashMap (java.util.HashMap)5 List (java.util.List)5 Matchers.containsString (org.hamcrest.Matchers.containsString)3 Test (org.junit.Test)3 Objects (java.util.Objects)1 Association (org.codice.alliance.nsili.common.GIAS.Association)1 DateRange (org.codice.alliance.nsili.common.GIAS.DateRange)1 FloatingPointRange (org.codice.alliance.nsili.common.GIAS.FloatingPointRange)1 SortAttribute (org.codice.alliance.nsili.common.GIAS.SortAttribute)1 EntityGraph (org.codice.alliance.nsili.common.UCO.EntityGraph)1 EntityNode (org.codice.alliance.nsili.common.UCO.EntityNode)1 InvalidInputParameter (org.codice.alliance.nsili.common.UCO.InvalidInputParameter)1 ProcessingFault (org.codice.alliance.nsili.common.UCO.ProcessingFault)1 SystemFault (org.codice.alliance.nsili.common.UCO.SystemFault)1 Matchers.anyString (org.mockito.Matchers.anyString)1