package de.lmu.ifi.dbs.elki.data.projection; import de.lmu.ifi.dbs.elki.data.type.SimpleTypeInformation; import de.lmu.ifi.dbs.elki.data.type.TypeInformation; /* This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures Copyright (C) 2012 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ /** * Projection interface. * * @author Erich Schubert * * @param Input data type * @param Output data type */ public interface Projection { /** * Project a single instance. * * @param data Data to project * @return Projected data */ public OUT project(IN data); /** * Output type restriction * * @return Output type */ public SimpleTypeInformation getOutputDataTypeInformation(); /** * Input type information. * * @return Type restriction */ public TypeInformation getInputDataTypeInformation(); }