P
- Type for package dataS
- Type for element as sourcepublic abstract class EaModelBuilder<P,S> extends AbstractModelBuilder
Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.Integer,AssociationBuilder<?,?>> |
_associations |
private java.util.Map<java.lang.Integer,AttributeBuilder<?,?>> |
_attributes |
private java.util.Map<java.lang.Integer,ClassBuilder<?,?,?,?,?,?>> |
_classes |
private java.util.Map<java.lang.Integer,DependencyBuilder<?,?>> |
_dependencies |
private java.util.Map<java.lang.Integer,DiagramBuilder<?>> |
_diagrams |
private java.util.List<PackageBuilder<?,?,?,?,?,?>> |
_eaModels |
private java.util.Map<java.lang.String,java.util.List<UmlObjectBuilder<?>>> |
_guidDuplicates |
private java.util.Map<java.lang.String,UmlObjectBuilder<?>> |
_guidNonDuplicates |
private static org.apache.log4j.Logger |
_logger |
private java.util.Map<java.lang.Integer,OperationBuilder<?,?>> |
_operations |
private java.util.Map<java.lang.Integer,PackageBuilder<?,?,?,?,?,?>> |
_packages |
(package private) static java.lang.String |
DUPLICATE |
Modifier | Constructor and Description |
---|---|
protected |
EaModelBuilder(Config cfg)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addAssociation(AssociationBuilder<?,?> builder) |
void |
addAttribute(AttributeBuilder<?,?> builder) |
void |
addClass(ClassBuilder<?,?,?,?,?,?> builder) |
void |
addDependency(DependencyBuilder<?,?> builder) |
void |
addDiagram(DiagramBuilder<?> builder) |
void |
addOperation(OperationBuilder<?,?> builder) |
void |
addPackage(PackageBuilder<?,?,?,?,?,?> builder) |
protected static void |
assertModelNotEmptyWarnIfMultipleRoots(int count) |
UmlModel |
build()
Builds the in-memory model.
|
private void |
buildSubclasses(ClassBuilder<?,?,?,?,?,?> cb,
java.util.Set<ClassBuilder<?,?,?,?,?,?>> nonRoots)
Recursive.
|
protected abstract void |
bulkLoad() |
private void |
closeModel() |
protected abstract void |
closeRepo() |
private UmlModel |
createInMemoryModel(Config cfg)
Creates in-memory model from builders.
|
protected abstract PackageBuilder<?,?,?,?,?,?> |
createModelPackage(P m) |
protected abstract java.lang.String |
fetchPackageGuid(P inData) |
AssociationBuilder<?,?> |
findAssociation(java.lang.Integer assocId) |
ClassBuilder<?,?,?,?,?,?> |
findClass(java.lang.Integer typeId) |
ClassBuilder<?,?,?,?,?,?> |
findClass(java.lang.String name) |
DependencyBuilder<?,?> |
findDependency(java.lang.Integer depId) |
abstract java.lang.String |
findElementType(java.lang.Integer id)
Returns the EA type for object ID.
|
abstract java.lang.String |
findElementTypeAndName(java.lang.Integer id) |
protected abstract P |
getFirstRoot() |
protected abstract java.lang.String |
getLogSubtitleEndPopulateBuilders() |
protected abstract java.lang.String |
getLogSubtitleStartPopulateBuilders() |
protected abstract java.util.List<P> |
getModels(P root) |
abstract EaTables |
getTables()
Returns tables resulting from the bulk initialisation (if applicable).
|
protected abstract java.lang.String |
initRepoAndGetVersion() |
boolean |
isEaElementClass(java.lang.Integer objId) |
boolean |
isEaElementPackage(java.lang.Integer objId) |
private void |
linkBuilders()
Below is what needs to be processed after all class and packages builders have been created.
|
private void |
openModel() |
protected abstract void |
openRepo(java.lang.String modelFileAbsPath) |
private java.lang.String |
populateBuilders()
Creates the in-memory builders with the data from EA repository and returns the UUID of the
model root (needed for XMI export, if enabled by configuration).
|
private void |
validateGuid(UmlObjectBuilder<?> builder) |
createDiagramExporter, createXMIExporter, getCfg, getDiagramExporter, getXMIExporter
private static final org.apache.log4j.Logger _logger
static final java.lang.String DUPLICATE
private final java.util.List<PackageBuilder<?,?,?,?,?,?>> _eaModels
private final java.util.Map<java.lang.Integer,PackageBuilder<?,?,?,?,?,?>> _packages
private final java.util.Map<java.lang.Integer,ClassBuilder<?,?,?,?,?,?>> _classes
private final java.util.Map<java.lang.Integer,AttributeBuilder<?,?>> _attributes
private final java.util.Map<java.lang.Integer,AssociationBuilder<?,?>> _associations
private final java.util.Map<java.lang.Integer,DependencyBuilder<?,?>> _dependencies
private final java.util.Map<java.lang.Integer,OperationBuilder<?,?>> _operations
private final java.util.Map<java.lang.Integer,DiagramBuilder<?>> _diagrams
private final java.util.Map<java.lang.String,UmlObjectBuilder<?>> _guidNonDuplicates
private final java.util.Map<java.lang.String,java.util.List<UmlObjectBuilder<?>>> _guidDuplicates
protected EaModelBuilder(Config cfg)
cfg
- protected abstract java.lang.String initRepoAndGetVersion()
private void openModel() throws ApplicationException
ApplicationException
protected abstract void openRepo(java.lang.String modelFileAbsPath) throws ApplicationException
ApplicationException
protected abstract void bulkLoad() throws ApplicationException
ApplicationException
private void closeModel() throws ApplicationException
ApplicationException
protected abstract void closeRepo() throws ApplicationException
ApplicationException
private java.lang.String populateBuilders() throws ApplicationException
Ensure you call linkBuilders()
after this one.
ApplicationException
- if model file is empty, or if there is a root in the model but without packages.protected abstract java.lang.String getLogSubtitleStartPopulateBuilders()
protected abstract java.lang.String getLogSubtitleEndPopulateBuilders()
protected abstract PackageBuilder<?,?,?,?,?,?> createModelPackage(P m)
protected abstract P getFirstRoot() throws ApplicationException
ApplicationException
protected abstract java.lang.String fetchPackageGuid(P inData)
protected static void assertModelNotEmptyWarnIfMultipleRoots(int count) throws ApplicationException
ApplicationException
private void linkBuilders()
private UmlModel createInMemoryModel(Config cfg)
private void buildSubclasses(ClassBuilder<?,?,?,?,?,?> cb, java.util.Set<ClassBuilder<?,?,?,?,?,?>> nonRoots)
private void validateGuid(UmlObjectBuilder<?> builder)
public final void addPackage(PackageBuilder<?,?,?,?,?,?> builder)
public final void addDependency(DependencyBuilder<?,?> builder)
public final DependencyBuilder<?,?> findDependency(java.lang.Integer depId)
public final void addClass(ClassBuilder<?,?,?,?,?,?> builder)
public final ClassBuilder<?,?,?,?,?,?> findClass(java.lang.Integer typeId)
public abstract java.lang.String findElementType(java.lang.Integer id)
public abstract java.lang.String findElementTypeAndName(java.lang.Integer id)
public boolean isEaElementClass(java.lang.Integer objId)
public boolean isEaElementPackage(java.lang.Integer objId)
public final ClassBuilder<?,?,?,?,?,?> findClass(java.lang.String name)
public final void addAssociation(AssociationBuilder<?,?> builder)
public final AssociationBuilder<?,?> findAssociation(java.lang.Integer assocId)
public final void addDiagram(DiagramBuilder<?> builder)
public final void addAttribute(AttributeBuilder<?,?> builder)
public final void addOperation(OperationBuilder<?,?> builder)
public abstract EaTables getTables() throws java.lang.UnsupportedOperationException
java.lang.UnsupportedOperationException
public UmlModel build() throws ApplicationException
This implementation is mainly working with EA model files. opens the EA model file, reads in all it needs, closes the EA model file and creates the in-memory model.
build
in interface ModelBuilder
build
in class AbstractModelBuilder
ApplicationException
Copyright 2009-2016 Tatjana (Tanja) Kostic