X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Fsal-rest-docgen%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Frest%2Fdoc%2Fimpl%2FBaseYangSwaggerGenerator.java;h=c6c7f1d28d23f2750adb8a895915fb7120e5f02d;hb=2276e0acefe29ea23e89d9295b4774a61b3c69e2;hp=55c62b24a1b38fa22b1a806b61f325340f91d94b;hpb=74a1f4cbbab1dbb405c81d55a4aa165914bcd7c9;p=netconf.git diff --git a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java index 55c62b24a1..c6c7f1d28d 100644 --- a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java +++ b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java @@ -15,9 +15,7 @@ import com.fasterxml.jackson.datatype.jsonorg.JsonOrgModule; import com.google.common.base.Preconditions; import java.io.IOException; import java.net.URI; -import java.text.DateFormat; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -44,6 +42,7 @@ import org.opendaylight.netconf.sal.rest.doc.swagger.Parameter; import org.opendaylight.netconf.sal.rest.doc.swagger.Resource; import org.opendaylight.netconf.sal.rest.doc.swagger.ResourceList; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; @@ -52,6 +51,7 @@ import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,7 +65,6 @@ public class BaseYangSwaggerGenerator { private static final String RESTCONF_DRAFT = "18"; static final String MODULE_NAME_SUFFIX = "_module"; - protected static final DateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); private final ModelGenerator jsonConverter = new ModelGenerator(); // private Map MODULE_DOC_CACHE = new HashMap<>() @@ -92,7 +91,7 @@ public class BaseYangSwaggerGenerator { LOG.info("Modules found [{}]", modules.size()); for (final Module module : modules) { - final String revisionString = SIMPLE_DATE_FORMAT.format(module.getRevision()); + final String revisionString = module.getQNameModule().getFormattedRevision(); final Resource resource = new Resource(); LOG.debug("Working on [{},{}]...", module.getName(), revisionString); final ApiDeclaration doc = @@ -128,8 +127,8 @@ public class BaseYangSwaggerGenerator { Date rev = null; try { - if ((revision != null) && !revision.equals("0000-00-00")) { - rev = SIMPLE_DATE_FORMAT.parse(revision); + if (revision != null && !SourceIdentifier.NOT_PRESENT_FORMATTED_REVISION.equals(revision)) { + rev = SimpleDateFormatUtil.getRevisionFormat().parse(revision); } } catch (final ParseException e) { throw new IllegalArgumentException(e); @@ -249,8 +248,8 @@ public class BaseYangSwaggerGenerator { return null; } - private void addRootPostLink(final Module module, final DataNodeContainer node, final List pathParams, - final String resourcePath, final String dataStore, final List apis) { + private static void addRootPostLink(final Module module, final DataNodeContainer node, + final List pathParams, final String resourcePath, final String dataStore, final List apis) { if (containsListOrContainer(module.getChildNodes())) { final Api apiForRootPostUri = new Api(); apiForRootPostUri.setPath(resourcePath.concat(getContent(dataStore))); @@ -273,15 +272,14 @@ public class BaseYangSwaggerGenerator { if (newDraft) { if ("config".contains(dataStore) || "operational".contains(dataStore)) { return "/" + RESTCONF_DRAFT + "/data" + context; - } else { - return "/" + RESTCONF_DRAFT + "/operations" + context; } - } else { - return "/" + dataStore + context; + return "/" + RESTCONF_DRAFT + "/operations" + context; } + + return "/" + dataStore + context; } - private String generateCacheKey(final String module, final String revision) { + private static String generateCacheKey(final String module, final String revision) { return module + "(" + revision + ")"; } @@ -329,16 +327,16 @@ public class BaseYangSwaggerGenerator { } } - private boolean containsListOrContainer(final Iterable nodes) { + private static boolean containsListOrContainer(final Iterable nodes) { for (final DataSchemaNode child : nodes) { - if ((child instanceof ListSchemaNode) || (child instanceof ContainerSchemaNode)) { + if (child instanceof ListSchemaNode || child instanceof ContainerSchemaNode) { return true; } } return false; } - private List operation(final DataSchemaNode node, final List pathParams, + private static List operation(final DataSchemaNode node, final List pathParams, final boolean isConfig, final Iterable childSchemaNodes, final String parentName) { final List operations = new ArrayList<>(); @@ -360,7 +358,7 @@ public class BaseYangSwaggerGenerator { return operations; } - private List operationPost(final String name, final String description, + private static List operationPost(final String name, final String description, final DataNodeContainer dataNodeContainer, final List pathParams, final boolean isConfig, final String parentName) { final List operations = new ArrayList<>(); @@ -371,7 +369,7 @@ public class BaseYangSwaggerGenerator { return operations; } - private String createPath(final DataSchemaNode schemaNode, final List pathParams, + private static String createPath(final DataSchemaNode schemaNode, final List pathParams, final SchemaContext schemaContext) { final ArrayList pathListParams = new ArrayList<>(); final StringBuilder path = new StringBuilder(); @@ -421,10 +419,10 @@ public class BaseYangSwaggerGenerator { operationSpec.setMethod("POST"); operationSpec.setNotes(rpcDefn.getDescription()); operationSpec.setNickname(rpcDefn.getQName().getLocalName()); - if (rpcDefn.getOutput() != null) { + if (!rpcDefn.getOutput().getChildNodes().isEmpty()) { operationSpec.setType("(" + rpcDefn.getQName().getLocalName() + ")output" + OperationBuilder.TOP); } - if (rpcDefn.getInput() != null) { + if (!rpcDefn.getInput().getChildNodes().isEmpty()) { final Parameter payload = new Parameter(); payload.setParamType("body"); payload.setType("(" + rpcDefn.getQName().getLocalName() + ")input" + OperationBuilder.TOP); @@ -465,6 +463,6 @@ public class BaseYangSwaggerGenerator { } public void setDraft(final boolean draft) { - this.newDraft = draft; + BaseYangSwaggerGenerator.newDraft = draft; } }