@Override
public List<Schema> getSchemas() throws ODataException {
final List<Schema> schemas = new ArrayList<Schema>();
Schema schema = new Schema();
schema.setNamespace(NAMESPACE_1);
schema.setAlias(SCHEMA_ALIAS);
final List<EntityType> entityTypes = new ArrayList<EntityType>();
entityTypes.add(getEntityType(ENTITY_TYPE_1_1));
entityTypes.add(getEntityType(ENTITY_TYPE_1_2));
entityTypes.add(getEntityType(ENTITY_TYPE_1_3));
entityTypes.add(getEntityType(ENTITY_TYPE_1_4));
entityTypes.add(getEntityType(ENTITY_TYPE_1_5));
entityTypes.add(getEntityType(ENTITY_TYPE_1_BASE));
schema.setEntityTypes(entityTypes);
final List<ComplexType> complexTypes = new ArrayList<ComplexType>();
complexTypes.add(getComplexType(COMPLEX_TYPE_1));
complexTypes.add(getComplexType(COMPLEX_TYPE_2));
schema.setComplexTypes(complexTypes);
final List<Association> associations = new ArrayList<Association>();
associations.add(getAssociation(ASSOCIATION_1_1));
associations.add(getAssociation(ASSOCIATION_1_2));
associations.add(getAssociation(ASSOCIATION_1_3));
associations.add(getAssociation(ASSOCIATION_1_4));
schema.setAssociations(associations);
EntityContainer entityContainer = new EntityContainer();
entityContainer.setName(ENTITY_CONTAINER_1).setDefaultEntityContainer(true);
final List<EntitySet> entitySets = new ArrayList<EntitySet>();
entitySets.add(getEntitySet(ENTITY_CONTAINER_1, ENTITY_SET_1_1));
entitySets.add(getEntitySet(ENTITY_CONTAINER_1, ENTITY_SET_1_2));
entitySets.add(getEntitySet(ENTITY_CONTAINER_1, ENTITY_SET_1_3));
entitySets.add(getEntitySet(ENTITY_CONTAINER_1, ENTITY_SET_1_4));
entitySets.add(getEntitySet(ENTITY_CONTAINER_1, ENTITY_SET_1_5));
entityContainer.setEntitySets(entitySets);
final List<AssociationSet> associationSets = new ArrayList<AssociationSet>();
associationSets.add(getAssociationSet(ENTITY_CONTAINER_1, ASSOCIATION_1_1, ENTITY_SET_1_4, ROLE_1_4));
associationSets.add(getAssociationSet(ENTITY_CONTAINER_1, ASSOCIATION_1_2, ENTITY_SET_1_2, ROLE_1_2));
associationSets.add(getAssociationSet(ENTITY_CONTAINER_1, ASSOCIATION_1_3, ENTITY_SET_1_3, ROLE_1_3));
associationSets.add(getAssociationSet(ENTITY_CONTAINER_1, ASSOCIATION_1_4, ENTITY_SET_1_5, ROLE_1_5));
entityContainer.setAssociationSets(associationSets);
final List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
functionImports.add(getFunctionImport(ENTITY_CONTAINER_1, FUNCTION_IMPORT_1));
functionImports.add(getFunctionImport(ENTITY_CONTAINER_1, FUNCTION_IMPORT_2));
functionImports.add(getFunctionImport(ENTITY_CONTAINER_1, FUNCTION_IMPORT_3));
functionImports.add(getFunctionImport(ENTITY_CONTAINER_1, FUNCTION_IMPORT_4));
functionImports.add(getFunctionImport(ENTITY_CONTAINER_1, FUNCTION_IMPORT_5));
functionImports.add(getFunctionImport(ENTITY_CONTAINER_1, FUNCTION_IMPORT_6));
functionImports.add(getFunctionImport(ENTITY_CONTAINER_1, FUNCTION_IMPORT_7));
entityContainer.setFunctionImports(functionImports);
schema.setEntityContainers(Arrays.asList(entityContainer));
final List<AnnotationElement> childElements = new ArrayList<AnnotationElement>();
childElements.add(new AnnotationElement().setName("schemaElementTest2").setText("text2").setNamespace(NAMESPACE_1));
childElements.add(new AnnotationElement().setName("schemaElementTest3").setText("text3").setPrefix("prefix")
.setNamespace("namespace"));
final List<AnnotationAttribute> elementAttributes = new ArrayList<AnnotationAttribute>();
elementAttributes.add(new AnnotationAttribute().setName("rel").setText("self"));
elementAttributes.add(new AnnotationAttribute().setName("href").setText("http://foo").setPrefix("pre")
.setNamespace("namespaceForAnno"));
childElements.add(new AnnotationElement().setName("schemaElementTest4").setText("text4").setAttributes(
elementAttributes));
final List<AnnotationElement> schemaElements = new ArrayList<AnnotationElement>();
schemaElements.add(new AnnotationElement().setName("schemaElementTest1").setText("text1").setChildElements(
childElements));
schema.setAnnotationElements(schemaElements);
schemas.add(schema);
schema = new Schema();
schema.setNamespace(NAMESPACE_2);
schema.setEntityTypes(Arrays.asList(getEntityType(ENTITY_TYPE_2_1)));
entityContainer = new EntityContainer();
entityContainer.setName(ENTITY_CONTAINER_2);
entityContainer.setEntitySets(Arrays.asList(getEntitySet(ENTITY_CONTAINER_2, ENTITY_SET_2_1)));
schema.setEntityContainers(Arrays.asList(entityContainer));
schemas.add(schema);
return schemas;
}