gt: 		return setDataset(NX_INTEGRAL, integral);
context: /*-
   *******************************************************************************
   * 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-02-10T11:48:37.34Z
   *******************************************************************************/
  
  package org.eclipse.dawnsci.nexus.impl;
  
  import java.util.Date;
  import java.util.Set;
  import java.util.EnumSet;
  import java.util.Map;
  
  import org.eclipse.dawnsci.analysis.api.tree.DataNode;
  
  import org.eclipse.dawnsci.analysis.api.dataset.IDataset;
  
  import org.eclipse.dawnsci.nexus.*;
  
  /**
   * Template of monitor data. It is similar to the NXdata groups containing
   * monitor data and its associated dimension scale, e.g. time_of_flight or
   * wavelength in pulsed neutron instruments. However, it may also include
   * integrals, or scalar monitor counts, which are often used in both in both
   * pulsed and steady-state instrumentation.
   * 
   * @version 1.0
   */
  public class NXmonitorImpl extends NXobjectImpl implements NXmonitor {
  
  	private static final long serialVersionUID = 1L;  // no state in this class, so always compatible
  
  
  	public static final Set<NexusBaseClass> PERMITTED_CHILD_GROUP_CLASSES = EnumSet.of(
  		NexusBaseClass.NX_LOG,
  		NexusBaseClass.NX_GEOMETRY);
  
  	public NXmonitorImpl(final NexusNodeFactory nodeFactory) {
  		super(nodeFactory);
  	}
  
  	public NXmonitorImpl(final long oid) {
  		super(oid);
  	}
  	
  	@Override
  	public Class<? extends NXobject> getNXclass() {
  		return NXmonitor.class;
  	}
  	
  	@Override
  	public NexusBaseClass getNexusBaseClass() {
  		return NexusBaseClass.NX_MONITOR;
  	}
  	
  	@Override
  	public Set<NexusBaseClass> getPermittedChildGroupClasses() {
  		return PERMITTED_CHILD_GROUP_CLASSES;
  	}
  	
  
  	@Override
  	public IDataset getMode() {
  		return getDataset(NX_MODE);
  	}
  
  	@Override
  	public String getModeScalar() {
  		return getString(NX_MODE);
  	}
  
  	@Override
  	public DataNode setMode(IDataset mode) {
  		return setDataset(NX_MODE, mode);
  	}
  
  	@Override
  	public DataNode setModeScalar(String mode) {
  		return setString(NX_MODE, mode);
  	}
  
  	@Override
  	public IDataset getStart_time() {
  		return getDataset(NX_START_TIME);
  	}
  
  	@Override
  	public Date getStart_timeScalar() {
  		return getDate(NX_START_TIME);
  	}
  
  	@Override
  	public DataNode setStart_time(IDataset start_time) {
  		return setDataset(NX_START_TIME, start_time);
  	}
  
  	@Override
  	public DataNode setStart_timeScalar(Date start_time) {
  		return setDate(NX_START_TIME, start_time);
  	}
  
  	@Override
  	public IDataset getEnd_time() {
  		return getDataset(NX_END_TIME);
  	}
  
  	@Override
  	public Date getEnd_timeScalar() {
  		return getDate(NX_END_TIME);
  	}
  
  	@Override
  	public DataNode setEnd_time(IDataset end_time) {
  		return setDataset(NX_END_TIME, end_time);
  	}
  
  	@Override
  	public DataNode setEnd_timeScalar(Date end_time) {
  		return setDate(NX_END_TIME, end_time);
  	}
  
  	@Override
  	public IDataset getPreset() {
  		return getDataset(NX_PRESET);
  	}
  
  	@Override
  	public Number getPresetScalar() {
  		return getNumber(NX_PRESET);
  	}
  
  	@Override
  	public DataNode setPreset(IDataset preset) {
  		return setDataset(NX_PRESET, preset);
  	}
  
  	@Override
  	public DataNode setPresetScalar(Number preset) {
  		return setField(NX_PRESET, preset);
  	}
  
  	@Override
  	public IDataset getDistance() {
  		return getDataset(NX_DISTANCE);
  	}
  
  	@Override
  	public double getDistanceScalar() {
  		return getDouble(NX_DISTANCE);
  	}
  
  	@Override
  	public DataNode setDistance(IDataset distance) {
  		return setDataset(NX_DISTANCE, distance);
  	}
  
  	@Override
  	public DataNode setDistanceScalar(double distance) {
  		return setField(NX_DISTANCE, distance);
  	}
  
  	@Override
  	public IDataset getRange() {
  		return getDataset(NX_RANGE);
  	}
  
  	@Override
  	public double getRangeScalar() {
  		return getDouble(NX_RANGE);
  	}
  
  	@Override
  	public DataNode setRange(IDataset range) {
  		return setDataset(NX_RANGE, range);
  	}
  
  	@Override
  	public DataNode setRangeScalar(double range) {
  		return setField(NX_RANGE, range);
  	}
  
  	@Override
  	public IDataset getNominal() {
  		return getDataset(NX_NOMINAL);
  	}
  
  	@Override
  	public Number getNominalScalar() {
  		return getNumber(NX_NOMINAL);
  	}
  
  	@Override
  	public DataNode setNominal(IDataset nominal) {
  		return setDataset(NX_NOMINAL, nominal);
  	}
  
  	@Override
  	public DataNode setNominalScalar(Number nominal) {
  		return setField(NX_NOMINAL, nominal);
  	}
  
  	@Override
  	public IDataset getIntegral() {
  		return getDataset(NX_INTEGRAL);
  	}
  
  	@Override
  	public Number getIntegralScalar() {
  		return getNumber(NX_INTEGRAL);
  	}
  
  	@Override
  	public DataNode setIntegral(IDataset integral) {
  