use of com.linkedin.restli.restspec.EntitySchema in project rest.li by linkedin.
the class TestExamplesGenerator method findEntityAction.
private static ActionSchema findEntityAction(ResourceSchema resourceSchema, String actionName) {
ActionSchema actionSchema;
final CollectionSchema collectionSchema = resourceSchema.getCollection();
if (collectionSchema != null) {
final EntitySchema entity = collectionSchema.getEntity();
if (entity != null) {
actionSchema = findActionInEntity(entity, actionName);
if (actionSchema != null) {
return actionSchema;
}
}
}
final AssociationSchema associationSchema = resourceSchema.getAssociation();
if (associationSchema != null) {
final EntitySchema entity = associationSchema.getEntity();
if (entity != null) {
actionSchema = findActionInEntity(entity, actionName);
if (actionSchema != null) {
return actionSchema;
}
}
}
return null;
}
use of com.linkedin.restli.restspec.EntitySchema in project rest.li by linkedin.
the class SnapshotGenerator method findModelsCollection.
private void findModelsCollection(ResourceSchema resourceSchema, Map<String, NamedDataSchema> foundTypes, List<NamedDataSchema> typeOrder) {
CollectionSchema collection = resourceSchema.getCollection();
if (collection != null) {
IdentifierSchema identifier = collection.getIdentifier();
findModelsIdentifier(identifier, foundTypes, typeOrder);
if (collection.hasFinders()) {
for (FinderSchema restMethodSchema : collection.getFinders()) {
findModelsFinder(restMethodSchema, foundTypes, typeOrder);
}
}
if (collection.hasMethods()) {
for (RestMethodSchema restMethodSchema : collection.getMethods()) {
findModelsMethod(restMethodSchema, foundTypes, typeOrder);
}
}
if (collection.hasActions()) {
for (ActionSchema actionSchema : collection.getActions()) {
findModelsAction(actionSchema, foundTypes, typeOrder);
}
}
if (collection.hasEntity()) {
EntitySchema entity = collection.getEntity();
findModelsEntity(entity, foundTypes, typeOrder);
}
}
}
use of com.linkedin.restli.restspec.EntitySchema in project rest.li by linkedin.
the class ResourceModelEncoder method appendEntityToSimpleSchema.
private void appendEntityToSimpleSchema(final SimpleSchema simpleSchema, final ResourceModel resourceModel) {
EntitySchema entityNode = buildEntitySchema(resourceModel);
simpleSchema.setEntity(entityNode);
}
use of com.linkedin.restli.restspec.EntitySchema in project rest.li by linkedin.
the class ResourceModelEncoder method appendEntityToCollectionSchema.
private void appendEntityToCollectionSchema(final CollectionSchema collectionSchema, final ResourceModel resourceModel) {
EntitySchema entityNode = buildEntitySchema(resourceModel);
collectionSchema.setEntity(entityNode);
}
use of com.linkedin.restli.restspec.EntitySchema in project rest.li by linkedin.
the class ResourceModelEncoder method buildEntitySchema.
private EntitySchema buildEntitySchema(ResourceModel resourceModel) {
EntitySchema entityNode = new EntitySchema();
entityNode.setPath(buildPathForEntity(resourceModel));
if (resourceModel.getResourceLevel() == ResourceLevel.COLLECTION) {
ActionSchemaArray actions = createActions(resourceModel, ResourceLevel.ENTITY);
if (actions.size() > 0) {
entityNode.setActions(actions);
}
}
// subresources
ResourceSchemaArray subresources = new ResourceSchemaArray();
for (ResourceModel subResourceModel : resourceModel.getSubResources()) {
ResourceSchema subresource = new ResourceSchema();
switch(subResourceModel.getResourceType()) {
case COLLECTION:
case ASSOCIATION:
appendCollection(subresource, subResourceModel);
break;
case SIMPLE:
appendSimple(subresource, subResourceModel);
break;
default:
break;
}
final DataMap customAnnotation = subResourceModel.getCustomAnnotationData();
if (!customAnnotation.isEmpty()) {
subresource.setAnnotations(new CustomAnnotationContentSchemaMap(customAnnotation));
}
subresources.add(subresource);
}
if (subresources.size() > 0) {
Collections.sort(subresources, new Comparator<ResourceSchema>() {
@Override
public int compare(ResourceSchema resourceSchema, ResourceSchema resourceSchema2) {
return resourceSchema.getName().compareTo(resourceSchema2.getName());
}
});
entityNode.setSubresources(subresources);
}
return entityNode;
}
Aggregations