001/* 002 * GeoAPI - Java interfaces for OGC/ISO standards 003 * Copyright © 2014-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.metadata.citation; 019 020import java.util.Collection; 021import java.util.Collections; 022 023import org.opengis.annotation.UML; 024import org.opengis.annotation.Classifier; 025import org.opengis.annotation.Stereotype; 026import org.opengis.util.InternationalString; 027import org.opengis.metadata.Identifier; 028 029import static org.opengis.annotation.Obligation.*; 030import static org.opengis.annotation.Specification.ISO_19115; 031 032 033/** 034 * Information about the individual and / or organisation of the party. 035 * 036 * @author Rémi Maréchal (Geomatys) 037 * @version 3.1 038 * @since 3.1 039 */ 040@Classifier(Stereotype.ABSTRACT) 041@UML(identifier="CI_Party", specification=ISO_19115) 042public interface Party { 043 /** 044 * Name of the party. 045 * 046 * @return name of the party, or {@code null} if none. 047 * 048 * @condition Mandatory if the {@linkplain Organisation#getLogo() logo} and the 049 * {@linkplain Individual#getPositionName() position name} are not documented. 050 */ 051 @UML(identifier="name", obligation=CONDITIONAL, specification=ISO_19115) 052 InternationalString getName(); 053 054 /** 055 * Identifiers of the party. 056 * 057 * @return identifiers of the party, or an empty collection if none. 058 * 059 * @departure rename 060 * Renamed from "{@code partyIdentifier}" to "{@code identifier}" 061 * for providing a unified method signature for identifiers. 062 */ 063 @UML(identifier="partyIdentifier", obligation=OPTIONAL, specification=ISO_19115, version=2018) 064 default Collection<? extends Identifier> getIdentifiers() { 065 return Collections.emptyList(); 066 } 067 068 /** 069 * Contact information for the party. 070 * 071 * @return contact information for the party, or an empty collection if none. 072 */ 073 @UML(identifier="contactInfo", obligation=OPTIONAL, specification=ISO_19115) 074 default Collection<? extends Contact> getContactInfo() { 075 return Collections.emptyList(); 076 } 077}