All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.rgi.geopackage.metadata.MetadataReference Maven / Gradle / Ivy

The newest version!
/* The MIT License (MIT)
 *
 * Copyright (c) 2015 Reinventing Geospatial, Inc.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

package com.rgi.geopackage.metadata;


/**
 * Links metadata in the gpkg_metadata table to data in the feature, and tiles tables.
 *
 * @see OGC® GeoPackage Encoding Standard - 2.4.3. Metadata Reference Table
 *
 * @author Luke Lambert
 *
 */
public class MetadataReference
{
    /**
     * Constructor
     *
     * @param referenceScope
     *             Lowercase metadata reference scope; one of 'geopackage', 'table', 'column', 'row', 'row/col'
     * @param tableName
     *             Name of the table to which this metadata reference applies, or NULL for referenceScope of 'geopackage'
     * @param columnName
     *             Name of the column to which this metadata reference applies; NULL for referenceScope of 'geopackage','table' or 'row', or the name of a column in the tableName table for referenceScope of 'column' or 'row/col'
     * @param rowIdentifier
     *             NULL for referenceScope of 'geopackage', 'table' or 'column', or the rowed of a row record in the table_name table for referenceScope of 'row' or 'row/col'
     * @param timestamp
     *             Timestamp value
     * @param fileIdentifier
     *             gpkg_metadata table identifier column value for the metadata to which this gpkg_metadata_reference applies
     * @param parentIdentifier
     *             gpkg_metadata table identifier column value for the hierarchical parent gpkg_metadata for the gpkg_metadata to which this gpkg_metadata_reference applies, or NULL if file identifier forms the root of a metadata hierarchy
     */
    protected MetadataReference(final String  referenceScope,
                                final String  tableName,
                                final String  columnName,
                                final Integer rowIdentifier,
                                final String  timestamp,
                                final int     fileIdentifier,
                                final Integer parentIdentifier)
    {
        this.referenceScope   = referenceScope;
        this.tableName        = tableName;
        this.columnName       = columnName;
        this.rowIdentifier    = rowIdentifier;
        this.timestamp        = timestamp;
        this.fileIdentifier   = fileIdentifier;
        this.parentIdentifier = parentIdentifier;
    }

    /**
     * @return the referenceScope
     */
    public String getReferenceScope()
    {
        return this.referenceScope;
    }

    /**
     * @return the tableName
     */
    public String getTableName()
    {
        return this.tableName;
    }

    /**
     * @return the columnName
     */
    public String getColumnName()
    {
        return this.columnName;
    }

    /**
     * @return the rowIdentifier
     */
    public Integer getRowIdentifier()
    {
        return this.rowIdentifier;
    }

    /**
     * @return the timestamp
     */
    public String getTimestamp()
    {
        return this.timestamp;
    }

    /**
     * @return the fileIdentifier
     */
    public int getFileIdentifier()
    {
        return this.fileIdentifier;
    }

    /**
     * @return the parentIdentifier
     */
    public Integer getParentIdentifier()
    {
        return this.parentIdentifier;
    }
    private final String  referenceScope;
    private final String  tableName;
    private final String  columnName;
    private final Integer rowIdentifier;
    private final String  timestamp;
    private final int     fileIdentifier;
    private final Integer parentIdentifier;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy