package org.odata4j.producer.edm; /** * A bunch of constants for defining the meta EDM. This form is nice for ide code completion... * including the short class name 'Edm' :)... */ public class Edm { public static final String namespace = "com.microsoft.schemas.ado._2008._09.edm"; public static final String ContainerName = "EdmContainer"; public static final String Collection = "Collection"; // ------------------------------------------------------------------------ // some complex types that are used as properties in other edm types: public static class PropertyRef { public static final String Name = "Name"; public static String name() { return PropertyRef.class.getSimpleName(); } public static String fqName() { return Edm.namespace + "." + PropertyRef.class.getSimpleName(); } } public static class EntityKey { public static final String Keys = "Keys"; public static String name() { return EntityKey.class.getSimpleName(); } public static String fqName() { return Edm.namespace + "." + EntityKey.class.getSimpleName(); } } public static class Documentation { public static final String Summary = "Summary"; public static final String LongDescription = "LongDescription"; public static String name() { return Documentation.class.getSimpleName(); } public static String fqName() { return Edm.namespace + "." + Documentation.class.getSimpleName(); } } // ------------------------------------------------------------------------ /** * Note: Schema is *almost* an Item...It doesn't have a Name though..and * you can't attach a Documentation to it...weird. */ public static class Schema { public static final String Namespace = "Namespace"; public static final String Alias = "Alias"; public static String name() { return Schema.class.getSimpleName(); } public static String fqName() { return Edm.namespace + "." + Schema.class.getSimpleName(); } public static class NavProps { public static final String EntityTypes = "EntityTypes"; public static final String ComplexTypes = "ComplexTypes"; } } public static class Item { /** The Name is one of an Item's key properties */ public static final String Name = "Name"; } public static class StructuralType extends Item { public static final String Namespace = "Namespace"; // key public static final String BaseType = "BaseType"; public static final String Abstract = "Abstract"; public static String name() { return StructuralType.class.getSimpleName(); } public static class NavProps { public static final String Properties = "Properties"; public static final String SubTypes = "SubTypes"; public static final String SuperType = "SuperType"; } } public static class EntityType extends StructuralType { public static final String Key = "Key"; public static final String Documentation = "Documentation"; public static final String OpenType = "OpenType"; public static String name() { return EntityType.class.getSimpleName(); } public static String fqName() { return Edm.namespace + "." + EntityType.class.getSimpleName(); } } public static class ComplexType extends StructuralType { public static String name() { return ComplexType.class.getSimpleName(); } public static String fqName() { return Edm.namespace + "." + ComplexType.class.getSimpleName(); } } public static class Property extends Item { public static final String Namespace = "Namespace"; // key public static final String EntityTypeName = "EntityTypeName"; // key public static final String Type = "Type"; public static final String Nullable = "Nullable"; public static final String DefaultValue = "DefaultValue"; public static final String MaxLength = "MaxLength"; public static final String FixedLength = "FixedLength"; public static final String Precision = "Precision"; public static final String Scale = "Scale"; public static final String Unicode = "Unicode"; public static final String Collation = "Collation"; public static final String ConcurrencyMode = "ConcurrencyMode"; public static final String CollectionKind = "CollectionKind"; public static String name() { return Property.class.getSimpleName(); } public static String fqName() { return Edm.namespace + "." + Property.class.getSimpleName(); } } public static class EntitySets { /** All of the Schemas */ public static final String Schemas = "Schemas"; /** All EntityTypes */ public static final String EntityTypes = "EntityTypes"; /** All EntityTypes that do *not* have a BaseType */ public static final String RootEntityTypes = "RootEntityTypes"; /** All Properties of all structural types */ public static final String Properties = "Properties"; /** All ComplexTypes */ public static final String ComplexTypes = "ComplexTypes"; /** All ComplexTypes that do *not* have a BaseType */ public static final String RootComplexTypes = "RootComplexTypes"; } }