summaryrefslogtreecommitdiff
blob: bcd67e9eece45ac43e708cd0c2625059f9561014 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Index: src/main/org/jibx/xsd2jibx/JSource.java
===================================================================
RCS file: /cvsroot/jibx/xsd2jibx/src/main/org/jibx/xsd2jibx/JSource.java,v
retrieving revision 1.6
diff -u -B -r1.6 JSource.java
--- src/main/org/jibx/xsd2jibx/JSource.java	19 Feb 2005 20:02:31 -0000	1.6
+++ src/main/org/jibx/xsd2jibx/JSource.java	6 May 2007 21:16:33 -0000
@@ -89,6 +89,12 @@
 			jm.addParam(jqname, element.getFieldName());
 			jm.addLine(element.getFieldList() + ".add(" + element.getFieldName() + ");");
 
+			// create add to position method:
+			jm = source.newJavaMethod(element.getAddPositionMethod(), JQName.VOID.getJavaQName(), PUBLIC);
+			jm.addParam(JQName.INT.getJavaQName(), "position");
+			jm.addParam(jqname, element.getFieldName());
+			jm.addLine(element.getFieldList() + ".add(position, " + element.getFieldName() + ");");
+
 			// create getMethod
 			jm = source.newJavaMethod(element.getGetMethod(), jqname, PUBLIC);
 			jm.addParam(JQName.INT.getJavaQName(), "index");
@@ -97,6 +103,13 @@
 			//create size method
 			jm = source.newJavaMethod(element.getSizeMethod(), JQName.INT.getJavaQName(), JavaSource.PUBLIC);
 			jm.addLine("return " + element.getFieldList() + ".size();");
+
+			//create clear method
+			jm = source.newJavaMethod(element.getClearMethod(), JQName.VOID.getJavaQName(), JavaSource.PUBLIC);
+			jm.addLine(element.getFieldList() + ".clear();");
+			//create unmodified method
+			jm = source.newJavaMethod(element.getListMethod(), "java.util.List", JavaSource.PUBLIC);
+			jm.addLine("return java.util.Collections.unmodifiableList("+element.getFieldList() + ");");
 		} else { // it is not a collection
 			newBeanProperty(element);
 		}
Index: src/main/org/jibx/xsd2jibx/XsdElement.java
===================================================================
RCS file: /cvsroot/jibx/xsd2jibx/src/main/org/jibx/xsd2jibx/XsdElement.java,v
retrieving revision 1.6
diff -u -B -r1.6 XsdElement.java
--- src/main/org/jibx/xsd2jibx/XsdElement.java	19 Feb 2005 20:02:31 -0000	1.6
+++ src/main/org/jibx/xsd2jibx/XsdElement.java	6 May 2007 21:16:33 -0000
@@ -60,6 +60,12 @@
 		return sb.toString();
 	}
 
+	public String getAddPositionMethod() {
+		StringBuffer sb = new StringBuffer("addAt");
+		sb.append(NameUtil.toUpperCamelCase(getJavaName()));
+		return sb.toString();
+	}
+
 	public String getSizeMethod() {
 		StringBuffer sb = new StringBuffer("size");
 		sb.append(NameUtil.toUpperCamelCase(getJavaName()));
@@ -67,6 +73,19 @@
 		return sb.toString();
 	}
 
+	public String getClearMethod() {
+		StringBuffer sb = new StringBuffer("clear");
+		sb.append(NameUtil.toUpperCamelCase(getJavaName()));
+		sb.append(NameUtil.addListSuffix);
+		return sb.toString();
+	}
+	public String getListMethod() {
+		StringBuffer sb = new StringBuffer("getList");
+		sb.append(NameUtil.toUpperCamelCase(getJavaName()));
+		sb.append(NameUtil.addListSuffix);
+		return sb.toString();
+	}
+
 	protected void importRef() {
 		
 		if (this.ref != null) {