src/core/net/sf/basedb/util/overview/validator/AnyToAnyValidator.java

Code
Comments
Other
Rev Date Author Line
5500 18 Nov 10 nicklas 1 /**
5500 18 Nov 10 nicklas 2   $Id$
5500 18 Nov 10 nicklas 3
5500 18 Nov 10 nicklas 4   Copyright (C) 2010 Nicklas Nordborg
5500 18 Nov 10 nicklas 5
5500 18 Nov 10 nicklas 6   This file is part of BASE - BioArray Software Environment.
5500 18 Nov 10 nicklas 7   Available at http://base.thep.lu.se/
5500 18 Nov 10 nicklas 8
5500 18 Nov 10 nicklas 9   BASE is free software; you can redistribute it and/or
5500 18 Nov 10 nicklas 10   modify it under the terms of the GNU General Public License
5500 18 Nov 10 nicklas 11   as published by the Free Software Foundation; either version 3
5500 18 Nov 10 nicklas 12   of the License, or (at your option) any later version.
5500 18 Nov 10 nicklas 13
5500 18 Nov 10 nicklas 14   BASE is distributed in the hope that it will be useful,
5500 18 Nov 10 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
5500 18 Nov 10 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
5500 18 Nov 10 nicklas 17   GNU General Public License for more details.
5500 18 Nov 10 nicklas 18
5500 18 Nov 10 nicklas 19   You should have received a copy of the GNU General Public License
5500 18 Nov 10 nicklas 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
5500 18 Nov 10 nicklas 21 */
5500 18 Nov 10 nicklas 22 package net.sf.basedb.util.overview.validator;
5500 18 Nov 10 nicklas 23
5500 18 Nov 10 nicklas 24 import net.sf.basedb.core.AnyToAny;
5500 18 Nov 10 nicklas 25 import net.sf.basedb.core.DbControl;
5500 18 Nov 10 nicklas 26 import net.sf.basedb.core.ItemNotFoundException;
5500 18 Nov 10 nicklas 27 import net.sf.basedb.core.PermissionDeniedException;
5500 18 Nov 10 nicklas 28 import net.sf.basedb.util.overview.Fix;
5500 18 Nov 10 nicklas 29 import net.sf.basedb.util.overview.Node;
5500 18 Nov 10 nicklas 30 import net.sf.basedb.util.overview.OverviewContext;
5500 18 Nov 10 nicklas 31 import net.sf.basedb.util.overview.Validator;
5500 18 Nov 10 nicklas 32
5500 18 Nov 10 nicklas 33 /**
5500 18 Nov 10 nicklas 34   Validator implementation for any-to-any links. Validation rules:
5500 18 Nov 10 nicklas 35   <ul>
5500 18 Nov 10 nicklas 36   <li>Missing item: {@link Validator#MISSING_ANYTOANY}
5500 18 Nov 10 nicklas 37   <li>Access denied: {@link Validator#DENIED_ANYTOANY}
5500 18 Nov 10 nicklas 38   </ul>
5500 18 Nov 10 nicklas 39
5500 18 Nov 10 nicklas 40   @author Nicklas
5500 18 Nov 10 nicklas 41   @since 2.17
5500 18 Nov 10 nicklas 42   @base.modified $Date$
5500 18 Nov 10 nicklas 43 */
5500 18 Nov 10 nicklas 44 public class AnyToAnyValidator
5500 18 Nov 10 nicklas 45   extends BasicNodeValidator<AnyToAny>
5500 18 Nov 10 nicklas 46 {
5500 18 Nov 10 nicklas 47
5500 18 Nov 10 nicklas 48   public AnyToAnyValidator()
5500 18 Nov 10 nicklas 49   {
5500 18 Nov 10 nicklas 50     super(null, null);
5500 18 Nov 10 nicklas 51   }
5500 18 Nov 10 nicklas 52   
5500 18 Nov 10 nicklas 53   /*
5500 18 Nov 10 nicklas 54     From BasicNodeValidator class
5500 18 Nov 10 nicklas 55     -----------------------------
5500 18 Nov 10 nicklas 56   */
5500 18 Nov 10 nicklas 57   @Override
5500 18 Nov 10 nicklas 58   public void postValidate(DbControl dc, OverviewContext context, Node node, Node parentNode)
5500 18 Nov 10 nicklas 59   {
5500 18 Nov 10 nicklas 60     super.postValidate(dc, context, node, parentNode);
5500 18 Nov 10 nicklas 61     if (parentNode.getNodeType() == Node.Type.FOLDER) parentNode = parentNode.getParent();
5500 18 Nov 10 nicklas 62     
5500 18 Nov 10 nicklas 63     AnyToAny any = (AnyToAny)node.getItem();
5500 18 Nov 10 nicklas 64     try
5500 18 Nov 10 nicklas 65     {
5500 18 Nov 10 nicklas 66       any.getTo();
5500 18 Nov 10 nicklas 67     }
5500 18 Nov 10 nicklas 68     catch (PermissionDeniedException ex)
5500 18 Nov 10 nicklas 69     {
5500 18 Nov 10 nicklas 70       context.createFailure(Validator.DENIED_ANYTOANY, node, 
5500 18 Nov 10 nicklas 71         "Access denied to " + any.getName() + " (" + any.getToType() + ")");
5500 18 Nov 10 nicklas 72     }
5500 18 Nov 10 nicklas 73     catch (ItemNotFoundException ex)
5500 18 Nov 10 nicklas 74     {
5500 18 Nov 10 nicklas 75       context.createFailure(Validator.MISSING_ANYTOANY, node, 
5500 18 Nov 10 nicklas 76           "Missing " + any.getName() + " (" + any.getToType() + "; id=" + any.getToId() + ")");
5500 18 Nov 10 nicklas 77     }
5500 18 Nov 10 nicklas 78   }
5500 18 Nov 10 nicklas 79   
5500 18 Nov 10 nicklas 80   /**
5500 18 Nov 10 nicklas 81     @return Always "null"
5500 18 Nov 10 nicklas 82   */
5500 18 Nov 10 nicklas 83   @Override
5651 08 Jun 11 nicklas 84   protected Fix getMissingItemFix(DbControl dc, Node parentNode)
5500 18 Nov 10 nicklas 85   {
5500 18 Nov 10 nicklas 86     return null;
5500 18 Nov 10 nicklas 87   }
5500 18 Nov 10 nicklas 88   // -------------------------------
5500 18 Nov 10 nicklas 89 }