编程语言
首页 > 编程语言> > java-SimpleGraph PowerPoint模块无法按预期工作

java-SimpleGraph PowerPoint模块无法按预期工作

作者:互联网

我尝试了这个简单的单元测试,但没有达到我的期望:

@Test
  public void testReadPowerpoint() throws Exception {
    PowerPointSystem pps=new PowerPointSystem();
    pps.connect();
    SimpleNode slideShowNode =
 pps.moveTo("https://www.its.leeds.ac.uk/fileadmin/documents/alumni/Michele_Dix_Leeds_University_-_FINAL.PPTX");
    List<SimpleNode> slides = slideShowNode.out("slides")
        .collect(Collectors.toCollection(ArrayList::new));
    debug=true;
    if (debug)
      slides.forEach(slide -> slide.printNameValues(System.out));
    assertEquals(44, slides.size());
  }

不起作用-我得到0张幻灯片而不是44张幻灯片.这是Bug还是存在解决方法?

解决方法:

我叫Wolfgang Fahl,我是SimpleGraph OpenSource Project的提交者之一.

我会认为这是一个错误/缺失功能.基本问题是在基于文件/输入流的模块的情况下moveTo应该接受哪些参数.可以使用Apache POI模块从任何输入输入流中读取Powerpoint文件. SimpleGraph需要一种一致的方式来处理不同的输入情况,我认为这是一个有效的讨论,应该在SimpleGraph讨论小组中进行.

为了解决您当前的问题,我修改了代码,以确保运行单元测试,并将您的单元测试添加到TestPowerPoint.

当前解决方法

以下是Commit to fix your issue的一部分

 

/**
   * create a SlideShow
   * 
   * @param simpleGraph
   * @param nodeQuery
   * @throws Exception
   */
  public SlideShowNode(SimpleGraph simpleGraph, String pathOrUrl,
      String... keys) {
    super(simpleGraph, "slideshow", keys);
    InputStream is = null;
    try {
      try {
        URL url = new URL(pathOrUrl);
        is = url.openStream();
      } catch (MalformedURLException e1) {
        this.pathOrUl = pathOrUrl;
        pptFile = new File(pathOrUl);
        if (pptFile.canRead())
          is = new FileInputStream(pathOrUl);
      }
      if (is != null)
        slideshow = new XMLSlideShow(is);
      else
        slideshow = new XMLSlideShow();
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
    super.setVertexFromMap();
  }

标签:gremlin,tinkerpop,java,simplegraph
来源: https://codeday.me/bug/20191109/2012341.html