class ModelFactory extends AnyRef

This trait extracts all required information for documentation from compilation units

Self Type
ModelFactory with ModelFactoryImplicitSupport with ModelFactoryTypeSupport with DiagramFactory with CommentFactory with TreeFactory with MemberLookup
Source
ModelFactory.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ModelFactory
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ModelFactory(global: Global, settings: Settings)

Type Members

  1. abstract class DocTemplateImpl extends (ModelFactory.this)#MemberTemplateImpl with DocTemplateEntity

    The instantiation of TemplateImpl triggers the creation of the following entities: All ancestors of the template and all non-package members.

  2. abstract class EntityImpl extends Entity
  3. trait HigherKindedImpl extends HigherKinded
  4. abstract class MemberImpl extends (ModelFactory.this)#EntityImpl with MemberEntity
  5. abstract class MemberTemplateImpl extends (ModelFactory.this)#MemberImpl with (ModelFactory.this)#TemplateImpl with (ModelFactory.this)#HigherKindedImpl with MemberTemplateEntity

    An inherited template that was not documented in its original owner - example: in classpath: trait T { class C } -- T (and implicitly C) are not documented in the source: trait U extends T -- C appears in U as a MemberTemplateImpl -- that is, U has a member for it but C doesn't get its own page

  6. class NoDocTemplateImpl extends (ModelFactory.this)#EntityImpl with (ModelFactory.this)#TemplateImpl with (ModelFactory.this)#HigherKindedImpl with NoDocTemplate

    A template that is not documented at all.

    A template that is not documented at all. The class is instantiated during lookups, to indicate that the class exists, but should not be documented (either it's not included in the source or it's not visible)

  7. abstract class NonTemplateMemberImpl extends (ModelFactory.this)#MemberImpl with NonTemplateMemberEntity
  8. abstract class NonTemplateParamMemberImpl extends (ModelFactory.this)#NonTemplateMemberImpl
  9. abstract class PackageImpl extends (ModelFactory.this)#DocTemplateImpl with Package
  10. abstract class ParameterImpl extends ParameterEntity
  11. abstract class RootPackageImpl extends (ModelFactory.this)#PackageImpl with RootPackage
  12. trait TemplateImpl extends (ModelFactory.this)#EntityImpl with TemplateEntity

Value Members

  1. def classExcluded(clazz: TemplateEntity): Boolean
  2. def findMember(aSym: Global.Symbol, inTpl: (ModelFactory.this)#DocTemplateImpl): Option[(ModelFactory.this)#MemberImpl]
  3. def findTemplateMaybe(aSym: Global.Symbol): Option[(ModelFactory.this)#DocTemplateImpl]
  4. val global: Global
  5. var ids: Int
  6. def implicitExcluded(convertorMethod: String): Boolean
  7. def inOriginalOwner(aSym: Global.Symbol, inTpl: (ModelFactory.this)#TemplateImpl): Boolean
  8. def isEmptyJavaObject(aSym: Global.Symbol): Boolean
  9. def isPureBridge(sym: Global.Symbol): Boolean

    Filter '@bridge' methods only if *they don't override non-bridge methods*.

    Filter '@bridge' methods only if *they don't override non-bridge methods*. See scala/bug#5373 for details

  10. def localShouldDocument(aSym: Global.Symbol): Boolean
  11. def makeAnnotation(annot: Global.AnnotationInfo): Annotation
  12. def makeMember(aSym: Global.Symbol, conversion: Option[(ModelFactory.this)#ImplicitConversionImpl], inTpl: (ModelFactory.this)#DocTemplateImpl): List[(ModelFactory.this)#MemberImpl]
  13. def makeModel: Option[Universe]
  14. def makeParentTypes(aType: Global.Type, tpl: Option[(ModelFactory.this)#MemberTemplateImpl], inTpl: (ModelFactory.this)#TemplateImpl): List[(TemplateEntity, TypeEntity)]

    Get the types of the parents of the current class, ignoring the refinements

  15. def makeQualifiedName(sym: Global.Symbol, relativeTo: Option[Global.Symbol] = None): String
  16. def makeTemplate(aSym: Global.Symbol, inTpl: Option[(ModelFactory.this)#TemplateImpl]): (ModelFactory.this)#TemplateImpl
  17. def makeTemplate(aSym: Global.Symbol): (ModelFactory.this)#TemplateImpl
  18. def makeTypeInTemplateContext(aType: Global.Type, inTpl: (ModelFactory.this)#TemplateImpl, dclSym: Global.Symbol): TypeEntity

  19. def makeTypeParam(aSym: Global.Symbol, inTpl: (ModelFactory.this)#TemplateImpl): TypeParam

  20. def makeValueParam(aSym: Global.Symbol, inTpl: (ModelFactory.this)#DocTemplateImpl, newName: String): ValueParam

  21. def makeValueParam(aSym: Global.Symbol, inTpl: (ModelFactory.this)#DocTemplateImpl): ValueParam

  22. def membersShouldDocument(sym: Global.Symbol, inTpl: (ModelFactory.this)#TemplateImpl): Boolean
  23. def modelFinished: Boolean
  24. def normalizeTemplate(aSym: Global.Symbol): Global.Symbol

    This method makes it easier to work with the different kinds of symbols created by scalac by stripping down the package object abstraction and placing members directly in the package.

    This method makes it easier to work with the different kinds of symbols created by scalac by stripping down the package object abstraction and placing members directly in the package.

    Here's the explanation of what we do. The code:

    package foo { object package { class Bar } }

    will yield this Symbol structure: +---------+ (2) | | +---------------+ +---------- v ------- | ---+ +--------+ (2) | package foo#1 <---(1)---- module class foo#2 | | | | +---------------+ | +------------------ | -+ | +------------------- v ---+ | | | package object foo#3 <-----(1)---- module class package#4 | | | +----------------------+ | | +---------------------+ | | +--------------------------+ | | class package$Bar#5 | | | | +----------------- | -+ | | +------------------- | ---+ | | | +--------+ (1) sourceModule (2) you get out of owners with .owner

    and normalizeTemplate(Bar.owner) will get us the package, instead of the module class of the package object.

  25. def optimize(str: String): String
  26. def packageDropped(tpl: (ModelFactory.this)#DocTemplateImpl): Boolean
  27. val settings: Settings
  28. def templateShouldDocument(aSym: Global.Symbol, inTpl: (ModelFactory.this)#DocTemplateImpl): Boolean
  29. def templatesCount: Int
  30. def typeShouldDocument(bSym: Global.Symbol, inTpl: (ModelFactory.this)#DocTemplateImpl): Boolean
  31. object modelCreation

    These are all model construction methods.

    These are all model construction methods. Please do not use them directly, they are calling each other recursively starting from makeModel. On the other hand, makeTemplate, makeAnnotation, makeMember, makeType should only be used after the model was created (modelFinished=true) otherwise assertions will start failing.