/// <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(); }
/// <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()); }