public class Dumper extends AbstractContexed
DataObject
s to files.
Mostly this works at the Repository
level
If field renaming is in place the dump used the database field not the tag used by the code.
This allows tests to be written with renames in place. The dump parser will look for a renamed field if it can't
find the code-tag. Note that undump creates a table using the normal code so if renames are applied duringtable creation an
undump can generate a renamed repository
References are followed and the dependencies dumped in a depth-first order as well so that
self-consistant subsets of data can be extracted.
polymorphic reference fields (which can point to multiple tables) and reference fields that do not have their peer table set
in a foreign key or config parameter cannot be followed.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
BLOB_TYPE |
static java.lang.String |
BOOLEAN_TYPE |
static java.lang.String |
COLUMN |
static java.lang.String |
DATE_TYPE |
static java.lang.String |
DEFAULT_ATTR |
static java.lang.String |
DELETED_ATTR |
static java.lang.String |
DOUBLE_TYPE |
static java.lang.String |
FLOAT_TYPE |
static java.lang.String |
FULLTEXT_INDEX_TYPE |
static java.lang.String |
ID |
static java.lang.String |
INDEX_TYPE |
static java.lang.String |
INTEGER_TYPE |
static java.lang.String |
LONG_TYPE |
static java.lang.String |
MAX_ATTR |
static java.lang.String |
NAME_ATTR |
static java.lang.String |
NULL_VALUE_ATTR |
static java.lang.String |
NULLABLE_ATTR |
static java.lang.String |
REFERENCE_ATTR |
static java.lang.String |
STRING_TYPE |
static java.lang.String |
TABLE_SPECIFICATION |
static java.lang.String |
TYPE_ATTR |
static java.lang.String |
UNIQUE_ATTR |
conn
Constructor and Description |
---|
Dumper(AppContext conn,
SimpleXMLBuilder builder) |
Modifier and Type | Method and Description |
---|---|
void |
addSpecification(java.lang.String tag,
TableSpecification spec) |
boolean |
beenSeen(java.lang.String tag,
int id)
Has a specified record already been processed.
|
void |
dump(DataObject obj) |
protected void |
dump(Repository.Record rec) |
void |
dumpAll(Repository res) |
protected boolean |
dumpDiff(Repository.Record rec,
Repository.Record baseline) |
boolean |
dumpNullValues() |
void |
dumpSchema(Repository res) |
void |
markSeen(java.lang.String tag,
int id)
Mark a record as "seen" so it will be excluded if encountered in the dump
process.
|
java.lang.String |
normaliseTag(java.lang.String tag) |
void |
setDumpNullValues(boolean dump) |
void |
setVerboseDiff(boolean verbose_diff) |
boolean |
verboseDiff() |
getContext, getLogger, resetLogger
public static final java.lang.String DELETED_ATTR
public static final java.lang.String COLUMN
public static final java.lang.String DOUBLE_TYPE
public static final java.lang.String FLOAT_TYPE
public static final java.lang.String LONG_TYPE
public static final java.lang.String INTEGER_TYPE
public static final java.lang.String DATE_TYPE
public static final java.lang.String BOOLEAN_TYPE
public static final java.lang.String STRING_TYPE
public static final java.lang.String BLOB_TYPE
public static final java.lang.String INDEX_TYPE
public static final java.lang.String FULLTEXT_INDEX_TYPE
public static final java.lang.String REFERENCE_ATTR
public static final java.lang.String DEFAULT_ATTR
public static final java.lang.String TYPE_ATTR
public static final java.lang.String MAX_ATTR
public static final java.lang.String NULLABLE_ATTR
public static final java.lang.String UNIQUE_ATTR
public static final java.lang.String NAME_ATTR
public static final java.lang.String NULL_VALUE_ATTR
public static final java.lang.String ID
public static final java.lang.String TABLE_SPECIFICATION
public Dumper(AppContext conn, SimpleXMLBuilder builder)
public void dump(DataObject obj) throws DataFault, java.io.IOException
DataFault
java.io.IOException
public void addSpecification(java.lang.String tag, TableSpecification spec)
public boolean beenSeen(java.lang.String tag, int id)
tag
- id
- public void markSeen(java.lang.String tag, int id)
tag
- id
- protected void dump(Repository.Record rec) throws DataFault, java.io.IOException
DataFault
java.io.IOException
protected boolean dumpDiff(Repository.Record rec, Repository.Record baseline) throws DataFault, java.io.IOException
DataFault
java.io.IOException
public void dumpAll(Repository res) throws ConsistencyError, DataException, java.io.IOException
ConsistencyError
DataException
java.io.IOException
public void dumpSchema(Repository res)
public boolean dumpNullValues()
public void setDumpNullValues(boolean dump)
public boolean verboseDiff()
public void setVerboseDiff(boolean verbose_diff)
verbose_diff
- the verbose_diff to setpublic java.lang.String normaliseTag(java.lang.String tag)