final ArrayList<AnnotationAttribute> annoList = new ArrayList<AnnotationAttribute>();
annoList.add(new AnnotationAttribute().setName("annoName").setNamespace("http://annoNamespace").setPrefix(
"annoPrefix").setText("annoText"));
annoList.add(new AnnotationAttribute().setName("annoName2").setNamespace("http://annoNamespace").setPrefix(
"annoPrefix").setText("annoText2"));
properties.add(new SimpleProperty().setName("EmployeeId").setType(EdmSimpleTypeKind.String)
.setFacets(new Facets().setNullable(false))
.setMapping(new Mapping().setInternalName("getId")).setAnnotationAttributes(annoList));
final ArrayList<AnnotationAttribute> annoList2 = new ArrayList<AnnotationAttribute>();
annoList2.add(new AnnotationAttribute().setName("annoName").setNamespace("http://annoNamespace").setPrefix(
"annoPrefix").setText("annoText"));
final List<AnnotationElement> annoElementsForSimpleProp = new ArrayList<AnnotationElement>();
annoElementsForSimpleProp.add(new AnnotationElement().setName("propertyAnnoElement").setText("text"));
annoElementsForSimpleProp.add(new AnnotationElement().setName("propertyAnnoElement2"));
final SimpleProperty simpleProp =
new SimpleProperty().setName("EmployeeName").setType(EdmSimpleTypeKind.String)
.setCustomizableFeedMappings(new CustomizableFeedMappings()
.setFcTargetPath(EdmTargetPath.SYNDICATION_TITLE)).setAnnotationAttributes(annoList2)
.setAnnotationElements(annoElementsForSimpleProp);
properties.add(simpleProp);
final ArrayList<AnnotationAttribute> annoList3 = new ArrayList<AnnotationAttribute>();
annoList3.add(new AnnotationAttribute().setName("annoName").setNamespace("http://annoNamespaceNew").setPrefix(
"annoPrefix").setText("annoTextNew"));
properties.add(new SimpleProperty().setName("ManagerId").setType(EdmSimpleTypeKind.String)
.setMapping(new Mapping().setInternalName("getManager.getId")).setAnnotationAttributes(annoList3));
properties.add(new SimpleProperty().setName("RoomId").setType(EdmSimpleTypeKind.String)
.setMapping(new Mapping().setInternalName("getRoom.getId")));
properties.add(new SimpleProperty().setName("TeamId").setType(EdmSimpleTypeKind.String)
.setFacets(new Facets().setMaxLength(2))
.setMapping(new Mapping().setInternalName("getTeam.getId")));
properties.add(new ComplexProperty().setName("Location").setType(COMPLEX_TYPE_1));
properties.add(new SimpleProperty().setName("Age").setType(EdmSimpleTypeKind.Int16));
properties.add(new SimpleProperty().setName("EntryDate").setType(EdmSimpleTypeKind.DateTime)
.setFacets(new Facets().setNullable(true))
.setCustomizableFeedMappings(
new CustomizableFeedMappings().setFcTargetPath(EdmTargetPath.SYNDICATION_UPDATED)));
properties.add(new SimpleProperty().setName("ImageUrl").setType(EdmSimpleTypeKind.String)
.setMapping(new Mapping().setInternalName("getImageUri")));
final List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
navigationProperties.add(new NavigationProperty().setName("ne_Manager")
.setRelationship(ASSOCIATION_1_1).setFromRole(ROLE_1_1).setToRole(ROLE_1_4));
navigationProperties.add(new NavigationProperty().setName("ne_Team")
.setRelationship(ASSOCIATION_1_2).setFromRole(ROLE_1_1).setToRole(ROLE_1_2));
navigationProperties.add(new NavigationProperty().setName("ne_Room")
.setRelationship(ASSOCIATION_1_3).setFromRole(ROLE_1_1).setToRole(ROLE_1_3));
return new EntityType().setName(ENTITY_TYPE_1_1.getName())
.setProperties(properties)
.setHasStream(true)
.setKey(getKey("EmployeeId"))
.setNavigationProperties(navigationProperties)
.setMapping(new Mapping().setMediaResourceMimeTypeKey("getImageType"));
} else if (ENTITY_TYPE_1_BASE.getName().equals(edmFQName.getName())) {
final List<Property> properties = new ArrayList<Property>();
properties.add(new SimpleProperty().setName("Id").setType(EdmSimpleTypeKind.String)
.setFacets(new Facets().setNullable(false).setDefaultValue("1")));
properties.add(new SimpleProperty().setName("Name").setType(EdmSimpleTypeKind.String)
.setCustomizableFeedMappings(
new CustomizableFeedMappings().setFcTargetPath(EdmTargetPath.SYNDICATION_TITLE)));
return new EntityType().setName(ENTITY_TYPE_1_BASE.getName())
.setAbstract(true)
.setProperties(properties)
.setKey(getKey("Id"));
} else if (ENTITY_TYPE_1_2.getName().equals(edmFQName.getName())) {
final List<Property> properties = new ArrayList<Property>();
properties.add(new SimpleProperty().setName("isScrumTeam").setType(EdmSimpleTypeKind.Boolean)
.setFacets(new Facets().setNullable(true))
.setMapping(new Mapping().setInternalName("isScrumTeam")));
final List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
navigationProperties.add(new NavigationProperty().setName("nt_Employees")
.setRelationship(ASSOCIATION_1_2).setFromRole(ROLE_1_2).setToRole(ROLE_1_1));
return new EntityType().setName(ENTITY_TYPE_1_2.getName())
.setBaseType(ENTITY_TYPE_1_BASE)
.setProperties(properties)
.setNavigationProperties(navigationProperties);
} else if (ENTITY_TYPE_1_3.getName().equals(edmFQName.getName())) {
final List<Property> properties = new ArrayList<Property>();
properties.add(new SimpleProperty().setName("Seats").setType(EdmSimpleTypeKind.Int16));
properties.add(new SimpleProperty().setName("Version").setType(EdmSimpleTypeKind.Int16)
.setFacets(new Facets().setConcurrencyMode(EdmConcurrencyMode.Fixed)));
final List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
navigationProperties.add(new NavigationProperty().setName("nr_Employees")
.setRelationship(ASSOCIATION_1_3).setFromRole(ROLE_1_3).setToRole(ROLE_1_1));
navigationProperties.add(new NavigationProperty().setName("nr_Building")
.setRelationship(ASSOCIATION_1_4).setFromRole(ROLE_1_3).setToRole(ROLE_1_5));
return new EntityType().setName(ENTITY_TYPE_1_3.getName())
.setBaseType(ENTITY_TYPE_1_BASE)
.setProperties(properties)
.setNavigationProperties(navigationProperties);
} else if (ENTITY_TYPE_1_4.getName().equals(edmFQName.getName())) {
final List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
navigationProperties.add(new NavigationProperty().setName("nm_Employees")
.setRelationship(ASSOCIATION_1_1).setFromRole(ROLE_1_4).setToRole(ROLE_1_1));
return new EntityType().setName(ENTITY_TYPE_1_4.getName())
.setBaseType(ENTITY_TYPE_1_1)
.setHasStream(true)
.setNavigationProperties(navigationProperties)
.setMapping(new Mapping().setMediaResourceMimeTypeKey("getImageType"));
} else if (ENTITY_TYPE_1_5.getName().equals(edmFQName.getName())) {
final List<Property> properties = new ArrayList<Property>();
properties.add(new SimpleProperty().setName("Id").setType(EdmSimpleTypeKind.String)
.setFacets(new Facets().setNullable(false)));
properties.add(new SimpleProperty().setName("Name").setType(EdmSimpleTypeKind.String)
.setCustomizableFeedMappings(new CustomizableFeedMappings()
.setFcTargetPath(EdmTargetPath.SYNDICATION_AUTHORNAME)));
properties.add(new SimpleProperty().setName("Image").setType(EdmSimpleTypeKind.Binary));
final List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
navigationProperties.add(new NavigationProperty().setName("nb_Rooms")
.setRelationship(ASSOCIATION_1_4).setFromRole(ROLE_1_5).setToRole(ROLE_1_3));
return new EntityType().setName(ENTITY_TYPE_1_5.getName())
.setProperties(properties)
.setKey(getKey("Id"))
.setNavigationProperties(navigationProperties);
}
} else if (NAMESPACE_2.equals(edmFQName.getNamespace())) {
if (ENTITY_TYPE_2_1.getName().equals(edmFQName.getName())) {
final List<Property> properties = new ArrayList<Property>();
properties.add(new SimpleProperty().setName("Id").setType(EdmSimpleTypeKind.Int32)
.setFacets(new Facets().setNullable(false).setConcurrencyMode(EdmConcurrencyMode.Fixed)));
properties.add(new SimpleProperty().setName("Name").setType(EdmSimpleTypeKind.String)
.setCustomizableFeedMappings(
new CustomizableFeedMappings().setFcTargetPath(EdmTargetPath.SYNDICATION_TITLE)));
properties.add(new SimpleProperty().setName("Type").setType(EdmSimpleTypeKind.String)
.setFacets(new Facets().setNullable(false)));
properties.add(new SimpleProperty().setName("ImageUrl").setType(EdmSimpleTypeKind.String)
.setCustomizableFeedMappings(
new CustomizableFeedMappings().setFcTargetPath(EdmTargetPath.SYNDICATION_AUTHORURI))
.setMapping(new Mapping().setInternalName("getImageUri")));
properties.add(new SimpleProperty().setName("Image").setType(EdmSimpleTypeKind.Binary)
.setMapping(new Mapping().setMediaResourceMimeTypeKey("getType")));
properties.add(new SimpleProperty().setName("BinaryData").setType(EdmSimpleTypeKind.Binary)
.setFacets(new Facets().setNullable(true))
.setMimeType("image/jpeg"));
properties.add(new SimpleProperty().setName("Содержание").setType(EdmSimpleTypeKind.String)
.setFacets(new Facets().setNullable(true))
.setCustomizableFeedMappings(new CustomizableFeedMappings()
.setFcKeepInContent(false)
.setFcNsPrefix("ру") // CYRILLIC SMALL LETTER ER + CYRILLIC SMALL LETTER U
.setFcNsUri("http://localhost")