All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.semantictools.context.renderer.model.ServiceDocumentation Maven / Gradle / Ivy

/*******************************************************************************
 * Copyright 2012 Pearson Education
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
package org.semantictools.context.renderer.model;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.semantictools.frame.model.Frame;
import org.semantictools.frame.model.Uri;

public class ServiceDocumentation extends BaseDocumentMetadata  {

  
  private List contextPropertiesList = new ArrayList();

  private File serviceDocumentationFile;
  private Uri rdfType;
  private Frame frame;
  private String postResponseMediaType;
  private String postResponseMediaTypeRef;
  
  private String abstactText;
  private String introduction;
  private String representationHeading;
  private String representationText;
  private String urlTemplateText;
  private boolean allowArbitraryFormat;
  private boolean allowHtmlFormat;
  private String htmlFormatDocumentation;
  private String defaultMediaType;
  private String postProcessingRules;
  private boolean contentNegotiation;
  
  private String getInstructions;
  private String putInstructions;
  
  private Uri containerType;
  
  private MethodDocumentation postDocumentation;
  private MethodDocumentation getDocumentation;
  private MethodDocumentation containerGetDocumentation;
  private MethodDocumentation putDocumentation;
  private MethodDocumentation deleteDocumentation;
  
  private List methodList = new ArrayList();
  private List putRules = new ArrayList();
  
  private Map referenceMap = new HashMap();
  private Map mediaTypeUriMap = new HashMap();
  
  public ServiceDocumentation(DocumentMetadata global) {
    super(global);
  }

  public File getServiceDocumentationFile() {
    return serviceDocumentationFile;
  }
  public void setServiceDocumentationFile(File serviceDocumentationFile) {
    this.serviceDocumentationFile = serviceDocumentationFile;
    this.setLocalFile(serviceDocumentationFile);
  }

  
  /**
   * Returns true if the REST Service supports content negotiation.
   */
  public boolean isContentNegotiation() {
    return contentNegotiation;
  }

  /**
   * Specifies whether the REST Service supports content negotiation.
   */
  public void setContentNegotiation(boolean contentNegotiation) {
    this.contentNegotiation = contentNegotiation;
  }
  public String getDefaultMediaType() {
    return defaultMediaType;
  }
  public void setDefaultMediaType(String defaultMediaType) {
    this.defaultMediaType = defaultMediaType;
  }
  public String getPostProcessingRules() {
    return postProcessingRules;
  }
  public void setPostProcessingRules(String postProcessingRules) {
    this.postProcessingRules = postProcessingRules;
  }
  public Uri getRdfType() {
    if (rdfType == null && !contextPropertiesList.isEmpty()) {
      String rdfTypeURI = contextPropertiesList.get(0).getRdfTypeURI();
      rdfType = new Uri(rdfTypeURI);
    }
    return rdfType;
  }
  
  
  
  private String getLocalName(String type) {
    if (type == null) {
      return null;
    }
    int mark = type.lastIndexOf('#');
    if (mark < 0) {
      mark = type.lastIndexOf('/');
    }
    return mark > 0 ? type.substring(mark+1) : null;
  }

  public void setRdfType(Uri rdfType) {
    this.rdfType = rdfType;
  }
  
  public Map getMediaTypeUriMap() {
    return mediaTypeUriMap;
  }
  
  public boolean hasMultipleFormats() {
    int count = contextPropertiesList.size() + mediaTypeUriMap.size() + (allowHtmlFormat?1:0);
    return count > 1;
  }
  
  
  /**
   * Returns true if the REST API supports a user-friendly HTML representation
   * of the resource.
   */
  public boolean isAllowHtmlFormat() {
    return allowHtmlFormat;
  }
  public void setAllowHtmlFormat(boolean allowHtmlFormat) {
    this.allowHtmlFormat = allowHtmlFormat;
  }
  
  
  /**
   * Returns the text that describes the text/html representation of the resource.
   */
  public String getHtmlFormatDocumentation() {
    return htmlFormatDocumentation;
  }

  /**
   * Sets the text that describes the text/html representation of the resource.
   */
  public void setHtmlFormatDocumentation(String text) {
    this.htmlFormatDocumentation = text;
  }
  /**
   * Returns true if the REST API supports arbitrary formats for resources, 
   * and false otherwise.  If this value is true, then a client may POST
   * a resource in any format, and GET the resource back in the given format
   * through content negotiation.
   */
  public boolean isAllowArbitraryFormat() {
    return allowArbitraryFormat;
  }
  
  
  public String getUrlTemplateText() {
    return urlTemplateText;
  }
  public void setUrlTemplateText(String urlTemplateText) {
    this.urlTemplateText = urlTemplateText;
  }
  /**
   * Specifies whether the REST API supports arbitrary formats for resources.
   * If this value is true, then a client may POST
   * a resource in any format, and GET the resource back in the given format
   * through content negotiation.
   */
  public void setAllowArbitraryFormat(boolean allowArbitraryFormat) {
    this.allowArbitraryFormat = allowArbitraryFormat;
  }
  
  public String getAbstactText() {
    return abstactText;
  }
  public void setAbstactText(String abstactText) {
    this.abstactText = abstactText;
  }
  public String getIntroduction() {
    return introduction;
  }
  public void setIntroduction(String introduction) {
    this.introduction = introduction;
  }
  
  public void add(ContextProperties context) {
    contextPropertiesList.add(context);
  }
  public List listContextProperties() {
    return contextPropertiesList;
  }
  
  public String getRepresentationHeading() {
    return representationHeading;
  }
  public void setRepresentationHeading(String representationHeading) {
    this.representationHeading = representationHeading;
  }
  public String getRepresentationText() {
    return representationText;
  }
  public void setRepresentationText(String representationText) {
    this.representationText = representationText;
  }
  public MethodDocumentation getPostDocumentation() {
    return postDocumentation;
  }
  public void setPostDocumentation(MethodDocumentation postDocumentation) {
    this.postDocumentation = postDocumentation;
  }
  public MethodDocumentation getGetDocumentation() {
    return getDocumentation;
  }
  public void setGetDocumentation(MethodDocumentation getDocumentation) {
    this.getDocumentation = getDocumentation;
  }
  public String getPostResponseMediaType() {
    return postResponseMediaType;
  }
  public void setPostResponseMediaType(String postResponseType) {
    this.postResponseMediaType = postResponseType;
  }
  public String getPostResponseMediaTypeRef() {
    return postResponseMediaTypeRef;
  }
  public void setPostResponseTypeRef(String postResponseTypeRef) {
    this.postResponseMediaTypeRef = postResponseTypeRef;
  }
  public MethodDocumentation getPutDocumentation() {
    return putDocumentation;
  }
  public void setPutDocumentation(MethodDocumentation putDocumentation) {
    this.putDocumentation = putDocumentation;
  }
  public MethodDocumentation getDeleteDocumentation() {
    return deleteDocumentation;
  }
  public void setDeleteDocumentation(MethodDocumentation deleteDocumentation) {
    this.deleteDocumentation = deleteDocumentation;
  }
  public List getMethodList() {
    return methodList;
  }
  public void add(HttpMethod method) {
    methodList.add(method);
  }
  public boolean contains(HttpMethod method) {
    return methodList.contains(method);
  }
  public HttpMethod getMethod(HttpMethod get) {
    for (HttpMethod method : methodList) {
      if ("GET".equals(method.getName())) return method;
    }
    return null;
  }
  /**
   * Returns the text which describes how to GET a representation.
   * The default text is:
   * 
* To get a representation of a particular {0} instance, the client submits an HTTP GET * request to the resource's REST endpoint in accordance with the following rules: *
* @return */ public String getGetInstructions() { return getInstructions; } public void setGetInstructions(String getInstructions) { this.getInstructions = getInstructions; } public List getPutRules() { return putRules; } public String getPutInstructions() { return putInstructions; } public void setPutInstructions(String putInstructions) { this.putInstructions = putInstructions; } public MethodDocumentation getContainerGetDocumentation() { return containerGetDocumentation; } public void setContainerGetDocumentation( MethodDocumentation collectionGetDocumentation) { this.containerGetDocumentation = collectionGetDocumentation; } public Uri getContainerType() { return containerType; } public void setContainerType(Uri containerType) { this.containerType = containerType; } public Frame getFrame() { return frame; } public void setFrame(Frame frame) { this.frame = frame; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy