/*- ******************************************************************************* * Copyright (c) 2015 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 * * This file was auto-generated from the NXDL XML definition. * Generated at: 2016-09-28T15:24:07.968+01:00 *******************************************************************************/ package org.eclipse.dawnsci.nexus; import java.util.Map; import org.eclipse.dawnsci.analysis.api.tree.DataNode; import org.eclipse.january.dataset.IDataset; /** * A diffraction grating, as could be used in a soft X-ray monochromator * * @version 1.0 */ public interface NXgrating extends NXobject { public static final String NX_ANGLES = "angles"; public static final String NX_PERIOD = "period"; public static final String NX_DUTY_CYCLE = "duty_cycle"; public static final String NX_DEPTH = "depth"; public static final String NX_DIFFRACTION_ORDER = "diffraction_order"; public static final String NX_DEFLECTION_ANGLE = "deflection_angle"; public static final String NX_INTERIOR_ATMOSPHERE = "interior_atmosphere"; public static final String NX_SUBSTRATE_MATERIAL = "substrate_material"; public static final String NX_SUBSTRATE_DENSITY = "substrate_density"; public static final String NX_SUBSTRATE_THICKNESS = "substrate_thickness"; public static final String NX_COATING_MATERIAL = "coating_material"; public static final String NX_SUBSTRATE_ROUGHNESS = "substrate_roughness"; public static final String NX_COATING_ROUGHNESS = "coating_roughness"; public static final String NX_LAYER_THICKNESS = "layer_thickness"; /** * Blaze or trapezoidal angles, with the angle of the upstream facing edge listed first. Blazed gratings can be identified by the low value of the first-listed angle. * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_ANGLE * <b>Dimensions:</b> 1: 2; * </p> * * @return the value. */ public IDataset getAngles(); /** * Blaze or trapezoidal angles, with the angle of the upstream facing edge listed first. Blazed gratings can be identified by the low value of the first-listed angle. * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_ANGLE * <b>Dimensions:</b> 1: 2; * </p> * * @param angles the angles */ public DataNode setAngles(IDataset angles); /** * Blaze or trapezoidal angles, with the angle of the upstream facing edge listed first. Blazed gratings can be identified by the low value of the first-listed angle. * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_ANGLE * <b>Dimensions:</b> 1: 2; * </p> * * @return the value. */ public Double getAnglesScalar(); /** * Blaze or trapezoidal angles, with the angle of the upstream facing edge listed first. Blazed gratings can be identified by the low value of the first-listed angle. * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_ANGLE * <b>Dimensions:</b> 1: 2; * </p> * * @param angles the angles */ public DataNode setAnglesScalar(Double angles); /** * List of polynomial coefficients describing the spatial separation of lines/grooves as a function of position along the grating, in increasing powers of position. Gratings which do not have variable line spacing will only have a single coefficient (constant). * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * <b>Dimensions:</b> * </p> * * @return the value. */ public IDataset getPeriod(); /** * List of polynomial coefficients describing the spatial separation of lines/grooves as a function of position along the grating, in increasing powers of position. Gratings which do not have variable line spacing will only have a single coefficient (constant). * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * <b>Dimensions:</b> * </p> * * @param period the period */ public DataNode setPeriod(IDataset period); /** * List of polynomial coefficients describing the spatial separation of lines/grooves as a function of position along the grating, in increasing powers of position. Gratings which do not have variable line spacing will only have a single coefficient (constant). * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * <b>Dimensions:</b> * </p> * * @return the value. */ public Double getPeriodScalar(); /** * List of polynomial coefficients describing the spatial separation of lines/grooves as a function of position along the grating, in increasing powers of position. Gratings which do not have variable line spacing will only have a single coefficient (constant). * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * <b>Dimensions:</b> * </p> * * @param period the period */ public DataNode setPeriodScalar(Double period); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_UNITLESS * </p> * * @return the value. */ public IDataset getDuty_cycle(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_UNITLESS * </p> * * @param duty_cycle the duty_cycle */ public DataNode setDuty_cycle(IDataset duty_cycle); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_UNITLESS * </p> * * @return the value. */ public Double getDuty_cycleScalar(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_UNITLESS * </p> * * @param duty_cycle the duty_cycle */ public DataNode setDuty_cycleScalar(Double duty_cycle); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @return the value. */ public IDataset getDepth(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @param depth the depth */ public DataNode setDepth(IDataset depth); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @return the value. */ public Double getDepthScalar(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @param depth the depth */ public DataNode setDepthScalar(Double depth); /** * <p> * <b>Type:</b> NX_INT * <b>Units:</b> NX_UNITLESS * </p> * * @return the value. */ public IDataset getDiffraction_order(); /** * <p> * <b>Type:</b> NX_INT * <b>Units:</b> NX_UNITLESS * </p> * * @param diffraction_order the diffraction_order */ public DataNode setDiffraction_order(IDataset diffraction_order); /** * <p> * <b>Type:</b> NX_INT * <b>Units:</b> NX_UNITLESS * </p> * * @return the value. */ public Long getDiffraction_orderScalar(); /** * <p> * <b>Type:</b> NX_INT * <b>Units:</b> NX_UNITLESS * </p> * * @param diffraction_order the diffraction_order */ public DataNode setDiffraction_orderScalar(Long diffraction_order); /** * Angle between the incident beam and the utilised outgoing beam. * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_ANGLE * </p> * * @return the value. */ public IDataset getDeflection_angle(); /** * Angle between the incident beam and the utilised outgoing beam. * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_ANGLE * </p> * * @param deflection_angle the deflection_angle */ public DataNode setDeflection_angle(IDataset deflection_angle); /** * Angle between the incident beam and the utilised outgoing beam. * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_ANGLE * </p> * * @return the value. */ public Double getDeflection_angleScalar(); /** * Angle between the incident beam and the utilised outgoing beam. * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_ANGLE * </p> * * @param deflection_angle the deflection_angle */ public DataNode setDeflection_angleScalar(Double deflection_angle); /** * <p> * <p><b>Enumeration:</b><ul> * <li><b>vacuum</b> </li> * <li><b>helium</b> </li> * <li><b>argon</b> </li></ul></p> * </p> * * @return the value. */ public IDataset getInterior_atmosphere(); /** * <p> * <p><b>Enumeration:</b><ul> * <li><b>vacuum</b> </li> * <li><b>helium</b> </li> * <li><b>argon</b> </li></ul></p> * </p> * * @param interior_atmosphere the interior_atmosphere */ public DataNode setInterior_atmosphere(IDataset interior_atmosphere); /** * <p> * <p><b>Enumeration:</b><ul> * <li><b>vacuum</b> </li> * <li><b>helium</b> </li> * <li><b>argon</b> </li></ul></p> * </p> * * @return the value. */ public String getInterior_atmosphereScalar(); /** * <p> * <p><b>Enumeration:</b><ul> * <li><b>vacuum</b> </li> * <li><b>helium</b> </li> * <li><b>argon</b> </li></ul></p> * </p> * * @param interior_atmosphere the interior_atmosphere */ public DataNode setInterior_atmosphereScalar(String interior_atmosphere); /** * * @return the value. */ public IDataset getSubstrate_material(); /** * * @param substrate_material the substrate_material */ public DataNode setSubstrate_material(IDataset substrate_material); /** * * @return the value. */ public String getSubstrate_materialScalar(); /** * * @param substrate_material the substrate_material */ public DataNode setSubstrate_materialScalar(String substrate_material); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_MASS_DENSITY * </p> * * @return the value. */ public IDataset getSubstrate_density(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_MASS_DENSITY * </p> * * @param substrate_density the substrate_density */ public DataNode setSubstrate_density(IDataset substrate_density); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_MASS_DENSITY * </p> * * @return the value. */ public Double getSubstrate_densityScalar(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_MASS_DENSITY * </p> * * @param substrate_density the substrate_density */ public DataNode setSubstrate_densityScalar(Double substrate_density); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @return the value. */ public IDataset getSubstrate_thickness(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @param substrate_thickness the substrate_thickness */ public DataNode setSubstrate_thickness(IDataset substrate_thickness); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @return the value. */ public Double getSubstrate_thicknessScalar(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @param substrate_thickness the substrate_thickness */ public DataNode setSubstrate_thicknessScalar(Double substrate_thickness); /** * * @return the value. */ public IDataset getCoating_material(); /** * * @param coating_material the coating_material */ public DataNode setCoating_material(IDataset coating_material); /** * * @return the value. */ public String getCoating_materialScalar(); /** * * @param coating_material the coating_material */ public DataNode setCoating_materialScalar(String coating_material); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @return the value. */ public IDataset getSubstrate_roughness(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @param substrate_roughness the substrate_roughness */ public DataNode setSubstrate_roughness(IDataset substrate_roughness); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @return the value. */ public Double getSubstrate_roughnessScalar(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @param substrate_roughness the substrate_roughness */ public DataNode setSubstrate_roughnessScalar(Double substrate_roughness); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @return the value. */ public IDataset getCoating_roughness(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @param coating_roughness the coating_roughness */ public DataNode setCoating_roughness(IDataset coating_roughness); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @return the value. */ public Double getCoating_roughnessScalar(); /** * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @param coating_roughness the coating_roughness */ public DataNode setCoating_roughnessScalar(Double coating_roughness); /** * An array describing the thickness of each layer * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @return the value. */ public IDataset getLayer_thickness(); /** * An array describing the thickness of each layer * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @param layer_thickness the layer_thickness */ public DataNode setLayer_thickness(IDataset layer_thickness); /** * An array describing the thickness of each layer * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @return the value. */ public Double getLayer_thicknessScalar(); /** * An array describing the thickness of each layer * <p> * <b>Type:</b> NX_FLOAT * <b>Units:</b> NX_LENGTH * </p> * * @param layer_thickness the layer_thickness */ public DataNode setLayer_thicknessScalar(Double layer_thickness); /** * A NXshape group describing the shape of the mirror * * @return the value. */ public NXshape getShape(); /** * A NXshape group describing the shape of the mirror * * @param shape the shape */ public void setShape(NXshape shape); /** * Numerical description of the surface figure of the mirror. * * @return the value. */ public NXdata getFigure_data(); /** * Numerical description of the surface figure of the mirror. * * @param figure_data the figure_data */ public void setFigure_data(NXdata figure_data); /** * "Engineering" position of the grating * * @return the value. */ public NXtransformations getTransformations(); /** * "Engineering" position of the grating * * @param transformations the transformations */ public void setTransformations(NXtransformations transformations); /** * Get a NXtransformations node by name: * <ul> * <li> * "Engineering" position of the grating</li> * </ul> * * @param name the name of the node. * @return a map from node names to the NXtransformations for that node. */ public NXtransformations getTransformations(String name); /** * Set a NXtransformations node by name: * <ul> * <li> * "Engineering" position of the grating</li> * </ul> * * @param name the name of the node * @param transformations the value to set */ public void setTransformations(String name, NXtransformations transformations); /** * Get all NXtransformations nodes: * <ul> * <li> * "Engineering" position of the grating</li> * </ul> * * @return a map from node names to the NXtransformations for that node. */ public Map<String, NXtransformations> getAllTransformations(); /** * Set multiple child nodes of a particular type. * <ul> * <li> * "Engineering" position of the grating</li> * </ul> * * @param transformations the child nodes to add */ public void setAllTransformations(Map<String, NXtransformations> transformations); }