src/core/net/sf/basedb/util/listable/ExtractToPhysicalBioAssayTransformer.java

Code
Comments
Other
Rev Date Author Line
6790 20 Mar 15 nicklas 1 /**
6790 20 Mar 15 nicklas 2   $Id$
6790 20 Mar 15 nicklas 3
6790 20 Mar 15 nicklas 4   Copyright (C) 2015 Nicklas Nordborg
6790 20 Mar 15 nicklas 5
6790 20 Mar 15 nicklas 6   This file is part of BASE - BioArray Software Environment.
6790 20 Mar 15 nicklas 7   Available at http://base.thep.lu.se/
6790 20 Mar 15 nicklas 8
6790 20 Mar 15 nicklas 9   BASE is free software; you can redistribute it and/or
6790 20 Mar 15 nicklas 10   modify it under the terms of the GNU General Public License
6790 20 Mar 15 nicklas 11   as published by the Free Software Foundation; either version 3
6790 20 Mar 15 nicklas 12   of the License, or (at your option) any later version.
6790 20 Mar 15 nicklas 13
6790 20 Mar 15 nicklas 14   BASE is distributed in the hope that it will be useful,
6790 20 Mar 15 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
6790 20 Mar 15 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
6790 20 Mar 15 nicklas 17   GNU General Public License for more details.
6790 20 Mar 15 nicklas 18
6790 20 Mar 15 nicklas 19   You should have received a copy of the GNU General Public License
6790 20 Mar 15 nicklas 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
6790 20 Mar 15 nicklas 21 */
6790 20 Mar 15 nicklas 22 package net.sf.basedb.util.listable;
6790 20 Mar 15 nicklas 23
6790 20 Mar 15 nicklas 24 import java.util.Set;
6790 20 Mar 15 nicklas 25
6790 20 Mar 15 nicklas 26 import net.sf.basedb.core.Item;
6790 20 Mar 15 nicklas 27 import net.sf.basedb.core.ItemQuery;
6790 20 Mar 15 nicklas 28 import net.sf.basedb.core.PhysicalBioAssay;
6790 20 Mar 15 nicklas 29 import net.sf.basedb.core.query.Expressions;
6790 20 Mar 15 nicklas 30 import net.sf.basedb.core.query.Hql;
6790 20 Mar 15 nicklas 31 import net.sf.basedb.core.query.Restrictions;
6790 20 Mar 15 nicklas 32
6790 20 Mar 15 nicklas 33 /**
6790 20 Mar 15 nicklas 34   Source item transformer implementation that transform extract items to physical bioassays. 
6790 20 Mar 15 nicklas 35   
6790 20 Mar 15 nicklas 36   @author Nicklas
6790 20 Mar 15 nicklas 37   @since 3.5
6790 20 Mar 15 nicklas 38 */
6790 20 Mar 15 nicklas 39 public class ExtractToPhysicalBioAssayTransformer 
6790 20 Mar 15 nicklas 40   extends AbstractSourceItemTransformer
6790 20 Mar 15 nicklas 41 {
6790 20 Mar 15 nicklas 42
6790 20 Mar 15 nicklas 43   /**
6790 20 Mar 15 nicklas 44     Create a new extract to physical bioassay transformer.
6790 20 Mar 15 nicklas 45   */
6790 20 Mar 15 nicklas 46   public ExtractToPhysicalBioAssayTransformer() 
6790 20 Mar 15 nicklas 47   {
6790 20 Mar 15 nicklas 48     super(Item.EXTRACT, Item.PHYSICALBIOASSAY);
6790 20 Mar 15 nicklas 49   }
6790 20 Mar 15 nicklas 50   
6790 20 Mar 15 nicklas 51   @Override
6790 20 Mar 15 nicklas 52   public Set<Integer> transform(TransformContext context, Set<Integer> source) 
6790 20 Mar 15 nicklas 53   {
8094 04 Nov 22 nicklas 54     context.collect(getSourceItemType(), source);
6790 20 Mar 15 nicklas 55     ItemQuery<PhysicalBioAssay> query = PhysicalBioAssay.getQuery();
6848 13 Apr 15 nicklas 56     query.setIncludes(context.getInclude());
6790 20 Mar 15 nicklas 57     query.join(Hql.innerJoin("creationEvent", "ce"));
6790 20 Mar 15 nicklas 58     query.join(Hql.innerJoin("ce", "sources", "sbm"));
6790 20 Mar 15 nicklas 59     query.join(Hql.innerJoin("sbm", "bioMaterial", "bm"));
6790 20 Mar 15 nicklas 60     query.restrict(
6790 20 Mar 15 nicklas 61       Restrictions.in(
6790 20 Mar 15 nicklas 62         Hql.alias("bm"), 
6790 20 Mar 15 nicklas 63         Expressions.parameter("parents")
6790 20 Mar 15 nicklas 64       ));
8094 04 Nov 22 nicklas 65     return context.avoid(getTargetItemType(), safeIdList(context.getDbControl(), query, "parents", source));
6790 20 Mar 15 nicklas 66   }
6790 20 Mar 15 nicklas 67
6790 20 Mar 15 nicklas 68
6790 20 Mar 15 nicklas 69 }