package org.opendaylight.controller.sal.rest.doc.impl;
import static org.opendaylight.controller.sal.rest.doc.util.RestDocgenUtil.resolvePathArgumentsName;
-
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsonorg.JsonOrgModule;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
+import java.util.GregorianCalendar;
import java.util.List;
import java.util.Set;
import java.util.SortedSet;
public ApiDeclaration getApiDeclaration(String module, String revision, UriInfo uriInfo, SchemaContext schemaContext, String context) {
Date rev = null;
+
try {
- rev = SIMPLE_DATE_FORMAT.parse(revision);
+ if(revision != null && !revision.equals("0000-00-00")) {
+ rev = SIMPLE_DATE_FORMAT.parse(revision);
+ }
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
+
+ if(rev != null) {
+ Calendar cal = new GregorianCalendar();
+
+ cal.setTime(rev);
+
+ if(cal.get(Calendar.YEAR) < 1970) {
+ rev = null;
+ }
+ }
+
Module m = schemaContext.findModuleByName(module, rev);
Preconditions.checkArgument(m != null, "Could not find module by name,revision: " + module + "," + revision);
SortedSet<Module> sortedModules = new TreeSet<>(new Comparator<Module>() {
@Override
- public int compare(Module o1, Module o2) {
- int result = o1.getName().compareTo(o2.getName());
+ public int compare(Module module1, Module module2) {
+ int result = module1.getName().compareTo(module2.getName());
if (result == 0) {
- result = o1.getRevision().compareTo(o2.getRevision());
+ Date module1Revision = module1.getRevision() != null ? module1.getRevision() : new Date(0);
+ Date module2Revision = module2.getRevision() != null ? module2.getRevision() : new Date(0);
+ result = module1Revision.compareTo(module2Revision);
}
if (result == 0) {
- result = o1.getNamespace().compareTo(o2.getNamespace());
+ result = module1.getNamespace().compareTo(module2.getNamespace());
}
return result;
}