001/* 002 * GeoAPI - Java interfaces for OGC/ISO standards 003 * Copyright © 2005-2023 Open Geospatial Consortium, Inc. 004 * http://www.geoapi.org 005 * 006 * Licensed under the Apache License, Version 2.0 (the "License"); 007 * you may not use this file except in compliance with the License. 008 * You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018package org.opengis.filter.capability; 019 020import java.util.Collection; 021import org.opengis.util.LocalName; 022import org.opengis.annotation.UML; 023 024import static org.opengis.annotation.Obligation.MANDATORY; 025import static org.opengis.annotation.Specification.ISO_19143; 026 027 028/** 029 * Capabilities used to convey supported identifier operators. 030 * 031 * @author Markus Schneider (lat/lon) 032 * @author Justin Deoliveira (The Open Planning Project) 033 * @author Martin Desruisseaux (Geomatys) 034 * @version 3.1 035 * 036 * @see FilterCapabilities#getIdCapabilities() 037 * 038 * @since 3.1 039 */ 040@UML(identifier="IdCapabilities", specification=ISO_19143) 041public interface IdCapabilities { 042 /** 043 * Declares the names of the properties used for resource identifiers. 044 * It is a list of element names that represent the resource identifier elements that the service supports. 045 * These element names are considered synonyms. 046 * 047 * <div class="note"><b>Example:</b> 048 * a catalogue may include the following elements: 049 * <ul> 050 * <li>{@code cat:RecordId}</li> 051 * <li>{@code fes:ResourceId}</li> 052 * </ul> 053 * indicating that the service can accept the {@code cat:RecordId} or {@code fes:ResourceId} element 054 * as predicates in a filter expression. 055 * </div> 056 * 057 * @return names of properties used for resource identifiers. 058 */ 059 @UML(identifier="resourceIdentifiers", obligation=MANDATORY, specification=ISO_19143) 060 Collection<? extends LocalName> getResourceIdentifiers(); 061}