本文整理汇总了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;
}
示例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;
}
示例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();
}
示例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();
}