3535import com .thoughtworks .xstream .io .xml .DomDriver ;
3636
3737public class ApiXmlDocReader {
38- public static void main (String [] args ) {
38+ public static void main (String [] args ) {
3939 String newFile = null ;
4040 String oldFile = null ;
4141 String dirName = "" ;
42-
43- LinkedHashMap <String , Command > commands = new LinkedHashMap <String ,Command >();
44- LinkedHashMap <String , Command > oldCommands = new LinkedHashMap <String ,Command >();
42+
43+ LinkedHashMap <String , Command > commands = new LinkedHashMap <String , Command >();
44+ LinkedHashMap <String , Command > oldCommands = new LinkedHashMap <String , Command >();
4545 ArrayList <Command > addedCommands = new ArrayList <Command >();
4646 ArrayList <Command > removedCommands = new ArrayList <Command >();
4747 HashMap <String , Command > stableCommands = new HashMap <String , Command >();
4848
4949 XStream xs = new XStream (new DomDriver ());
5050 xs .alias ("command" , Command .class );
5151 xs .alias ("arg" , Argument .class );
52-
5352
5453 List <String > argsList = Arrays .asList (args );
5554 Iterator <String > iter = argsList .iterator ();
@@ -66,78 +65,78 @@ public static void main (String[] args) {
6665 dirName = iter .next ();
6766 }
6867 }
69-
68+
7069 try {
71- try {
70+ try {
7271 ObjectInputStream inOld = xs .createObjectInputStream (new FileReader (oldFile ));
73- while (true ){
74- Command c1 = (Command )inOld .readObject ();
72+ while (true ) {
73+ Command c1 = (Command ) inOld .readObject ();
7574 oldCommands .put (c1 .getName (), c1 );
7675 }
7776 } catch (EOFException ex ) {
78- //EOF exception shows that there is no more objects in ObjectInputStream, so do nothing here
77+ // EOF exception shows that there is no more objects in ObjectInputStream, so do nothing here
7978 }
80-
81- try {
79+
80+ try {
8281 ObjectInputStream inNew = xs .createObjectInputStream (new FileReader (newFile ));
83- while (true ){
84- Command c = (Command )inNew .readObject ();
82+ while (true ) {
83+ Command c = (Command ) inNew .readObject ();
8584 commands .put (c .getName (), c );
8685 }
8786 } catch (EOFException ex ) {
88- //EOF exception shows that there is no more objects in ObjectInputStream, so do nothing here
87+ // EOF exception shows that there is no more objects in ObjectInputStream, so do nothing here
8988 }
90- } catch (Exception ex ){
89+ } catch (Exception ex ) {
9190 ex .printStackTrace ();
9291 }
93-
94- //Check if any commands got added in new version
92+
93+ // Check if any commands got added in new version
9594 for (String key : commands .keySet ()) {
9695 if (!oldCommands .containsKey (key )) {
9796 addedCommands .add (commands .get (key ));
9897 } else {
9998 stableCommands .put (commands .get (key ).getName (), commands .get (key ));
10099 }
101100 }
102-
103- //Check if any commands were removed in new version
101+
102+ // Check if any commands were removed in new version
104103 for (String key : oldCommands .keySet ()) {
105104 if (!commands .containsKey (key )) {
106105 removedCommands .add (oldCommands .get (key ));
107106 if (stableCommands .get (key ) != null ) {
108107 stableCommands .remove (key );
109108 }
110- }
109+ }
111110 }
112-
113- try {
111+
112+ try {
114113 FileWriter fstream = new FileWriter (dirName + "/diff.txt" );
115114 BufferedWriter out = new BufferedWriter (fstream );
116-
117- //Print added commands
115+
116+ // Print added commands
118117 out .write ("Added commands:\n " );
119118 for (Command c : addedCommands ) {
120119 if (c .getDescription () != null && !c .getDescription ().isEmpty ()) {
121120 out .write ("\n " + c .getName () + " (" + c .getDescription () + ")\n " );
122121 } else {
123122 out .write ("\n " + c .getName () + "\n " );
124123 }
125-
124+
126125 }
127-
128- //Print removed commands
126+
127+ // Print removed commands
129128 out .write ("\n Removed commands:\n " );
130129 for (Command c : removedCommands ) {
131130 if (c .getDescription () != null && !c .getDescription ().isEmpty ()) {
132131 out .write ("\n \t " + c .getName () + " (" + c .getDescription () + ")\n " );
133132 } else {
134133 out .write ("\n \t " + c .getName () + "\n " );
135134 }
136-
135+
137136 }
138-
137+
139138 out .write ("\n Changes in command type (sync versus async)\n " );
140- //Verify if the command was sync and became async and vice versa
139+ // Verify if the command was sync and became async and vice versa
141140 for (String key : stableCommands .keySet ()) {
142141 if (commands .get (key ).isAsync () != oldCommands .get (key ).isAsync ()) {
143142 String type = "Sync" ;
@@ -147,31 +146,31 @@ public static void main (String[] args) {
147146 out .write ("\n \t " + stableCommands .get (key ).getName () + " became " + type );
148147 }
149148 }
150-
151149
152- //Print differences between commands arguments
150+ // Print differences between commands arguments
153151 out .write ("\n \n Changes in commands arguments:\n " );
154- for (String key : stableCommands .keySet ()){
152+ for (String key : stableCommands .keySet ()) {
155153 ArrayList <Argument > newReqArgs = new ArrayList <Argument >();
156154 ArrayList <Argument > removedReqArgs = new ArrayList <Argument >();
157155 HashMap <String , Argument > stableReqArgs = new HashMap <String , Argument >();
158156 ArrayList <Argument > newRespArgs = new ArrayList <Argument >();
159157 ArrayList <Argument > removedRespArgs = new ArrayList <Argument >();
160- HashMap <String , Argument > stableRespArgs = new HashMap <String , Argument >();
161-
158+
162159 Command newCommand = commands .get (key );
163160 Command oldCommand = oldCommands .get (key );
164-
165- //Check if any request arguments were added in new version
161+
162+ // Check if any request arguments were added in new version
166163 for (Argument arg : newCommand .getRequest ()) {
167164 if (oldCommand .getReqArgByName (arg .getName ()) == null ) {
168- newReqArgs .add (arg );
165+ if (!(arg .getName ().equals ("page" ) || arg .getName ().equals ("pagesize" ) || arg .getName ().equals ("keyword" ))) {
166+ newReqArgs .add (arg );
167+ }
169168 } else {
170169 stableReqArgs .put (arg .getName (), arg );
171170 }
172171 }
173-
174- //Check if any request arguments were removed in new version
172+
173+ // Check if any request arguments were removed in new version
175174 for (Argument arg : oldCommand .getRequest ()) {
176175 if (newCommand .getReqArgByName (arg .getName ()) == null ) {
177176 removedReqArgs .add (arg );
@@ -180,72 +179,71 @@ public static void main (String[] args) {
180179 }
181180 }
182181 }
183-
184- //Compare stable request arguments of old and new version
182+
183+ // Compare stable request arguments of old and new version
185184 for (Iterator <String > i = stableReqArgs .keySet ().iterator (); i .hasNext ();) {
186185 String argName = i .next ();
187186 if (oldCommand .getReqArgByName (argName ).isRequired () == newCommand .getReqArgByName (argName ).isRequired ()) {
188187 i .remove ();
189188 }
190189 }
191-
192- //Check if any response arguments were added in new version
190+
191+ // Check if any response arguments were added in new version
193192 if (newCommand .getResponse () != null && oldCommand .getResponse () != null ) {
194193 for (Argument arg : newCommand .getResponse ()) {
195194 if (oldCommand .getResArgByName (arg .getName ()) == null ) {
196195 newRespArgs .add (arg );
197- }
196+ }
198197 }
199-
200- //Check if any response arguments were removed in new version
198+
199+ // Check if any response arguments were removed in new version
201200 for (Argument arg : oldCommand .getResponse ()) {
202201 if (newCommand .getResArgByName (arg .getName ()) == null ) {
203202 removedRespArgs .add (arg );
204203 }
205204 }
206205 }
207-
208-
209- if (newReqArgs .size () != 0 || newRespArgs .size () != 0 || removedReqArgs .size () != 0 || removedRespArgs .size () != 0 || stableReqArgs .size () != 0 || stableReqArgs .size () != 0 ) {
210- StringBuffer commandInfo = new StringBuffer ();
206+
207+ if (newReqArgs .size () != 0 || newRespArgs .size () != 0 || removedReqArgs .size () != 0 || removedRespArgs .size () != 0 || stableReqArgs .size () != 0 || stableReqArgs .size () != 0 ) {
208+ StringBuffer commandInfo = new StringBuffer ();
211209 commandInfo .append ("\n \t " + key );
212210 out .write (commandInfo .toString ());
213- out .write ("\n " );
214-
215- //Request
216- if (newReqArgs .size () != 0 || removedReqArgs .size () != 0 ) {
217- StringBuffer request = new StringBuffer ();
211+ out .write ("\n " );
212+
213+ // Request
214+ if (newReqArgs .size () != 0 || removedReqArgs .size () != 0 || stableReqArgs . size () != 0 ) {
215+ StringBuffer request = new StringBuffer ();
218216 request .append ("\n \t \t Request:\n " );
219217 out .write (request .toString ());
220- if (newReqArgs .size () != 0 ){
221- StringBuffer newParameters = new StringBuffer ();
218+ if (newReqArgs .size () != 0 ) {
219+ StringBuffer newParameters = new StringBuffer ();
222220 newParameters .append ("\n \t \t \t New parameters: " );
223- for (Argument newArg : newReqArgs ) {
221+ for (Argument newArg : newReqArgs ) {
224222 String isRequiredParam = "optional" ;
225223 if (newArg .isRequired ()) {
226224 isRequiredParam = "required" ;
227225 }
228- newParameters .append (newArg .getName () + " (" + isRequiredParam + "), " );
226+ newParameters .append (newArg .getName () + " (" + isRequiredParam + "), " );
229227 }
230- newParameters .delete (newParameters .length ()- 2 , newParameters .length ()- 1 );
228+ newParameters .delete (newParameters .length () - 2 , newParameters .length () - 1 );
231229 out .write (newParameters .toString ());
232230 out .write ("\n " );
233231 }
234- if (removedReqArgs .size () != 0 ){
232+ if (removedReqArgs .size () != 0 ) {
235233 StringBuffer removedParameters = new StringBuffer ();
236234 removedParameters .append ("\n \t \t \t Removed parameters: " );
237- for (Argument removedArg : removedReqArgs ) {
235+ for (Argument removedArg : removedReqArgs ) {
238236 removedParameters .append (removedArg .getName () + ", " );
239237 }
240- removedParameters .delete (removedParameters .length ()- 2 , removedParameters .length ()- 1 );
238+ removedParameters .delete (removedParameters .length () - 2 , removedParameters .length () - 1 );
241239 out .write (removedParameters .toString ());
242240 out .write ("\n " );
243241 }
244-
245- if (stableReqArgs .size () != 0 ){
242+
243+ if (stableReqArgs .size () != 0 ) {
246244 StringBuffer changedParameters = new StringBuffer ();
247245 changedParameters .append ("\n \t \t \t Changed parameters: " );
248- for (Argument stableArg : stableReqArgs .values ()) {
246+ for (Argument stableArg : stableReqArgs .values ()) {
249247 String newRequired = "optional" ;
250248 String oldRequired = "optional" ;
251249 if (oldCommand .getReqArgByName (stableArg .getName ()).isRequired () == true )
@@ -258,43 +256,42 @@ public static void main (String[] args) {
258256 out .write (changedParameters .toString ());
259257 out .write ("\n " );
260258 }
261-
262259 }
263-
264- //Response
260+
261+ // Response
265262 if (newRespArgs .size () != 0 || removedRespArgs .size () != 0 ) {
266263 StringBuffer changedResponseParams = new StringBuffer ();
267264 changedResponseParams .append ("\n \t \t Response:\n " );
268265 out .write (changedResponseParams .toString ());
269- if (newRespArgs .size () != 0 ){
266+ if (newRespArgs .size () != 0 ) {
270267 StringBuffer newRespParams = new StringBuffer ();
271268 newRespParams .append ("\n \t \t \t New parameters: " );
272- for (Argument newArg : newRespArgs ) {
269+ for (Argument newArg : newRespArgs ) {
273270 newRespParams .append (newArg .getName () + ", " );
274271 }
275272 newRespParams .delete (newRespParams .length () - 2 , newRespParams .length () - 1 );
276273 out .write (newRespParams .toString ());
277274 out .write ("\n " );
278275 }
279- if (removedRespArgs .size () != 0 ){
276+ if (removedRespArgs .size () != 0 ) {
280277 StringBuffer removedRespParams = new StringBuffer ();
281278 removedRespParams .append ("\n \t \t \t Removed parameters: " );
282- for (Argument removedArg : removedRespArgs ) {
279+ for (Argument removedArg : removedRespArgs ) {
283280 removedRespParams .append (removedArg .getName () + ", " );
284281 }
285282 removedRespParams .delete (removedRespParams .length () - 2 , removedRespParams .length () - 1 );
286283 out .write (removedRespParams .toString ());
287284 out .write ("\n " );
288285 }
289286 }
290- }
287+ }
291288 }
292-
289+
293290 out .close ();
294291
295- } catch (IOException e ) {
296- e .printStackTrace ();
297- }
292+ } catch (IOException e ) {
293+ e .printStackTrace ();
294+ }
298295
299296 }
300297}
0 commit comments