001/*
002 * (C) Copyright 2006-2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
003 *
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the GNU Lesser General Public License
006 * (LGPL) version 2.1 which accompanies this distribution, and is available at
007 * http://www.gnu.org/licenses/lgpl.html
008 *
009 * This library is distributed in the hope that it will be useful,
010 * but WITHOUT ANY WARRANTY; without even the implied warranty of
011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
012 * Lesser General Public License for more details.
013 *
014 * Contributors:
015 *     <a href="mailto:at@nuxeo.com">Anahide Tchertchian</a>
016 *
017 * $Id: IORelationAdapterProperties.java 25081 2007-09-18 14:57:22Z atchertchian $
018 */
019
020package org.nuxeo.ecm.platform.relations.io;
021
022import org.nuxeo.ecm.platform.relations.api.impl.RelationDate;
023
024/**
025 * Map of property names used by the relation adapter.
026 *
027 * @author <a href="mailto:at@nuxeo.com">Anahide Tchertchian</a>
028 */
029public class IORelationAdapterProperties {
030
031    /**
032     * Property representing the graph name where relations should be extracted.
033     */
034    public static final String GRAPH = "graph";
035
036    /**
037     * Property representing the graph name where relations should be imported.
038     * <p>
039     * Defaults to the graph property value.
040     */
041    public static final String IMPORT_GRAPH = "import-graph";
042
043    /**
044     * Property representing a boolean value that indicates if only internal relations must be kept when
045     * exporting/importing.
046     * <p>
047     * For instance, if a document tree is copied, we could chose to ignore relations pointing to documents outside of
048     * the copied tree.
049     * <p>
050     * Default value: false.
051     */
052    public static final String IGNORE_EXTERNAL = "ignore-external";
053
054    /**
055     * Property representing a boolean value that indicates if relations involving literals should be ignored when
056     * importing/exporting.
057     * <p>
058     * Default value: false.
059     */
060    public static final String IGNORE_LITERALS = "ignore-literals";
061
062    /**
063     * Property representing a boolean value that indicates if relations involving resources that are not QName
064     * resources should be ignored when importing/exporting.
065     * <p>
066     * Default value: false.
067     */
068    public static final String IGNORE_SIMPLE_RESOURCES = "ignore-simple-resources";
069
070    /**
071     * Property representing a list of predicates uris that should be filtered.
072     * <p>
073     * If list is not empty, relations using a predicate which is not on this list will not be kept.
074     */
075    public static final String FILTER_PREDICATES = "filter-predicates";
076
077    /**
078     * Property representing a list of predicates uris that should be ignored.
079     * <p>
080     * If list is not empty, relations using a predicate which is on this list will not be kept.
081     */
082    public static final String IGNORE_PREDICATES = "ignore-predicates";
083
084    /**
085     * Property representing a list of metadata uris that should be filtered.
086     * <p>
087     * If list is not empty, metadata (properties) for relations using a uri which is not on this list will not be kept.
088     */
089    public static final String FILTER_METADATA = "filter-metatada";
090
091    /**
092     * Property representing a list of metadata uris that should be ignored.
093     * <p>
094     * If list is not empty, metadata (properties) for relations using a uri which is on this list will not be kept.
095     */
096    public static final String IGNORE_METADATA = "ignore-metatada";
097
098    /**
099     * Property representing a boolean value that indicates if metadata should not be kept when exporting/importing.
100     * <p>
101     * Default value: false.
102     */
103    public static final String IGNORE_ALL_METADATA = "ignore-all-metatada";
104
105    /**
106     * Property representing a list of metadata uris that should be updated.
107     * <p>
108     * If list is not empty, metadata (properties) for relations using a uri which is on this list will be updated to
109     * match current date.
110     * <p>
111     * Current date is set as a literal as described in {@link RelationDate}
112     */
113    public static final String UPDATE_DATE_METADATA = "update-date-metatada";
114
115    // Constant utility class.
116    private IORelationAdapterProperties() {
117    }
118
119}