Package de.metalcon.server.tomcat.NSSP.create

Examples of de.metalcon.server.tomcat.NSSP.create.CreateResponse


    // store response item for the server response creation
    final TomcatClientResponder responder = new TomcatClientResponder(
        response);
    response.setHeader("Access-Control-Allow-Origin",
        this.config.getHeaderAccessControl());
    CreateResponse createResponse = new CreateResponse();
    FormItemList formItemList = null;
    try {
      formItemList = FormItemList.extractFormItems(request, FACTORY);
    } catch (final FileUploadException e) {
      responder.error(500,
          "errors encountered while processing the request");
      return;
    }

    if (formItemList != null) {
      final CreateRequest createRequest = CreateRequest.checkRequest(
          formItemList, createResponse);

      boolean commandStacked = false;
      if (createRequest != null) {
        switch (createRequest.getType()) {

        // create a user
        case USER:
          final CreateUserResponse createUserResponse = new CreateUserResponse();
          final CreateUserRequest createUserRequest = CreateUserRequest
              .checkRequest(formItemList, createRequest,
                  createUserResponse);
          createResponse = createUserResponse;

          if (createUserRequest != null) {
            // create user
            final CreateUser createUserCommand = new CreateUser(
                this, createUserResponse, createUserRequest);
            this.commandQueue.add(createUserCommand);

            commandStacked = true;
          }
          break;

        // create a follow edge
        case FOLLOW:
          final CreateFollowResponse createFollowResponse = new CreateFollowResponse();
          final CreateFollowRequest createFollowRequest = CreateFollowRequest
              .checkRequest(formItemList, createRequest,
                  createFollowResponse);
          createResponse = createFollowResponse;

          if (createFollowRequest != null) {
            // create follow edge
            final CreateFollow createFollowCommand = new CreateFollow(
                this, createFollowResponse, createFollowRequest);
            this.commandQueue.add(createFollowCommand);

            commandStacked = true;
          }
          break;

        // create a status update
        default:
          final CreateStatusUpdateResponse createStatusUpdateResponse = new CreateStatusUpdateResponse();
          final CreateStatusUpdateRequest createStatusUpdateRequest = CreateStatusUpdateRequest
              .checkRequest(formItemList, createRequest,
                  createStatusUpdateResponse);
          createResponse = createStatusUpdateResponse;

          if (createStatusUpdateRequest != null) {
            try {
              this.writeFiles(createStatusUpdateRequest
                  .getStatusUpdateTemplate(), formItemList);

              // create a new status update of the type specified
              final StatusUpdate statusUpdate = StatusUpdateManager
                  .instantiateStatusUpdate(
                      createStatusUpdateRequest
                          .getStatusUpdateTemplate()
                          .getName(), formItemList);
              statusUpdate.setId(createStatusUpdateRequest
                  .getStatusUpdateId());
              createStatusUpdateRequest
                  .setStatusUpdate(statusUpdate);

              // create status update
              final CreateStatusUpdate createStatusUpdateCommand = new CreateStatusUpdate(
                  this, createStatusUpdateResponse,
                  createStatusUpdateRequest);
              this.commandQueue.add(createStatusUpdateCommand);

              commandStacked = true;
            } catch (final StatusUpdateInstantiationFailedException e) {
              // remove the files
              FormFile fileItem;
              File file;
              for (String fileIdentifier : formItemList
                  .getFileIdentifiers()) {
                fileItem = formItemList.getFile(fileIdentifier);
                file = fileItem.getFile();

                if (file != null) {
                  file.delete();
                }
              }

              createStatusUpdateResponse
                  .statusUpdateInstantiationFailed(e
                      .getMessage());
            } catch (final Exception e) {
              responder.error(500,
                  "errors encountered while writing files");
            }
          }
          break;

        }

        if (commandStacked) {
          try {
            this.workingQueue.take();
          } catch (final InterruptedException e) {
            System.err
                .println("request status queue failed due to create request");
            e.printStackTrace();
          }
        }
      }
    } else {
      createResponse.noMultipartRequest();
    }

    responder.addLine(createResponse.toString());
    responder.finish();
  }
View Full Code Here

TOP

Related Classes of de.metalcon.server.tomcat.NSSP.create.CreateResponse

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.