Search in sources :

Example 26 with AttributeInformation

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

the class NsiliAttributesGenerator method getNsilCoverageAttributes.

public static List<AttributeInformation> getNsilCoverageAttributes() {
    String prefix = NsiliConstants.NSIL_COVERAGE + ".";
    Domain domain;
    List<AttributeInformation> attributes = new ArrayList<>();
    domain = new Domain();
    domain.t(20);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.SPATIAL_COUNTRY_CODE, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "List of standards-based abbreviation (three character codes) of a country names describing the area over which the product was collected separated by BCS Comma (code 0x2C). The three character code shall be according to STANAG 1059.", false, true));
    domain = new Domain();
    domain.g(RECTANGLE_DOMAIN);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.SPATIAL_GEOGRAPHIC_REF_BOX, AttributeType.UCOS_RECTANGLE, domain, "", "", RequirementMode.OPTIONAL, "Geographic location of the dataset. Always in WGS-84 reference system, and using decimal degrees. The first coordinate represents the most North-Western corner, the second the most South-Eastern corner. The x-value in a UCOS: Coordinate2D struct represents the longitude, the y-value represents the latitude.", false, true));
    domain = new Domain();
    domain.t(2048);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.ADVANCED_GEOSPATIAL, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "Allows storing advanced geometry for display purposes only. The geometry must be encoded using the OGC Well-Known Text (WKT) format [ISO/IEC 13429-3:2011] and validation may be performed by the STANAG 4559 library.", false, true));
    domain = new Domain();
    domain.d(DATE_RANGE);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.TEMPORAL_END, AttributeType.UCOS_ABS_TIME, domain, "", "", RequirementMode.OPTIONAL, "End time of a period of time for the content of the dataset (end time of content acquisition). For products capturing a single instant in time, start time and end time will be equal (or the end time could be omitted)", false, true));
    domain = new Domain();
    domain.d(DATE_RANGE);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.TEMPORAL_START, AttributeType.UCOS_ABS_TIME, domain, "", "", RequirementMode.OPTIONAL, "Start time of a period of time for the content of the dataset (start time of content acquisition). For products capturing a single instant in time, start time and end time will be equal (or the end time could be omitted).", 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 27 with AttributeInformation

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

the class NsiliAttributesGenerator method getNsilApprovalAttributes.

public static List<AttributeInformation> getNsilApprovalAttributes() {
    String prefix = NsiliConstants.NSIL_APPROVAL + ".";
    Domain domain;
    List<AttributeInformation> attributes = new ArrayList<>();
    domain = new Domain();
    domain.t(30);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.APPROVED_BY, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "The name of the organization responsible for Quality Assurance of the resource (product) available in an IPL.", true, true));
    domain = new Domain();
    domain.d(DATE_RANGE);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.DATE_TIME_MODIFIED, AttributeType.UCOS_ABS_TIME, domain, "", "", RequirementMode.OPTIONAL, "The date and time upon which the approval information on the product was last stored or changed in the IPL.", true, true));
    domain = new Domain();
    domain.l(getApprovalStatusOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.STATUS, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "A status field reporting on whether this product has been approved by the party responsible for Quality Control 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 28 with AttributeInformation

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

the class NsiliAttributesGenerator method getNsilStreamAttributes.

public static List<AttributeInformation> getNsilStreamAttributes() {
    String prefix = NsiliConstants.NSIL_STREAM + ".";
    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 stream has been archived. Set to \"YES\" if the file has been archived, otherwise set to \"NO\".", true, true));
    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 (stream data) 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 responsible for providing the stream. Creator is responsible for the intellectual or creative content of the stream.", true, true));
    domain = new Domain();
    domain.d(DATE_RANGE);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.DATE_TIME_DECLARED, AttributeType.UCOS_ABS_TIME, domain, "", "", RequirementMode.MANDATORY, "Date and time on which the stream was declared, filed or stored.", true, true));
    domain = new Domain();
    domain.l(getNsilStreamStandardOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.STANDARD, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "The standard that the streamed data complies with.", false, true));
    domain = new Domain();
    domain.t(10);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.STANDARD_VERSION, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "Version of product standard E.g. \"1.0\".", true, true));
    domain = new Domain();
    domain.t(0);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.SOURCE_URL, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "The address and access protocol in the form of an URL by which a user can directly access the data stream. For RTSP, HTTP, HTTPS and JPIP a standard URL syntax will be used (could include port number). For UDP/RTP, a URL notation using a '@-character-notaton' is used to allow a URL to define a broadcasted stream or a multicasted stream. A UDP broadcast source on port 8105 would be defined as 'udp://@:8105', a RTP broadcast source would be defined as 'rtp://@:8105'; similarly multicasted UDP/RTP source would be defined as 'udp://@multicast_address:port' or 'udp://@multicast_address:port'. This UDP/RTP @-syntax is identical to what is being used by the VideoLAN VLC application. For the broadcast situation it is assumed that the network takes care about forwarding the broadcasts between the LANs (e.g. using NIRIS) so the stream consumer does not need of the LAN-location of the or origial stream source. Note 1: Contrary to the productURL this attribute is queryable. This would allow clients to only discover streams using protocols that the client can consume. Note 2: When a stream is archived and no longer online, the sourceURL attribute shall be removed.", false, true));
    domain = new Domain();
    domain.ir(new IntegerRange(3, 16383));
    attributes.add(new AttributeInformation(prefix + NsiliConstants.PROGRAM_ID, AttributeType.INTEGER, domain, "", "", RequirementMode.OPTIONAL, "The program ID determines the stream ID within the Transport Stream that contains the PMT (Program Mapping Table) of the stream. In cases where the Transport Stream would contain more than one stream, this would allow clients to find quickly the program being advertised.", 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 29 with AttributeInformation

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

the class NsiliAttributesGenerator method getNsilSecurityAttributes.

public static List<AttributeInformation> getNsilSecurityAttributes() {
    String prefix = NsiliConstants.NSIL_SECURITY + ".";
    Domain domain;
    List<AttributeInformation> attributes = new ArrayList<>();
    domain = new Domain();
    domain.l(getClassificationOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.CLASSIFICATION, AttributeType.TEXT, domain, "", "", RequirementMode.MANDATORY, "NATO Security markings that determine the physical security given to the information in storage and transmission, its circulation, destruction and the personnel security clearance required for access as required by [C- M(2002)49].", false, true));
    domain = new Domain();
    domain.t(20);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.POLICY, AttributeType.TEXT, domain, "", "", RequirementMode.MANDATORY, "This field shall contain valid values indicating the national or multinational security policies used to classify the Product. To indicate a national security policy Country Codes per STANAG 1059 shall be used. In cases where the country is not listed by a three character country code, but as a six character region code, the six character province code from STANAG 1059 shall be used (e.g. Kosovo is listed as a region in Yugoslavia with six character province code YUKM-). In all other cases when STANAG 1059 is not sufficient to describe the security policy, additional enumeration labels could be used (e.g. 'NATO/PFP' and 'NATO/EU'). Note: Although STANAG 1059 includes the 'XXN' entry for NATO, the full 'NATO' name shall be used to indicate NATO security policy to avoid any confusion from established and common used terms.", false, true));
    domain = new Domain();
    domain.t(50);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.RELEASABILITY, AttributeType.TEXT, domain, "", "", RequirementMode.MANDATORY, "An additional marking to further limit the dissemination of classified information in accordance with [C-M (2002)49]. Values include one or more three character country codes as found in STANAG 1059 separated by a single BCS Comma (code 0x2C). Default value should be NATO. Note: Although STANAG 1059 includes the 'XXN' entry for NATO, the full 'NATO' name shall be used to indicate NATO releasability to avoid any confusion from established and common used terms.", 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 30 with AttributeInformation

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

the class NsiliAttributesGenerator method getNsilVideoAttributes.

public static List<AttributeInformation> getNsilVideoAttributes() {
    String prefix = NsiliConstants.NSIL_VIDEO + ".";
    Domain domain;
    List<AttributeInformation> attributes = new ArrayList<>();
    domain = new Domain();
    domain.fr(MAX_STANAG_4559_RANGE);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.AVG_BIT_RATE, AttributeType.FLOATING_POINT, domain, "", "", RequirementMode.OPTIONAL, "The bit rate of the motion imagery product when being streamed.", false, true));
    domain = new Domain();
    domain.l(getVideoCategoryOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.CATEGORY, AttributeType.TEXT, domain, "", "", RequirementMode.MANDATORY, "An indicator of the specific category of motion image (information about the bands of visible or infrared region of electromagnetic continuum being used). The specific category of an image reveals its intended use or the nature of its collector.", false, true));
    domain = new Domain();
    domain.l(getVideoEncodingSchemeOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.ENCODING_SCHEME, AttributeType.TEXT, domain, "", "", RequirementMode.MANDATORY, "A code that indicates the manner in which the motion imagery was encoded.", false, true));
    domain = new Domain();
    domain.fr(MAX_STANAG_4559_RANGE);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.FRAME_RATE, AttributeType.FLOATING_POINT, domain, "", "", RequirementMode.OPTIONAL, "The standard rate (in frames per second (FPS)) at which the motion imagery was captured. Note: The Motion Imagery Standards Profile identifies several values, such as: 23.98 FPS, 24 FPS, 29.97 FPS, 30 FPS, 59.94 FPS.", false, true));
    domain = new Domain();
    domain.ir(new IntegerRange(1, Integer.MAX_VALUE));
    attributes.add(new AttributeInformation(prefix + NsiliConstants.NUMBER_OF_ROWS, AttributeType.INTEGER, domain, "", "", RequirementMode.OPTIONAL, "The frame vertical resolution.", false, true));
    domain = new Domain();
    domain.ir(new IntegerRange(1, Integer.MAX_VALUE));
    attributes.add(new AttributeInformation(prefix + NsiliConstants.NUMBER_OF_COLS, AttributeType.INTEGER, domain, "", "", RequirementMode.OPTIONAL, "The frame horizontal resolution.", false, true));
    domain = new Domain();
    domain.l(getMetadataEncodingSchemeOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.METADATA_ENC_SCHEME, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "A code that indicates the manner in which the metadata for the motion imagery was encoded.", false, true));
    domain = new Domain();
    domain.ir(new IntegerRange(0, 12));
    attributes.add(new AttributeInformation(prefix + NsiliConstants.MISM_LEVEL, AttributeType.INTEGER, domain, "", "", RequirementMode.OPTIONAL, "From [AEDP-8]: The \"Motion Imagery Systems (Spatial and Temporal) Matrix\" (MISM) defines an ENGINEERING GUIDELINE for the simple identification of broad categories of Motion Imagery Systems. The intent of the MISM is to give user communities an easy to use, common shorthand reference language to describe the fundamental technical capabilities of NATO motion imagery systems.", false, true));
    domain = new Domain();
    domain.l(getVideoScanningModeOptions());
    attributes.add(new AttributeInformation(prefix + NsiliConstants.SCANNING_MODE, AttributeType.TEXT, domain, "", "", RequirementMode.OPTIONAL, "Indicate if progressive or interlaced scans are being applied.", false, true));
    domain = new Domain();
    domain.bv(false);
    attributes.add(new AttributeInformation(prefix + NsiliConstants.VMTI_PROCESSED, AttributeType.BOOLEAN_DATA, domain, "", "", RequirementMode.OPTIONAL, "A flag indicating if the video stream or file has been processed by a VMTI processor.", false, true));
    domain = new Domain();
    domain.ir(new IntegerRange(0, Integer.MAX_VALUE));
    attributes.add(new AttributeInformation(prefix + NsiliConstants.NUM_VMTI_TGT_REPORTS, AttributeType.INTEGER, domain, "", "", RequirementMode.OPTIONAL, "The maximum number of unique detections in any one (1) second interval. For a video stream the numberOfVMTITargetReports shall not be provided a value.", 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)

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