コード例 #1
0
		/// <summary> Returns source code for an accessor method for a particular Structure. </summary>
		public static System.String makeAccessor(NuGenGroupDef group, int structure)
		{
			System.Text.StringBuilder source = new System.Text.StringBuilder();
			
			NuGenStructureDef def = group.Structures[structure];
			
			System.String name = def.Name;
			System.String indexName = group.getIndexName(name);
			System.String getterName = indexName;
			if (def is NuGenGroupDef)
			{
				System.String unqualifiedName = ((NuGenGroupDef) def).UnqualifiedName;
				getterName = group.getIndexName(unqualifiedName);
			}
			
			//make accessor for first (or only) rep ... 
			source.Append("\t/**\r\n");
			source.Append("\t * Returns ");
			if (def.Repeating)
				source.Append(" first repetition of ");
			source.Append(indexName);
			source.Append(" (");
			source.Append(def.Description);
			source.Append(") - creates it if necessary\r\n");
			source.Append("\t */\r\n");
			source.Append("\tpublic ");
			source.Append(def.Name);
			source.Append(" get");
			source.Append(getterName);
			source.Append("() { \r\n");
			source.Append("\t   ");
			source.Append(def.Name);
			source.Append(" ret = null;\r\n");
			source.Append("\t   try {\r\n");
			source.Append("\t      ret = (");
			source.Append(def.Name);
			source.Append(")this.get(\"");
			source.Append(getterName);
			source.Append("\");\r\n");
			source.Append("\t   } catch(HL7Exception e) {\r\n");
			source.Append("\t      throw new Exception();\r\n");
			source.Append("\t   }\r\n");
			source.Append("\t   return ret;\r\n");
			source.Append("\t}\r\n\r\n");
			
			if (def.Repeating)
			{
				//make accessor for specific rep ... 
				source.Append("\t/**\r\n");
				source.Append("\t * Returns a specific repetition of ");
				source.Append(indexName);
				source.Append("\r\n");
				source.Append("\t * (");
				source.Append(def.Description);
				source.Append(") - creates it if necessary\r\n");
				source.Append("\t * throws HL7Exception if the repetition requested is more than one \r\n");
				source.Append("\t *     greater than the number of existing repetitions.\r\n");
				source.Append("\t */\r\n");
				source.Append("\tpublic ");
				source.Append(def.Name);
				source.Append(" get");
				source.Append(getterName);
				source.Append("(int rep) throws HL7Exception { \r\n");
				source.Append("\t   return (");
				source.Append(def.Name);
				source.Append(")this.get(\"");
				source.Append(getterName);
				source.Append("\", rep);\r\n");
				source.Append("\t}\r\n\r\n");
				
				//make accessor for number of reps
				source.Append("\t/** \r\n");
				source.Append("\t * Returns the number of existing repetitions of ");
				source.Append(indexName);
				source.Append(" \r\n");
				source.Append("\t */ \r\n");
				source.Append("\tpublic int get");
				source.Append(getterName);
				source.Append("Reps() { \r\n");
				source.Append("\t    int reps = -1; \r\n");
				source.Append("\t    try { \r\n");
				source.Append("\t        reps = this.getAll(\"");
				source.Append(getterName);
				source.Append("\").length; \r\n");
				source.Append("\t    } catch (HL7Exception e) { \r\n");
				source.Append("\t        String message = \"Unexpected error accessing data - this is probably a bug in the source code generator.\"; \r\n");
				source.Append("\t        throw new Exception(message);\r\n");
				source.Append("\t    } \r\n");
				source.Append("\t    return reps; \r\n");
				source.Append("\t} \r\n\r\n");
			}
			
			return source.ToString();
		}
コード例 #2
0
        /// <summary> Returns source code for an accessor method for a particular Structure. </summary>
        public static System.String makeAccessor(NuGenGroupDef group, int structure)
        {
            System.Text.StringBuilder source = new System.Text.StringBuilder();

            NuGenStructureDef def = group.Structures[structure];

            System.String name       = def.Name;
            System.String indexName  = group.getIndexName(name);
            System.String getterName = indexName;
            if (def is NuGenGroupDef)
            {
                System.String unqualifiedName = ((NuGenGroupDef)def).UnqualifiedName;
                getterName = group.getIndexName(unqualifiedName);
            }

            //make accessor for first (or only) rep ...
            source.Append("\t/**\r\n");
            source.Append("\t * Returns ");
            if (def.Repeating)
            {
                source.Append(" first repetition of ");
            }
            source.Append(indexName);
            source.Append(" (");
            source.Append(def.Description);
            source.Append(") - creates it if necessary\r\n");
            source.Append("\t */\r\n");
            source.Append("\tpublic ");
            source.Append(def.Name);
            source.Append(" get");
            source.Append(getterName);
            source.Append("() { \r\n");
            source.Append("\t   ");
            source.Append(def.Name);
            source.Append(" ret = null;\r\n");
            source.Append("\t   try {\r\n");
            source.Append("\t      ret = (");
            source.Append(def.Name);
            source.Append(")this.get(\"");
            source.Append(getterName);
            source.Append("\");\r\n");
            source.Append("\t   } catch(HL7Exception e) {\r\n");
            source.Append("\t      throw new Exception();\r\n");
            source.Append("\t   }\r\n");
            source.Append("\t   return ret;\r\n");
            source.Append("\t}\r\n\r\n");

            if (def.Repeating)
            {
                //make accessor for specific rep ...
                source.Append("\t/**\r\n");
                source.Append("\t * Returns a specific repetition of ");
                source.Append(indexName);
                source.Append("\r\n");
                source.Append("\t * (");
                source.Append(def.Description);
                source.Append(") - creates it if necessary\r\n");
                source.Append("\t * throws HL7Exception if the repetition requested is more than one \r\n");
                source.Append("\t *     greater than the number of existing repetitions.\r\n");
                source.Append("\t */\r\n");
                source.Append("\tpublic ");
                source.Append(def.Name);
                source.Append(" get");
                source.Append(getterName);
                source.Append("(int rep) throws HL7Exception { \r\n");
                source.Append("\t   return (");
                source.Append(def.Name);
                source.Append(")this.get(\"");
                source.Append(getterName);
                source.Append("\", rep);\r\n");
                source.Append("\t}\r\n\r\n");

                //make accessor for number of reps
                source.Append("\t/** \r\n");
                source.Append("\t * Returns the number of existing repetitions of ");
                source.Append(indexName);
                source.Append(" \r\n");
                source.Append("\t */ \r\n");
                source.Append("\tpublic int get");
                source.Append(getterName);
                source.Append("Reps() { \r\n");
                source.Append("\t    int reps = -1; \r\n");
                source.Append("\t    try { \r\n");
                source.Append("\t        reps = this.getAll(\"");
                source.Append(getterName);
                source.Append("\").length; \r\n");
                source.Append("\t    } catch (HL7Exception e) { \r\n");
                source.Append("\t        String message = \"Unexpected error accessing data - this is probably a bug in the source code generator.\"; \r\n");
                source.Append("\t        throw new Exception(message);\r\n");
                source.Append("\t    } \r\n");
                source.Append("\t    return reps; \r\n");
                source.Append("\t} \r\n\r\n");
            }

            return(source.ToString());
        }