Class MultiPropertyIdMethod
- java.lang.Object
-
- 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: 2016-03-08 13:22:23 +0100 (ti, 08 mar 2016) $
-
-
Field Summary
Fields Modifier and Type Field Description 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.static MultiPropertyIdMethod
NAME_OR_SYSTEMID
Use the name or system Id for finding items.static MultiPropertyIdMethod
NAME_OR_UNITSYMBOL
Use the name or unit symbol for finding items.private String[]
properties
private String
title
private boolean
unique
private Type
valueType
-
Constructor Summary
Constructors Constructor Description MultiPropertyIdMethod(String method, String title, String[] properties, boolean unique, Type valueType)
Create a new id method.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <I extends BasicItem>
List<I>find(DbControl dc, ItemQuery<I> query, String identifier)
Find all items withproperty[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
-
Methods inherited from interface net.sf.basedb.plugins.batchimport.IdMethod
setIdentifierOnNewItem
-
-
-
-
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.
-
NAME_OR_SYSTEMID
public static final MultiPropertyIdMethod NAME_OR_SYSTEMID
Use the name or system Id for finding items.- Since:
- 3.0
-
NAME_OR_UNITSYMBOL
public static final MultiPropertyIdMethod NAME_OR_UNITSYMBOL
Use the name or unit symbol for finding items. Can be used for finding units.- Since:
- 3.8
-
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 methodstitle
- The title to use for display purposesproperties
- The name of the properties to filter on when using this id methodunique
- If this property is guaranteed to be unique or notvalueType
- 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.
-
getTitle
public String getTitle()
Description copied from interface:IdMethod
The display title of the method.
-
getColumnMappingParameterName
public String getColumnMappingParameterName()
- Specified by:
getColumnMappingParameterName
in interfaceIdMethod
-
isTrulyUnique
public boolean isTrulyUnique()
Description copied from interface:IdMethod
If the identification method is truly unique or not. If this method returns true, theIdMethod.find(DbControl, ItemQuery, String)
method will never ever return a list with more than one item.- Specified by:
isTrulyUnique
in interfaceIdMethod
-
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 interfaceIdMethod
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 withproperty[0] = identifier
, or property[1] = identifier, ....- Specified by:
find
in interfaceIdMethod
query
- The query to use, which should have been prepared usingIdMethod.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
-
getValueType
public Type getValueType()
-
-