public abstract class JoinFixAction
extends java.lang.Object
JoinStarTable| Modifier and Type | Field and Description |
|---|---|
static JoinFixAction |
NO_ACTION
Action which causes names to be left alone.
|
| Modifier | Constructor and Description |
|---|---|
protected |
JoinFixAction(java.lang.String name)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
static java.lang.String |
ensureUnique(java.lang.String name,
java.util.Collection<java.lang.String> others,
boolean caseSensitive)
Utility method which repeatedly doctors a name until it fails to
match any of the others in a given collection.
|
abstract java.lang.String |
getFixedName(java.lang.String origName,
java.util.Collection<java.lang.String> otherNames)
Returns a, possibly modified, name for a column in the context of
existing column names.
|
static boolean |
isDuplicate(java.lang.String name,
java.util.Collection<java.lang.String> others,
boolean caseSensitive)
Utility method to determine whether a given name is a duplicate of
any in a given collection of other names.
|
static JoinFixAction |
makeNumericDeduplicationAction(java.lang.String delimiter,
boolean caseSensitive)
Returns an action which will deduplicate names by appending a
numeric value to them.
|
static JoinFixAction |
makeRenameAllAction(java.lang.String appendage)
Returns an action for renaming all column names with default options.
|
static JoinFixAction |
makeRenameAllAction(java.lang.String appendage,
boolean caseSensitive,
boolean ensureUnique)
Returns an action for renaming all columns with additional options.
|
static JoinFixAction |
makeRenameDuplicatesAction(java.lang.String appendage)
Returns an action for renaming duplicated column names with
default options.
|
static JoinFixAction |
makeRenameDuplicatesAction(java.lang.String appendage,
boolean caseSensitive,
boolean ensureUnique)
Returns an action for renaming duplicated column names with
additional options.
|
java.lang.String |
toString()
Returns this action's name.
|
public static final JoinFixAction NO_ACTION
protected JoinFixAction(java.lang.String name)
name - label for this actionpublic abstract java.lang.String getFixedName(java.lang.String origName,
java.util.Collection<java.lang.String> otherNames)
origName - input nameotherNames - list of names which may be duplicates of
origNameorigNamepublic java.lang.String toString()
toString in class java.lang.Objectpublic static boolean isDuplicate(java.lang.String name,
java.util.Collection<java.lang.String> others,
boolean caseSensitive)
name - name to testothers - potential duplicates of namecaseSensitive - true iff matching is to be done in a
case-sensitive fashionname matches any of the entries in
otherspublic static java.lang.String ensureUnique(java.lang.String name,
java.util.Collection<java.lang.String> others,
boolean caseSensitive)
name - input nameothers - list of names that must not matchcaseSensitive - whether matching others is case sensitivename but not matching
otherspublic static JoinFixAction makeRenameDuplicatesAction(java.lang.String appendage)
appendage - string to append to duplicate columnspublic static JoinFixAction makeRenameDuplicatesAction(java.lang.String appendage, boolean caseSensitive, boolean ensureUnique)
appendage - string to append to duplicate columnscaseSensitive - whether duplicate location should be case
sensitiveensureUnique - if true, every effort will be made to ensure
that the output name matches none of the others;
if false, the output name may still match
(but differently from the input one)public static JoinFixAction makeRenameAllAction(java.lang.String appendage)
appendage - string to append to columnspublic static JoinFixAction makeRenameAllAction(java.lang.String appendage, boolean caseSensitive, boolean ensureUnique)
appendage - string to append to columnscaseSensitive - whether duplicate location should be case
sensitive (only relevant if
ensureUnique is true)ensureUnique - if true, every effort will be made to ensure
that the output name matches none of the others;public static JoinFixAction makeNumericDeduplicationAction(java.lang.String delimiter, boolean caseSensitive)
delimiter - string used to separate main part of name from
numeric partcaseSensitive - whether duplicate location is case sensitive