Examples of Division


Examples of org.dspace.app.xmlui.wing.element.Division

 
    public void addBody(Body body) throws SAXException, WingException,
            UIException, SQLException, IOException, AuthorizeException
    {
        Division contact = body.addDivision("contact","primary");
    
        contact.setHead(T_head);
       
        String name = ConfigurationManager.getProperty("dspace.name");
        contact.addPara(T_para1.parameterize(name));
       
        List list = contact.addList("contact");
       
        list.addLabel(T_feedback_label);
        list.addItem().addXref(contextPath+"/feedback",T_feedback_link);
       
        list.addLabel(T_email);
View Full Code Here

Examples of org.dspace.app.xmlui.wing.element.Division

    public void addBody(Body body) throws SAXException, WingException,
            UIException, SQLException, IOException, AuthorizeException
    {

        // Build the item viewer division.
        Division feedback = body.addInteractiveDivision("feedback-form",
                contextPath+"/feedback",Division.METHOD_POST,"primary");
       
        feedback.setHead(T_head);
       
        feedback.addPara(T_para1);
       
        List form = feedback.addList("form",List.TYPE_FORM);
       
        Text email = form.addItem().addText("email");
        email.setLabel(T_email);
        email.setHelp(T_email_help);
        email.setValue(parameters.getParameter("email",""));
       
        TextArea comments = form.addItem().addTextArea("comments");
        comments.setLabel(T_comments);
        comments.setValue(parameters.getParameter("comments",""));
       
        form.addItem().addButton("submit").setValue(T_submit);
       
        feedback.addHidden("page").setValue(parameters.getParameter("page","unknown"));
    }
View Full Code Here

Examples of org.dspace.app.xmlui.wing.element.Division

 
     
     
      // Division 1:
      //  Global division
    Division div = body.addDivision("submit-cclicense", "primary submission");
    div.setHead(T_submission_head);
       
        // Division 2:
    //Progress bar division
        Division progressDiv = div.addInteractiveDivision("submit-cclicense-progress", actionURL, Division.METHOD_POST);
        addSubmissionProgressList(progressDiv);
        //need 'submission-continue' in order to keep current state
        progressDiv.addHidden("submission-continue").setValue(knot.getId());
       
    // Division 3:
    //  Creative commons offsite division
      Division offsiteDiv = div.addInteractiveDivision("submit-cclicense-offsite", CREATIVE_COMMONS_URL, Division.METHOD_POST);
        offsiteDiv.setHead(T_head);
      offsiteDiv.addPara(T_info1);
   
      offsiteDiv.addHidden("submission-continue").setValue(knot.getId());
      offsiteDiv.addHidden("partner").setValue("dspace");
      offsiteDiv.addHidden("exit_url").setValue(exitURL);

        String jurisdiction = ConfigurationManager.getProperty("webui.submit.cc-jurisdiction");
        if ((jurisdiction != null) && (!"".equals(jurisdiction)))
        {
            offsiteDiv.addHidden("jurisdiction").setValue(jurisdiction.trim());
        }

      Para ccPara = offsiteDiv.addPara("creative-commons-button","creative-commons-button");
      ccPara.addButton("submit_to_creative_commons").setValue(T_submit_to_creative_commons);
 
      // Division 4:
    //  Local onsite division
    Division onsiteDiv = div.addInteractiveDivision("submit-cclicense-offsite", actionURL, Division.METHOD_POST);
    List form = onsiteDiv.addList("submit-review", List.TYPE_FORM);
 
    form.addLabel(T_license);
    if (CreativeCommons.hasLicense(context, item))
    {
      String url = CreativeCommons.getLicenseURL(item);
View Full Code Here

Examples of org.dspace.app.xmlui.wing.element.Division

            UIException, SQLException, IOException, AuthorizeException
    {
        String queryString = getQuery();

        // Build the DRI Body
        Division search = body.addDivision("search","primary");
        search.setHead(T_head);
        Division query = search.addInteractiveDivision("general-query",
                "search",Division.METHOD_GET,"secondary search");

        List queryList = query.addList("search-query",List.TYPE_FORM);
       
        if (variableScope())
        {
            Select scope = queryList.addItem().addSelect("scope");
            scope.setLabel(T_search_scope);
            buildScopeList(scope);
        }
       
        Text text = queryList.addItem().addText("query");
        text.setLabel(T_full_text_search);
        text.setValue(queryString);
       
        buildSearchControls(query);
        query.addPara(null, "button-list").addButton("submit").setValue(T_go);

        // Add the result division
        buildSearchResultsDivision(search);

    }
View Full Code Here

Examples of org.dspace.app.xmlui.wing.element.Division

    // a harvest instance exists for this collection
    HarvestedCollection hc = HarvestedCollection.find(context, collectionID);
    String baseURL = contextPath + "/admin/collection?administrative-continue=" + knot.getId();
   
    // DIVISION: main
      Division main = body.addInteractiveDivision("collection-harvesting-setup",contextPath+"/admin/collection",Division.METHOD_MULTIPART,"primary administrative collection");
      main.setHead(T_main_head.parameterize(thisCollection.getMetadata("name")));  
     
      List options = main.addList("options",List.TYPE_SIMPLE,"horizontal");
      options.addItem().addXref(baseURL+"&submit_metadata",T_options_metadata);
      options.addItem().addXref(baseURL+"&submit_roles",T_options_roles);
      options.addItem().addHighlight("bold").addXref(baseURL+"&submit_harvesting",T_options_harvest);
     
     
      // The top-level, all-setting, countent source radio button
      List harvestSource = main.addList("harvestSource", "form");
     
      harvestSource.addLabel(T_label_source);
      Radio source = harvestSource.addItem().addRadio("source");
      source.addOption(hc == null, "source_normal", T_source_normal);
      source.addOption(hc != null, "source_harvested", T_source_harvested);
  
    Para buttonList = main.addPara();
      buttonList.addButton("submit_save").setValue(T_submit_save);
      buttonList.addButton("submit_return").setValue(T_submit_return);
     
      main.addHidden("administrative-continue").setValue(knot.getId());
    }
View Full Code Here

Examples of org.dspace.app.xmlui.wing.element.Division

        String baseURL = contextPath+"/admin/epeople?administrative-continue="+knot.getId();
       
        ArrayList<ResourcePolicy> policies = new ArrayList<ResourcePolicy>();

        // DIVISION: edit-container-policies
        Division main = body.addInteractiveDivision("edit-container-policies",contextPath+"/admin/authorize",Division.METHOD_POST,"primary administrative authorization");
   
    if (containerType == Constants.COLLECTION)
      {
      Collection col = Collection.find(context, containerID);
      main.setHead(T_main_head_collection.parameterize(col.getMetadata("name"),col.getHandle(),col.getID()));
      policies = (ArrayList<ResourcePolicy>)AuthorizeManager.getPolicies(context, col);
      }
    else
    {
      Community com = Community.find(context, containerID);
      main.setHead(T_main_head_community.parameterize(com.getMetadata("name"),com.getHandle(),com.getID()));
      policies = (ArrayList<ResourcePolicy>)AuthorizeManager.getPolicies(context, com);
    }
   
    /* Adding a new policy link */
    main.addPara().addXref(baseURL + "&submit_add", T_add_link);
   
      Table table = main.addTable("container-policy-list",policies.size() + 1, 4);
        Row header = table.addRow(Row.ROLE_HEADER);
        header.addCell();
        header.addCell().addContent(T_head_id);
        header.addCell().addContent(T_head_action);
        header.addCell().addContent(T_head_group);
     
      for (ResourcePolicy policy : policies)
      {
        Row row;
      if (policy.getID() == highlightID)
        row = table.addRow(null, null, "highlight");
      else
        row = table.addRow();
       
        CheckBox select = row.addCell().addCheckBox("select_policy");
          select.setLabel(String.valueOf(policy.getID()));
          select.addOption(String.valueOf(policy.getID()));
         
          // Accounting for the funky case of an empty policy
          Group policyGroup = policy.getGroup();
         
          row.addCell().addXref(baseURL + "&submit_edit&policy_id=" + policy.getID(), String.valueOf(policy.getID()));
          row.addCell().addXref(baseURL + "&submit_edit&policy_id=" + policy.getID(), policy.getActionText());
          if (policyGroup != null) {
            Cell groupCell = row.addCell();
            groupCell.addContent(policyGroup.getName());
            Highlight groupHigh = groupCell.addHighlight("fade");
            groupHigh.addContent(" [");
            groupHigh.addXref(baseURL + "&submit_edit_group&group_id=" + policyGroup.getID(), T_group_edit);
            groupHigh.addContent("]");
          }
          else {
              row.addCell().addContent("...");
          }
      }
      Para buttons = main.addPara();
      buttons.addButton("submit_delete").setValue(T_submit_delete);
      buttons.addButton("submit_return").setValue(T_submit_return);
     
    main.addHidden("administrative-continue").setValue(knot.getId());
   }
View Full Code Here

Examples of org.dspace.app.xmlui.wing.element.Division

      bitstreams = bundles[0].getBitstreams();
    }
   
    // Part A:
    //  First ask the user if they would like to upload a new file (may be the first one)
      Division div = body.addInteractiveDivision("submit-upload", actionURL, Division.METHOD_MULTIPART, "primary submission");
      div.setHead(T_submission_head);
      addSubmissionProgressList(div);
     
     
      List upload = null;
      if (!workflow)
      {
        // Only add the upload capabilities for new item submissions
        upload = div.addList("submit-upload-new", List.TYPE_FORM);
          upload.setHead(T_head);   
         
          File file = upload.addItem().addFile("file");
          file.setLabel(T_file);
          file.setHelp(T_file_help);
          file.setRequired();
         
          //if no files found error was thrown by processing class, display it!
          if (this.errorFlag==org.dspace.submit.step.UploadStep.STATUS_NO_FILES_ERROR)
          {
                file.addError(T_file_error);
            }

            // if an upload error was thrown by processing class, display it!
            if (this.errorFlag == org.dspace.submit.step.UploadStep.STATUS_UPLOAD_ERROR)
            {
                file.addError(T_upload_error);
            }
           
          Text description = upload.addItem().addText("description");
          description.setLabel(T_description);
          description.setHelp(T_description_help);
         
          Button uploadSubmit = upload.addItem().addButton("submit_upload");
          uploadSubmit.setValue(T_submit_upload);
      }
       
        // Part B:
        //  If the user has allready uploaded files provide a list for the user.
        if (bitstreams.length > 0 || workflow)
    {
          Table summary = div.addTable("submit-upload-summary",(bitstreams.length * 2) + 2,7);
          summary.setHead(T_head2);
         
          Row header = summary.addRow(Row.ROLE_HEADER);
          header.addCellContent(T_column0); // primary bitstream
          header.addCellContent(T_column1); // select checkbox
          header.addCellContent(T_column2); // file name
          header.addCellContent(T_column3); // size
          header.addCellContent(T_column4); // description
          header.addCellContent(T_column5); // format
          header.addCellContent(T_column6); // edit button
         
          for (Bitstream bitstream : bitstreams)
          {
            int id = bitstream.getID();
            String name = bitstream.getName();
            String url = makeBitstreamLink(item, bitstream);
            long bytes = bitstream.getSize();
            String desc = bitstream.getDescription();
            String algorithm = bitstream.getChecksumAlgorithm();
            String checksum = bitstream.getChecksum();
            BitstreamFormat format = bitstream.getFormat();
            int support = format.getSupportLevel();
           
           
            Row row = summary.addRow();

              // Add radio-button to select this as the primary bitstream
                Radio primary = row.addCell().addRadio("primary_bitstream_id");
                primary.addOption(String.valueOf(id));
               
                // If this bitstream is already marked as the primary bitstream
                // mark it as such.
                if(bundles[0].getPrimaryBitstreamID() == id) {
                    primary.setOptionSelected(String.valueOf(id));
                }
           
            if (!workflow)
            {
              // Workflow users can not remove files.
                CheckBox remove = row.addCell().addCheckBox("remove");
                remove.setLabel("remove");
                remove.addOption(id);
            }
            else
            {
              row.addCell();
            }
           
              row.addCell().addXref(url,name);
              row.addCellContent(bytes + " bytes");
              if (desc == null || desc.length() == 0)
                row.addCellContent(T_unknown_name);
              else
                row.addCellContent(desc);
             
              if (format == null)
              {
                row.addCellContent(T_unknown_format);
              }
              else
              {
                Cell cell = row.addCell();
                cell.addContent(format.getMIMEType());
                cell.addContent(" ");
                switch (support)
                {
                case 1:
                  cell.addContent(T_supported);
                  break;
                case 2:
                  cell.addContent(T_known);
                  break;
                case 3:
                  cell.addContent(T_unsupported);
                  break;
                }
              }
             
              Button edit = row.addCell().addButton("submit_edit_"+id);
              edit.setValue(T_submit_edit)
             
              Row checksumRow = summary.addRow();
              checksumRow.addCell();
              Cell checksumCell = checksumRow.addCell(null, null, 0, 6, null);
              checksumCell.addHighlight("bold").addContent(T_checksum);
              checksumCell.addContent(" ");
              checksumCell.addContent(algorithm + ":" + checksum);
          }
         
          if (!workflow)
          {
            // Workflow user's can not remove files.
            Row actionRow = summary.addRow();
            actionRow.addCell();
            Button removeSeleceted = actionRow.addCell(null, null, 0, 6, null).addButton("submit_remove_selected");
            removeSeleceted.setValue(T_submit_remove);
          }
         
          upload = div.addList("submit-upload-new-part2", List.TYPE_FORM);
    }
       
        // Part C:
        // add standard control/paging buttons
        addControlButtons(upload);
View Full Code Here

Examples of org.dspace.app.xmlui.wing.element.Division

      MetadataSchema schema = MetadataSchema.find(context,Integer.valueOf(id));
      schemas.add(schema);
    }
    // DIVISION: metadata-schema-confirm-delete
      Division deleted = body.addInteractiveDivision("metadata-schema-confirm-delete",contextPath+"/admin/metadata-registry",Division.METHOD_POST,"primary administrative metadata-registry");
      deleted.setHead(T_head);
      deleted.addPara(T_para1);
      Para warning = deleted.addPara();
      warning.addHighlight("bold").addContent(T_warning);
      warning.addContent(T_para2);
     
      Table table = deleted.addTable("schema-confirm-delete",schemas.size() + 1, 3);
        Row header = table.addRow(Row.ROLE_HEADER);
        header.addCell().addContent(T_column1);
        header.addCell().addContent(T_column2);
        header.addCell().addContent(T_column3);
     
      for (MetadataSchema schema : schemas)
      {
        Row row = table.addRow();
        row.addCell().addContent(schema.getSchemaID());
          row.addCell().addContent(schema.getNamespace());
          row.addCell().addContent(schema.getName());
      }
      Para buttons = deleted.addPara();
      buttons.addButton("submit_confirm").setValue(T_submit_delete);
      buttons.addButton("submit_cancel").setValue(T_submit_cancel);
     
      deleted.addHidden("administrative-continue").setValue(knot.getId());
    }
View Full Code Here

Examples of org.dspace.app.xmlui.wing.element.Division

    int defaultReadID = FlowContainerUtils.getCollectionDefaultRead(context, collectionID);
    if (defaultReadID >= 0)
      defaultRead = Group.find(context, defaultReadID);
   
    // DIVISION: main
      Division main = body.addInteractiveDivision("collection-assign-roles",contextPath+"/admin/collection",Division.METHOD_POST,"primary administrative collection");
      main.setHead(T_main_head.parameterize(thisCollection.getMetadata("name")));
     
      List options = main.addList("options", List.TYPE_SIMPLE, "horizontal");
      options.addItem().addXref(baseURL+"&submit_metadata",T_options_metadata);
      options.addItem().addHighlight("bold").addXref(baseURL+"&submit_roles",T_options_roles);
      options.addItem().addXref(baseURL+"&submit_harvesting",T_options_harvest);
           
      // The table of admin roles
      Table rolesTable = main.addTable("roles-table", 6, 5);
      Row tableRow;
     
      // The header row
      Row tableHeader = rolesTable.addRow(Row.ROLE_HEADER);
      tableHeader.addCell().addContent(T_role_name);
      tableHeader.addCell().addContent(T_role_group);
      tableHeader.addCell().addContent(T_role_buttons);
      rolesTable.addRow();
           
     
      /*
       * The collection admins
       */
      // data row
      tableRow = rolesTable.addRow(Row.ROLE_DATA);
      tableRow.addCell(Cell.ROLE_HEADER).addContent(T_label_admins);
      if (admins != null)
      {
          try
            {
                AuthorizeUtil.authorizeManageAdminGroup(context, thisCollection);
                tableRow.addCell().addXref(baseURL + "&submit_edit_admin", admins.getName());
            }
          catch (AuthorizeException authex) {
                // add a notice, the user is not authorized to create/edit collection's admin group
                tableRow.addCell().addContent(T_not_allowed);
            }
            try
            {
                AuthorizeUtil.authorizeRemoveAdminGroup(context, thisCollection);
                tableRow.addCell().addButton("submit_delete_admin").setValue(T_delete);
            }
            catch (AuthorizeException authex)
            {
                // nothing to add, the user is not allowed to delete the group
            }
      }
      else
      {
        tableRow.addCell().addContent(T_no_role);
        try
            {
                AuthorizeUtil.authorizeManageAdminGroup(context, thisCollection);
                tableRow.addCell().addButton("submit_create_admin").setValue(T_create);
            }
            catch (AuthorizeException authex) {
                // add a notice, the user is not authorized to create/edit collection's admin group
                tableRow.addCell().addContent(T_not_allowed);
            }
      }
      // help and directions row
      tableRow = rolesTable.addRow(Row.ROLE_DATA);
      tableRow.addCell();
      tableRow.addCell(1,2).addHighlight("fade offset").addContent(T_help_admins);
     
     
      /*
       * Workflow steps 1-3
       */
      // data row
      try
        {
            AuthorizeUtil.authorizeManageWorkflowsGroup(context, thisCollection);
          tableRow = rolesTable.addRow(Row.ROLE_DATA);
          tableRow.addCell(Cell.ROLE_HEADER).addContent(T_label_wf_step1);
          if (wfStep1 != null)
          {
            tableRow.addCell().addXref(baseURL + "&submit_edit_wf_step1", wfStep1.getName());
                tableRow.addCell().addButton("submit_delete_wf_step1").setValue(T_delete);
          }
          else
          {
            tableRow.addCell().addContent(T_no_role);
                tableRow.addCell().addButton("submit_create_wf_step1").setValue(T_create);
          }
          // help and directions row
          tableRow = rolesTable.addRow(Row.ROLE_DATA);
          tableRow.addCell();
          tableRow.addCell(1,2).addHighlight("fade offset").addContent(T_help_wf_step1);
         
         
          // data row
          tableRow = rolesTable.addRow(Row.ROLE_DATA);
          tableRow.addCell(Cell.ROLE_HEADER).addContent(T_label_wf_step2);
          if (wfStep2 != null)
          {
            tableRow.addCell().addXref(baseURL + "&submit_edit_wf_step2", wfStep2.getName());
                tableRow.addCell().addButton("submit_delete_wf_step2").setValue(T_delete);
          }
          else
          {
            tableRow.addCell().addContent(T_no_role);
                tableRow.addCell().addButton("submit_create_wf_step2").setValue(T_create);
          }
          // help and directions row
          tableRow = rolesTable.addRow(Row.ROLE_DATA);
          tableRow.addCell();
          tableRow.addCell(1,2).addHighlight("fade offset").addContent(T_help_wf_step2);
         
         
          // data row
          tableRow = rolesTable.addRow(Row.ROLE_DATA);
          tableRow.addCell(Cell.ROLE_HEADER).addContent(T_label_wf_step3);
          if (wfStep3 != null)
          {
            tableRow.addCell().addXref(baseURL + "&submit_edit_wf_step3", wfStep3.getName());
                tableRow.addCell().addButton("submit_delete_wf_step3").setValue(T_delete);
          }
          else
          {
            tableRow.addCell().addContent(T_no_role);
                tableRow.addCell().addButton("submit_create_wf_step3").setValue(T_create);
          }
          // help and directions row
          tableRow = rolesTable.addRow(Row.ROLE_DATA);
          tableRow.addCell();
          tableRow.addCell(1,2).addHighlight("fade offset").addContent(T_help_wf_step3);
        }
      catch (AuthorizeException authex) {
            // add a notice, the user is not allowed to manage workflow group
          tableRow = rolesTable.addRow(Row.ROLE_DATA);
            tableRow.addCell(Cell.ROLE_HEADER).addContent(T_label_wf);
            tableRow.addCell().addContent(T_not_allowed);
        }
       
      /*
       * The collection submitters
       */
      tableRow = rolesTable.addRow(Row.ROLE_DATA);
      tableRow.addCell(Cell.ROLE_HEADER).addContent(T_label_submitters);
      try
      {
          AuthorizeUtil.authorizeManageSubmittersGroup(context, thisCollection);
          if (submitters != null)
          {
            tableRow.addCell().addXref(baseURL + "&submit_edit_submit", submitters.getName());
                tableRow.addCell().addButton("submit_delete_submit").setValue(T_delete);
          }
          else
          {
            tableRow.addCell().addContent(T_no_role);
                tableRow.addCell().addButton("submit_create_submit").setValue(T_create);
          }
      }
      catch (AuthorizeException authex)
      {
          tableRow.addCell().addContent(T_not_allowed);
      }
      // help and directions row
      tableRow = rolesTable.addRow(Row.ROLE_DATA);
      tableRow.addCell();
      tableRow.addCell(1,2).addHighlight("fade offset").addContent(T_help_submitters);
     
     
      /*
       * The collection's default read authorizations
       */
      tableRow = rolesTable.addRow(Row.ROLE_DATA);
      tableRow.addCell(Cell.ROLE_HEADER).addContent(T_label_default_read);
      if (defaultRead == null)
      {
        // Custome reading permissions, we can't handle it, just provide a link to the
        // authorizations manager.
        tableRow.addCell(1,2).addContent(T_default_read_custom);
      }
      else if (defaultRead.getID() == 0) {
        // Anonymous reading
        tableRow.addCell().addContent(T_default_read_anonymous);
        addAdministratorOnlyButton(tableRow.addCell(),"submit_create_default_read",T_restrict);
      }
      else
      {
        // A specific group is dedicated to reading.
        tableRow.addCell().addXref(baseURL + "&submit_edit_default_read", defaultRead.getName());
        addAdministratorOnlyButton(tableRow.addCell(),"submit_delete_default_read",T_delete);
      }
  
      // help and directions row
      tableRow = rolesTable.addRow(Row.ROLE_DATA);
      tableRow.addCell();
      tableRow.addCell(1,2).addHighlight("fade offset").addContent(T_help_default_read);
     
      try
      {
          AuthorizeUtil.authorizeManageCollectionPolicy(context, thisCollection);
        // add one last link to edit the raw authorizations
        Cell authCell =rolesTable.addRow().addCell(1,3);
        authCell.addXref(baseURL + "&submit_authorizations", T_edit_authorization);
      }
      catch (AuthorizeException authex) {
            // nothing to add, the user is not authorized to edit collection's policies
        }

      Para buttonList = main.addPara();
      buttonList.addButton("submit_return").setValue(T_submit_return);
     
     
     
      main.addHidden("administrative-continue").setValue(knot.getId());
     
    }
View Full Code Here

Examples of org.dspace.app.xmlui.wing.element.Division

      BitstreamFormat format = BitstreamFormat.find(context,Integer.valueOf(id));
      formats.add(format);
    }
    // DIVISION: bitstream-format-confirm-delete
      Division deleted = body.addInteractiveDivision("bitstream-format-confirm-delete",contextPath+"/admin/format-registry",Division.METHOD_POST,"primary administrative format-registry");
      deleted.setHead(T_head);
      deleted.addPara(T_para1);
     
      Table table = deleted.addTable("format-confirm-delete",formats.size() + 1, 3);
        Row header = table.addRow(Row.ROLE_HEADER);
        header.addCell().addContent(T_column1);
        header.addCell().addContent(T_column2);
        header.addCell().addContent(T_column3);
     
      for (BitstreamFormat format : formats)
      {
        if (format == null)
          continue;
       
        String formatID = String.valueOf(format.getID());
        String mimetype = format.getMIMEType();
        String name = format.getShortDescription();

       
        Row row = table.addRow();
        row.addCell().addContent(formatID);
          row.addCell().addContent(mimetype);
          row.addCell().addContent(name);
      }
      Para buttons = deleted.addPara();
      buttons.addButton("submit_confirm").setValue(T_submit_delete);
      buttons.addButton("submit_cancel").setValue(T_submit_cancel);
     
      deleted.addHidden("administrative-continue").setValue(knot.getId());
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.