Java Code Examples for org.apache.olingo.commons.api.data.ContextURL#with()

The following examples show how to use org.apache.olingo.commons.api.data.ContextURL#with() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TechnicalPrimitiveComplexProcessor.java    From olingo-odata4 with Apache License 2.0 6 votes vote down vote up
private ContextURL getContextUrl(final EdmEntitySet entitySet, final Entity entity, final List<String> path,
    final EdmType type, final RepresentationType representationType,
    final ExpandOption expand, final SelectOption select) throws ODataLibraryException {
  final UriHelper helper = odata.createUriHelper();
  Builder builder = ContextURL.with();
  builder = entitySet == null ?
      representationType == RepresentationType.PRIMITIVE || representationType == RepresentationType.COMPLEX ?
          builder.type(type) :
          builder.type(type).asCollection() :
      builder.entitySet(entitySet).keyPath(helper.buildKeyPredicate(entitySet.getEntityType(), entity));
  if (entitySet != null && !path.isEmpty()) {
    builder = builder.navOrPropertyPath(buildPropertyPath(path));
  }
  builder = builder.selectList(
      type.getKind() == EdmTypeKind.PRIMITIVE
          || type.getKind() == EdmTypeKind.ENUM
          || type.getKind() == EdmTypeKind.DEFINITION ?
              null :
              helper.buildContextURLSelectList((EdmStructuredType) type, expand, select));
  return builder.build();
}
 
Example 2
Source File: EdmAssistedJsonSerializerTest.java    From olingo-odata4 with Apache License 2.0 6 votes vote down vote up
private String serialize(final EdmAssistedSerializer serializer, final ServiceMetadata metadata,
    final EdmEntitySet edmEntitySet, final AbstractEntityCollection entityCollection, final String selectList)
    throws SerializerException, IOException {
  ContextURL.Builder contextURLBuilder = ContextURL.with();
  contextURLBuilder = edmEntitySet == null ?
      contextURLBuilder.entitySetOrSingletonOrType("EntitySet") :
      contextURLBuilder.entitySet(edmEntitySet);
  if (selectList == null) {
    if (edmEntitySet == null) {
      StringBuilder names = new StringBuilder();
      for (final Property property : entityCollection.iterator().next().getProperties()) {
        names.append(names.length() > 0 ? ',' : "").append(property.getName());
      }
      contextURLBuilder = contextURLBuilder.selectList(names.toString());
    }
  } else {
    contextURLBuilder = contextURLBuilder.selectList(selectList);
  }
  return IOUtils.toString(
      serializer.entityCollection(metadata,
          edmEntitySet == null ? null : edmEntitySet.getEntityType(),
          entityCollection,
          EdmAssistedSerializerOptions.with().contextURL(contextURLBuilder.build()).build())
          .getContent());
}
 
Example 3
Source File: TechnicalActionProcessor.java    From olingo-odata4 with Apache License 2.0 5 votes vote down vote up
private ContextURL getContextUrl(final EdmEntitySet entitySet, final EdmEntityType entityType,
    final boolean isSingleEntity) throws ODataLibraryException {
  Builder builder = ContextURL.with();
  builder = entitySet == null ?
      isSingleEntity ? builder.type(entityType) : builder.asCollection().type(entityType) :
      builder.entitySet(entitySet);
  builder = builder.suffix(isSingleEntity && entitySet != null ? Suffix.ENTITY : null);
  return builder.build();
}
 
Example 4
Source File: DemoActionProcessor.java    From olingo-odata4 with Apache License 2.0 5 votes vote down vote up
private ContextURL getContextUrl(final EdmEntitySet entitySet, final EdmEntityType entityType,
    final boolean isSingleEntity) throws ODataLibraryException {
  Builder builder = ContextURL.with();
  builder = entitySet == null ?
      isSingleEntity ? builder.type(entityType) : builder.asCollection().type(entityType) :
      builder.entitySet(entitySet);
  builder = builder.suffix(isSingleEntity && entitySet != null ? Suffix.ENTITY : null);
  return builder.build();
}
 
Example 5
Source File: ContextURLParser.java    From olingo-odata4 with Apache License 2.0 4 votes vote down vote up
public static ContextURL parse(final URI contextURL) {
  if (contextURL == null) {
    return null;
  }

  final ContextURL.Builder contextUrl = ContextURL.with();

  String contextURLasString = contextURL.toASCIIString();

  boolean isEntity = false;
  if (contextURLasString.endsWith("/$entity") || contextURLasString.endsWith("/@Element")) {
    isEntity = true;
    contextUrl.suffix(Suffix.ENTITY);
    contextURLasString = contextURLasString.replace("/$entity", StringUtils.EMPTY).
        replace("/@Element", StringUtils.EMPTY);
  } else if (contextURLasString.endsWith("/$ref")) {
    contextUrl.suffix(Suffix.REFERENCE);
    contextURLasString = contextURLasString.replace("/$ref", StringUtils.EMPTY);
  } else if (contextURLasString.endsWith("/$delta")) {
    contextUrl.suffix(Suffix.DELTA);
    contextURLasString = contextURLasString.replace("/$delta", StringUtils.EMPTY);
  } else if (contextURLasString.endsWith("/$deletedEntity")) {
    contextUrl.suffix(Suffix.DELTA_DELETED_ENTITY);
    contextURLasString = contextURLasString.replace("/$deletedEntity", StringUtils.EMPTY);
  } else if (contextURLasString.endsWith("/$link")) {
    contextUrl.suffix(Suffix.DELTA_LINK);
    contextURLasString = contextURLasString.replace("/$link", StringUtils.EMPTY);
  } else if (contextURLasString.endsWith("/$deletedLink")) {
    contextUrl.suffix(Suffix.DELTA_DELETED_LINK);
    contextURLasString = contextURLasString.replace("/$deletedLink", StringUtils.EMPTY);
  }

  contextUrl.serviceRoot(URI.create(StringUtils.substringBefore(contextURLasString, Constants.METADATA)));

  final String rest = StringUtils.substringAfter(contextURLasString, Constants.METADATA + "#");

  String firstToken;
  String entitySetOrSingletonOrType;
  if (rest.startsWith("Collection(")) {
    firstToken = rest.substring(0, rest.indexOf(')') + 1);
    entitySetOrSingletonOrType = firstToken;
  } else {
    final int openParIdx = rest.indexOf('(');
    if (openParIdx == -1) {
      firstToken = StringUtils.substringBeforeLast(rest, "/");

      entitySetOrSingletonOrType = firstToken;
    } else {
      firstToken = isEntity ? rest : StringUtils.substringBeforeLast(rest, ")") + ")";

      final List<String> parts = new ArrayList<>();
      for (String split : firstToken.split("\\)/")) {
        parts.add(split.replaceAll("\\(.*", ""));
      }
      entitySetOrSingletonOrType = StringUtils.join(parts, '/');
      final int commaIdx = firstToken.indexOf(',');
      if (commaIdx != -1) {
        contextUrl.selectList(firstToken.substring(openParIdx + 1, firstToken.length() - 1));
      }
    }
  }
  contextUrl.entitySetOrSingletonOrType(entitySetOrSingletonOrType);

  final int slashIdx = entitySetOrSingletonOrType.lastIndexOf('/');
  if (slashIdx != -1 && entitySetOrSingletonOrType.substring(slashIdx + 1).indexOf('.') != -1) {
    contextUrl.entitySetOrSingletonOrType(entitySetOrSingletonOrType.substring(0, slashIdx));
    contextUrl.derivedEntity(entitySetOrSingletonOrType.substring(slashIdx + 1));
  }

  if (!firstToken.equals(rest)) {
    final String[] pathElems = StringUtils.substringAfter(rest, "/").split("/");
    if (pathElems.length > 0 && pathElems[0].length() > 0) {
      if (pathElems[0].indexOf('.') == -1) {
        contextUrl.navOrPropertyPath(pathElems[0]);
      } else {
        contextUrl.derivedEntity(pathElems[0]);
      }

      if (pathElems.length > 1) {
        contextUrl.navOrPropertyPath(pathElems[1]);
      }
    }
  }

  return contextUrl.build();
}