IfcDoc.FormatOWL.FormatEnumerationFull C# (CSharp) Method

FormatEnumerationFull() public method

public FormatEnumerationFull ( DocEnumeration docEnumeration, bool fullListing ) : string
docEnumeration DocEnumeration
fullListing bool
return string
        public string FormatEnumerationFull(DocEnumeration docEnumeration, bool fullListing)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("ifc:" + docEnumeration.Name);
            sb.AppendLine("\trdf:type owl:Class ;");
            if (!fullListing)
            {
                //possibly add the items in a oneof
                sb.AppendLine("\towl:equivalentClass");
                sb.AppendLine("\t\t[");
                sb.AppendLine("\t\t\trdf:type owl:Class ;");
                sb.AppendLine("\t\t\towl:oneOf ");
                sb.AppendLine("\t\t\t\t( ");
                foreach (DocConstant docConst in docEnumeration.Constants)
                {
                    sb.AppendLine("\t\t\t\tifc:" + docConst.Name.ToUpper() + " ");
                }
                //close oneof
                sb.AppendLine("\t\t\t\t) ");
                sb.AppendLine("\t\t] ; ");
            }
            sb.AppendLine("\trdfs:subClassOf expr:ENUMERATION .");
            sb.AppendLine();

            // define individuals
            if (fullListing)
            {
                foreach (DocConstant docConst in docEnumeration.Constants)
                {
                    string indivLocalUri = docConst.Name.ToUpper();
                    if (!addedIndividuals.Contains(indivLocalUri))
                    {
                        addedIndividuals.Add(indivLocalUri);
                        sb.AppendLine("ifc:" + indivLocalUri);
                        sb.AppendLine("\trdf:type " + "ifc:" + docEnumeration.Name + " , owl:NamedIndividual ;");
                        sb.AppendLine("\trdfs:label  \"" + docConst.Name.ToUpper() + "\" .");
                        sb.AppendLine();
                    }
                    else
                    {
                        sb.AppendLine("ifc:" + indivLocalUri);
                        sb.AppendLine("\trdf:type " + "ifc:" + docEnumeration.Name + " .");
                        sb.AppendLine();
                    }
                }
            }

            return sb.ToString();
        }