[OLINGO-575] Delete unnecessary casts
This commit is contained in:
parent
9a666bd957
commit
f46364072a
|
@ -36,7 +36,6 @@ import org.apache.olingo.client.api.uri.QueryOption;
|
|||
import org.apache.olingo.client.api.uri.URIBuilder;
|
||||
import org.apache.olingo.client.api.uri.URIFilter;
|
||||
import org.apache.olingo.commons.api.domain.ODataAnnotation;
|
||||
import org.apache.olingo.commons.api.domain.ODataEntity;
|
||||
import org.apache.olingo.ext.proxy.AbstractService;
|
||||
import org.apache.olingo.ext.proxy.api.AbstractTerm;
|
||||
import org.apache.olingo.ext.proxy.api.EntityType;
|
||||
|
@ -182,7 +181,7 @@ public abstract class AbstractCollectionInvocationHandler<T extends Serializable
|
|||
public <ET extends EntityType<?>> boolean addRef(final ET element) {
|
||||
if (element instanceof Proxy && Proxy.getInvocationHandler(element) instanceof EntityInvocationHandler) {
|
||||
final EntityInvocationHandler handler = EntityInvocationHandler.class.cast(Proxy.getInvocationHandler(element));
|
||||
final URI id = ((ODataEntity) handler.getEntity()).getId();
|
||||
final URI id = handler.getEntity().getId();
|
||||
if (id == null) {
|
||||
return false;
|
||||
}
|
||||
|
@ -195,7 +194,7 @@ public abstract class AbstractCollectionInvocationHandler<T extends Serializable
|
|||
}
|
||||
|
||||
public void refs() {
|
||||
((URIBuilder) this.uri).appendRefSegment();
|
||||
this.uri.appendRefSegment();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -33,6 +33,7 @@ import org.apache.olingo.client.api.uri.URIBuilder;
|
|||
import org.apache.olingo.commons.api.domain.ODataAnnotation;
|
||||
import org.apache.olingo.commons.api.domain.ODataEntity;
|
||||
import org.apache.olingo.commons.api.domain.ODataEntitySet;
|
||||
import org.apache.olingo.commons.api.domain.ODataSingleton;
|
||||
import org.apache.olingo.ext.proxy.AbstractService;
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
import org.apache.olingo.ext.proxy.api.AbstractSingleton;
|
||||
|
@ -100,7 +101,7 @@ public abstract class AbstractEntityCollectionInvocationHandler<T extends Entity
|
|||
final List<ODataAnnotation> anns = new ArrayList<ODataAnnotation>();
|
||||
|
||||
if (isSingleton) {
|
||||
final ODataRetrieveResponse<org.apache.olingo.commons.api.domain.ODataSingleton> res =
|
||||
final ODataRetrieveResponse<ODataSingleton> res =
|
||||
((ODataClient) getClient()).getRetrieveRequestFactory().getSingletonRequest(uri).execute();
|
||||
|
||||
entities.add(res.getBody());
|
||||
|
@ -115,9 +116,7 @@ public abstract class AbstractEntityCollectionInvocationHandler<T extends Entity
|
|||
final ODataEntitySet entitySet = res.getBody();
|
||||
entities.addAll(entitySet.getEntities());
|
||||
next = entitySet.getNext();
|
||||
if (entitySet instanceof ODataEntitySet) {
|
||||
anns.addAll(((ODataEntitySet) entitySet).getAnnotations());
|
||||
}
|
||||
anns.addAll(entitySet.getAnnotations());
|
||||
}
|
||||
|
||||
final List<T> res = new ArrayList<T>(entities.size());
|
||||
|
|
|
@ -156,14 +156,12 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
|
|||
entity.getProperties().clear();
|
||||
CoreUtils.addProperties(service.getClient(), handler.getPropertyChanges(), entity);
|
||||
|
||||
if (entity instanceof ODataEntity) {
|
||||
((ODataEntity) entity).getAnnotations().clear();
|
||||
CoreUtils.addAnnotations(service.getClient(), handler.getAnnotations(), (ODataEntity) entity);
|
||||
entity.getAnnotations().clear();
|
||||
CoreUtils.addAnnotations(service.getClient(), handler.getAnnotations(), entity);
|
||||
|
||||
for (Map.Entry<String, AnnotatableInvocationHandler> entry : handler.getPropAnnotatableHandlers().entrySet()) {
|
||||
CoreUtils.addAnnotations(service.getClient(),
|
||||
entry.getValue().getAnnotations(), ((ODataEntity) entity).getProperty(entry.getKey()));
|
||||
}
|
||||
for (Map.Entry<String, AnnotatableInvocationHandler> entry : handler.getPropAnnotatableHandlers().entrySet()) {
|
||||
CoreUtils.addAnnotations(service.getClient(),
|
||||
entry.getValue().getAnnotations(), entity.getProperty(entry.getKey()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -235,13 +233,11 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
|
|||
}
|
||||
}
|
||||
|
||||
if (entity instanceof ODataEntity) {
|
||||
for (Map.Entry<String, AnnotatableInvocationHandler> entry : handler.getNavPropAnnotatableHandlers().entrySet()) {
|
||||
for (Map.Entry<String, AnnotatableInvocationHandler> entry : handler.getNavPropAnnotatableHandlers().entrySet()) {
|
||||
|
||||
CoreUtils.addAnnotations(service.getClient(),
|
||||
entry.getValue().getAnnotations(),
|
||||
(org.apache.olingo.commons.api.domain.ODataLink) entity.getNavigationLink(entry.getKey()));
|
||||
}
|
||||
CoreUtils.addAnnotations(service.getClient(),
|
||||
entry.getValue().getAnnotations(),
|
||||
entity.getNavigationLink(entry.getKey()));
|
||||
}
|
||||
|
||||
final AttachedEntityStatus processedStatus = queue(handler, entity, changeset);
|
||||
|
|
|
@ -633,7 +633,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
|
|||
}
|
||||
|
||||
public void refs() {
|
||||
((URIBuilder) this.uri).appendRefSegment();
|
||||
this.uri.appendRefSegment();
|
||||
}
|
||||
|
||||
public void clearQueryOptions() {
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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
|
||||
*
|
||||
* 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
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
@ -51,14 +51,14 @@ public class AnnotatableInvocationHandler extends AbstractInvocationHandler impl
|
|||
private final AbstractStructuredInvocationHandler targetHandler;
|
||||
|
||||
private final Map<Class<? extends AbstractTerm>, Object> annotations =
|
||||
new HashMap<Class<? extends AbstractTerm>, Object>();
|
||||
new HashMap<Class<? extends AbstractTerm>, Object>();
|
||||
|
||||
public AnnotatableInvocationHandler(
|
||||
final AbstractService<?> service,
|
||||
final String propName,
|
||||
final String navPropName,
|
||||
final EntityInvocationHandler entityHandler,
|
||||
final AbstractStructuredInvocationHandler targetHandler) {
|
||||
final AbstractService<?> service,
|
||||
final String propName,
|
||||
final String navPropName,
|
||||
final EntityInvocationHandler entityHandler,
|
||||
final AbstractStructuredInvocationHandler targetHandler) {
|
||||
|
||||
super(service);
|
||||
|
||||
|
@ -78,20 +78,16 @@ public class AnnotatableInvocationHandler extends AbstractInvocationHandler impl
|
|||
}
|
||||
|
||||
private List<ODataAnnotation> internalAnnotations() {
|
||||
List<ODataAnnotation> result = Collections.<ODataAnnotation>emptyList();
|
||||
List<ODataAnnotation> result = Collections.<ODataAnnotation> emptyList();
|
||||
|
||||
if (entityHandler.getEntity() instanceof ODataEntity) {
|
||||
if (targetHandler.getInternal() instanceof ODataEntity) {
|
||||
result = propName == null
|
||||
? ((org.apache.olingo.commons.api.domain.ODataLink) ((ODataEntity) targetHandler.getInternal()).
|
||||
getNavigationLink(navPropName)).getAnnotations()
|
||||
: ((ODataEntity) targetHandler.getInternal()).getProperty(propName).getAnnotations();
|
||||
} else if (targetHandler.getInternal() instanceof ODataComplexValue) {
|
||||
result = propName == null
|
||||
? ((org.apache.olingo.commons.api.domain.ODataLink) ((ODataComplexValue) targetHandler.
|
||||
getInternal()).getNavigationLink(navPropName)).getAnnotations()
|
||||
: ((ODataComplexValue) targetHandler.getInternal()).get(propName).getAnnotations();
|
||||
}
|
||||
if (targetHandler.getInternal() instanceof ODataEntity) {
|
||||
result = propName == null
|
||||
? ((ODataEntity) targetHandler.getInternal()).getNavigationLink(navPropName).getAnnotations()
|
||||
: ((ODataEntity) targetHandler.getInternal()).getProperty(propName).getAnnotations();
|
||||
} else if (targetHandler.getInternal() instanceof ODataComplexValue) {
|
||||
result = propName == null
|
||||
? ((ODataComplexValue) targetHandler.getInternal()).getNavigationLink(navPropName).getAnnotations()
|
||||
: ((ODataComplexValue) targetHandler.getInternal()).get(propName).getAnnotations();
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -113,7 +109,7 @@ public class AnnotatableInvocationHandler extends AbstractInvocationHandler impl
|
|||
if (item instanceof Proxy) {
|
||||
final InvocationHandler handler = Proxy.getInvocationHandler(item);
|
||||
if ((handler instanceof ComplexInvocationHandler)
|
||||
&& ((ComplexInvocationHandler) handler).getEntityHandler() == null) {
|
||||
&& ((ComplexInvocationHandler) handler).getEntityHandler() == null) {
|
||||
((ComplexInvocationHandler) handler).setEntityHandler(entityHandler);
|
||||
}
|
||||
}
|
||||
|
@ -146,7 +142,7 @@ public class AnnotatableInvocationHandler extends AbstractInvocationHandler impl
|
|||
|
||||
if (annotations.containsKey(term)) {
|
||||
res = annotations.get(term);
|
||||
} else if (entityHandler.getEntity() instanceof ODataEntity) {
|
||||
} else {
|
||||
try {
|
||||
final Term termAnn = term.getAnnotation(Term.class);
|
||||
final Namespace namespaceAnn = term.getAnnotation(Namespace.class);
|
||||
|
@ -157,8 +153,8 @@ public class AnnotatableInvocationHandler extends AbstractInvocationHandler impl
|
|||
}
|
||||
}
|
||||
res = annotation == null || annotation.hasNullValue()
|
||||
? null
|
||||
: CoreUtils.getObjectFromODataValue(annotation.getValue(), null, targetHandler.service);
|
||||
? null
|
||||
: CoreUtils.getObjectFromODataValue(annotation.getValue(), null, targetHandler.service);
|
||||
if (res != null) {
|
||||
annotations.put(term, res);
|
||||
}
|
||||
|
@ -172,8 +168,6 @@ public class AnnotatableInvocationHandler extends AbstractInvocationHandler impl
|
|||
|
||||
@Override
|
||||
public Collection<Class<? extends AbstractTerm>> readAnnotationTerms() {
|
||||
return entityHandler.getEntity() instanceof ODataEntity
|
||||
? CoreUtils.getAnnotationTerms(service, internalAnnotations())
|
||||
: Collections.<Class<? extends AbstractTerm>>emptyList();
|
||||
return CoreUtils.getAnnotationTerms(service, internalAnnotations());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -410,12 +410,12 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
|
|||
|
||||
if (annotations.containsKey(term)) {
|
||||
res = annotations.get(term);
|
||||
} else if (getEntity() instanceof ODataEntity) {
|
||||
} else {
|
||||
try {
|
||||
final Term termAnn = term.getAnnotation(Term.class);
|
||||
final Namespace namespaceAnn = term.getAnnotation(Namespace.class);
|
||||
ODataAnnotation annotation = null;
|
||||
for (ODataAnnotation _annotation : ((ODataEntity) getEntity()).getAnnotations()) {
|
||||
for (ODataAnnotation _annotation : getEntity().getAnnotations()) {
|
||||
if ((namespaceAnn.value() + "." + termAnn.name()).equals(_annotation.getTerm())) {
|
||||
annotation = _annotation;
|
||||
}
|
||||
|
@ -436,9 +436,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
|
|||
|
||||
@Override
|
||||
public Collection<Class<? extends AbstractTerm>> readAnnotationTerms() {
|
||||
return getEntity() instanceof ODataEntity
|
||||
? CoreUtils.getAnnotationTerms(service, ((ODataEntity) getEntity()).getAnnotations())
|
||||
: Collections.<Class<? extends AbstractTerm>> emptyList();
|
||||
return CoreUtils.getAnnotationTerms(service, getEntity().getAnnotations());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -450,7 +448,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
|
|||
final ODataEntityRequest<ODataEntity> req =
|
||||
getClient().getRetrieveRequestFactory().getEntityRequest(uri.build());
|
||||
|
||||
req.setPrefer(getClient().newPreferences().includeAnnotations("*"));
|
||||
req.setPrefer(getClient().newPreferences().includeAnnotations("*"));
|
||||
|
||||
final ODataRetrieveResponse<ODataEntity> res = req.execute();
|
||||
|
||||
|
@ -492,7 +490,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
|
|||
|
||||
// use read- instead of get- for .invoke() to distinguish it from entity property getter.
|
||||
public String readEntityReferenceID() {
|
||||
URI id = getEntity() == null ? null : ((ODataEntity) getEntity()).getId();
|
||||
URI id = getEntity() == null ? null : getEntity().getId();
|
||||
|
||||
return id == null ? null : id.toASCIIString();
|
||||
}
|
||||
|
|
|
@ -28,7 +28,6 @@ import java.util.concurrent.Callable;
|
|||
import java.util.concurrent.Future;
|
||||
|
||||
import org.apache.commons.lang3.tuple.Triple;
|
||||
import org.apache.olingo.client.api.EdmEnabledODataClient;
|
||||
import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
|
||||
import org.apache.olingo.client.api.uri.URIBuilder;
|
||||
import org.apache.olingo.commons.api.domain.ODataAnnotation;
|
||||
|
@ -196,14 +195,14 @@ public class EntitySetInvocationHandler<
|
|||
|
||||
@Override
|
||||
public Search<T, EC> createSearch() {
|
||||
return new SearchImpl<T, EC>((EdmEnabledODataClient) getClient(), this.collItemRef, this.baseURI, this);
|
||||
return new SearchImpl<T, EC>(getClient(), this.collItemRef, this.baseURI, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public <S extends T, SEC extends EntityCollection<S, ?, ?>> Search<S, SEC> createSearch(final Class<SEC> reference) {
|
||||
return new SearchImpl<S, SEC>(
|
||||
(EdmEnabledODataClient) getClient(),
|
||||
getClient(),
|
||||
reference,
|
||||
baseURI,
|
||||
(EntitySetInvocationHandler<S, ?, SEC>) this);
|
||||
|
|
|
@ -46,7 +46,6 @@ import org.apache.olingo.commons.api.domain.ODataComplexValue;
|
|||
import org.apache.olingo.commons.api.domain.ODataEntity;
|
||||
import org.apache.olingo.commons.api.domain.ODataEnumValue;
|
||||
import org.apache.olingo.commons.api.domain.ODataLink;
|
||||
import org.apache.olingo.commons.api.domain.ODataObjectFactory;
|
||||
import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
|
||||
import org.apache.olingo.commons.api.domain.ODataProperty;
|
||||
import org.apache.olingo.commons.api.domain.ODataValue;
|
||||
|
@ -106,8 +105,7 @@ public final class CoreUtils {
|
|||
if (intType.isPrimitiveType()) {
|
||||
value.asCollection().add(getODataValue(client, intType, collectionItem).asPrimitive());
|
||||
} else if (intType.isEnumType()) {
|
||||
value.asCollection().add(((org.apache.olingo.commons.api.domain.ODataValue) getODataValue(
|
||||
client, intType, collectionItem)).asEnum());
|
||||
value.asCollection().add((getODataValue(client, intType, collectionItem)).asEnum());
|
||||
} else if (intType.isComplexType()) {
|
||||
value.asCollection().add(getODataValue(client, intType, collectionItem).asComplex());
|
||||
} else {
|
||||
|
@ -139,8 +137,7 @@ public final class CoreUtils {
|
|||
}
|
||||
|
||||
} else if (type.isEnumType()) {
|
||||
value = ((org.apache.olingo.commons.api.domain.ODataObjectFactory) client.getObjectFactory()).
|
||||
newEnumValue(type.getFullQualifiedName().toString(), ((Enum<?>) obj).name());
|
||||
value = client.getObjectFactory().newEnumValue(type.getFullQualifiedName().toString(), ((Enum<?>) obj).name());
|
||||
} else {
|
||||
value = client.getObjectFactory().newPrimitiveValueBuilder().setType(type.getPrimitiveTypeKind()).setValue(obj).
|
||||
build();
|
||||
|
@ -204,8 +201,7 @@ public final class CoreUtils {
|
|||
: new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).
|
||||
setTypeExpression(type.getFullQualifiedName().toString()).build();
|
||||
|
||||
annotation = new ODataAnnotationImpl(term,
|
||||
(org.apache.olingo.commons.api.domain.ODataValue) getODataValue(client, valueType, obj));
|
||||
annotation = new ODataAnnotationImpl(term, getODataValue(client, valueType, obj));
|
||||
}
|
||||
|
||||
return annotation;
|
||||
|
@ -232,8 +228,7 @@ public final class CoreUtils {
|
|||
} else if (valueType.isComplexType()) {
|
||||
property = client.getObjectFactory().newComplexProperty(name, value.asComplex());
|
||||
} else if (valueType.isEnumType()) {
|
||||
property = ((ODataObjectFactory) client.getObjectFactory()).newEnumProperty(name,
|
||||
((org.apache.olingo.commons.api.domain.ODataValue) value).asEnum());
|
||||
property = client.getObjectFactory().newEnumProperty(name, value.asEnum());
|
||||
} else {
|
||||
throw new UnsupportedOperationException("Usupported object type " + valueType.getFullQualifiedName());
|
||||
}
|
||||
|
@ -273,15 +268,15 @@ public final class CoreUtils {
|
|||
EdmPrimitiveTypeKind bckCandidate = null;
|
||||
|
||||
for (EdmPrimitiveTypeKind kind : EdmPrimitiveTypeKind.values()) {
|
||||
final Class<?> target = EdmPrimitiveTypeFactory.getInstance(kind).getDefaultType();
|
||||
final Class<?> target = EdmPrimitiveTypeFactory.getInstance(kind).getDefaultType();
|
||||
|
||||
if (clazz.equals(target)) {
|
||||
return new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).setTypeExpression(kind.toString()).build();
|
||||
} else if (target.isAssignableFrom(clazz)) {
|
||||
bckCandidate = kind;
|
||||
} else if (target == Timestamp.class && kind == EdmPrimitiveTypeKind.DateTimeOffset) {
|
||||
bckCandidate = kind;
|
||||
}
|
||||
if (clazz.equals(target)) {
|
||||
return new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).setTypeExpression(kind.toString()).build();
|
||||
} else if (target.isAssignableFrom(clazz)) {
|
||||
bckCandidate = kind;
|
||||
} else if (target == Timestamp.class && kind == EdmPrimitiveTypeKind.DateTimeOffset) {
|
||||
bckCandidate = kind;
|
||||
}
|
||||
}
|
||||
|
||||
if (bckCandidate == null) {
|
||||
|
@ -297,8 +292,8 @@ public final class CoreUtils {
|
|||
final ODataEntity entity) {
|
||||
|
||||
for (Map.Entry<String, Object> entry : changes.entrySet()) {
|
||||
((List<ODataProperty>) entity.getProperties()).add(
|
||||
getODataEntityProperty(client, entity.getTypeName(), entry.getKey(), entry.getValue()));
|
||||
entity.getProperties()
|
||||
.add(getODataEntityProperty(client, entity.getTypeName(), entry.getKey(), entry.getValue()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/*
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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
|
||||
*
|
||||
* 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
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
@ -73,7 +73,9 @@ public abstract class AbstractBaseTestITCase {
|
|||
final StringWriter writer = new StringWriter();
|
||||
try {
|
||||
getClient().getSerializer(ODataFormat.JSON).write(writer, entity);
|
||||
} catch (final ODataSerializerException e) {}
|
||||
} catch (final ODataSerializerException e) {
|
||||
// Debug
|
||||
}
|
||||
writer.flush();
|
||||
LOG.debug(message + "\n{}", writer.toString());
|
||||
}
|
||||
|
@ -84,7 +86,9 @@ public abstract class AbstractBaseTestITCase {
|
|||
final StringWriter writer = new StringWriter();
|
||||
try {
|
||||
getClient().getSerializer(ODataFormat.JSON).write(writer, entitySet);
|
||||
} catch (final ODataSerializerException e) {}
|
||||
} catch (final ODataSerializerException e) {
|
||||
// Debug
|
||||
}
|
||||
writer.flush();
|
||||
LOG.debug(message + "\n{}", writer.toString());
|
||||
}
|
||||
|
@ -103,14 +107,18 @@ public abstract class AbstractBaseTestITCase {
|
|||
StringWriter writer = new StringWriter();
|
||||
try {
|
||||
getClient().getSerializer(ODataFormat.ATOM).write(writer, getClient().getBinder().getEntity(entity));
|
||||
} catch (final ODataSerializerException e) {}
|
||||
} catch (final ODataSerializerException e) {
|
||||
// Debug
|
||||
}
|
||||
writer.flush();
|
||||
LOG.debug(message + " (Atom)\n{}", writer.toString());
|
||||
|
||||
writer = new StringWriter();
|
||||
try {
|
||||
getClient().getSerializer(ODataFormat.JSON).write(writer, getClient().getBinder().getEntity(entity));
|
||||
} catch (final ODataSerializerException e) {}
|
||||
} catch (final ODataSerializerException e) {
|
||||
// Debug
|
||||
}
|
||||
writer.flush();
|
||||
LOG.debug(message + " (JSON)\n{}", writer.toString());
|
||||
}
|
||||
|
|
|
@ -72,8 +72,9 @@ public interface Customer
|
|||
fcNSPrefix = "",
|
||||
fcNSURI = "",
|
||||
fcKeepInContent = false)
|
||||
@Override
|
||||
java.lang.Integer getID();
|
||||
|
||||
@Override
|
||||
void setID(java.lang.Integer _iD);
|
||||
|
||||
|
||||
|
@ -95,8 +96,9 @@ public interface Customer
|
|||
fcNSPrefix = "",
|
||||
fcNSURI = "",
|
||||
fcKeepInContent = false)
|
||||
@Override
|
||||
java.lang.String getName();
|
||||
|
||||
@Override
|
||||
void setName(java.lang.String _name);
|
||||
|
||||
|
||||
|
|
|
@ -299,7 +299,7 @@ public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
|
|||
assertEquals(Boolean.TRUE, style.getComplexValue().get("title").getPrimitiveValue().toCastValue(Boolean.class));
|
||||
assertEquals(1, style.getComplexValue().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
|
||||
|
||||
final ODataLink orders = (ODataLink) entity.getNavigationLink("Orders");
|
||||
final ODataLink orders = entity.getNavigationLink("Orders");
|
||||
assertEquals(1, orders.getAnnotations().size());
|
||||
|
||||
final ODataAnnotation style2 = orders.getAnnotations().get(0);
|
||||
|
|
|
@ -32,7 +32,6 @@ public class BatchRequestFactoryImpl implements BatchRequestFactory {
|
|||
|
||||
@Override
|
||||
public ODataBatchRequest getBatchRequest(final String serviceRoot) {
|
||||
return new ODataBatchRequestImpl(
|
||||
(ODataClient) client, client.newURIBuilder(serviceRoot).appendBatchSegment().build());
|
||||
return new ODataBatchRequestImpl(client, client.newURIBuilder(serviceRoot).appendBatchSegment().build());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -245,6 +245,7 @@ public class CUDRequestFactoryImpl implements CUDRequestFactory {
|
|||
return new ODataReferenceAddingRequestImpl(client, HttpMethod.POST, targetURI, wrappedPayload);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ODataReferenceAddingRequest getReferenceSingleChangeRequest(final URI serviceRoot, final URI targetURI,
|
||||
final URI reference) {
|
||||
// See OData Protocol 11.4.6.3
|
||||
|
|
|
@ -126,12 +126,8 @@ public abstract class AbstractODataInvokeRequest<T extends ODataInvokeResult>
|
|||
} else if (param.getValue().isCollection()) {
|
||||
property = odataClient.getObjectFactory().
|
||||
newCollectionProperty(param.getKey(), param.getValue().asCollection());
|
||||
} else if (param.getValue() instanceof org.apache.olingo.commons.api.domain.ODataValue
|
||||
&& ((org.apache.olingo.commons.api.domain.ODataValue) param.getValue()).isEnum()) {
|
||||
|
||||
property = ((ODataClient) odataClient).getObjectFactory().
|
||||
newEnumProperty(param.getKey(),
|
||||
((org.apache.olingo.commons.api.domain.ODataValue) param.getValue()).asEnum());
|
||||
} else if (param.getValue().isEnum()) {
|
||||
property = odataClient.getObjectFactory().newEnumProperty(param.getKey(), param.getValue().asEnum());
|
||||
}
|
||||
|
||||
if (property != null) {
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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
|
||||
*
|
||||
* 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
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
@ -34,7 +34,7 @@ import org.apache.olingo.commons.api.format.ODataFormat;
|
|||
import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
|
||||
|
||||
public class ODataDeltaRequestImpl extends AbstractODataRetrieveRequest<ODataDelta>
|
||||
implements ODataDeltaRequest {
|
||||
implements ODataDeltaRequest {
|
||||
|
||||
public ODataDeltaRequestImpl(final ODataClient odataClient, final URI query) {
|
||||
super(odataClient, query);
|
||||
|
@ -56,7 +56,7 @@ public class ODataDeltaRequestImpl extends AbstractODataRetrieveRequest<ODataDel
|
|||
private ODataDelta delta = null;
|
||||
|
||||
private ODataDeltaResponseImpl(final ODataClient odataClient, final HttpClient httpClient,
|
||||
final HttpResponse res) {
|
||||
final HttpResponse res) {
|
||||
|
||||
super(odataClient, httpClient, res);
|
||||
}
|
||||
|
@ -65,11 +65,10 @@ public class ODataDeltaRequestImpl extends AbstractODataRetrieveRequest<ODataDel
|
|||
public ODataDelta getBody() {
|
||||
if (delta == null) {
|
||||
try {
|
||||
final ResWrap<Delta> resource = ((ODataClient) odataClient).
|
||||
getDeserializer(ODataFormat.fromString(getContentType())).
|
||||
toDelta(res.getEntity().getContent());
|
||||
final ResWrap<Delta> resource = odataClient.getDeserializer(ODataFormat.fromString(getContentType())).
|
||||
toDelta(res.getEntity().getContent());
|
||||
|
||||
delta = ((ODataClient) odataClient).getBinder().getODataDelta(resource);
|
||||
delta = odataClient.getBinder().getODataDelta(resource);
|
||||
} catch (IOException e) {
|
||||
throw new HttpClientException(e);
|
||||
} catch (final ODataDeserializerException e) {
|
||||
|
|
|
@ -43,7 +43,7 @@ import org.apache.olingo.commons.api.domain.ODataSingleton;
|
|||
public class RetrieveRequestFactoryImpl implements RetrieveRequestFactory {
|
||||
|
||||
protected final ODataClient client;
|
||||
|
||||
|
||||
public RetrieveRequestFactoryImpl(final ODataClient client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
@ -89,8 +89,7 @@ public class RetrieveRequestFactoryImpl implements RetrieveRequestFactory {
|
|||
|
||||
@Override
|
||||
public XMLMetadataRequest getXMLMetadataRequest(final String serviceRoot) {
|
||||
return new XMLMetadataRequestImpl(((ODataClient) client),
|
||||
client.newURIBuilder(serviceRoot).appendMetadataSegment().build());
|
||||
return new XMLMetadataRequestImpl(client, client.newURIBuilder(serviceRoot).appendMetadataSegment().build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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
|
||||
*
|
||||
* 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
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
@ -39,8 +39,8 @@ import org.apache.olingo.client.core.edm.xml.SchemaImpl;
|
|||
import org.apache.olingo.commons.api.format.ODataFormat;
|
||||
|
||||
public class XMLMetadataRequestImpl
|
||||
extends AbstractMetadataRequestImpl<XMLMetadata>
|
||||
implements XMLMetadataRequest {
|
||||
extends AbstractMetadataRequestImpl<XMLMetadata>
|
||||
implements XMLMetadataRequest {
|
||||
|
||||
XMLMetadataRequestImpl(final ODataClient odataClient, final URI uri) {
|
||||
super(odataClient, uri);
|
||||
|
@ -48,18 +48,18 @@ public class XMLMetadataRequestImpl
|
|||
|
||||
@Override
|
||||
public ODataRetrieveResponse<XMLMetadata> execute() {
|
||||
final SingleXMLMetadatRequestImpl rootReq = new SingleXMLMetadatRequestImpl((ODataClient) odataClient, uri, null);
|
||||
final SingleXMLMetadatRequestImpl rootReq = new SingleXMLMetadatRequestImpl(odataClient, uri, null);
|
||||
final ODataRetrieveResponse<XMLMetadata> rootRes = rootReq.execute();
|
||||
|
||||
final XMLMetadataResponseImpl response =
|
||||
new XMLMetadataResponseImpl(odataClient, httpClient, rootReq.getHttpResponse(), rootRes.getBody());
|
||||
new XMLMetadataResponseImpl(odataClient, httpClient, rootReq.getHttpResponse(), rootRes.getBody());
|
||||
|
||||
// process external references
|
||||
for (Reference reference : rootRes.getBody().getReferences()) {
|
||||
final SingleXMLMetadatRequestImpl includeReq = new SingleXMLMetadatRequestImpl(
|
||||
(ODataClient) odataClient,
|
||||
odataClient.newURIBuilder(uri.resolve(reference.getUri()).toASCIIString()).build(),
|
||||
uri);
|
||||
odataClient,
|
||||
odataClient.newURIBuilder(uri.resolve(reference.getUri()).toASCIIString()).build(),
|
||||
uri);
|
||||
final XMLMetadata includeMetadata = includeReq.execute().getBody();
|
||||
|
||||
// edmx:Include
|
||||
|
@ -86,10 +86,10 @@ public class XMLMetadataRequestImpl
|
|||
// take into account only when (TargetNamespace was either not provided or matches) and
|
||||
// (Qualifier was either not provided or matches)
|
||||
if ((StringUtils.isBlank(include.getTargetNamespace())
|
||||
|| include.getTargetNamespace().equals(
|
||||
StringUtils.substringBeforeLast(annotationGroup.getTarget(), ".")))
|
||||
&& (StringUtils.isBlank(include.getQualifier())
|
||||
|| include.getQualifier().equals(annotationGroup.getQualifier()))) {
|
||||
|| include.getTargetNamespace().equals(
|
||||
StringUtils.substringBeforeLast(annotationGroup.getTarget(), ".")))
|
||||
&& (StringUtils.isBlank(include.getQualifier())
|
||||
|| include.getQualifier().equals(annotationGroup.getQualifier()))) {
|
||||
|
||||
final AnnotationsImpl toBeIncluded = new AnnotationsImpl();
|
||||
toBeIncluded.setTarget(annotationGroup.getTarget());
|
||||
|
@ -128,9 +128,11 @@ public class XMLMetadataRequestImpl
|
|||
return httpResponse;
|
||||
}
|
||||
|
||||
/** Referenced document's URIs must only have the same scheme, host, and port as the
|
||||
* main metadata document's URI but don't have to start with the service root
|
||||
* as all other OData request URIs. */
|
||||
/**
|
||||
* Referenced document's URIs must only have the same scheme, host, and port as the
|
||||
* main metadata document's URI but don't have to start with the service root
|
||||
* as all other OData request URIs.
|
||||
*/
|
||||
@Override
|
||||
protected void checkRequest(final ODataClient odataClient, final HttpUriRequest request) {
|
||||
if (parentURI == null) {
|
||||
|
@ -157,7 +159,7 @@ public class XMLMetadataRequestImpl
|
|||
public XMLMetadata getBody() {
|
||||
if (metadata == null) {
|
||||
try {
|
||||
metadata = ((ODataClient) odataClient).getDeserializer(ODataFormat.XML).toMetadata(getRawResponse());
|
||||
metadata = odataClient.getDeserializer(ODataFormat.XML).toMetadata(getRawResponse());
|
||||
} finally {
|
||||
this.close();
|
||||
}
|
||||
|
@ -173,7 +175,7 @@ public class XMLMetadataRequestImpl
|
|||
private final XMLMetadata metadata;
|
||||
|
||||
private XMLMetadataResponseImpl(final ODataClient odataClient, final HttpClient httpClient,
|
||||
final HttpResponse res, final XMLMetadata metadata) {
|
||||
final HttpResponse res, final XMLMetadata metadata) {
|
||||
|
||||
super(odataClient, httpClient, null);
|
||||
this.metadata = metadata;
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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
|
||||
*
|
||||
* 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
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
@ -95,7 +95,7 @@ public class EdmClientImpl extends AbstractEdm {
|
|||
protected Map<String, EdmSchema> createSchemas() {
|
||||
final Map<String, EdmSchema> _schemas = new LinkedHashMap<String, EdmSchema>(xmlSchemas.size());
|
||||
for (Schema schema : xmlSchemas) {
|
||||
_schemas.put(schema.getNamespace(), new EdmSchemaImpl(this, xmlSchemas, schema));
|
||||
_schemas.put(schema.getNamespace(), new EdmSchemaImpl(this, schema));
|
||||
}
|
||||
return _schemas;
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ public class EdmClientImpl extends AbstractEdm {
|
|||
if (schema != null) {
|
||||
final EntityContainer xmlEntityContainer = schema.getDefaultEntityContainer();
|
||||
if (xmlEntityContainer != null) {
|
||||
result = new EdmEntityContainerImpl(this, containerName, xmlEntityContainer, xmlSchemas);
|
||||
result = new EdmEntityContainerImpl(this, containerName, xmlEntityContainer);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -135,14 +135,13 @@ public class EdmClientImpl extends AbstractEdm {
|
|||
EdmTypeDefinition result = null;
|
||||
|
||||
final Schema schema = xmlSchemaByNamespace.get(typeDefinitionName.getNamespace());
|
||||
if (schema instanceof Schema) {
|
||||
final TypeDefinition xmlTypeDefinition = ((Schema) schema).
|
||||
getTypeDefinition(typeDefinitionName.getName());
|
||||
if (schema != null) {
|
||||
final TypeDefinition xmlTypeDefinition = schema.
|
||||
getTypeDefinition(typeDefinitionName.getName());
|
||||
if (xmlTypeDefinition != null) {
|
||||
result = new EdmTypeDefinitionImpl(this, typeDefinitionName, xmlTypeDefinition);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -154,7 +153,7 @@ public class EdmClientImpl extends AbstractEdm {
|
|||
if (schema != null) {
|
||||
final EntityType xmlEntityType = schema.getEntityType(entityTypeName.getName());
|
||||
if (xmlEntityType != null) {
|
||||
result = EdmEntityTypeImpl.getInstance(this, entityTypeName, xmlSchemas, xmlEntityType);
|
||||
result = EdmEntityTypeImpl.getInstance(this, entityTypeName, xmlEntityType);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -169,7 +168,7 @@ public class EdmClientImpl extends AbstractEdm {
|
|||
if (schema != null) {
|
||||
final ComplexType xmlComplexType = schema.getComplexType(complexTypeName.getName());
|
||||
if (xmlComplexType != null) {
|
||||
result = EdmComplexTypeImpl.getInstance(this, complexTypeName, xmlSchemas, xmlComplexType);
|
||||
result = EdmComplexTypeImpl.getInstance(this, complexTypeName, xmlComplexType);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -181,18 +180,16 @@ public class EdmClientImpl extends AbstractEdm {
|
|||
EdmAction result = null;
|
||||
|
||||
final Schema schema = xmlSchemaByNamespace.get(actionName.getNamespace());
|
||||
if (schema instanceof Schema) {
|
||||
final List<Action> actions = ((Schema) schema).
|
||||
getActions(actionName.getName());
|
||||
boolean found = false;
|
||||
for (final Iterator<Action> itor = actions.iterator(); itor.hasNext() && !found;) {
|
||||
final Action action = itor.next();
|
||||
if (!action.isBound()) {
|
||||
found = true;
|
||||
result = EdmActionImpl.getInstance(this, actionName, action);
|
||||
}
|
||||
final List<Action> actions = schema.
|
||||
getActions(actionName.getName());
|
||||
boolean found = false;
|
||||
for (final Iterator<Action> itor = actions.iterator(); itor.hasNext() && !found;) {
|
||||
final Action action = itor.next();
|
||||
if (!action.isBound()) {
|
||||
found = true;
|
||||
result = EdmActionImpl.getInstance(this, actionName, action);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -201,16 +198,14 @@ public class EdmClientImpl extends AbstractEdm {
|
|||
final List<EdmFunction> result = new ArrayList<EdmFunction>();
|
||||
|
||||
final Schema schema = xmlSchemaByNamespace.get(functionName.getNamespace());
|
||||
if (schema instanceof Schema) {
|
||||
final List<Function> functions = ((Schema) schema).
|
||||
getFunctions(functionName.getName());
|
||||
for (final Iterator<Function> itor = functions.iterator(); itor.hasNext();) {
|
||||
final Function function = itor.next();
|
||||
if (!function.isBound()) {
|
||||
result.add(EdmFunctionImpl.getInstance(this, functionName, function));
|
||||
}
|
||||
final List<Function> functions = schema.
|
||||
getFunctions(functionName.getName());
|
||||
for (final Iterator<Function> itor = functions.iterator(); itor.hasNext();) {
|
||||
final Function function = itor.next();
|
||||
if (!function.isBound()) {
|
||||
result.add(EdmFunctionImpl.getInstance(this, functionName, function));
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -219,89 +214,83 @@ public class EdmClientImpl extends AbstractEdm {
|
|||
EdmFunction result = null;
|
||||
|
||||
final Schema schema = xmlSchemaByNamespace.get(functionName.getNamespace());
|
||||
if (schema instanceof Schema) {
|
||||
final List<Function> functions = ((Schema) schema).
|
||||
getFunctions(functionName.getName());
|
||||
boolean found = false;
|
||||
for (final Iterator<Function> itor = functions.iterator(); itor.hasNext() && !found;) {
|
||||
final Function function = itor.next();
|
||||
if (!function.isBound()) {
|
||||
final Set<String> functionParamNames = new HashSet<String>();
|
||||
for (Parameter param : function.getParameters()) {
|
||||
functionParamNames.add(param.getName());
|
||||
}
|
||||
found = parameterNames == null
|
||||
? functionParamNames.isEmpty()
|
||||
: functionParamNames.containsAll(parameterNames);
|
||||
result = EdmFunctionImpl.getInstance(this, functionName, function);
|
||||
final List<Function> functions = schema.
|
||||
getFunctions(functionName.getName());
|
||||
boolean found = false;
|
||||
for (final Iterator<Function> itor = functions.iterator(); itor.hasNext() && !found;) {
|
||||
final Function function = itor.next();
|
||||
if (!function.isBound()) {
|
||||
final Set<String> functionParamNames = new HashSet<String>();
|
||||
for (Parameter param : function.getParameters()) {
|
||||
functionParamNames.add(param.getName());
|
||||
}
|
||||
found = parameterNames == null
|
||||
? functionParamNames.isEmpty()
|
||||
: functionParamNames.containsAll(parameterNames);
|
||||
result = EdmFunctionImpl.getInstance(this, functionName, function);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected EdmAction createBoundAction(final FullQualifiedName actionName,
|
||||
final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection) {
|
||||
final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection) {
|
||||
|
||||
EdmAction result = null;
|
||||
|
||||
final Schema schema = xmlSchemaByNamespace.get(actionName.getNamespace());
|
||||
if (schema instanceof Schema) {
|
||||
final List<Action> actions =
|
||||
((Schema) schema).getActions(actionName.getName());
|
||||
boolean found = false;
|
||||
for (final Iterator<Action> itor = actions.iterator(); itor.hasNext() && !found;) {
|
||||
final Action action = itor.next();
|
||||
if (action.isBound()) {
|
||||
final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
|
||||
setTypeExpression(action.getParameters().get(0).getType()).build();
|
||||
if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
|
||||
&& (isBindingParameterCollection == null
|
||||
|| isBindingParameterCollection.booleanValue() == boundParam.isCollection())) {
|
||||
final List<Action> actions =
|
||||
schema.getActions(actionName.getName());
|
||||
boolean found = false;
|
||||
for (final Iterator<Action> itor = actions.iterator(); itor.hasNext() && !found;) {
|
||||
final Action action = itor.next();
|
||||
if (action.isBound()) {
|
||||
final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
|
||||
setTypeExpression(action.getParameters().get(0).getType()).build();
|
||||
if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
|
||||
&& (isBindingParameterCollection == null
|
||||
|| isBindingParameterCollection.booleanValue() == boundParam.isCollection())) {
|
||||
|
||||
found = true;
|
||||
result = EdmActionImpl.getInstance(this, actionName, action);
|
||||
}
|
||||
found = true;
|
||||
result = EdmActionImpl.getInstance(this, actionName, action);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected EdmFunction createBoundFunction(final FullQualifiedName functionName,
|
||||
final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection,
|
||||
final List<String> parameterNames) {
|
||||
final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection,
|
||||
final List<String> parameterNames) {
|
||||
|
||||
EdmFunction result = null;
|
||||
|
||||
final Schema schema = xmlSchemaByNamespace.get(functionName.getNamespace());
|
||||
if (schema instanceof Schema) {
|
||||
final List<Function> functions = ((Schema) schema).
|
||||
getFunctions(functionName.getName());
|
||||
boolean found = false;
|
||||
for (final Iterator<Function> itor = functions.iterator(); itor.hasNext() && !found;) {
|
||||
final Function function = itor.next();
|
||||
if (function.isBound()) {
|
||||
final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
|
||||
setTypeExpression(function.getParameters().get(0).getType()).build();
|
||||
if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
|
||||
&& (isBindingParameterCollection == null
|
||||
|| isBindingParameterCollection.booleanValue() == boundParam.isCollection())) {
|
||||
final List<Function> functions = schema.
|
||||
getFunctions(functionName.getName());
|
||||
boolean found = false;
|
||||
for (final Iterator<Function> itor = functions.iterator(); itor.hasNext() && !found;) {
|
||||
final Function function = itor.next();
|
||||
if (function.isBound()) {
|
||||
final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
|
||||
setTypeExpression(function.getParameters().get(0).getType()).build();
|
||||
if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
|
||||
&& (isBindingParameterCollection == null
|
||||
|| isBindingParameterCollection.booleanValue() == boundParam.isCollection())) {
|
||||
|
||||
final Set<String> functionParamNames = new HashSet<String>();
|
||||
for (Parameter param : function.getParameters()) {
|
||||
functionParamNames.add(param.getName());
|
||||
}
|
||||
found = parameterNames == null
|
||||
? functionParamNames.isEmpty()
|
||||
: functionParamNames.containsAll(parameterNames);
|
||||
result = EdmFunctionImpl.getInstance(this, functionName, function);
|
||||
final Set<String> functionParamNames = new HashSet<String>();
|
||||
for (Parameter param : function.getParameters()) {
|
||||
functionParamNames.add(param.getName());
|
||||
}
|
||||
found = parameterNames == null
|
||||
? functionParamNames.isEmpty()
|
||||
: functionParamNames.containsAll(parameterNames);
|
||||
result = EdmFunctionImpl.getInstance(this, functionName, function);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -310,13 +299,12 @@ public class EdmClientImpl extends AbstractEdm {
|
|||
EdmTerm result = null;
|
||||
|
||||
final Schema schema = xmlSchemaByNamespace.get(termName.getNamespace());
|
||||
if (schema instanceof Schema) {
|
||||
final Term term = ((Schema) schema).getTerm(termName.getName());
|
||||
if (schema != null) {
|
||||
final Term term = schema.getTerm(termName.getName());
|
||||
if (term != null) {
|
||||
result = new EdmTermImpl(this, schema.getNamespace(), term);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -325,12 +313,10 @@ public class EdmClientImpl extends AbstractEdm {
|
|||
EdmAnnotationsImpl result = null;
|
||||
|
||||
final Schema schema = xmlSchemaByNamespace.get(targetName.getNamespace());
|
||||
if (schema instanceof Schema) {
|
||||
final Annotations annotationGroup =
|
||||
((Schema) schema).getAnnotationGroup(targetName.getName());
|
||||
if (annotationGroup != null) {
|
||||
result = new EdmAnnotationsImpl(this, schemas.get(schema.getNamespace()), annotationGroup);
|
||||
}
|
||||
final Annotations annotationGroup =
|
||||
schema.getAnnotationGroup(targetName.getName());
|
||||
if (annotationGroup != null) {
|
||||
result = new EdmAnnotationsImpl(this, schemas.get(schema.getNamespace()), annotationGroup);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -341,15 +327,13 @@ public class EdmClientImpl extends AbstractEdm {
|
|||
List<EdmAnnotation> result = null;
|
||||
|
||||
final Schema schema = xmlSchemaByNamespace.get(annotatedName.getNamespace());
|
||||
if (schema instanceof Schema) {
|
||||
final Annotatable annotatable =
|
||||
((Schema) schema).getAnnotatables().get(annotatedName.getName());
|
||||
if (annotatable != null && annotatable.getAnnotations() != null) {
|
||||
result = new ArrayList<EdmAnnotation>();
|
||||
for (Annotation annotation : annotatable.getAnnotations()) {
|
||||
final EdmTerm term = getTerm(new FullQualifiedName(annotation.getTerm()));
|
||||
result.add(new EdmAnnotationImpl(this, annotation));
|
||||
}
|
||||
final Annotatable annotatable =
|
||||
schema.getAnnotatables().get(annotatedName.getName());
|
||||
if (annotatable != null && annotatable.getAnnotations() != null) {
|
||||
result = new ArrayList<EdmAnnotation>();
|
||||
for (Annotation annotation : annotatable.getAnnotations()) {
|
||||
final EdmTerm term = getTerm(new FullQualifiedName(annotation.getTerm()));
|
||||
result.add(new EdmAnnotationImpl(this, annotation));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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
|
||||
*
|
||||
* 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
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
@ -22,7 +22,6 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
import org.apache.olingo.client.api.edm.xml.ComplexType;
|
||||
import org.apache.olingo.client.api.edm.xml.Schema;
|
||||
import org.apache.olingo.commons.api.edm.Edm;
|
||||
import org.apache.olingo.commons.api.edm.EdmAnnotation;
|
||||
import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
|
||||
|
@ -41,29 +40,24 @@ public class EdmComplexTypeImpl extends AbstractEdmComplexType {
|
|||
private EdmAnnotationHelper annotationHelper;
|
||||
|
||||
public static EdmComplexTypeImpl getInstance(final Edm edm, final FullQualifiedName fqn,
|
||||
final List<? extends Schema> xmlSchemas, final ComplexType complexType) {
|
||||
final ComplexType complexType) {
|
||||
|
||||
FullQualifiedName baseTypeName = null;
|
||||
if (complexType instanceof org.apache.olingo.client.api.edm.xml.ComplexType) {
|
||||
final String baseType = ((org.apache.olingo.client.api.edm.xml.ComplexType) complexType).getBaseType();
|
||||
baseTypeName = baseType == null
|
||||
? null : new EdmTypeInfo.Builder().setTypeExpression(baseType).build().getFullQualifiedName();
|
||||
}
|
||||
final EdmComplexTypeImpl instance = new EdmComplexTypeImpl(edm, fqn, baseTypeName, xmlSchemas, complexType);
|
||||
final String baseType = complexType.getBaseType();
|
||||
baseTypeName = baseType == null
|
||||
? null : new EdmTypeInfo.Builder().setTypeExpression(baseType).build().getFullQualifiedName();
|
||||
final EdmComplexTypeImpl instance = new EdmComplexTypeImpl(edm, fqn, baseTypeName, complexType);
|
||||
instance.baseType = instance.buildBaseType(baseTypeName);
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
private EdmComplexTypeImpl(final Edm edm, final FullQualifiedName fqn, final FullQualifiedName baseTypeName,
|
||||
final List<? extends Schema> xmlSchemas, final ComplexType complexType) {
|
||||
final ComplexType complexType) {
|
||||
|
||||
super(edm, fqn, baseTypeName);
|
||||
this.typeHelper = new EdmStructuredTypeHelperImpl(edm, getFullQualifiedName(), xmlSchemas, complexType);
|
||||
if (complexType instanceof org.apache.olingo.client.api.edm.xml.ComplexType) {
|
||||
this.annotationHelper = new EdmAnnotationHelperImpl(edm,
|
||||
(org.apache.olingo.client.api.edm.xml.ComplexType) complexType);
|
||||
}
|
||||
this.typeHelper = new EdmStructuredTypeHelperImpl(edm, getFullQualifiedName(), complexType);
|
||||
this.annotationHelper = new EdmAnnotationHelperImpl(edm, complexType);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -25,7 +25,6 @@ import org.apache.olingo.client.api.edm.xml.ActionImport;
|
|||
import org.apache.olingo.client.api.edm.xml.EntityContainer;
|
||||
import org.apache.olingo.client.api.edm.xml.EntitySet;
|
||||
import org.apache.olingo.client.api.edm.xml.FunctionImport;
|
||||
import org.apache.olingo.client.api.edm.xml.Schema;
|
||||
import org.apache.olingo.client.api.edm.xml.Singleton;
|
||||
import org.apache.olingo.commons.api.edm.Edm;
|
||||
import org.apache.olingo.commons.api.edm.EdmActionImport;
|
||||
|
@ -46,35 +45,29 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
|
|||
private EdmAnnotationHelper helper;
|
||||
|
||||
public EdmEntityContainerImpl(final Edm edm, final FullQualifiedName entityContainerName,
|
||||
final EntityContainer xmlEntityContainer, final List<? extends Schema> xmlSchemas) {
|
||||
final EntityContainer xmlEntityContainer) {
|
||||
|
||||
super(edm, entityContainerName, xmlEntityContainer.getExtends() == null
|
||||
? null : new FullQualifiedName(xmlEntityContainer.getExtends()));
|
||||
? null : new FullQualifiedName(xmlEntityContainer.getExtends()));
|
||||
|
||||
this.xmlEntityContainer = xmlEntityContainer;
|
||||
if (xmlEntityContainer instanceof EntityContainer) {
|
||||
this.helper = new EdmAnnotationHelperImpl(edm,
|
||||
(EntityContainer) xmlEntityContainer);
|
||||
}
|
||||
this.helper = new EdmAnnotationHelperImpl(edm, xmlEntityContainer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDefault() {
|
||||
return xmlEntityContainer instanceof EntityContainer
|
||||
? true
|
||||
: xmlEntityContainer.isDefaultEntityContainer();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected EdmSingleton createSingleton(final String singletonName) {
|
||||
final Singleton singleton = ((EntityContainer) xmlEntityContainer).
|
||||
getSingleton(singletonName);
|
||||
final Singleton singleton = xmlEntityContainer.getSingleton(singletonName);
|
||||
return singleton == null
|
||||
? null
|
||||
: new EdmSingletonImpl(edm, this, singletonName, new EdmTypeInfo.Builder().
|
||||
setTypeExpression(singleton.getEntityType()).
|
||||
setDefaultNamespace(entityContainerName.getNamespace()).
|
||||
build().getFullQualifiedName(), singleton);
|
||||
? null
|
||||
: new EdmSingletonImpl(edm, this, singletonName, new EdmTypeInfo.Builder().
|
||||
setTypeExpression(singleton.getEntityType()).
|
||||
setDefaultNamespace(entityContainerName.getNamespace()).
|
||||
build().getFullQualifiedName(), singleton);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -84,11 +77,8 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
|
|||
final EntitySet entitySet = xmlEntityContainer.getEntitySet(entitySetName);
|
||||
if (entitySet != null) {
|
||||
final FullQualifiedName entityType = new EdmTypeInfo.Builder().setTypeExpression(entitySet.getEntityType()).
|
||||
setDefaultNamespace(entityContainerName.getNamespace()).build().getFullQualifiedName();
|
||||
if (entitySet instanceof EntitySet) {
|
||||
result = new EdmEntitySetImpl(edm, this, entitySetName, entityType,
|
||||
(EntitySet) entitySet);
|
||||
}
|
||||
setDefaultNamespace(entityContainerName.getNamespace()).build().getFullQualifiedName();
|
||||
result = new EdmEntitySetImpl(edm, this, entitySetName, entityType, entitySet);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -98,13 +88,10 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
|
|||
protected EdmActionImport createActionImport(final String actionImportName) {
|
||||
EdmActionImport result = null;
|
||||
|
||||
if (xmlEntityContainer instanceof EntityContainer) {
|
||||
final ActionImport actionImport = ((EntityContainer) xmlEntityContainer).
|
||||
getActionImport(actionImportName);
|
||||
if (actionImport != null) {
|
||||
result = new EdmActionImportImpl(edm, this, actionImportName, actionImport);
|
||||
}
|
||||
}
|
||||
final ActionImport actionImport = xmlEntityContainer.getActionImport(actionImportName);
|
||||
if (actionImport != null) {
|
||||
result = new EdmActionImportImpl(edm, this, actionImportName, actionImport);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -114,10 +101,7 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
|
|||
|
||||
final FunctionImport functionImport = xmlEntityContainer.getFunctionImport(functionImportName);
|
||||
if (functionImport != null) {
|
||||
if (functionImport instanceof org.apache.olingo.client.api.edm.xml.FunctionImport) {
|
||||
result = new EdmFunctionImportImpl(edm, this, functionImportName,
|
||||
(org.apache.olingo.client.api.edm.xml.FunctionImport) functionImport);
|
||||
}
|
||||
result = new EdmFunctionImportImpl(edm, this, functionImportName, functionImport);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -130,15 +114,11 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
|
|||
for (EntitySet entitySet : localEntitySets) {
|
||||
EdmEntitySet edmSet;
|
||||
final FullQualifiedName entityType = new EdmTypeInfo.Builder().setTypeExpression(entitySet.getEntityType()).
|
||||
setDefaultNamespace(entityContainerName.getNamespace()).build().getFullQualifiedName();
|
||||
if (entitySet instanceof EntitySet) {
|
||||
edmSet = new EdmEntitySetImpl(edm, this, entitySet.getName(), entityType,
|
||||
(EntitySet) entitySet);
|
||||
entitySets.put(edmSet.getName(), edmSet);
|
||||
}
|
||||
setDefaultNamespace(entityContainerName.getNamespace()).build().getFullQualifiedName();
|
||||
edmSet = new EdmEntitySetImpl(edm, this, entitySet.getName(), entityType, entitySet);
|
||||
entitySets.put(edmSet.getName(), edmSet);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -146,22 +126,18 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
|
|||
final List<? extends FunctionImport> localFunctionImports = xmlEntityContainer.getFunctionImports();
|
||||
for (FunctionImport functionImport : localFunctionImports) {
|
||||
EdmFunctionImport edmFunctionImport;
|
||||
if (functionImport instanceof org.apache.olingo.client.api.edm.xml.FunctionImport) {
|
||||
edmFunctionImport = new EdmFunctionImportImpl(edm, this, functionImport.getName(),
|
||||
(org.apache.olingo.client.api.edm.xml.FunctionImport) functionImport);
|
||||
functionImports.put(edmFunctionImport.getName(), edmFunctionImport);
|
||||
}
|
||||
edmFunctionImport = new EdmFunctionImportImpl(edm, this, functionImport.getName(), functionImport);
|
||||
functionImports.put(edmFunctionImport.getName(), edmFunctionImport);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void loadAllSingletons() {
|
||||
final List<Singleton> localSingletons =
|
||||
((EntityContainer) xmlEntityContainer).getSingletons();
|
||||
final List<Singleton> localSingletons = xmlEntityContainer.getSingletons();
|
||||
if (localSingletons != null) {
|
||||
for (Singleton singleton : localSingletons) {
|
||||
singletons.put(singleton.getName(), new EdmSingletonImpl(edm, this, singleton.getName(),
|
||||
new EdmTypeInfo.Builder().
|
||||
new EdmTypeInfo.Builder().
|
||||
setTypeExpression(singleton.getEntityType()).setDefaultNamespace(entityContainerName.getNamespace()).
|
||||
build().getFullQualifiedName(), singleton));
|
||||
}
|
||||
|
@ -170,16 +146,13 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
|
|||
|
||||
@Override
|
||||
protected void loadAllActionImports() {
|
||||
if (xmlEntityContainer instanceof EntityContainer) {
|
||||
final List<ActionImport> localActionImports =
|
||||
((EntityContainer) xmlEntityContainer).getActionImports();
|
||||
if (actionImports != null) {
|
||||
for (ActionImport actionImport : localActionImports) {
|
||||
actionImports.put(actionImport.getName(),
|
||||
new EdmActionImportImpl(edm, this, actionImport.getName(), actionImport));
|
||||
}
|
||||
final List<ActionImport> localActionImports = xmlEntityContainer.getActionImports();
|
||||
if (actionImports != null) {
|
||||
for (ActionImport actionImport : localActionImports) {
|
||||
actionImports.put(actionImport.getName(), new EdmActionImportImpl(edm, this, actionImport.getName(),
|
||||
actionImport));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -194,7 +167,7 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
|
|||
|
||||
@Override
|
||||
public List<EdmAnnotation> getAnnotations() {
|
||||
return helper == null ? Collections.<EdmAnnotation>emptyList() : helper.getAnnotations();
|
||||
return helper == null ? Collections.<EdmAnnotation> emptyList() : helper.getAnnotations();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -24,7 +24,6 @@ import java.util.Map;
|
|||
|
||||
import org.apache.olingo.client.api.edm.xml.EntityType;
|
||||
import org.apache.olingo.client.api.edm.xml.PropertyRef;
|
||||
import org.apache.olingo.client.api.edm.xml.Schema;
|
||||
import org.apache.olingo.commons.api.edm.Edm;
|
||||
import org.apache.olingo.commons.api.edm.EdmAnnotation;
|
||||
import org.apache.olingo.commons.api.edm.EdmEntityType;
|
||||
|
@ -44,20 +43,19 @@ public class EdmEntityTypeImpl extends AbstractEdmEntityType {
|
|||
|
||||
private EdmAnnotationHelper annotationHelper;
|
||||
|
||||
public static EdmEntityTypeImpl getInstance(final Edm edm, final FullQualifiedName fqn,
|
||||
final List<? extends Schema> xmlSchemas, final EntityType entityType) {
|
||||
public static EdmEntityTypeImpl getInstance(final Edm edm, final FullQualifiedName fqn, final EntityType entityType) {
|
||||
|
||||
final FullQualifiedName baseTypeName = entityType.getBaseType() == null
|
||||
? null
|
||||
: new EdmTypeInfo.Builder().setTypeExpression(entityType.getBaseType()).build().getFullQualifiedName();
|
||||
final EdmEntityTypeImpl instance = new EdmEntityTypeImpl(edm, fqn, baseTypeName, xmlSchemas, entityType);
|
||||
final EdmEntityTypeImpl instance = new EdmEntityTypeImpl(edm, fqn, baseTypeName, entityType);
|
||||
instance.baseType = instance.buildBaseType(baseTypeName);
|
||||
|
||||
if (instance.baseType == null) {
|
||||
instance.entityBaseType = null;
|
||||
|
||||
final List<EdmKeyPropertyRef> edmKey;
|
||||
//Abstract EntityTypes do not necessarily have keys
|
||||
// Abstract EntityTypes do not necessarily have keys
|
||||
if (entityType.isAbstractType() && entityType.getKey() == null) {
|
||||
edmKey = new ArrayList<EdmKeyPropertyRef>();
|
||||
} else {
|
||||
|
@ -76,14 +74,11 @@ public class EdmEntityTypeImpl extends AbstractEdmEntityType {
|
|||
}
|
||||
|
||||
private EdmEntityTypeImpl(final Edm edm, final FullQualifiedName fqn, final FullQualifiedName baseTypeName,
|
||||
final List<? extends Schema> xmlSchemas, final EntityType entityType) {
|
||||
final EntityType entityType) {
|
||||
|
||||
super(edm, fqn, baseTypeName, entityType.isHasStream());
|
||||
this.typeHelper = new EdmStructuredTypeHelperImpl(edm, getFullQualifiedName(), xmlSchemas, entityType);
|
||||
if (entityType instanceof EntityType) {
|
||||
this.annotationHelper = new EdmAnnotationHelperImpl(edm,
|
||||
(EntityType) entityType);
|
||||
}
|
||||
this.typeHelper = new EdmStructuredTypeHelperImpl(edm, getFullQualifiedName(), entityType);
|
||||
this.annotationHelper = new EdmAnnotationHelperImpl(edm, entityType);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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
|
||||
*
|
||||
* 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
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
@ -44,9 +44,7 @@ public class EdmParameterImpl extends AbstractEdmParameter {
|
|||
super(edm, parameter.getName(), new FullQualifiedName(parameter.getType()));
|
||||
this.parameter = parameter;
|
||||
this.typeInfo = new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(parameter.getType()).build();
|
||||
if (parameter instanceof Parameter) {
|
||||
this.helper = new EdmAnnotationHelperImpl(edm, (Parameter) parameter);
|
||||
}
|
||||
this.helper = new EdmAnnotationHelperImpl(edm, parameter);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -81,9 +79,8 @@ public class EdmParameterImpl extends AbstractEdmParameter {
|
|||
|
||||
@Override
|
||||
public SRID getSrid() {
|
||||
return (parameter instanceof Parameter)
|
||||
? ((Parameter) parameter).getSrid()
|
||||
: null;
|
||||
return parameter.getSrid();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -93,7 +90,7 @@ public class EdmParameterImpl extends AbstractEdmParameter {
|
|||
|
||||
@Override
|
||||
public List<EdmAnnotation> getAnnotations() {
|
||||
return helper == null ? Collections.<EdmAnnotation>emptyList() : helper.getAnnotations();
|
||||
return helper == null ? Collections.<EdmAnnotation> emptyList() : helper.getAnnotations();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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
|
||||
*
|
||||
* 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
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
@ -48,9 +48,7 @@ public class EdmPropertyImpl extends AbstractEdmProperty {
|
|||
this.structuredTypeName = structuredTypeName;
|
||||
this.property = property;
|
||||
this.typeInfo = new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(property.getType()).build();
|
||||
if (property instanceof Property) {
|
||||
this.helper = new EdmAnnotationHelperImpl(edm, (Property) property);
|
||||
}
|
||||
this.helper = new EdmAnnotationHelperImpl(edm, property);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -100,9 +98,7 @@ public class EdmPropertyImpl extends AbstractEdmProperty {
|
|||
|
||||
@Override
|
||||
public SRID getSrid() {
|
||||
return (property instanceof Property)
|
||||
? ((Property) property).getSrid()
|
||||
: null;
|
||||
return property.getSrid();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -117,7 +113,7 @@ public class EdmPropertyImpl extends AbstractEdmProperty {
|
|||
|
||||
@Override
|
||||
public List<EdmAnnotation> getAnnotations() {
|
||||
return helper == null ? Collections.<EdmAnnotation>emptyList() : helper.getAnnotations();
|
||||
return helper == null ? Collections.<EdmAnnotation> emptyList() : helper.getAnnotations();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -50,10 +50,8 @@ import org.apache.olingo.commons.core.edm.AbstractEdmSchema;
|
|||
|
||||
public class EdmSchemaImpl extends AbstractEdmSchema {
|
||||
|
||||
|
||||
private final Edm edm;
|
||||
|
||||
private final List<Schema> xmlSchemas;
|
||||
|
||||
private final Schema schema;
|
||||
|
||||
|
@ -61,12 +59,11 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
|
|||
|
||||
private List<EdmEntityContainer> entityContainers;
|
||||
|
||||
public EdmSchemaImpl(final Edm edm, final List<Schema> xmlSchemas, final Schema schema) {
|
||||
public EdmSchemaImpl(final Edm edm, final Schema schema) {
|
||||
|
||||
super(schema.getNamespace(), schema.getAlias());
|
||||
|
||||
this.edm = edm;
|
||||
this.xmlSchemas = xmlSchemas;
|
||||
this.schema = schema;
|
||||
}
|
||||
|
||||
|
@ -75,20 +72,9 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
|
|||
if (entityContainers == null) {
|
||||
entityContainerByName = new HashMap<FullQualifiedName, EdmEntityContainer>();
|
||||
|
||||
if (schema instanceof Schema) {
|
||||
entityContainers = super.getEntityContainers();
|
||||
if (getEntityContainer() != null) {
|
||||
entityContainerByName.put(getEntityContainer().getFullQualifiedName(), getEntityContainer());
|
||||
}
|
||||
} else {
|
||||
entityContainers = new ArrayList<EdmEntityContainer>(schema.getEntityContainers().size());
|
||||
for (EntityContainer entityContainer : schema.getEntityContainers()) {
|
||||
final EdmEntityContainer edmContainer = createEntityContainer(entityContainer.getName());
|
||||
if (edmContainer != null) {
|
||||
entityContainers.add(edmContainer);
|
||||
entityContainerByName.put(edmContainer.getFullQualifiedName(), edmContainer);
|
||||
}
|
||||
}
|
||||
entityContainers = super.getEntityContainers();
|
||||
if (getEntityContainer() != null) {
|
||||
entityContainerByName.put(getEntityContainer().getFullQualifiedName(), getEntityContainer());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -106,7 +92,7 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
|
|||
if (defaultContainer != null) {
|
||||
final FullQualifiedName entityContainerName =
|
||||
new FullQualifiedName(schema.getNamespace(), defaultContainer.getName());
|
||||
return new EdmEntityContainerImpl(edm, entityContainerName, defaultContainer, xmlSchemas);
|
||||
return new EdmEntityContainerImpl(edm, entityContainerName, defaultContainer);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -123,14 +109,12 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
|
|||
@Override
|
||||
protected List<EdmTypeDefinition> createTypeDefinitions() {
|
||||
final List<EdmTypeDefinition> typeDefinitions = new ArrayList<EdmTypeDefinition>();
|
||||
if (schema instanceof Schema) {
|
||||
final List<TypeDefinition> providerTypeDefinitions =
|
||||
((Schema) schema).getTypeDefinitions();
|
||||
if (providerTypeDefinitions != null) {
|
||||
for (TypeDefinition def : providerTypeDefinitions) {
|
||||
typeDefinitions.add(
|
||||
new EdmTypeDefinitionImpl(edm, new FullQualifiedName(namespace, def.getName()), def));
|
||||
}
|
||||
final List<TypeDefinition> providerTypeDefinitions =
|
||||
schema.getTypeDefinitions();
|
||||
if (providerTypeDefinitions != null) {
|
||||
for (TypeDefinition def : providerTypeDefinitions) {
|
||||
typeDefinitions.add(
|
||||
new EdmTypeDefinitionImpl(edm, new FullQualifiedName(namespace, def.getName()), def));
|
||||
}
|
||||
}
|
||||
return typeDefinitions;
|
||||
|
@ -156,7 +140,7 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
|
|||
if (providerEntityTypes != null) {
|
||||
for (EntityType entityType : providerEntityTypes) {
|
||||
entityTypes.add(EdmEntityTypeImpl.getInstance(edm,
|
||||
new FullQualifiedName(namespace, entityType.getName()), xmlSchemas, entityType));
|
||||
new FullQualifiedName(namespace, entityType.getName()), entityType));
|
||||
}
|
||||
}
|
||||
return entityTypes;
|
||||
|
@ -169,7 +153,7 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
|
|||
if (providerComplexTypes != null) {
|
||||
for (ComplexType complexType : providerComplexTypes) {
|
||||
complexTypes.add(EdmComplexTypeImpl.getInstance(edm, new FullQualifiedName(namespace, complexType.getName()),
|
||||
xmlSchemas, complexType));
|
||||
complexType));
|
||||
}
|
||||
}
|
||||
return complexTypes;
|
||||
|
@ -178,12 +162,10 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
|
|||
@Override
|
||||
protected List<EdmAction> createActions() {
|
||||
final List<EdmAction> actions = new ArrayList<EdmAction>();
|
||||
if (schema instanceof Schema) {
|
||||
final List<Action> providerActions = ((Schema) schema).getActions();
|
||||
if (providerActions != null) {
|
||||
for (Action action : providerActions) {
|
||||
actions.add(EdmActionImpl.getInstance(edm, new FullQualifiedName(namespace, action.getName()), action));
|
||||
}
|
||||
final List<Action> providerActions = schema.getActions();
|
||||
if (providerActions != null) {
|
||||
for (Action action : providerActions) {
|
||||
actions.add(EdmActionImpl.getInstance(edm, new FullQualifiedName(namespace, action.getName()), action));
|
||||
}
|
||||
}
|
||||
return actions;
|
||||
|
@ -192,15 +174,13 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
|
|||
@Override
|
||||
protected List<EdmFunction> createFunctions() {
|
||||
final List<EdmFunction> functions = new ArrayList<EdmFunction>();
|
||||
if (schema instanceof Schema) {
|
||||
final List<Function> providerFunctions = ((Schema) schema).getFunctions();
|
||||
if (providerFunctions != null) {
|
||||
for (Function function : providerFunctions) {
|
||||
functions.add(
|
||||
EdmFunctionImpl.getInstance(edm, new FullQualifiedName(namespace, function.getName()), function));
|
||||
}
|
||||
return functions;
|
||||
final List<Function> providerFunctions = schema.getFunctions();
|
||||
if (providerFunctions != null) {
|
||||
for (Function function : providerFunctions) {
|
||||
functions.add(
|
||||
EdmFunctionImpl.getInstance(edm, new FullQualifiedName(namespace, function.getName()), function));
|
||||
}
|
||||
return functions;
|
||||
}
|
||||
return functions;
|
||||
}
|
||||
|
@ -208,12 +188,10 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
|
|||
@Override
|
||||
protected List<EdmTerm> createTerms() {
|
||||
final List<EdmTerm> terms = new ArrayList<EdmTerm>();
|
||||
if (schema instanceof Schema) {
|
||||
final List<Term> providerTerms = ((Schema) schema).getTerms();
|
||||
if (providerTerms != null) {
|
||||
for (Term term : providerTerms) {
|
||||
terms.add(new EdmTermImpl(edm, getNamespace(), term));
|
||||
}
|
||||
final List<Term> providerTerms = schema.getTerms();
|
||||
if (providerTerms != null) {
|
||||
for (Term term : providerTerms) {
|
||||
terms.add(new EdmTermImpl(edm, getNamespace(), term));
|
||||
}
|
||||
}
|
||||
return terms;
|
||||
|
@ -222,13 +200,11 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
|
|||
@Override
|
||||
protected List<EdmAnnotations> createAnnotationGroups() {
|
||||
final List<EdmAnnotations> annotationGroups = new ArrayList<EdmAnnotations>();
|
||||
if (schema instanceof Schema) {
|
||||
final List<Annotations> providerAnnotations =
|
||||
((Schema) schema).getAnnotationGroups();
|
||||
if (providerAnnotations != null) {
|
||||
for (Annotations annotationGroup : providerAnnotations) {
|
||||
annotationGroups.add(new EdmAnnotationsImpl(edm, this, annotationGroup));
|
||||
}
|
||||
final List<Annotations> providerAnnotations =
|
||||
schema.getAnnotationGroups();
|
||||
if (providerAnnotations != null) {
|
||||
for (Annotations annotationGroup : providerAnnotations) {
|
||||
annotationGroups.add(new EdmAnnotationsImpl(edm, this, annotationGroup));
|
||||
}
|
||||
}
|
||||
return annotationGroups;
|
||||
|
@ -237,13 +213,11 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
|
|||
@Override
|
||||
protected List<EdmAnnotation> createAnnotations() {
|
||||
final List<EdmAnnotation> annotations = new ArrayList<EdmAnnotation>();
|
||||
if (schema instanceof Schema) {
|
||||
final List<Annotation> providerAnnotations =
|
||||
((Schema) schema).getAnnotations();
|
||||
if (providerAnnotations != null) {
|
||||
for (Annotation annotation : providerAnnotations) {
|
||||
annotations.add(new EdmAnnotationImpl(edm, annotation));
|
||||
}
|
||||
final List<Annotation> providerAnnotations =
|
||||
schema.getAnnotations();
|
||||
if (providerAnnotations != null) {
|
||||
for (Annotation annotation : providerAnnotations) {
|
||||
annotations.add(new EdmAnnotationImpl(edm, annotation));
|
||||
}
|
||||
}
|
||||
return annotations;
|
||||
|
|
|
@ -19,14 +19,12 @@
|
|||
package org.apache.olingo.client.core.edm;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.olingo.client.api.edm.xml.ComplexType;
|
||||
import org.apache.olingo.client.api.edm.xml.EntityType;
|
||||
import org.apache.olingo.client.api.edm.xml.NavigationProperty;
|
||||
import org.apache.olingo.client.api.edm.xml.Property;
|
||||
import org.apache.olingo.client.api.edm.xml.Schema;
|
||||
import org.apache.olingo.client.api.edm.xml.StructuralType;
|
||||
import org.apache.olingo.commons.api.edm.Edm;
|
||||
import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
|
||||
|
@ -47,7 +45,7 @@ public class EdmStructuredTypeHelperImpl implements EdmStructuredTypeHelper {
|
|||
private Map<String, EdmNavigationProperty> navigationProperties;
|
||||
|
||||
public EdmStructuredTypeHelperImpl(final Edm edm, final FullQualifiedName structuredTypeName,
|
||||
final List<? extends Schema> xmlSchemas, final StructuralType structuralType) {
|
||||
final StructuralType structuralType) {
|
||||
|
||||
this.edm = edm;
|
||||
this.structuredTypeName = structuredTypeName;
|
||||
|
@ -70,11 +68,8 @@ public class EdmStructuredTypeHelperImpl implements EdmStructuredTypeHelper {
|
|||
if (navigationProperties == null) {
|
||||
navigationProperties = new LinkedHashMap<String, EdmNavigationProperty>();
|
||||
for (NavigationProperty navigationProperty : structuralType.getNavigationProperties()) {
|
||||
if (navigationProperty instanceof org.apache.olingo.client.api.edm.xml.NavigationProperty) {
|
||||
navigationProperties.put(navigationProperty.getName(), new EdmNavigationPropertyImpl(
|
||||
edm, structuredTypeName,
|
||||
(org.apache.olingo.client.api.edm.xml.NavigationProperty) navigationProperty));
|
||||
}
|
||||
navigationProperties.put(navigationProperty.getName(), new EdmNavigationPropertyImpl(
|
||||
edm, structuredTypeName, navigationProperty));
|
||||
}
|
||||
}
|
||||
return navigationProperties;
|
||||
|
@ -83,9 +78,9 @@ public class EdmStructuredTypeHelperImpl implements EdmStructuredTypeHelper {
|
|||
@Override
|
||||
public boolean isOpenType() {
|
||||
boolean isOpen = false;
|
||||
if(structuralType instanceof ComplexType){
|
||||
if (structuralType instanceof ComplexType) {
|
||||
isOpen = ((ComplexType) structuralType).isOpenType();
|
||||
}else if(structuralType instanceof EntityType){
|
||||
} else if (structuralType instanceof EntityType) {
|
||||
isOpen = ((EntityType) structuralType).isOpenType();
|
||||
}
|
||||
return isOpen;
|
||||
|
@ -94,9 +89,9 @@ public class EdmStructuredTypeHelperImpl implements EdmStructuredTypeHelper {
|
|||
@Override
|
||||
public boolean isAbstract() {
|
||||
boolean isAbstract = false;
|
||||
if(structuralType instanceof ComplexType){
|
||||
if (structuralType instanceof ComplexType) {
|
||||
isAbstract = ((ComplexType) structuralType).isAbstractType();
|
||||
}else if(structuralType instanceof EntityType){
|
||||
} else if (structuralType instanceof EntityType) {
|
||||
isAbstract = ((EntityType) structuralType).isAbstractType();
|
||||
}
|
||||
return isAbstract;
|
||||
|
|
|
@ -74,7 +74,7 @@ public class ComplexTypeImpl extends AbstractStructuralType implements ComplexTy
|
|||
|
||||
@Override
|
||||
public Property getProperty(final String name) {
|
||||
return (Property) super.getProperty(name);
|
||||
return super.getProperty(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -84,7 +84,7 @@ public class ComplexTypeImpl extends AbstractStructuralType implements ComplexTy
|
|||
|
||||
@Override
|
||||
public NavigationProperty getNavigationProperty(final String name) {
|
||||
return (NavigationProperty) super.getNavigationProperty(name);
|
||||
return super.getNavigationProperty(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -97,7 +97,7 @@ public class EntityTypeImpl extends AbstractStructuralType implements EntityType
|
|||
|
||||
@Override
|
||||
public Property getProperty(final String name) {
|
||||
return (Property) super.getProperty(name);
|
||||
return super.getProperty(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -107,7 +107,7 @@ public class EntityTypeImpl extends AbstractStructuralType implements EntityType
|
|||
|
||||
@Override
|
||||
public NavigationProperty getNavigationProperty(final String name) {
|
||||
return (NavigationProperty) super.getNavigationProperty(name);
|
||||
return super.getNavigationProperty(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -69,6 +69,6 @@ public class XMLMetadataImpl extends AbstractEdmItem implements XMLMetadata {
|
|||
|
||||
@Override
|
||||
public List<Reference> getReferences() {
|
||||
return ((Edmx) this.edmx).getReferences();
|
||||
return this.edmx.getReferences();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,6 +65,7 @@ public class ProxyWrappingHttpClientFactory implements WrappingHttpClientFactory
|
|||
this.wrapped = wrapped;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DefaultHttpClientFactory getWrappedHttpClientFactory() {
|
||||
return this.wrapped;
|
||||
}
|
||||
|
|
|
@ -70,18 +70,22 @@ public class ClientODataDeserializerImpl implements ClientODataDeserializer {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResWrap<EntitySet> toEntitySet(final InputStream input) throws ODataDeserializerException {
|
||||
return deserializer.toEntitySet(input);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResWrap<Entity> toEntity(final InputStream input) throws ODataDeserializerException {
|
||||
return deserializer.toEntity(input);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResWrap<Property> toProperty(final InputStream input) throws ODataDeserializerException {
|
||||
return deserializer.toProperty(input);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ODataError toError(final InputStream input) throws ODataDeserializerException {
|
||||
return deserializer.toError(input);
|
||||
}
|
||||
|
|
|
@ -118,11 +118,11 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
|
||||
@Override
|
||||
public boolean add(final ODataEntity entity, final ODataProperty property) {
|
||||
return ((ODataEntity) entity).getProperties().add((ODataProperty) property);
|
||||
return entity.getProperties().add(property);
|
||||
}
|
||||
|
||||
protected boolean add(final ODataEntitySet entitySet, final ODataEntity entity) {
|
||||
return ((ODataEntitySet) entitySet).getEntities().add((ODataEntity) entity);
|
||||
return entitySet.getEntities().add(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -212,8 +212,8 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
entitySet.getEntities().add(getEntity(entity));
|
||||
}
|
||||
|
||||
entitySet.setDeltaLink(((ODataEntitySet) odataEntitySet).getDeltaLink());
|
||||
annotations((ODataEntitySet) odataEntitySet, entitySet);
|
||||
entitySet.setDeltaLink(odataEntitySet.getDeltaLink());
|
||||
annotations(odataEntitySet, entitySet);
|
||||
return entitySet;
|
||||
}
|
||||
|
||||
|
@ -241,7 +241,7 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
for (Link link : linked.getNavigationLinks()) {
|
||||
final ODataLink odataLink = odataLinked.getNavigationLink(link.getTitle());
|
||||
if (!(odataLink instanceof ODataInlineEntity) && !(odataLink instanceof ODataInlineEntitySet)) {
|
||||
annotations((ODataLink) odataLink, link);
|
||||
annotations(odataLink, link);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -294,8 +294,8 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
entity.getProperties().add(getProperty(property));
|
||||
}
|
||||
|
||||
entity.setId(((ODataEntity) odataEntity).getId());
|
||||
annotations((ODataEntity) odataEntity, entity);
|
||||
entity.setId(odataEntity.getId());
|
||||
annotations(odataEntity, entity);
|
||||
return entity;
|
||||
}
|
||||
|
||||
|
@ -327,7 +327,7 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
|
||||
@Override
|
||||
public Property getProperty(final ODataProperty property) {
|
||||
final ODataProperty _property = (ODataProperty) property;
|
||||
final ODataProperty _property = property;
|
||||
|
||||
final Property propertyResource = new PropertyImpl();
|
||||
propertyResource.setName(_property.getName());
|
||||
|
@ -340,8 +340,9 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
protected Object getValue(final ODataValue value) {
|
||||
Object valueResource = null;
|
||||
if (value == null) {
|
||||
valueResource = null;
|
||||
} else if (value.isEnum()) {
|
||||
return null;
|
||||
}
|
||||
if (value.isEnum()) {
|
||||
valueResource = value.asEnum().getValue();
|
||||
} else if (value.isPrimitive()) {
|
||||
valueResource = value.asPrimitive().toValue();
|
||||
|
@ -386,8 +387,8 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
}
|
||||
}
|
||||
|
||||
final ODataAnnotation odataAnnotation = new ODataAnnotationImpl(annotation.getTerm(),
|
||||
(org.apache.olingo.commons.api.domain.ODataValue) getODataValue(fqn, annotation, null, null));
|
||||
final ODataAnnotation odataAnnotation =
|
||||
new ODataAnnotationImpl(annotation.getTerm(), getODataValue(fqn, annotation, null, null));
|
||||
odataAnnotatable.getAnnotations().add(odataAnnotation);
|
||||
}
|
||||
}
|
||||
|
@ -398,7 +399,9 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
final StringWriter writer = new StringWriter();
|
||||
try {
|
||||
client.getSerializer(ODataFormat.JSON).write(writer, resource.getPayload());
|
||||
} catch (final ODataSerializerException e) {}
|
||||
} catch (final ODataSerializerException e) {
|
||||
LOG.debug("EntitySet -> ODataEntitySet:\n{}", writer.toString());
|
||||
}
|
||||
writer.flush();
|
||||
LOG.debug("EntitySet -> ODataEntitySet:\n{}", writer.toString());
|
||||
}
|
||||
|
@ -465,9 +468,9 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
}
|
||||
}
|
||||
|
||||
for (org.apache.olingo.commons.api.domain.ODataLink link : odataLinked.getNavigationLinks()) {
|
||||
for (ODataLink link : odataLinked.getNavigationLinks()) {
|
||||
if (!(link instanceof ODataInlineEntity) && !(link instanceof ODataInlineEntitySet)) {
|
||||
odataAnnotations(linked.getNavigationLink(link.getName()), (ODataAnnotatable) link);
|
||||
odataAnnotations(linked.getNavigationLink(link.getName()), link);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -593,7 +596,9 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
final StringWriter writer = new StringWriter();
|
||||
try {
|
||||
client.getSerializer(ODataFormat.JSON).write(writer, resource.getPayload());
|
||||
} catch (final ODataSerializerException e) {}
|
||||
} catch (final ODataSerializerException e) {
|
||||
LOG.debug("EntityResource -> ODataEntity:\n{}", writer.toString());
|
||||
}
|
||||
writer.flush();
|
||||
LOG.debug("EntityResource -> ODataEntity:\n{}", writer.toString());
|
||||
}
|
||||
|
@ -743,11 +748,11 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
|
||||
ODataValue value = null;
|
||||
if (valuable.isEnum()) {
|
||||
value = ((ODataClient) client).getObjectFactory().newEnumValue(type == null ? null : type.toString(),
|
||||
value = client.getObjectFactory().newEnumValue(type == null ? null : type.toString(),
|
||||
valuable.asEnum().toString());
|
||||
} else if (valuable.isComplex()) {
|
||||
final ODataComplexValue lcValue =
|
||||
((ODataClient) client).getObjectFactory().newComplexValue(type == null ? null : type.toString());
|
||||
client.getObjectFactory().newComplexValue(type == null ? null : type.toString());
|
||||
|
||||
EdmComplexType edmType = null;
|
||||
if (client instanceof EdmEnabledODataClient && type != null) {
|
||||
|
@ -806,8 +811,8 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
: EdmPrimitiveTypeKind.valueOfFQN(type.toString())).
|
||||
build();
|
||||
} else if (valuable.isComplex()) {
|
||||
final ODataComplexValue cValue = (ODataComplexValue) client.getObjectFactory().
|
||||
newComplexValue(type == null ? null : type.toString());
|
||||
final ODataComplexValue cValue =
|
||||
client.getObjectFactory().newComplexValue(type == null ? null : type.toString());
|
||||
|
||||
if (!valuable.isNull()) {
|
||||
EdmComplexType edmType = null;
|
||||
|
@ -853,8 +858,8 @@ public class ODataBinderImpl implements ODataBinder {
|
|||
final URI next = resource.getPayload().getNext();
|
||||
|
||||
final ODataDelta delta = next == null
|
||||
? ((ODataClient) client).getObjectFactory().newDelta()
|
||||
: ((ODataClient) client).getObjectFactory().newDelta(URIUtils.getURI(base, next.toASCIIString()));
|
||||
? client.getObjectFactory().newDelta()
|
||||
: client.getObjectFactory().newDelta(URIUtils.getURI(base, next.toASCIIString()));
|
||||
|
||||
if (resource.getPayload().getCount() != null) {
|
||||
delta.setCount(resource.getPayload().getCount());
|
||||
|
|
|
@ -158,18 +158,18 @@ public class ODataReaderImpl implements ODataReader {
|
|||
@Override
|
||||
public ODataEntitySet readEntitySet(final InputStream input, final ODataFormat format)
|
||||
throws ODataDeserializerException {
|
||||
return ((ODataClient) client).getBinder().getODataEntitySet(client.getDeserializer(format).toEntitySet(input));
|
||||
return client.getBinder().getODataEntitySet(client.getDeserializer(format).toEntitySet(input));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ODataEntity readEntity(final InputStream input, final ODataFormat format)
|
||||
throws ODataDeserializerException {
|
||||
return ((ODataClient) client).getBinder().getODataEntity(client.getDeserializer(format).toEntity(input));
|
||||
return client.getBinder().getODataEntity(client.getDeserializer(format).toEntity(input));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ODataProperty readProperty(final InputStream input, final ODataFormat format)
|
||||
throws ODataDeserializerException {
|
||||
return ((ODataClient) client).getBinder().getODataProperty(client.getDeserializer(format).toProperty(input));
|
||||
return client.getBinder().getODataProperty(client.getDeserializer(format).toProperty(input));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ public class ODataWriterImpl implements ODataWriter {
|
|||
|
||||
return new ByteArrayInputStream(output.toByteArray());
|
||||
} finally {
|
||||
IOUtils.closeQuietly(output);
|
||||
IOUtils.closeQuietly(writer);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,7 @@ public class ODataWriterImpl implements ODataWriter {
|
|||
|
||||
return new ByteArrayInputStream(output.toByteArray());
|
||||
} finally {
|
||||
IOUtils.closeQuietly(output);
|
||||
IOUtils.closeQuietly(writer);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -106,7 +106,7 @@ public class ODataWriterImpl implements ODataWriter {
|
|||
|
||||
return new ByteArrayInputStream(output.toByteArray());
|
||||
} finally {
|
||||
IOUtils.closeQuietly(output);
|
||||
IOUtils.closeQuietly(writer);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -125,7 +125,7 @@ public class ODataWriterImpl implements ODataWriter {
|
|||
|
||||
return new ByteArrayInputStream(output.toByteArray());
|
||||
} finally {
|
||||
IOUtils.closeQuietly(output);
|
||||
IOUtils.closeQuietly(writer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -229,8 +229,8 @@ public final class URIUtils {
|
|||
: (obj instanceof Boolean)
|
||||
? BooleanUtils.toStringTrueFalse((Boolean) obj)
|
||||
: (obj instanceof UUID)
|
||||
? obj.toString()
|
||||
|
||||
? obj.toString()
|
||||
|
||||
: (obj instanceof byte[])
|
||||
? EdmBinary.getInstance().toUriLiteral(Hex.encodeHexString((byte[]) obj))
|
||||
: (obj instanceof Timestamp)
|
||||
|
@ -264,7 +264,11 @@ public final class URIUtils {
|
|||
}
|
||||
} catch (Exception e) {
|
||||
LOG.warn("While escaping '{}', using toString()", obj, e);
|
||||
value = obj.toString();
|
||||
if (obj == null) {
|
||||
value = "null";
|
||||
} else {
|
||||
value = obj.toString();
|
||||
}
|
||||
}
|
||||
|
||||
return value;
|
||||
|
@ -346,10 +350,8 @@ public final class URIUtils {
|
|||
value = param.getValue().asComplex().asJavaMap();
|
||||
} else if (param.getValue().isCollection()) {
|
||||
value = param.getValue().asCollection().asJavaCollection();
|
||||
} else if (param.getValue() instanceof org.apache.olingo.commons.api.domain.ODataValue
|
||||
&& ((org.apache.olingo.commons.api.domain.ODataValue) param.getValue()).isEnum()) {
|
||||
|
||||
value = ((org.apache.olingo.commons.api.domain.ODataValue) param.getValue()).asEnum().toString();
|
||||
} else if (param.getValue().isEnum()) {
|
||||
value = param.getValue().asEnum().toString();
|
||||
}
|
||||
|
||||
inlineParams.append(URIUtils.escape(value)).append(',');
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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
|
||||
*
|
||||
* 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
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
@ -45,7 +45,6 @@ import org.apache.olingo.commons.api.domain.ODataValue;
|
|||
import org.apache.olingo.commons.api.edm.Edm;
|
||||
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
|
||||
import org.apache.olingo.commons.api.format.ODataFormat;
|
||||
import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
|
||||
import org.apache.olingo.commons.core.edm.primitivetype.EdmDateTimeOffset;
|
||||
import org.apache.olingo.commons.core.edm.primitivetype.EdmDuration;
|
||||
import org.junit.Ignore;
|
||||
|
@ -79,10 +78,10 @@ public class EntityTest extends AbstractTest {
|
|||
};
|
||||
}
|
||||
|
||||
private void singleton(final ODataFormat format) throws ODataDeserializerException {
|
||||
private void singleton(final ODataFormat format) throws Exception {
|
||||
final InputStream input = getClass().getResourceAsStream("VipCustomer." + getSuffix(format));
|
||||
final ODataEntity entity = getClient().getBinder().getODataEntity(
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
assertNotNull(entity);
|
||||
|
||||
assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
|
||||
|
@ -116,15 +115,16 @@ public class EntityTest extends AbstractTest {
|
|||
|
||||
assertEquals(2, entity.getOperations().size());
|
||||
assertEquals("#Microsoft.Test.OData.Services.ODataWCFService.ResetAddress",
|
||||
entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.ResetAddress").getMetadataAnchor());
|
||||
entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.ResetAddress").getMetadataAnchor());
|
||||
assertEquals("#Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress",
|
||||
entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress").getMetadataAnchor());
|
||||
entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetHomeAddress").getMetadataAnchor());
|
||||
|
||||
// operations won't get serialized
|
||||
entity.getOperations().clear();
|
||||
final ODataEntity written = getClient().getBinder().getODataEntity(
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
assertEquals(entity, written);
|
||||
input.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -137,10 +137,10 @@ public class EntityTest extends AbstractTest {
|
|||
singleton(ODataFormat.JSON_FULL_METADATA);
|
||||
}
|
||||
|
||||
private void withEnums(final ODataFormat format) throws ODataDeserializerException {
|
||||
private void withEnums(final ODataFormat format) throws Exception {
|
||||
final InputStream input = getClass().getResourceAsStream("Products_5." + getSuffix(format));
|
||||
final ODataEntity entity = getClient().getBinder().getODataEntity(
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
assertNotNull(entity);
|
||||
|
||||
final ODataProperty skinColor = entity.getProperty("SkinColor");
|
||||
|
@ -158,8 +158,9 @@ public class EntityTest extends AbstractTest {
|
|||
// operations won't get serialized
|
||||
entity.getOperations().clear();
|
||||
final ODataEntity written = getClient().getBinder().getODataEntity(
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
assertEquals(entity, written);
|
||||
input.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -172,11 +173,11 @@ public class EntityTest extends AbstractTest {
|
|||
withEnums(ODataFormat.JSON_FULL_METADATA);
|
||||
}
|
||||
|
||||
private void withInlineEntitySet(final ODataFormat format) throws ODataDeserializerException {
|
||||
private void withInlineEntitySet(final ODataFormat format) throws Exception {
|
||||
final InputStream input = getClass().getResourceAsStream(
|
||||
"Accounts_101_expand_MyPaymentInstruments." + getSuffix(format));
|
||||
"Accounts_101_expand_MyPaymentInstruments." + getSuffix(format));
|
||||
final ODataEntity entity = getClient().getBinder().getODataEntity(
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
assertNotNull(entity);
|
||||
|
||||
final ODataLink instruments = entity.getNavigationLink("MyPaymentInstruments");
|
||||
|
@ -192,8 +193,9 @@ public class EntityTest extends AbstractTest {
|
|||
// operations won't get serialized
|
||||
entity.getOperations().clear();
|
||||
final ODataEntity written = getClient().getBinder().getODataEntity(
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
assertEquals(entity, written);
|
||||
input.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -206,11 +208,11 @@ public class EntityTest extends AbstractTest {
|
|||
withInlineEntitySet(ODataFormat.JSON_FULL_METADATA);
|
||||
}
|
||||
|
||||
private void mediaEntity(final ODataFormat format) throws ODataDeserializerException {
|
||||
private void mediaEntity(final ODataFormat format) throws Exception {
|
||||
final InputStream input = getClass().getResourceAsStream(
|
||||
"Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7." + getSuffix(format));
|
||||
"Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7." + getSuffix(format));
|
||||
final ODataEntity entity = getClient().getBinder().getODataEntity(
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
assertNotNull(entity);
|
||||
|
||||
assertTrue(entity.isMediaEntity());
|
||||
|
@ -218,8 +220,9 @@ public class EntityTest extends AbstractTest {
|
|||
assertEquals("\"8zOOKKvgOtptr4gt8IrnapX3jds=\"", entity.getMediaETag());
|
||||
|
||||
final ODataEntity written = getClient().getBinder().getODataEntity(
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
assertEquals(entity, written);
|
||||
input.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -232,10 +235,10 @@ public class EntityTest extends AbstractTest {
|
|||
mediaEntity(ODataFormat.JSON_FULL_METADATA);
|
||||
}
|
||||
|
||||
private void withStream(final ODataFormat format) throws ODataDeserializerException {
|
||||
private void withStream(final ODataFormat format) throws Exception {
|
||||
final InputStream input = getClass().getResourceAsStream("PersonDetails_1." + getSuffix(format));
|
||||
final ODataEntity entity = getClient().getBinder().getODataEntity(
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
assertNotNull(entity);
|
||||
|
||||
assertFalse(entity.isMediaEntity());
|
||||
|
@ -244,8 +247,9 @@ public class EntityTest extends AbstractTest {
|
|||
assertNotNull(editMedia);
|
||||
|
||||
final ODataEntity written = getClient().getBinder().getODataEntity(
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
assertEquals(entity, written);
|
||||
input.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -258,17 +262,18 @@ public class EntityTest extends AbstractTest {
|
|||
withStream(ODataFormat.JSON_FULL_METADATA);
|
||||
}
|
||||
|
||||
private void ref(final ODataFormat format) throws ODataDeserializerException {
|
||||
private void ref(final ODataFormat format) throws Exception {
|
||||
final InputStream input = getClass().getResourceAsStream("entityReference." + getSuffix(format));
|
||||
final ODataEntity entity = getClient().getBinder().getODataEntity(
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
assertNotNull(entity);
|
||||
|
||||
assertNotNull(entity.getId());
|
||||
|
||||
final ODataEntity written = getClient().getBinder().getODataEntity(
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
assertEquals(entity, written);
|
||||
input.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -281,10 +286,10 @@ public class EntityTest extends AbstractTest {
|
|||
ref(ODataFormat.JSON);
|
||||
}
|
||||
|
||||
private void complexNavigationProperties(final ODataFormat format) throws ODataDeserializerException {
|
||||
private void complexNavigationProperties(final ODataFormat format) throws Exception {
|
||||
final InputStream input = getClass().getResourceAsStream("entity.withcomplexnavigation." + getSuffix(format));
|
||||
final ODataEntity entity = getClient().getBinder().getODataEntity(
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
assertNotNull(entity);
|
||||
|
||||
final ODataComplexValue addressValue = entity.getProperty("Address").getComplexValue();
|
||||
|
@ -294,8 +299,9 @@ public class EntityTest extends AbstractTest {
|
|||
// ETag is not serialized
|
||||
entity.setETag(null);
|
||||
final ODataEntity written = getClient().getBinder().getODataEntity(
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
assertEquals(entity, written);
|
||||
input.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -308,10 +314,10 @@ public class EntityTest extends AbstractTest {
|
|||
complexNavigationProperties(ODataFormat.JSON);
|
||||
}
|
||||
|
||||
private void annotated(final ODataFormat format) throws EdmPrimitiveTypeException, ODataDeserializerException {
|
||||
private void annotated(final ODataFormat format) throws EdmPrimitiveTypeException, Exception {
|
||||
final InputStream input = getClass().getResourceAsStream("annotated." + getSuffix(format));
|
||||
final ODataEntity entity = getClient().getBinder().getODataEntity(
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
getClient().getDeserializer(format).toEntity(input));
|
||||
assertNotNull(entity);
|
||||
|
||||
assertFalse(entity.getAnnotations().isEmpty());
|
||||
|
@ -329,18 +335,19 @@ public class EntityTest extends AbstractTest {
|
|||
assertTrue(annotation.hasComplexValue());
|
||||
|
||||
final ODataLink orders = entity.getNavigationLink("Orders");
|
||||
assertFalse(((org.apache.olingo.commons.api.domain.ODataLink) orders).getAnnotations().isEmpty());
|
||||
assertFalse(orders.getAnnotations().isEmpty());
|
||||
|
||||
annotation = ((org.apache.olingo.commons.api.domain.ODataLink) orders).getAnnotations().get(0);
|
||||
annotation = orders.getAnnotations().get(0);
|
||||
assertEquals("com.contoso.display.style", annotation.getTerm());
|
||||
assertEquals("com.contoso.display.styleType", annotation.getValue().getTypeName());
|
||||
assertTrue(annotation.hasComplexValue());
|
||||
assertEquals(2,
|
||||
annotation.getValue().asComplex().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
|
||||
annotation.getValue().asComplex().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
|
||||
|
||||
final ODataEntity written = getClient().getBinder().getODataEntity(
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
|
||||
assertEquals(entity, written);
|
||||
input.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -355,14 +362,15 @@ public class EntityTest extends AbstractTest {
|
|||
annotated(ODataFormat.JSON);
|
||||
}
|
||||
|
||||
private void derived(final ODataClient client, final ODataFormat format) throws ODataDeserializerException {
|
||||
private void derived(final ODataClient client, final ODataFormat format) throws Exception {
|
||||
final InputStream input = getClass().getResourceAsStream("Customer." + getSuffix(format));
|
||||
final ODataEntity entity = client.getBinder().getODataEntity(client.getDeserializer(format).toEntity(input));
|
||||
assertNotNull(entity);
|
||||
|
||||
assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
|
||||
assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
|
||||
((ODataValuable) entity.getProperty("HomeAddress")).getValue().getTypeName());
|
||||
((ODataValuable) entity.getProperty("HomeAddress")).getValue().getTypeName());
|
||||
input.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -29,47 +29,4 @@ public interface ODataProperty extends ODataInvokeResult, ODataAnnotatable, ODat
|
|||
* @return property name.
|
||||
*/
|
||||
String getName();
|
||||
|
||||
/**
|
||||
* Returns property value.
|
||||
*
|
||||
* @return property value.
|
||||
*/
|
||||
ODataValue getValue();
|
||||
|
||||
/**
|
||||
* Checks if has null value.
|
||||
*
|
||||
* @return 'TRUE' if has null value; 'FALSE' otherwise.
|
||||
*/
|
||||
boolean hasNullValue();
|
||||
|
||||
/**
|
||||
* Checks if has primitive value.
|
||||
*
|
||||
* @return 'TRUE' if has primitive value; 'FALSE' otherwise.
|
||||
*/
|
||||
boolean hasPrimitiveValue();
|
||||
|
||||
/**
|
||||
* Gets primitive value.
|
||||
*
|
||||
* @return primitive value if exists; null otherwise.
|
||||
*/
|
||||
ODataPrimitiveValue getPrimitiveValue();
|
||||
|
||||
/**
|
||||
* Checks if has collection value.
|
||||
*
|
||||
* @return 'TRUE' if has collection value; 'FALSE' otherwise.
|
||||
*/
|
||||
boolean hasCollectionValue();
|
||||
|
||||
/**
|
||||
* Checks if has complex value.
|
||||
*
|
||||
* @return 'TRUE' if has complex value; 'FALSE' otherwise.
|
||||
*/
|
||||
boolean hasComplexValue();
|
||||
|
||||
}
|
||||
|
|
|
@ -203,7 +203,7 @@ public class ExpressionVisitorImpl implements ExpressionVisitor<VisitorOperand>
|
|||
}
|
||||
}
|
||||
|
||||
return new TypedOperand(((Property) currentProperty).getValue(), currentType, currentEdmProperty);
|
||||
return new TypedOperand(currentProperty.getValue(), currentType, currentEdmProperty);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -315,7 +315,7 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
|
|||
|
||||
for (Object arrayElement : asCollection) {
|
||||
assertTrue(arrayElement instanceof ComplexValue);
|
||||
List<Property> castedArrayElement = (List<Property>) ((ComplexValue) arrayElement).getValue();
|
||||
List<Property> castedArrayElement = ((ComplexValue) arrayElement).getValue();
|
||||
assertEquals(2, castedArrayElement.size());
|
||||
}
|
||||
}
|
||||
|
@ -340,7 +340,7 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
|
|||
|
||||
Property complexProperty = entity.getProperty("PropertyComp");
|
||||
assertEquals(ValueType.COMPLEX, complexProperty.getValueType());
|
||||
List<Property> complexPropertyValues = (List<Property>) complexProperty.asComplex().getValue();
|
||||
List<Property> complexPropertyValues = complexProperty.asComplex().getValue();
|
||||
assertEquals(1, complexPropertyValues.size());
|
||||
|
||||
Property property = entity.getProperty("CollPropertyComp");
|
||||
|
@ -352,7 +352,7 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
|
|||
|
||||
for (Object arrayElement : asCollection) {
|
||||
assertTrue(arrayElement instanceof ComplexValue);
|
||||
List<Property> castedArrayElement = (List<Property>) ((ComplexValue) arrayElement).getValue();
|
||||
List<Property> castedArrayElement = ((ComplexValue) arrayElement).getValue();
|
||||
assertEquals(1, castedArrayElement.size());
|
||||
}
|
||||
}
|
||||
|
@ -513,8 +513,9 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
|
|||
assertEquals("string", defProperty.getValue());
|
||||
|
||||
Property complexProperty = entity.getProperty("PropertyCompMixedEnumDef");
|
||||
List<Property> value = (List<Property>) complexProperty.asComplex().getValue();
|
||||
List<Property> value = complexProperty.asComplex().getValue();
|
||||
assertEquals((short) 2, value.get(0).getValue());
|
||||
stream.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -577,7 +578,7 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
|
|||
new FullQualifiedName("Namespace1_Alias", "ETMixPrimCollComp")));
|
||||
List<?> collPropertyComp = entity.getProperty("CollPropertyComp").asCollection();
|
||||
assertNull(collPropertyComp.get(0));
|
||||
List<Property> complexPropertyProperties = (List<Property>) ((ComplexValue) collPropertyComp.get(1)).getValue();
|
||||
List<Property> complexPropertyProperties = ((ComplexValue) collPropertyComp.get(1)).getValue();
|
||||
assertEquals(Short.valueOf((short) 789), complexPropertyProperties.get(0).getValue());
|
||||
assertEquals("TEST 3", complexPropertyProperties.get(1).getValue());
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue