io.atomicbits.scraml.generator.codegen

GenerationAggr

case class GenerationAggr(sourceDefinitionsToProcess: Seq[SourceDefinition], canonicalToMap: Map[CanonicalName, NonPrimitiveType], sourceDefinitionsProcessed: Seq[SourceDefinition] = collection.this.Seq.empty[Nothing], sourceFilesGenerated: Seq[SourceFile] = collection.this.Seq.empty[Nothing], toMap: Map[CanonicalName, TransferObjectClassDefinition] = ..., toInterfaceMap: Map[CanonicalName, TransferObjectInterfaceDefinition] = ..., toChildParentsMap: Map[CanonicalName, Set[CanonicalName]] = ..., toParentChildrenMap: Map[CanonicalName, Set[CanonicalName]] = ...) 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.

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
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

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

    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: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def addInterfaceSourceDefinition(interfaceDefinition: TransferObjectInterfaceDefinition): GenerationAggr

  7. def addSourceDefinition(sourceDefinition: SourceDefinition): GenerationAggr

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

  9. def addSourceFile(sourceFile: SourceFile): GenerationAggr

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

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

    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.

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

  13. def allParents(canonicalName: CanonicalName): List[CanonicalName]

    returns

    A breadth-first list of all parent canonical names.

  14. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  15. val canonicalToMap: Map[CanonicalName, NonPrimitiveType]

    The canonical TO map.

  16. def clone(): AnyRef

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

  18. def directParents(canonicalName: CanonicalName): Set[CanonicalName]

  19. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  20. def finalize(): Unit

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

  22. final def getClass(): Class[_]

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

  24. def hasChildren(canonicalName: CanonicalName): Boolean

  25. def hasInterface(canonicalName: CanonicalName): Boolean

  26. def hasParents(canonicalName: CanonicalName): Boolean

  27. def isChild(canonicalName: CanonicalName): Boolean

  28. def isInHierarchy(canonicalName: CanonicalName): Boolean

  29. final def isInstanceOf[T0]: Boolean

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

  31. def isNonLeafChild(canonicalName: CanonicalName): Boolean

  32. def isParent(canonicalName: CanonicalName): Boolean

  33. def isParentInMultipleInheritanceRelation(canonicalName: CanonicalName): Boolean

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

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

  35. def leafChildren(canonicalName: CanonicalName): Set[CanonicalName]

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

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

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

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

  38. final def notify(): Unit

    Definition Classes
    AnyRef
  39. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  40. val sourceDefinitionsProcessed: Seq[SourceDefinition]

  41. val sourceDefinitionsToProcess: Seq[SourceDefinition]

    The collected source definitions up to 'now'.

  42. val sourceFilesGenerated: Seq[SourceFile]

    The generated source files so far.

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

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

    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.

  45. val toInterfaceMap: Map[CanonicalName, TransferObjectInterfaceDefinition]

    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.

  46. val toMap: Map[CanonicalName, TransferObjectClassDefinition]

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

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

    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.

  48. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped