/* * Sifarish: Recommendation Engine * Author: Pranab Ghosh * * Licensed under the Apache License, Version 2.0 (the "License"); you * may not use this file except in compliance with the License. You may * obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. */ package org.sifarish.feature; import java.util.List; import org.sifarish.util.Entity; import org.sifarish.util.Field; import org.sifarish.util.IDistanceStrategy; import java.io.Serializable; /** * @author pranab * */ public class SingleTypeSchema extends TypeSchema implements Serializable { private Entity entity; private int partitioningColumn = -1; /** * @return */ public Entity getEntity() { return entity; } /** * @param entity */ public void setEntity(Entity entity) { this.entity = entity; } /** * @return */ public int getPartitioningColumn() { return partitioningColumn; } /** * @param partitioningColumn */ public void setPartitioningColumn(int partitioningColumn) { this.partitioningColumn = partitioningColumn; } /** * Process structured fields */ public void processStructuredFields() { for (Field field : entity.getFields()) { String distAlgorithm = field.getDistAlgorithm(); if (null != distAlgorithm) { IDistanceStrategy distStrategy = null; if (distAlgorithm.equals("euclidean")) { distStrategy = new EuclideanDistance(1); } else if (distAlgorithm.equals("manhattan")) { distStrategy = new ManhattanDistance(1); } field.setDistStrategy(distStrategy); } } } }