Package org.jibx.schema
Class UsageFinder
java.lang.Object
org.jibx.schema.UsageFinder
Visitor to generate usage counts for schema components. This is somewhat messy, since there are so many different
types of references in schema: 'ref' (attribute, attributeGroup, element, and group, to reference a global definition
of same type), 'type' (attribute and element, reference a global type definition), 'base' (extension and
restriction), 'itemType' (list), 'memberTypes' (union), 'substitutionGroup' (element), and 'refer' (unique).
References can be recursively expanded by matching the reference set against the set of components processed, and
processing any new references until the closure is obtained.
- Author:
- Dennis M. Sosnoski
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classVisitor to accumulate usage of definitions. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final UsageFinder.UsageVisitorVisitor used for finding references.private static final LoggerLogger for class. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddReferenceClosure(List list) Add usage counts for the reference closure of a supplied list of components.voidAdd usage counts for the reference closure of a definition.voidcountSchemaTree(SchemaElement schema) Add usage counts for a schema tree.Get the set of definitions referenced as optional or repeating.Get map of reference counts per component.voidreset()Clear the accumulated usage counts.voidSet the register to be used for resolving name references.
-
Field Details
-
s_logger
private static final Logger s_loggerLogger for class. -
m_visitor
Visitor used for finding references.
-
-
Constructor Details
-
UsageFinder
public UsageFinder()Constructor.
-
-
Method Details
-
getUsageMap
Get map of reference counts per component.- Returns:
- count map
-
getNonSingletonSet
Get the set of definitions referenced as optional or repeating.- Returns:
- set
-
countSchemaTree
Add usage counts for a schema tree. This counts all references from the supplied schema, including references in other schemas referenced by the schema.- Parameters:
schema-
-
addReferenceClosure
Add usage counts for the reference closure of a definition.- Parameters:
comp- definition to be processed
-
addReferenceClosure
Add usage counts for the reference closure of a supplied list of components.- Parameters:
list- starting schema components
-
setNameRegister
Set the register to be used for resolving name references. This is not needed if counting references from a schema tree usingcountSchemaTree(SchemaElement), which always sets the register associated with the supplied schema.- Parameters:
reg-
-
reset
public void reset()Clear the accumulated usage counts.
-