X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FCommons.Xml.Relaxng%2FCommons.Xml.Relaxng.Derivative%2FRdpNameClasses.cs;h=fc02002f8ab0a1aedd8c9db8adbc3f5bf866dd74;hb=4791a674a1bf8cc74691974e363d9c5f5dd060a3;hp=8e1eb9fbdb0682e72bc9b080cd1ba7ede8a61125;hpb=ff228e1c801bda9666b6edab3ee962e05edcf480;p=mono.git diff --git a/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Derivative/RdpNameClasses.cs b/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Derivative/RdpNameClasses.cs index 8e1eb9fbdb0..fc02002f8ab 100644 --- a/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Derivative/RdpNameClasses.cs +++ b/mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng.Derivative/RdpNameClasses.cs @@ -1,14 +1,14 @@ -// -// Commons.Xml.Relaxng.Derivative.RdpNameClasses.cs -// -// Author: -// Atsushi Enomoto -// -// 2003 Atsushi Enomoto "No rights reserved." -// -// Copyright (c) 2004 Novell Inc. -// All rights reserved -// +// +// Commons.Xml.Relaxng.Derivative.RdpNameClasses.cs +// +// Author: +// Atsushi Enomoto +// +// 2003 Atsushi Enomoto "No rights reserved." +// +// Copyright (c) 2004 Novell Inc. +// All rights reserved +// // // Permission is hereby granted, free of charge, to any person obtaining @@ -30,183 +30,208 @@ // 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.Xml; - -namespace Commons.Xml.Relaxng.Derivative -{ - public enum RdpNameClassType - { - None = 0, - AnyName = 1, - AnyNameExcept = 2, - NsName = 3, - NsNameExcept = 4, - Name = 5, - NameClassChoice = 6 - } - - public abstract class RdpNameClass - { - public abstract RdpNameClassType NameClassType { get; } - public abstract bool Contains (string name, string ns); - } - - public class RdpAnyName : RdpNameClass - { - static RdpAnyName instance; - static RdpAnyName () - { - instance = new RdpAnyName (); - } - - public static RdpAnyName Instance { - get { return instance; } - } - - private RdpAnyName () {} - - public override RdpNameClassType NameClassType { - get { return RdpNameClassType.AnyName; } - } - - public override bool Contains (string name, string ns) - { - return true; - } - } - - public class RdpAnyNameExcept : RdpNameClass - { - RdpNameClass except; - - public RdpAnyNameExcept (RdpNameClass except) - { - this.except = except; - } - - public override RdpNameClassType NameClassType { - get { return RdpNameClassType.AnyNameExcept; } - } - - public RdpNameClass ExceptNameClass { - get { return except; } - } - - public override bool Contains (string name, string ns) - { - return (except == null) || !except.Contains (name, ns); - } - } - - public class RdpNsName : RdpNameClass - { - string ns; - - public RdpNsName (string ns) - { - this.ns = ns; - } - - public override RdpNameClassType NameClassType { - get { return RdpNameClassType.NsName; } - } - - public string NamespaceURI { - get { return ns; } - } - - public override bool Contains (string name, string ns) - { - return NamespaceURI == ns; - } - } - - public class RdpNsNameExcept : RdpNsName - { - string ns; - RdpNameClass except; - - public RdpNsNameExcept (string ns, RdpNameClass except) - : base (ns) - { - this.ns = ns; - this.except = except; - } - - public override RdpNameClassType NameClassType { - get { return RdpNameClassType.NsNameExcept; } - } - - public RdpNameClass ExceptNameClass { - get { return except; } - } - - public override bool Contains (string name, string ns) - { - return this.ns == ns && - (except == null || !except.Contains (name, ns)); - } - } - - public class RdpName : RdpNameClass - { - string local; - string ns; - - public RdpName (string local, string ns) - { - this.ns = ns; - this.local = local; - } - - public override RdpNameClassType NameClassType { - get { return RdpNameClassType.Name; } - } - - public string NamespaceURI { - get { return ns; } - } - - public string LocalName { - get { return local; } - } - - public override bool Contains (string name, string ns) - { - return this.ns == ns && this.local == name; - } - } - - public class RdpNameClassChoice : RdpNameClass - { - RdpNameClass l; - RdpNameClass r; - - public RdpNameClassChoice (RdpNameClass l, RdpNameClass r) - { - this.l = l; - this.r = r; - } - - public override RdpNameClassType NameClassType { - get { return RdpNameClassType.NameClassChoice; } - } - - public RdpNameClass LValue { - get { return l; } - } - - public RdpNameClass RValue { - get { return r; } - } - - public override bool Contains (string name, string ns) - { - return l.Contains (name, ns) || r.Contains (name, ns); - } - } - -} - + +using System; +using System.Xml; + +namespace Commons.Xml.Relaxng.Derivative +{ + public enum RdpNameClassType + { + None = 0, + AnyName = 1, + AnyNameExcept = 2, + NsName = 3, + NsNameExcept = 4, + Name = 5, + NameClassChoice = 6 + } + + public abstract class RdpNameClass + { + public abstract bool HasInfiniteName { get; } + public abstract RdpNameClassType NameClassType { get; } + public abstract bool Contains (string name, string ns); + } + + public class RdpAnyName : RdpNameClass + { + static RdpAnyName instance; + static RdpAnyName () + { + instance = new RdpAnyName (); + } + + public static RdpAnyName Instance { + get { return instance; } + } + + private RdpAnyName () {} + + public override bool HasInfiniteName { + get { return true; } + } + + public override RdpNameClassType NameClassType { + get { return RdpNameClassType.AnyName; } + } + + public override bool Contains (string name, string ns) + { + return true; + } + } + + public class RdpAnyNameExcept : RdpNameClass + { + RdpNameClass except; + + public RdpAnyNameExcept (RdpNameClass except) + { + this.except = except; + } + + public override bool HasInfiniteName { + get { return true; } + } + + public override RdpNameClassType NameClassType { + get { return RdpNameClassType.AnyNameExcept; } + } + + public RdpNameClass ExceptNameClass { + get { return except; } + } + + public override bool Contains (string name, string ns) + { + return (except == null) || !except.Contains (name, ns); + } + } + + public class RdpNsName : RdpNameClass + { + string ns; + + public RdpNsName (string ns) + { + this.ns = ns; + } + + public override bool HasInfiniteName { + get { return true; } + } + + public override RdpNameClassType NameClassType { + get { return RdpNameClassType.NsName; } + } + + public string NamespaceURI { + get { return ns; } + } + + public override bool Contains (string name, string ns) + { + return NamespaceURI == ns; + } + } + + public class RdpNsNameExcept : RdpNsName + { + string ns; + RdpNameClass except; + + public RdpNsNameExcept (string ns, RdpNameClass except) + : base (ns) + { + this.ns = ns; + this.except = except; + } + + public override bool HasInfiniteName { + get { return true; } + } + + public override RdpNameClassType NameClassType { + get { return RdpNameClassType.NsNameExcept; } + } + + public RdpNameClass ExceptNameClass { + get { return except; } + } + + public override bool Contains (string name, string ns) + { + return this.ns == ns && + (except == null || !except.Contains (name, ns)); + } + } + + public class RdpName : RdpNameClass + { + string local; + string ns; + + public RdpName (string local, string ns) + { + this.ns = ns; + this.local = local; + } + + public override bool HasInfiniteName { + get { return false; } + } + + public override RdpNameClassType NameClassType { + get { return RdpNameClassType.Name; } + } + + public string NamespaceURI { + get { return ns; } + } + + public string LocalName { + get { return local; } + } + + public override bool Contains (string name, string ns) + { + return this.ns == ns && this.local == name; + } + } + + public class RdpNameClassChoice : RdpNameClass + { + RdpNameClass l; + RdpNameClass r; + + public RdpNameClassChoice (RdpNameClass l, RdpNameClass r) + { + this.l = l; + this.r = r; + } + + public override bool HasInfiniteName { + get { return l.HasInfiniteName || r.HasInfiniteName; } + } + + public override RdpNameClassType NameClassType { + get { return RdpNameClassType.NameClassChoice; } + } + + public RdpNameClass LValue { + get { return l; } + } + + public RdpNameClass RValue { + get { return r; } + } + + public override bool Contains (string name, string ns) + { + return l.Contains (name, ns) || r.Contains (name, ns); + } + } + +} +