Class/Object

io.atomicbits.scraml.generator.codegen

GenerationAggr

Related Docs: object GenerationAggr | package codegen

Permalink

case class GenerationAggr(basePackage: List[String], sourceDefinitionsToProcess: Seq[SourceDefinition], canonicalToMap: Map[CanonicalName, NonPrimitiveType], sourceDefinitionsProcessed: Seq[SourceDefinition] = Seq.empty, sourceFilesGenerated: Seq[SourceFile] = Seq.empty, toMap: Map[CanonicalName, TransferObjectClassDefinition] = Map.empty, toInterfaceMap: Map[CanonicalName, TransferObjectInterfaceDefinition] = Map.empty, toChildParentsMap: Map[CanonicalName, Set[CanonicalName]] = Map.empty, toParentChildrenMap: Map[CanonicalName, Set[CanonicalName]] = Map.empty) extends Product with Serializable

Created by peter on 18/01/17.

The generation aggregate contains information that may be needed for source definition generation and information about data and knownledge that was already collected so far in the generation process. The generation process is a recursive operation on the GenerationAggr, which can be expanded during code generation. In other words, new source definitions may be added during code generation, especially the interface definitions are expected to be added then.

basePackage

The base package for the generated codebase.

sourceDefinitionsToProcess

The collected source definitions up to 'now'.

canonicalToMap

The canonical TO map.

sourceFilesGenerated

The generated source files so far.

toMap

The TO map is needed to find all fields that we have to put in a class extending from one or more parents.

toInterfaceMap

The map containing the transfer objects that require an interface definition so far, keyed on the canonical name of the original transfer object. This map is expected to grow while source definitions for transfer objects are generated.

toChildParentsMap

The direct child parents relations are needed to navigate through the class hierarchy of the transfer objects. The toChildParentsMap is build up when the TOs are added to the toMap.

toParentChildrenMap

The direct parent children relations are needed to navigate through the class hierarchy of the transfer objects. The toParentChildrenMap is build up when the TOs are added to the toMap.

Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. GenerationAggr
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new GenerationAggr(basePackage: List[String], sourceDefinitionsToProcess: Seq[SourceDefinition], canonicalToMap: Map[CanonicalName, NonPrimitiveType], sourceDefinitionsProcessed: Seq[SourceDefinition] = Seq.empty, sourceFilesGenerated: Seq[SourceFile] = Seq.empty, toMap: Map[CanonicalName, TransferObjectClassDefinition] = Map.empty, toInterfaceMap: Map[CanonicalName, TransferObjectInterfaceDefinition] = Map.empty, toChildParentsMap: Map[CanonicalName, Set[CanonicalName]] = Map.empty, toParentChildrenMap: Map[CanonicalName, Set[CanonicalName]] = Map.empty)

    Permalink

    basePackage

    The base package for the generated codebase.

    sourceDefinitionsToProcess

    The collected source definitions up to 'now'.

    canonicalToMap

    The canonical TO map.

    sourceFilesGenerated

    The generated source files so far.

    toMap

    The TO map is needed to find all fields that we have to put in a class extending from one or more parents.

    toInterfaceMap

    The map containing the transfer objects that require an interface definition so far, keyed on the canonical name of the original transfer object. This map is expected to grow while source definitions for transfer objects are generated.

    toChildParentsMap

    The direct child parents relations are needed to navigate through the class hierarchy of the transfer objects. The toChildParentsMap is build up when the TOs are added to the toMap.

    toParentChildrenMap

    The direct parent children relations are needed to navigate through the class hierarchy of the transfer objects. The toParentChildrenMap is build up when the TOs are added to the toMap.

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def addInterfaceSourceDefinition(interfaceDefinition: TransferObjectInterfaceDefinition): GenerationAggr

    Permalink
  5. def addSourceDefinition(sourceDefinition: SourceDefinition): GenerationAggr

    Permalink
  6. def addSourceDefinitions(sourceDefinitionsToAdd: Seq[SourceDefinition]): GenerationAggr

    Permalink
  7. def addSourceFile(sourceFile: SourceFile): GenerationAggr

    Permalink
  8. def addSourceFiles(sourceFiles: Seq[SourceFile]): GenerationAggr

    Permalink
  9. def addToDefinition(canonicalName: CanonicalName, toDefinition: TransferObjectClassDefinition): GenerationAggr

    Permalink

    Adds a TO definition and update the child-parents map and the parent-children map.

    Adds a TO definition and update the child-parents map and the parent-children map.

    canonicalName

    The canonical name of the TO.

    toDefinition

    The definition of the TO.

    returns

    The generation aggregate.

  10. def allChildren(canonicalName: CanonicalName): List[CanonicalName]

    Permalink
  11. def allParents(canonicalName: CanonicalName): List[CanonicalName]

    Permalink

    returns

    A breadth-first list of all parent canonical names.

  12. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  13. val basePackage: List[String]

    Permalink

    The base package for the generated codebase.

  14. val canonicalToMap: Map[CanonicalName, NonPrimitiveType]

    Permalink

    The canonical TO map.

  15. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  16. def directChildren(canonicalName: CanonicalName): Set[CanonicalName]

    Permalink
  17. def directParents(canonicalName: CanonicalName): Set[CanonicalName]

    Permalink
  18. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  19. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  20. def generate(implicit platform: Platform): GenerationAggr

    Permalink
  21. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  22. def getInterfaceDefinition(canonicalName: CanonicalName): Option[TransferObjectInterfaceDefinition]

    Permalink
  23. def hasChildren(canonicalName: CanonicalName): Boolean

    Permalink
  24. def hasInterface(canonicalName: CanonicalName): Boolean

    Permalink
  25. def hasParents(canonicalName: CanonicalName): Boolean

    Permalink
  26. def isChild(canonicalName: CanonicalName): Boolean

    Permalink
  27. def isInHierarchy(canonicalName: CanonicalName): Boolean

    Permalink
  28. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  29. def isLeafChild(canonicalName: CanonicalName): Boolean

    Permalink
  30. def isNonLeafChild(canonicalName: CanonicalName): Boolean

    Permalink
  31. def isParent(canonicalName: CanonicalName): Boolean

    Permalink
  32. def isParentInMultipleInheritanceRelation(canonicalName: CanonicalName): Boolean

    Permalink

    A class is a parent in a multiple inheritance relation if it has a child (direct or indirect) that has more than one parent.

  33. def isParentOf(potentialParent: CanonicalName, potentialChild: CanonicalName): Boolean

    Permalink
  34. def leafChildren(canonicalName: CanonicalName): Set[CanonicalName]

    Permalink

    Find all leaf children of the given canonical name (itself not included if it is a leaf child).

  35. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  36. def nonLeafChildren(canonicalName: CanonicalName): Set[CanonicalName]

    Permalink

    Find all non-leaf children of the given canonical name (itself not included if it is a non-leaf child).

  37. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  38. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  39. val sourceDefinitionsProcessed: Seq[SourceDefinition]

    Permalink
  40. val sourceDefinitionsToProcess: Seq[SourceDefinition]

    Permalink

    The collected source definitions up to 'now'.

  41. val sourceFilesGenerated: Seq[SourceFile]

    Permalink

    The generated source files so far.

  42. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  43. val toChildParentsMap: Map[CanonicalName, Set[CanonicalName]]

    Permalink

    The direct child parents relations are needed to navigate through the class hierarchy of the transfer objects.

    The direct child parents relations are needed to navigate through the class hierarchy of the transfer objects. The toChildParentsMap is build up when the TOs are added to the toMap.

  44. val toInterfaceMap: Map[CanonicalName, TransferObjectInterfaceDefinition]

    Permalink

    The map containing the transfer objects that require an interface definition so far, keyed on the canonical name of the original transfer object.

    The map containing the transfer objects that require an interface definition so far, keyed on the canonical name of the original transfer object. This map is expected to grow while source definitions for transfer objects are generated.

  45. val toMap: Map[CanonicalName, TransferObjectClassDefinition]

    Permalink

    The TO map is needed to find all fields that we have to put in a class extending from one or more parents.

  46. val toParentChildrenMap: Map[CanonicalName, Set[CanonicalName]]

    Permalink

    The direct parent children relations are needed to navigate through the class hierarchy of the transfer objects.

    The direct parent children relations are needed to navigate through the class hierarchy of the transfer objects. The toParentChildrenMap is build up when the TOs are added to the toMap.

  47. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  48. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  49. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped