2.17.2: 2011-06-17

net.sf.basedb.plugins.batchimport
Class MultiPropertyIdMethod

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

public class MultiPropertyIdMethod
extends Object
implements IdMethod

Identification method implementation that can use a multiple properties (eg, name, id, externalId, etc.) for identifying items. Each property is tried in turn and a result is returned as soon as the query returns at least one result.

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 MultiPropertyIdMethod NAME_OR_BARCODE
          Use the name or barcode for finding items.
static MultiPropertyIdMethod NAME_OR_EXTERNALID
          Use the name or external ID for finding items.
private  String[] properties
           
private  String title
           
private  boolean unique
           
private  Type valueType
           
 
Constructor Summary
MultiPropertyIdMethod(String method, String title, String[] properties, boolean unique, Type valueType)
          Create a new id method.
 
Method Summary
<I extends BasicItem>
List<I>
find(DbControl dc, ItemQuery<I> query, String identifier)
          Find all items with property[0] = identifier, or property[1] = identifier, ....
 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.
 Type getValueType()
           
 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[0] = :identifier OR property[1] = :identifier ....
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NAME_OR_EXTERNALID

public static final MultiPropertyIdMethod NAME_OR_EXTERNALID
Use the name or external ID for finding items.


NAME_OR_BARCODE

public static final MultiPropertyIdMethod NAME_OR_BARCODE
Use the name or barcode for finding items.


method

private final String method

properties

private final String[] properties

title

private final String title

unique

private final boolean unique

valueType

private final Type valueType
Constructor Detail

MultiPropertyIdMethod

public MultiPropertyIdMethod(String method,
                             String title,
                             String[] properties,
                             boolean unique,
                             Type valueType)
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
properties - The name of the properties to filter on when using this id method
unique - If this property is guaranteed to be unique or not
valueType - The type of values
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

getColumnMappingParameterName

public String getColumnMappingParameterName()
Specified by:
getColumnMappingParameterName 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

prepareQuery

public <I extends BasicItem> ItemQuery<I> prepareQuery(DbControl dc,
                                                       ItemQuery<I> query)
Adds a restriction to the query: property[0] = :identifier OR property[1] = :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)
Find all items with property[0] = identifier, or property[1] = identifier, ....

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

getValueType

public Type getValueType()

2.17.2: 2011-06-17