/* * Copyright (c) 2012 Data Harmonisation Panel * * All rights reserved. This program and the accompanying materials are made * available under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution. If not, see <http://www.gnu.org/licenses/>. * * Contributors: * Data Harmonisation Panel <http://www.dhpanel.eu> */ package eu.esdihumboldt.hale.common.align.tgraph; /** * Transformation graph constants. * * @author Simon Templer */ public interface TGraphConstants { /** * Node types in the transformation graph. */ public enum NodeType { /** Source nodes */ Source, /** Target nodes */ Target, /** Cells */ Cell, } // node properties /** * Property holding the node type. This property is mandatory. */ public static final String P_TYPE = "type"; /** * Property holding the information if a node actually is a proxy for * another node. */ public static final String P_PROXY = "isProxy"; /** * Property holding the associated entity definition. This property is * mandatory for source and target nodes. */ public static final String P_ENTITY = "entity"; /** * Property holding the associated cell. This property is mandatory for cell * nodes. */ public static final String P_CELL = "cell"; /** * Property holding an entity cardinality. Such a property value overrides * the cardinality of the associated entity. * * @see #P_ENTITY * @see TGraphHelpers */ public static final String P_CARDINALITY = "cardinality"; /** * Property holding the original transformation tree node. */ public static final String P_ORG_NODE = "ttreeNode"; // edge properties /** * Property holding the variable names a source node is associated to for * its connection to the cell. */ public static final String P_VAR_NAMES = "varNames"; // edge labels /** * Label for edges between source nodes. */ public static final String EDGE_CHILD = "child"; /** * Label for edges between source nodes and cell nodes. */ public static final String EDGE_VARIABLE = "processedBy"; /** * Label for edges between cell nodes and target nodes. */ public static final String EDGE_RESULT = "result"; /** * Label for edges between target nodes. */ public static final String EDGE_PARENT = "parent"; /** * Label for edges between target nodes. */ public static final String EDGE_PROXY = "proxies"; /** * Label for edges identifying a context match between source and target. */ public static final String EDGE_CONTEXT = "relatesTo"; /** * Edges labels of the core graph, i.e. w/o context matches. */ public static final String[] EDGES_CORE = { EDGE_CHILD, EDGE_VARIABLE, EDGE_RESULT, EDGE_PARENT, EDGE_PROXY }; }