/* * 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: * HUMBOLDT EU Integrated Project #030962 * Data Harmonisation Panel <http://www.dhpanel.eu> */ package eu.esdihumboldt.hale.common.align.model; import java.util.List; import eu.esdihumboldt.hale.common.instance.model.Filter; import eu.esdihumboldt.hale.common.schema.SchemaSpaceID; import eu.esdihumboldt.hale.common.schema.model.Definition; import eu.esdihumboldt.hale.common.schema.model.TypeDefinition; /** * Definition of an entity. Represents either a type or a property. * * @author Simon Templer * @since 2.5 */ public interface EntityDefinition { /** * Get the definition of the type or property represented by the entity * definition. * * @return the definition of the type or property */ public Definition<?> getDefinition(); /** * Get the type definition that is associated with the entity. This is * either the type represented by the entity or the topmost parent to the * property represented by the entity. * * @return the type definition */ public TypeDefinition getType(); /** * Get the filter applied to the entity type. * * @return the entity filter, may be <code>null</code> */ public Filter getFilter(); /** * Get the property path. Each path item is an instance context name paired * with a child definition. The default instance context name is * <code>null</code>. * * @return the path down to the property represented by the entity, an empty * list if the entity represents a type */ public List<ChildContext> getPropertyPath(); /** * Get the schema space the entity definition is associated to. The schema * space itself is no characteristic of the entity, but is needed as * additional information to differentiate between source and target schema * entities with the same names. * * @return the identifier of the entity definition's schema space */ public SchemaSpaceID getSchemaSpace(); }