static void main()

in OpenCalaisAnnotatorGroovy/src/main/groovy/org/apache/uima/annotator/calais_groovy/CalaisTypes.groovy [361:447]


  static void main(args) {
    def writer = new StringWriter()
    def utypes = new groovy.xml.MarkupBuilder(writer)     
    utypes.types {
      typeDescription {
        name "${TYPE_PREFIX}Base"
        supertypeName 'uima.cas.TOP'
      }
      typeDescription {
        name "${TYPE_PREFIX}Entity"
        supertypeName "${TYPE_PREFIX}Base"
      }
      typeDescription {
        name "${TYPE_PREFIX}Relation"
        supertypeName "${TYPE_PREFIX}Base"
      }
      typeDescription {
        name "${TYPE_PREFIX}Instance"
        supertypeName "uima.tcas.Annotation"
      }
      
      typeDescription {
        name "${TYPE_PREFIX}EntityInstance"
        supertypeName "${TYPE_PREFIX}Instance"
        features {
          featureDescription {
            name 'entity'
            rangeTypeName "${TYPE_PREFIX}Entity"
          }
        }
      }
      
      typeDescription {
        name "${TYPE_PREFIX}RelationInstance"
        supertypeName "${TYPE_PREFIX}Instance"
        features {
          featureDescription {
            name 'relation'
            rangeTypeName "${TYPE_PREFIX}Relation"
          }
        }
      }
      
      calaisTypes.entity[0].each {
        def entityName = it.name()
        typeDescription {
          name "${TYPE_PREFIX}entity.${entityName}"
          supertypeName "${TYPE_PREFIX}Entity"
          features {
            featureDescription {
              name 'canonicalForm'
              rangeTypeName 'uima.cas.String'
            }
          }
        }
      }
      
      calaisTypes.factOrEvent[0].each {
        def relation = it
        typeDescription {
          name "${TYPE_PREFIX}relation.${relation.name()}"
          supertypeName "${TYPE_PREFIX}Relation"
          features {
            relation.attrs[0].each {
              def feat = it
              featureDescription {
               name feat.name()
                if (feat.allowedValues[0]) { 
                  rangeTypeName 'uima.cas.String'                
                } else if (feat.range[0]) {
                  if (feat.multivalued[0]) {
                    rangeTypeName 'uima.cas.FSArray'
                    elementType "${TYPE_PREFIX}entity.${feat.range[0].text()}"
                  } else {
                    rangeTypeName "${TYPE_PREFIX}entity.${feat.range[0].text()}"
                  }
                } else {
                  rangeTypeName 'uima.cas.String'
                }
              } 
            }
          }
        }
      }
    }
    println writer.toString()
  }