001/* 002 * GeoAPI - Java interfaces for OGC/ISO standards 003 * Copyright © 2006-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.feature; 019 020import org.opengis.annotation.UML; 021import org.opengis.annotation.Stereotype; 022import org.opengis.annotation.Classifier; 023 024import static org.opengis.annotation.Specification.ISO_19109; 025 026 027/** 028 * Characteristics that may be associated with a {@link FeatureType}. 029 * This interface is the parent type of {@linkplain AttributeType attribute type}, 030 * {@linkplain FeatureAssociationRole feature association role} and {@linkplain Operation operation}, 031 * but not feature type. 032 * 033 * <p>Property types typically define the following properties:</p> 034 * <ul> 035 * <li>A name and a human-readable description.</li> 036 * <li>The type of values (in {@link AttributeType} and {@link FeatureAssociationRole}).</li> 037 * <li>Number of allowable occurrences of the value (in {@link AttributeType} and {@link FeatureAssociationRole}).</li> 038 * <li>A default value (in {@link AttributeType}).</li> 039 * </ul> 040 * 041 * @author Jody Garnett (Refractions Research, Inc.) 042 * @author Justin Deoliveira (The Open Planning Project) 043 * @author Martin Desruisseaux (Geomatys) 044 * @version 3.1 045 * @since 3.1 046 */ 047@Classifier(Stereotype.METACLASS) 048@UML(identifier="PropertyType", specification=ISO_19109) 049public interface PropertyType extends IdentifiedType { 050}