/*
* This file is part of the HyperGraphDB source distribution. This is copyrighted
* software. For permitted uses, licensing options and redistribution, please see
* the LicensingInformation file at the root level of the distribution.
*
* Copyright (c) 2005-2010 Kobrix Software, Inc. All rights reserved.
*/
package org.hypergraphdb.type;
/**
* <p>
* A <code>HGCompositeType</code> represents a HyperGraph type with several
* dimensions. Each dimension has a name and is represented by a <code>HGProjection</code>.
* </p>
*
* @author Borislav Iordanov
*/
public interface HGCompositeType extends HGAtomType
{
/**
* <p>Return an <code>Iterator</code> listing the names of all
* dimensions of this composite type. A projection function can be obtained
* through the <code>getProjection</code> method.
* </p>
*/
java.util.Iterator<String> getDimensionNames();
/**
* <p>Get the projection function for a particular dimension.</p>
*
* @param dimensionName The name of the dimension.
* @return The <code>HGProjection</code> instance.
*/
HGProjection getProjection(String dimensionName);
}