diff options
author | Marek Habersack <grendel@twistedcode.net> | 2011-04-28 16:25:59 +0400 |
---|---|---|
committer | Marek Habersack <grendel@twistedcode.net> | 2011-04-28 16:53:46 +0400 |
commit | 14a3732f6680c1dc91e4dc84b478ab463dee7b86 (patch) | |
tree | 31a9f789d62844da2e95574e2d5adcfba057988c /mcs/class/System.Data.Services/System.Data.Services.Providers | |
parent | c98e69f23cef52d4df104b1db6e671320c634473 (diff) |
[system.data.services] Stubs for a few 4.0 types + some implementation + some tests
Diffstat (limited to 'mcs/class/System.Data.Services/System.Data.Services.Providers')
17 files changed, 1225 insertions, 0 deletions
diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/DataServiceProviderMethods.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/DataServiceProviderMethods.cs new file mode 100644 index 00000000000..eaa9fdebb6b --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/DataServiceProviderMethods.cs @@ -0,0 +1,85 @@ +// +// DataServiceProviderMethods.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Data.Services.Providers; +using System.Reflection; + +namespace System.Data.Services.Providers +{ + public static class DataServiceProviderMethods + { + public static object GetValue (object value, ResourceProperty property) + { + // LAMESPEC: this method is not implemented in the .NET assembly + throw new NotImplementedException (); + } + + public static IEnumerable <T> GetSequenceValue<T> (object value, ResourceProperty property) + { + // LAMESPEC: this method is not implemented in the .NET assembly + throw new NotImplementedException (); + } + + public static object Convert (object value, ResourceType type) + { + // LAMESPEC: this method is not implemented in the .NET assembly + throw new NotImplementedException (); + } + + public static bool TypeIs (object value, ResourceType type) + { + // LAMESPEC: this method is not implemented in the .NET assembly + throw new NotImplementedException (); + } + + public static int Compare (string left, string right) + { + return Comparer <string>.Default.Compare (left, right); + } + + public static int Compare (bool left, bool right) + { + return Comparer <bool>.Default.Compare (left, right); + } + + public static int Compare (bool? left, bool? right) + { + return Comparer <bool?>.Default.Compare (left, right); + } + + public static int Compare (Guid left, Guid right) + { + return Comparer <Guid>.Default.Compare (left, right); + } + + public static int Compare (Guid? left, Guid? right) + { + return Comparer <Guid?>.Default.Compare (left, right); + } + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceMetadataProvider.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceMetadataProvider.cs new file mode 100644 index 00000000000..46129610c37 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceMetadataProvider.cs @@ -0,0 +1,47 @@ +// +// IDataServiceMetadataProvider.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Data.Services.Providers; + +namespace System.Data.Services.Providers +{ + public interface IDataServiceMetadataProvider + { + string ContainerNamespace { get; } + string ContainerName { get; } + IEnumerable <ResourceSet> ResourceSets { get; } + IEnumerable <ResourceType> Types { get; } + IEnumerable <ServiceOperation> ServiceOperations { get; } + bool TryResolveResourceSet (string name, out ResourceSet resourceSet); + ResourceAssociationSet GetResourceAssociationSet (ResourceSet resourceSet, ResourceType resourceType, ResourceProperty resourceProperty); + bool TryResolveResourceType (string name, out ResourceType resourceType); + IEnumerable <ResourceType> GetDerivedTypes (ResourceType resourceType); + bool HasDerivedTypes (ResourceType resourceType); + bool TryResolveServiceOperation (string name, out ServiceOperation serviceOperation); + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServicePagingProvider.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServicePagingProvider.cs new file mode 100644 index 00000000000..5d564492690 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServicePagingProvider.cs @@ -0,0 +1,39 @@ +// +// IDataServicePagingProvider.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections; +using System.Data.Services.Providers; +using System.Linq; + +namespace System.Data.Services.Providers +{ + public interface IDataServicePagingProvider + { + object[] GetContinuationToken (IEnumerator enumerator); + void SetContinuationToken (IQueryable query, ResourceType resourceType, object[] continuationToken); + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceQueryProvider.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceQueryProvider.cs new file mode 100644 index 00000000000..94764c8026a --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceQueryProvider.cs @@ -0,0 +1,45 @@ +// +// IDataServiceQueryProvider.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Data.Services.Providers; +using System.Linq; + +namespace System.Data.Services.Providers +{ + public interface IDataServiceQueryProvider + { + object CurrentDataSource { get; set; } + bool IsNullPropagationRequired { get; } + IQueryable GetQueryRootForResourceSet (ResourceSet resourceSet); + ResourceType GetResourceType (object target); + object GetPropertyValue (object target, ResourceProperty resourceProperty); + object GetOpenPropertyValue (object target, string propertyName); + IEnumerable <KeyValuePair <string, object>> GetOpenPropertyValues (object target); + object InvokeServiceOperation (ServiceOperation serviceOperation, object[] parameters); + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceStreamProvider.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceStreamProvider.cs new file mode 100644 index 00000000000..c85141a32eb --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceStreamProvider.cs @@ -0,0 +1,45 @@ +// +// IDataServiceStreamProvider.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Data.Services; +using System.Data.Services.Providers; +using System.IO; + +namespace System.Data.Services.Providers +{ + public interface IDataServiceStreamProvider + { + int StreamBufferSize { get; } + Stream GetReadStream (object entity, string etag, bool? checkETagForEquality, DataServiceOperationContext operationContext); + Stream GetWriteStream (object entity, string etag, bool? checkETagForEquality, DataServiceOperationContext operationContext); + void DeleteStream (object entity, DataServiceOperationContext operationContext); + string GetStreamContentType (object entity, DataServiceOperationContext operationContext); + Uri GetReadStreamUri (object entity, DataServiceOperationContext operationContext); + string GetStreamETag (object entity, DataServiceOperationContext operationContext); + string ResolveType (string entitySetName, DataServiceOperationContext operationContext); + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceUpdateProvider.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceUpdateProvider.cs new file mode 100644 index 00000000000..87f5e24e578 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/IDataServiceUpdateProvider.cs @@ -0,0 +1,38 @@ +// +// IDataServiceUpdateProvider.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Data.Services; +using System.Data.Services.Providers; + +namespace System.Data.Services.Providers +{ + public interface IDataServiceUpdateProvider : IUpdatable + { + void SetConcurrencyValues (object resourceCookie, bool? checkForEquality, IEnumerable <KeyValuePair <string, object>> concurrencyValues); + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/OpenTypeMethods.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/OpenTypeMethods.cs new file mode 100644 index 00000000000..c4cd9004679 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/OpenTypeMethods.cs @@ -0,0 +1,231 @@ +// +// OpenTypeMethods.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Data.Services.Providers; +using System.Linq.Expressions; +using System.Reflection; + +namespace System.Data.Services.Providers +{ + public static class OpenTypeMethods + { + public static object GetValue (object value, string propertyName) + { + throw new NotImplementedException (); + } + + public static object Add (object left, object right) + { + throw new NotImplementedException (); + } + + public static object AndAlso (object left, object right) + { + throw new NotImplementedException (); + } + + public static object Divide (object left, object right) + { + throw new NotImplementedException (); + } + + public static object Equal (object left, object right) + { + throw new NotImplementedException (); + } + + public static object GreaterThan (object left, object right) + { + throw new NotImplementedException (); + } + + public static object GreaterThanOrEqual (object left, object right) + { + throw new NotImplementedException (); + } + + public static object LessThan (object left, object right) + { + throw new NotImplementedException (); + } + + public static object LessThanOrEqual (object left, object right) + { + throw new NotImplementedException (); + } + + public static object Modulo (object left, object right) + { + throw new NotImplementedException (); + } + + public static object Multiply (object left, object right) + { + throw new NotImplementedException (); + } + + public static object NotEqual (object left, object right) + { + throw new NotImplementedException (); + } + + public static object OrElse (object left, object right) + { + throw new NotImplementedException (); + } + + public static object Subtract (object left, object right) + { + throw new NotImplementedException (); + } + + public static object Negate (object value) + { + throw new NotImplementedException (); + } + + public static object Not (object value) + { + throw new NotImplementedException (); + } + + public static object Convert (object value, ResourceType type) + { + throw new NotImplementedException (); + } + + public static object TypeIs (object value, ResourceType type) + { + throw new NotImplementedException (); + } + + public static object Concat (object first, object second) + { + throw new NotImplementedException (); + } + + public static object EndsWith (object targetString, object substring) + { + throw new NotImplementedException (); + } + + public static object IndexOf (object targetString, object substring) + { + throw new NotImplementedException (); + } + + public static object Length (object value) + { + throw new NotImplementedException (); + } + + public static object Replace (object targetString, object substring, object newString) + { + throw new NotImplementedException (); + } + + public static object StartsWith (object targetString, object substring) + { + throw new NotImplementedException (); + } + + public static object Substring (object targetString, object startIndex) + { + throw new NotImplementedException (); + } + + public static object Substring (object targetString, object startIndex, object length) + { + throw new NotImplementedException (); + } + + public static object SubstringOf (object substring, object targetString) + { + throw new NotImplementedException (); + } + + public static object ToLower (object targetString) + { + throw new NotImplementedException (); + } + + public static object ToUpper (object targetString) + { + throw new NotImplementedException (); + } + + public static object Trim (object targetString) + { + throw new NotImplementedException (); + } + + public static object Year (object dateTime) + { + throw new NotImplementedException (); + } + + public static object Month (object dateTime) + { + throw new NotImplementedException (); + } + + public static object Day (object dateTime) + { + throw new NotImplementedException (); + } + + public static object Hour (object dateTime) + { + throw new NotImplementedException (); + } + + public static object Minute (object dateTime) + { + throw new NotImplementedException (); + } + + public static object Second (object dateTime) + { + throw new NotImplementedException (); + } + + public static object Ceiling (object value) + { + throw new NotImplementedException (); + } + + public static object Floor (object value) + { + throw new NotImplementedException (); + } + + public static object Round (object value) + { + throw new NotImplementedException (); + } + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceAssociationSet.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceAssociationSet.cs new file mode 100644 index 00000000000..454dff9e599 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceAssociationSet.cs @@ -0,0 +1,55 @@ +// +// ResourceAssociationSet.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Data.Services.Providers; +using System.Diagnostics; +using System.Runtime; +using System.Runtime.CompilerServices; + +namespace System.Data.Services.Providers +{ + [DebuggerDisplay ("ResourceAssociationSet: ({End1.ResourceSet.Name}, {End1.ResourceType.Name}, {End1.ResourceProperty.Name}) <-> ({End2.ResourceSet.Name}, {End2.ResourceType.Name}, {End2.ResourceProperty.Name})")] + public sealed class ResourceAssociationSet + { + public string Name { + get { throw new NotImplementedException (); } + } + + public ResourceAssociationSetEnd End1 { + get { throw new NotImplementedException (); } + } + + public ResourceAssociationSetEnd End2 { + get { throw new NotImplementedException (); } + } + + public ResourceAssociationSet (string name, ResourceAssociationSetEnd end1, ResourceAssociationSetEnd end2) + { + throw new NotImplementedException (); + } + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceAssociationSetEnd.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceAssociationSetEnd.cs new file mode 100644 index 00000000000..de6a1c29438 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceAssociationSetEnd.cs @@ -0,0 +1,54 @@ +// +// ResourceAssociationSetEnd.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Data.Services.Providers; +using System.Diagnostics; +using System.Runtime; + +namespace System.Data.Services.Providers +{ + [DebuggerDisplay ("ResourceAssociationSetEnd: {Name}: ({ResourceSet.Name}, {ResourceType.Name}, {ResourceProperty.Name})")] + public sealed class ResourceAssociationSetEnd + { + public ResourceSet ResourceSet { + get { throw new NotImplementedException (); } + } + + public ResourceType ResourceType { + get { throw new NotImplementedException (); } + } + + public ResourceProperty ResourceProperty { + get { throw new NotImplementedException (); } + } + + public ResourceAssociationSetEnd (ResourceSet resourceSet, ResourceType resourceType, ResourceProperty resourceProperty) + { + throw new NotImplementedException (); + } + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceProperty.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceProperty.cs new file mode 100644 index 00000000000..1f3f5e7ec5b --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceProperty.cs @@ -0,0 +1,81 @@ +// +// ResourceProperty.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Data.Services.Providers; +using System.Diagnostics; +using System.Runtime; +using System.Runtime.CompilerServices; + +namespace System.Data.Services.Providers +{ + [DebuggerDisplay ("{kind}: {name}")] + public class ResourceProperty + { + public bool CanReflectOnInstanceTypeProperty { + get { throw new NotImplementedException (); } + set { throw new NotImplementedException (); } + } + + public ResourceType ResourceType { + get; private set; + } + + public string Name { + get; private set; + } + + public string MimeType { + get { throw new NotImplementedException (); } + set { throw new NotImplementedException (); } + } + + public ResourcePropertyKind Kind { + get; private set; + } + + public object CustomState { + get { throw new NotImplementedException (); } + set { throw new NotImplementedException (); } + } + + public bool IsReadOnly { + get; private set; + } + + public ResourceProperty (string name, ResourcePropertyKind kind, ResourceType propertyResourceType) + { + this.Name = name; + this.Kind = kind; + this.ResourceType = propertyResourceType; + } + + public void SetReadOnly () + { + IsReadOnly = true; + } + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourcePropertyKind.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourcePropertyKind.cs new file mode 100644 index 00000000000..1816d112bc6 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourcePropertyKind.cs @@ -0,0 +1,42 @@ +// +// ResourcePropertyKind.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Data.Services.Providers; + +namespace System.Data.Services.Providers +{ + [Flags] + public enum ResourcePropertyKind + { + Primitive = 0x01, + Key = 0x02, + ComplexType = 0x04, + ResourceReference = 0x08, + ResourceSetReference = 0x10, + ETag = 0x20 + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceSet.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceSet.cs new file mode 100644 index 00000000000..17ca997c7d9 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceSet.cs @@ -0,0 +1,66 @@ +// +// ResourceSet.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Data.Services.Providers; +using System.Diagnostics; +using System.Linq; +using System.Runtime; +using System.Runtime.CompilerServices; + +namespace System.Data.Services.Providers +{ + [DebuggerDisplay ("{Name}: {ResourceType}")] + public class ResourceSet + { + public string Name { + get; private set; + } + + public ResourceType ResourceType { + get; private set; + } + + public object CustomState { + get; set; + } + + public bool IsReadOnly { + get; private set; + } + + public ResourceSet (string name, ResourceType elementType) + { + this.Name = name; + this.ResourceType = elementType; + } + + public void SetReadOnly () + { + IsReadOnly = true; + } + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceType.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceType.cs new file mode 100644 index 00000000000..2b775bcb73c --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceType.cs @@ -0,0 +1,167 @@ +// +// ResourceType.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Data.Services.Common; +using System.Diagnostics; +using System.Linq.Expressions; +using System.Reflection; +using System.Runtime; +using System.Runtime.CompilerServices; + +namespace System.Data.Services.Providers +{ + [DebuggerDisplay ("{Name}: {InstanceType}, {ResourceTypeKind}")] + public class ResourceType + { + string nameSpace; + + public bool IsMediaLinkEntry { + get { throw new NotImplementedException (); } + set { throw new NotImplementedException (); } + } + + public Type InstanceType { + get; private set; + } + + public ResourceType BaseType { + get; private set; + } + + public ResourceTypeKind ResourceTypeKind { + get; private set; + } + + public ReadOnlyCollection <ResourceProperty> Properties { + get { throw new NotImplementedException (); } + } + + public ReadOnlyCollection <ResourceProperty> PropertiesDeclaredOnThisType { + get { throw new NotImplementedException (); } + } + + public ReadOnlyCollection <ResourceProperty> KeyProperties { + get { throw new NotImplementedException (); } + } + + public ReadOnlyCollection <ResourceProperty> ETagProperties { + get { throw new NotImplementedException (); } + } + + public string Name { + get; private set; + } + + public string FullName { + get; private set; + } + + public string Namespace { + get { + if (nameSpace == null) + return String.Empty; + return nameSpace; + } + } + + public bool IsAbstract { + get; private set; + } + + public bool IsOpenType { + get { throw new NotImplementedException (); } + set { throw new NotImplementedException (); } + } + + public bool CanReflectOnInstanceType { + get; set; + } + + public object CustomState { + get { throw new NotImplementedException (); } + set { throw new NotImplementedException (); } + } + + public bool IsReadOnly { + get; private set; + } + + public ResourceType (Type instanceType, ResourceTypeKind resourceTypeKind, ResourceType baseType, string namespaceName, string name, bool isAbstract) + { + if (instanceType == null) + throw new ArgumentNullException ("instanceType"); + if (String.IsNullOrEmpty (name)) + throw new ArgumentNullException ("name"); + if (resourceTypeKind == ResourceTypeKind.Primitive) + throw new ArgumentException ("'Primitive' is not a valid value for resourceTypeKind", "resourceTypeKind"); + if (instanceType.IsValueType) + throw new ArgumentException ("Clr type for the resource type cannot be a value type."); + + this.InstanceType = instanceType; + this.ResourceTypeKind = resourceTypeKind; + this.BaseType = baseType; + if (String.IsNullOrEmpty (namespaceName)) + this.FullName = name; + else + this.FullName = namespaceName + "." + name; + this.Name = name; + this.nameSpace = namespaceName; + this.IsAbstract = isAbstract; + + // Appears to always be true + this.CanReflectOnInstanceType = true; + } + + public static ResourceType GetPrimitiveResourceType (Type type) + { + throw new NotImplementedException (); + } + + public void AddProperty (ResourceProperty property) + { + throw new NotImplementedException (); + } + + public void AddEntityPropertyMappingAttribute (EntityPropertyMappingAttribute attribute) + { + throw new NotImplementedException (); + } + + public void SetReadOnly () + { + // TODO: anything else? + IsReadOnly = true; + } + + protected virtual IEnumerable <ResourceProperty> LoadPropertiesDeclaredOnThisType () + { + throw new NotImplementedException (); + } + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceTypeKind.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceTypeKind.cs new file mode 100644 index 00000000000..d14c561cb38 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/ResourceTypeKind.cs @@ -0,0 +1,38 @@ +// +// ResourceTypeKind.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Data.Services.Providers; + +namespace System.Data.Services.Providers +{ + public enum ResourceTypeKind + { + EntityType = 0, + ComplexType = 1, + Primitive = 2 + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/ServiceOperation.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/ServiceOperation.cs new file mode 100644 index 00000000000..471b5601553 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/ServiceOperation.cs @@ -0,0 +1,87 @@ +// +// ServiceOperation.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Data.Services.Providers; +using System.Diagnostics; +using System.Runtime; +using System.Runtime.CompilerServices; + +namespace System.Data.Services.Providers +{ + [DebuggerVisualizer ("ServiceOperation={Name}")] + public class ServiceOperation + { + public string Method { + get { throw new NotImplementedException (); } + } + + public string MimeType { + get { throw new NotImplementedException (); } + set { throw new NotImplementedException (); } + } + + public string Name { + get { throw new NotImplementedException (); } + } + + public ReadOnlyCollection <ServiceOperationParameter> Parameters { + get { throw new NotImplementedException (); } + } + + public ServiceOperationResultKind ResultKind { + get { throw new NotImplementedException (); } + } + + public ResourceType ResultType { + get { throw new NotImplementedException (); } + } + + public object CustomState { + get; set; + } + + public bool IsReadOnly { + get { throw new NotImplementedException (); } + } + + public ResourceSet ResourceSet { + get { throw new NotImplementedException (); } + } + + public ServiceOperation (string name, ServiceOperationResultKind resultKind, ResourceType resultType, ResourceSet resultSet, string method, IEnumerable <ServiceOperationParameter> parameters) + { + throw new NotImplementedException (); + } + + public void SetReadOnly () + { + throw new NotImplementedException (); + } + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/ServiceOperationParameter.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/ServiceOperationParameter.cs new file mode 100644 index 00000000000..35f7ca631c2 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/ServiceOperationParameter.cs @@ -0,0 +1,65 @@ +// +// ServiceOperationParameter.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Data.Services.Providers; +using System.Diagnostics; +using System.Runtime; +using System.Runtime.CompilerServices; + +namespace System.Data.Services.Providers +{ + [DebuggerVisualizer ("ServiceOperationParameter={Name}")] + public class ServiceOperationParameter + { + public string Name { + get; private set; + } + + public ResourceType ParameterType { + get; private set; + } + + public object CustomState { + get; set; + } + + public bool IsReadOnly { + get; private set; + } + + public ServiceOperationParameter (string name, ResourceType parameterType) + { + this.Name = name; + this.ParameterType = parameterType; + } + + public void SetReadOnly () + { + IsReadOnly = true; + } + } +} diff --git a/mcs/class/System.Data.Services/System.Data.Services.Providers/ServiceOperationResultKind.cs b/mcs/class/System.Data.Services/System.Data.Services.Providers/ServiceOperationResultKind.cs new file mode 100644 index 00000000000..49e912aa4f0 --- /dev/null +++ b/mcs/class/System.Data.Services/System.Data.Services.Providers/ServiceOperationResultKind.cs @@ -0,0 +1,40 @@ +// +// ServiceOperationResultKind.cs +// +// Author: +// Marek Habersack <grendel@twistedcode.net> +// +// Copyright (c) 2011 Novell, Inc +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Data.Services.Providers; + +namespace System.Data.Services.Providers +{ + public enum ServiceOperationResultKind + { + DirectValue = 0, + Enumeration = 1, + QueryWithMultipleResults = 2, + QueryWithSingleResult = 3, + Void = 4 + } +} |