xdi2.core.io.XDIWriterRegistry类的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(13.4k)|赞(0)|评价(0)|浏览(119)

本文整理了Java中xdi2.core.io.XDIWriterRegistry类的一些代码示例,展示了XDIWriterRegistry类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XDIWriterRegistry类的具体详情如下:
包路径:xdi2.core.io.XDIWriterRegistry
类名称:XDIWriterRegistry

XDIWriterRegistry介绍

[英]Provides an appropriate XDIWriter for a given type.
[中]为给定类型提供适当的XDIWriter。

代码示例

代码示例来源:origin: projectdanube/xdi2

private static void sendText(WebSocketTransportRequest request, WebSocketTransportResponse response, TransportMessagingResponse messagingResponse) throws IOException {
  // use default writer
  XDIWriter writer = null;
  MimeType sendMimeType = null;
  writer = sendMimeType != null ? XDIWriterRegistry.forMimeType(sendMimeType) : null;
  if (writer == null) writer = XDIWriterRegistry.getDefault();
  // send out the message result
  if (log.isDebugEnabled()) log.debug("Sending result in " + sendMimeType + " with writer " + writer.getClass().getSimpleName() + ".");
  StringWriter buffer = new StringWriter();
  writer.write(messagingResponse.getGraph(), buffer);
  // TODO figure out if we can use .getAsync() and avoid concurrency problems
  if (buffer.getBuffer().length() > 0) {
    synchronized (response.getBasic()) {
      response.getBasic().sendText(buffer.getBuffer().toString());
    }
  }
  if (log.isDebugEnabled()) log.debug("Output complete.");
}

代码示例来源:origin: projectdanube/xdi2

@Override
public String toString(String format, Properties parameters) {
  if (format == null) format = XDIWriterRegistry.getDefault().getFormat();
  XDIWriter writer = XDIWriterRegistry.forFormat(format, parameters);
  if (writer == null) throw new Xdi2RuntimeException("Unknown format for XDI serialization: " + format);
  StringWriter buffer = new StringWriter();
  try {
    writer.write(this, buffer);
  } catch (IOException ex) {
    return "[Exception: " + ex.getMessage() + "]";
  }
  return buffer.toString();
}

代码示例来源:origin: projectdanube/xdi2

@Override
public String toString(MimeType mimeType) {
  if (mimeType == null) throw new NullPointerException();
  XDIWriter writer = XDIWriterRegistry.forMimeType(mimeType);
  if (writer == null) throw new Xdi2RuntimeException("Unknown MIME type for XDI serialization: " + mimeType);
  StringWriter buffer = new StringWriter();
  try {
    writer.write(this, buffer);
  } catch (IOException ex) {
    return "[Exception: " + ex.getMessage() + "]";
  }
  return buffer.toString();
}

代码示例来源:origin: projectdanube/xdi2

/**
 * Returns an XDIWriter for the specified format, e.g.
 * <ul>
 * <li>XDI/JSON</li>
 * <li>XDI DISPLAY</li>
 * </ul>
 * @param format The desired format.
 * @return An XDIWriter, or null if no appropriate implementation could be found.
 */
public static XDIWriter forFormat(String format, Properties parameters) {
  if (format == null) return XDIWriterRegistry.getDefault();
  Class<? extends XDIWriter> writerClass = writerClassesByFormat.get(format);
  if (writerClass == null) return null;
  try {
    Constructor<? extends XDIWriter> constructor = writerClass.getConstructor(Properties.class);
    return constructor.newInstance(parameters);
  } catch (Exception ex) {
    throw new RuntimeException(ex);
  }
}

代码示例来源:origin: projectdanube/xdi2

public void testWriters() throws Exception {

    String[] formats = new String[] { "XDI/JSON", "XDI DISPLAY", "KEYVALUE" };
    String[] fileExtensions = new String[] { "json", "xdi" };
    MimeType[] mimeTypes = new MimeType[] { new MimeType("application/xdi+json"), new MimeType("application/xdi+json;contexts=0"), new MimeType("application/xdi+json;contexts=1"), new MimeType("text/xdi"), new MimeType("text/xdi;contexts=0"), new MimeType("text/xdi;contexts=1") };

    for (String format : formats) assertTrue(XDIWriterRegistry.forFormat(format, null).supportsFormat(format));
    for (String fileExtension : fileExtensions) assertTrue(XDIWriterRegistry.forFileExtension(fileExtension, null).supportsFileExtension(fileExtension));
    for (MimeType mimeType : mimeTypes) assertTrue(XDIWriterRegistry.forMimeType(mimeType).supportsMimeType(mimeType));
  }
}

代码示例来源:origin: projectdanube/xdi2

private void writeGraph(ExecutionContext executionContext) throws Xdi2MessagingException {
  XDIWriter xdiWriter = XDIWriterRegistry.forFormat(this.mimeType, null);
  if (xdiWriter == null) throw new Xdi2MessagingException("Cannot write this format: " + this.mimeType, null, executionContext);
  Graph graph = this.getGraph();
  
  FileWriter writer = null;
  try {
    File file = new File(this.path);
    file.createNewFile();
    writer = new FileWriter(file);
    xdiWriter.write(graph, writer);
    writer.close();
  } catch (Exception ex) {
    throw new Xdi2MessagingException("Cannot write file: " + ex.getMessage(), ex, executionContext);
  } finally {
    if (writer != null) try { writer.close(); } catch (Exception ex) { }
  }
  graph.close();
}

代码示例来源:origin: projectdanube/xdi2

/**
 * Returns a MimeType that we can support for this Accept header. 
 * @param canRead If true, only return MimeTypes we can read.
 * @param canWrite If true, only return MimeTypes we can write.
 * @return A MimeType, or null if no appropriate implementation could be found.
 */
public MimeType bestMimeType(boolean canRead, boolean canWrite) {
  List<MimeType> mimeTypes = this.getMimeTypesSortedByQuality();
  if ((! canRead) && (! canWrite)) return mimeTypes.get(0).mimeTypeWithoutQuality();
  for (MimeType mimeType : mimeTypes) {
    MimeType mimeTypeWithoutQuality = mimeType.mimeTypeWithoutQuality();
    MimeType mimeTypeWithoutParameters = mimeType.mimeTypeWithoutParameters();
    if (canRead && (! XDIReaderRegistry.supportsMimeType(mimeTypeWithoutParameters))) continue;
    if (canWrite && (! XDIWriterRegistry.supportsMimeType(mimeTypeWithoutParameters))) continue;
    return mimeTypeWithoutQuality;
  }
  return null;
}

代码示例来源:origin: projectdanube/xdi2

@Override
public WrapperStore openWrapper(String identifier) throws IOException {
  // initialize graph
  XDIReader xdiReader = XDIReaderRegistry.forMimeType(this.mimeType == null ? null : new MimeType(this.mimeType));
  XDIWriter xdiWriter = XDIWriterRegistry.forMimeType(this.mimeType == null ? null : new MimeType(this.mimeType));
  return new URLWrapperStore(this.url, this.mimeType, xdiReader, xdiWriter);
}

代码示例来源:origin: projectdanube/xdi2

/**
 * Returns an XDIWriter for the specified file extension, e.g.
 * <ul>
 * <li>.json</li>
 * <li>.xdi</li>
 * </ul>
 * @param fileExtension The desired file extension.
 * @return An XDIWriter, or null if no appropriate implementation could be found.
 */
public static XDIWriter forFileExtension(String fileExtension, Properties parameters) {
  if (fileExtension == null) return XDIWriterRegistry.getDefault();
  Class<? extends XDIWriter> writerClass = writerClassesByFileExtension.get(fileExtension);
  if (writerClass == null) return null;
  try {
    Constructor<? extends XDIWriter> constructor = writerClass.getConstructor(Properties.class);
    return constructor.newInstance(parameters);
  } catch (Exception ex) {
    throw new RuntimeException(ex);
  }
}

代码示例来源:origin: projectdanube/xdi2

XDIWriter xdiWriter = XDIWriterRegistry.forFormat(format, xdiWriterParameters);
StringWriter xdiStringWriter = new StringWriter();
xdiWriter.write(graph, xdiStringWriter);
XDIWriter xdiWriter = XDIWriterRegistry.forFormat(format, xdiWriterParameters);
StringWriter xdiStringWriter = new StringWriter();
xdiWriter.write(graph, xdiStringWriter);
  XDIWriter xdiWriter = XDIWriterRegistry.forFormat(format, xdiWriterParameters);
  StringWriter stringWriter = new StringWriter();
  xdiWriter.write(resultGraph, stringWriter);

代码示例来源:origin: projectdanube/xdi2

private void sendOk(HttpTransportRequest request, HttpTransportResponse response, TransportMessagingResponse messagingResponse) throws IOException {
  response.setStatus(HttpTransportResponse.SC_OK);
  Map<String, String> headers = new HashMap<String, String> ();
  headers.putAll(this.getHeaders());
  if (HttpTransportRequest.METHOD_GET.equals(request.getMethod())) headers.putAll(this.getHeadersGet());
  if (HttpTransportRequest.METHOD_POST.equals(request.getMethod())) headers.putAll(this.getHeadersPost());
  if (HttpTransportRequest.METHOD_PUT.equals(request.getMethod())) headers.putAll(this.getHeadersPut());
  if (HttpTransportRequest.METHOD_DELETE.equals(request.getMethod())) headers.putAll(this.getHeadersDelete());
  if (HttpTransportRequest.METHOD_OPTIONS.equals(request.getMethod())) headers.putAll(this.getHeadersOptions());
  for (Map.Entry<String, String> header : headers.entrySet()) {
    response.setHeader(header.getKey(), header.getValue());
  }
  if (messagingResponse != null) {
    // find a suitable writer based on accept headers
    if (log.isDebugEnabled()) log.debug("Accept: " + request.getHeader("Accept"));
    XDIWriter writer = null;
    String acceptHeader = request.getHeader("Accept");
    MimeType sendMimeType = acceptHeader != null ? AcceptHeader.parse(acceptHeader).bestMimeType(false, true) : null;
    writer = sendMimeType != null ? XDIWriterRegistry.forMimeType(sendMimeType) : null;
    if (writer == null) writer = XDIWriterRegistry.getDefault();
    // send out the message result
    if (log.isDebugEnabled()) log.debug("Sending result in " + sendMimeType + " with writer " + writer.getClass().getSimpleName() + ".");
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    writer.write(messagingResponse.getGraph(), buffer);
    response.setContentType(writer.getMimeType().toString());
    response.setContentLength(buffer.size());
    response.writeBody(buffer.toByteArray(), true);
  }
  if (log.isDebugEnabled()) log.debug("Output complete.");
}

代码示例来源:origin: projectdanube/xdi2

@Override
public WrapperStore openWrapper(String identifier) throws IOException {
  // initialize graph
  XDIReader xdiReader = XDIReaderRegistry.forMimeType(this.mimeType == null ? null : new MimeType(this.mimeType));
  XDIWriter xdiWriter = XDIWriterRegistry.forMimeType(this.mimeType == null ? null : new MimeType(this.mimeType));
  return new ClasspathWrapperStore(this.classpath, this.mimeType, xdiReader, xdiWriter);
}

代码示例来源:origin: projectdanube/xdi2

/**
 * Returns an XDIWriter for the specified mime type, e.g.
 * <ul>
 * <li>application/xdi+json</li>
 * <li>text/xdi</li>
 * </ul>
 * @param mimeType The desired mime type.
 * @return An XDIWriter, or null if no appropriate implementation could be found.
 */
public static XDIWriter forMimeType(MimeType mimeType) {
  if (mimeType == null) return XDIWriterRegistry.getDefault();
  Class<? extends XDIWriter> writerClass = writerClassesByMimeType.get(mimeType.mimeTypeWithoutParameters());
  if (writerClass == null) return null;
  try {
    Constructor<? extends XDIWriter> constructor = writerClass.getConstructor(Properties.class);
    return constructor.newInstance(mimeType.getParameters());
  } catch (Exception ex) {
    throw new RuntimeException(ex);
  }
}

代码示例来源:origin: projectdanube/xdi2

public void testReadWriteFormats() throws Exception {
  String[] formats = new String[] { "XDI/JSON", "XDI DISPLAY" };
  for (int i=0; i<formats.length; i++) {
    File file = new File("xdi.out");
    Graph graph4 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-4" + "-" + i);
    Graph graph5 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-5" + "-" + i);
    XDIWriter writer = XDIWriterRegistry.forFormat(formats[i], null);
    XDIReader reader = XDIReaderRegistry.forFormat(formats[i], null);
    FileWriter fileWriter = new FileWriter(file);
    FileReader fileReader = new FileReader(file);
    makeGraph(graph4);
    writer.write(graph4, fileWriter);
    reader.read(graph5, fileReader);
    fileWriter.close();
    fileReader.close();
    testGraph(graph5);
    testGraphsEqual(graph4, graph5);
    graph4.close();
    graph5.close();
    file.delete();
  }
}

代码示例来源:origin: projectdanube/xdi2

@Override
public WrapperStore openWrapper(String identifier) throws IOException {
  // check identifier
  String path = this.getPath();
  if (path == null) {
    path = FILE_PREFIX + identifier + FILE_SUFFIX;
  }
  // initialize graph
  XDIReader xdiReader = XDIReaderRegistry.forMimeType(this.mimeType == null ? null : new MimeType(this.mimeType));
  XDIWriter xdiWriter = XDIWriterRegistry.forMimeType(this.mimeType == null ? null : new MimeType(this.mimeType));
  return new FileWrapperStore(path, this.mimeType, xdiReader, xdiWriter);
}

代码示例来源:origin: projectdanube/xdi2

@Override
public InterceptorResult before(MessageEnvelope messageEnvelope, ExecutionContext executionContext, ExecutionResult executionResult) throws Xdi2MessagingException {
  if (this.isEnableMessageEnvelope()) {
    StringWriter stringWriter = new StringWriter();
    try {
      XDIWriterRegistry.getDefault().write(messageEnvelope.getGraph(), stringWriter);
    } catch (IOException ex) {
      throw new Xdi2MessagingException("Cannot write graph: " + ex.getMessage(), ex, executionContext);
    }
    String param = stringWriter.getBuffer().toString();
    this.executeCommandLine(param, executionContext);
  }
  return InterceptorResult.DEFAULT;
}

代码示例来源:origin: projectdanube/xdi2

XDIWriterRegistry.forFormat("XDI/JSON", null).write(graph10, buffer1);
XDIWriterRegistry.forFormat("XDI DISPLAY", null).write(graph11, buffer2);
graph10.clear();
graph11.clear();

代码示例来源:origin: projectdanube/xdi2

XDIWriter writer = XDIWriterRegistry.forMimeType(sendMimeType);
  writer = XDIWriterRegistry.forMimeType(sendMimeType);

代码示例来源:origin: projectdanube/xdi2

private void readGraph(ExecutionContext executionContext) throws Xdi2MessagingException {
  XDIReader xdiReader = XDIReaderRegistry.forFormat(this.mimeType, null);
  if (xdiReader == null) throw new Xdi2MessagingException("Cannot read this format: " + this.mimeType, null, executionContext);
  Graph graph = this.getGraph();
  graph.clear();
  FileReader reader = null;
  try {
    File file = new File(this.path);
    reader = new FileReader(file);
    xdiReader.read(graph, reader);
    reader.close();
  } catch (FileNotFoundException ex) {
  } catch (Exception ex) {
    throw new Xdi2MessagingException("Cannot read file: " + ex.getMessage(), ex, executionContext);
  } finally {
    if (reader != null) {
      try {
        reader.close();
      } catch (Exception ex) { }
    }
  }
  if (xdiReader instanceof AutoReader) this.mimeType = ((AutoReader) xdiReader).getLastSuccessfulReader().getFormat();
  if (this.mimeType == null) this.mimeType = XDIWriterRegistry.getDefault().getFormat();
}

代码示例来源:origin: projectdanube/xdi2

XDIWriter writer = XDIWriterRegistry.forMimeType(sendMimeType);
  writer = XDIWriterRegistry.forMimeType(sendMimeType);

相关文章