2.17.2: 2011-06-17

net.sf.basedb.plugins.batchimport
Class FallbackIdMethod

java.lang.Object
  extended by net.sf.basedb.plugins.batchimport.FallbackIdMethod
All Implemented Interfaces:
IdMethod

public class FallbackIdMethod
extends Object
implements IdMethod

Identification method implementation that first tries a parent id method, and, if no item is found and the identifier is a number, tries to load the item by id.

Version:
2.8
Author:
nicklas
Last modified
$Date: 2008-09-11 22:06:36 +0200 (Thu, 11 Sep 2008) $

Field Summary
private  String method
           
static FallbackIdMethod NAME_OR_BARCODE_OR_ID
           
static FallbackIdMethod NAME_OR_EXTERNALID_OR_ID
           
static FallbackIdMethod NAME_OR_ID
          Use the name for finding items.
private  IdMethod parent
           
private  String title
           
 
Constructor Summary
FallbackIdMethod(String method, String title, IdMethod parent)
          Create a new id method.
 
Method Summary
<I extends BasicItem>
List<I>
find(DbControl dc, ItemQuery<I> query, String identifier)
          First, find items using the parent id method.
 String getColumnMappingParameterName()
           
 String getMethod()
          The name of this method, which should be unique among the methods that can be used at a given time.
 String getTitle()
          The display title of the method.
 boolean isTrulyUnique()
          If the identification method is truly unique or not.
<I extends BasicItem>
ItemQuery<I>
prepareQuery(DbControl dc, ItemQuery<I> query)
          Adds a restriction to the query: property = :identifier
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NAME_OR_ID

public static final FallbackIdMethod NAME_OR_ID
Use the name for finding items. If no item is found and the identifier is numerical, try loading it by ID.


NAME_OR_EXTERNALID_OR_ID

public static final FallbackIdMethod NAME_OR_EXTERNALID_OR_ID

NAME_OR_BARCODE_OR_ID

public static final FallbackIdMethod NAME_OR_BARCODE_OR_ID

method

private final String method

title

private final String title

parent

private final IdMethod parent
Constructor Detail

FallbackIdMethod

public FallbackIdMethod(String method,
                        String title,
                        IdMethod parent)
Create a new id method.

Parameters:
method - The method name, which should be unique among all methods
title - The title to use for display purposes
parent - The parent id method, which will be tried first
Method Detail

getMethod

public String getMethod()
Description copied from interface: IdMethod
The name of this method, which should be unique among the methods that can be used at a given time.

Specified by:
getMethod in interface IdMethod
Returns:
The method name

getTitle

public String getTitle()
Description copied from interface: IdMethod
The display title of the method.

Specified by:
getTitle in interface IdMethod

isTrulyUnique

public boolean isTrulyUnique()
Description copied from interface: IdMethod
If the identification method is truly unique or not. If this method returns true, the IdMethod.find(DbControl, ItemQuery, String) method will never ever return a list with more than one item.

Specified by:
isTrulyUnique in interface IdMethod

getColumnMappingParameterName

public String getColumnMappingParameterName()
Specified by:
getColumnMappingParameterName in interface IdMethod

prepareQuery

public <I extends BasicItem> ItemQuery<I> prepareQuery(DbControl dc,
                                                       ItemQuery<I> query)
Adds a restriction to the query: property = :identifier

Specified by:
prepareQuery in interface IdMethod
query - The query to prepare
Returns:
The query that is used for item lookup

find

public <I extends BasicItem> List<I> find(DbControl dc,
                                          ItemQuery<I> query,
                                          String identifier)
First, find items using the parent id method. If no items is found with this, try to convert the identifier to a number and use getById() to load the item.

Specified by:
find in interface IdMethod
query - The query to use, which should have been prepared using IdMethod.prepareQuery(DbControl, ItemQuery)
identifier - The identifier of the item
Returns:
A list with the found items, if IdMethod.isTrulyUnique() return true the list is guaranteed to have at most one item

toString

public String toString()
Overrides:
toString in class Object

2.17.2: 2011-06-17