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.


---

Reply via email to