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

com.hfg.automation.platelayer.PlateVolumeAdjustmentLayer Maven / Gradle / Ivy

There is a newer version: 20240423
Show newest version
package com.hfg.automation.platelayer;


import java.util.Collection;

import com.hfg.automation.AutomationXML;
import com.hfg.automation.WellRef;
import com.hfg.automation.plateop.VolumeMask;
import com.hfg.units.Quantity;
import com.hfg.xml.XMLNode;

//------------------------------------------------------------------------------
/**
 Plate layer for specifying per-well volume adjustments.
 
@author J. Alex Taylor, hairyfatguy.com
*/ //------------------------------------------------------------------------------ // com.hfg XML/HTML Coding Library // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com // [email protected] //------------------------------------------------------------------------------ public class PlateVolumeAdjustmentLayer extends PlateLayerImpl { private VolumeMask mVolumeMask = new VolumeMask(); //########################################################################### // CONSTRUCTORS //########################################################################### //-------------------------------------------------------------------------- public PlateVolumeAdjustmentLayer() { } //-------------------------------------------------------------------------- public PlateVolumeAdjustmentLayer(XMLNode inXML) { super(inXML); XMLNode volumeMaskTag = inXML.getOptionalSubtagByName(AutomationXML.VOLUME_MASK); if (volumeMaskTag != null) { mVolumeMask = new VolumeMask(volumeMaskTag); } } //########################################################################### // PUBLIC METHODS //########################################################################### //--------------------------------------------------------------------------- public XMLNode toXMLNode() { XMLNode node = super.toXMLNode(); if (getVolumeMask() != null) { node.addSubtag(getVolumeMask().toXMLNode()); } return node; } //-------------------------------------------------------------------------- @Override public PlateVolumeAdjustmentLayer clone() { PlateVolumeAdjustmentLayer theClone = (PlateVolumeAdjustmentLayer) super.clone(); theClone.mVolumeMask = mVolumeMask.clone(); return theClone; } //--------------------------------------------------------------------------- public Quantity getVolumeAdjustment(WellRef inWellRef) { return getVolumeMask().getVolume(inWellRef); } //--------------------------------------------------------------------------- public VolumeMask getVolumeMask() { return mVolumeMask; } //--------------------------------------------------------------------------- public PlateVolumeAdjustmentLayer setVolume(WellRef inWellRef, Quantity inValue) { getVolumeMask().setVolume(inWellRef, inValue); return this; } //--------------------------------------------------------------------------- public PlateVolumeAdjustmentLayer addVolume(WellRef inWellRef, Quantity inValue) { getVolumeMask().addVolume(inWellRef, inValue); return this; } //--------------------------------------------------------------------------- public PlateVolumeAdjustmentLayer subtractVolume(WellRef inWellRef, Quantity inValue) { getVolumeMask().subtractVolume(inWellRef, inValue); return this; } //--------------------------------------------------------------------------- @Override public Collection getOccupiedWellRefs() { return getVolumeMask().getOccupiedWellRefs(); } //--------------------------------------------------------------------------- @Override public WellLayer getWellLayer(WellRef inWellRef) { WellVolumeAdjustmentLayer wellLayer = null; Quantity volume = getVolumeMask().getVolume(inWellRef); if (volume != null) { wellLayer = new WellVolumeAdjustmentLayer(volume); wellLayer.setName(name()); } return wellLayer; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy