All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.dawnsci.nexus.builder.data.impl.PrimaryDataFieldModel Maven / Gradle / Ivy

/*-
 *******************************************************************************
 * Copyright (c) 2011, 2016 Diamond Light Source Ltd.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Matthew Gerring - initial API and implementation and/or initial documentation
 *******************************************************************************/
package org.eclipse.dawnsci.nexus.builder.data.impl;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * Models the mappings for a primary data field from the other data fields within the same device. 
 * @author Matthew Dickie
 */
public class PrimaryDataFieldModel {
	
	private static final class AxisFieldDimensionModel {
		
		private final Integer defaultAxisDimension;
		private final int[] dimensionMappings;
		
		AxisFieldDimensionModel(Integer defaultAxisDimension, int[] dimensionMappings) {
			this.defaultAxisDimension = defaultAxisDimension;
			this.dimensionMappings = dimensionMappings;
		}

		public Integer getDefaultAxisDimension() {
			return defaultAxisDimension;
		}

		public int[] getDimensionMappings() {
			return dimensionMappings;
		}
		
	}
	
	private final Map axisFieldDimensionModels = new LinkedHashMap<>();

	public void addAxisField(String axisFieldName, Integer defaultAxisDimension,
			int[] dimensionMappings) {
		axisFieldDimensionModels.put(axisFieldName,
				new AxisFieldDimensionModel(defaultAxisDimension, dimensionMappings));
	}
	
	public List getAxisFieldNames() {
		return new ArrayList<>(axisFieldDimensionModels.keySet());
	}
	
	public Integer getDefaultAxisDimension(String dataFieldName) {
		AxisFieldDimensionModel axisFieldDimensionModel = axisFieldDimensionModels.get(dataFieldName);
		if (axisFieldDimensionModel != null) {
			return axisFieldDimensionModel.getDefaultAxisDimension();
		}
		
		return null;
	}
	
	public int[] getDimensionMappings(String dataFieldName) {
		AxisFieldDimensionModel axisFieldDimensionModel = axisFieldDimensionModels.get(dataFieldName);
		if (axisFieldDimensionModel != null) {
			return axisFieldDimensionModel.getDimensionMappings();
		}
		
		return null;
	}
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy