当前位置: 首页>>代码示例>>Java>>正文


Java EntityProvider.readLink方法代码示例

本文整理汇总了Java中org.apache.olingo.odata2.api.ep.EntityProvider.readLink方法的典型用法代码示例。如果您正苦于以下问题:Java EntityProvider.readLink方法的具体用法?Java EntityProvider.readLink怎么用?Java EntityProvider.readLink使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.olingo.odata2.api.ep.EntityProvider的用法示例。


在下文中一共展示了EntityProvider.readLink方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: parseLink

import org.apache.olingo.odata2.api.ep.EntityProvider; //导入方法依赖的package包/类
public final UriInfo parseLink(final EdmEntitySet entitySet, final InputStream content, final String contentType)
    throws ODataJPARuntimeException {

  String uriString = null;
  UriInfo uri = null;
  try {
    uriString = EntityProvider.readLink(contentType, entitySet, content);
    ODataContext odataContext = context.getODataContext();
    final String svcRoot = odataContext.getPathInfo().getServiceRoot().toString();
    final String path =
        uriString.startsWith(svcRoot.toString()) ? uriString.substring(svcRoot.length()) : uriString;
    final List<PathSegment> pathSegment = getPathSegment(path);
    edm = getEdm();
    uri = UriParser.parse(edm, pathSegment, Collections.<String, String> emptyMap());
  } catch (ODataException e) {
    throw ODataJPARuntimeException.throwException(ODataJPARuntimeException.GENERAL.addContent(e.getMessage()), e);
  }
  return uri;
}
 
开发者ID:apache,项目名称:olingo-odata2,代码行数:20,代码来源:ODataEntityParser.java

示例2: parseLink

import org.apache.olingo.odata2.api.ep.EntityProvider; //导入方法依赖的package包/类
private Map<String, Object> parseLink(final EdmEntitySet entitySet, final InputStream content,
    final String contentType) throws ODataException {
  ODataContext context = getContext();
  final int timingHandle = context.startRuntimeMeasurement("EntityProvider", "readLink");

  final String uriString = EntityProvider.readLink(contentType, entitySet, content);

  context.stopRuntimeMeasurement(timingHandle);

  final Map<String, Object> targetKeys = parseLinkUri(entitySet, uriString);
  if (targetKeys == null) {
    throw new ODataBadRequestException(ODataBadRequestException.BODY);
  }
  return targetKeys;
}
 
开发者ID:apache,项目名称:olingo-odata2,代码行数:16,代码来源:ListsProcessor.java

示例3: createEntityLink

import org.apache.olingo.odata2.api.ep.EntityProvider; //导入方法依赖的package包/类
@Override
public ODataResponse createEntityLink(PostUriInfo uri_info, InputStream content,
      String request_content_type, String content_type) throws ODataException
{
   // Target of the link to create
   //EdmEntitySet link_target_es = uri_info.getTargetEntitySet();

   // Gets the entityset containing the navigation link to `link_target_es`
   EdmEntitySet  target_es = getLinkFromES(new AdaptableUriInfo(uri_info));
   EdmEntityType target_et = target_es.getEntityType();

   // Check abilities and permissions
   if (!target_es.getName().equals(Model.USER.getName()))
   {
      throw new ODataException("EntitySet " + target_et.getName() + " cannot create links");
   }

   fr.gael.dhus.database.object.User current_user = Security.getCurrentUser();

   AbstractEntitySet<?> es = Model.getEntitySet(target_es.getName());
   if (!es.isAuthorized(current_user))
   {
      throw new NotAllowedException();
   }

   // Gets the affected entity
   String key = uri_info.getKeyPredicates().get(0).getLiteral();
   User user = new User(key);

   // Reads and parses the link
   String link = EntityProvider.readLink(content_type, target_es, content);
   link = link.trim(); // Olingo does not trim... resulting in a parse exception
   try
   {
      link = (new URI(link)).getPath();
      if (link == null || link.isEmpty())
      {
         throw new ExpectedException("Invalid link, path is empty");
      }
      // Gets the OData resource path
      Matcher matcher = RESOURCE_PATH_EXTRACTOR.matcher(link);
      if (matcher.find())
      {
         link = matcher.group(1);
      }
      else
      {
         throw new ExpectedException("Invalid link, path is malformed");
      }
   }
   catch (URISyntaxException e)
   {
      throw new ExpectedException(e.getMessage());
   }

   // Use Olingo's UriParser
   UriParser urip = RuntimeDelegate.getUriParser(getContext().getService().getEntityDataModel());
   List<PathSegment> path_segments = new ArrayList<>();
   StringTokenizer st = new StringTokenizer(link, "/");
   while (st.hasMoreTokens())
   {
      path_segments.add(UriParser.createPathSegment(st.nextToken(), null));
   }
   @SuppressWarnings("unchecked")
   UriInfo uilink = urip.parse(path_segments, Collections.EMPTY_MAP);

   // Creates link
   user.createLink(uilink);

   // Empty answer with HTTP code 204: no content
   return ODataResponse.newBuilder().build();
}
 
开发者ID:SentinelDataHub,项目名称:dhus-core,代码行数:73,代码来源:Processor.java

示例4: createEntityLink

import org.apache.olingo.odata2.api.ep.EntityProvider; //导入方法依赖的package包/类
@Override
public ODataResponse createEntityLink(PostUriInfo uri_info, InputStream content,
      String request_content_type, String content_type) throws ODataException
{
   // Target of the link to create
   //EdmEntitySet link_target_es = uri_info.getTargetEntitySet();

   // Gets the entityset containing the navigation link to `link_target_es`
   EdmEntitySet  target_es = getLinkFromES(new AdaptableUriInfo(uri_info));
   EdmEntityType target_et = target_es.getEntityType();

   // Check abilities and permissions
   if (!target_es.getName().equals(Model.USER.getName()))
   {
      throw new ODataException("EntitySet " + target_et.getName() + " cannot create links");
   }

   fr.gael.dhus.database.object.User current_user = Security.getCurrentUser();

   AbstractEntitySet es = Model.getEntitySet(target_es.getName());
   if (!es.isAuthorized(current_user))
   {
      throw new NotAllowedException();
   }

   // Gets the affected entity
   String key = uri_info.getKeyPredicates().get(0).getLiteral();
   User user = new User(key);

   // Reads and parses the link
   String link = EntityProvider.readLink(content_type, target_es, content);
   link = link.trim(); // Olingo does not trim... resulting in a parse exception
   try
   {
      link = (new URI(link)).getPath();
      if (link == null || link.isEmpty())
      {
         throw new ExpectedException("Invalid link, path is empty");
      }
      // Gets the OData resource path
      Matcher matcher = RESOURCE_PATH_EXTRACTOR.matcher(link);
      if (matcher.find())
      {
         link = matcher.group(1);
      }
      else
      {
         throw new ExpectedException("Invalid link, path is malformed");
      }
   }
   catch (URISyntaxException e)
   {
      throw new ExpectedException(e.getMessage());
   }

   // Use Olingo's UriParser
   UriParser urip = RuntimeDelegate.getUriParser(getContext().getService().getEntityDataModel());
   List<PathSegment> path_segments = new ArrayList<>();
   StringTokenizer st = new StringTokenizer(link, "/");
   while (st.hasMoreTokens())
   {
      path_segments.add(UriParser.createPathSegment(st.nextToken(), null));
   }
   @SuppressWarnings("unchecked")
   UriInfo uilink = urip.parse(path_segments, Collections.EMPTY_MAP);

   // Creates link
   user.createLink(uilink);

   // Empty answer with HTTP code 204: no content
   return ODataResponse.newBuilder().build();
}
 
开发者ID:SentinelDataHub,项目名称:DataHubSystem,代码行数:73,代码来源:Processor.java


注:本文中的org.apache.olingo.odata2.api.ep.EntityProvider.readLink方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。