}
public ApiDeclaration getApiDeclaration(final String module, final String revision, final UriInfo uriInfo) {
+ Preconditions.checkState(schemaService != null);
final SchemaContext schemaContext = schemaService.getGlobalContext();
Preconditions.checkState(schemaContext != null);
return super.getApiDeclaration(module, revision, uriInfo, schemaContext, "");
return INSTANCE;
}
- public void setDraft(final boolean newDraft) {
- super.setDraft(newDraft);
- }
-
public void setSchemaService(final SchemaService schemaService) {
this.schemaService = schemaService;
}
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import java.io.ByteArrayOutputStream;
+import java.io.IOException;
import java.io.OutputStreamWriter;
+import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.Map.Entry;
import javax.ws.rs.core.Response;
return Response.seeOther(uriInfo.getBaseUriBuilder().path("../explorer/index.html").build()).build();
}
- @SuppressWarnings("checkstyle:IllegalCatch")
@Override
public synchronized Response getListOfMounts(final UriInfo uriInfo) {
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
}
writer.writeEndArray();
writer.flush();
- } catch (final Exception e) {
- return Response.status(500).entity(e.getMessage()).build();
+ } catch (IOException e) {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
+ }
+
+ try {
+ String responseStr = baos.toString(StandardCharsets.UTF_8.name());
+ return Response.status(Response.Status.OK).entity(responseStr).build();
+ } catch (UnsupportedEncodingException e) {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
}
- return Response.status(200).entity(baos.toString()).build();
}
@Override
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
// private Map<String, ApiDeclaration> MODULE_DOC_CACHE = new HashMap<>()
private final ObjectMapper mapper = new ObjectMapper();
- private static boolean newDraft;
+ private volatile boolean newDraft;
protected BaseYangSwaggerGenerator() {
this.mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
return null;
}
- private static void addRootPostLink(final Module module, final DataNodeContainer node,
+ private void addRootPostLink(final Module module, final DataNodeContainer node,
final List<Parameter> pathParams, final String resourcePath, final String dataStore, final List<Api> apis) {
if (containsListOrContainer(module.getChildNodes())) {
final Api apiForRootPostUri = new Api();
}
}
- protected static String getContent(final String dataStore) {
+ protected String getContent(final String dataStore) {
if (newDraft) {
if ("operational".contains(dataStore)) {
return "?content=nonconfig";
return operations;
}
- private static String createPath(final DataSchemaNode schemaNode, final List<Parameter> pathParams,
+ private String createPath(final DataSchemaNode schemaNode, final List<Parameter> pathParams,
final SchemaContext schemaContext) {
- final ArrayList<LeafSchemaNode> pathListParams = new ArrayList<>();
final StringBuilder path = new StringBuilder();
final String localName = resolvePathArgumentsName(schemaNode, schemaContext);
path.append(localName);
for (final QName listKey : listKeys) {
final DataSchemaNode dataChildByName = ((DataNodeContainer) schemaNode).getDataChildByName(listKey);
- pathListParams.add((LeafSchemaNode) dataChildByName);
final String pathParamIdentifier;
if (newDraft) {
pathParamIdentifier = keyBuilder.append("{").append(listKey.getLocalName()).append("}").toString();
}
public void setDraft(final boolean draft) {
- BaseYangSwaggerGenerator.newDraft = draft;
+ this.newDraft = draft;
+ }
+
+ protected boolean isNewDraft() {
+ return newDraft;
}
}
*/
package org.opendaylight.netconf.sal.rest.doc.model.builder;
+import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.List;
import org.opendaylight.netconf.sal.rest.doc.swagger.Operation;
public static final String CONFIG = "(config)";
public static final String TOP = "-TOP";
- public static final List<String> CONSUMES_PUT_POST = new ArrayList<>();
-
- static {
- CONSUMES_PUT_POST.add("application/json");
- CONSUMES_PUT_POST.add("application/xml");
- }
+ public static final List<String> CONSUMES_PUT_POST = ImmutableList.of("application/json", "application/xml");
private OperationBuilder() {
package org.opendaylight.netconf.sal.rest.doc.mountpoints;
import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
private static final String DATASTORES_REVISION = "-";
private static final String DATASTORES_LABEL = "Datastores";
- private static final String RESTCONF_DRAFT = "18";
private static final AtomicReference<MountPointSwagger> SELF_REF = new AtomicReference<>();
private DOMMountPointService mountService;
private final AtomicLong idKey = new AtomicLong(0);
private SchemaService globalSchema;
- private static boolean newDraft;
public Map<String, Long> getInstanceIdentifiers() {
+ Preconditions.checkState(globalSchema != null);
final Map<String, Long> urlToId = new HashMap<>();
synchronized (this.lock) {
final SchemaContext context = this.globalSchema.getGlobalContext();
if (arg instanceof YangInstanceIdentifier.NodeIdentifierWithPredicates) {
final NodeIdentifierWithPredicates nodeId = (NodeIdentifierWithPredicates) arg;
for (final Entry<QName, Object> entry : nodeId.getKeyValues().entrySet()) {
- if (newDraft) {
+ if (isNewDraft()) {
builder.deleteCharAt(builder.length() - 1).append("=").append(entry.getValue()).append('/');
} else {
builder.append(entry.getValue()).append('/');
}
private String getYangMountUrl(final YangInstanceIdentifier key) {
+ Preconditions.checkState(globalSchema != null);
final String modName = findModuleName(key, this.globalSchema.getGlobalContext());
return generateUrlPrefixFromInstanceID(key, modName) + "yang-ext:mount";
}
return null;
}
+ Preconditions.checkState(mountService != null);
final Optional<DOMMountPoint> mountPoint = this.mountService.getMountPoint(id);
if (!mountPoint.isPresent()) {
return null;
SELF_REF.compareAndSet(null, new MountPointSwagger());
swagger = SELF_REF.get();
}
- newDraft = false;
+
+ swagger.setDraft(false);
return swagger;
}
SELF_REF.compareAndSet(null, new MountPointSwagger());
swagger = SELF_REF.get();
}
- newDraft = true;
+
+ swagger.setDraft(true);
return swagger;
}
}