src/core/net/sf/basedb/util/overview/node/BioWellNameGenerator.java

Code
Comments
Other
Rev Date Author Line
6041 02 Apr 12 nicklas 1 /**
6041 02 Apr 12 nicklas 2   $Id$
6041 02 Apr 12 nicklas 3
6041 02 Apr 12 nicklas 4   Copyright (C) 2012 Nicklas Nordborg
6041 02 Apr 12 nicklas 5
6041 02 Apr 12 nicklas 6   This file is part of BASE - BioArray Software Environment.
6041 02 Apr 12 nicklas 7   Available at http://base.thep.lu.se/
6041 02 Apr 12 nicklas 8
6041 02 Apr 12 nicklas 9   BASE is free software; you can redistribute it and/or
6041 02 Apr 12 nicklas 10   modify it under the terms of the GNU General Public License
6041 02 Apr 12 nicklas 11   as published by the Free Software Foundation; either version 3
6041 02 Apr 12 nicklas 12   of the License, or (at your option) any later version.
6041 02 Apr 12 nicklas 13
6041 02 Apr 12 nicklas 14   BASE is distributed in the hope that it will be useful,
6041 02 Apr 12 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
6041 02 Apr 12 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
6041 02 Apr 12 nicklas 17   GNU General Public License for more details.
6041 02 Apr 12 nicklas 18
6041 02 Apr 12 nicklas 19   You should have received a copy of the GNU General Public License
6041 02 Apr 12 nicklas 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
6041 02 Apr 12 nicklas 21 */
6041 02 Apr 12 nicklas 22 package net.sf.basedb.util.overview.node;
6041 02 Apr 12 nicklas 23
6041 02 Apr 12 nicklas 24 import net.sf.basedb.core.BioWell;
6041 02 Apr 12 nicklas 25 import net.sf.basedb.core.MeasuredBioMaterial;
6041 02 Apr 12 nicklas 26 import net.sf.basedb.util.overview.Node;
6041 02 Apr 12 nicklas 27
6041 02 Apr 12 nicklas 28 /**
6041 02 Apr 12 nicklas 29   Name generator implementation for biomaterial items
6041 02 Apr 12 nicklas 30   that are located on a biowell. This name generator is used when
6041 02 Apr 12 nicklas 31   loading biomaterial on a bioplate. 
6041 02 Apr 12 nicklas 32   
6041 02 Apr 12 nicklas 33   @author Nicklas
6041 02 Apr 12 nicklas 34   @since 3.2
6041 02 Apr 12 nicklas 35   @base.modified $Date$
6041 02 Apr 12 nicklas 36 */
6041 02 Apr 12 nicklas 37 public class BioWellNameGenerator
6041 02 Apr 12 nicklas 38   implements NodeNameGenerator<MeasuredBioMaterial>
6041 02 Apr 12 nicklas 39 {
6041 02 Apr 12 nicklas 40
6041 02 Apr 12 nicklas 41   private BioWell currentWell;
6041 02 Apr 12 nicklas 42   
6041 02 Apr 12 nicklas 43   /**
6041 02 Apr 12 nicklas 44     Create a new biowell name generator.
6041 02 Apr 12 nicklas 45   */
6041 02 Apr 12 nicklas 46   public BioWellNameGenerator()
6041 02 Apr 12 nicklas 47   {}
6041 02 Apr 12 nicklas 48   
6041 02 Apr 12 nicklas 49   /*
6041 02 Apr 12 nicklas 50     From the NodeNameGenerator interface
6041 02 Apr 12 nicklas 51     ------------------------------------
6041 02 Apr 12 nicklas 52   */
6041 02 Apr 12 nicklas 53   @Override
6041 02 Apr 12 nicklas 54   public String getNodeTitle(MeasuredBioMaterial item, Node parentNode)
6041 02 Apr 12 nicklas 55   {
6041 02 Apr 12 nicklas 56     return getCurrentTitlePrefix() + item.getName();
6041 02 Apr 12 nicklas 57   }
6041 02 Apr 12 nicklas 58
6041 02 Apr 12 nicklas 59   @Override
6041 02 Apr 12 nicklas 60   public String getNodeName(MeasuredBioMaterial item, Node parentNode) 
6041 02 Apr 12 nicklas 61   {
6041 02 Apr 12 nicklas 62     return getCurrentNodeName();
6041 02 Apr 12 nicklas 63   }
6041 02 Apr 12 nicklas 64
6041 02 Apr 12 nicklas 65   @Override
6041 02 Apr 12 nicklas 66   public String getMissingNodeTitle(Node parentNode) 
6041 02 Apr 12 nicklas 67   {
6041 02 Apr 12 nicklas 68     // Should never happen since the loader is skipping empty wells
6041 02 Apr 12 nicklas 69     // but in just in case...
6041 02 Apr 12 nicklas 70     return getCurrentTitlePrefix() + ": missing";
6041 02 Apr 12 nicklas 71   }
6041 02 Apr 12 nicklas 72
6041 02 Apr 12 nicklas 73   @Override
6041 02 Apr 12 nicklas 74   public String getMissingNodeName(Node parentNode) 
6041 02 Apr 12 nicklas 75   {
6041 02 Apr 12 nicklas 76     return getCurrentNodeName();
6041 02 Apr 12 nicklas 77   }
6041 02 Apr 12 nicklas 78
6041 02 Apr 12 nicklas 79   @Override
6041 02 Apr 12 nicklas 80   public String getDeniedNodeTitle(Node parentNode) 
6041 02 Apr 12 nicklas 81   {
6041 02 Apr 12 nicklas 82     return getCurrentTitlePrefix() + ": denied";
6041 02 Apr 12 nicklas 83   }
6041 02 Apr 12 nicklas 84
6041 02 Apr 12 nicklas 85   @Override
6041 02 Apr 12 nicklas 86   public String getDeniedNodeName(Node parentNode) 
6041 02 Apr 12 nicklas 87   {
6041 02 Apr 12 nicklas 88     return getCurrentNodeName();
6041 02 Apr 12 nicklas 89   }
6041 02 Apr 12 nicklas 90
6041 02 Apr 12 nicklas 91
6041 02 Apr 12 nicklas 92   // -------------------------------------
6041 02 Apr 12 nicklas 93   
6041 02 Apr 12 nicklas 94   /**
6041 02 Apr 12 nicklas 95     Set the well we are currently working with. The name generator need to
6041 02 Apr 12 nicklas 96     know this before trying to generate node names and titles since it is
6041 02 Apr 12 nicklas 97     possible that access to the biomaterial in the well is denied.
6041 02 Apr 12 nicklas 98     @param well The current biowell
6041 02 Apr 12 nicklas 99   */
6041 02 Apr 12 nicklas 100   public void setCurrentWell(BioWell well)
6041 02 Apr 12 nicklas 101   {
6041 02 Apr 12 nicklas 102     this.currentWell = well;
6041 02 Apr 12 nicklas 103   }
6041 02 Apr 12 nicklas 104
6041 02 Apr 12 nicklas 105   private String getCurrentNodeName()
6041 02 Apr 12 nicklas 106   {
6041 02 Apr 12 nicklas 107     return "well." + currentWell.getId();
6041 02 Apr 12 nicklas 108   }
6041 02 Apr 12 nicklas 109
6041 02 Apr 12 nicklas 110   private String getCurrentTitlePrefix()
6041 02 Apr 12 nicklas 111   {
6041 02 Apr 12 nicklas 112     return "[" + currentWell.getCoordinate() + "] ";
6041 02 Apr 12 nicklas 113   }
6041 02 Apr 12 nicklas 114
6041 02 Apr 12 nicklas 115 }