Github user stevedlawrence commented on a diff in the pull request:
https://github.com/apache/incubator-daffodil/pull/5#discussion_r150855476
--- Diff:
daffodil-core/src/main/scala/edu/illinois/ncsa/daffodil/dsom/GlobalElementDecl.scala
---
@@ -43,52 +41,47 @@ import edu.illinois.ncsa.daffodil.grammar._
*/
final class GlobalElementDecl(
val factory: GlobalElementDeclFactory,
- override val elementRef: Option[ElementRef])
- extends LocalElementBase(factory.xml, factory.schemaDocument, 0)
+ elementRefArg: => AbstractElementRef)
+ extends AnnotatedSchemaComponent
with GlobalElementComponentMixin
with ElementDeclMixin
- with GlobalElementDeclGrammarMixin
- with NestingTraversesToReferenceMixin
- /*
+ with DFDLStatementMixin
+ // with ElementDeclMixin
+ with NestingTraversesToReferenceMixin /*
* global elements combined with element references referring to them can
* be multiple occurring (aka arrays) hence, we have to have things
* that take root and referenced situation into account.
- */
- with RequiredOptionalMixin {
-
- requiredEvaluations(validateChoiceBranchKey)
-
- override lazy val maxOccurs = elementRef match {
- case Some(er) => er.maxOccurs
- case None => 1
- }
+ */ // with RequiredOptionalMixin
+ {
- override lazy val minOccurs = elementRef match {
- case Some(er) => er.minOccurs
- case None => 1
- }
-
- lazy val isRoot = elementRef == None
-
- override lazy val isHidden = if (isRoot) false else
elementRef.get.isHidden
+ override val xml = factory.xml
+ override def parent = factory.schemaDocument
- // final override protected def enclosingComponentDef =
elementRef.flatMap { _.enclosingComponent }
+ lazy val elementRef = elementRefArg
+ override lazy val dpathCompileInfo = elementRef.dpathElementCompileInfo
- override lazy val referringComponent: Option[SchemaComponent] =
elementRef
+ requiredEvaluations(validateChoiceBranchKey)
- // GlobalElementDecls need to have access to elementRef's local
properties.
+ // override protected def computeElementRuntimeData():
ElementRuntimeData = {
+ // optElementRef match {
+ // case None => super.computeElementRuntimeData
+ // case Some(er) => er.elementRuntimeData
+ // }
+ // }
- // We inherit the requirement for these attributes from Term. It all gets
- // too complicated in DSOM if you try to make GlobalElementDecl share
with the other
- // element structures but not be a Term.
- //
- // But a GlobalElementDecl isn't really a Term except in a degenerate
sense
- // that the root element is sort of a Term.
+ // override lazy val maxOccurs = optElementRef match {
+ // case Some(er) => er.maxOccurs
+ // case None => 1
+ // }
//
- // In other words, we shouldn't be treating this as a term.
+ // override lazy val minOccurs = optElementRef match {
+ // case Some(er) => er.minOccurs
+ // case None => 1
+ // }
//
+ // final override protected def enclosingComponentDef =
optElementRef.flatMap { _.enclosingComponent }
--- End diff --
Should these comments be removed? They look like they're just old.
---