com.adobe.cq.dam.cfm.DataType Maven / Gradle / Ivy
/*
* ADOBE CONFIDENTIAL
*
* Copyright 2017 Adobe Systems Incorporated
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe Systems Incorporated and its suppliers,
* if any. The intellectual and technical concepts contained
* herein are proprietary to Adobe Systems Incorporated and its
* suppliers and may be covered by U.S. and Foreign Patents,
* patents in process, and are protected by trade secret or copyright law.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe Systems Incorporated.
*/
package com.adobe.cq.dam.cfm;
import aQute.bnd.annotation.ProviderType;
import javax.annotation.Nonnull;
/**
* Represents a data type for structured content provided by a Content Fragment.
*
* Data types are used to extend text-based Content Fragments with structured, typed
* data. Fragments with structured data are called Structured Content Fragments.
*
* The defining type strings (@see {@link #getTypeString()}} for available types
* are defined by {@link BasicDataType}.
*
* Additionally, arrays of each data type are supported ("multi-value").
*
* @since 1.1
*/
@ProviderType
public interface DataType {
/**
* Gets the string representation of the data type.
*
* The string representation must be unique and is used to identify the type (and
* some releated data like mappings, etc.) within the repository.
*
* @return The string representation of the data type
*/
@Nonnull
String getTypeString();
/**
* Determines if the data type represents an array of values.
*
* @return {@code true} if the data type represents a collection of values;
* {@code false} if the data type represents a single value
*/
boolean isMultiValue();
}